Hay arquitecturas que pueden ser mejores que otras, dependiendo de lo que necesitemos hacer o de con cual tengamos que trabajar , de lo que se pretende hacer o desarrollar, y de lo que se pretende obtener al terminar nuestro proyecto.
Los patrones arquitectónicos brindan una sugerencias para saber cual sera el indicado para nuestro proyecto o al menos con el que se puede trabajar y asi resolver que arquitectura nos ayudara.
Bass, L., Clements, P., & Kazman, R. (2013). Software Architecture in Practice. 2018, de slideplayer Sitio web: https://slideplayer.es/slide/12344964/
Ventajas:
-Reutilización de capas
-Facilita la estandarización
-Dependencias se limitan a intra-capa
-Contención de cambios a una o pocas capas
Desventajas:
-A veces no se logra la contención del cambio y se requiere una cascada de cambios en varias capas;
-Pérdida de eficiencia
-Trabajo innecesario por parte de capas más internas o redundante entre varias capas;
Patrones Arquitectónicos
De sistemas interactivos
modelo vista controlado(MVC)
El modelo contiene los datos y la funcionalidad esencial. Las vistas despliegan la información al usuario. Los controladores manejan la entrada. Las vistas y los controladores juntos componen la interfaz con el usuario. El mecanismo de cambio-propagación asegura la consistencia de la interfaz con el modelo.
Modelo: objeto aplicación. Encapsula el núcleo funcional y los datos involucrados.
Vistas: presentación de información por pantalla (al usuario).
Controlador: define la forma en la que debe reaccionar la interfaz del usuario, frente a la entrada de datos (del usuario).
Ventajas:
-Múltiples vistas para el mismo modelo,
-Vistas sincronizadas,
-Vistas y controladores intercambiables.
Desventajas:
-Mayor complejidad,
-Excesivos cambios potenciales,
-Relación estrecha entre vistas y controladores,
-Gran acoplamiento entre vsitas y controladores con el modelo.
De distribución
broker
Un broker es un mensajero, responsable de la transmisión de solicitudes de clientes a servidores, así como de la transmisión de respuestas y excepciones de servidores a clientes. Localiza al receptor de una solicitud basándose en un sistema de identificadores únicos. Ofrece API’s a clientes y servidores que incluyen operaciones para el registro de servidores, y la invocación de métodos de servidores
Debilidades:
- Eficiencia Restringida: Usualmente son más lentas que las aplicaciones cuya distribución de componentes es estática y conocida.
Los sistemas que dependen directamente de un mecanismo concreto para la comunicación entre procesos también dan un mejor desempeño que una arquitectura Broker.
Peer to peer
Sistemas descentralizados donde las computaciones pueden ser realizadas en cualquier nodo de la red En principio no hay distinción entre clientes y servidores El sistema se diseña para usar el poder de almacenamiento y procesamiento de múltiples computadoras en una red.
Los estándares y protocolos que posibilitan las comunicaciones, a través de los nodos, están embebidos en la propia aplicación.
Cada nodo debe ejecutar una copia de dicha aplicación.
Cliente servidor
Es una arquitectura basada en el principio clásico de divide y vencerás, donde el procesamiento se fracciona entre dos entidades fundamentales denominadas cliente y servidor .
El cliente se define como el PROCESO que requiere un servicio en particular.
El servidor se define como el PROCESO que provee dicho servicio
Ventajas:
-Centralización del control de los recursos, datos y accesos.
-Facilidad de mantenimiento y actualización del lado del servidor: Esto es porque el lado del servidor se puede mantener o actualizar fácilmente.
Desventajas:
-Si el número de clientes simultáneos es elevado, el servidor puede saturarse.
Provee una estructura para procesar flujos de datos. Cada paso de procesamiento se encapsula en un filtro. Los datos se pasan usando los “conectores” entre filtros adyacentes. Recombinando los filtros pueden construirse distintas familias de sistemas relacionados.
Ventajas:
-Los archivos intermedios no son necesarios,
flexibilidad,
-Reutilización de filtros,
-Rápida prototipación,
-Se puede lograr mayor eficiencia con procesamiento paralelo.
Desventajas:
-Compartir información de estado es caro y poco flexible,
-Hay ineficiencia por conversión de datos,
-Errores pueden implicar reiniciar el sistema.
Contiene la lógica de comunicación con otros sistemas que llevan a cabo tareas por la aplicación. Estos pueden ser monitores transaccionales, otras aplicaciones, sistemas de mensajerías,Esta capa debe abstraer completamente a las capas superiores (negocio) del dialecto utilizado para comunicarse con los repositorios de datos (PL/SQL, Transact-SQL, etc.).
De estructura
Tuberías y filtros
Arquitectura por capas
El objetivo principal es la separación de la capa cliente,
capa de presentación, capa de negocio y la capa de datos.
Capa de datos
Capa de Reglas de Negocio
Involucra cálculos basados en la información dada por el usuario y datos almacenados y validaciones. Controla la ejecución de la capa de acceso a datos y servicios externos.
La capa de la Presentación
Su principal responsabilidad es mostrar información al usuario, interpretar los comandos de este y realizar algunas validaciones simples de los datos ingresados.