Para el desarrollo de software existen diversas arquitecturas de dominio específico.
Que serían: Diseño de software de arquitectura multiprocesador, diseño de
software distribuido, diseño de software
distribuido en tiempo real y diseño de software cliente/servidor.
Existen dos modelos de dominio específico:
- Modelos genéricos que son abstracciones de varios sistemas reales
- Modelos de referencia que son modelos abstractos y describen a una clase mayor de sistemas.
Diseño Software
Arquitectura Multiprocesador
Un sistema multiproceso o multitarea es aquel que permite
ejecutar varios procesos de forma concurrente, la razón es porque actualmente
la mayoría de las CPU’s sólo pueden ejecutar un proceso cada vez. La única
forma de que se ejecuten de forma simultánea varios procesos es tener varias
CPU’s (ya sea en una máquina o en varias, en un sistema distribuido.
La ventaja de un sistema multiproceso reside en la
operación llamada cambio de contexto. Esta operación consiste en quitar a un
proceso de la CPU, ejecutar otro proceso y volver a colocar el primero sin que
se entere de nada.
El multiproceso no es algo difícil de entender: más
procesadores significa más potencia computacional. Un conjunto de tareas puede
ser completado más rápidamente si hay varias unidades de proceso ejecutándolas
en paralelo. Esa es la teoría, pero otra historia es la práctica, como hacer
funcionar el multiproceso, lo que requiere unos profundos conocimientos tanto
del hardware como del software.
Es necesario conocer ampliamente como están interconectados
dichos procesadores, y la forma en que el código que se ejecuta en los mismos
ha sido escrito para escribir aplicaciones y software que aproveche al máximo
sus prestaciones.
Diseño Software
Arquitectura Cliente-Servidor
La arquitectura cliente-servidor es una forma de dividir
las responsabilidades de un Sistema de Información separando la interfaz de
usuario (Nivel de presentación) de la gestión de la información (Nivel de
gestión de datos).
Esta arquitectura consiste básicamente en que un programa,
el Cliente informático realiza peticiones a otro programa, el servidor, que les
da respuesta.
Aunque esta idea se puede aplicar a programas que se
ejecutan sobre una sola computadora es más ventajosa en un sistema multiusuario
distribuido a través de una red de computadoras.
La arquitectura cliente-servidor sustituye a la
arquitectura monolítica en la que no hay distribución, tanto a nivel físico
como a nivel lógico.
Ventajas de la
arquitectura cliente-servidor
- Centralización del control: los accesos, recursos y la integridad de los datos son controlados por el servidor de forma que un programa cliente defectuoso o no autorizado no pueda dañar el sistema.
- Escalabilidad: se puede aumentar la capacidad de clientes y servidores por separado.
Se reduce el tráfico de red considerablemente. Idealmente,
el cliente se comunica con el servidor utilizando un protocolo de alto nivel de
abstracción como por ejemplo SQL.
Diseño Software
Distribuido
Estos recursos técnicos suelen catalogarse en:
- Infraestructura.
- Plataforma.
- Comunicaciones.
- Datos.
Pero no olvidemos que detrás del sistema operativo hay
personas que lo usan y los gestionan. El factor humano será fundamental como
nos cuidaremos de recordar a lo largo del todo el diseño.
Diseñar un sistema distribuido es crear aplicaciones de
software que, utilizando servicios y ayudándose de la conectividad, participen
y se integren en este entorno de forma transparente a las plataformas de
proceso y de almacenamiento de datos, dotándolas de los recursos necesarios
para gestionarse de forma integrada con el resto del sistema distribuido.
Los servicios permitirán usar todos los recursos técnicos y
el sistema distribuido resulto ante no será nada más, ni nada menos, que un
conjunto de servicios que interoperan entre ellos colaborando para cumplir los
objetivos que se han establecido para el sistema.
Los sistemas distribuidos que se diseñen y construyan deben
estar alineados con los objetivos de negocio de la empresa, aumentar la
eficacia y eficiencia operacional de la compañía y permitir el mayor
rendimiento con el menor coste en las estructuras informáticas que dan soporte.
No olvide nunca estos tres puntos. El objetivo es siempre
alinear tecnología y negocio.
El sistema resultante debe ser adaptable, ofrecer el
rendimiento necesario con el coste más barato que seamos capaces de
conseguir.Con este objetivo final, empezamos nuestro viaje para el cual le voy
a pedir un esfuerzo. Las tecnologías llegan, se consolidan o desaparecen, y al
final mueren. Y siempre con facilidad y rapidez.
Pero las estrategias, las tácticas y las técnicas de diseño
tienen un ciclo de vida mucho más lento y robusto. Y están por encima de las
tecnologías en que se implementan. Intente poner en su mochila solo las
primeras. Este es un viaje por el mundo del diseño de sistemas distribuidos, no
sus técnicas de implementación aunque haremos las necesarias salidas a ese
mundo cuando sea necesario.
Arquitecturas en un sistema distribuido. La arquitectura de
Empresa. La palabra arquitectura es de aquellos términos utilizados ampliamente
dentro del mundo informático. Cuando atacamos sistemas distribuidos, la palabra
aparece continuamente.
Esta constatación de la realidad no resulta extraña si
acudimos a la definición que ANSI/IEEE hace del término: “Arquitectura es la
organización fundamental de un sistema, donde se integran sus componentes, se
establecen las relaciones e interdependencias entre esos componentes y su
entorno y se establecen los principios para su diseño, gestión y evolución”.
No hay comentarios.:
Publicar un comentario