Draft of a Matchmaking Service
description
Transcript of Draft of a Matchmaking Service
1
Draft of a Matchmaking Service
Chuang liu
2
Matchmaking Service
• Matchmaking Service is a service to help service providers to advertising their service and help consumers to pick the best service from all available offers.
3
Outline
• > Introduction to Matchmaking Service• Description Language• Matchmaking Algorithm• Matchmaking Service design• Conclusion
4
Some definitions
• Ads: A service description– Service ads: it is provided by service provider that
describes the service provided– Service Request ads: it is provided by consumer that
describes the service he wants
• Service– Simple Service: Service that can not be divided into
smaller services. – Complex service: Service that consists of multiple
smaller services with particular structure– Member Service: a service that is part of a complex
service. It can be a simple service or a complex service
5
Matchmaking Service
• Functionalities:– Advertising
• Service providers can advertise their services and consumers can advertise their requests
– Browsing• Consumer and service provider can browse the current ads
– Querying • Consumer and service can find out a relevant ads from current
available ones.
6
Matchmaking Service
• Key components:– A language to express ads
– Matchmaking algorithms to match ads
– A repository to organize all ads that are advertised by consumer and service provider
– …
7
Outline
• Introduction to Matchmaking Service• > Description Language
– >> Introduction
– Design
– Example
• Matchmaking Algorithm• Matchmaking Service design• Conclusion
8
Description Language
• Description Language is used to by service provider to describe their service and consumer to describe the request.
9
Description Language
• Requirements– Easy to use and understand
– Symmetric
– High degree of flexibility and expressiveness
– Ability to express constraints and preference
– Machine-understandable
10
Description Language
• Flexibility and Expressiveness– Flexible/Extensible enough to describe different
services used in difference scenarios such as: Grid resource selection, e-commerce
– Expressive enough to describe both a simple service and a complex service that may consist of several simple services with a particular structure.
– Ability of express semi-structured data
11
Related work: ClassAds language
• ClassAds language– Use arithmetic/logic expression to describe the attribute
of a service, constraints and relationship of services. – pros:
• It is very easy to use and understand• Can describe the constraints and preferences that is often a
logic/arithmetic operations of attributes every easily
– cons:• ClassAds is just a data structure. For a service description, we
need more semantic ontologies to describe service in order to implement semantic match
• Limitation to describe the complex service that has particular structure or logic relationship
12
Related work: XML based language
• RDF, DAML+OIL, DAML-S, UDDI, ebXML)
– Use metadata to describe the a service
– pros: • Support Semantic match
– cons: • not so easy to understand
• Limitation to express constraints and preference because it doesn’t support logic/arithmetic expression
• Limitation to describe the complex service that has particular structure or logic relationship
13
Outline
• Introduction to Matchmaking Service• > Description Language
– Introduction
– >> Design
– Example
• Matchmaking Algorithm• Matchmaking Service design• Conclusion
14
Description Language: Design
• Components in a service description– Metadata definition: It defines the metadata that can be
used to describe the service
– Member Service description: It defines the member services using metadata
– Full Service description: It defines attributes of this service and the logic structure of member services in this service
15
Description language: Design
• Metadata definition– Solution: Semantic Web technology
– Pros:• The extensibility of XML language make it possible to
describe different kinds of services
• Support semi-structure data
• Support subsumption match
• Many ongoing projects make it a developing technology
16
Metadata definition
• Four kinds of metadata– Class
• Similar to Class in OO programming language, it defines a type of service. Class definition includes constraints to its properties and its relationship with other Class.
– Properties• Similar to property in OO programming language, it defines a attribute of
a Class. Property definition includes range of property value, domain where the property will be used, and its semantic relationship with other properties.
– Value• It defines valid values that can used to describe properties
– Metadata to define the logic relationship between classes (for example: subclass) and logic relationship between properties( for example: subproperty).
17
Metadata definition example
Resource
StorageResource
CompuationResource
SubClassSubClass
osOS
Unix Linux Windows
SunOS Irix
Redhat Suse
Windows98
Windows2000
WindowsXP
class
property
A example of Class relationship
18
Metadata Definition example
Definition of this classes described by DAML<rdfs:Class rdf:about="#Resource"></rdfs: Class><rdfs:Class rdf:about="#ComputationResource"> <rdfs:subClassOf rdf:resource="#Resource"/> <rdfs:subClassOf> <daml:Restriction daml:maxcardinalityQ="1"> <daml:onProperty rdf:resource="#os"/> </daml:Restriction> </rdfs:subClassOf></rdfs:Class>
<rdfs:Class rdf:ID="OS"> <daml:oneOf rdf:parseType="daml:collection"> <OS rdf:ID="Linux"/> <OS rdf:ID="Windows"/> <OS rdf:ID="Unix"/> </daml:oneOf></rdfs:Class>
<rdf:Property rdf:ID="os"><rdfs:domain rdf:resource="#ComputationResourcel"/><rdfs:range rdf:resource="#OS"/></rdf:Property>
19
Metadata Definition example(cont.)
<rdfs:Class rdf:ID="Unix"><rdfs:subClassOf rdf:resource="#OS"/><daml:oneOf rdf:parseType="daml:collection">
<Unix rdf:ID="Irix"/><Unix rdf:ID="SunOS"/>
</daml:oneOf></rdfs:Class>
<rdfs:Class rdf:ID="Linux"><rdfs:subClassOf rdf:resource="#OS"/><daml:oneOf rdf:parseType="daml:collection">
<Linux rdf:ID="suse Linux"/><Linux rdf:ID="Redhat"/>
</daml:oneOf></rdfs:Class>
<rdfs:Class rdf:ID="Windows"><rdfs:subClassOf rdf:resource="#OS"/><daml:oneOf rdf:parseType="daml:collection">
<Windows rdf:ID="Windows98"/><Windows rdf:ID="Windows2000"/><Windows rdf:ID="WindowsXP"/>
</daml:oneOf></rdfs:Class>
20
Service Description
• Every service belongs to a class• Property/value pair to describe the characteristics
of a service• For complex service, using logic programming
language to describe the relationship of its member service
21
Simple Service Description
• ClassAds structure + metadata – Example( here ‘ComputationResource’, ‘os’ and
‘linux’ is metadata defined in previous example. And ‘ID’, ‘Requirements’ and ‘Rank’ are system defined metadata)
rs1=ComputationResource::[os=Redhat::[...];...Requirements=...;Rank=...;
]
22
Simple Service Description
• Extensions to ClassAds language– Class declaration operator: “::”– Attribute/Value: metadata – Subsumption operator: ISA
• “Redhat ISA Linux” return true based on the definition of metadata “Redhat” and “Linux” in previous example
– Function: Type()• Type(rs1) = “Computation Resource”;
– More data types: for example: a=<1, 5> means value of a is between 1 and 5, here <1, 5> is new data type “scale”.
– More …
23
Complex Service Description
• Complex Service Description structure
service=ComplexService::[Member Service1 Description;Member Service2 Description;
...Rules=[ Logic rules used to describe the
relationship of member service;]]<Attribute> = <Value>; ...Requirements=Rank=
]
24
Complex Service Description
Extensions to ClassAds language– Aggregation function to describe the aggregation
attributes of Whole service
– Logic programming language to describe the logic relationship of member services in this service
25
Example:
• A computation resource and a storage resource connected by network with at least 100k bandwidth
service=ComplexServiceA::[computationR=ComputationResource::[...];storageR=StorageResource::[...];Rules=[ ServiceTopology({s1, s2}) :-
type(s1)=ComputationResource,type(s2)=StorageResource,s1.Bandwidth(s2) > 100 K.
];Requirements=
Rules.ServiceTopology({computationR, storageR}); ...]
26
Example:
• N machines connected by network with at least 100K bandwidth
s= ComplexService::[t=ComputationResource[...];machinelist=List[...];Rules=[
service(L) :- Size(L)=N, BandReq(L).BandReq({H| T}) :- Conn( H, T), BandReq(T),
Type(H)=ComputationResource.BandReq({H}) :- true.Conn(H, {h|t}) :- H.Bandwidth(h) > 100K,
Conn(H, t).Conn(H, {}) :- true.
];Requirements= Rules.service(machinelist);
]
27
Example
• Mapping function in parallel computing– 1 D mapping function for cactus application
– Because this example can not be fitted into this page, it can be provided by request.
28
Example
• A simple online selling service includes two member services: Sell and Delivery. If in Sell service, customer chooses in-store pick-up, no delivery is needed.
s=OnelineSell::[sellService=Sell::[...];Deliverary= Deliverary::[...];Rules=[
Service({Sell, Delivery}):- Sell.deliveryMethod= Pick-up,requirements(Sell).
Service({Sell, Delivery}) :- Sell.deliveryMethod !=Pick-up,requirement(Sell), requirements(Delivery).
];Requirements=Rules.Service(sellService, Deliverary);...
]
29
Outline
• Introduction to Matchmaking Service• Description Language• > Matchmaking Algorithm• Matchmaking Service Design• Conclusion
30
Matchmaking Algorithm
• Two kind of Service descriptions: service ads and service request ads
Resource
StorageResource
CompuationResource
SubClassSubClass
StorageResource
request
StorageResource
offer
ComputationResource
offer
ComputationResource
offer
Request Offer
Resourcerequest
31
Matchmaking algorithm
• A service ad only matches service request ads that are his sibling or children of sibling in the class tree.– Example: Ad in “Resource Request” class will match
ads in “Storage Resource Offer” and “Computation Resource Offer” class in previous graph.
32
Matchmaking algorithm
• Simple Service: two ads match each other if there is not conflictions in their common properties and attribute “requirements” is evaluated to true.
request=ComputationResourceRequest::[
os ISA Linux;cpuload=<0, 1>;
... ]
offer=ComputationResourceOffer::[
os=Redhat;cpuload=0.1;...]
33
Matchmaking algorithm-complex service
• Complex Service description includes two parts: description of member services and predicates that describe the relationship of member service.
• Matchmaking is a process to find the related member services and organize them into a complex one that match the requirements.
34
Matchmaking algorithm: Complex Service
• Step 1: Get possible value for every member service
Member Service1
Member Service2
Service instances thatmatch member service 1
Service instances thatmatch member service 2
Member Service2
Service instances thatmatch member service n
35
Matchmaking algorithm: Complex Service
• Step 2: – Treat possible value for every member service as value
range of this member service.
– Using the solver for constraint logic programming language to get the value for every member service that satisfy the predicate.
– Related works (CLP programming language and solver)
36
Outline
• Introduction to Matchmaking Service• Description Language• Matchmaking Algorithm• > Matchmaking Service Design• Conclusion
37
Matchmaking Service:
• Architecture
Ads repositoryMetadatalibrary
Interface
ads
Matchmaker
metadatadefinition
advertising
browsing /query
38
Matchmaking Service
• Matchmaking Service– Advertising Service: Let consumer to advertise their
request and let service provider to advertise their service.
– Browsing Service: Let’s user to browse the current ads. All Service is described by a class, So this service can support classified browsing function.
– Query Service: Let’s user to get ads that satisfying his requirements.
39
Matchmaking Service
• Query Service: • Instant Service: Matchmaking Service returns the matched
result instantly
• Subscription Service: Matchmaking Service notifies the subscriber newest result for his request periodically.
• More …
40
Matchmaking Service
• Interface design:– Interface for user to add or modify metadata
– Based on the metadata library, a user-friendly GUI interface is provided to help user to build a valid ads.
41
Matchmaking Service
• Ads repository– The organization of ads
• Based the type of ads, organize them into a logic tree structure in order to improve performance of browsing and query
– More …
42
Outline
• Introduction to Matchmaking Service• Description Language• Matchmaking Algorithm• Matchmaking Service Design• > Conclusion
43
Conclusion
• Description of service– Introduce metadata to describe the service
– Use logic programming language to describe complex services
• Matchmaking algorithm– Support semantic match
– Support the matchmaking of complex service
• Matchmaking Service– Service design