The GRIMOIRES Service Registry Weijian Fang and Luc Moreau School of Electronics and Computer Science University of Southampton
Dec 29, 2015
The GRIMOIRES Service Registry
Weijian Fang and Luc MoreauSchool of Electronics and Computer Science
University of Southampton
The Grimoires Registry
• Grid RegIstry with Metadata Oriented Interface: Robustness, Efficiency, Security– A Grimoire is a magician's manual for invoking demons (Oxford
English Dictionary)– Pronunciation: [grimwar / grimwars]
• The Grimoires registry hosts descriptions of services and workflows, which a scientist can use for forming complex experiments, for discovering and for invoking them.
• Originally developed for the myGrid Project (www.mygrid.org.uk)
• Currently, a managed programme project of Open Middleware Infrastructure Institute (www.omii.ac.uk)
UDDI
• Service-Oriented Architecture
• Universal Description, Discovery and Integration– The service publication and discovery
specification adopted by WS community– The latest version is v3 (v2 is still widely used)
• The UDDI standard defines– The data model to describe services– The API to publish/discover services
What UDDI lacks
• Rigid data model with limited extensibility
– Prevents customised service description
• WS technical interface is expressed as an outgoing link (through tModel).
– Prevents discovery based on technical interface detail
– Burden is on clients to parse multiple external documents and reason over them
• No metadata support published by third parties
• No Lifetime management
Metadata Annotation
• Metadata annotation helps service discovery– Customized service description– Service consumers can share experience in
service discovery and invocation
• Metadata examples– (Service, UseResource, aDatabase)– (InputMessage, SemanticType,
NucleotideSequence)
Grimoires Functionality
• UDDI interface– UDDIv2 compliant
• WSDL interface– Publish and inquire for the WSDL
descriptions, for instance,• Publish a WSDL by its URL• Find the input message of an operation. • Given an operation, find out which WSDL
description it belongs to
Grimoires Functionality (contd.)
• Metadata interface– Attach a piece of metadata to UDDI entities (business
and service), WSDL entities (operation and message part), metadata
– The metadata can be a String, a URI (representing an ontology concept), or RDF triples (arbitrary graphs).
– Publication by provider, consumer or third parties– Retrieve metadata attached to an entity– Discover entity by metadata
• All information is uniformly represented in RDF
Metadataattachment
myGridService Profile
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix uddi: <http://www.mygrid.ecs.soton.ac.uk/uddi.rdf#> . @prefix mygrid: <http://www.mygrid.ecs.soton.ac.uk/mygrid.rdf#> . @prefix mygrid2: <http://www.mygrid.org.uk/ontolology#> . @prefix : <#> . mygrid:Pe577955b-d271-4a5b-8099-001abc1da633 mygrid:uses_resources mygrid2:nucleotide_sequence_database> ; mygrid:uses_method mygrid2:mygrid_bioinformatics_primitive_service_operation> ; mygrid:performs_task mygrid2:pairwise_local_aligning> ; mygrid:is_function_of mygrid2:blastn . _:b1 uddi:hasServiceKey "e577955b-d271-4a5b-8099-001abc1da633" ; a uddi:BusinessService ; uddi:hasName [ rdf:_1 "testService" ; a uddi:NameBag ] ; uddi:hasMetadata [ a mygrid:Profile ; uddi:hasDate "Wed Apr 23 15:06:23 BST 2003" ; rdf:value mygrid:Pe577955b-d271-4a5b-8099-001abc1da633 ; uddi:hasAuthor "Weijian Fang" ] .
Grimoires Implementation
• Deployment environments– OMII 2.0 distribution, GT4, and standard
Tomcat/Axis
• Use RDF triple store as back end– Supported triple stores: Jena and Sesame– The Sesame support is through a Jena-
Sesame-Model
• Lifetime management• Security (WS-Security) and access control• WSRF
Grimoires Architecture
Jena RDF API
Jena-Sesame-Model
Jena DB Store
Jena File-backed In-memory Store
Sesame DB Repo.
Sesame File-backed In-memory Repo.
Sesame Native Repo.
RDF Serializer RDF Deserializer RDF Querier
Lifetime Management Access Control Notification
UDDIv2 WS API Metadata WS API WSDL WS API
Lifetime Management
• Each published entity can have a lifetime.
• When lifetime expires, some termination actions can be taken.– Deletion– Deprecation
Authentication and access control
• Uses signature creation and verification facility of OMII 2.1.0
• Client-side SOAP message signed; server side verifies and extracts X509DN
• X509DN used as input to an access control engine implemented using XACML– X509DN and UDDI request formatted into XACML request– Request is evaluated against existing XACML policy in registry– Can be mapped into role-based context
• Ongoing work on allowing XACML statements to be provided by registry clients as metadata attachments.
WSRF
• Expose the registry as a WS-Resource
• Registry contents exposed as XML Document
• Each registry entry can also be seen as a WS-Resource
• Metadata = WS-Resource properties
• Universal WSRF setters and getters
• Work in progress, making use of GT4 container
Benchmarking Methodology
• Two fundamental operations in a service registry: service publication and discovery.
• We want to investigate to what extent the publication and discovery overheads are affected by the registry data size.
Grimoires vs. jUDDI: Publication
jUDDI: 226.3 ms to publish one service
when there are 2000s in the registry.
Grimoires: 37.8 ms to publish one service
when there are 2000s in the registry.
Grimoires vs. jUDDI: Inquiry
jUDDI: 38 ms to discover one service
when there are 2000s in the registry.
Grimoires: 56.9 ms to discover one service
when there are 2000s in the registry.
Persistent Stores: Publication
File-backed in-memory: 62.4 ms to publish one service
when there are 2000s in the registry.
PostgreSQL: 37066 ms to publish one
service when there are 2000s in the registry.
Persistent Stores: Inquiry
File-backed in-memory: 42.7 ms to discover one service
when there are 2000s in the registry.
PostgreSQL: 2173 ms to discover one service when there are 2000s
in the registry.
WS-Security: Publication
Signed: 1532 ms to publish one service
when there are 2000s in the registry.
Not signed: 88 ms to publish one service
when there are 2000s in the registry.
WS-Security: InquirySigned: 987 ms to
discover one service when there are 2000s
in the registry.
Not signed: 98.9 ms to discover one service
when there are 2000s in the registry.
Metadata Publication
Semantically Publishing 100 Services Against Registry Data Size
0
10
20
30
40
50
60
0 5000 10000 15000 20000 25000
Number of services
Tim
e (s
econ
d)
Delete metadata
Update metadata
Attach metadata
Publish service
Publish WSDL
Attach metadata
Publish service
Discovery by metadataInquiry-by-name: 56.9
ms to discover one service when there are 2000s in the registry.
Inquiry-by-metadata: 80.5 ms to discover one service when
there are 2000s in the registry.
SELECT ?key WHERE(?service, <rdf:type>, <uddi:BusinessService>)(?service0, <uddi:hasName>, ?nameBag)(?nameBag, ?v, “a good service")(?service0, <uddi:hasServiceKey>, ?key)
SELECT ?key WHERE(?service, <rdf:type>, <uddi:BusinessService>)(?service0, <meta:hasMetadata>, ?metadataBag)(?metadataBag, ?v, ?metadata)(?metadata, <meta:hasMetadataType>, <meta:useResource>)(?metadata, <meta:hasMetadataValue>, “blastn database”)(?service0, <uddi:hasServiceKey>, ?key)
Summary
• Grimoires is a UDDIv2 compliant service registry• Grimoires provides metadata
annotation/discovery and WSDL registration/discovery functions that are not supported by UDDI
• Grimoires offers lifetime management• Grimoires is efficient• In Progress and future work:
– WSRF view of registry– Notifications
Download Grimoires
• Grimoires homepage– www.grimoires.org
• Grimoires release– http://twiki.grimoires.org/bin/view/Grimoires/S
oftwareReleases– The latest version is 1.1.0