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]

Representación xeral dunha arquitectura en capas

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

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

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

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

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.
 
Exemplo dunha arquitectura en 4 capas.

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

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

Véxase tamén editar

Outros artigos editar