Universal Plug and Play (UPnP) Presented by: Kamal Kamal Kamal Kamal Mohammad Atieh Mohammad Atieh.

Slides:



Advertisements
Similar presentations
UPnP Device Architecture. Networking is easy, except… Ad hoc networks don't have resources just for the sake of the network E.g., DHCP, DNS, directory,
Advertisements

Universal Plug and Play protocol (UPnP)
UPnP Technology 2009/03/31 Hsin-Han Yang, Cheng-Yi Chien, Po-Cheng Huang.
TU/e Service Discovery Mechanisms: two case studies / IC2002 Service Discovery Mechanisms: Two case studies Control point Device UPnP Terminal Domain Host.
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
Telecooperation Technische Universität Darmstadt Copyrighted material; for TUD student use only Telecooperation P4: Internet Praktikum Q&A Session Telecooperation.
Lecture 5 Middleware: Peer-to-Peer Computing
GENA Framework Generalized Event Notification Architecture over HTTP Josh Cohen Josh Cohen
Doc.: IEEE /0374r0 Submission March 2014 Ping FANG, HuaweiSlide 1 Two options for UPnP Printer Discovery Date: Authors:
Extensible Networking Platform IWAN 2005 Extensible Network Configuration and Communication Framework Todd Sproull and John Lockwood
XML Technologies and Applications Rajshekhar Sunderraman Department of Computer Science Georgia State University Atlanta, GA 30302
PROGRESS project EES5413: Internet Control and Monitoring of Embedded Systems System Architecture and Networking Affiliation 1) Eindhoven University of.
Slide 1 EE557: Server-Side Development Lecturer: David Molloy Room: XG19 Mondays 10am-1pm Notes:
User Interface. The Protocol Interface The service we have tested is a clock: the control point sends a request to the device (demo device in this case)
PROGRESS project: Internet-enabled monitoring and control of embedded systems (EES.5413)  Introduction Networked devices make their capabilities known.
(NHA) The Laboratory of Computer Communication and Networking Network Host Analyzer.
TENA Test and Training Enabling Architecture. TENA TENA is used in range environments, often in the L portion of LVC Slightly different emphasis; small.
VSP Video Station Protocol Presented by : Mittelman Dana Ben-Hamo Revital Ariel Tal Instructor : Sela Guy Presented by : Mittelman Dana Ben-Hamo Revital.
The Computer Communication Lab (236340) Spring 2005 Universal Plug and Play on Mobile Phone With Qualcomm - Device -
Certification Test Tool Update Toby Nixon Program Manager Microsoft Corporation.
TP2653 Adv Web Programming SOAP and WSDL. SOAP Simple Object Access Protocol – Lightweight XML-based messaging protocol – A protocol for accessing a Web.
UPnP AV Media Server support for VLC player Student’s name: Shaleen Shah Date: November 5, 2007 Advisor’s name: Dr. Chung-E-Wang Prof. Dick Smith Department.
Hacking the Bluetooth Pairing Authentication Process Graduate Operating System Mini Project Siyuan Jiang and Haipeng Cai.
Universal Plug and Play Dirk Grunwald University of Colorado.
Device Servers Prasun Dewan Department of Computer Science University of North Carolina
SOAP Tutorial Ching-Long Yeh 葉慶隆 Department of Computer Science and Engineering Tatung University
Web application architecture
Enabling Workflow in UPnP Networks Andreas BobekUniversity of Rostock Faculty of Computer Science and Electrical Engineering Andreas Bobek, Hendrik Bohn,
Cambridge, March 23 rd 2004 MobileMAN Project MobileMAN Project Web Service in Ad Hoc Network Veronica Vanni NETikos S.p.A.
Enabling Embedded Systems to access Internet Resources.
UPnP & DLNA Speaker: Yi-Lei Chang Advisor: Dr. Kai-Wei Ke 2012/03/27 1.
James Holladay, Mario Sweeney, Vu Tran. Web Services Presentation Web Services Theory James Holladay Tools – Visual Studio Vu Tran Tools – Net Beans Mario.
Universal Plug and Play (UPnP) and XML Shridhar Bhat
Implementing Universal Plug And Play In Smart Objects And Intelligent Appliances Bengt Christensson CTO Axis Communications.
Doc.: IEEE /0961r0 Submission July 2012 Alex Ashley, NDS LtdSlide 1 Layer 2 Service Discovery Protocols Date: Authors:
INMIDIO: an INteroperable MIddleware for service Discovery and service InteractiOn Daniele Sacchetti
© MATERNA GmbH 2012www.materna.com1 MATERNA WS4D-JMEDS Addons Jannis Müthing MATERNA GmbH.
MediaServer:1 Device Template Version 1.01 Date: June 25, 2002 For UPnP™ Version 1.0 Status: Standardized DCP File from: MediaServer1.0.pdf Author: John.
MobileMAN Internal meetingHelsinki, June 8 th 2004 NETikos activity in MobileMAN project Veronica Vanni NETikos S.p.A.
UPnP Introduction 教授 : 逄愛君 組員 : 資訊三 張弘霖 資訊四 陳錦翰 資訊四 蔡旻諧.
Overview  Introduction  Sensor Network Management  Type of Sensor Network Management Model  UPnP-Based Sensor Network Management  Future Works/Plans.
Voice-based generic UPnP Control Point Andreas BobekUniversity of Rostock Faculty of Computer Science and Electrical Engineering Andreas Bobek, Hendrik.
1 Web Services Web and Database Management System.
Integrating and Troubleshooting Citrix Access Gateway.
Siemens Universal Plug and Play SDK Markus A. Wischy Corporate Technology Siemens AG Fast and easy development of UPnP™ devices.
Service Discovery Protocols Mobile Computing - CNT Dr. Sumi Helal Professor Computer & Information Science & Engineering Department University.
UPnP AV Architecture - Generic Interface Design And Java Implementation Andreas BobekUniversity of Rostock Faculty of Computer Science and Electrical Engineering.
Client/Server Socket Programming Project
7DS - Node Cooperation and Information Exchange in Mostly Disconnected Networks Suman Srinivasan, Arezu Moghadam, Se Gi Hong, Henning Schulzrinne IRT Lab,
2: Application Layer 1 Chapter 2: Application layer r 2.1 Principles of network applications  app architectures  app requirements r 2.2 Web and HTTP.
FCM Workflow using GCM.
Web Services. 2 Internet Collection of physically interconnected computers. Messages decomposed into packets. Packets transmitted from source to destination.
CS 6401 The World Wide Web Outline Background Structure Protocols.
RESTful Web Services What is RESTful?
GENA (General Event Notification Architecture) RTLAB 이 남 지 2003/01/08.
Data Communications and Computer Networks Chapter 2 CS 3830 Lecture 7 Omar Meqdadi Department of Computer Science and Software Engineering University of.
Lecture VI: SOAP-based Web Service CS 4593 Cloud-Oriented Big Data and Software Engineering.
Doc.: IEEE /0067r0 Submission Jan 2014 Ping FANG, HuaweiSlide 1 Service Discovery for UPnP Printer Date: Authors:
Server-side http General form of http response/request GET request method POST request method Responses Servlet support.
Part A. Remote Viewing IP Surveillance Camera Application Guide.
SOAP, Web Service, WSDL Week 14 Web site:
Software Architecture Patterns (3) Service Oriented & Web Oriented Architecture source: microsoft.
REST API Design. Application API API = Application Programming Interface APIs expose functionality of an application or service that exists independently.
Java Web Services Orca Knowledge Center – Web Service key concepts.
UPnP Device Architecture
Network Services Interface
Network Connected Devices
Implementation and validation of UPnP in a home networking environment
Universal Plug and Play protocol (UPnP)
WEB SERVICES From Chapter 19, Distributed Systems
Presentation transcript:

Universal Plug and Play (UPnP) Presented by: Kamal Kamal Kamal Kamal Mohammad Atieh Mohammad Atieh

Contents Introduction Introduction UPnP Protocol UPnP Protocol Development Levels Development Levels Control Point: Data structures and Modules Control Point: Data structures and Modules Control Point User Interface Control Point User Interface

Introduction to UPnP The UPnP is a technology that provides a peer-to-peer connectivity of intelligent appliance, wireless devices, and PCs of all factors, and creates a distributed network such that each device that is connected to the network offers its services to all the other connected devices. The UPnP is a technology that provides a peer-to-peer connectivity of intelligent appliance, wireless devices, and PCs of all factors, and creates a distributed network such that each device that is connected to the network offers its services to all the other connected devices. In this project a UPnP on mobile phone is implemented, such that the devices of the distributed network are mobile phones of Qualcomm (Brew), So the project is part of the development of the Brew mobile phone. In this project a UPnP on mobile phone is implemented, such that the devices of the distributed network are mobile phones of Qualcomm (Brew), So the project is part of the development of the Brew mobile phone.

Introduction (Cont.) The nodes of the created network are classified into two parts: Devices that offer the services, and a Control Point that uses these services. The nodes of the created network are classified into two parts: Devices that offer the services, and a Control Point that uses these services. Two teams are working on this project: our team has to implement the Control Point, the other should implement the Device. Two teams are working on this project: our team has to implement the Control Point, the other should implement the Device. The implementation will be tested by a Brew simulator. The implementation will be tested by a Brew simulator.

UPnP Steps Discovery Discovery advertisements by the devices advertisements by the devices search requests from the control points search requests from the control points Description Description Requested information about the device is sent to control point Requested information about the device is sent to control point Control Control requests for actions from the control points to the devices requests for actions from the control points to the devices Eventing Eventing subscription for events by the control points subscription for events by the control points notification of events by the device notification of events by the device Presentation (control point) Presentation (control point) GUI to the user by the control point GUI to the user by the control point

UPnP Protocol Stack The UPnP discovery protocol is based on the Simple Service Discovery Protocol (SSDP). The UPnP discovery protocol is based on the Simple Service Discovery Protocol (SSDP). Control messages are expressed in XML using the Simple Object Access Protocol (SOAP). Control messages are expressed in XML using the Simple Object Access Protocol (SOAP). Event messages are also expressed in XML and formatted using the General Event Notification Architecture (GENA). Event messages are also expressed in XML and formatted using the General Event Notification Architecture (GENA). SSDP works over UDP, SOAP and GENA works over TCP. SSDP works over UDP, SOAP and GENA works over TCP.

Control Point side of the UPnP Subsystem Network Discovery Search Discovery Response Discovery Description Request Description Response Control Request Control Response Eventing Event subscription Events notification Presentation Control point user

Discovery The control point sends msearch: The control point sends msearch: M-SEARCH * HTTP/1.1 HOST: :1900 MAN: "ssdp:discover" MX: seconds to delay response ST: ssdp:all M-SEARCH * HTTP/1.1 HOST: :1900 MAN: "ssdp:discover" MX: seconds to delay response ST: ssdp:all

Discovery Cont. Discovery Cont. The device responds with: The device responds with: HTTP/ OK HTTP/ OK CACHE-CONTROL: max-age = seconds until advertisement expires CACHE-CONTROL: max-age = seconds until advertisement expires DATE: when response was generated LOCATION: URL for UPnP description for device SERVER: OS/version UPnP/1.0 product/version ST: device type : device version USN: device UUID :: device type : device version DATE: when response was generated LOCATION: URL for UPnP description for device SERVER: OS/version UPnP/1.0 product/version ST: device type : device version USN: device UUID :: device type : device version

Description Device Description Device Description defines logical devices defines logical devices contains URLs for service description, control, eventing. contains URLs for service description, control, eventing. Service Description Service Description tells how to form a request for a service tells how to form a request for a service events that can be subscribed to by control points events that can be subscribed to by control points fetched using HTTP GET fetched using HTTP GET

XML in UPnP: Device Description 1 0 urn:schemas-upnp-org:service:serviceType:v urn:upnp-org:serviceId:serviceID URL to service description URL for control URL for eventing Declarations for other services defined by a UPnP Forum (if any) go here Declarations for other services added by UPnP vendor (if any) go here Description of embedded devices defined by a UPnP Forum (if any) go here Description of embedded devices added by UPnP vendor (if any) go here URL for presentation

XML in UPnP: Service Description actionName formalParameterName in or out stateVariableName variableName variable data type default value enumerated value

Control Uses Simple Object Access Protocol (SOAP) Uses Simple Object Access Protocol (SOAP) Control points Control points fetch the URL for control fetch the URL for control construct requests using SOAP construct requests using SOAP send the requests over HTTP send the requests over HTTP wait for the SOAP responses from devices wait for the SOAP responses from devices Devices Devices parse the SOAP requests parse the SOAP requests carry out the required action and return responses in SOAP messages carry out the required action and return responses in SOAP messages

XML in UPnP: SOAP Uses XML and HTTP for control calls Uses XML and HTTP for control calls SOAP request POST path of control URL HTTP/1.1 HOST: host of control URL:port of control URL CONTENT-LENGTH: bytes in body CONTENT-TYPE: text/xml; charset="utf-8" SOAPACTION: "urn:schemas-upnp-org:service:serviceType:v#actionName” in arg value other in args and their values go here, if any SOAP request POST path of control URL HTTP/1.1 HOST: host of control URL:port of control URL CONTENT-LENGTH: bytes in body CONTENT-TYPE: text/xml; charset="utf-8" SOAPACTION: "urn:schemas-upnp-org:service:serviceType:v#actionName” in arg value other in args and their values go here, if any

Eventing Device publishes a list of events for which control points can subscribe and get notifications Device publishes a list of events for which control points can subscribe and get notifications Control points subscribe with the devices for the events published Control points subscribe with the devices for the events published Event notifications by the devices over TCP to control points Event notifications by the devices over TCP to control points

XML in UPnP: Event Notification NOTIFY delivery path HTTP/1.1 HOST: delivery host:delivery port CONTENT-TYPE: text/xml CONTENT-LENGTH: Bytes in body NT: upnp:event NTS: upnp:propchange SID: uuid:subscription-UUID SEQ: event key new value Other variable names and values (if any) go here.

Development Levels

Project Steps Reading and understanding the UPnP. Reading and understanding the UPnP. Installation of the BREW SDK v Installation of the BREW SDK v Reading relevant information from the BREW API reference,and making the necessary steps in order to develop on the BREW SDK. Reading relevant information from the BREW API reference,and making the necessary steps in order to develop on the BREW SDK. Writing a first simple program on the simulator, and running it. Writing a first simple program on the simulator, and running it. Building the infrastructure of the connection between two devices, by sockets, and understanding how connection works. Building the infrastructure of the connection between two devices, by sockets, and understanding how connection works.

Project Steps (Cont.) Implementation of each protocol step: the implementation is based on sending special messages to the device according to the protocol of each step via a socket which listens on a selected port, then receiving messages from the device,via the same socket, parsing the message, getting needed information from it, and updating the control point data structure according to this information. Implementation of each protocol step: the implementation is based on sending special messages to the device according to the protocol of each step via a socket which listens on a selected port, then receiving messages from the device,via the same socket, parsing the message, getting needed information from it, and updating the control point data structure according to this information. The last step is building a GUI, which offers a friendly interface to make the protocol usage easy and funny!! The last step is building a GUI, which offers a friendly interface to make the protocol usage easy and funny!!

Special Challenges and Solutions Multicasting: the protocol is based on sending http multicast messages at the discovery step, however we don’t have the ability to do such a thing, since the BREW SDK doesn’t support multicasting. Multicasting: the protocol is based on sending http multicast messages at the discovery step, however we don’t have the ability to do such a thing, since the BREW SDK doesn’t support multicasting. Synchronization problems such like listening to many sockets at the same time, and updating the data structure when getting information from the device: we bypassed these problems by using callback functions that act when a special events occur. Synchronization problems such like listening to many sockets at the same time, and updating the data structure when getting information from the device: we bypassed these problems by using callback functions that act when a special events occur. Parsing the XML format messages: we implemented a special XML parser that satisfies our needs. Parsing the XML format messages: we implemented a special XML parser that satisfies our needs.

The Control Point: Data Structures and Modules

The Control Point Data Structure The control point struct contains: The control point struct contains: Identifier Identifier Connection sockets (one socket for each protocol step) Connection sockets (one socket for each protocol step) List of connected devices List of connected devices ……. …….

Cont. The device struct contains: The device struct contains: Information about the device : device type,device version, identifier,name and manufacturer. Information about the device : device type,device version, identifier,name and manufacturer. The device description URL. The device description URL. List of UPnP Services. List of UPnP Services.

Cont. The service struct contains: The service struct contains: Information about the service : service version, service ID and service type. Information about the service : service version, service ID and service type. Service Description URL. Service Description URL. Control URL. Control URL. Subscription URL. Subscription URL. List of actions that can be invoked by this service. List of actions that can be invoked by this service. List of state variables. List of state variables. ….. …..

Cont. Each control action has a name and a list of arguments. Each control action has a name and a list of arguments. A state variable struct is consisted of: A state variable struct is consisted of: Name, data type, default value and value. Name, data type, default value and value.

Data Structure Schema Data Structure Schema Control Point ID Sockets Device List UDP Socket Description Sockets Control Socket Subscription Socket Eventing Socket Device 1Device 2 ………. Service 1Service 2 Control Action 1 State variable 1 ……….

Main Modules Building message module: creating messages according to the protocol syntax rules in every step of the protocol. Building message module: creating messages according to the protocol syntax rules in every step of the protocol. Discovery Module: this module actually activates the control point, and creates UDP socket,sends, receives and reads messages in the Discovery step, and according to these messages updates the data structure. Discovery Module: this module actually activates the control point, and creates UDP socket,sends, receives and reads messages in the Discovery step, and according to these messages updates the data structure. Device description and Service Description Modules: creating connection, sending, receiving and reading messages in the description step, and according to these messages updating the data structure. Device description and Service Description Modules: creating connection, sending, receiving and reading messages in the description step, and according to these messages updating the data structure.

Cont. Control Module: creating connection, sending, receiving and reading messages in the control step of the protocol. Control Module: creating connection, sending, receiving and reading messages in the control step of the protocol. Eventing Module: creating connection, reading, sending and receiving eventing and subscription messages in the eventing step, and updating the data structure if needed. Eventing Module: creating connection, reading, sending and receiving eventing and subscription messages in the eventing step, and updating the data structure if needed. List Module: removing, adding and getting items (e.g devices, services) from the lists in the data structure. List Module: removing, adding and getting items (e.g devices, services) from the lists in the data structure.

Cont. Parsing Module: Parsing different formats of messages according to the protocol step. (e.g. control,eventing messages). Parsing Module: Parsing different formats of messages according to the protocol step. (e.g. control,eventing messages). Menu Module: This module creates graphical interface, that makes the usage of the protocol services easy and funny!! Menu Module: This module creates graphical interface, that makes the usage of the protocol services easy and funny!!

User Interface

The Protocol Interface The service we have tested is a clock: the control point sends a request to the device (demo device in this case) which reply with the time. The service we have tested is a clock: the control point sends a request to the device (demo device in this case) which reply with the time. The state variable is the location of the device. The state variable is the location of the device. At first the user chooses the protocol icon on the mobile, then he/she clicks start: At first the user chooses the protocol icon on the mobile, then he/she clicks start:

Cont. The control point starts searching for a device (discovery step). The control point starts searching for a device (discovery step). Afterwards the control point discovers a device and proposes getting the device description. Afterwards the control point discovers a device and proposes getting the device description.

Cont. The user is asked if he is interested in getting the service description (Description step): The user is asked if he is interested in getting the service description (Description step):

Cont. Control Step: The device is ready to invoke an action : Control Step: The device is ready to invoke an action :

References Universal Plug and Play forum, http;// Universal Plug and Play forum, http;// UPnP architecture, s.pdf UPnP architecture, s.pdf Intel’s UPnP SDK for Linux, Intel’s UPnP SDK for Linux, Simple object access protocol, Simple object access protocol,