170 likes | 303 Views
INMIDIO: an INteroperable MIddleware for service Discovery and service InteractiOn. Daniele Sacchetti Daniele.Sacchetti@inria.fr. Outline. Context INMIDIO Solution Objective Service discovery and interaction interoperability Supported protocols: overview INMIDIO Web page Conclusion.
E N D
INMIDIO: an INteroperable MIddleware for service Discovery and service InteractiOn Daniele Sacchetti Daniele.Sacchetti@inria.fr
Outline • Context • INMIDIO Solution • Objective • Service discovery and interaction interoperability • Supported protocols: overview • INMIDIO Web page • Conclusion
The Networked Home • Integrating and composing the functionalities of the heterogeneous networked (software & hardware) resources
1. Which services are present ? 2. May I interact with it ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Middleware heterogeneity • Two base middleware functions for networked home • Service discovery protocols (SDP) (ex: UPnP, SLP, WS-Discovery) • Service interaction protocols (SIP) for communication between services (ex: SOAP, RMI)
Application services developed using existing legacy middleware Middleware-layer interoperability is transparent to applications Legacy SIP INMIDIO Solution to service discovery and interaction interoperability Applications Legacy SDP RMI SLP Dynamic SI interoperability Dynamic SDP interoperability UPnP SOAP
SLP : 239.255.255.23 : 427 UPnP : 239.255.255.250 : 1900 SDP3: Group-Multicast-3 : Port Z Monitor Component SDPs • All SDPs use: • Reserved multicast address & a UDP port assigned by IANA • The SDI monitor component: • Listens on all the ports provided by the table • Null cost in terms of bandwidth consumption as the monitor passively listens on SDP ports
SLP 2 Events Instantiator Parser Parser 1 Parser Parser Parser Parser 3 Monitor Component 5 6 4 UPnP unit UPnP SLP unit Composer Composer SLP 9 8 7 UPnP SDP Interoperability
Unit • Communication between unit’s components based on semantic events • Coordination state machine specifies the process coordination associated with the SDP unit • Parser transforms the raw data flow into a series of semantic events • Composer transforms the series of semantic events into a raw data flow • Socket component decouples the parser and composer from the transport protocol
2 3 1 5 9 8 7 6 4 SDP Detection SDP Interoperability Service Interaction Interoperability (SII) Mobile B SLP Requests SDI UPnP Application UPnP Mobile A RMI Interaction SII Interoperability SII
INMIDIO: SD+ SI + PROXY INMIDIO 2 1 SDP1 SDP2 3 MONITOR 5 7 6 4 8 Client SDP1+SIP1 Service SDP2+SIP2 PROXY 11 9 10 SIP1 SIP2 12 14 13 Network messages Semantic Events Unit • Discovery: steps 1-5,7 • Proxy Generation: steps 6,8 • Interaction: steps 9-14
2 1 UPnP SLP 3 MONITOR 5 7 6 4 8 Client UPNP Service SLP + RMI UPnPProxy 11 9 10 SOAP RMI 12 14 13 Network messages Semantic Events Example of INMIDIO Configuration
Service Location Protocol (SLP) • Specifications: RFC2608 • 239.255.255.253:427 • Supported messages : • Service Request • Service Reply • Service Registration • … … … • INMIDIO: RMI+SLP for clients and services development • INMIDIO components for SLP Unit • SLPparser, SLPcomposer, UDPSocket, UDPMulticastSocket • INMIDIO supported API: • Service Request • Service Reply • only one URL entry in the SrvRply message
Universal Plug and Play (UPnP) • Specifications (http://www.upnp.org/download/UPnPDA10_20000613.htm) • Discovery: SSDP - 239.255.255.250:1900 • Description: XML Devices + Services • Control: SOAP • Eventing • Presentation • INMIDIO components for UPnP Unit • SSDPparser, SSDPcomposer, UDPSocket, UDPMulticastSocket. • DeviceDescriptionParser, ServiceDescriptionParsers, DeviceDescriptionComposer, ServiceDescriptionComposer, HTTPSocket • INMIDIO Supported API • Discovery is supported. • Advertisement NOTIFY: ssdp:byebye and ssdp:alive not supported • Discovery ssdp:discover (M-SEARCH) and Response: supported • Description is supported • The XML specification language for description of devices and service is completely supported: 1 service for device. • UPnP description specification does not support arrays and complex types • the middleware supports only a limited set of simple data types: string, integer and boolean. • Control is partially supported: Requests and responses are supported by the SOAP unit • UPnPError fault and Query for variable: not supported. • Eventing, Presentation: not supported
Web Services Dynamic Discovery (WS-Discovery) • Specifications: (http://schemas.xmlsoap.org/ws/2005/04/discovery/) • 239.255.255.250:3702 • Based on XML • Supported messages: • Hello, Bye, Probe, ProbeMatch, Resolve, ResolveMatch • Interaction: SOAP/HTTP • Service description: WSDL • INMIDIO components for WSDiscovery Unit • WSDparser, WSDcomposer,UDPSocket, UDPMulticastSocket • WSDLParser, WSDLComposer, HTTPsocket • INMIDIO supported API: • Hello: recognized by WSDparser, events not generated • Bye: recognized by WSDparser, events not generated • Probe:Supported. • ProbeMatch: Supported. • Resolve: recognized by WSDparser, events not generated • ResolveMatch: recognized by WSDparser, events not generated
Remote Method Invocation (RMI) • Specifications: • Java Remote Method Protocol (JRMP) • Out stream: Call, Ping, Dgcack • In stream: ReturnData, HttpReturn, PingAck • Java Object Serialization: ObjectIdentifier,Operation,Hash,Arguments • INMIDIO components for RMI Unit • JRMPparser, JRMPcomposer, Objectparser, Objectcomposer • INMIDIO supported API: • JRMP protocol: only supported is Call, ReturnData • Object serialization protocol: • JDK1.1 and Java 2 serialization protocol supported • Return value: not supported. RMIHolders classes • (one Holder class is defined for each basic type String, Integer) • Argument types • supported: int, Boolean and string. • Complex types and arrays: not supported • Exceptions in return value are not supported.
Simple Object Access Protocol (SOAP) • Specifications: http://www.w3.org/2000/xp/Group/ • Based on XML • one-way messages and request/response interactions • Binding: HTTP,…. • INMIDIO components for SOAP Unit • SOAPparser, SOAPcomposer, HTTPSocket • INMIDIO supported API: • SOAP RPC requests and response: supported. • Only HTTP binding supported. Only the HTTP Header POST command is supported. • Argument types supported: int, boolean and string. Complex types and arrays are not supported. • SOAP Fault specification is not supported
INMIDIO Web site • INMIDIO Web site http://www-rocq.inria.fr/arles/download/inmidio/index.html • INMIDIO Middleware Software Developer Guide • Code description: Monitor, Units, Parsers, Composers, Sockets, Events, Messages • Details for each protocol supported: • Supported API • State machine diagram • Extend the middleware with new components • INMIDIO Middleware User Guide • Tutorial with examples of clients and services • INMIDIO source code • Samples code