Arquitectura en capas
A arquitectura en capas é unha arquitectura software na que as funcionalidades para desenvolver se agrupan, de xeito lóxico, en capas. Estas dispóñense secuencialmente e so as capas de máis baixo nivel as que ofrecen servizos ás capas superiores.[1]
Cada mensaxe ou petición que chega ao sistema (á súa capa máis externa) fai que, sucesivamente, cada capa lle envíe unha mensaxe (pode ser a mesma mensaxe ou unha transformación dela) á súa capa adxacente inferior e espere unha resposta dela. Isto orixina unha carga de traballo considerable, xa que, agás que se produza algún erro, cada operación que leva a cabo o sistema ten que ser atendida por todas as capas que o conforman (segundo o esquema representado na imaxe da dereita).
Características
[editar | editar a fonte]Esta arquitectura permite:
- Construír novos sistemas a partir dos que xa existen (engadindo novas capas sobre eles).
- Dividir as responsabilidades nos sucesivos bloques ou capas (delimitando claramente as funcionalidades).
- Definir a seguridade do sistema por niveis.
- Organizar o sistema centrándose na súa organización conceptual.[1]
Vantaxes
[editar | editar a fonte]As principais vantaxes deste tipo de arquitectura son:
- Illamento dos cambios a nivel de capa (ou capas adxacentes), grazas á delimitación de funcionalidades por capas.
- Limitación do alcance dos cambios de implementación nas capas, sempre que se respecten as interfaces destas.
- Favorecemento da introdución de redundancia por niveis.
- Favorecemento tanto da portabilidade como do soporte multiplataforma/protocolo.[1]
Desvantaxes
[editar | editar a fonte]Pola contra, esta arquitectura presenta as seguintes desvantaxes:
- Dificultades para establecer unha división horizontal na lóxica do sistema que permita unha total independencia entre capas.
- Necesidade de comunicación entre capas non adxacentes, o que adoita revelar que a arquitectura non foi ben escollida.
- Problemas de rendemento debido ó esquema de funcionamento desta arquitectura.[1]
Arquitectura en catro capas
[editar | editar a fonte]Na actualidade é doado atoparse con software que adoptou este esquema cun modelo específico de catro capas. Estas capas máis habituais son a capa de presentación, a capa de servizos e a capa modelo, que se divide á súa vez en dúas subcapas: capa de lóxica de negocio e capa de acceso a datos. Cada unha delas especialízase do seguinte xeito:
- Capa de presentación: pon en funcionamento a interface coa que interactúa o usuario que usa o sistema.
- Capa de servizos: permítenos poñer o noso sistema á disposición doutros sistemas ofrecendo unha interface (API) pública.
- Capa de lóxica de negocio: pon en funcionamento a lóxica do sistema.
- Capa de acceso a datos: abstrae a capa de lóxica de negocios do acceso aos datos persistentes.
Tamén nos encontramos a miúdo ante arquitecturas en tres capas, onde se elimina ou ben a capa de presentación (se só temos interese en poñer o noso sistema ao servizo dos demais) ou ben a capa de servizos (se non nos interesa poñer o noso sistema ao servizo dos demais).
Distribución por niveis
[editar | editar a fonte]Referímonos a este termo cando falamos da distribución das capas ao longo da nosa infraestrutura, xa sexa nun só equipamento ou en varios. Existen diversas alternativas comunmente adoitadas:
- No modelo de tres capas sen capa de servizos:
- Tanto a capa de presentación como a capa modelo na mesma máquina (distribución nun nivel).
- A capa de presentación separada da capa modelo (distribución en dous niveis).
- No modelo de tres capas sen capa de presentación:
- Tanto a capa de servizos como a capa modelo na mesma máquina (distribución nun nivel).
- A capa de servizos separada da capa modelo (distribución en dous niveis).
- No modelo de catro capas: xeralmente non temos todas as capas no mesmo equipamento.
- Se separamos cada capa nun nivel, podemos introducir sinxelamente redundancia tanto na capa de servizos coma na capa modelo, favorecendo o aspecto non funcional da dispoñibilidade do sistema (sistema máis robusto).
- Se, ademais, a capa de presentación se pon á disposición dos usuarios mediante a web, a actualización dos devanditos clientes é inmediata cando se modifica a devandita capa, xa que é o navegador o que actúa como aplicación cliente e é o que interpreta, polo tanto, a capa de presentación.
Notas
[editar | editar a fonte]- ↑ 1,0 1,1 1,2 1,3 Laura M. Castro: Principais arquitecturas software non distribuídas.