Universidad de Ibagué, Coruniversitaria.
Programa Ingeniería de Sistemas

Ingeniería del Software

Inicio

Generalidades

Ejercicios

Talleres

Proyecto

Ejercicios "amistosos"

 ARQUITECTURAS DE SOFTWARE

 La arquitectura de software es el marco de trabajo fundamental para estructurar el sistema. Varios modelos arquitectónicos como el modelo estructural, el modelo de control y el modelo de descomposición se pueden desarrollar durante el diseño arquitectónico. Los sistemas grandes rara vez conforman un único modelo estructural. Estos sistemas son heterogéneos e incorporan diferentes modelos en diferentes niveles de abstracción.

 Los modelos de descomposición de sistemas incluyen modelos de depósito de datos, modelos cliente-servidor y modelos de máquinas abstractas. Los modelos de depósito de datos comparten datos por medio de un almacén común. Los modelos cliente-servidor por lo regular distribuyen los datos. Los modelos de máquinas abstractas se dividen en capas, cada una de las cuales utiliza los recursos suministrados por la capa fundamental.

 Los modelos de control incluyen control centralizado y modelos de eventos. En los modelos centralizados, las decisiones de control se realizan dependiendo del estado del sistema; en los modelos de eventos los eventos externos controlan el sistema.

 Los modelos de descomposición modular incluyen modelos de flujo de datos y objetos. Los primeros son modelos funcionales, mientras que los modelos de objetos se basan en entidades no muy acopladas que mantienen su propio estado y operaciones.

 Los sistemas distribuidos permiten compartir recursos, son abiertos, concurrentes, escalables, tolerantes a fallas y transparentes. En la actualidad, prácticamente todos los nuevos sistemas grandes son sistemas distribuidos donde el sistema de software se ejecuta sobre un grupo no tan integrado de procesadores en red.  Los sistemas cliente-servidor son sistemas distribuidos donde el sistema se modela como un conjunto de servicios que se suministran por los servidores a los procesos cliente. En un sistema cliente-servidor, la interfaz de usuario siempre se ejecuta sobre un cliente y la administración de datos siempre es proporcionada por un servidor compartido. La funcionalidad de la aplicación se puede implementar en el computador cliente o en el servidor.

Puede descargar aquí una presentación sobre  Cliente-Servidor.

 En una arquitectura de objetos distribuidos, no existe distinción entre los clientes y los servidores. Los objetos proveen servicios generales que pueden ser llamados por otros objetos. Este enfoque se utiliza para implementar sistemas cliente-servidor. Los sistemas de objetos distribuidos requieren de middleware para manejar las comunicaciones de los objetos y para permitir agregar y destruir objetos del sistema. De forma conceptual, se puede ver a este middleware como un bus de software al que los objetos se conectan. Los estándares de CORBA (Arquitectura Común de Agente de Solicitud de Objetos) son un conjunto de estándares para el middleware que soportan arquitecturas de objetos distribuidos. Incluyen definiciones de modelos de objetos, de agente de solicitud de objetos y de servicios comunes.

 

  1. ¿Por qué es necesario diseñar la arquitectura del sistema antes de que se redacten las especificaciones?

  2. Sugiera un modelo estructural apropiado para los siguientes sistemas: a) Un sistema automático de emisión de tiquetes que es utilizado por los pasajeros en un portal de Transmilenio. b) Un sistema de videoconferencia controlado por computador que permite que el video, el audio y los datos del computador sean accesibles para varios participantes al mismo tiempo. c) Un sistema de robot limpiador de pisos que limpia espacios relativamente libres, como pasillos. Al robot le debe ser posible detectar las paredes y otras obstrucciones.

  3. Diseñe una arquitectura para los sistemas anteriores basada en la elección del modelo. Haga suposiciones adecuadas acerca de los requerimientos del sistema.

  4. Sugiera un modelo de control apropiado para los siguientes sistemas: a) Un sistema de procesamiento por lotes que toma información de las horas trabajadas, paga las tarifas, e imprime los recibos y la información bancaria de la transferencia del crédito. b) Un controlador de televisión que responde a señales de una unidad de control remoto.

  5. ¿Por qué los sistemas distribuidos son inherentemente más escalables que los sistemas centralizados? ¿cuáles son los probables límites de la escalabilidad del sistema?

  6. Los sistemas distribuidos basados en un modelo cliente-servidor se han desarrollado desde los 80, pero recientemente es cuando se han implementado las arquitecturas de sistemas basados en objetos distribuidos. ¿Por qué?

  7. Explique por qué el uso de objetos distribuidos con un agente de solicitud de objetos simplifica la implementación de sistemas cliente-servidor escalables. Ilustre su respuesta con un ejemplo.

  8. Se propone desarrollar un sistema para almacenar información donde los distribuidores pueden acceder a la información de las Compañías, así como evaluar varios escenarios de inversión utilizando un sistema de simulación. Los diversos distribuidores utilizan esta simulación de diferentes formas acorde a su experiencia y al tipo de almacenes con los que trabajan. Sugiera y justifique una arquitectura de modelo Cliente-Servidor para que este sistema muestre dónde se localiza la funcionalidad.


Inicio | Biografía | Cursos | Para pensar... | Para reflexionar... | Para reir | Enlaces

 
Profesor Gustavo Martínez Villalobos
Email: gustavo.martinez@unibague.edu.co
Facultad de Ingeniería de Sistemas, Coruniversitaria
Ibagué, Tolima, COLOMBIA