INMIDIO: an INteroperable MIddleware for service Discovery and service InteractiOn Daniele Sacchetti...
-
Upload
austin-grant -
Category
Documents
-
view
213 -
download
0
Transcript of INMIDIO: an INteroperable MIddleware for service Discovery and service InteractiOn Daniele Sacchetti...
INMIDIO: an INteroperable MIddleware for service Discovery and
service InteractiOn
Daniele Sacchetti
2
Outline
• Context• INMIDIO Solution
– Objective– Service discovery and interaction interoperability– Supported protocols: overview
• INMIDIO Web page• Conclusion
3
The Networked Home
• Integrating and composing the functionalities of the heterogeneous networked (software & hardware) resources
4
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)
1. Which services are present ?2. May I interact with it ?
? ???
? ???
??
?
? ?
? ?
5
INMIDIO Solution to service discovery and interaction interoperability
• Application services developed using existing legacy middleware
• Middleware-layer interoperability is transparent to applications
Legacy SDP
Dynamic SDP interoperability
SLP
UPnP
Legacy SIP
Dynamic SI interoperability
SOAP
RMI
Applications
6
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
MonitorComponent
SLP : 239.255.255.23 : 427
UPnP : 239.255.255.250 : 1900
SDP3: Group-Multicast-3 : Port Z
7
SDP Interoperability
MonitorComponent
ParserParserParser
Composer
UPnP unit
ParserParserParser
Composer
SLP
UPnP
SLPUPnP
SLP unit
EventsInstantiator
1
2
3
4 5 6
8 79
8
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
9
Service Interaction Interoperability (SII)
SLPRequests
Mobile A
SDP Detection
SDPInteroperability
UPnP
23
1
45
6
Mobile B
SIIInteroperability
7
8 9
RMIInteraction
SDI
UPnPApplication
SII
10
INMIDIO: SD+ SI + PROXY
3
Network messages Semantic Events
ServiceSDP2+SIP2
ClientSDP1+SIP1
SDP2SDP1
SIP1 SIP2
PROXY
MONITOR
2
1
4
567
8
910
11
12
1314
• Discovery: steps 1-5,7 • Proxy Generation: steps 6,8• Interaction: steps 9-14
INMIDIO
Unit
11
Example of INMIDIO Configuration
3
Network messages Semantic Events
ServiceSLP + RMI
ClientUPNP
SLPUPnP
SOAP RMI
UPnPProxy
MONITOR
2
1
4
567
8
910
11
12
1314
12
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
13
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
14
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
15
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.
16
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
17
INMIDIO Web site
• INMIDIO Web sitehttp://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