INMIDIO: an INteroperable MIddleware for service Discovery and service InteractiOn Daniele Sacchetti...

17
INMIDIO: an INteroperable MIddleware for service Discovery and service InteractiOn Daniele Sacchetti [email protected]

Transcript of INMIDIO: an INteroperable MIddleware for service Discovery and service InteractiOn Daniele Sacchetti...

Page 1: INMIDIO: an INteroperable MIddleware for service Discovery and service InteractiOn Daniele Sacchetti Daniele.Sacchetti@inria.fr.

INMIDIO: an INteroperable MIddleware for service Discovery and

service InteractiOn

Daniele Sacchetti

[email protected]

Page 2: INMIDIO: an INteroperable MIddleware for service Discovery and service InteractiOn Daniele Sacchetti Daniele.Sacchetti@inria.fr.

2

Outline

• Context• INMIDIO Solution

– Objective– Service discovery and interaction interoperability– Supported protocols: overview

• INMIDIO Web page• Conclusion

Page 3: INMIDIO: an INteroperable MIddleware for service Discovery and service InteractiOn Daniele Sacchetti Daniele.Sacchetti@inria.fr.

3

The Networked Home

• Integrating and composing the functionalities of the heterogeneous networked (software & hardware) resources

Page 4: INMIDIO: an INteroperable MIddleware for service Discovery and service InteractiOn Daniele Sacchetti Daniele.Sacchetti@inria.fr.

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 ?

? ???

? ???

??

?

? ?

? ?

Page 5: INMIDIO: an INteroperable MIddleware for service Discovery and service InteractiOn Daniele Sacchetti Daniele.Sacchetti@inria.fr.

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

Page 6: INMIDIO: an INteroperable MIddleware for service Discovery and service InteractiOn Daniele Sacchetti Daniele.Sacchetti@inria.fr.

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

Page 7: INMIDIO: an INteroperable MIddleware for service Discovery and service InteractiOn Daniele Sacchetti Daniele.Sacchetti@inria.fr.

7

SDP Interoperability

MonitorComponent

ParserParserParser

Composer

UPnP unit

ParserParserParser

Composer

SLP

UPnP

SLPUPnP

SLP unit

EventsInstantiator

1

2

3

4 5 6

8 79

Page 8: INMIDIO: an INteroperable MIddleware for service Discovery and service InteractiOn Daniele Sacchetti Daniele.Sacchetti@inria.fr.

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

Page 9: INMIDIO: an INteroperable MIddleware for service Discovery and service InteractiOn Daniele Sacchetti Daniele.Sacchetti@inria.fr.

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

Page 10: INMIDIO: an INteroperable MIddleware for service Discovery and service InteractiOn Daniele Sacchetti Daniele.Sacchetti@inria.fr.

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

Page 11: INMIDIO: an INteroperable MIddleware for service Discovery and service InteractiOn Daniele Sacchetti Daniele.Sacchetti@inria.fr.

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

Page 12: INMIDIO: an INteroperable MIddleware for service Discovery and service InteractiOn Daniele Sacchetti Daniele.Sacchetti@inria.fr.

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

Page 13: INMIDIO: an INteroperable MIddleware for service Discovery and service InteractiOn Daniele Sacchetti Daniele.Sacchetti@inria.fr.

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

Page 14: INMIDIO: an INteroperable MIddleware for service Discovery and service InteractiOn Daniele Sacchetti Daniele.Sacchetti@inria.fr.

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

Page 15: INMIDIO: an INteroperable MIddleware for service Discovery and service InteractiOn Daniele Sacchetti Daniele.Sacchetti@inria.fr.

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.

Page 16: INMIDIO: an INteroperable MIddleware for service Discovery and service InteractiOn Daniele Sacchetti Daniele.Sacchetti@inria.fr.

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

Page 17: INMIDIO: an INteroperable MIddleware for service Discovery and service InteractiOn Daniele Sacchetti Daniele.Sacchetti@inria.fr.

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