05 Flashcards
(6 cards)
Modelos de capas
Este tipo de arquitecturas permiten dividir el problema en subproblemas. Fomentan el uso de interfaces, permiten intercambiar componentes reutilizando conectores y protocolos ya definidos. Existen dos tipos de separación por capas: layers (o capas lógicas) y tiers (o capas físicas).
Modelos de capas: Layers
Los layers o capas son una agrupación lógica de componentes y funcionalidades de un sistema. Estas capas pueden ser verticales u horizontales. En cada caso, la comunicación se da entre layers adyacentes. Cada capa representa un módulo con responsabilidades limitadas, coherencia y cohesión.
Modelos de capas: Tiers
Los tiers describen la distribución física de componentes y funcionalidad de un sistema.
Interfaces
Las interfaces permiten la comunicación entre dos o más componentes/servicios/sistemas. Diferentes contratos permiten diferentes clientes. Solamente se expone una parte del sistema y por lo tanto se esconde la implementación, por lo que la misma puede ser modificada sin necesidad de cambiar el contrato, pero el cambio de contrato implica una nueva versión.
Problemas de interfaces
Los problemas que surgen con las interfaces refieren a la integración y cambios de software. Por un lado, respecto de la integración, no todos los componentes exponen interfaces útiles, y la complejidad de integración aumenta exponencialmente con la cantidad de componentes a integrar. Por el lado de los cambios, hay que analizar cómo conviene manejar cambios en una API ya definida, y que pasa en un sistema que está altamente acoplado a una API que potencialmente podría cambiar.
Respecto de la orientación del contrato de la interfaces, estos pueden estar orientados a entidades o procesos.
En el caso de las entidades, se favorece un desacoplamiento entre sistemas y está la flexibilidad como objetivo, por lo que se admiten extensiones a una funcionalidad no definida en su totalidad. En el caso de los procesos, los componentes suelen estar altamente acoplados, el objetivo principal es la alta performance y la funcionalidad puede ser conocida y diversa.
Clasificación de interfaces
Las interfaces se pueden clasificar (4) en
- Web APIs (REST based APIs),
- Remote APIs (CORBA, RPC),
- library-based o frameworks (Java API, Android API) y
- OS related (POSIX, WinAPI).