Elaboracion De Un Proyecto Distribuido




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