260 likes | 358 Views
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.
E N D
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 (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 DataBase (MySQL) The Server (Tomcat) Constant communication initializations
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.
request request response response Technologies(2) Servlet 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) • DeleteURLServlet – 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. • 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).