2.1
arquitectura básica
ARQUITECTURA
BASICA
Una
arquitectura es un conjunto de reglas, definiciones, términos y modelos que se
emplean para producir un producto
*Arquitectura
Cliente-Servidor
Agrupa
conjuntos de elementos que efectúan procesos distribuidos y computo
cooperativo. Este modelo se basa en un Protocolo Solicitud respuesta. El
cliente envía una solicitud de cierto servicio, el servidor realiza el trabajo
y regresa el resultado de la operación.La Principal ventaja de este protocolo
es su sencillez, únicamente se necesita la utilización del servidor.
*Principales
beneficios de la arquitectura Cliente-Servidor
Mejor
aprovechamiento de la potencia de cómputo (Reparte el trabajo). Reduce el
tráfico en la Red. (Viajan requerimientos). Opera bajo sistemas abiertos.
Permite el uso de interfaces gráficas variadas y versátiles.
*Cliente
Conjunto
de Software y Hardware que invoca los servicios de uno o varios servidores. Los
Clientes interactúan con el usuario, usualmente en forma gráfica.
*Características
-El
Cliente oculta al Servidor y la Red.
-Detecta
e intercepta peticiones de otras aplicaciones y puede redireccionales.
-Dedicado
a la cesión del usuario ( Inicia…Termina ).
-El
método más común por el que se solicitan los servicios es a través de RPC
(Remote Procedure Calls).
*Funciones
Comunes del Cliente:
·
Mantener y procesar todo el dialogo con el usuario.
·
Manejo de pantallas.
·
Menús e interpretación de comandos.
·
Entrada de datos y validación.
·
Procesamiento de ayudas.
·
Recuperación de errores.
·
Generación de consultas e informes sobre las bases de datos.
*Servidor
Conjunto
de Hardware y Software que responde a los requerimientos de un cliente. Los
Servidores proporcionan un servicio al cliente y devuelven los resultados.
Tipos
Comunes de Servidores:
·
Servidor de Archivos (FTP, Novell).
·
Servidor de Bases de Datos (SQL, CBASE, ORACLE, INFORMIX).
·
Servidor de almacenamiento
·
Servidor de Impresión.
·
Servidor de Correo.
·
Servidor Web.
Otras
Arquitecturas:
·
P2P (Peer to Peer)
·
Arquitecturas Intermedias
·
Arquitecturas N capas
·
Clientes Pesados
·
Clientes Ligeros
·
Clientes Inteligentes
2.2
diseño
El
diseño de un sistema distribuido es similar
al
de un sistema centralizada en cierta forma.
Se
pueden utilizar otros lenguajes de
modelado
como UML para especificar
Los
diagramas de UML más utilizados en el
modelado
modelado dede sistemas sistemas distribuidos distribuidos son son::
diagramas
de caso de uso, de secuencia, de
estado,
estado, dede actividades, actividades, dede componente componente yy dede
despliegue.
Se
deben considerar todas aquellas
consideraciones
que involucran por
definición
los sistemas operativos.
Por
ejemplo, se pueden utilizar técnicas
como
como los los diccionarios diccionarios dede datos datos distribuidos
distribuidos.
2.2.1
complejidad de los sistemas distribuidos
Los
Sistemas Distribuidos tienen más de dos décadas de haber existido, entre sus
características se encuentran las siguientes:
•
Fuente básica de la complejidad de los SD recae en la conexión de sus
componentes
•
Existen fallas en todos los Sistemas, solo que en un SD resulta mas visible,
entre las fallas mas comunes encontramos
a)
Fallas de Propagación
b)
Fallas por el tamaño del Sistema
•
Las aplicaciones distribuidas deben estar preparadas para soportar fallas
parciales
• Se
debe tener mecanismos para localización de Recursos, equipos así como la
coordinación de las replicas de los estados de los servidores.
• No
se tiene una disponibilidad de memoria global y un reloj global, en este caso
no se puede predecir los retardos y mensajes.
• Se
requiere de una sincronización para actualizar el sistema.
2.3
desarrollo
Para
el desarrollo de una aplicación
distribuida,
se deben tomar en cuenta
algunos
detalles que a continuación se
presentan:
•
Mantenimiento de los datos más usados en
un
almacén almacén rápido rápido (caché) (caché)..
• Mantenimiento
de los datos cerca de donde
se
requieren.
Realizar
duplicación de datos lo más que se
pueda.
•
Eliminar cuellos de botella.
•
Emplear paralelismo
•
Comprimir datos.
•
Minimizar la latencia.
•
Poner el mayor procesamiento posible dentro
del
cliente.
Poner
todas las actividades de cómputo
intensivo
(audio, video, interfaces gráficas,
etc.)
en el cliente.
•
Administrar todos los recursos compartidos
en
el servidor.
•
Evitar la centralización de servicios.
•
Usar procesos en capas para lograr mayor
escalabilidad.
•
Manejar esquemas Pull en lugar de Push
2.3.1tecnicas
de construcción
•
Seguridad
•
Desempeño y Crecimiento modular
•
Tiempo de Respuesta
•
Control Autónomo
•
Comunicaciones (Ancho banda)
2.3.2
Requerimientos de Aplicación.
Los requerimientos
necesarios son:
1.-Disponibilidad
y Confiabilidad
•
Sistema poco propenso a fallas (Si un componente no afecta a la disponibilidad
del sistema).
•
Mayores servicios que elevan la funcionalidad (Monitoreo, Telecontrol, Correo
Eléctrico, Etc.).
2.-Transparencia
Tipos
de Transparencia:
•
Transparencia de Localización
•
Transparencia de Replica
•
Transparencia de Migración
•
Transparencia de Concurrencia
2.4
documentacion
El
ciclo de vida del desarrollo del software contempla a la documentación como una
etapa de gran importancia para el producto final. Resulta crucial guardar las
especificaciones establecidas que fundamentan el funcionamiento del software,
así como de los componentes a partir de los que se forma la aplicación final.
Una metodología tiene la finalidad de dirigir al desarrollador a una ruta
racional, apuntando a las necesidades a satisfacer, en que orden y cuanto
tiempo debe tomar cada actividad.
Durante
el análisis de requerimientos se debe desarrollar una especificación de tales requerimientos,
plasmada en un documento que sirve para especificar los requerimientos de los
usuarios y es además, un punto de partida para el diseño. Distingue siete roles
de usuarios para la documentación del diseño:
1.
El administrador del proyecto requiere información para planear, controlar y
administrar el proyecto. Debe estar en posibilidades de identificar cada
componente del sistema y entender su propósito y funcionamiento.
2.
El administrador de configuración necesita información para poder ensamblar
varios componentes en un solo sistema y poder controlar los cambios.
3.
El diseñador requiere de información acerca del uso y funcionamiento de cada
componente, y su interfaz con otros componentes.
4.
El programador debe conocer los algoritmos que se utilizarán, las estructuras
de datos y la comunicación entre componentes.
5.
Se requiere que el probador de unidades conozca información detallada de los
componentes, como algoritmos y datos requeridos.
6.
Al probador de integración le corresponde conocer las relaciones entre
componentes y la función y uso de los componentes envueltos.
7.
El programador de mantenimiento debe tener una visión de cómo se satisfacen los
requerimientos usando todos los componentes.
Cada
modulo (entidades o personas enroladas en el desarrollo) cuenta con una serie
de atributos, entre los que se mencionan los siguientes:
•
Identificación. Un nombre para hacer referencia a un componente. Debe ser
único.
•
Tipo. El tipo del componente, puede ser un procedimiento, un archivo.
•
Función. Para lo que el componente fue diseñado.
•
Subordinados. De cuales entidades se compone un módulo.
•
Dependencias. Es una descripción de las relaciones con otros componentes.
•
Interfaz. Es una representación de la interacción entre los componentes.
•
Recursos. Son entidades externas al diseño, tales como memoria, impresoras,
procesadores.
•
Procesamiento. Se refiere a los algoritmos utilizados y el tratamiento a las
excepciones.
•
Datos. Una descripción de la representación, uso, formato y réplicas de los
datos.
Como
una buena práctica para un sistema distribuido, se recomienda establecer desde
los documentos de especificación, todo lo referente al ambiente técnico en el
que se planea funcione el sistema. Se deben establecer al menos los siguientes
aspectos técnicos:
•
Las plataformas de hardware a utilizarse.
• El
o los sistemas operativos utilizados en cada nodo.
• El
administrador de base de datos a usar.
• El
software de red elegido.
•
Los lenguajes seleccionados para el desarrollo.
• El
medio o tecnología de red para conectar a los nodos.
2.5
gui´s
Interfaces
Gráficas de Usuario
• La
llegada de la arquitectura cliente/servidor
ha
traído como consecuencia que la lógica
de
presentación haya mejorado mucho,
hablando
incluso de clientes ricos.
• Algunas
interfaces gráficas manejan una
arquitectura
arquitectura cliente/servidor, cliente/servidor, lala más más famosa famosa
es
X11.
No hay comentarios:
Publicar un comentario