application for internet radio directory
DESCRIPTION
Application for Internet Radio Directory. 19/06/2012 Industrial Project (234313 ) Kickoff Meeting. Supervisors : Oren Somekh , Nadav Golbandi Students : Moran Dringer , Tal Netanyahu. Goals:. Create an effective and convenient application for listening to internet radio stations. - PowerPoint PPT PresentationTRANSCRIPT
Application forInternet Radio Directory
19/06/2012Industrial Project (234313)Kickoff Meeting
Supervisors : Oren Somekh, Nadav GolbandiStudents : Moran Dringer, Tal Netanyahu
Goals:• Create an effective and convenient
application for listening to internet radio stations.
• Provide easy navigation through stations, and various search options.
• Process real-time information sent from all stations in parallel.
• Provide adjustments for a mobile platform.• Create a web application with a nice clean
look.
3
Methodology &Achievements
DataBase Creation:Station Retriever: Uses a list of xml links (used online) to
read nodes from SHOUTCast’s depository Builds a file of stations and their urls as an
input source for the main program (around 10,000 stations)
Provides multiple urls for each station (in case of bad connectivity)
Creates an easily parsed file for creating the station database
5
DataBase Creation:DataBase Initialization: Uses the stations file created by the
retriever to create a local database (a specialized Queue) of stations.
Creates an empty MySQL DB online, with an empty entry for each station in the queue.
Runs sample threads that work in parallel to update the entries in the online DB.
Each thread tries to connect to a url, and retrieve the station header and metadata.
6
DataBase Creation:DataBase maintenance: The sample threads keep working
infinitely, providing different updates: Updates the station entry online in case
the station’s header has changed Every fixed number of samples, updates
a station score (explained later) Updates metadata recorded from the
station (explained later) This assures that the DB is always up-to-
date.
7
DataBase Creation:Local “Playing Now” DataBase: The metadata recorded from the stations
(usually info on the song/program streaming at the moment) is inserted into a special DataBase, saved locally on the server
There is a fixed number of metadata entries collected and saved for each station
The client servlet has access to the DB using a socket to the server’s registry, and can send information to the client
8
RDPlayingNowDb
MainDB – Map:Keys = Integers,
Values = RDPlayingNowNodes
Station IdStation IdStation Id
• Name• Artists[num]• Titles[num]
• Name• Artists[num]• Titles[num]
RDPlayingNowNode
artistDb
titleDbRDPlayingNowItemDb
db – Map:Keys = Strings,
Values = Maps(Ints,Ints)
Item (artist/title)
Map:Station Id counterStation Id counter
…Map:
Station Id counterStation Id counter
…
Maps for Nodes
Item (artist/title)Item (artist/title)
Registry stub from servlet
9
Client Communication:Communication with server: There are two HTTP Servlets to process
client queries ClientHandler: performs the proper
searches in the databases (MySQL or PlayingNow), and updates the results in HTML
PlayerHandler: generates the station player and presents metadata in real time
10
Client Communication:Client Interface: The client can request searches based on:
station name, station genre, artist or title played recently, station country, and stations near the client’s location
Capable of searching also for partial matches
Designed to make results appear as quickly as possible, without reloading the page
Results are ordered by station scores – dynamically updated according to connectivity, header reliability and metadata relevance
11
Internet Stations
MetaData and Station HeaderRetriever Threads
Web Server
MySQL Server
Station Streams
Updated DataInfo for
Clients
Info for Clients
Requests For Streams and information
Clients
Streams and informationRequests For
Streams and information
RD Server
Updated Data
Updated Data
Tools and Platforms: On the server end:
Eclipse IDE, with Java as the programming language.
Tomcat will run for web application development.
Data will be stored by relational DB (using MySQL)
On the client end: HTML5 generic implementation using CSS3,
javascript (using ajax to communicate with servlet).
supports PC/Mobile platforms.
14
Where can we go from here?
Add features to the application About, Contact (not functional right now) Additional tabs that may be useful
Add more information to be displayed Station’s icon, schedule Artist/genre images
Improve navigation Provide auto completion Multi-parameter searches
Improve design Improve folding (limit results with “more”
option) Add more css features