Arquitectura

Arquitectura detallada

Repositorio

Todos los contenidos en Alfresco son almacenados en el Repositorio, que denomina una entidad lógica que incluye:

  • Los ficheros físicos que son subidos por los usuarios, que son almacenados en el sistema de ficheros
  • Los ficheros de índices que permiten buscar los contenidos, que son almacenados en el sistema de ficheros y controlados por SOLR
  • Los metadatos o propiedades de los ficheros, que son almacenados en base de datos

Todos los ficheros y carpetas en el Repositorio son denominados nodos. Los nodos se relacionan entre sí mediante relaciones de contenido o de asociación. Los nodos están contenidos en un almácen (Store), que tiene un nodo raíz del que cuelgan todos los demás.

Almacenes

Nodos

Se identifican únicamente en el repositorio mediante su node reference o NodeRef

{store protocol://store identifier}/UUID

Ejemplo: workspace://SpacesStore/986570b5-4a1b-11dd-823c-f5095e006c11

Estos tres elementos son almacenados como metadatos para cada nodo

  • sys:store-protocol
  • sys:store-identifier
  • sys:node-uuid

Además existe una propiedad denominada cm:content que apunta a la ubicación física del archivo en el sistema de ficheros.

Cuando se crea un nodo, se asignan automáticamente algunas propiedades:

  • Para el aspecto cm:auditable (fecha de creación, usuario creador, fecha de modificación, usuario modificador)
  • Obtenidas por algún extractor (Apache Tika): autor, EXIF, video...

Metadatos

Todas las propiedades (tipos, aspectos, metadatos, asociaciones...) se definen asociadas a un modelo de contenido, lo que define un espacio de nombres único que se expresa mediante un QName

{http://www.alfresco.org/model/content/1.0}description

{http://www.keensoft.es/model/content/1.0}description

Cada modelo de contenido tiene asociado también un prefijo que puede ser utilizado para nombrar la propiedad de manera acortada: cm:description

Algunos QNames de uso frecuente:

  • Objeto cm:object
  • Carpeta cm:folder
  • Fichero cm:content

Permisos

Cada nodo tiene asociado un permiso, aunque también puede heredarlo de su padre. De manera habitual, los permisos son asignados mediante Roles, aunque también pueden ser asignados a usuarios o grupos.

Roles por defecto (Repositorio)

  • CONSUMER
  • CONTRIBUTOR
  • EDITOR
  • COLABORATOR
  • COORDINATOR

Roles por defecto (para cada sitio creado en Share)

  • SITE_SiteShortName_CONSUMER
  • SITE_SiteShortName_CONTRIBUTOR
  • SITE_SiteShortName_COLABORATOR
  • SITE_SiteShortName_COORDINATOR

Grupos por defecto

  • EVERYONE
  • ALFRESCO_ADMINISTRATORS
  • ALFRESCO_SEARCH_ADMINISTRATORS
  • SITE_ADMINISTRATORS
  • E-MAIL_CONTRIBUTORS

En el repositorio los roles y grupos son tratados de manera genérica como Autoridades

  • Los grupos son prefijados con GROUP_
  • Los roles son prefijados con ROLE_

Existe una autoridad especial denominada OWNER, que se asigna al creador del nodo. El owner de un nodo tiene permisos de administración sobre ese nodo (independientemente de su Rol o Grupo). Los usuarios administradores pueden Tomar posesión de cualquier nodo.

Nodos en el repositorio

Extensión del repositorio

Extensión de share

Mecanismos de integración

Revisión

arquitectura-exam-1]

???

protocol + store id + UUID

???

lucene + SOLR