400 likes | 544 Views
Service/Resource Discovery: Technology Analysis and Selection. presented by Reaz Ahmed School of Computer Science University of Waterloo. Objective. Define a set of evaluation criteria Survey on state-of-the-art discovery approaches Compare these approaches
E N D
Service/Resource Discovery: Technology Analysis and Selection presented by Reaz Ahmed School of Computer Science University of Waterloo
Objective • Define a set of evaluation criteria • Survey on state-of-the-art discovery approaches • Compare these approaches • Identify the approach(s) closest to the desired Service Discovery Architecture: • Internet-scale • Multi-domain • Multi-technology September 8, 2014 University of Waterloo, Waterloo
Issues Find directory • Directory architecture Bootstrapping • Bootstrapping process Service ID & Description • Directory/advertised Info. • Query expressiveness Registration • Query architecture Directory Directory • Type of service handle Directory • Selection mechanism Lookup Query List of matching Services & handles Reply Select suitable service Steps Selection Service Discovery: Steps & Issues Service Other Issues • Accuracy & completeness • Security • Fault-tolerance • Performance • Target infrastructure size • Interoperability Client September 8, 2014 University of Waterloo, Waterloo
Service description Registry (partial): remote Registry (partial): local Registry (entire) Service Client Peer Feature specific to a SDP Legend Advertisement Query request Query reply Directory Unicast (solid line) Multicast (dotted line) Broadcast (dashed line) September 8, 2014 University of Waterloo, Waterloo
Salutation • Proposed by Salutation Consortium, 1999 • Focus: • Standard specification for service description • Provide API for service/client implementation • Achieve independence of • Network technology • Operating system • Device classes/manufacturer • Facilitate service composition • Scalable implementation of directory agents September 8, 2014 University of Waterloo, Waterloo
FUDR-1 Client FU Client FU Service FU Service FU FUDR-2 SLM-API … FUDR-N SLM Salutation Manager (SLM) SLM SLM-TI SLM-ID RPC RPC TM TM TM TM FU-ID FU-Handle AR-1 AR-2 … AR-M Transport-ID Transport Transport Transport Transport Attribute ID Comp. Func-ID/Result Value Salutation(2) September 8, 2014 University of Waterloo, Waterloo
1. Static table 4. Out of band e.g. floppy 2. Broadcast 3. Central server SLM TM Salutation(3) TM discovers other SLM in several ways: Client Service SLM SLM TM TM September 8, 2014 University of Waterloo, Waterloo
SAX DAX UAX SAX X SAY DAX UAXY Y SAXY SAY UAY Service Location Protocol • Introduced by IETF SRVLOC working group, 1997. SLPv2 in 1999 • Naming: service: URL • service:<abstract-type>:<concrete-type>://<hostname>/<path> • service:print:lpr://inkspot. uwaterloo.ca/bcr_queue • Description: • list of standard/vendor-specified attribute-value pairs. • Service Type & Service Template • Agents • UA: user agent • SA: service agent • DA: directory agent • Scope • Administrative grouping of service September 8, 2014 University of Waterloo, Waterloo
Service type service:print Service Client Service Scope-list Grads, Default Query predicate (&(q<3) (color=true)) SrvRqst PRList Service Agent Service Agent User Agent Service SrvRply Lifetime, URL … Service Lifetime, URL service:print:lpr://bcr4.uwaterloo.ca/ Service Advertisement life time service:print:ftp://ns1.uwaterloo.ca/q2 service:print Service Agent service:print:lpr://bcr4.uwaterloo.ca/ URL-entry Grads, Staff, Default Service type (Paper-size=A4), (Location=DC3335), (color=true), (q=2) (language=PS) User Service Scope list Attribute list SrvRqst SrvReg Directory Agent User Agent Service Agent SrvRply SrvAck Service Location Protocol(2) • Modes of operation: • w/o Directory • with Directory September 8, 2014 University of Waterloo, Waterloo
Sys Admin. • DHCP option 78 • Active DHCP Server Opt. 78 • Passive Service Service Service Client Client Client SA SA SA UA UA UA URL DAAdvert DAAdvert Scope-list Attrib-list SrvRqst (type=service:directory-agent) DA DA DA DAAdvert DAAdvert Service Location Protocol(3) • Discovering DAs September 8, 2014 University of Waterloo, Waterloo
Jini • By Sun Microsystem, 1998 • Focus • Object-oriented approach to service discovery. • RMI via proxy • Event-based notification • Grouping of related services/clients : Federation • Similar to the Scope concept of SLP Network Services Javaspace Transaction Manager Jini Technology Lookup, Discovery, Events Leasing, Transactions Jini Architecture Java Technology RMI, JVM Operating System Network Transport September 8, 2014 University of Waterloo, Waterloo
Multicast Request • Multicast Announcement Listener IP:port Listener IP:port Requested groups LUS groups Heard LUS IDs Client Client UDP multicast UDP multicast Lookup Service Lookup Service Service Service TCP TCP Proxy LUS Proxy Proxy LUS Proxy RMI RMI Service Discovery Service Discovery Jini(2) • Bootstrapping September 8, 2014 University of Waterloo, Waterloo
administrator Event-notification Service ID Service ID Types Proxy Lookup Service Client Object Attributes Attributes Service Object Query RMI Proxy Register RMI Proxy JVM JVM JVM Invoke RMI Jini(3) • Like SLP, Jini can work w/o directory (i.e. lookup service). But this is not recommended. September 8, 2014 University of Waterloo, Waterloo
Intentional Naming System • Designed by MIT Laboratory for Computer Science as a research project, 1999. • Focus • Expressiveness in service description & query • Responsiveness to query • Robustness: tolerance to directory element failure. • Service selection based on application-defined dynamic metric. September 8, 2014 University of Waterloo, Waterloo
Early binding data Client Service network location intentional name data intentional anycast INR INR INR INR INR INR INR INR INR Client intentional name + data Service Advertised intentional name intentional multicast Client intentional name + data Service Intentional Naming System(2) DSR September 8, 2014 University of Waterloo, Waterloo
Name-records Client Service Advertisement (name-specifier+ name-record) Query root root root Service Access Building Building Access Service Service Access Building Print Public DC DC Public Print INR Print Public MC DC Camera Private dpi Type Room Room Room Type dpi 360x180 Color 3335 Name-specifier * 600 x300 360 x180 3245 3335 3356 Color B&W Network addr. Transport type Name-Tree AnnouncerID Next hop INRs Metrics Name-record Name-record Expiration time Intentional Naming System(3) September 8, 2014 University of Waterloo, Waterloo
INS/Twine • Introduced by MIT Laboratory for Computer Science, 2002 • Focus: • Naming flexibility of INS using name-specifiers • Scalability by distributing directory information over different INRs • Efficiency in lookup by adopting Chord network • Support INS features like intentional multicast & intentional anycast September 8, 2014 University of Waterloo, Waterloo
<Building>DC <Room>3335</Room> </Building> <Service>Print</Service> <dpi>360180</dpi> <Type>Color</Type> </Service> root root Building Building Service Service DC DC Print Print Room Room dpi dpi Type Type INR 360180 360180 3335 3335 Color Color INR INR Building Building Building Building Building Building DC DC DC INR DC DC DC Room Room Room Room INR K1 K1 3335 K2 K2 K3 K3 3335 Service Service Service Service Service Service Print Print Print Print Print Print INR INR dpi dpi dpi dpi Query-NS NS+NR K4 K4 K5 K5 K6 K6 360180 360180 NR Service Service Service Service Service Client Print Print Print Print Type Type Type Type K7 K7 K8 K8 Color Color INS/Twine <Building>DC <Room>3335</Room> </Building> <Service>Print <dpi>360180</dpi> <Type>Color</Type> </Service> K1 September 8, 2014 University of Waterloo, Waterloo
Protocol Layer Service Discovery UDDI Service Description WSDL SOAP Inter-App Transport XML Presentation Session HTTP TCP Transport IP Network … Link Web Services • Initiated by World Wide Web Consortium (W3C) • Focus • Provide seamless integration of software components running on variety of platforms and/or framework. • A layeredarchitecture for automatedservice discovery and invocation, i.e. program-to-program interaction. September 8, 2014 University of Waterloo, Waterloo
White page name, address etc. UDDI :Discover Service Requester (client) UDDI : Get Service Description Yellow page industrial category WSDL technical info. about services Green page UDDI registry Use Service Based on Service Description SOAP Registered info. about business meant for client s/w Publisher (service) UDDI: Publish Service Description WSDL Web Services(2) • UDDI implementation of Web Services September 8, 2014 University of Waterloo, Waterloo
Format Functionality Automatic addressing DHCP/AutoIP Service discovery SSDP Service description XML Control SOAP GENA Eventing HTML Presentation Universal Plug and Play • Microsoft initiated UPnP forum, 2000 • Focus • Provide standard protocol stack and message elements for the discovery process. • Aims for zero-configuration discovery September 8, 2014 University of Waterloo, Waterloo
UPnP Enable Device Root Device UPnP Enable Device UPnP Enable Device Embedded Device Device Control Point Device Service Service 1 Service 2 Service 1 Service 2 Service Service State Table SSDP:alive Type UUID HTTP GET Control Server Event Server Expiry time URL Description Control Point Client SSDP:discover Control Point SOAP results all Root device UUID Device type Notification reg. Service type Event Notification Universal Plug and Play(2) September 8, 2014 University of Waterloo, Waterloo
NOTIFY * HTTP/1.1 HOST: 239.255.255.250:1900 CACHE-CONTROL: max-age = expiry time LOCATION: URL for root device NT: root/UUID/type NTS: ssdp:alive SERVER: OS/version UPnP/1.0 product/version USN: uuid:UUID:: root/type/ HTTPMU HTTPU/MU HTTP GENA SSDP SSDP GENA HTTP SOAP HTTP UDP UDP TCP TCP TCP IP IP IP IP IP Search Eventing Control Description Advertisement Sample HTTP message Universal Plug and Play(3) • UPnP activities and used protocol stack UPnP Vendor UPnP Forum UPnP Device Architecture September 8, 2014 University of Waterloo, Waterloo
JXTA Virtual Network Peer Peer Peer Peer Peer Peer Peer Peer PeerGroup Physical Network JXTA • Sun Microsystems initiated open-source project • Focus • P2P application development environment • Platform independence: language, system & network • Conceptual components • Peer • PeerGroup • Pipes • Point-to-point • Propagate • Network Services • Peer Services • PeerGroup Services • IDs • urn:jxta:uuid-123… September 8, 2014 University of Waterloo, Waterloo
Internet NAT Firewall Relay Peer Relay Peer RPV R7 R8 R3 R4 R3 R6 R7 R5 Rendezvous Peer R4 R9 Index, PeerID Minimal edge peer Module class/ Spec./Impl. Index P4 P6 P2 Full-featured Edge peer R6 R6 R1 R3 R7 R1 R4 P5 R7 R5 R8 R9 R8 R8 R9 P3 JXTA(2) September 8, 2014 University of Waterloo, Waterloo
Splendor • A research project from Michigan State University, 2003 • Focus • Security in service discovery process • Privacy • Service mobility • Client Mobility September 8, 2014 University of Waterloo, Waterloo
Query Service Info to Service IP:port Client Proxy IP:Port Directory IP:port Access Directory 2.5G/3G Service Info+ Proxy IP:port Service Directory IP:port Internet Proxy Service Trusted Services Access IP:port WLAN Client Directory Service Info to Service IP:port Site infrastructure Splendor(2) • All communicating pairs uses public key authentication • All the communication data are encrypted using session key September 8, 2014 University of Waterloo, Waterloo
Keywords FileID PeerID Keyword FileID PeerID File download Centralized (Napster) Decentralized (Gnutella) Content-sharing P2P Systems Super node Super node Super node Super node Partially-Centralized (Kazaa) • Query Routing: • Unstructured • Semi-structured • Structured September 8, 2014 University of Waterloo, Waterloo
Content-sharing P2P Systems(2) Query architecture for decentralized and partially-centralized Systems: September 8, 2014 University of Waterloo, Waterloo
Client Directory Service Directory Client Directory Service Directory Bootstrapping • Requires some pre-configured knowledge • Three major approaches: DHCP Client Service Directory September 8, 2014 University of Waterloo, Waterloo
List Salutation,SLP,Jini,UPnP etc Hierarchy INS, Twine XML-based Standard UPnP, Web services, Twine Salutation,SLP,Web services,UPnP Application-Defined Proprietory Jini, JXTA, INS, Twine Salutation, SLP, Jini, INS Directory Information Service Identifier Salutation,Jini, UPnP, JXTA Globally Unique ID Locally Unique ID + IP:Port INS, Twine URI/URL SLP, Web/Grid Services Service Description Attribute-value pairs Allowed Attributes Representation September 8, 2014 University of Waterloo, Waterloo
Directory Information(2) Access Information, i.e. service handle Other Information Selection metric INS, Twine Routing Info. INS, Twine, JXTA Notification Info. Jini, UPnP Soft State State of a directory entry (expiry-time) Fault-tolerance Soft State INS, Jini, SLP, Grid Service Hard State Hard State Salutation, Web Service Hybrid Twine, Splendor Bandwidth consumption September 8, 2014 University of Waterloo, Waterloo
Service Handle • Service identifier • Salutation • Network address • INS, Twine, Splendor • URL • SLP, UPnP, Web-Service, JXTA • Service description (XML-based) • Web service, JXTA, UPnP • Proxy stub • Jini September 8, 2014 University of Waterloo, Waterloo
Query Expressiveness interface Print Class PS-Print ServiceType Print • Search by category • SLP (Service type), Jini (Object type) etc • Attribute-value matching • INS, Twine etc. • Comparison function • Salutation, Jini etc. • Compound queries • SLP • Attribute relationship • INS, Twine • SQL like query • XQuery for Grid Services. format=PS Location=DC* Paper=(str)“A4” x-res=(int) 600 Angle=(float)12.5 ( & (q<3) (color in (TrueColor, GreyScale)) ) Building=DC Room=3335 For, Let, Where, Order by, Return September 8, 2014 University of Waterloo, Waterloo
Query Architecture (Routing) • Network level routing • Unicast communication with a Central server • Web-services, Napster, INS • Multicast communication • Jini, SLP, UPnP • Application level routing • DHT-based • Twine, Chord, CAN, Pastry • Loosely-consistent DHT • JXTA, Freenet • Flooding • Gnutella • Application-level Multicast/Anycast • INS, Twine September 8, 2014 University of Waterloo, Waterloo
Centralized (Web/Grid, Napster) Decentralized Y X X Replicated (INS) Distributed Hybrid (INS/Twine) Y Directory Agent (SLP, Jini, Salutation) Service Cache (Upnp, JXTA, SLP w/o DA, Pure/partial decentralized P2P) Directory Architecture Directory Architecture September 8, 2014 University of Waterloo, Waterloo
Target Infrastructure size • LAN • INS • Enterprise Network • Jini, SLP, UPnP, Salutation • WAN • Web/Grid services • File-sharing P2P systems • Large-scale • Twine : aims to handle O(108) services/resources • JXTA: aims for Internet-scale September 8, 2014 University of Waterloo, Waterloo
Goal • A Service Discovery system that can work with: • Large-scale network (internet-scale) • Multiple administrative domains • Multiple service discovery technologies • Multiple network technologies September 8, 2014 University of Waterloo, Waterloo
Technology Selection • Potential Candidates • Partially-centralized and structured P2P (e.g. Twine) • Inherent robustness (correctness & fault-tolerance) • Efficient query routing • Scalable implementation • Web/Grid services • Standardized query mechanism • Partially-centralized and structured P2P with the standard Query formalism of Web/Grid services • Enhancement required • Interoperability • Security September 8, 2014 University of Waterloo, Waterloo