Sei sulla pagina 1di 10

INSTITUTO

TECNOLGICO
DE
HERMOSILLO
Ejemplos de aplicacin
de patrones
arquitectnicos
Estilos y Patrones de
Arquitectura y Diseo de
Software

Dr. Oscar Mario Rodrguez Elias


Garca Jimnez Omar Francisco
S9B
10330450

Contenido
INTRODUCCIN ................................................................................................................................... 2
DESARROLLO ....................................................................................................................................... 3
Patrones de estructura.................................................................................................................... 3
Capas ........................................................................................................................................... 3
Tuberas y filtros .......................................................................................................................... 3
Blackboard................................................................................................................................... 4
Patrones de distribucin ................................................................................................................. 4
Broker .......................................................................................................................................... 4
Cliente-servidor ........................................................................................................................... 5
Peer to peer................................................................................................................................. 5
Patrones de sistemas interactivos .................................................................................................. 6
Modelo Vista-Controlador .......................................................................................................... 6
Controlador-Supervisor ............................................................................................................... 7
Presentacin abstraccin-control ............................................................................................... 7
CONCLUSIONES ................................................................................................................................... 8
BIBLIOGRAFA ...................................................................................................................................... 9

INTRODUCCIN
A continuacin se detallas algunos ejemplos de aplicacin de patrones arquitectnicos para el
desarrollo de software, identificando las razones que los hacen candidatos a construirse usando
dicho patrn por encima de otros, as como reconocer las diferencias entre algunos de estos que
podran percibirse como similares.

DESARROLLO
Patrones de estructura
Capas
Problema a resolver: Se desea desarrollar un sistema de inventario en ambiente de escritorio para
una ferretera, la cual consistir en la interfaz de usuario, la lgica de procesamiento, y una base
de datos local.
Patrn a utilizar: La arquitectura en capas, La programacin por capas es un estilo de
programacin en el que el objetivo primordial es la separacin de la lgica de negocios de la lgica
de diseo; un ejemplo bsico de esto consiste en separar la capa de datos de la capa de
presentacin al usuario.
Justificacin: Es un sistema sencillo de corto alcance, por lo que un patrn simple que se ha
utilizado muchsimas veces resulta ser suficiente.
Descripcin de la solucin: Divisin del sistema en las siguientes capas:

Capa de presentacin: es la que ve el usuario, presenta el sistema al usuario, le comunica la


informacin y captura la informacin del usuario en un mnimo de proceso. Tambin es
conocida como interfaz grfica y debe tener la caracterstica de ser entendible y fcil de usar
para el usuario.
Capa de negocio: es donde residen los programas que se ejecutan, se reciben las peticiones
del usuario y se envan las respuestas tras el proceso. Aqu es donde se establecen todas las
reglas que deben cumplirse.
Capa de datos: es donde residen los datos y es la encargada de acceder a los mismos. Est
formada por uno o ms gestores de bases de datos que realizan todo el almacenamiento de
datos, reciben solicitudes de almacenamiento o recuperacin de informacin desde la capa de
negocio.

Tuberas y filtros
Problema a resolver: Desarrollar una aplicacin para comprar en lnea es un procesamiento clsico
de datos: el cliente hace un requerimiento; el requerimiento se valida; un Web Service toma el
objeto de la base de datos; se lo convierte a HTML.
Patrn a utilizar: Ha prevalecido el nombre de tubera-filtros por ms que se sabe muy bien que los
llamados filtros no realizan forzosamente tareas de filtrado, como ser eliminacin de campos o
registros, sino que ejecutan formas variables de transformacin, una de las cuales puede ser el
filtrado. Una tubera es una popular arquitectura que conecta componentes computacionales
(filtros) a travs de conectores (pipes), de modo que las computaciones se ejecutan a la manera de
un flujo. El sistema tubera-filtros se percibe como una serie de transformaciones sobre sucesivas
piezas de los datos de entrada. Los datos entran al sistema y fluyen a travs de los componentes.
Justificacin: Es adecuado porque proporciona la secuencia de pasos necesaria para procesar las
compras en un sitio de Web.

Descripcin de la solucin: En la primera etapa, se obtiene la informacin del producto de la base


de datos de catlogo; en la siguiente, se procesa la direccin del comprador; otra etapa resuelve la
modalidad de pago; una etapa ulterior confecciona la factura y otra ms realiza el envo del pedido.
Cada etapa de la tarea representa una categora de trabajo.

Blackboard
Problema a resolver: Se requiere desarrollar una aplicacin para el reconocimiento del habla, con
la capacidad de identificar frases, y mostrarlas en pantalla, as como la posibilidad de usarse como
entrada para cualquier editor de texto.
Patrn a utilizar: Blackboard, el cual es til para problemas no determinsticos, consiste en subsistemas especializados que ensamblan su conocimiento para construir una solucin parcial o
aproximada.
Justificacin: Se eligi este patrn debido a que se prev que la tarea de reconocimiento se divida
en tareas independientes, cada una especializndose en resolver una parte del problema, las
cuales posteriormente comunicarn los resultados de sus acciones entre s.
Descripcin de la solucin: Las ondas detectadas seran primeramente divididas en segmentos que
contengan un significado reconocible, para despus verificar la sintaxis de las posibles frases. Para
esto se requieren conocimientos acsticos-fonticos as como algoritmos estadsticos, por lo cual
no es posible combinar todos los procesos para formar un nico procedimiento para el
reconocimiento. Adems, se requieren tareas adicionales para el manejo de ambigedades en el
lenguaje, ruido de fondo en las grabaciones, as como el tratamiento frente a deficiencias de
pronunciacin y vocabulario.

Patrones de distribucin
Broker
Problema a resolver: Se pretende desarrollar un sistema de informacin de una ciudad diseado
para ejecutarse en una red de rea amplia. Algunas computadoras en la red hospedan uno o ms
servicios que mantienen informacin sobre eventos, restaurantes, hoteles, monumentos histricos,
transporte pblico, entre otros. Los turistas, por toda la ciudad, pueden obtener la informacin que
les interese, desde terminales, utilizando un browser WWW. Se espera que el sistema cambie y
crezca continuamente, as que los servicios individuales debern desacoplarse unos de otros.
Adems, el software de la terminal deber accesar a los servicios sin conocer su localizacin, lo
que permitir moverlos, replicarlos o migrarlos.
Patrn a utilizar: Broker reduce la complejidad en el desarrollo de aplicaciones distribuidas porque
hace que la distribucin sea transparente al desarrollador, mediante la introduccin de un modelo
de objetos en el que los servicios distribuidos se encapsulan en objetos. Por lo tanto, los sistemas
Broker ofrecen una ruta para la integracin de dos tecnologas: distribucin y objetos
Justificacin: Cuando los componentes distribuidos se comunican entre s, se requiere algn medio
de comunicacin entre procesos. Si los componentes manejan la comunicacin por s mismos, el
sistema se enfrentar a diversas dependencias y limitaciones. Por ejemplo, si el sistema se vuelve

dependiente del mecanismo de comunicacin utilizado, los clientes necesitan conocer la ubicacin
de los servidores, y, en muchos casos, la solucin se limita a un solo lenguaje de programacin. Se
necesitan servicios para aadir, quitar, intercambiar, activar y localizar componentes.
Descripcin de la solucin: El patrn Broker se utiliza para balancear las siguientes fuerzas:

Los componentes deben ser capaces de accesar a los servicios provedos por otros a travs
de invocaciones de servicios remotos transparentes en ubicacin.
Se necesita intercambiar, aadir y quitar componentes en tiempo de ejecucin.
La arquitectura debe esconder los detalles especficos de implementacin del sistema de los
usuarios de componentes y servicios.
Introducir un componente broker para lograr un mejor desacoplamiento de clientes y
servidores. Los servidores se registran con el broker, y hacen sus servicios disponibles a los
clientes a travs interfaces de mtodos. Los clientes accesan a la funcionalidad de los
servidores envindoles solicitudes va el broker. Las tareas de un broker incluyen localizar el
servidor apropiado, enviarle la solicitud, y transmitir resultados y excepciones, de regreso, al
cliente.

Cliente-servidor
Problema a resolver: Se requiere desarrollar un sencillo sitio web el cual servir para consultar
distintos libros, imgenes, notas de audio, videos, entre otros materiales, para conformar una
biblioteca escolar virtual para cierta universidad.
Patrn a utilizar: Cliente-servidor, arquitectura que consta de dos partes, el servidor la cual es una
estructura que se ejecuta en una o varias mquinas con el objetivo de responder a las demandas
de las mquinas clientes, para este fin se requiere la instalacin de programas especializados, se
le conoce como cliente a aquellos ordenadores que ejecutan una aplicacin diseada para
comunicarse con el servidor, e interpretar la informacin recibida por ste.
Justificacin: Este patrn se perfila como el ms adecuado ya que as se aprovecha mejor el ancho
de banda y el hardware de los servidores, adems de ofrecer una mayor seguridad y autonoma.
Descripcin de la solucin: La aplicacin constar de un nico servidor en el que se alojar el
material designado por el administrador para la consulta de los estudiantes, los cuales actuaran
como clientes.

Peer to peer
Problema a resolver: Disear un sistema de administracin autnoma, el cual tenga la capacidad
de unirse con otras aplicaciones para ejecutar y hacer comparaciones de datos bioinformticos con
los ms de 25 diferentes servicios de anlisis que ofrece. Uno de sus propsitos consiste en
facilitar el intercambio de tcnicas de anlisis dentro de una comunidad local.
Patrn a utilizar: Las redes P2P permiten el intercambio directo de informacin, en cualquier
formato, entre los ordenadores interconectados. Las redes peer-to-peer aprovechan, administran y
optimizan el uso del ancho de banda de los dems usuarios de la red por medio de la conectividad
entre los mismos.

Justificacin: En la actual Internet, el ancho de banda o las capacidades de almacenamiento y


cmputo son recursos caros. En aquellas aplicaciones y servicios que requieran una enorme
cantidad de recursos pueden usarse las redes P2P.
Descripcin de la solucin: Implementar el sistema de tal forma que priorice la distribucin de
datos, obteniendo ms rendimiento en las conexiones y transferencias que con algunos mtodos
centralizados convencionales, donde una cantidad relativamente pequea de servidores provee el
total del ancho de banda y recursos compartidos para un servicio o aplicacin.

Patrones de sistemas interactivos


Modelo Vista-Controlador
Problema a resolver: Se requiere disear una aplicacin web para la gestin de libros y revistas de
una librera la cual debe incorporar un inicio de sesin para varios usuarios.
Patrn a utilizar: MVC se basa en la separacin de la aplicacin en tres capas principales: Modelo,
Vista y Controlador. Modelo: es la representacin especfica del dominio de la informacin sobre la
cual funciona la aplicacin. El modelo es otra forma de llamar a la capa de dominio.
Vista: Se presenta el modelo en un formato adecuado para interactuar, usualmente un elemento de
interfaz de usuario.
Controlador: Este responde a eventos, usualmente acciones del usuario e invoca cambios en el
modelo y probablemente en la vista.
Justificacin: Se trata de un modelo muy maduro y que ha demostrado su validez a lo largo de los
aos en todo tipo de aplicaciones, y sobre multitud de lenguajes y plataformas de desarrollo.
Descripcin de la solucin: El usuario interacta con la interfaz de usuario de alguna forma (por
ejemplo, el usuario pulsa un botn, enlace, etc.)
El controlador recibe (por parte de los objetos de la interfaz-vista) la notificacin de la accin
solicitada por el usuario. El controlador gestiona el evento que llega, frecuentemente a travs de un
gestor de eventos (handler) o callback.
El controlador accede al modelo, actualizndolo, posiblemente modificndolo de forma adecuada a
la accin solicitada por el usuario. Los controladores complejos estn a menudo estructurados
usando un patrn de comando que encapsula las acciones y simplifica su extensin.
El controlador delega a los objetos de la vista la tarea de desplegar la interfaz de usuario. La vista
obtiene sus datos del modelo para generar la interfaz apropiada para el usuario donde se refleja
los cambios en el modelo. El modelo no debe tener conocimiento directo sobre la vista. El
controlador no pasa objetos de dominio (el modelo) a la vista aunque puede dar la orden a la vista
para que se actualice. La interfaz de usuario espera nuevas interacciones del usuario, comenzando
el ciclo nuevamente.

Controlador-Supervisor
Problema a resolver: Disear una aplicacin de fotos que permita examinarlas, girarlas, recortarlas,
etiquetarlas, categorizarlas, compartirlas en la red, as como sincronizarlas en varios dispositivos,
se especific que deba de ser una aplicacin distribuida mediante la tienda de Windows.
Patrn a utilizar: Controlador-Supervisor, ya que separa el comportamiento de la presentacin, la
interfaz de usuario y la lgica de negocios. El modelo representa el estado y las operaciones de los
objetos de negocios que manipula la aplicacin. El presentador contiene la lgica para responder a
estos eventos, actualizar el modelo y, a su vez, manipular el estado de la vista.
Justificacin: El modelo de controlador supervisor sirvi para separar la vista de las
responsabilidades del presentador. En la mayora de las pginas de la aplicacin, tambin usamos
el modelo de mediador para separar y coordinar las responsabilidades de presentacin. Esta
separacin permiti pruebas de la aplicacin ms sencillas y un mejor entendimiento del cdigo.
Descripcin de la solucin: A medida que se desarrolla la interfaz de usuario para una aplicacin
de carcter ms declarativo, resulta ms fcil separar las responsabilidades de la vista de las
clases de presentador, y la vista puede interactuar directamente con los datos de la aplicacin
mediante el enlace de datos.

Presentacin abstraccin-control
Problema a resolver: Consideremos un sistema de Informacin Electoral, se necesitan mostrar
diferentes versiones, adaptan la interfaz de usuario a necesidades especficas, un ejemplo sera la
opcin de ver las bancas del parlamento en funcin de los partidos polticos.
Patrn a utilizar: El patrn de arquitectura PAC define una estructura jerrquica de agentes
cooperativos. Cada agente es responsable de un aspecto especfico de la funcionalidad de la
aplicacin y est compuesto por tres componentes: presentacin-abstraccin-control. Esta
subdivisin separa los aspectos de HCI (Human Computer interaction) de los agentes, del ncleo
funcional de cada uno y de los mecanismos de comunicacin con otros agentes.
Justificacin: Es adecuado ya que permite organizar el conjunto de agentes que forman parte de
un sistema interactivo, para que funcionen en forma integrada. Los agentes normalmente
mantienen su estado y sus datos, sin embargo tienen que cooperar y trabajar en conjunto. Los
agentes proveen su propia interfaz de usuario pues cada uno tiene una cierta interaccin prevista
con el usuario. Sin embargo, las modalidades de interaccin deben ser similares para que la HCI
del producto sea homognea. Separar la presentacin, de la funcionalidad, para que los cambios
en la interfaz no afecten demasiado al resto del sistema.
Descripcin de la solucin: Roles de los agentes:

Los agentes de alto nivel proveen el ncleo de la funcionalidad del sistema. Este tipo de agente
es quien coordina y estructura la funcionalidad del sistema (mens, barras de herramientas,
etc), auto-contenidos, sobre los cuales los usuarios del sistema actan.
Los agentes de bajo nivel representan conceptos.
Los agentes intermedios representan combinaciones o relaciones entre agentes de bajo nivel,
en este tipo de agentes se pueden representar diversas vistas sobre los datos.

CONCLUSIONES
Con los ejemplos presentados en este documento, primeramente se reconoce la importancia de
tener una estructura a seguir para el correcto desarrollo de una aplicacin de software, que cumpla
su objetivo y que sea eficiente, adems de aprender a identificar el o los patrones (y sus variantes)
ms adecuadas a la hora de llevar a cabo un proyecto.

BIBLIOGRAFA
Mendoza, S. (2007, 05). Seminario de sistemas distribuidos. Posgrado en Ciencia e Ingeniera de la
Computacin. Recuperado 11, 2014, de http://www.mcc.unam.mx/~cursos/Algoritmos/javaDC992/broker.html
Valle, J. (2005, 07). Definicin arquitectura cliente servidor. Monografas. Recuperado 09, 2014, de
http://www.monografias.com/trabajos24/arquitectura-cliente-servidor/arquitectura-clienteservidor.shtml
Hernndez, P. (2010, 12). Red Peer to Peer. Ecured. Recuperado 10, 2014, de
http://www.ecured.cu/index.php/Red_Peer_to_Peer#Aplicaciones_de_las_redes_P2P
Reynoso, C. (2007, 10). Estilos y Patrones en la Estrategia de Arquitectura de Microsof. Estilos y
Patrones. Recuperado 10, 2014, de http://carlosreynoso.com.ar/archivos/arquitectura/Estilos.PDF
(2014, 03). Disear la experiencia del usuario con Hilo (aplicaciones de la Tienda Windows con C++
y XAML). Centro de desarrollo - Windows. Recuperado 11, 2014, de
http://msdn.microsoft.com/es-es/library/windows/apps/jj160320.aspx
(2010, 09). ASP.NET MVC 3 Framework. Universidad de Alicante. Recuperado 11, 2014, de
http://si.ua.es/es/documentacion/asp-net-mvc-3/1-dia/modelo-vista-controlador-mvc.html

Potrebbero piacerti anche