Voice Mail for social networks Maxim Kogan Roey Ben Haim Supervisor Assaf Solomovitch Lab Chief Eng. Ilana David Software Systems Lab Department of Electrical.

Slides:



Advertisements
Similar presentations
ICS 434 Advanced Database Systems
Advertisements

Lecture plan Information retrieval (from week 11)
Database Architectures and the Web
CSE Tier Architectures (or 3-Tier Applications) Adapted from Chuck Cusack’s Notes.
DT228/3 Web Development WWW and Client server model.
Windows Spy Project Maxim Kogan Roey Ben Haim Supervisor: Assaf Solomovitch Lab Chief Eng.: Ilana David Software Systems Lab Department of Electrical Engineering.
Fundamentals, Design, and Implementation, 9/e Chapter 14 JDBC, Java Server Pages, and MySQL.
INTERNET DATABASE Chapter 9. u Basics of Internet, Web, HTTP, HTML, URLs. u Advantages and disadvantages of Web as a database platform. u Approaches for.
Web Servers How do our requests for resources on the Internet get handled? Can they be located anywhere? Global?
Lecture 2 Web application architecture. Themes Architecture : The large scale structure of a system, especially a computer system Design choice: The need.
Introduction to Web Application Architectures Web Application Architectures 18 th March 2005 Bogdan L. Vrusias
Outline IS400: Development of Business Applications on the Internet Fall 2004 Instructor: Dr. Boris Jukic Server Side Web Technologies: Part 2.
Layers & Tiers Umair Javed Lec - 41.
Introduction to Web Based Application. Web-based application TCP/IP (HTTP) protocol Using WWW technology & software Distributed environment.
Performed by:Gidi Getter Svetlana Klinovsky Supervised by:Viktor Kulikov 08/03/2009.
12 Chapter 12 Client/Server Systems Hachim Haddouti.
Java Server Team 8. Overview What is a Java Server? History Architecture Advantages Disadvantages Current Technologies Conclusion.
1 Java Server Pages Can web pages be created specially for each user? What part does Java play?
Computer Science 101 Web Access to Databases Overview of Web Access to Databases.
Charlie Crocker Vice President Farallon Geographics, Inc. An Overview of Internet Mapping Technology.
Web application architecture
Client/Server Architectures
INTRODUCTION TO WEB DATABASE PROGRAMMING
IT 210 The Internet & World Wide Web introduction.
Chapter 10 EJB Concepts of EJB Three Components in Creating an EJB Starting/Stopping J2EE Server and Deployment Tool Installation and Configuration of.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
Databases and the Internet. Lecture Objectives Databases and the Internet Characteristics and Benefits of Internet Server-Side vs. Client-Side Special.
CIS 285 ROBINSON WINTER 2005 CIS 285 Web Application Development with Java CIS 285 Sinclair Community College Instructor: Mary Robinson.
Chapter 4: Core Web Technologies
Java Omar Rana University of South Asia. Course Overview JAVA  C/C++ and JAVA Comparison  OOP in JAVA  Exception Handling  Streams  Graphics User.
Application Layer CHAPTER 2. Announcements and Outline  Administrative Items  Questions? Recap 1.Introduction to Networks 1.Network Type 2.N etwork.
Introduction to Internet Programming (Web Based Application)
Chapter 17 - Deploying Java Applications on the Web1 Chapter 17 Deploying Java Applications on the Web.
COLD FUSION Deepak Sethi. What is it…. Cold fusion is a complete web application server mainly used for developing e-business applications. It allows.
® IBM Software Group © 2007 IBM Corporation J2EE Web Component Introduction
 Chapter 6 Architecture 1. What is Architecture?  Overall Structure of system  First Stage in Design process 2.
Csi315csi315 Client/Server Models. Client/Server Environment LAN or WAN Server Data Berson, Fig 1.4, p.8 clients network.
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
1 Welcome to CSC 301 Web Programming Charles Frank.
Mainframe (Host) - Communications - User Interface - Business Logic - DBMS - Operating System - Storage (DB Files) Terminal (Display/Keyboard) Terminal.
Database Architectures Database System Architectures Considerations – Data storage: Where do the data and DBMS reside? – Processing: Where.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
Web Technologies Lecture 8 Server side web. Client Side vs. Server Side Web Client-side code executes on the end-user's computer, usually within a web.
JS (Java Servlets). Internet evolution [1] The internet Internet started of as a static content dispersal and delivery mechanism, where files residing.
FriendFinder Location-aware social networking on mobile phones.
JSP Server Integrated with Oracle8i Project2, CMSC691X Summer02 Ching-li Peng Ying Zhang.
CS562 Advanced Java and Internet Application Introduction to the Computer Warehouse Web Application. Java Server Pages (JSP) Technology. By Team Alpha.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Java Programming: Advanced Topics 1 Building Web Applications Chapter 13.
1 LM 6 Database Applications Dr. Lei Li. Learning Objectives Explain three components of a client-server system Describe differences between a 2-tiered.
 Project Team: Suzana Vaserman David Fleish Moran Zafir Tzvika Stein  Academic adviser: Dr. Mayer Goldberg  Technical adviser: Mr. Guy Wiener.
E-commerce Architecture Ayşe Başar Bener. Client Server Architecture E-commerce is based on client/ server architecture –Client processes requesting service.
A Presentation Presentation On JSP On JSP & Online Shopping Cart Online Shopping Cart.
J2EE Platform Overview (Application Architecture)
CIIT-Human Computer Interaction-CSC456-Fall-2015-Mr
Web Concepts Lesson 2 ITBS2203 E-Commerce for IT.
JSP (Java Server Page) JSP is server side technology which is used to create dynamic web pages just like Servlet technology. This is mainly used for implementing.
Principles of Network Applications
MVC and other n-tier Architectures
Web Software Model CS 4640 Programming Languages for Web Applications
CHAPTER 2 Application Layer.
PHP / MySQL Introduction
#01 Client/Server Computing
Database Driven Websites
Lecture 1: Multi-tier Architecture Overview
Introduction of Week 11 Return assignment 9-1 Collect assignment 10-1
SOFTWARE DEVELOPMENT LIFE CYCLE
UFCEUS-20-2 Web Programming
#01 Client/Server Computing
Presentation transcript:

Voice Mail for social networks Maxim Kogan Roey Ben Haim Supervisor Assaf Solomovitch Lab Chief Eng. Ilana David 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 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 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

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. New Idea – Voice Mail Application (cont.)

Project Overview t2 – Hosts the initial xml file Orkut (OpenSocial Container) The Server (Tomcat) DataBase (MySQL) Java Applet Openning an IFrame initializations Constant communication Sends Friends

The XML file >iframe src= <</iframe< opensocial.newDataRequest(); gadgets.io.makeRequest

Technologies(1) Java sound/JMF Java sound/JMF  JMF wraps Java Sound functionality  No need to install Java Sound Java EE 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 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) Servlets/JSP 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 MySQL+JDBC  an API for the java programming language that defines how a client may access a database. Signed java applet Signed java applet  the applet's code is executed by the browser's JVM  Signed jar file Web server Web browser request response Servl et

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 – “  Thick – Desktop applet, RealPlayer. Examples 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).