The GRIMOIRES Service Registry Weijian Fang and Luc Moreau School of Electronics and Computer...

26
The GRIMOIRES Service Registry Weijian Fang and Luc Moreau School of Electronics and Computer Science University of Southampton

Transcript of The GRIMOIRES Service Registry Weijian Fang and Luc Moreau School of Electronics and Computer...

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

UDDI Data Model

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