Post on 30-Dec-2015
description
GloServ: Global GloServ: Global Service Discovery Service Discovery ArchitectureArchitecture
Knarig Arabshian and Henning Schulzrinne
IRT internal talkApril 8, 2004
GloServ/Knarig 2
AgendaAgenda
Motivation Background
RDF and RQL Architecture
Hierarchy, registration, query Related work Conclusions and future work
GloServ/Knarig 3
What is service discovery?What 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 ...
GloServ/Knarig 4
Why global services?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 5
What are the challenges?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 6
Service description (RDF)Service description (RDF)
<?xml version=“1.0”?>
<RDF>
<Restaurant about=“http://…/PatsPizza.html”>
<Cuisine>Italian</Cuisine>
<Rating>6</Rating>
</Restaurant>
</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
GloServ/Knarig 7
More RDF [2]More RDF [2]
(subject, predicate, object)
doc , title, My resumedoc, editor, <><>, homePage, http://…<>, fullName, Alice
Cueba
http://www.home.com/doc
http://www/~alice
My resume
Alice Cueba
titleeditor
homePage fullName
GloServ/Knarig 8
More RDF [3]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 9
RDF schemaRDF 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) Classproperty : can be many-to-many Classes can have subclasses, Properties can have
subproperties
GloServ/Knarig 10
RDF schema [2]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 11
Query in RDFQuery 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
Find me the rating of pat’s pizza
GloServ/Knarig 12
Query in RDF [2]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 13
Architecture: HierarchyArchitecture: Hierarchy
medical.event
serviceevent
concert.event
jazz.concert.event classical.concert.event
restaurant.service
GloServ/Knarig 14
Determination of Service Determination of Service HierarchyHierarchy 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
GloServ/Knarig 15
RegistrationRegistration
gloserv:registrar
restaurant.service
2) Choose hierarchy level to register to
1)Present user with service hierarchy
3) Generate URI and contact correct server to obtain meta data for GUI
4)Create form (according to the meta data) for user to fill out
ServiceAgent Operator
5)Verify service agent and store RDF document in server
GloServ/Knarig 16
User QueryUser Query
Local user agent
restaurant.service
2) Choose service to query to
1)Present user with services offered
3) Generate URI and contact correct server to obtain meta data for GUI
4)Create query form (according to the meta data) for user to fill out
User
5)Formulate RQL query and obtain list of services
GloServ/Knarig 17
Generating URI to contact Generating URI to contact correct Authoritative correct Authoritative ServerServer 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 18
Generating URI to contact Generating URI to contact correct Authoritative correct Authoritative ServerServer 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 19
Query within Authoritative Query within Authoritative ServerServer 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 20
Related WorkRelated 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 21
Related WorkRelated 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 22
Differences/SimilaritiesDifferences/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.