Title: GloServ: Global Service Discovery Architecture
1GloServ Global Service Discovery Architecture
- Knarig Arabshian and Henning Schulzrinne
- IRT internal talk
- April 8, 2004
2Agenda
- Motivation
- Background
- RDF and RQL
- Architecture
- Hierarchy, registration, query
- Related work
- Conclusions and future work
3What is service discovery?
- Where is foo? Who is responsible for bar?
- What Italian restaurants are near Columbia
University? - Events services
- Can be location-based
there is a classical music concert at 7pm across
the street, near your hotel ...
4Why global services?
- Ubiquitous computing is becoming prevalent in
todays society - Traveler visiting a new city wants to know all
classical music events. - Doctor visiting a hospital wants to know medical
services in this hospital. - Visitor in starbucks wants to know if it offers
local internet TV.
Service discovery should be global
5What are the challenges?
- Service description and querying
- Too specific does not extend to a new service
- Too broad difficult to search or find
- Semantically describe services
- Global scale
- Flat does not scale
- Hierarchy like DNS
- Location based restaurant.service.newyork.ny.us
- Service based newyork.ny.us.service.restaurant
6Service description (RDF)
- Resource Description Framework (RDF)
- XML-based by W3C
- Originally designed to represent metadata for web
resources - Semantically defines web resources
- Identify things using URI
- Describe using properties and property values
- lt?xml version1.0?gt
- ltRDFgt
- ltRestaurant abouthttp///PatsPizza.htmlgt
- ltCuisinegtItalianlt/Cuisinegt
- ltRatinggt6lt/Ratinggt
- lt/Restaurantgt
- lt/RDFgt
7More RDF 2
- (subject, predicate, object)
- doc , title, My resume
- doc, editor, ltgt
- ltgt, homePage, http//
- ltgt, fullName, Alice Cueba
http//www.home.com/doc
title
editor
My resume
fullName
homePage
http//www/alice
Alice Cueba
8More RDF 3
- lt?xml version1.0gt
- ltrdfRDF xmlnsrdf gt
- ltrdfDescription rdfabouthttp//www.home.com/
docgt - ltdctitlegtMy resumelt/dctitlegt
- ltaeditor rdfnodeIDeditorInfo/gt
- lt/rdfDescriptiongt
- ltrdfDescription rdfnodeIDeditorInfogt
- ltafullNamegtAlice Cuebalt/afullNamegt
- ltahomePage rdfresourcehttp//www/alice/gt
- lt/rdfDescriptiongt
- lt/rdfRDFgt
9RDF schema
- Vocabulary description language that provides a
type system for RDF. - Classes are similar to object-oriented classes
- Properties are similar to members within a class
- (Subject, predicate, object) gt (Class,
property, property value) - Example
- Restaurant, rating, 6
- Restaurant, cuisine, Italian
- Rating
- (domaingtRestaurant, rangegtliteral)
- Class?property can be many-to-many
- Classes can have subclasses, Properties can have
subproperties
10RDF schema 2
- ltRDF gt
- ltClass IDRestaurantgt
- ltCommentgtA dining establishment
- lt/Commentgt
- ltlabelgtRestaurantlt/labelgt
- lt/Classgt
- ltProperty IDRatinggt
- ltdomain resourceRestaurantgt
- ltrange resourceLiteralgt
- lt/Propertygt
- ltProperty IDCuisinegt
- ltdomain resourceRestaurantgt
- ltrange resourceLiteralgt
- lt/Propertygt
- lt/RDFgt
- ltRDF gt
- ltRestaurant abouthttp///PatsPizza.htmlgt
- ltCuisinegtItalianlt/Cuisinegt
- ltRatinggt6lt/Ratinggt
- lt/Restaurantgt
- lt/RDFgt
11Query in RDF
- Different querying languages for RDF
- RDF data query language (RDQL)
- RDF query language (RQL)
- Chose RQL
- Allows schema query (why needed?)
- Select Y from X rating Y
- Where Xhttp///PatsPizza
- Result Y6
Find me the rating of pats pizza
12Query in RDF 2
- Querying the properties that belong to a
particular domain - select _at_X from Property_at_X where _at_X in domain(
Restaurant ) - gtResult _at_X Rating, Cuisine
- Querying subclasses of a particular class
- select X from ClassX where X in subClassOf(
Event ) - gtResult X Classical, Medical, Emergency
13Architecture Hierarchy
service
event
restaurant.service
medical.event
concert.event
jazz.concert.event
classical.concert.event
14Determination of Service Hierarchy
- The GloServ architecture is similar to DNS
- root name servers
- authoritative name servers that manage the
information of services. - Separate classification system similar to North
American Industry Classification System (NAICS) - classifies the hierarchy of services
- establishes RDF schemas that describe each type
of service - The service categorization is similar to yellow
pages directory. - Authority such as ICANN delegates the top level
services
15Registration
Service Agent Operator
1)Present user with service hierarchy
2) Choose hierarchy level to register to
gloservregistrar
4)Create form (according to the meta data)
for user to fill out
3) Generate URI and contact correct server
to obtain meta data for GUI
5)Verify service agent and store RDF document
in server
restaurant.service
16User Query
User
1)Present user with services offered
2) Choose service to query to
Local user agent
4)Create query form (according to the meta data)
for user to fill out
3) Generate URI and contact correct server
to obtain meta data for GUI
5)Formulate RQL query and obtain list of
services
restaurant.service
17Generating URI to contact correct Authoritative
Server
- Service Level
- User chooses the level of the hierarchy it wants
to either register to or query to - Registrar and Local User Agent
- Concatenate the service hierarchy into a URI
- service-gtrestaurant will evaluate to
gloservrestaurant.service
18Generating URI to contact correct Authoritative
Server
- Location Level
- Find out the nearest location-based servers by
querying its cached RDF store of its location
hierarchy new_york.ny.us - Generate URI gloservrestaurant.service.new_york.
ny.us - If this URI doesnt exist, try the sibling
location gloservrestaurant.service.brooklyn.ny.us
- May also try just the service URI itself in case
it is not a location-based service
(gloservrestaurant.service)
19Query within Authoritative Server
- restaurant.service authoritative server will
execute RQL query on its RDF store and return
matches - User may also add additional text to search for
- This evaluates to a heuristic that searches for
(subject, predicate, objects) that match the text - May not be as accurate
- Gives user opportunity to choose from a broader
list of services
20Related Work
- SLP (Service Location protocol)
- User Agents (UA) perform service discovery on
behalf of a client - Service Agents (SA) which advertise location and
characteristics of the service on behalf of the
service - Directory Agents (DA), records available services
and also responds to service requests from UAs
(optional). - Two modes of operation
- DA exists UAs learn of services available by
unicasting their requests to the DA. - DA doesnt exist UAs repeatedly multicast
messages to Sas that responds to the UAs via
unicast.
21Related Work
- JINI
- Built on top of the Java object and RMI system.
- Service registries, similar to SLPs DAs
- The Java class hierarchy defines services and
their attributes. - UPnP
- Doesnt have a central service registry
- Services multicast their announcements to control
points that are listening - Control points can also multicast discovery
messages and search for devices within the
system. - XML describes the services in greater detail.
22Differences/Similarities
- Scaling
- SLP and Jini can cover small networks as well as
- larger enterprise networks
- UPnP appropriate for home or small office
networks. - Querying
- Simple text-based attribute-value query languages
for SLP and Jini - UPnP provides more descriptive queries through
XML. - Main Drawbacks
- do not cover a wide area network that spans the
whole Internet - SLP, Jini provide simpler querying mechanism
which do not give enough flexibility to the
system.
23Conclusion and Future Work
- GloServ is a global service discovery
architecture - Uses RDF/RQL to describe and query for services
- Hierarchical definition of services
- Building a prototype implementation of GloServ