Saltar ao contido

Arquitectura en repositorio

Na Galipedia, a Wikipedia en galego.

A arquitectura en repositorio é un modelo estrutural para sistemas informáticos no que se deseña un compoñente central, encargado do almacenamento da información relevante para o funcionamento global do sistema, e unha serie de compoñentes periféricos, que implementan os servizos do sistema apoiándose no uso do compoñente central, que recibe o nome de repositorio[1]. Este modelo emprégase habitualmente en aplicacións onde un ou varios compoñentes xeran datos que outros compoñentes queren consumir, e nos que non se quere establecer comunicación explícita nin directa entre os produtores e os consumidores de información[2]. Exemplos de sistemas nos que esta arquitectura adoita aparecer son sistemas de control, sistemas de información administrativa e sistemas en contornas interactivas.

Características

[editar | editar a fonte]
Exemplo de representación dun sistema con arquitectura en repositorio.

A arquitectura en repositorio organiza os compoñentes do sistema en dous tipos de elementos:

  • Repositorio: adoita ser un compoñente único no sistema, e constitúe un almacenamento de datos centralizado. Este almacenamento de datos centralizado ou repositorio é accesible a todos os compoñentes do sistema, que poden engadir, actualizar ou borrar información nel.
  • Compoñente: representa un elemento que implementa un servizo ou funcionalidade do sistema, para o cal interactúa co repositorio. Os compoñentes non interactúan entre si, senón que empregan o repositorio para comunicarse de xeito indirecto.

Este modelado e estruturación do sistema arredor do repositorio de información require dunha visión do sistema centrada na información, e permite modelar facilmente sistemas onde a aparición, desaparición ou cambio na información é a orixinadora de accións por parte dos compoñentes que acceden ao repositorio.

As principais vantaxes da arquitectura en repositorio son as seguintes:

  • Os compoñentes poden ser completamente independentes uns doutros, favorecendo a ausencia de dependencias tanto no seu desenvolvemento coma no funcionamento, mantemento e reutilización.
  • Os cambios producidos na información almacenada no repositorio resultan inmediatamente accesibles a todos os compoñentes do sistema, sen necesidade de comunicárllela explicitamente.
  • Toda a información pódese xestionar uniforme e consistentemente (por exemplo, copias de seguridade).

Inconvenientes

[editar | editar a fonte]

Os principais inconvenientes da arquitectura en repositorio son os seguintes:

  • O repositorio é un punto crítico do sistema, un punto único de fallo, de xeito que un problema no repositorio vai a afectar ao funcionamento de todos os compoñentes e á dispoñibilidade do sistema ao completo.
  • Distribuír ou replicar o repositorio pode ser complexo polas necesidades de sincronización que poida carrexar, o que dificulta a escalabilidade do sistema.
  • A eficiencia do repositorio á hora de atender o acceso de todos os demais compoñentes tamén é un limitante no rendemento global do sistema.
  • A atención concorrente de peticións de diferentes compoñentes por parte do repositorio pode levar a conflitos na actualización da información.

Variantes e usos

[editar | editar a fonte]

Nunha arquitectura en repositorio, o almacén de datos pode comportarse de dúas maneiras diferentes:

  • Repositorio pasivo: no que o cliente (cada un dos compoñentes) accede aos datos independentemente dos cambios ou accións dos outros clientes ou compoñentes.
  • Repositorio activo: no que o repositorio envía proactivamente información ou notificación aos clientes ou compoñentes cando os datos do seu interese cambian.

A interacción entre o repositorio e os demais compoñentes tamén é variable, xa que a entrada dos datos é seleccionada polos compoñentes e pode que o estado dos datos do repositorio seleccione o proceso a executar.

Sistemas baseados no coñecemento

[editar | editar a fonte]

Un uso común da arquitectura en repositorio consiste en desenvolver sistemas baseados no coñecemento (ou sistemas expertos), onde as entidades individuais non son capaces de aproximarse a unha solución, ou ben esta é inviable polo tamaño do espazo de procura. Este tipo de sistemas constan dos seguintes elementos:

  • Axentes (compoñentes), que adoitan estar especializados nunha tarefa concreta ou elemental.
  • Lousa (repositorio), que é un elemento de control.

Os axentes traballan sobre os mesmos datos (os presentes na lousa, sempre actualizados): examinan a lousa, executan cadansúa tarefa e escriben as súas conclusións na mesma lousa. Unha vez que un axente escribe as súas conclusións na lousa, todos os demais verán os novos datos e traballarán sobre estes..

  1. Braude, Eric J. (2001). Software Engineering, An Object-Oriented Perspective. John Wiley & Sons, Inc. 
  2. Sommerville, Ian (2011). Ingeniería de software. Pearson Education.