Download Project Presentation

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Supervisor Assaf Solomovitch
Lab Chief Eng. Ilana David
Voice Mail
for social networks
Maxim Kogan
Roey Ben Haim
Software Systems Lab
Department of Electrical Engineering
Technion - Israel Institute of Technology
Social Software – Introduction


Social software allows users to interact and share data
with other users. This has become very popular with
social sites like MySpace and Facebook.
Many of these applications share characteristics like
open APIs, service oriented design, and the ability to
upload data and media.
FOR MORE INFO...
Visit our website
Open Social


OpenSocial
A set of APIs for building social applications.
OpenSocial's goal is to make more apps available to
more users, by providing a common API. Developers can
create applications, using standard JavaScript and
HTML, that run on social websites that have
implemented the OpenSocial APIs.
OpenSocial container
Google gadgets(1)



Gadgets are mini-applications that can be added to the
personalized version of the Google homepage (iGoogle),
Google Desktop and any page on the web.
The gadgets API consists of a few simple building
blocks: XML, HTML, and JavaScript.
The XML file that specifies a gadget contains instructions
on how to process and render the gadget.
Google Gadgets(2)

These are some extensions to the core gadgets
API, to provide additional functionality
 OpenSocial-
Utilize functions for creating
social gadgets (containers)
 Maps (Google Maps )
 Finance API - Retrieve and display stock
information from Google Finance. (iGoogle)
 Ads (Google AdSense )
 Calendar - (Google Calendar )
Pass It On

The main idea of our social application was to create a
useful free-items-exchange system based on the social
network and its friends-based connections.
Got it !
?
?
?
?
No,
sorry..
-extended network distance, while part of the OpenSocial v0.8 spec,
will not be supported in orkut.
Voice Mail Application




The main idea is creating an email of audio recordings.
It allows different users to record themselves via
microphone and transfer the recordings to their friends.
We combined this idea with a social network, granting
each user his own account.
We chose this idea in order to keep the scope of social
network, and combine it with the ever-growing field of
media streaming.
New Idea – Voice Mail
Application
New Idea – Voice Mail
Application (cont.)


The previous page showed a user invoking his inbox,
which contains 2 messages.
The user can record an audio message, send his audio
message to his friends, peek on the messages sent to
him, and delete them from his inbox.
Project Overview
Orkut (OpenSocial Container)
Openning an IFrame
t2 – Hosts the initial xml file
Java Applet
Sends Friends
Sends Friends
The Server (Tomcat)
Constant communication
initializations
DataBase (MySQL)
The XML file




>iframe
src=http://89.138.71.144:8080/WebAppTest/HelloServlet
<</iframe<
<script type='text/javascript'>
opensocial.newDataRequest();
gadgets.io.makeRequest
Technologies(1)



Java sound/JMF
 JMF wraps Java Sound functionality
 No need to install Java Sound
Java EE
 Java platform that adds libraries which provide
functionality to deploy, distributed, multi-tier Java
software, based largely on modular components
running on an application server.
Tomcat – Apache Tomcat is a servlet container. Tomcat
implements the Java Servlet and the JSPs
specifications, and provides a java HTTP web server
environment for Java code to run.
Technologies(2)
request
request
response
response
Servl
et
Web browser
Web server



Servlets/JSP
 Servlet - A Java application that is being run by a Web
server. Can receive parameters in an HTTP request
,Generates an HTTP response.
 JSP - write Servlet code directly in the HTML page.
The server automatically translates a JSP page to a
Servlet class and invokes this servlet
MySQL+JDBC
 an API for the java programming language that
defines how a client may access a database.
Signed java applet
 the applet's code is executed by the browser's JVM
 Signed jar file
MySQL (in details)




JDBC technology is an API (included in J2EE) that
provides cross-DBMS connectivity to a wide range of
SQL databases.
most popular open source database software.
MySQL controls concurrent access by deploying locks.
Each operation on the database (select, update, insert,
create, drop, etc.) requires some lock to be obtained by
the running transaction
 Locks are held until the transaction ends
 The second updating transaction is blocked until the
lock is released (first one commits or rolls back)
Java Applet (more detailed)




An applet is a software component that runs in the
context of another program, in our case a web browser.
In order to approach user’s computer device, we had to
use a client side program.
Applets are used to provide interactive features to web
applications that cannot be provided by HTML.
Our application records the user through the
microphone. In order to do so we are using Java Sound
API in the client side.
Design Issues –
3 tier(1)


the presentation, the application
processing (logic tier) and the data management are
logically separate processes.
Evolution to the 3 tier architecture:
 Single tier – single computer, all resources &
processing attached to it. Access via terminals.
simple but expensive central machine.
 Dual tier – client layer, DB layer only. Client/server
model is born. Only limited # of users to DB server,
expensive connections.
 3 tier – the client only displays the GUI, has no part
in producing results.
Design Issues – 3 tier (2)

Thin/thick 3 tier models
 Thin – “www.amazon.com”.
 Thick – Desktop applet, RealPlayer.

Examples
 Oracle
DBMS, C++ middle, and C++/MFC client
 MySQL
DBMS, JSP middle, and Java applet client
 MySQL
DBMS, PHP middle, and web browser client
Design Issues – 3 tier (3)


Advantages
 Scalability
 application servers on different machines.
 No need to connect each client to a DB (reduce
load on clients and DB servers)
 Better re-use (e.g. change only DB, client stays same)
 Improve data integrity
 The middle tier ensures validity of data to DB.
 Good security .Hidden DB structure from the client
 Improved availability (recovering from network crash)
 Use of redundant servers and DBs
Disadvantages
 Increased complexity (twice more communication )
Use Cases(1)
Saving the Voice mail – collaboration diagram
Use Cases(2)
Showing user’s records – collaboration diagram
Classes overview(1)


The applet classes (client tier)
 App
 requests friends from the server
 loads the main class
 AudioCapture – the main applet class. Displays GUI
and records.
The servlets classes (logic tier)
 HelloServlet – loads the applet
 IncomingAudioServlet – recieves incoming record,
renders it and saves in the DB.
 PresentURLServlet – retrieves the record URLs from
the DB,
and presents on screen.
Classes overview(2)
– deletes the chosen URLs.
 FromOrkutServlet – accepts the list of friends from
Orkut.
 SendFriendToAppletServlet – the servlet sends the
friends from Orkut to the applet upon applet load.
 DeleteURLServlet

DB class (database tier)
 SQL_DB
– the database management class.
Summary


The project contained a vast variety of material, from
OpenSocial API, through Java Applet and Java Servlets,
to Databases and MySQL.
 A LOT of new stuff to learn.
The idea of combining the field of social network with
media streaming is new and can open a vast market.
Future expansions




Expand through a variety of social networks that are
using OpenSocial API.
Create a Facebook version.
Advance to the video field, making a video mail, and
creating a video/audio chat.
Add a Flash/Silverlight version, and edit the applet
End


Many thanks to our dedicated supervisor, Assaf
Solomovitch for his great help and support.
Thanks to the software lab staff for his support (Ilana
David and Victor Kulik).