word file

advertisement
General Description:
The goal of this project is to build a system capable of dynamically locating audio/video
resources (e.g., network-attached speakers, monitors, and keyboards) available in the
environment and allowing mobile users to access them on-demand.
Imagine a scenario where a user with a PDA or other mobile wishes to access more
powerful audio or video resources than are available on the PDA to listen to music, view
a video, or initiate a teleconference. Rather than play the music through the tinny
speakers on their PDA or view the video on the PDAs tiny screen, they request access to
an unused set of network-attached speakers or a network-attached monitor "nearby". The
PDA, on the user's behalf, locates an available output device in a nearby room, guides the
user to this room, automatically retrieves the mp3 or mpg file from a server, and streams
it directly to the network- -attached speakers/monitor. A more complicated scenario
would be to present a seamless audio/video experience as the user walks between rooms,
with the PDA automatically detecting the movement and migrating the output to new sets
of speakers/monitors as the user moves.
The major tasks of this project can be divided as follows:




Service Discovery, i.e. the ability to find services in the environment
Ability to choose a service from the available ones based on user intent
Ability to stream audio/video files to the selected service
Ability to dynamically relocate the playing of audio/video files from a service to
another based on user selection (i.e modeling user movement)
Work will be done on a (provided) Sharp Zaurus handheld device (running Linux) as the
client.
Architecture: (Designed for accomplishing all bare essentials features)
Web Interface:
Functionalities:
1.
2.
3.
Provide a GUI to end-user (PDA user, laptop user) through a platform
independent Web browser
Be able to communicate with lookup server and report user-location to
lookup server
Be able to get mp3 file list from lookup server
4.
5.
Be able to choose mp3 file from the list and report it to lookup server
Be able to send play, stop, pause, restart and other requests to the streaming
program
Components:
1.
2.
3.
Two nice looking web pages, one for PDA user, one for laptop (desktop)
user
Communication package to lookup server
Communication package to streaming program
Implementation approaches:
1. Web pages: Use Java Servlets to create web pages (Kana, please be more
specific at here, I do not really know these stuff)
2. Communication packages: Socket based inter-process communication
Interface to other modules:
1. To lookup server
Standard socket based Linux inter-process communication interface
2. To Streaming program
Same as above
3. To speaker client
No interface to speaker client, there is no direct connection between the
two
Programming Languages:
3. Java (Kana, please be more specific at here again)
Lookup Server:
Functionalities:
1. Be able to provide mp3 file-list to Web interface
2. Be able to send mp3 files (names) to streaming program
3. Be able to maintain speaker clients (including response to change location
request from Web interface)
Components:
1.
2.
3.
4.
5.
A database keeps all speaker clients status
A database keeps all mp3 files
A communication package to Web interface
A communication package to Streaming program
A central control package to control speaker clients (decide if playing certain
music on certain speaker is possible & find speaker client by providing PDA
location)
Implementation approaches:
1. Build a speaker database by using MySQL.
2. Build an mp3 file database by using MySQL.
3. Communication package to Web interface will be a standard socket based
inter-process communication interface
4. Communication package to Streaming program will be similar to
communication package to Web interface
5. The control package will be a group of functions, and it will be a part of the
lookup server.
Interface to other modules:
1. To Web interface
Linux standard socket based inter-process communication interface
2. To Streaming program
Linux standard socket based inter-process communication interface
3. To Speaker clients
There is no direct connection between the two
Programming Languages:
C/C++ for multimedia streaming
Multimedia Streamer:
Functionalities:
1. Be able to send audio stream to remote speaker clients upon request from
Lookup server
2. Be able to send “adjusting volume”, “Play”, “Stop”, “Pause”, “Restart” and
other requests to remote speaker client
Components:
1. Mp3 Player (w/o GUI interface)
i.
Function (method) for Play
ii.
Function (method) for Stop
iii.
Function (method) for Pause
iv.
Function (method) for Restart (at a given time)
2. A streaming function. Take speaker identifier and audio stream as input
parameter.
3. An adjust volume function. Take speaker identifier and volume as input
parameter.
4. A listening program that handles incoming requests and controls streaming
based off requests from speakers.
Implementation approaches:
Find an open source Mp3 player program on the Internet (maybe xine player at
http://xinehq.de/), do some minor modification.
For the player and streamer part, we are going to take the SOAP approach.
Web Services Definition Language (WSDL) and Simple Object Access Protocol
(SOAP). WSDL is an XML grammar for specifying properties of a service, such
as what it does, where it is located, and how to invoke methods on a particular
service. WSDL is the “contract” or binding between the service and its clients.
SOAP is an XML-based lightweight protocol for performing RPC and data
exchange in a decentralized, distributed environment. SOAP can be used with
many transport protocols, the most common is HTTP.
The Streamer will give the appropriate WSDL file bases off location. A nice
feature would be to set up a UDDI server to do this.
Interface to other modules:
1. To Web interface
Linux standard inter-process communication interface
2. To lookup server
Linux standard socket based inter-process communication interface
3. To Speaker client
Interface to speakers will use SOAP to perform RPC.
The Streamer and each speaker will run a small stand-alone gSOAP
HTTP/HTTPS web server that serves regular dynamic HTML content and
SOAP/XML web services.
These gSOAP applications are intended to run as CGI applications. The
Stream Server will act as client to Speakers to control volume, start
streaming, stop streaming, etc.
Programming Languages:
The implementation of distributed commutation layer will use the gSoap library.
The gSoap library is a C/C++ framework for Web Services and Clients. These
applications are intended to run as a CGI application at a specified location. The
Streamer and each speaker will run a small stand-alone gSoap HTTP/HTTPS
Web server that server regular dynamic HTML conent and SOAP/XML web
services. The client will use this library to use SOAP in order to send RPCs to
the application.
Speaker Client:
Functionalities:
1. Inform the lookup server with its presence through streamer
2. Receive audio streaming from streamer
3. Be able to play, stop, adjust volume according to request from streaming
module
Components:
1. A reporter function
2. A receiving function
3. A mp3 player
Implementation approaches:
All communications will be SOAP based functions. Local player starts to play
mp3 files upon request from Streamer
Interface to other modules:
1. To Web interface
No direct communication between these two
2. To Lookup server
No direct communication between these two
3. To streaming program
Each speaker will run a small stand-alone gSoap HTTP/HTTPS Web server
that server regular dynamic HTML conent and SOAP/XML web services.
Programming Languages:
C/SOAP
Features:
Bare Essentials:
1. User Interface to play, stop, pause, restart, adjust volume, and to change
physical position.
2. Lookup Service.
3. Speaker Client.
Desired Features:
1. Streamer, which “automatically” changes playing location on demand.
2. Support for streaming video files.
3. Have support to really change playing locations based off user position.
Bells and Whistles:
1. Support for remote input and output from PDA.
Architecture Figure:
Client
Web
Browser
Web
Browser
Client
Lookup
Server
Laptop Web Interface
Laptop
Client
Streamer
PDA Web Interface
PDA
Client
Speaker/File
DB
Server
Client
Client
Client
Client
Communication figure:
PDA
Streaming Program
Lookup server
Speaker
Step 1: PDA connect to Lookup server through a well-known (built-in) URL
Step 2: PDA send query to Lookup server asking for service lists (Mp3 file list).
Download list from server and download the speaker URL
Step 3: PDA send commend (invoke a remote function call) to streaming program,
including speaker URL and mp3 filename
Step 4: Streaming program send stream to speaker and speaker starts to play
Download