Arquitectura Arquitectura de Software Software – Arquitectura de capas
“
Componentes en las Estructuras de capas”
Integrantes:
Juan Osorio Covarrubias Alex Abd-elkader Abd-elkader
Profesor:
Jimmy Morales
Asignatura:
Arquitectura Arquitectura de Software Software
Noviembre – 2012 1
Arquitectura de Software – Arquitectura de capas
Índice Pág. Introducción
3
¿Qué es una arquitectura por capas?
4
Arquitectura de 2 capas
5
Arquitectura de 3 capas
6-7
Capa de presentación Capa de negocios Capa de acceso a datos
6 7 7
Arquitectura de n capas
8
Conclusión
9
Bibliografía
10
2
Arquitectura de Software – Arquitectura de capas
Introducción El
desarrollo de Software
ya es considerado prácticamente un arte. Desde
recoger requisitos previos hasta entregar un ejecutable, todo el proceso involucrado responde fuertemente a un trabajo creativo y minucioso. Una parte importante dentro de esta sucesión de algoritmos, es lo que compete al Arquitecto de Software, quien en base a diferentes arquitecturas de programación (modelos) tendrá que ser capaz de plasmar de la mejor forma posible lo que se necesita y entregar satisfacción al usuario. Dentro de las técnicas más utilizadas para poder dividir sistemas complejos, encontramos el patrón de Arquitectura por capas (tema del cual se hablará en el siguiente trabajo). Si hacemos una analogía con nuestra realidad cotidiana, la arquitectura en capas podríamos imaginarla como un pastel, el cual también consiste en una capa sobre otra. Esta dinámica de trabajo, utilizada por los arquitectos de software, nos entrega varios beneficios:
Identificamos a una capa como un todo, sin necesidad de considerar las demás.
Se reducen las dependencias entre capas
Se posibilita la estandarización de servicios
Una vez que una capa es construida, puede ser utilizada por otros servicios de mayor nivel.
En un nivel genérico, hablamos de Arquitectura en capas; sin embargo, existen principalmente 3 modelos importantes:
Arquitectura de 2 capas
Arquitectura de 3 capas
Arquitectura de n capas
En las siguientes líneas, explicaremos en qué consiste una arquitectura por capas, sus principales modelos y forma de trabajo.
3
Arquitectura de Software – Arquitectura de capas
¿Qué es una Arquitectura por capas?
Básicamente, una arquitectura en capas es un estilo de programación, en el cual el objetivo principal a lograr es separar los diferentes aspectos del desarrollo de software, es decir, diferenciar lo que es la presentación, la lógica de negocios, los mecanismos de almacenamiento, entre otros. A través del tiempo, la necesidad de contar con porciones de la aplicación que se puedan intercambiar sin tener la necesidad de modificar el resto de la aplicación, es uno de los pilares del impulso del desarrollo en capas.
Ventajas
Reutilización de capas Facilita la estandarización Dependencias se limitan a intra-capa Contención de cambios a una o pocas capas
Desventajas
A veces no se logra la contención del cambio y se requiere una cascada de cambios en varias capas Pérdida de eficiencia Trabajo innecesario por parte de capas más internas o redundante entre varias capas Dificultad de diseñar correctamente la granularidad de las capas
A continuación, explicaremos en detalle los modelos de 2, 3 y n capas.
4
Arquitectura de Software – Arquitectura de capas
Arquitectura de 2 capas
A pesar de que también existe una arquitectura de 1 capa, no es considerada formalmente dentro de la arquitectura de capas. La primera válida que encontramos, es la de 2 capas, que se caracteriza por tener 2 asociaciones lógicas, es decir, prestan servicios y son capas.
En la primera capa, se incluye la presentación (GUI) y la lógica de negocios. Toda la lógica la escribimos en las formas y accedemos a un servicio de datos para la gestión de los mismos, generalmente un servidor de BD. A menudo, esta arquitectura recibe el nombre de cliente-servidor, ya que el programa fuente puede estar en un servidor y n clientes pueden tener acceso a él para ejecutar una copia del programa. Sin embargo, si tuviésemos que realizar ajustes de implementación en la lógica de negocios, tendríamos que hacerlo en toda la aplicación, de lo cual se desprende una de sus falencias importantes y que es corregido con la siguiente arquitectura en capas (3 capas).
5
Arquitectura de Software – Arquitectura de capas
Arquitectura de 3 capas
Este patrón es importante porque simplifica la comprensión y la organización del desarrollo de sistemas complejos, reduciendo las dependencias de forma que las capas más bajas no son conscientes de ningún detalle o interfaz de las superiores. Además, nos ayuda a identificar qué puede reutilizarse, y proporciona una estructura que nos ayuda a tomar decisiones sobre qué partes comprar y qué partes construir. La aplicación se divide en tres capas lógicas distintas, cada una de ellas con un grupo de interfaces perfectamente definido. La primera capa se denomina capa de presentación y normalmente consiste en una interfaz gráfica de usuario de algún tipo.
La capa intermedia, o capa de empresa, consiste en la aplicación o lógica de empresa, y la tercera capa, la capa de datos, contiene los datos necesarios para la aplicación. La capa intermedia (lógica de aplicación) es básicamente el código al que recurre la capa de presentación para recuperar los datos deseados. La capa de presentación recibe entonces los datos y los formatea para su presentación. Esta separación entre la lógica de aplicación de la interfaz de usuario añade una enorme flexibilidad al diseño de la aplicación. Pueden construirse y desplegarse múltiples interfaces de usuario sin cambiar en absoluto la lógica de aplicación, siempre que presente una interfaz claramente definida a la capa de presentación. A continuación, daremos una breve explicación de cada una de las capas y su principal función.
Capa de presentación Es la que se encarga de que el sistema interactúe con el usuario y viceversa, muestra el sistema al usuario, le presenta la información y obtiene la información del usuario en un mínimo de proceso. En el mundo de la informática es conocida como interfaz gráfica y debe tener la característica de ser amigable, o sea, entendible y fácil de usar para el usuario. Esta capa se comunica únicamente con la capa intermedia o de negocio.
6
Arquitectura de Software – Arquitectura de capas
Capa de negocio Es donde residen las funciones que se ejecutan, se reciben las peticiones del usuario, se procesa la información y se envían las respuestas tras el proceso. Se denomina capa de negocio o capa de lógica del negocio, porque es aquí donde se establecen todas las reglas que deben cumplirse. Esta capa se comunica con la de presentación, para recibir las solicitudes y presentar los resultados, y con la capa de acceso a datos, para solicitar al gestor de base de datos almacenar o recuperar datos de él.
Capa de acceso a datos Esta capa es la encargada de almacenar los datos del sistema y de los usuarios. Su función es almacenar y devolver datos a la capa de negocio, aunque para esto también es necesario en algunos casos, que tengan procedimientos almacenados y funciones dentro de la capa. En una arquitectura de tres capas, esta capa es la única que puede acceder a los mismos. Está formada por uno o varios sistemas gestores de bases de datos, localizados en un mismo servidor o en varios. Estas capas, pueden estar localizadas todas en un mismo ordenador, si el programa o software informático que se desarrolla es de baja complejidad, porque si, por el contrario, fuera de gran complejidad tanto los datos como la lógica de negocio, entonces cada una de las capas pudiera estar situada en diferentes ordenadores, para mejorar la funcionalidad de las mismas, incluso, en productos de gran complejidad, existen varios ordenadores para la capa de acceso a datos, y varios ordenadores para la capa de negocio.
7
Arquitectura de Software – Arquitectura de capas
Arquitectura de n capas
Esta arquitectura se desprende de la de 3 capas y básicamente lo que hace es ir haciendo las especifico el desarrollo. Podríamos ir separando nuestra aplicación en más niveles lógicos, por ejemplo, podríamos querer que nuestra aplicación tenga múltiples interfaces, es decir, una GUI y una Interface Web. Lo recomendado bajo estas condiciones es separar el servidor web (encargado de alojar las páginas) en una capa adicional, con lo cual ya tendríamos un modelo de 4 capas.
De esto, podemos deducir que a medida que nuestra aplicación tenga más servicios y siga escalando, se tendrán que agregar más capas lógicas a la arquitectura (Arquitectura de n capas).
8
Arquitectura de Software – Arquitectura de capas
Conclusión
Como se ha podido apreciar en el trabajo, la arquitectura en capas, representa
una
excelente
forma
para
realizar
desarrollos
de
Software,
principalmente por la capacidad de:
Realizar desarrollos paralelos (en cada capa)
Aplicaciones más robustas debido al encapsulamiento
Mantenimiento y soporte más sencillo (es más simple cambiar un componente que tener que modificar una aplicación completa)
Mayor flexibilidad (se pueden agregar nuevos módulos al sistema y dotarlo de nuevas funcionalidades)
Alta escalabilidad (como se mostraba en el modelo de 4 capas)
Todos estos conceptos, tienen fuerte relación con las tendencias de programación de nuestros días, que apuntan hacia la masificación de los sistemas distribuidos (ya que el trabajo hoy en día no se hace en una sola máquina) y la fuerte programación orientada a objetos dominante (liderada por el lenguaje Java), con su premisa inalterable de la reutilización de componentes y aprovechar al máximo lo que se desarrolla. La arquitectura escogida, ciertamente debe ser la indicada para el tipo de desarrollo, recordando siempre que su flexibilidad ante cambios nos entregará siempre una importante cuota de ventaja frente a otros paradigmas de programación.
9
Arquitectura de Software – Arquitectura de capas
Bibliografía
Introducción al patrón de Arquitectura por capas María Eugenia Arévalo, Diciembre 2010 http://arevalomaria.wordpress.com/2010/12/02/introduccion-al-patron-dearquitectura-por-capas/
Aplicaciones de 2, 3 y n capas Deysi Hernández, Febrero 2011 http://dysihdez.blogspot.com/2011/02/113-aplicaciones-de-23-y-n-capas.html
Arquitectura de capas en sistemas de información EcuRed, Noviembre 2012 http://www.ecured.cu/index.php/Arquitectura_de_capas_en_sistemas_de_informac i%C3%B3n
10