Diseño y arquitectura de software Evidencia. Lenguaje descriptor y patrones de arquitectura de software Unidad 2. Modelos de arquitectura
Julio César Hernández Cruz al11503387 2013. Desarrollo de software
Índice de contenido Lenguaje descriptor y patrones de arquitectura de software.................................................................................3 Introducción...........................................................................................................................................................3 Caso de estudio......................................................................................................................................................3 Patrones aplicables.................................................................................................................................................3 Arquitectura de 3 niveles...................................................................................................................................3 Cliente – Servidor..............................................................................................................................................3 Patrones complementarios.....................................................................................................................................4 Tuberías y filtros................................................................................................................................................4 Solución..................................................................................................................................................................4 Requerimientos de software.............................................................................................................................4 Propuesta de arquitectura......................................................................................................................................5 Cliente – servidor : 3 niveles..............................................................................................................................5 Tuberías y filtros................................................................................................................................................5 Contrastando arquitectura y patrón de diseño.......................................................................................................6 Diferencias entre patrón y arquitectura.............................................................................................................6 Ejemplos de uso de la aplicación de patrones y arquitectura............................................................................6 Fuentes de consulta................................................................................................................................................7
2
Lenguaje descriptor y patrones de arquitectura de software Introducción Este documento presenta un caso para el análisis de los patrones aplicables y la definición de una arquitectura. Caso de estudio Una tienda de conveniencia es un establecimiento que ofrece productos de consumo y algunos otros de uso básico, dentro del negocio existen procesos de compra y recepción de proveedores, control de inventario y venta de productos a clientes. Toda la información debe estar centralizada en un servidor, y varios clientes pueden acceder mediante una interfaz ya sea para venta, recepción, consulta o actualización. Es necesario realizar respaldos periódicos y proveer de acceso a servicios externos. Patrones aplicables Para la solución se describen los siguientes patrones: Arquitectura de 3 niveles. Describe un diseño lógico segmentando los componentes de la aplicación en tres niveles o servicios, no describe una localización física, para ello utilizare otro patrón. Los niveles de este modelo son: •
Presentación. Proporciona la interfaz gráfica de usuario d e la aplicación.
•
Negocio. Describe la implementación de la funcionalidad del negocio.
•
Datos. Proporciona acceso a las bases de datos. Presentación Negocio Datos
Cliente – Servidor El patrón anterior forma parte de este patrón. El patrón cliente servidor describe cierta información centralizada en un equipo denominado servidor y varios equipos (clientes) que acceden para solicitar o actualizar dicha información. Cliente
Servidor
3
Patrones complementarios Para realizar respaldos y algunas otras tareas internas utilizaré el patrón tubería y filtro. Tuberías y filtros Este patrón describe la reutilización, modificación y transformación de información o fuentes, también conocida con el nombre de flujo de datos. Fuente
tubería
Filtro
tubería
Salida
Solución La solución contempla el uso del patrón estructural cliente servidor en conjunto con el patrón 3 niveles y la implementación de tuberías y filtros para el manejo de cierta información como los respaldos. Es necesario tomar en cuenta lo siguientes para la implementación de la solución: Requerimientos de software •
Java. Lenguaje orientado a objetos para la construcción de la solución, en este lenguaje se construirá la aplicación que dará soporte a la interfaz gráfica (swing y AWT), la lógica del negocio y la conexión con los datos
•
MySQL. Para la parte de los datos y su administración es necesario un manejador de base de datos, para ello se instalará en el servidor una base de datos relacional junto con las herramientas de administración de MySQL.
4
Propuesta de arquitectura Cliente – servidor : 3 niveles
TuberĂas y filtros bd.dat
respaldar
comprimir
bd.zip
5
Contrastando arquitectura y patrón de diseño Diferencias entre patrón y arquitectura Cada uno de los patrones mencionados y los existentes poseen una característica que los diferencia: son únicos, es decir, no reinventan soluciones a patrones conocidos. Los patrones son un conjunto piezas pre-armadas de un rompecabezas(la arquitectura), cuando se construye una arquitectura es común utilizar patrones para facilitar la construcción, es decir, ya solo tenemos que armar lo que resta y tendremos una arquitectura funcional
Todo lo anterior en un nivel alto de abstracción permite tener vistas del sistema para analizar y simular el funcionamiento, en esta etapa se da solución a posibles deficiencias y se identifican la fuerzas que pudieran intervenir en el futuro. Ejemplos de uso de la aplicación de patrones y arquitectura Todo software y su implementación se construyo en base a una arquitectura algunos ejemplos son: •
Cliente – Servidor. El ejemplo más conocido de esta arquitectura son las páginas web, las cuales implican el establecimiento de un servidor web en donde se alojan los archivos fuente de las páginas y por parte del cliente un navegador que envía peticiones obteniendo como respuesta la visualización del contenido de una página.
6
•
Tuberías y filtros. Un ejemplo de este patrón, también conocido con el alias de flujo de datos puede ser cuando tenemos un archivo y para enviarlo con un tamaño más pequeño lo comprimimos. Archivo.pdf
Comprimir
Archivo.zip
Fuentes de consulta Diseño y arquitectura de software. Universidad Abierta y a Distancia de México. Chapter 3: Architectural Patterns and Styles, | en línea | . MSDN. Recuperado el 9 de marzo de 2013, de: http://msdn.microsoft.com/en-us/library/ee658117.aspx Darío Cerredelo (2012). Guía de Arquitectura N-Capas DDD .NET 4.0, | en línea |. Recuperado el 9 de marzo de 2013, de: http://geeks.ms/blogs/dcerredelo/archive/2012/04/02/gu-237-a-de-arquitectura-n-capas-ddd-net-4-0.aspx Three-Layered Services Application, | en línea |. MSDN. Recuperado el 9 de marzo de 2013, de: http://msdn.microsoft.com/en-us/library/ff648105.aspx Using a Three-Tier Architecture Model (COM+), | en línea |. Windows Dev Center. Recuperado el 9 de marzo de 2013, de: http://msdn.microsoft.com/en-us/library/windows/desktop/ms685068(v=vs.85).aspx Parikshit Patel (2009). Three Layer Architecture in C# .NET, | en línea |. Code Project. Recuperado el 13 de marzo de 2013, de: http://www.codeproject.com/Articles/36847/Three-Layer-Architecture-in-C-NET Microsoft Spain - Domain Oriented N-Layered .NET 4.0 Sample App, | en línea |. Codeplex. Recuperado el 13 de marzo de 2013, de: http://microsoftnlayerapp.codeplex.com/
7