Sei sulla pagina 1di 3

ESTILOS Y PATRONES ARQUITECTNICOS

Qu es un estilo arquitectnico?

Es llamado tambin patrn arquitectnico. Es un conjunto de principios y caractersticas que identifican y proporcionan
un marco abstracto para una familia de sistemas. El uso de estilos arquitectnicos mejora muchos aspectos del diseo
de la arquitectura como la reutilizacin de ste.
Uno de los beneficios ms importante de utilizar los estilos arquitectnicos es que ellos proporcionan un lenguaje
comn.

La arquitectura de un sistema de software nunca se limita a un nico estilo arquitectnico, a menudo se combinan los
estilos arquitectnicos.

Estilo Arquitectnico Cliente/Servidor

Divide el sistema en 2 aplicaciones, donde el cliente realiza solicitudes al servidor.


En la mayora de los casos, el servidor es una base de datos con la lgica de aplicacin representado como
procedimientos almacenados.

Otras variaciones en el estilo cliente/servidor:


Cliente-cola-cliente: permite a los clientes comunicarse con otros clientes a travs de una cola basada en
servidor.
Par a par (P2P): permite que el cliente y el servidor intercambien sus roles con el fin de distribuir y sincronizar
archivos e informacin a travs de mltiples clientes.
Servidores de aplicaciones: un estilo arquitectnico especializado donde los hosts del servidor ejecutan
aplicaciones y servicios que un cliente ligero accede a travs de un navegador o software instalado cliente
especializado.

Principales beneficios: Mayor seguridad, Acceso de datos centralizados, Facilidad de mantenimiento.

Estilo Arquitectnico basado en componentes


Se descompone el diseo de aplicaciones en componentes funcionales o lgicos reutilizables que exponen interfaces de
comunicacin bien definidos.

El principio clave del estilo basado en componentes es el uso de componentes que son:
Reutilizable: diseados para ser utilizados en diferentes escenarios, algunos componentes pueden ser
diseados para una tarea especfica.
Reemplazable: se pueden sustituir fcilmente.
Contexto no especfico: diseados para operar en diferentes entornos y contextos.
Extensible: un componente puede ser extendido a partir de componentes existentes para proporcionar un
nuevo comportamiento.
Encapsulado: encapsula componentes con tal de no revelar detalles de los procesos internos.
Independiente: diseados para tener dependencias mnimos sobre otros componentes.

Principales beneficios: Facilidad de implementacin, Costo reducido, Facilidad de desarrollo, Reutilizable, Mitigacin de
complejidad tcnica.

Estilo Arquitectnico Domain Driven Design


Orientada a objetos, centrado en el modelado del dominio de negocio y la definicin de objetos de negocio basados en
entidades dentro del mbito empresarial.

Para aplicar un buen conocimiento del dominio de negocio, el equipo de desarrollo a menudo trabaja con expertos en
el dominio de negocio para modelar el dominio. Todo el equipo se compromete a utilizar un solo idioma que se centra
en el mbito empresarial.

El objetivo no es solo poner en prctica el idioma que se utiliza, sino tambin mejorar y perfeccionar el lenguaje de la
comunidad.
Principales beneficios: Comunicacin, Extensible, Comparable.

Arquitectura en capas

Se enfoca en la distribucin de roles y responsabilidades de forma jerrquica proveyendo una forma muy efectiva de
separacin de responsabilidades. El rol indica el modo y tipo de interaccin con otras capas, y la responsabilidad indica
la funcionalidad que est siendo desarrollada.
Las comunicacin entre capas es explicita y dbilmente acoplado, apoya la flexibilidad y facilidad de mantenimiento.
Las capas de una aplicacin pueden residir en el mismo equipo fsico (el mismo nivel) o pueden estar distribuido en
equipos independientes (n-niveles), y los componentes de cada capa se comunican con los componentes de otras capas
a travs de interfaces bien definidas.

Ejemplo de un diseo tpico de una aplicacin web:


Capa de presentacin: funcionalidad relacionada con la interfaz de usuario.
Capa de negocio: procesamiento de reglas de negocio.
Capa de datos: funcionalidad relacionada con el acceso a datos, a menudo aplicado casi en su totalidad a partir
de datos de alto nivel marcos de acceso.
Principios comunes para los diseos que utilizan la arquitectura en capas incluyen:
Abstraccin: abstrae la vista del sistema en su conjunto y da suficiente detalle para comprender las funciones
y responsabilidades de las capas.
Encapsulacin: se da sobre tipos de datos, mtodos y propiedades.
Capas funcionales definidos: separacin entre las funcionalidad en cada capa es clara.
Alta cohesin: bien definidos los lmites de la responsabilidad de cada capa.
Reutilizable: capas inferiores no tiene dependencias en las capas ms altas, esto permite ser reutilizable.
Articulacin flexible: la comunicacin entre capas se basa en la abstraccin y eventos.
Los siguientes son los principios fundamentales de los patrones de presentacin separados:
La separacin de las preocupaciones: MVC tiene 3 funciones: modelo, vista y controlador.
Basa en eventos de notificaciones: patrn Observer que se utiliza para proporcionar notificaciones.
Manejo de eventos delegado: el controlador maneja eventos disparados desde los controles.
Principales beneficios: Abstraccin, Aislamiento, Manejabilidad, Rendimiento, Reutilizacin, Capacidad de prueba.

Estilo Arquitectnico Bus de mensajes


Un estilo de arquitectura que prescribe el uso de un sistema de software que puede recibir y enviar mensajes de uno o
ms canales de comunicacin, por lo que las aplicaciones puedan interactuar sin necesidad de conocer detalles
especficos acerca de uno al otro.

Es un estilo para el diseo de aplicaciones en las que la interaccin entre las aplicaciones se logra mediante la
transmisin de mensajes (por lo general de forma asncrona) por un bus comn. A menudo se implementa utilizando
un sistema de mensajera tales como Message Queuing. Un bus de mensaje proporciona la capacidad de manejar:
Comunicaciones de mensajes orientados: toda la comunicacin entre las aplicaciones se basa en mensajes que
utilizan esquemas conocidos.
Lgica de procesamiento complejo: operaciones complejas se pueden ejecutar mediante la combinacin de
un conjunto de operaciones ms pequeas, tareas especficas.
Las modificaciones a la lgica de procesamiento: se basa en esquemas y comandos comunes.
Integracin con diferentes ambientes: se puede interactuar con las aplicaciones desarrolladas por diferentes
entornos Microsoft .NET y Java.
Las variaciones en el estilo de bus de mensajes incluyen:
Enterprise Service Bus (ESB): utiliza el servicio para la comunicacin entre el bus y los componentes conectados
al bus. Proporciona los servicios que transforman los mensajes de un formato a otro.
Internet Service Bus (ISB): aplicaciones alojadas en la nube. Es el uso de identificadores uniformes re recursos
(URI) y polticas para controlar el encaminamiento de la lgica a travs de aplicaciones y servicios en la nube.

Principales beneficios: Extensibilidad, Baja complejidad, Flexibilidad, Articulacin flexible, Escalabilidad, Simplificacin
de aplicacin.
Estilo Arquitectnico n-nivel/ 3-nivel
Divide funcionalidad de segmentos separados de la misma manera como el estilo en capas, pero con cada segmento de
ser un nivel situado en un equipo separado fsicamente. Se caracteriza por la descomposicin funcional de aplicaciones,
los componentes de servicio, y su implementacin distribuida, proporcionando una mejor escalabilidad, disponibilidad,
capacidad de gestin y la utilizacin de recursos. La comunicacin entre los niveles normalmente es asncrona con el fin
de apoyar una mejor escalabilidad.
Principales beneficios: Mantenibilidad, Escalabilidad, Flexibilidad, Disponibilidad.

Estilo Arquitectnico Orientado a objetos


Un paradigma de diseo basado en divisin de responsabilidades para una aplicacin o sistema en objetos reutilizables
y autosuficientes individuales, cada uno que contiene los datos y el comportamiento pertinentes al objeto.

Los principios fundamentales de la arquitectura orientada a objetos son:


Abstraccin: permite reducir una operacin compleja en una generalizacin que conserva las caractersticas
de base de la operacin.
Composicin: los objetos pueden ser ensambladas a partir de otros objetos.
Herencia: los objetos pueden heredad de otros objetos. La herencia hace que el mantenimiento y las
actualizaciones sea ms sencilla, como cambios en el objeto base se propagan automticamente a los objetos
heredados.
Encapsulacin: objetos exponen funcionalidad solo a travs de mtodos, propiedades y eventos, y ocultar los
detalles internos, tales como estado y variables de otros objetos.
Polimorfismo: permite anular el comportamiento de un tipo base que soporta las operaciones en su aplicacin.
Desacoplamiento: los objetos pueden ser desacoplados de los consumidores mediante la definicin de una
interfaz abstracta que implementa el objeto y el consumidor puedan entender.
Principales beneficios: Comprensible, Reutilizable, Comprobable, Extensible, Altamente cohesivo.

Estilo Arquitectnico orientado a servicios (SOA)


Se refiere a las aplicaciones que exponen y consumen funcionalidad como un servicio mediante contratos y mensajes.
Se centra en proporcionar un esquema y la interaccin basada en mensajes con una aplicacin a travs de interfaces
que son aplicacin en el mbito, y no de componentes o basado en objetos.

Los principios fundamentales de la arquitectura SOA.


Los servicios son autnomos: cada servicio se mantiene, desarrolla, despliega y versiona de forma
independiente.
Los servicios son distribuibles: los servicios pueden estar ubicados en cualquier lugar de una red, local o
remota.
Los servicios son de forma flexible: cada servicio es independiente de los dems, pueden ser reemplazado o
actualizado sin romper las aplicaciones que lo utilizan.
Servicios de esquema de acciones y contratos, no de clase: servicios contratados de acciones y esquemas
cuando se comunican, las clases no internos.
La compatibilidad se basa en la poltica: significa la definicin de caractersticas tales como el transporte, el
protocolo y la seguridad.
Principales beneficios: Alineacin de dominio, Abstraccin, detectabilidad, Interoperabilidad, Racionalizacin.

Potrebbero piacerti anche