GLibrary Repository

From agINFRA

Jump to: navigation, search

Contents

gLibrary Repository

This component is made up of a set of front-ends that allow to interact with the gLibrary Services REST APIs (developed as part of task T3.3) to manage, from a set of GUIs, “repositories” (collections of digital assets) stored in the agINFRA infrastructure. In particular, the front-ends are available both in the form of JSR-286 portlets and standalone RIA (Rich Internet Application) Web App. Currently, the following front-ends are available:

  • The Repository Browser portlet that allows to browse and (hierarchically) filter by metadata a collection of digital objects. It also allows the direct download of digital objects from Grid Storage Elements;
  • Repository Browser RIA, having the same features as above;
  • A first prototype of the Repository Uploader and RIA, that allows the upload of local digital objects of any size to the Storage Elements of the agINFRA infrastructure, and the editing/storing of their metadata on the Grid metadata services. It uses features like HTML5 File APIs, XMLHttpRequest2 to handle Drag & Drop, multiple file uploads, and chuncked uploads;
  • Dublin-Core Annotator portlet, a metadata editor for repositories using Dublin Core metadata schema.


Usage and deployment (if publicly accessible)

The gLibrary Repository Browser and Uploader portlets, once configured for a given gLibrary-based repository and packaged as WAR with the included ant script, can be deployed into any application portlet container (e.g., Liferay), like the agINFRA Science Gateway developed by INFN, while the gLibrary Repository browser RIA could be integrated into any LAMP environment.

The gLibrary Repository Browser portlet can be downloaded from: https://github.com/acaland/gLibraryRepositoryBrowser-portlet and the gLibrary Repository Uploader portlet can be found at: https://github.com/acaland/glibrary-uploader-portlet while the gLibrary Uploader RIA can be downloaded from: https://github.com/acaland/glibrary-uploader

gLibrary Repositories portlets and RIA have been developed using the Sencha ExtJS 3 and ExtJS 4 JavaScript frameworks (http://www.sencha.com/products/extjs/). They interact with the backend gLibrary Services through the gLibrary REST APIs (developed in the task T3.3). Each instance of the portlets needs to be configurated with the information of the gLibrary-based repository to be accessed. This can be simply done by editing one of the configuration file, as indicated in the README included in the git repo (https://github.com/acaland/gLibraryRepositoryBrowser-portlet/blob/master/README.md), and changing the repository property of the app.js for gLibrary Uploader portlets and RIA.


Example Usage Scenario

An agricultural organization that needs to manage a big collection of digital assets of any kind, described by one or more metadata schemas, could create one or more repositories, define collections with proper schemas, populate the repositories uploading files and attaching corresponding metadata, and finally let their users browse, filter by metadata and download them. Currently, an instance of a repository with Soil Map collections provided by CRA (the third party of INFN in the project) has been created and deployed in the agINFRA Science Gateway. It’s accessible using an instance of the gLibrary Repository Browser component, deployed at: https://aginfra-sg.ct.infn.it/soilmaps-browser

An instance of the gLibrary Annotator portlet, that allows to annotate the Soil Map collections with Dublin Core metadata has been deployed at:

https://aginfra-sg.ct.infn.it/soilmaps-annotator


Before agINFRA

agINFRA powered version

The steps in the powered version development are the following:

  • Improve the uploader portlet/RIA;
  • Add a feature that allows to configure the repository from the GUI;
  • Develop the gLibrary Repository Administration portlet that allows to create a new gLibrary repository, define collections and their associated metadata schema, and manage user permissions on repositories and collections.


APIs

Personal tools