4.4 Documentacion de Sistemas Distribuidos



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.
Se pueden distingir 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.

4.3 Herramientas de Diseño



Los principios comunes del diseño, proveen un modelo consistente de procesamiento de información a través de un sistema, el cual facilita la tarea de integrar diversos paquetes de aplicaciones en un sistema coherente.

los principios de diseño deben aumentar la productividad, mejorar la reusabilidad del software y facilitar la generación automática de software, a partir de sentencias declarativas de requerimientos. El uso de los principios de diseño reduce también, el tramo que separan la interconexión de sistemas separados

Acontinuacion se resumen 3 componentes disponibles para el desarrollo de aplicaciones distribuidas

CORBA ha existido desde 1990, es un estándar de objetos distribuidos. Permite que una aplicación solicite una operación a ser ejecutada por un objeto distribuido, el que regresará resultados a la aplicación solicitante.

Los datos pueden pasar del cliente al servidor y están asociados a una operación en particular en un objeto en particular, luego se regresan datos al cliente en la forma de una respuesta.

CORBA provee de comunicaciones en un modelo solicitud – respuesta.

DCE fue creada por la Fundación de Software Abierto (OSF, por sus siglas en inglés), que ahora se denomina Open Group [DCE98]. Consiste en múltiples componentes que han sido integrados para trabajar en conjunto. A continuación se listan los componentes que conforman a DCE:
• Llamadas a procedimientos remotos (RPC).
• Servicios de directorios globales e individuales (CDS y GDS).
• Servicios de seguridad.
• Hilos de ejecución DCE.
• Servicio de tiempo distribuido (DTS).
• Sistema de archivos distribuidos (DFS).
Provee nuevas capacidades que van más allá de lo que existe en el mercado con anterioridad. Los servicios de seguridad proveen una forma confiable de determinar si un usuario tiene los derechos para utilizar un determinado recurso o ejecutar alguna acción.

DCOM es la tecnología que permite que componentes de software se comuniquen entre ellos a través de redes de computadoras, DCOM se caracteriza por lo siguiente:
• Rapidez en el desarrollo. Permite a los desarrolladores construir soluciones más rápido, ensamblando software a partir de partes preconstruidas.
• Reducción de los costos de integración. Se requiere menos tiempo para integrar componentes en soluciones completas, ya que existen conjuntos de interfaces comunes, distribuidas por diferentes proveedores.
• Reducción de los costos de mantenimiento. Al aislar la función del software en pequeños componentes provee un mecanismo eficiente de bajo costo para actualizar un componente sin tener que rediseñar toda la aplicación.

4.2 Estandares



Definicion:
Especificacion que regula la realizacion de ciertos procesos o la fabricacion de componentes para garantizar interoperabilidad
Es una propiedad que puede predicarse de sistemas de naturaleza muy diferente, como pueden ser los sistemas informáticos (en cuyo caso se le suele denotar también como neutralidad tecnológica).

La Interoperabilidad es un factor crítico para recoger los beneficios de la telefonía IP y permite a su empresa comunicar y operar como una entidad integrada y altamente efectiva.

Para los sistemas distribuidos son necesarios los estándares por dos razones:

Diversidad. El trabajar en diferentes lugares , la recolección y almacenamiento de la información se realiza en diferentes locaciones. Para lograr una interaccion entre todos,es necesario obtener respuestas rápidas e independencia Los sistemas distribuidos se tienen que adaptar a diferentes requerimientos operacionales.

Fragmentación. Hasta ahora, no existe una arquitectura abierta que facilite la construcción de sistemas distribuidos en una base de diversos vendedores, la cual pueda expandirse a diversos dominios de aplicación.

4.1 Especificaciones de Alto Nivel

Un sistema distribuido es un objeto abstracto que puede usarse invocando a varias operaciones, así que el sistema es una instancia de un tipo de datos abstracto. Las especificaciones de un sistema describen el comportamiento de las operaciones invocadas por los usuarios y si el sistema esta activo, las operaciones que el sistema realizará internamente.

Un sistema puede tener usuarios que trabajen concurrentemente y todos estos usuarios pueden invocar sus operaciones en paralelo.

En las especificaciones, cada operación es vista como una acción atómica. Estas operaciones atómicas poseen dos propiedades importantes:
La serializabilidad se refiere a que la ejecución concurrente de un grupo de acciones es equivalente a la ejecución secuencial de las mismas operaciones.
La totalidad quiere decir que cada operación, o se ejecuta total y exitosamente, o falla y no tiene efecto sobre el estado del sistema.



Un diccionario distribuido.
El diccionario es modelado como un conjunto, con una operación insertar para agregar un elemento al conjunto, borrar para remover un elemento y listar para observar los miembros del conjunto. El objetivo es hacer al sistema altamente disponible, en el sentido de que cualquiera de los nodos con posibilidades de operar, deberían ejecutar cualquiera de las tres operaciones en cualquier momento, sin importar el estado de la red o de los otros nodos.

La implementación funciona procesando cada operación en un sólo nodo, cada uno de los cuales cuenta con una copia del diccionario. Si se realiza una operación de inserción o eliminación en un nodo, sólo se actualiza la copia de ése nodo, y posteriormente, por medio del envío de mensajes, se propagan las modificaciones a los demás nodos del sistema. Debido a que un nodo puede no saber de las operaciones ejecutadas en otros nodos.

UNIDAD IV METODOLOGIA PARA EL DESARROLLO DE PROYECTOS EN SISTEMAS DISTRIBUIDOS




4.1 Especificaciones de Alto Nivel
4.2 Estandares
4.3 Herramientas de Diseño
4.4 Documentacion de Sistemas Distribuidos