Instalación Docker Actividades clase 1
Transcript of Instalación Docker Actividades clase 1
![Page 1: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/1.jpg)
Capacitación UNPSJBClase 1
Pablo de Albuquerque, Santiago Tettamanti, Ariel Lira{pablo, santit, alira}@sedici.unlp.edu.ar
Esta obra está bajo una Licencia Creative Commons Atribución-CompartirIgual 4.0 Internacional. 1
![Page 2: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/2.jpg)
Agenda
● Introducción a DSpace
● Arquitectura
● Modelo de contenidos
● Plugins
● Autoridades
● Identificadores persistentes
● Autorización y Autenticación
● Instalación
● Docker
● Actividades clase 1
![Page 3: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/3.jpg)
Introducción a DSpace
![Page 4: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/4.jpg)
Introducción a DSpace - Características generales
● Software libre y open-source
● Proyecto Maven escrito mayoritariamente JAVA.
● Compuesto por varios subproyectos.
● Amplia comunidad de usuarios en todo el mundo
● https://wiki.lyrasis.org/display/DSPACE/
● Extensible y configurable
● Modelo de datos
○ simple
○ metadatos no jerárquicos
○ independencia de los formatos de archivos.
Open DOAR. OpenDOAR Statistics. Retrieved September 2, 2021, from https://v2.sherpa.ac.uk/view/repository_visualisations/1.html
![Page 5: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/5.jpg)
Introducción a DSpace - Stack
● Familia de aplicaciones java, funcionan en
○ modo CLI (línea de comandos)
○ Aplicacion Web JAVA.
● Frontend Angular (a partir de DSpace 7)
● Para la ejecución cli se requiere una jre7 o jre8
● Para la ejecución de las aplicaciones web requiere un web container como: Jetty, Tomcat, entre otros.
● Base de datos relacional para persistir el modelo:○ postgres, oracle u otras soportadas por Hibernate.
![Page 6: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/6.jpg)
Introducción a DSpace - Arquitectura v7
Organizado en 3 capas
● Aplicación● Lógica de negocios● Almacenamiento
![Page 7: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/7.jpg)
Introducción a DSpace - Arquitectura v1-6
Assetstore
Database
OAI-PMH
Front & Back End
V4-6
JSPUIXMLUI
7 webapps separadas:2 UIs, 4 servicios web &
Solr
Donohue, T., Lowel, A., & Bollini, A. (2021). Getting Started with DSpace 7.0: Basic Training. https://doi.org/10.5281/ZENODO.4908060
![Page 8: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/8.jpg)
Assetstore
Database
OAI-PMH
Server Webapp
User Interface
Front End
Back End
v4-6
v7
(optional)1 webapp backend (Solr ahora se instala por separado)
Introducción a DSpace - Arquitectura v7
Donohue, T., Lowel, A., & Bollini, A. (2021). Getting Started with DSpace 7.0: Basic Training. https://doi.org/10.5281/ZENODO.4908060
![Page 9: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/9.jpg)
Spring es un framework que implementa el modelo de Dependency Injection
● Spring en DSpace administra:
○ Los servicios de la Capa de la Lógica de Negocios (core-services.xml)
- MetadataValueService
- ItemService
- CollectionService, etc.
○ Las extensiones al core de DSpace ( generalmente en [DSPACE-DIR]/dspace/config/spring/api)
- discovery.xml
- workflow-actions.xml
- bitstore.xml, etc.
Introducción a DSpace - Stack
![Page 10: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/10.jpg)
Introducción a DSpace - Stack
Hibernate ORM es un framework para persistencia a partir del mapeo Objeto a Relaciones.
● Abstrae a la aplicación de la BD utilizada
● Mapea automáticamente los datos de objetos al momento de leer de/persistir en la BD
● Permite usar consultas abstractas independientes de la BD usando lenguaje HQL
● Provee:
○ caching de objetos
○ transacciones de alto nivel
○ entre otros.
![Page 11: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/11.jpg)
Introducción a DSpace - Stack
También se utiliza un indexador de texto para
● registros de acceso (estadísticas)● índice de búsqueda (metadatos y fulltext)● otros usos.
Solr:
● está optimizado para búsquedas● permite definir relevancia, filtrado, pesos en los
campos y más.● permite gestionar grandes volúmenes de datosMás información: Solr in DSpace https://wiki.duraspace.org/display/DSPACE/Solr
![Page 12: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/12.jpg)
Modelo de contenidos
![Page 13: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/13.jpg)
1. Una o más comunidades de nivel base
2. Se organizan jerárquicamente en subcomunidades.
3. Las colecciones agrupan contenido relacionado dentro de las comunidades.
4. Los ítems son las obras que van en las colecciones y que se pretende que el público encuentre.
5. Los metadatos describen al recurso
6. Los bitstreams son la representación digital del recurso.
Modelo de contenidos - Estructura típica
![Page 14: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/14.jpg)
Modelo de contenidos - Comunidad y Colecciones
![Page 15: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/15.jpg)
➢ Las comunidades poseen subcomunidades y colecciones
➢ Las colecciones poseen ítems
➢ Los ítems se componen de bundles
➢ Cada bundle posee bitstreams (archivos)
Modelo de contenidos - DSpace Data Model
![Page 16: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/16.jpg)
Los ítems están vinculados a sus bitstreams a través de entidades llamadas Bundles. Estos agrupan bitstreams según ciertas categorías:
- ORIGINAL: contiene los bitstreams a publicar.
- THUMBNAILS: archivos con thumbnails extraídos a partir de los bitstreams originales (p.e. thumbnails de PDFs, imágenes, etc.).
- TEXT:
- Texto completo (full-text) de otros bitstreams. - Se genera a partir de la extracción automática de texto sobre otros bitstreams- se usa durante la indexación para mejorar los resultados de búsqueda.
- LICENSE: licencia que el usuario aceptó al depositar el contenido.
- CC_LICENSE: contiene la Licencia CC (si es que existe) seleccionada por el usuario durante la carga.
Modelo de contenidos - Bundles
![Page 17: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/17.jpg)
Los ítems del repositorio se componen de objetos digitales que representan la obra en sí que se quiere publicar. Estos pueden ser:
● Audios● PDFs● Documentos de texto (.doc, .odt., etc)● Diapositivas de presentaciones● Planillas de cálculo● Imágenes● Videos● etc.
Estos objetos digitales reciben el nombre de BITSTREAMS.
Modelo de contenidos - Bitstreams
![Page 18: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/18.jpg)
Modelo de contenidos - BitStore
Los bitstreams son alojados en un Bitstore, que puede estar alojado de forma local o en la nube (según la configuración en dspace/config/spring/api/bitstore.xml):
● ASSETSTORE: si tenemos esta forma de almacenamiento, los bitstreams se alojan en un directorio local en el servidor:
{dspace-install-dir}/assetstore/
● S3Store: si tenemos esta forma de almacenamiento, los bitstreams se alojarán en la nube (en el Cloud Storage de Amazon S3). Para que esto funcione debemos configurar diferentes parámetros como, p.e, una accessKey al sistema de Amazon.
![Page 19: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/19.jpg)
Modelo de contenidos - Metadatos
Los metadatos
● son datos estructurados que describen otros datos
● son datos sobre datos
Ej: representacón del recurso http://sedici.unlp.edu.ar/handle/10915/47008
![Page 20: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/20.jpg)
Algunos esquemas:
● Dublin Core Element Set (DCES) es uno de los esquema de metadatos estándar más utilizados http://dublincore.org/documents/dces/ ○ Título → dc.title
● DCMI Terms (dc extendido o calificado) es una extensión al esquema básico de DC http://dublincore.org/documents/dcmi-terms/
○ Título alternativo → dcterms.alternative
● Un repositorio puede utilizar un perfil de metadatos basado en esquema propio, estándar y/o mixto
○ Ej: subconjunto o extensión de DC.
Modelo de contenidos - Metadatos - Representación
![Page 21: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/21.jpg)
Ejemplo: SEDICI utiliza un perfil de metadatos propio basado en:
➔ DC simple◆ dc.title
➔ DC calificado◆ dc.date.accessioned
➔ ETD◆ thesis.degree.name
➔ MODS◆ mods.location
➔ Esquema de metadatos SEDICI◆ sedici.subtype
Modelo de contenidos - Metadatos - Representación
![Page 22: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/22.jpg)
DSpace permite definir perfiles de metadatos a partir de
1. combinación de elementos de diferentes schemas
2. usa de calificadores: ○ schema.element.qualifier
Modelo de contenidos - Metadatos
DC Simple (estándar DCES)
DC simple (perfil en DSpace)
dc.date dc.date.accessioneddc.date.issueddc.date.createddc.date.availabledc.date.submitted
MetadataField
elementqualifier
MetadataValuevalueauthorityconfidence
MetadataSchema
namenamespace
DSpaceObject
uuid 1 metadata *
* metadataField 1
* metadataSchema 1
![Page 23: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/23.jpg)
● Dspace 7 incorpora conceptos de DSpace-CRIS como entidades configurables.
● Las entidades provistas son:
○ Publication, Person, OrgUnit, Project
○ Journal Entities include Journal, Journal Volume, Journal Issue and Publication (article).
● Los ítems tienen un metadato dspace.entity.type que indica su entidad
● Cada ítem/entidad puede relacionarse con otros ítems/entidades a partir de relaciones pre-existentes o definidas ad-hoc.
● https://wiki.lyrasis.org/display/DSDOC7x/Configurable+Entities
Modelo de contenidos - DSpace Configurable Entities
![Page 24: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/24.jpg)
● Cada relación tiene:
● Nombre de la relación
● Entidades involucradas
● Cardinalidad
● Entidades y relaciones se configuran en un XML
● relationship-types.xml
● La información de este xml se vuelca en la base de datos a través de un script
Modelo de contenidos - DSpace Configurable Entities
![Page 25: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/25.jpg)
● relationship-types.xml
Modelo de contenidos - DSpace Configurable Entities
<relationships>
<type>
<leftType>JournalIssue</leftType>
<rightType>Publication</rightType>
<leftwardType>isPublicationOfJournalIssue</leftwardType>
<rightwardType>isJournalIssueOfPublication</rightwardType>
<leftCardinality>
<min>0</min>
</leftCardinality>
<rightCardinality>
<min>0</min>
<max>1</max>
</rightCardinality>
</type>
</relationships>
isJournalIssueOf..
isPublicationOf..
ArticleIssue
Donohue, T., Lowel, A., & Bollini, A. (2021). Getting Started with DSpace 7.0: Basic Training. https://doi.org/10.5281/ZENODO.4908060
![Page 26: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/26.jpg)
Plugins
![Page 27: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/27.jpg)
Plugins
DSpace dispone de varios plugins para extender su funcionalidad, entre ellos:
● Autenticación● Manejo de autoridades● Procesamiento de bitstreams (media filters)
![Page 28: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/28.jpg)
Algunos media-filters (ver):
EXTRACTORES DE TEXTO- PDF Text Extractor- HTML Text Extractor
EXTRACTORES DE IMÁGENES- JPEG Thumbnail- ImageMagick PDF Thumbnail
Plugins - Media Filters
Procesa objetos digitales y genera nuevos contenidos para mejorar los servicios ofrecidos (búsquedas, vistas previas, etc).
THUMBNAIL
TEXTO EXTRAÍDO
![Page 29: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/29.jpg)
Autoridades
![Page 30: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/30.jpg)
Autoridades
Uso de Vocabularios controlados gestionados en otros sistemas
● Tesauros● Sistemas de clasificación / Taxonomías● Materias● Bases de datos de investigadores ● Jerarquía de instituciones● Grados alcanzados
El software del repositorio debe integrarse con estos sistemas.
En DSpace estos vocabularios controlados son llamados autoridades.
![Page 31: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/31.jpg)
Autoridades
● Autoridad: conjunto de entidades normalizadas○ Registro de autoridad: información asociada con una entidad
○ Clave de autoridad: código que identifica unívocamente una entidad.
![Page 32: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/32.jpg)
Autoridades
Ventajas:1. Permite probar que dos valores son idénticos comparando por la clave de las
autoridades.2. Ayuda a completar metadatos con valores correctos.3. Permite mejorar la calidad de los metadatos.4. Mejora la interoperabilidad compartiendo un nombre de autoridades con otra
aplicación.5. Reduce el tiempo de carga
![Page 33: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/33.jpg)
Autoridades - API
DSpace incluye una API para el uso de autoridades en los metadatos.
● la fuente puede ser externa o interna al repositorio
● para integrar nuevas autoridades deben usarse las clases e interfaces:
● Choice:○ Clase que contiene los atributos authority, label, confidence y value.
● Choices:○ Clase que contiene un conjunto de Choice.
● ChoiceAuthority:○ Interfaz para suplir el mecanismo del control de autoridades.
![Page 34: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/34.jpg)
DSpace cuenta con un mecanismo para manejo de autoridades, que permite la selección de valores autorizados durante la carga de metadatos al repositorio.
Autoridades - Plugins
- Implementan la interfaz ChoiceAuthority.
- Autoridades predefinidas en DSpace (DCInputAuthority, SHERPARoMEOPublisher, etc.)
- Capacidad de agregar nuestras propias autoridades.
![Page 35: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/35.jpg)
Autoridades
La elección del valor de un metadato pueden ser abiertas o cerradas.
● Abiertas :○ Se pueden usar valores no incluidos en las elecciones presentadas.
● Cerradas:○ Elección restringida solo para un conjunto de valores ofrecidos.
La elección del valor de un metadato pueden ser obligatorio u opcional.
![Page 36: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/36.jpg)
Autoridades
Choice management:
Mecanismo para selección o elección de los posibles valores de un metadato, a partir de valores propuestos o consultas.
Ejemplo: Submission
![Page 37: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/37.jpg)
Autoridades
Indexación de autoridades
DSpace permite indexar las autoridades para crear facets de búsqueda que permiten al usuario filtrar resultados
![Page 38: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/38.jpg)
Autoridades
Control de Autoridades en DSpace - Base de datos
1. No es un reemplazo del valor de los metadatos.
2. Es configurado mediante un campo en la base de datos.
text_value authority Confidence
Universidad Nacional de La Plata (UNLP) http://digital.cic.gba.gob.ar/auth/node/86555 600
Cañueto, Matías F. http://digital.cic.gba.gob.ar/auth/node/204702 600
Attribution 4.0 International (BY 4.0) http://creativecommons.org/licenses/by/4.0/ 600
UNLP http://digital.cic.gba.gob.ar/auth/node/86555 500
Cañueto, Matías G. -1
![Page 39: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/39.jpg)
Autoridades
Las autoridades controladas utilizadas en SEDICI y CIC-DIGITAL se encuentra en una instalación de Drupal.
Drupal:● Cuenta con un conjunto de módulos que facilitan el modelado.
● Comunicación entre esta plataforma y SEDICI es mediante consultas SPARQL
● Comunicación entre esta plataforma y CIC-DIGITAL es mediante consultas REST
![Page 40: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/40.jpg)
Identificadores persistentes
![Page 41: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/41.jpg)
Identificadores persistentes
Permiten identificar un recurso de manera independiente a la dirección del repositorio o sitio donde dicho recurso se encuentra.
sedici.unlp.edu.ar/handle/10915/54681 ⇒ http://hdl.handle.net/10915/54681
revistas.ucr.ac.cr/index.php/eciencias/article/view/23690 ⇒ http://dx.doi.org/10.15517/eci.v6i2.23690
http://revistas.unlp.edu.ar/raab/article/view/2177 ⇒ http://dx.doi.org/10.17139/raab.2016.0018.02.09
Fuente de la imagen https://www.clarin.eu/content/persistent-identifiers
![Page 42: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/42.jpg)
Por qué son necesarios?
● Las URLs pueden cambiar○ en el dominio○ en la ruta
● por○ Cambios en el software○ Cambios en políticas institucionales
Identificadores persistentes
Los cambios de URLs deben notificarse al manejador de redirecciones, para que éste actualice sus reglas de redireccionamiento
![Page 43: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/43.jpg)
Identificadores persistentes en DSpace
Dspace permite utilizar identificadores
● internos: uuid auto-generados (SIEMPRE)● handle: servidor local● doi: registro externo● custom: según se implemente
Generalmente se utiliza un servidor handle.net local al servidor de DSpace
con un prefijo único propio de la institución.
![Page 44: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/44.jpg)
Autorización y Autenticación
![Page 45: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/45.jpg)
Autenticación
A partir de diversos métodos configurables:
● por password● por ip o rango de ips● por LDAP● por Shibboleth● X509● custom
Más info https://wiki.duraspace.org/display/DSDOC7x/Authentication+Plugins
![Page 46: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/46.jpg)
Módulo de autorización - Modelo
El esquema de autorización de dspace funciona a partir de 3 elementos:
1. E-Person○ representa un usuario dentro del sistema.
2. E-Group:○ representa un grupo de trabajo.
3. Resource Policies○ representación de los derechos o permisos
![Page 47: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/47.jpg)
Módulo de autorización - E-Person
Los personas,
● representadas por la entidad EPerson
● se corresponden con los usuarios registrados en el sitio.
● Cada persona tiene al menos:
● Nombre y Apellido
● Password (hasheada)
![Page 48: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/48.jpg)
Módulo de autorización - E-Group
● Representan un grupo de trabajo.
● Se componen de :
■ múltiples E-Person, y/o
■ otros E-Group
● Existen 2 grupos de usuarios por defecto:
○ Anonymous
■ Representa a todos los usuarios, autenticados o no. ■ Cualquier usuario tiene pertenencia a este grupo
○ Administrator
■ Contiene los usuarios que son administradores del sistema. ■ representa el rol de SUPERUSUARIO, con autorización plena sobre DSpace
● Todos los usuarios pertenecen al grupo Anonymous
IMPORTANTE: Los permisos de un grupo son heredados por todos los grupos que contiene.
![Page 49: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/49.jpg)
Los grupos también pueden ser usados para configurar los flujos de trabajo.
Por ejemplo:
1. INSTITUTION-ADMIN:
○ bibliotecarios y responsables centrales del repositorio
○ se encargarían de gestionar todo el contenido del repositorio
2. Facultad-ADMIN:
○ bibliotecarios y responsables por cada Facultad que compone a la institución
○ gestionarían todo el contenido de las comunidades asociadas a una Facultad
3. COMMUNITY_ADMINS
○ Contendría a los grupos INSTITUTION-ADMIN y a todos los Facultad-ADMIN.
○ Podría existir únicamente para hacer funcionar los workflows de la UNLP.
Módulo de autorización - E-Group - Grupos de trabajo
![Page 50: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/50.jpg)
Módulo de autorización - Resource Policies - Permisos
El Authorization system regula quién puede hacer qué acciones sobre cada objeto.
Estos permisos se representan en las Resource Policies y se componen de:
● persona o grupo autorizado: ○ eperson_id/epersongroup_id
● acción permitida: ○ action_id
● sobre qué objeto: ○ resource_id+resource_type_id
● desde cuando: ○ start_date
● hasta cuando: ○ end_date
![Page 51: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/51.jpg)
Autorización - Resource Policies - Modelos
Resource Policies: derechos explícitos de la forma
(Objeto, Usuario, Derecho, Fecha inicio, Fecha fin)
Por defecto, todas las comunidades, colecciones e ítems tienen permiso de READ para el grupo Anonymous
Usuario es:● E-Person● E-Group
Derecho puede ser:● READ: ver o descargar● WRITE: modificar datos● ADD: agregar a un contenedor● REMOVE: eliminar de un contenedor● ADMIN: administración plena de
elementos
Objeto es cualquier DSO● Comunidad● Colección● Ítem● Bundle● Bitstream
![Page 52: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/52.jpg)
Módulo de autorización - Acciones posibles
* un container es una comunidad o colección
READ Action of reading, viewing or downloading something
WRITE Action of modifying something
ADD Action of adding something to a container.
REMOVE Action of removing something from a container. Different from deletion.
DEFAULT_BITSTREAM_READ Default Read policies for Bitstreams submitted to container.
DEFAULT_ITEM_READ Default Read policies for Items submitted to container.
ADMIN Administrative actions - System Admin, Community Admin, Collection Admin
WITHDRAWN_READ Action of reading, viewing or downloading an embargoed item.
![Page 53: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/53.jpg)
Proceso de compilación e instalación
![Page 54: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/54.jpg)
Maven
Es un software para gestión de proyectos Java que permite controlar actividades recurrentes como:
● Construcción del árbol de dependencias
● Descarga automática de dependencias
● Filtrado de archivos de configuración
● Compilación
● Test
● Empaquetado (jar, war, pom)
● Infinidad de acciones más como deploy, generación de documentación, etc.
![Page 55: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/55.jpg)
Maven - Repositorio local
- Por default se ubica en ~/.m2.- Por cada dependencia descargada, mantiene copia del paquete descargado:
- Cuando Maven construye y compila un proyecto, antes de ir a buscar alguna dependencia a un repositorio externo, verifica que no se encuentre en el repositorio local.
- El repositorio local .m2 puede llegar a crecer varios GBs.
<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>4.2.21.Final</version></dependency>
.m2/ |--org/ |----hibernate/ |------hibernate-core/ |--------4.2.21.Final/ |----------hibernate-core-4.2.21.Final.jar |----------hibernate-core-4.2.21.Final.pom
![Page 56: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/56.jpg)
Maven - Comandos frecuentes
mvn packageRealiza una compilación de todo el proyecto y crea los paquetes necesarios (jar, war, etc), dejándolos en un subdirectorio llamado target/.
mvn installRealiza un ‘mvn package’ y copia los paquetes generados en el repositorio local .m2
mvn cleanElimina el directorio de trabajo target/ creado durante la compilación de un proyecto.
Una lista más completa de comandos ver en documentación.
![Page 57: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/57.jpg)
Maven - Estructura de proyectos
1. se divide en un proyecto padre y submódulos2. el módulo dspace
a. filtra los archivos de configuraciónb. reúne las personalizaciones con el código original
de dspace.c. genera el paquete de instalación
IMPORTANTE: si estamos trabajando sobre una versión de desarrollo (no es release, ej 7.0) o si hicimos cambios en el código de dspace (directorios azules) se debe ejecutar el mvn package en dspace-parent. Caso contrario se puede ejecutar en dspace-parent/dspace
![Page 58: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/58.jpg)
Ant
Apache Ant es una herramienta que permite automatizar tareas.
● Su funcionamiento se rige por el archivo build.xml● provee tareas predefinidas que permiten manipular archivos, compilar, testear
y correr aplicaciones Java.● las acciones principales en DSpace son:
○ ant fresh_install
■ Realiza la instalación en el directorio dspace.dir (base de datos, índices Solr, assetstore, etc).
○ ant update
■ Actualiza una instalación previamente realizada○ ant clean_backups
■ Elimina los directorio .bak generados tras un ant updateEn dspace/src/main/config/build.xml están todas las acciones posibles
![Page 59: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/59.jpg)
Proceso de compilación - Maven
1. mvn clean package - en el directorio root de DSpace (/[DSPACE-DIR]/)
a. El compilado se genera en [DSPACE-DIR]/dspace/target/dspace-installer
2. service tomcat stop - parar la instancia de tomcat.
![Page 60: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/60.jpg)
Proceso de compilación - Ant
3. Posicionarse en el directorio donde se encuentra el compiladoa. /[DSPACE-DIR]/dspace/target/dspace-installer
4. ant clean_backupsa. Para limpiar los backups realizados por ant en instalaciones previas
5. ant update (ant fresh_install para la primera vez)a. Para instalar o actualizar el código de DSpace
b. El código queda en el directorio definido por la variable de config dspace.dir
![Page 61: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/61.jpg)
Entorno de desarrollo con Docker
![Page 62: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/62.jpg)
Conceptos básicos:
● Imágenes:
○ plantilla que contiene instrucciones para crear un contenedor○ definido en capas a partir de Dockerfiles○ presentes localmente, en registros públicos y privados
● Contenedores:
○ es la instanciación de un entorno de ejecución a partir de una imágen y puesta en ejecución
● Volúmenes:
○ permiten montar el almacenamiento del host en el container
Entorno desarrollo con Docker
![Page 63: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/63.jpg)
Docker - Acciones frecuentesCreación de una imagen a partir del Dockerfile● docker build <dockerfile>
Crear container a partir de una imagen● docker run <imagen> -p <puertos> -v <volúmenes> -e <variables de entorno>
Reiniciar container con:● docker start <nombre_del_container> (corre en background)
Detener un container:● docker stop <nombre_del_container>
Obtener info de un Docker Object (container, image, network, etc):● docker inspect <docker-object>
![Page 64: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/64.jpg)
Docker - Acciones frecuentes - Docker composeDocker compose nos facilita la tarea :-D
● Múltiples containers → Una sola aplicación
● A través de archivos yml○ Por lo general llamados docker-compose.yml○ Se definen los containers/servicios que tendrá nuestra aplicación
● Comandos para administrar los servicios creados○ Iniciar, detener y reconstruir servicios
docker-compose [up|down|build|restart]
○ Listar los servicios definidos docker-compose images
○ Visualizar la salida y el estado de los servicios en ejecución docker-compose [logs|events]
○ Ejecute una acción en un servicio determinado docker-compose [kill|run] [servicio] [comando]
https://docs.docker.com/compose/
version: "3.7"
services:
dspacedb:
image: postgres:9.5-alpine
environment:
POSTGRES_DB: "dspace"
POSTGRES_USER: dspace
POSTGRES_PASSWORD: dspace
volumes:
- /var/lib/postgresql/data
dspace:
image: dspace:dspace_latest
![Page 65: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/65.jpg)
docker@dspace
Pros:
● Fácil deploy del frontend, backend + servicios complementarios (solr, postgres)
● Para desarrollo, prueba de configuraciones, pruebas de comando
Cons:
● No apto para producción
● No tan cómodo para desarrollo
● Ante cada cambio en el código se debe hacer un rebuild de la imagen → lento
Docker - DSpace 7
![Page 66: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/66.jpg)
1. Descargar fuentes de DSpace:
○ git clone https://github.com/DSpace/DSpace
○ cd Dspace
○ git branch prueba dspace-7.0
○ git checkout prueba
2. Instalación y primer ejecución (paciencia, tarda bastante)
○ docker-compose -f docker-compose.yml up -d
○ Acceder http://localhost:8080/server (HAL browser)
3. Creación administrador:
○ docker-compose -f docker-compose-cli.yml run --rm dspace-cli create-administrator -e
[email protected] -f admin -l user -p admin -c en
4. Ver listado de comandos disponibles:
● docker-compose -f docker-compose-cli.yml run --rm dspace-cli help
Docker - Deploy del backend
![Page 67: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/67.jpg)
○ Es una alternativa para cuando se debe desarrollar sobre el frontend únicamente
○ Se puede conectar con un backend preexistente, local o externo. Ej api7.dspace.org/server/
○ Instalación y primer ejecución:1. git clone https://github.com/DSpace/dspace-angular
2. cd dspace-angular
3. git branch prueba dspace-7.0
4. git checkout prueba
5. Definir url al rest en environment.dev.ts
6. docker-compose -f docker/docker-compose.yml up -d
7. Acceder http://localhost:4000/
Docker - Deploy del frontend
Opcional. Por defecto es
http://localhost:8080/server, que es la definida
en el docker del backend. Podría usarse la demo
https://api7.dspace.org/server/
![Page 68: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/68.jpg)
Actividad 1
Probar instancia de dspace local
a. Instalar git, docker y docker-compose
b. Levantar DSpace backend y Angular de acuerdo a las 2 diapositivas anteriores
c. Acceder al frontend http://localhost:4000/, loguearse con el usuario administrador creado
d. Probar la creación de comunidades, colecciones, ítems, y cualquier otra cosa que desee.
![Page 69: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/69.jpg)
Referencias
- https://wiki.lyrasis.org/display/DSDOC7x/Using+DSpace
- Links a doc de docker por proyecto
- Docker DSpace/dspace-angular
- Docker DSpace/DSpace
![Page 70: Instalación Docker Actividades clase 1](https://reader031.fdocument.pub/reader031/viewer/2022012503/617dd49778634a06d927c71e/html5/thumbnails/70.jpg)
Lo que viene
● Uso de GIT
● Buenas prácticas para desarrollo sobre dspace
● Customización básica de una instalación DSpace
● Configuraciones
● Módulos: Submission, Workflow, OAI
● Actividades:
○ modificar metadatos y configuración de OAI en un dspace en funcionamiento.