Patrones
Patrones
Es una solución reusable de problemas comunes.
Los patrones solucionan problemas que existen en
muchos niveles de abstracción.
desde el análisis hasta el diseño y desde la
arquitectura hasta la implementación.
Es una solución a un problema de diseño no trivial
que es efectiva y reusable: a) ya ha resuelto un
problema similar anteriormente de manera
satisfactoria b) se puede aplicar a muchos
problemas de diseño en diferentes circunstancias.
Patrones de Alto nivel: Patrones de Arquitectura
Patrones de nivel medio: Patrones de Diseño
Patrones de bajo nivel: Idioms
Patrones de Arquitectura
Son formas predefinidas de resolver problemas
de aquitectura.
La arquitectura de un sistema de software casi
nunca se limita a un solo patron o estilo de se
arquitectura.
Estilos Arquitectónicos
Categorías Estilos
Comunicación SOA (Service Oriented Architecture)
Bus de Mensajes
Distribución Cliente/Servidor
3-Capas
N-Capas
Estructura Basado en Componentes
Orientado a Objetos
Arquitectura de Capas
Otras Dirigido por eventos
Modelo-Vista-Controlador
Patrones de Comunicación: SOA
Esta arquitectura permite que la funcionalidad de la aplicación se provea combinando un conjunto de Servicios.
Los servicios son débilmente acoplados ya que se basan en interfaces estándar que se pueden invocar publicar y describir.
Se basan en un esquema de interacción con mensajes a través de sus interfaces según el esquema de definición.
El estilo SOA permite empaquetar los proceso de negocios dentro de servicios interoperables, usando un amplio rango de protocolos y de formatos de datos para comunicar la información.
XML
HTTP
WSDL
SOAP
REST
Serialización de Objetos
Patrones de Comunicación: Bus de
Mensajes (Message Bus)
Es un estilo para diseñar aplicaciones donde la
interacción entre aplicaciones se realiza por
pase de mensajes (usualmente asincrónicos)
sobre un bus común.
Oracle Service Bus.
IBM WebSphere MQ.
Message Queue Server
Patrones de Distribución: Cliente/Servidor
Describe un sistema distribuido que consta de
un cliente, un sistema servidor, y una red de
comunicación. (2-tier)
El servidor es accedido por múltiples clientes.
Generalmente, una aplicación de IUG que se
comunica con el servidor de base de datos que
contiene la lógica de negocio en forma de
procedimientos almacenados.
Patrones de Distribución: N-Tier / 3-Tier
Es un estilo que describe la separación de la
funcionalidad de la misma manera que el estilo
de capas pero cada segmento de capa puede ser
localizado en una computadora físicamente
separada.
Las N-tier se caracterizan por la descomposición
funcional de aplicaciones, componentes de
servicios, lo que provee escalabilidad,
disponibilidad, manejabilidad, mantenibilidad y
reutilización.
Cada capa es independiente de las demás.
Cliente
Navegador
Presentación
Servidor Web
Lógica de NegocioMiddleware
Aministración de Recursos
Tecnología .Net
Tecnología J2EE
Patrones de Estructura: Basado en
Componentes
Esta arquitectura describe un enfoque basado
en la descomposición del diseño en
componentes funcionales o lógicos que
exponen interfaces de comunicación que
contienen métodos eventos y propiedades
Es un nivel de abstracción más alto que el
principio orientado a objeto.
Un componente es un paquete, un servicio web,
o un módulo.
Patrones de Estructura: Diseño Dirigido por
Dominio
Es un estilo orientado a objeto que se enfoca en
el modelado del dominio del negocio y en la
definición de las entidades el negocio dentro del
dominio.
El modelo de dominio es el núcleo del sistema.
Patrones de Estructura: Arquitectura de
Capas
Se enfoca en el agrupamiento de la
funcionalidad de la aplicación en distintas capas
ubicadas una sobre la otra.
La funcionalidad de cada capa está relacionada
a un mismo rol o responsabilidad común.
L acomunicación entre caps es explícita y
débilmente acoplada.
Las capas pueden residir en la misma
computadora física
Arquitectura Dirigida por eventos
Consiste en el diseño e implementación de
aplicaciones que transmiten eventos entre
componentes de SW débilmente acoplados y
servicios
Consiste en emisores o agentes y consumidores
de eventos, que tienen la responsabilidad de
reaccionar a los eventos.
La API Java Swing se basa en una arquitectura
dirigida por eventos (biblioteca gráfica)
Arquitectura de patrón Modelo –Vista-
Controlador
Es un patrón de arquitectura de software que separa los datos de una aplicación, la interfaz de usuario, y la lógica de control en tres componentes distintos.
Se ve frecuentemente en aplicaciones web, donde:
la vista es la página HTML y el código que provee de datos dinámicos a la página.
El modelo es el Sistema de Gestión de Base de Datos y la Lógica de negocio.
El controlador es el responsable de recibir los eventos de entrada desde la vista.
Elementos del patrón:
Modelo: datos y reglas de negocio
Vista: muestra la información del modelo al
usuario
Controlador: gestiona las entradas del usuario
Patrones de Diseño
Un patrón de diseño es una descripción de
clases y objetos comunicándose entre sí,
adaptado para resolver un problema de
diseño general en un contexto particular
Elementos de un patrón
Nombre: describe el problema de diseño.
El problema: describe cuándo aplicar el patrón.
La solución: describe los elementos que
componen el diseño, sus relaciones,
responsabilidades y colaboración
Categorías basadas en su PROPÓSITO
Creacionales: Patrones creacionales tratan con
las formas de crear instancias de objetos.
Estructurales: Los patrones estructurales
describen como las clases y objetos pueden ser
combinados para formar grandes estructuras y
proporcionar nuevas funcionalidades.
Comportamiento: Los patrones de
comportamiento nos ayudan a definir la
comunicación e iteración entre los objetos de un
sistema. El propósito de este patrón es reducir
el acoplamiento entre los objetos.
Patrones creacionales
Abstract Factory
Builder
Factory Method
Prototype
Singleton
Patrones Estructurales
Adapter
Bridge
Composite
Decorator
Facade
Flyweight
Proxy
Patrones de Comportamiento
Chain of Responsibility
Command
Interpreter
Iterator
Mediator
Memento.
Observer
State
Strategy
Template Method
Visitor
Creacional: Singleton
Muchas veces, en nuestras aplicaciones necesitamos acceder fácilmente
a un objeto único, la instancia única de cierta clase: un gestor de
impresoras, un pool de conexiones a una base de datos, un gestor de
parámetros de configuración, etc.
Estructural: Composición
Se trata de un patrón estructural y su propósito
es la composición de objetos en estructuras de
árbol para representar jerarquías parte-todo. El
patrón permitirá a los clientes tratar de forma
uniforme los objetos y las composiciones
Comportamiento: State
Se utiliza cuando el comportamiento de un objeto cambia dependiendo del estado del mismo y existe una gran complejidad en el código.
Se implementa una clase para cada estado diferente del objeto y el desarrollo de cada método según un estado determinado.
El objeto de la clase a la que le pertenecen dichos estados resuelve los distintos comportamientos según su estado, con instancias de dichas clases de estado.
Patrones J2EE
De acuerdo al libro "J2EE PATTERNS Best Practices and Design Strategies", existen 5 capas en la arquitectura J2EE:
Cliente
Presentación
Negocios
Integración
Recurso
http://java.ciberaula.com/articulo/diseno_patrones_j2ee/
http://java.sun.com/blueprints/corej2eepatterns/Patterns/index.html
Idioms
Patrones de bajo nivel.
Solucionan problemas específicos de la
implementación en un lenguaje de
programación.
Ej: Conveciones de nombres, Formato para el
código fuente, Manejo de memoria.
Top Related