Taller Arquitectura Diego y Alejandro
Taller Arquitectura Diego y Alejandro
Taller Arquitectura Diego y Alejandro
6. ¿Qué estrategia se usa para controlar el funcionamiento de las unidades del sistema?
Con el modelo de capas o modelo cliente servidor, ya que en el modelo de control se
controla la ejecución de los subsistemas.
11.1 Explique por qué puede ser necesario diseñar la arquitectura del sistema antes de redactar
las especificaciones.
RTA: Podría presentar problemas de rendimiento o protección, estos son críticos en algunos
modelos arquitectónicos que lo usan como enfoque o como requerimientos críticos
11.3 Construya una tabla que muestre las ventajas e inconvenientes de los modelos estructurales
analizados en este capítulo.
RTA:
VENTAJA DESVENTAJA
Eficiente para compartir Todos los subsistemas deben usar
grandes cantidades de el mismo modelo de datos.
datos.
La evolución de datos es difícil y
Los subsistemas no costosa.
necesitan “preocuparse” de
El modelo de repositorio la gestión (backups,
seguridad, …) de los datos. No caben políticas de gestión de
datos específicas.
Existe un modelo de datos
compartido (esquema del Es difícil hacer una distribución
repositorio) eficiente
11.4 Sugiera, justificando sus respuestas, un modelo estructural adecuado para los siguientes
sistemas:
• Un sistema de venta automática de billetes usados por los pasajeros en una estación de trenes.
• Un sistema de videoconferencia controlada por computadora que permita que el vídeo, audio y
datos de (a computadora estén disponibles para varios participantes al mismo tiempo.
• Un robot limpiador de suelos que tenga como objetivo limpiar espacios relativamente vacíos
tales como pasillos. El limpiador debe ser capaz de detectar paredes y otros obstáculos.
RTA:
Cliente-Servidor: En este caso consideramos que este modelo es el más adecuado para un
sistema de red con múltiples procesadores que logra que se haga un procesamiento más
robusto y mayor precisión a la hora de contar los billetes y activar los mismos
Capas: En este caso lo usamos debido a que permite la reutilización de capas, así como
también permite contención de cambios a una o pocas capas
Cliente-Servidor: Este modelo es muy eficiente para manejar una gran cantidad de datos,
perfecto para los cálculos de los sensores, y también porque no es necesario enviar datos
a un subsistema
11.5 Diseñe una arquitectura para los sistemas anteriores basada en el modelo que usted ha
elegido. Haga suposiciones razonables sobre los requerimientos del sistema.
11.6 Los sistemas de tiempo real normalmente utilizan modelos de control dirigidos por eventos.
¿En qué circunstancias podría recomendar el uso de un modelo de control de llamada-retorno
para un sistema de tiempo real?
RTA: Se podría recomendable el modelo de llamada-retorno ya que en este modelo se requiere
una petición y se espera una respuesta, lo que hace que tenga una menor complejidad y un
rendimiento mayor.
11.7 Sugiera, justificando su respuesta, un modelo de control adecuado para los siguientes
sistemas:
• Un sistema de procesamiento por lotes que tenga como entrada la información sobre las horas
trabajadas y tarifas de pago e imprima información sobre hojas de salarios y la información
bancaria de la transferencia de éstos.
• Un conjunto de herramientas software que son producidas por diferentes vendedores, pero que
tienen que trabajar conjuntamente.
• Un controlador de televisión que responde a las señales de una unidad de control remoto.
RTA:
11.8 Comente las ventajas e inconvenientes relacionados con la capacidad de distribución del
modelo de flujo de datos y el modelo de objetos. Suponga que se requieren tanto versiones
distribuidas como versiones con una única máquina.
RTA:
VENTAJA DESVENTAJA
Los objetos están débilmente Para utilizar los servicios,
acoplados, la implementación los objetos deben referenciar de
de los objetos puede
forma explícita el nombre y la
modificarse sin
afectar a otros objetos. Los interfaz de otros objetos.
objetos son a menudo Si se requiere un cambio de
Descomposición orientada representaciones de interfaz para satisfacer los
a objetos entidades del mundo cambios del sistema propuestos,
real por lo que la estructura se debe evaluar el efecto de ese
del sistema es fácilmente cambio sobre todos los usuarios
comprensible
de los objetos cambiados.
RTA: CASE identifica cinco conjuntos de servicios que un entorno CASE debería proporcionar.
También debería proporcionar facilidades «plug-in» para herramientas CASE individuales que
utilizan estos servicios.
11.10 ¿Debería existir una profesión de «arquitecto software» cuyo cometido fuese trabajar de
forma independiente con un cliente para diseñar una arquitectura de un sistema software? El
sistema entonces debería ser implementado por alguna compañía de software. ¿Cuáles podrían
ser las dificultades del establecimiento de una profesión como ésta?
RTA: El Arquitecto de Software debe ser una persona con amplios conocimientos técnicos, gran
experiencia en programación, liderazgo y que ejerza las siguientes funciones:
Debido a que su perfil incluye tanta experiencia y conocimiento el principal problema será si las
empresas se pueden permitir pagar una persona con tal perfil, únicamente como arquitecto, ya
que lo que realmente quieren es que tener un menor numero de personas y que realicen la mayor
cantidad de aportes y/o tareas a un proyecto
12.1 Explique por qué los sistemas distribuidos son intrínsecamente más escalables que los
sistemas centralizados. ¿Cuáles son los Límites más probables de la escalabilidad del sistema?
Limites:
* Los sistemas distribuidos permiten compartir recursos, son abiertos, concurrentes, escalables,
tolerantes a defectos y transparentes.
12.2 ¿Cuál es la diferencia fundamental entre una aproximación de cliente rico y una de cliente
ligero para el desarrollo de sistemas cliente-servidor? Explique por qué el uso de Java como
lenguaje de implementación atenúa la diferencia entre estas aproximaciones.
Modelo de cliente rico: En este modelo, el servidor solamente es responsable de la gestión de los
datos. El software del cliente implementa la lógica de la aplicación y las interacciones con el
usuario del sistema.
JAVA COMO LENGUAJE
La aparición del código móvil (como los applets de Java y los controles Active X), que pueden
descargarse en un cliente desde un servidor, ha permitido el desarrollo de sistemas cliente-
servidor que son algo intermedio entre los modelos de cliente ligero y rico.
12.3 Su cliente quiere desarrollar un sistema para almacenar información en donde los
distribuidores pueden acceder a la información de las compañías, y pueden evaluar varios
escenarios de inversión usando un sistema de simulación. Cada distribuidor usa esta simulación de
forma diferente, de acuerdo con su experiencia y el tipo de almacenes con los que trabaja. Sugiera
una arquitectura cliente-servidor para este sistema que muestre dónde se localiza la
funcionalidad. Justifique el modelo cliente-servidor que usted ha elegido.
RTA:
12.4 Haciendo referencia al modelo de aplicación mostrado en la Figura 12.4, comente los
problemas que podrían
tener lugar al convertir un sistema heredado de la década de los 80 que utiliza un mainframe para
procesamiento de pólizas de seguros a una arquitectura cliente-servidor.
RTA: De acuerdo a ellos el modelo podría ser un poco inseguro, porque debería elaborarse un
modelo donde tenga un intermediario y que no valla directamente a la base de datos o servidor
para su modificación. Lo cual nos lleva a pensar que en los sistemas heredados de la época de los
80, no es practico separar el procesamiento de la aplicación y la gestión de los datos. Al pasar esto
a una Arquitectura Cliente-Servidor de tres capas, como lo muestra la figura 12.4 es una muy mala
idea, ya que esta arquitectura de tres capas se necesita o se sugiere que tanto como los datos
como la aplicación sean volátiles y además de eso que se necesite integrar datos de múltiples
fuentes. cosas que no cumplen los sistemas heredados
12.5 ¿Cuáles son las facilidades básicas que puede proporcionar un intermediario de peticiones de
objetos?
RTA: Vale recalcar que las facilidades básicas que puede proporcionar un intermediario de
peticiones de objetos son:
Heterogeneidad:
Eficiencia
Tiempo de desempeño
Además, la ejecución asíncrona permite que los procesos controlen la gestión y terminación de
tarea y que el cliente pueda finalizar o continuar haciendo otras cosas en su sistema, por otro lado,
se reduce el tráfico en la red y la capacidad de cómputo del cliente
12.6 Explique por qué el uso de objetos distribuidos con un intermediario de peticiones de objetos
simplifica la implementación de sistemas cliente-servidor escalables. Ilustre su respuesta con un
ejemplo.
RTA: Como se dice en la respuesta anterior, es una forma adecuada de utilizar el middleware en
un sistema puesto que mejora y facilitar la comunicación.
12.7 ¿Cómo se usa el IOL de CORBA para soportar comunicaciones entre objetos que han sido
implementados en diferentes lenguajes de programación? Explique por qué esta aproximación
puede ocasionar problemas de rendimiento si hay diferencias sustanciales entre los lenguajes
usados para la implementación de los objetos.
RTA: Esta aproximación se puede ocasionar debido a que los objetos pueden ejecutarse sobre
diferentes plataformas y sus nombres no necesitan ser conocidos por el resto de los objetos del
sistema. Por lo tanto, el middleware tiene que realizar mucho trabajo para asegurar la
transparencia en las comunicaciones de los objetos. Se requiere middleware a dos niveles para
soportar la computación de objetos distribuidos: