GloServ: Global Service Discovery Architecture Knarig Arabshian and Henning Schulzrinne IRT internal talk

Download Report

Transcript GloServ: Global Service Discovery Architecture Knarig Arabshian and Henning Schulzrinne IRT internal talk

GloServ: Global Service
Discovery Architecture
Knarig Arabshian and Henning Schulzrinne
IRT internal talk
April 8, 2004
Agenda


Motivation
Background


Architecture



RDF and RQL
Hierarchy, registration, query
Related work
Conclusions and future work
GloServ/Knarig
2
What is service discovery?

Where is “foo”? Who is
responsible for “bar”?

…there is a classical
music concert at 7pm
across the street,
near your hotel ...


What Italian restaurants
are near Columbia
University?
Events + services
Can be location-based
GloServ/Knarig
3
Why global services?




Ubiquitous computing is becoming prevalent in
today’s 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
GloServ/Knarig
4
What 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
GloServ/Knarig
5
Service 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
<?xml version=“1.0”?>
<RDF>
<Restaurant about=“http://…/PatsPizza.html”>
<Cuisine>Italian</Cuisine>
<Rating>6</Rating>
</Restaurant>
</RDF>
GloServ/Knarig
6
More RDF [2]
(subject, predicate, object)
doc , title, My resume
doc, editor, <>
<>, homePage, http://…
<>, fullName, Alice Cueba
http://www.home.com/doc
editor
title
My resume
homePage
http://www/~alice
GloServ/Knarig
fullName
Alice Cueba
7
More RDF [3]
<?xml version=“1.0”>
<rdf:RDF xmlns:rdf=“…” …>
<rdf:Description rdf:about=“http://www.home.com/doc”>
<dc:title>My resume</dc:title>
<a:editor rdf:nodeID=“editorInfo”/>
</rdf:Description>
<rdf:Description rdf:nodeID=“editorInfo”>
<a:fullName>Alice Cueba</a:fullName>
<a:homePage rdf:resource=“http://www/~alice”/>
</rdf:Description>
</rdf:RDF>
GloServ/Knarig
8
RDF 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) => (Class, property,
property value)
Example:
 Restaurant, rating, 6
 Restaurant, cuisine, Italian
Rating =
(domain=>Restaurant, range=>literal)
Classproperty : can be many-to-many
Classes can have subclasses, Properties can have
GloServ/Knarig
9
subproperties
RDF schema [2]
<RDF …>
<Class ID=“Restaurant”>
<Comment>A dining establishment
</Comment>
<label>Restaurant</label>
</Class>
<Property ID=“Rating”>
<domain resource=“#Restaurant”>
<range resource=“#Literal”>
</Property>
<Property ID=“Cuisine”>
<domain resource=“#Restaurant”>
<range resource=“#Literal”>
</Property>
</RDF>
<RDF …>
<Restaurant
about=“http://…/PatsPizza.
html”>
<Cuisine>Italian</Cuisine>
<Rating>6</Rating>
</Restaurant>
</RDF>
GloServ/Knarig
10
Query 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 X=“http://…/PatsPizza”
Result: Y=6
GloServ/Knarig
Find me
the rating
of pat’s
pizza
11
Query in RDF [2]
Querying the properties that belong to a
particular domain
select @X from Property{@X} where @X in
domain( Restaurant )
=>Result: @X = Rating, Cuisine
Querying subclasses of a particular class
select $X from Class{$X} where $X in
subClassOf( Event )
=>Result: $X = Classical, Medical,
Emergency
GloServ/Knarig
12
Architecture: Hierarchy
event
medical.event
service
restaurant.service
concert.event
jazz.concert.event
classical.concert.event
GloServ/Knarig
13
Determination of Service
Hierarchy

The GloServ architecture is similar to DNS



Separate classification system similar to North American
Industry Classification System (NAICS)




root name servers
authoritative name servers that manage the information of services.
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
GloServ/Knarig
14
Registration
1)Present user with service hierarchy
gloserv:registrar
Service
Agent
Operator
2) Choose hierarchy
level to register to
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
GloServ/Knarig
15
User Query
1)Present user with services offered
Local user agent
User
2) Choose service to
query to
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
GloServ/Knarig
16
Generating 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->restaurant will evaluate to
gloserv:restaurant.service
GloServ/Knarig
17
Generating 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:
gloserv:restaurant.service.new_york.ny.us
If this URI doesn’t exist, try the sibling location
gloserv:restaurant.service.brooklyn.ny.us
May also try just the service URI itself in case it is
not a location-based service
(gloserv:restaurant.service)
GloServ/Knarig
18
Query 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
GloServ/Knarig
19
Related 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 doesn’t exist: UAs repeatedly multicast messages to Sas
that responds to the UAs via unicast.
GloServ/Knarig
20
Related Work

JINI




Built on top of the Java object and RMI system.
Service registries, similar to SLP’s DAs
The Java class hierarchy defines services and their attributes.
UPnP




Doesn’t 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.
GloServ/Knarig
21
Differences/Similarities

Scaling

SLP and Jini can cover small networks as well as
larger enterprise networks


Querying



UPnP appropriate for home or small office networks.
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
22
do not give enoughGloServ/Knarig
flexibility to the system.
Conclusion 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
GloServ/Knarig
23