10 likes | 103 Views
Introduction Networked devices make their capabilities known through advertisement of services: service : provided functionality in terms of actions, (autonomous) responses and state changes of an object as well as the properties (both functional and non-functional) of sequences of these.
E N D
IntroductionNetworked devices make their capabilities known through advertisement of services: service: provided functionality in terms of actions, (autonomous) responses and state changes of an object as well as the properties (both functional and non-functional) of sequences of these. Examples of services A coffee machine: overall: make coffee actions & state: switch on/off; adjust taste; responses: inform on current status A protocol layer overall: layer function, e.g. reliable transmission actions & state: provided operations and internal state responses: call-backs Access to service: (network) protocol or API Left: focus on protocols, protocol handling becomes part of application. Right: focus on transparency, hiding distribution. Universal Plug ‘n Play Architecture for peer-to-peer connectivity of devices in the home environment Protocol: defined on IP (in fact: protocol container) API: free to develop Six aspects: Addressing: device’s IP address obtained through DHCP or Auto-IP Discoveryand advertisement: the Simple Service Discovery Protocol (UDP multicast) Service description: in XML Control: the Simple Object Access Protocol Eventing: the General Event Notification Architecture Base Presentation: Web browser Experiments (JAVA implementation of UPnP-2) TVControl to control a television Video On Demand UPnP-enabled coffee machine – upgrade legacy device UPnP scales badly because of HTTP carrier API straightforward and Java codesize reasonably small Naming mechanism not useful in dynamic environments CORBA Object oriented middleware architecture for development of distributed programs Six aspects: Addressing: based on TCP/IP, but wireless CORBA allows protocol specific addressing, like BlueTooth or InfraRed addressing Discovery and advertisement: services are registered at a central repository, like the CORBA naming service. Service description: location in the naming repository, object types and interface definitions Control: remote method invocation Eventing: through the event notification service or through callback actions Presentation: is client and service specific With the Remote User Interface protocol on top Control: based on subscribing to the service and the interface presented to the user. The user interprets the available actions Eventing: updates are send to the subscribed client Presentation: abstract user interface descriptions in XML Experiments (on PDA) RUI client and server applications in Java Several RUI services to control applications Platforms: Linux, Windows, Symbian Transport: InfraRed, Serial, wLAN, Ethernet Conclusion RUI useful trade-off client vs. server computation. Central naming registry reduces bandwidth usage, but introduces a point of failure. Code size overhead of CORBA is significantly more in comparison to UPnP. CORBA reuses connections for better performance. References UPnP: http://www.upnp.org/ CORBA: http://www.omg.org/corba Device Proxy Control Coffee machine Coffee Controller UPnP Actuators Coffee Server Sensors Control point CORBA API CORBA API GIOP GIOP IIOP IIOP GTP GTP application service application application API API communication infrastructure communication infrastructure TCP/IP TCP/IP GTP adaptation GTP adaptation service service Functionality through specific protocols Transport layer Transport layer Functionality provided as an API Control point or Device application Layer 1 API (Control point, Device) Layer 2 XML Parser SSDP SOAP GENA Layer 3 HTTP (extension) Web server Layer 4 UDP TCP server client actions & results Layer 5 RUI Protocol RUI Protocol IP CORBA API CORBA API 1 1..p 1 1 1 1 1 1 1..n 1..p 1..m 1..q 1..m 1..n Controlling networked devices:two middleware architecturesdr. ir. P.H.F.M. Verhoeven, T. M. Tran MTD, ir. P.J.F. Peters, dr. J.J. Lukkien normal CORBA wireless CORBA Action Device Application Device Service State Variable Allowed ValueRange call-back CDevice CService Control point Application Discovery GUIControl Class diagram for API