Diseño y Arquitectura de Sistemas: Patrones y Soluciones para Diversos Escenarios
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 23,96 KB
Ejercicio
El exclusivo club de golf ArquiGolf requiere un sistema para la captación e ingreso de socios. El proceso se inicia cuando un ejecutivo de Atención de Clientes contacta al futuro socio para evaluar si cumple con los requisitos para pertenecer al club. Si los cumple, el futuro socio procede a llenar el formulario de ingreso y lo envía al departamento de Validación de antecedentes. En caso de ser exitosa la validación de los antecedentes aportados por el futuro socio, el formulario es aprobado y enviado al departamento de Finanzas, en donde se calculan las cuotas de ingreso y mensual, las que son informadas al futuro socio. Este tiene un plazo de 2 días para pagar las cuotas iniciales (ingreso y primer mes) utilizando los medios de pago que tienen convenio con el club. Una vez efectuado el pago, el proceso continua en el departamento de Atención de Socios, el que emite las credenciales correspondientes, las envía al nuevo socio e informa a la Portería del club que hay un nuevo socio que está autorizado a ingresar. Con ello, el socio ya puede ingresar a las dependencias del club y disfrutar de sus beneficios. - Justifique el patrón arquitectónico que propondría para este sistema, junto a una posible arquitectura genérica. Lo que se describe es un flujo de trabajo (workflow), por lo tanto la arquitectura mas adecuada es Tubos y Filtros, en la que cada filtro implementa la funcionalidad de cada uno de los departamentos del club. Eventualmente, se podría proponer SOA, ya que cada servicio implementaría los requerimientos de cada departamento. - Describa los componentes principales del sistema e indique que funcionalidad implementaría cada uno de ellos. El componente inicial es el de Atención de Clientes, que recibe el formulario que el futuro socio ha llenado. Luego de validarlo, lo almacena en la base de datos y cambia el estado del formulario a Iniciado. El siguiente componente es el de Validación de Antecedentes, que se activa al detectarse que hay un formulario Iniciado en la base de datos. Si los datos aportados son aprobados, se cambia el estado del formulario a Validado. El componente de Finanzas se activa al existir en la base de datos un formulario Validado, recupera el formulario, calcula y graba las cuotas y marca al formulario En-financiamiento. A continuación, se debe ir a un proceso externo de Medios de Pago, en el que el futuro socio procede a cancelar lo que corresponde. Una vez aprobado el pago, se marca al formulario con el estado Financiado. Finalizado lo anterior, el componente de Atención de Socios emite las credenciales, las envía al socio e incorpora al nuevo socio y lo marca como Socio Activo. Con ello, el socio queda habilitado a ingresar al club, dado que en Portería se va validar que sea un socio activo para permitirle el ingreso a las dependencias del club.
Ejercicio
Comente el siguiente párrafo, justificando sus comentarios. 1. El objetivo del patrón Tubos y Filtros es procesar una cadena de procesos, la que se inicia en el tubo de entrada y luego va pasando filtro tras filtro hasta llegar al tubo de salida. En general es correcto, pero cabe recalcar que el procesamiento no inicia en el tubo, ya que este sólo hace fluir la información, sino que en el filtro, que es quién procesa la información. 2. Ello es posible dado que cada filtro conoce quién le antecede, y a quién debe entregar el resultado de su proceso, información que se obtiene de lo que se ha especificado en la cadena a procesar. Falso, los filtros no necesariamente conocen su predecesor ni sucesor, ya que son independientes. 3. Adicionalmente, los tubos son los encargados de recibir el resultado del procesamiento realizado en el filtro y pasarlo al filtro que sigue, para lo cuál debe hacer las transformaciones de datos que corresponda. Esta afirmación es incorrecta, ya que los tubos no son quienes realizan las transformaciones en los datos, sino que los filtros.
Ejercicio
Comente el siguiente párrafo, justificando sus comentarios. 1. El patrón Pizarrón facilita la resolución de problemas complejos al permitir que múltiples módulos, llamados expertos, colaboren escribiendo y leyendo en un espacio común de datos, denominado pizarra. La oración es correcta, no obstante los módulos son denominados agentes, no expertos. 2. Cada experto tiene un acceso exclusivo a la pizarra, lo que garantiza que los datos no se sobre-escriban por error. Falso, cada agente tiene acceso compartido a la pizarra, lo que permite la colaboración. La sobre-escritura se solventa implementando mecanismos de sincronización. 3. La pizarra centraliza el control de flujo del sistema, decidiendo cuál experto debe ejecutar en cada momento, optimizando así el uso de recursos. Los expertos actualizan la pizarra con información parcial y resultados intermedios, lo que permite que otros expertos puedan construir sobre este trabajo. Falso, la pizarra centraliza los datos y las comunicaciones, pero no controla el flujo de ejecución, esto lo realiza el controlador. 4. La interacción entre los expertos y la pizarra es gestionada por un coordinador que asegura que todas las contribuciones son validadas y coherentes antes de ser integradas en la solución final. La oración es correcta, en términos de agentes.
Ejercicio
La empresa BigSell necesita un sistema para la venta online de sus productos. Para ello, requiere un sistema de ventas que cumpla con los siguientes requerimientos: Registro de clientes Autenticación de usuarios en dos niveles, clientes y personal interno. Autorización de acceso a distintas funcionalidades según sea el nivel del usuario
CRUD de productos Administración del inventario Administración del carro de ventas - agregar/quitar productos - valorización del contenido - confirmación de la compra - uso de medios de pago externos Estadísticas de gestión - Producto mas vendido - Monto promedio de una venta - Consulta de ventas en un periodo dado - Cantidad total vendida de cada producto - Diseñar este sistema usando el patrón MVC, indicando componentes principales del sistema diagrama de ubicación en la solución (M, V o C) mecanismo de comunicación entre los componentes Solución: Vista (interfaz de usuario) registro y autenticación de usuarios ver productos, imágenes, descripción, precio manejar el carro de ventas - agregar/quitar productos - modificar cantidades - desplegar total venta interacción con medios de pago externo finalización de la venta, detalle de productos, valor total, medio de pago utilizado Modelo (lógica de negocio) gestión de base de datos con información de - clientes - productos - ventas gestión del carro de ventas - productos en el carro (agregar/quitar) - valorización del contenido - estado de la venta Controlador (intermediario) autenticación de usuarios interacción usuario/carro de ventas interacción usuario/medio de pago externo direccionamiento de transacciones Comunicaciones Vista - Controlador: evento HTTP/HTTPS Controlador - Modelo: interfaz API Ejercicio
Analice el patrón MVC respecto a los siguientes requerimientos no funcionales: Mantenibilidad. Portabilidad. Verificabilidad. Solución: - Mantenibilidad: Ya que el patrón MVC separa el sistema en tres componentes principales, Modelo, Vista y Controlador, permite trabajar en partes específicas del sistema sin afectar las otras. Logrando así cumplir mantenibilidad. - Portabilidad: Dado que existe una separación entre el modelo y la vista, esto permite cambiar la forma de presentación sin modificar la lógica de negocio, y gracias a las múltiples vistas, se puede lograr adaptar múltiples plataformas, cumpliendo la soportabilidad. - Verificabilidad: La separación de responsabilidades del modelo permite la integración de pruebas unitarias, automáticas y de integración de manera aislada, facilitando la identificación y corrección de errores, consiguiendo una mejor verificabilidad. Por tanto, el patrón MVC mejora la mantenibilidad, soportabilidad y verificabilidad del sistema.
Ejercicio
Estamos a casi dos semanas del Plebiscito Constitucional y aún no se tiene un sistema informático que permita, entre otras funcionalidades, lo siguiente: - Ingresar información de los locales de votación y mesas receptoras de votos. - Identificar al presidente de la mesa, quien será el usuario autorizado a interactuar con el sistema durante el periodo de votación. - Registrar las mesas electorales constituidas en cada local de votación. - Ingresar los resultados de cada mesa electoral, una vez cerrada la mesa y contabilizados los votos emitidos. - Obtener resultados acumulados por local, regíón y a nivel nacional. En cada mesa electoral, habrá un computador que será usado para obtener la información de cada votante, de manera de verificar la cédula de identidad de la persona. Estos computadores estarán conectados a una red de cada local, en la que se ha dispuesto un servidor pequeño para atender a las necesidades de información de los computadores del local. A su vez, estos servidores se conectarán a un servidor regional, los cuáles centralizarán la información de la regíón para ser enviada al servidor central ubicado en las dependencias del Servel. 1. Justificar la arquitectura y el patrón que propondría para este sistema. Para este sistema, utilizaría la arquitectura SOA, ya que permitirá que diferentes servicios (como validación de votantes, registro de resultados, consolidación de datos, etc.) se desarrollen, desplieguen y gestionen de forma independiente. Esto ofrece flexibilidad y escalabilidad, esencial en un sistema electoral que puede requerir ajustes rápidos y soportar una gran cantidad de transacciones en poco tiempo. Junto a esto, propondría utilizar un patrón MVC, ya que este patrón es adecuado para la interfaz de usuario en los computadores de las mesas electorales, donde se necesita una separación clara entre la lógica de negocio (Modelo), la interfaz de usuario (Vista), y el control de la interacción del usuario (Controlador). Facilita el mantenimiento y la escalabilidad del sistema. 2. Describir los componentes principales del sistema e indicar que funcionalidad implementaría en cada uno de ellos. Primero se tiene el Cliente, que corresponde al computador de la mesa electoral. Este tiene los componentes: - Vista: Interfaz gráfica para los usuarios (presidentes de mesa) que incluye formularios para ingresar datos de votantes, registrar resultados y consultar el estado de la mesa. - Controlador: Gestiona las interacciones del usuario, valida entradas y coordina las acciones entre la vista y el modelo. - Modelo: Representa la lógica de negocio y los datos relacionados con el votante, la mesa y los resultados. Se conecta con el servidor local para obtener y enviar información. Luego, se tienen los servicios y componentes que consideraría por cada servidor: - Servidor Local en el Centro de Votación: Servicios de Validación de Votantes, Registro de Mesas Constituidas y Almacenamiento Temporal de Datos. - Servidor Regional: Agregación de Datos Locales, Gestión de Comunicación, Seguridad y Auditoría. - Servidor Central (Servel): Consolidación Nacional de Datos, Base de Datos Central, Servicios de Reportes, Interfaz de Administración. Finalmente, se tendría el BUS de datos que controlaría el flujo de datos entre el cliente y los distintos servicios.
Ejercicio
Comente el siguiente párrafo, justificando sus comentarios. 1. El patrón PAC posibilita la satisfacción de cada una de las funcionalidades especificas mediante la ejecución de varios agentes, los cuales aportan colaborativamente con una parte de la respuesta. Verdadero, en la satisfacción de un requerimiento pueden participar varios agentes, los cuáles aportan con lo que les corresponde de la solución. 2. Ello es posible dado que cada agente tiene una copia del proceso de control que administra la ejecución de los agentes, proceso caracterizado con la ‘C’ de la sigla PAC. Falso, si bien cada agente tiene un proceso de control, se utiliza para sus fines propios. No existe una copia común en todos los agentes. 3. Del mismo modo, el componente de presentación (la ‘P de PAC) le despliega al usuario la parte de la respuesta que le corresponde. Falso, el componente de presentación define la interfaz que expone un agente a los otros agentes que quieran utilizar sus servicios. No necesariamente es la interfaz de usuario.
Ejercicio
Una pastelería de barrio quiere ampliar la cobertura de atención de clientes abríéndose al comercio electrónico. Para ello, requiere el desarrollo de un sistema que cubra los siguientes requerimientos funcionales: Recepción de pedidos online Disponibilidad de diversos medios de pago (webpay, mercadoPago, transferencias, etc.) Organización de los envíos a domicilio Gestión de los repartidores Estadísticas de venta, diaria, semanal, mensual, anual Se pide lo siguiente: 1. Justificar la elección del patrón de arquitectura a usar Se elige SOA dado que el sistema tiene diversos requerimientos que se pueden implementar en servicios independientes. Estos estarán enfocados en satisfacer los requerimientos de los distintos tipos de usuarios (clientes, repartidores, administración, gestión). Entonces, cada tipo de usuario tendrá un conjunto de servicios que los van a atender. 2. Diagrama global de la solución indicando como se va a satisfacer la funcionalidad requerida Tal como ya se menciónó, cada funcionalidad va a ser satisfecha por un conjunto de servicios independientes. Por lo tanto, los clientes generarán transacciones que serán procesadas por ese conjunto. Entonces, en el nivel cliente estarán los procesos captadores de los requerimientos de los usuarios. Estos procesos clientes generarán transacciones y las enviarán al bus. Este, redirigirá la transacción al servicio correspondiente, en donde se hará el procesamiento y retornará la información solicitada hacia el bus, y de ahí al cliente. 3. Adicionalmente a Confiabilidad y Rendimiento, que deben estar considerados de todas maneras, describa dos requerimientos no funcionales a implementar en el sistema. Seguridad: sobre todo en el proceso de pago se debe asegurar el correcto procesamiento de este, implementando comunicación encriptada con los diversos procesadores. Además, grabar la traza de las transacciones para responder a posibles cuestionamientos. Mantenibilidad: dado que el negocio esta creciendo, este RNF ayuda a implementar nuevas funcionalidades que vayan siendo requeridas. Rendimiento, no vas a esperar 30 min para un café Ejercicio
Analice cuando se recomienda utilizar el patrón MicroKernel y explique como están estructurados los componentes que forman parte de la arquitectura. Se recomienda cuando se va a desarrollar un sistema que debe permanecer en el tiempo, adaptándose a los cambios de la tecnología y de los respectivos requerimientos. Tiene 5 componentes que se estructuran de la siguiente forma (desde el interior del sistema hasta el exterior): - Servidores internos: Implementa la funcionalidad interna. -
Microkernel (núcleo): Administra los recursos e implementa la funcionalidad básica y la comunicación entre los componentes. - Servidores externos: Proveen el acceso a las funcionalidad del núcleo. - Adaptadores: Comunican a los clientes con los servidores externos. - Clientes: Reciben los requerimientos de los usuarios a través de la interfaz definida.
Ejercicio
Analice el patrón MicroKernel desde los siguientes requerimientos no funcionales: - Mantenibilidad - Soportabilidad - Verificabilidad. - Dado que Microkernel consiste de un diseño modular, en dónde se pueden agregar nuevas funcionalidades al sistema mediante servidores sin afectar al núcleo y la operabilidad como tal, se puede decir que Microkernel favorece y permite la mantenibilidad del sistema. - Debido a la modularidad del sistema, un fallo en un servidor específico no afecta a otros, facilitando la identificación y localización del problema. Además, es más fácil implementar trazas de ejecución para cada servidor individualmente, permitiendo así la Soportabilidad. - El diseño minimalista y robusto del microkernel permite la verificabilidad, ya que en éste se implementan métodos de auto-chequeo. No obstante, puede ser complicado lograr que todo el sistema sea capaz de realizar esto, dada la independencia de los servidores.
Ejercicio
Una universidad internacional con múltiples campus en diferentes países (similar a la Universidad de Nueva York, Universidad de California o Universidad de Manchester) ha desarrollado, de manera independiente, sus propios sistemas de gestión académica, administrativa y de recursos humanos. Cada campus tiene su propio sistema de gestión de estudiantes, inscripciones, administración de personal y gestión financiera, todos adaptados a las normativas locales. El consejo directivo de la universidad ha decidido implementar un portal unificado que permita a estudiantes, profesores y personal administrativo acceder a los servicios y recursos de cualquier campus, sin importar su ubicación geográfica. Además, se requiere que estos sistemas se comuniquen entre sí para compartir información relevante, como registros de estudiantes, historial académico y datos de recursos humanos, permitiendo una administración más eficiente y centralizada. La universidad ha invertido una considerable cantidad de dinero y tiempo en el desarrollo de estos sistemas individuales, por lo que no es viable desecharlos y construir uno nuevo desde cero. La solución debe integrar los sistemas actuales, preservando las funcionalidades existentes y permitiendo la interoperabilidad entre ellos. 1. Justifique el patrón arquitectónico que implementaría en este sistema. Para este sistema, implementaría un arquitectura de software utilizando el patrón PAC, ya que se debe integrar sistemas independientes (desacoplados) manteniendo su funcionalidad y permitiendo la comunicación entre ellos. 1. Realice un desglose de los componentes del sistema considerando el patrón a implementar. Jerárquicamente, tendríamos: - Agentes de alto nivel: Estos incluyen la funcionalidad central e interfaz de usuario global, por tanto acá tendríamos un Agente Portal Unificado, que tiene como responsabilidad presentar información de múltiples sistemas. - Agentes de nivel medio: Estos coordinan la comunicación entre agentes de bajo y alto nivel, por tanto tendríamos un Agente de Comunicación entre Sistemas, permitiendo así la comunicación de un sistema específico con el agente de portal unificado. - Agente de nivel bajo: Acá se presentan las interfaces específicas de usuario,. Interactuando directamente con los datos, por tanto tendríamos agentes para: - Gestión académica. - Gestión administrativa. - Gestión de recursos humanos.
Ejercicio
La empresa TechVision se compone de varias divisiones especializadas, incluyendo Investigación y Desarrollo, Servicios al Cliente, Tecnología de la Información, Ventas, y Marketing. Cada división ha desarrollado y mantenido su propio sistema de software específico para sus necesidades operativas, lo que ha llevado a problemas de interoperabilidad y duplicación de datos entre sistemas. Debido a la expansión reciente y la necesidad de mejorar la eficiencia operativa, la Dirección Ejecutiva ha decidido implementar un sistema central que permita la integración de funciones comunes, como gestión de usuarios, autenticación, y servicios de notificación, mientras permite que cada división siga utilizando sus sistemas especializados para sus operaciones específicas. Este sistema central debe ser altamente modular, permitiendo que se añadán o modifiquen componentes sin afectar al núcleo del sistema, garantizando así la continuidad y adaptabilidad de las operaciones de la empresa. Justificar el patrón arquitectónico que propondría para los sistemas de la empresa, considerando tanto los actuales sistemas como el nuevo sistema central a desarrollar. El sistema propuesto por TechVision nos habla de un sistema central, con funciones comunes, altamente modular y mantenible. Para esto, propondría desarrollar el sistema utilizando el patrón de Microkernel, que cumple con los requerimientos provistos, teniendo un núcleo con funciones básicas y que permite que se añadán o modifiquen componentes sin comprometer la continuidad de la aplicación.
Ejercicio
El organigrama de la empresa ArquiSoft muestra que está organizada en varias Gerencias que dependen de la Gerencia General. Algunas de estas gerencias son las siguientes: Operaciones, Producción, Finanzas, Marketing, Ventas, Recursos Humanos. Debido a razones históricas de la formación de la empresa, cada gerencia funciona independientemente con sus propios sistemas y sus correspondientes datos asociados. Ello trae una serie de complicaciones debido a que hay datos repetidos e inconsistentes entre las gerencias y no se tiene una visión consolidada de la empresa. En vista de esto, el Gerente General ha ordenado el desarrollo de un Sistema de Gestión Centralizada que depure los datos existentes en la empresa y que consolide la información de cada gerencia, permitíéndoles compartir los datos generales, tales como información de Clientes, Ventas y Facturación. Sin embargo, las gerencias van a seguir utilizando sus sistemas propios, pero con las modificaciones necesarias para acceder a los datos generales. Con estos antecedentes, se le pide: a) justificar la arquitectura que propondría para los sistemas de la empresa, considerando, tanto los actuales sistemas, como el nuevo Sistema de Gestión Centralizada a desarrollar. Dado que la empresa ya tiene sistemas en la arquitectura Cliente/Servidor, lo lógico seria migrar los sistemas actuales a SOA y desarrollar el nuevo sistema en esta arquitectura. La migración seria simple, pues solo habría que agregar el bus de servicios e implementar el protocolo de comunicaciones que requiere SOA. B) explicar las modificaciones que habría que hacer a los actuales sistemas de las gerencias, los que fueron desarrollados en la arquitectura Cliente/Servidor, para que puedan integrarse a la arquitectura propuesta. 1. Los sistemas actuales deben modificar la conexión entre el cliente y el servidor, para conectarse ahora al bus de servicios. Asimismo, los servidores deben conectarse al bus y esperar por las transacciones que les corresponde procesar. 2. Implementar un servicio de bases de datos que centralice toda la información de la empresa. Esto implica que los servidores dejan de manejar sus base de datos y, ahora, van a tener que solicitar los datos que requieran a través de este nuevo servicio. 3. Depurar los datos administrados por cada gerencia, de forma de tener un modelo de datos común a toda la empresa.
Ejercicio
Comente el siguiente párrafo, justificando sus comentarios. 1. El patrón Reflection permite la modificación dinámica de la estructura y comportamiento de un sistema durante su ejecución. Verdadero. Es una carácterística principal de Reflection. 2. Esto se logra mediante la separación de la funcionalidad en un nivel base y un nivel meta, donde el nivel base contiene información sobre el nivel meta. La afirmación es incorrecta. Es el nivel meta el cuál contiene información sobre el nivel base. 3. El nivel base incluye la lógica de la aplicación, mientras que el nivel meta provee mecanismos para analizar y modificar el nivel base en tiempo de ejecución. Verdadero. La separación de funcionalidades en los niveles es así. 4. La reflexión se basa en la premisa de que el sistema puede modificar su comportamiento únicamente durante el desarrollo. La afirmación es incorrecta, pues los cambios de comportamiento ocurren durante la ejecución, no durante el “desarrollo”.