This project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement n° 654237 gLibrary 2.0.

Slides:



Advertisements
Similar presentations
Attie Naude 14 May 2013 Windows Azure Mobile Services.
Advertisements

PHP on Windows Improvements in PHP-Microsoft Interoperability PHP World Kongress Munich, Germany November 9, 2010.
Introduction to Backend James Kahng. Install Node.js.
GGF Toronto Spitfire A Relational DB Service for the Grid Peter Z. Kunszt European DataGrid Data Management CERN Database Group.
LHCbPR V2 Sasha Mazurov, Amine Ben Hammou, Ben Couturier 5th LHCb Computing Workshop
| Basel Discovering Windows Azure Mobile Services and Media Services Ken Casada
Any host All components deployed to SharePoint Client side code App Web created for app Wrapper deployed to SharePoint Components deployed to.
Drupal Workshop Introduction to Drupal Part 1: Web Content Management, Advantages/Disadvantages of Drupal, Drupal terminology, Drupal technology, directories.
Kay Herzam Herzam IT Consulting What‘s new in ASP.NET MS TechTalk.
Cross Platform Mobile Backend with Mobile Services James
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
CAEL 5012 Rich Internet Applications. What you need For this part of the course you will need access to a server with PHP and MYSQL which will be supplied.
By Mihir Joshi Nikhil Dixit Limaye Pallavi Bhide Payal Godse.
Building service testbeds on FIRE D5.2.5 Virtual Cluster on Federated Cloud Demonstration Kit August 2012 Version 1.0 Copyright © 2012 CESGA. All rights.
REST.  REST is an acronym standing for Representational State Transfer  A software architecture style for building scalable web services  Typically,
Is Apache CouchDB for you?
Last News of and
EGEE-II INFSO-RI Enabling Grids for E-sciencE EGEE and gLite are registered trademarks AMGA PHP API Claudio Cherubino INFN - Catania.
Web Technologies Lecture 8 Server side web. Client Side vs. Server Side Web Client-side code executes on the end-user's computer, usually within a web.
WINDOWS AZURE MOBILE SERVICES AN INTRODUCTION Bret Stateham Technical Evangelist
FriendFinder Location-aware social networking on mobile phones.
INFSO-RI Enabling Grids for E-sciencE ARDA Experiment Dashboard Ricardo Rocha (ARDA – CERN) on behalf of the Dashboard Team.
Storing digital assets on Grid/EGI FedCloud with gLibrary Giuseppe La Rocca, INFN DARIAH ERIC.
Tutorial on Science Gateways, Roma, Catania Science Gateway Framework Motivations, architecture, features Riccardo Rotondo.
In this session, you will learn to: Understand managed code Create managed database objects Define the Hypertext Transfer Protocol endpoints Implement.
CGS 3066: Web Programming and Design Spring 2016 Introduction to Server-Side Programming.
Miguel Ángel Saúl Soto INFN - Sezione di Catania Supervisor: Antonio Calanducci
Trimantra Software Solution Offshore Software Development Outsourcing Company Visit :
Storing digital assets on Grid/EGI FedCloud with gLibrary Giuseppe La Rocca, INFN DARIAH ERIC.
THE API AN INTRODUCTION TO THE MINISTRYPLATFORM APPLICATION PROGRAMMING INTERFACE STEPHEN WAREHAM.
REST API to develop application for mobile devices Mario Torrisi Dipartimento di Fisica e Astronomia – Università degli Studi.
The eCSG Mobile App Mario Torrisi INFN – Division of Catania 24 June 2013 Webinar on the eCSG 1.
Web and mobile access to digital repositories Mario Torrisi National Institute of Nuclear Physics – Division of
This project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement n° Public Health.
This project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement n° iGrid Aron Kondoro.
The Holmes Platform and Applications
CGS 3066: Web Programming and Design Spring 2017
Course: Cluster, grid and cloud computing systems Course author: Prof
Amazon Web Services (aws)
Web Technologies Computing Science Thompson Rivers University
MeshCentral 2.0.
Physics validation database
Jason Bury Dylan Drake Rush Corey Watt
The Client-Server Model
RESTful Sevices Distributed Objects Presented by: Shivank Malik
Database System Concepts and Architecture
REST- Representational State Transfer Enn Õunapuu
Chapter 15 Database Connectivity and Web Technologies
VI-SEEM Data Discovery Service
Platform as a Service.
Power BI Security Best Practices
Twitter & NoSQL Integration with MVC4 Web API
New Mexico State University
Testing REST IPA using POSTMAN
ADO.NEXT Advances in Data Access for 2008
WEB API.
Lecture 1: Multi-tier Architecture Overview
The SADE mini-project of the EGI DARIAH Competence Centre
ASP.NET Module Subtitle.
Cloud Web Filtering Platform
TechEd /15/2019 8:08 PM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
Building Serverless Enterprise Applications
Database Management Systems
5 Azure Services Every .NET Developer Needs to Know
Web Technologies Computing Science Thompson Rivers University
Overview of Databases and Salesforce Chapter 1
TN19-TCI: Integration and API management using TIBCO Cloud™ Integration
Building Windows Store Apps with Windows Azure Mobile Services
Lecuter-1.
DIBBs Brown Dog BDFiddle
Presentation transcript:

This project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement n° gLibrary 2.0 REST Platform Antonio S. Calanducci – University of Catania - Italy e-Research Summer Hackfest – Catania (Italy)

Outline 2 Platform presentation & history Features Architecture Authentication & Authorization Deployment Under the hood How to use gLibrary gLibrary 1.0 vs gLibrary 2.0 Reference Live demo

Introduction to gLibrary A service that provides access to existing data collections or create new ones Exposes access to data collections via REST APIs and JSON RESTifies existing database Supports both relational with schema (MySQL, PostgreSQL, etc.) and non-relational schema-less database (MongoDB) Creation and management of new repositories and collections (i.e. REST APIs for them) is done via gLibrary REST APIs at runtime We can say that gLibrary provides REST API to create REST APIs :)

Terminology 4 Repository: it provides a way to group together data collections. These collections can be of different type, heterogeneous or coming from different remote servers. An alias of repository is project (or a database in a RDBMs world). Generally an user is the owner/manager of a repository Collection: it’s a set or documents or records. A collection can have a fixed schema (like a database table) or schema- less (a JSON document) Item: a record or document. It’s a set of key value pairs in JSON format Replica (or Attachment): Each item can optionally have an associated file, stored on one or more distribute storage server

Examples: 5 Repositories: “sci-gaia”, “my_newproject”, “unict”, “demo” eg: /v2/repos/my_newproject Collections: “patients”, “activities”, “presentations”, “manuscripts”, “music”, “videos”, “invoices”, “running_jobs”, “staged_files”, etc eg: /v2/repos/my_newproject/videos /v2/repos/my_newproject/invoices Item: a given “invoice” detail, “song” details, “job” detail eg: /v2/repos/demo/music/32 Replica: the “pdf” file of an “invoice”, a “mp3” file of a “song”, the “txt” output file of a “job” eg: /v2/repos/demo/invoices/1432/_replicas/i2jgi34jg34

gLibrary REST APIs to manage REST APIs over data sets 6 We follow REST principles to manage resources, using HTTP verbs and proper URI paths: GET for retrieving list of collections, items, replicas POST to create new repository, new collections, new items, new replicas PUT for editing/updating items, collections, replicas DELETE to delete repositories, collections, items, replicas

Features 7 Creation of local datasets (on gLibrary server) or remote (on MySQL, PostgreSQL, MongoDB Support for both schema less and fixed schema collection Create collections from data coming from existing remote databases (query are forwarded to the remote host) Creation of relations between collections (even of different type or belonging to different and remote databases) Powerful query syntax on the URL that offers limit, skip, where, like, logical operators, regexp, comparison, ordering User creation and login Setting permissions per repository and per collections (Access Control Lists) Atorage of assets on Grid (Disk Pool Manager) or Cloud (OpenStack Swift). Direct download/upload from servers (no caching on gLibrary server)

Architecture 8 glibrary.ct.infn.itglibrary.ct.infn.it server (local database / mongoDB) Certificate token server e-Infrastructure Resources Metadata Server(s) User TrackingDB infn-se-03.ct.pi2s2.it cloud.recas.ba.infn.it Remote Databases (MySQL, PostgreSQL, MongoDB) running on VM) Cloud Storage (Swift) Grid Storage (DPM) browser mobile apps Clients Direct Download/Upload over HTTPS gLibrary architecture 8 REST API

Authentication & Authorization 9 Authentication: gLibrary provides APIs to create and sign in Users. Each call to gLibrary REST APIs has to be authenticated. A valid and not expired TOKEN has to be passed in any request in the Authorization HTTP header with the TOKEN: i.e. curl -H “Authorization: Fsw6tUVzNwp4ftzK4cb3WxwKkvMZ” Authorization: Access Control Lists, with permissions (reading, creation, editing) for repositories and collections

Deployment 10 gLibrary server can be installed anywhere: on Windows, macOS, any Linux distribution Requirements: An installation of Node.js ( a local or remote MongoDB ( Install it from the source available at: (note: use the branch testv2.1) install instructions are provided in the previous link or create an account on our server at

How to use gLibrary 11 From the Command Line: use CURL, Wget to integrate in your own script (i.e. running on a VM or Grid WN) From RIA Web Apps using xmlHTTPRequests of any wrapper on top of it (i.e. jQuery $.ajax()) From any portal/CMS (ie. Liferay, Wordpress, Joomla, Drupal, etc) as long an HTTP client is available From mobile apps (Android, iOS and Windows phone provides HTTP Clients in their SDK) From desktop applications

Under the hood 12 gLibrary 2.0 has been written in JavaScript and Node.js It’s based on the open source Loopback framework from IBM: A MongoDB database is used to store it’s configuration settings for repositories, collections and replicas It uses Juggler ( datasource-juggler) as ORM. It has a modular architecture to connect alternative datasources (SQLite, Oracle, SQL Server, Redis, DynamoDB, CouchDB, Firebird, etc.) datasource-juggler

History (gLibrary 1.0 vs. gLibrary 2.0) 13 gLibrary 1.0 initial goal was to be a simple and easy to use platform to store, organize, browse and retrieve digital assets in repositories, on grid infrastructure the “g” stands for Grid built with Python/PHP and AMGA as metadata service collections had fixed schema, grid storage only API were not so “RESTy” gLibrary 2.0 is an evolution and has been rewritten from scratch it’s a different product, that can do anything gLibrary 1.0 can do, plus: support many storage back-ends on demand repository and collection creation

References 14 Official documentation: Source code and installation instructions: Contacts: - (Lead

Live Demo 15

Summary and conclusions 16 gLibrary 2.0 is an API Platform Provides REST APIs to create repositories, collections, items and replicas Can expose datasets from local and remote databases Can be easily integrated in any kind of application using HTTP requests Supports relational and not relational databases and both Grid and Storage Servers

Thank you! sci-gaia.eu