Title: Voice-based generic UPnP Control Point
1UPnP AV Architecture - Generic Interface Design
And Java Implementation
UPnP AV Architecture Generic Interface Design And
Java Implementation
Andreas Bobek, Hendrik Bohn, Frank
Golatowski University of Rostock Faculty of
Computer Science and Electrical
Engineering Parallel and Distributed
Computing and Networks PDCN 2005 as part of
the 23rd IASTED International Multi-Conference
on Applied Informatics 15th 17th February,
2005, Innsbruck, Austria
Andreas Bobek
University of Rostock Faculty of Computer Science
and Electrical Engineering
2UPnP AV Architecture - Generic Interface Design
And Java Implementation
Outline
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 1 of 19
3UPnP AV Architecture - Generic Interface Design
And Java Implementation
Outline
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 1 of 19
4UPnP AV Architecture - Generic Interface Design
And Java Implementation
1.1. UPnP Device Architecture
- UPnP Universal Plug and Play
- supports ad-hoc networking of devices and
services - only protocols are defined (UDP, TCP, SOAP, SSDP,
GENA, HTTP) - independent of programming language, operating
system and transmission medium - six phases addressing, discovery, description,
control, eventing, and presentation - defines three communicating components device,
service, control point
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 2 of 19
5UPnP AV Architecture - Generic Interface Design
And Java Implementation
1.1. UPnP Device Architecture
- role server
- offers services
- may contain other devices
- root device
- characterized by properties such as model number,
model name, vendor... - uniquely identifiable by UUID
- interface to the device
- offers actions and URLs for controlling,
eventing, and presentation - manages its state in state variables
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 3 of 19
6UPnP AV Architecture - Generic Interface Design
And Java Implementation
1.1. UPnP Device Architecture
- role client
- searches for devices and/or services
- invokes actions (at services)
- requests state variables
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 4 of 19
7UPnP AV Architecture - Generic Interface Design
And Java Implementation
1.1. UPnP Device Architecture
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 5 of 19
8UPnP AV Architecture - Generic Interface Design
And Java Implementation
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek
9UPnP AV Architecture - Generic Interface Design
And Java Implementation
1.2. UPnP Stack
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 6 of 19
10UPnP AV Architecture - Generic Interface Design
And Java Implementation
1.2. UPnP Stack
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 6 of 19
11UPnP AV Architecture - Generic Interface Design
And Java Implementation
1.2. UPnP Stack
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 6 of 19
12UPnP AV Architecture - Generic Interface Design
And Java Implementation
1.2. UPnP Stack
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 6 of 19
13UPnP AV Architecture - Generic Interface Design
And Java Implementation
1.2. UPnP Stack
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 6 of 19
14UPnP AV Architecture - Generic Interface Design
And Java Implementation
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek
15UPnP AV Architecture - Generic Interface Design
And Java Implementation
1.3. UPnP AV Architecture
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 7 of 19
16UPnP AV Architecture - Generic Interface Design
And Java Implementation
1.3. UPnP AV Architecture
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 8 of 19
17UPnP AV Architecture - Generic Interface Design
And Java Implementation
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek
18UPnP AV Architecture - Generic Interface Design
And Java Implementation
1.4. UPnP AV Data Flow
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 9 of 19
19UPnP AV Architecture - Generic Interface Design
And Java Implementation
1.4. UPnP AV Data Flow
Control Point
Media Renderer
Media Server
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 9 of 19
20UPnP AV Architecture - Generic Interface Design
And Java Implementation
1.4. UPnP AV Data Flow
Control Point
1. Search Request
Media Renderer
Media Server
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 9 of 19
21UPnP AV Architecture - Generic Interface Design
And Java Implementation
1.4. UPnP AV Data Flow
Control Point
2. Search Response
Media Renderer
Media Server
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 9 of 19
22UPnP AV Architecture - Generic Interface Design
And Java Implementation
1.4. UPnP AV Data Flow
Control Point
Media Renderer
Media Server
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 9 of 19
23UPnP AV Architecture - Generic Interface Design
And Java Implementation
1.4. UPnP AV Data Flow
Control Point
3. Browse()
Media Renderer
Media Server
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 9 of 19
24UPnP AV Architecture - Generic Interface Design
And Java Implementation
1.4. UPnP AV Data Flow
- 4. Result
- DIDL Lite (XML)
- preconditioned protocols
- file formats...
Control Point
Media Renderer
Media Server
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 9 of 19
25UPnP AV Architecture - Generic Interface Design
And Java Implementation
1.4. UPnP AV Data Flow
Control Point
5. GetProtocolInfo()
Media Renderer
Media Server
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 9 of 19
26UPnP AV Architecture - Generic Interface Design
And Java Implementation
1.4. UPnP AV Data Flow
Control Point
6. supported protocols, accepted formats
Media Renderer
Media Server
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 9 of 19
27UPnP AV Architecture - Generic Interface Design
And Java Implementation
1.4. UPnP AV Data Flow
7. matching between preconditioned and supported
protocols
Control Point
Media Renderer
Media Server
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 9 of 19
28UPnP AV Architecture - Generic Interface Design
And Java Implementation
1.4. UPnP AV Data Flow
Control Point
8. PrepareForConnection()
Media Renderer
Media Server
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 9 of 19
29UPnP AV Architecture - Generic Interface Design
And Java Implementation
1.4. UPnP AV Data Flow
Control Point
9. SetURI() Play, Pause, Stop...
Media Renderer
Media Server
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 9 of 19
30UPnP AV Architecture - Generic Interface Design
And Java Implementation
1.4. UPnP AV Data Flow
Control Point
Media Renderer
10. Data transport (out of band)
Media Server
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 9 of 19
31UPnP AV Architecture - Generic Interface Design
And Java Implementation
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek
32UPnP AV Architecture - Generic Interface Design
And Java Implementation
2.1. AV Interface Examples
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 10 of 19
33UPnP AV Architecture - Generic Interface Design
And Java Implementation
2.1. AV Interface Examples
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 11 of 19
34UPnP AV Architecture - Generic Interface Design
And Java Implementation
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek
35UPnP AV Architecture - Generic Interface Design
And Java Implementation
2.2. AV Interface Stack
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 12 of 19
36UPnP AV Architecture - Generic Interface Design
And Java Implementation
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek
37UPnP AV Architecture - Generic Interface Design
And Java Implementation
2.3. Application Code Examples
Control Point
UPnPAVFactory factory new UPnPAVFactoryImpl() M
ediaControlPoint cp factory.getMediaControlPoint
( new MediaControlPointListenerImpl() ) cp.st
art() cp.searchForMediaRenderers() cp.searchForM
ediaServers()
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 13 of 19
38UPnP AV Architecture - Generic Interface Design
And Java Implementation
2.3. Application Code Examples
Control Point
public class Listener implements
MediaControlPointListener public void
takeMediaServer( ProxyMediaServer p_server,
MediaDevice p_parent_device ) //
access proxy services ProxyAVTransport avt
p_server.getProxyAVTransport()
ProxyConnectionManager cm p_server.getProxyConne
ctionManager() ProxyContentDirectory cd
p_server.getProxyContentDirectory() //
browse content directory BrowseResult
browse_result cd.browse( "0",
ContentDirectory.BROWSE_FLAG_BROWSE_METADATA,
"", 0, 0, "" ) DidlLiteModel model
new DidlLiteModel() String result
browse_result.getResult() Element el_didl
XMLUtil.stringToElement(result)
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 14 of 19
39UPnP AV Architecture - Generic Interface Design
And Java Implementation
2.3. Application Code Examples
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 15 of 19
40UPnP AV Architecture - Generic Interface Design
And Java Implementation
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek
41UPnP AV Architecture - Generic Interface Design
And Java Implementation
2.4. Advantages
- Why to use an interface layer
- separate development of stack and application
- replacement of UPnP stack without modifying
application code
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 16 of 19
42UPnP AV Architecture - Generic Interface Design
And Java Implementation
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek
43UPnP AV Architecture - Generic Interface Design
And Java Implementation
3.1. AV within SIRENA project
- SIRENA Service Infrastructure for Real time
Embedded Networked Applications - part of the ITEA program
- modify current AV Architecture
- extension by integrating QoS aspects
- adapt architecture to fit small embedded devices
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 17 of 19
44UPnP AV Architecture - Generic Interface Design
And Java Implementation
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek
45UPnP AV Architecture - Generic Interface Design
And Java Implementation
3.2. Generalisation
- analyzing service-oriented architecture (SOA)
concepts (UPnP, Web Services, JINI, HAVi...) - designing device protocols independently of
specific SOAs
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 18 of 19
46UPnP AV Architecture - Generic Interface Design
And Java Implementation
3.2. Generalisation
University of Rostock Faculty of Computer Science
and Electrical Engineering
Andreas Bobek Slide 19 of 19