Sie sind auf Seite 1von 48

INTRODUCTION

ORGANIZATION PROFILE

CONTENTS
S.NO CHAPTER PAGE NO

1. INTRODUCTION 1.1 Organization Profile Selection of Software

2. SYSTEM CONFIGURATION 2.1 2.2 Hardware Specification Software Specification

3. SYSTEM ANALYSIS 3.1 System Analysis 3.2 Feasibility Study 3.3 Existing System 3.4 Need for Computerization 3.5 Proposed System 3.6 Data Flow Diagrams 4. SYSTEM DESIGN 4.1 Elements of Design

5. SYSTEM DESCRIPTION 5.1 Input Section 5.2 Output Section 5.3 Test and Implementation Source Code 6. INPUT & OUTPUT 6.1 Sample I/O Reports 7. CONCLUSION
8. BIBLIOGRAPHY

SYNOPSIS

Video Conferencing System


Introduction
Video Conferencing system will be a program designed to provide a multiplatform video conferencing solution on Microsoft Windows Environment. The motivation behind this project comes from the lack of platform independent solution for Video Conference. Proprietary hardware and platform specific video formats require Video Conferencing applications to be tailored and rewritten for each computing platform. The emergence of Java technology provides tools to create platform independent applications. However, it is the general belief among technologies is that java technology is not suitable for computational intensive tasks, such as encoding and decoding video or audio, which are required in a video conferencing application. The ultimate goal of this project is to explore the feasibility of creating video conferencing application using javas latest multimedia technology, java media frame work.

This is an online Video Conferencing System that is to be developed using Java and JMF. This project is mainly desired to maintain the video conferencing on the Internet. This should make possible the video transfer as well the voice transfer on the Internet to our desired destination, and the connections over the net should also be maintained. This should manage more than one connection at a time and should provide a chance to conference with more than one user. Even if the user is connected to more users he should be given a chance to pause one voice connection and can continue with the other. He should be given a chance

to manage his connections.

He should be given a chance to disconnect

particular one from the existing connections.

FEATURES OF THE LANGUAGE USED


FEATURES OF JAVA In my project, I have chosen Java language for developing the code. About Java Initially the language was called as oak but it was renamed as Java in 1995. The primary motivation of this language was the need for a platformindependent (i.e., architecture neutral) language that could be used to create software to be embedded in various consumer electronic devices.
Java is a programmers language. Java is cohesive and consistent. Except for those constraints imposed by the Internet environment, Java gives

the programmer, full control. Finally, Java is to Internet programming where C was to system programming.

Importance of Java to the Internet


Java has had a profound effect on the Internet. This is because; Java expands the Universe of objects that can move about freely in Cyberspace. In a network, two categories of objects are transmitted between the Server and the Personal computer. They are: Passive information and Dynamic active programs. The Dynamic, Self-executing programs cause serious problems in the areas of Security and probability. But, Java addresses those concerns and by doing so, has opened the door to an exciting new form of program called the Applet. Java can be used to create two types of programs: Applications and Applets: An application is a program that runs on our Computer under the operating system of that computer. It is more or less like one creating using C or C++. Javas ability to create Applets makes it important. An Applet is an application designed to be transmitted over the Internet and

executed by a Java compatible web browser. An applet is actually a tiny Java program, dynamically downloaded across the network, just like an image. But the difference is, it is an intelligent program, not just a media file. It can react to the user input and dynamically change. FEATURES OF JAVA Security Every time you that you download a normal program, you are risking a viral infection. Prior to Java, most users did not download executable programs frequently, and those who did scanned them for viruses prior to execution. Most users still worried about the possibility of infecting their systems with a virus. In addition, another type of malicious program exists that must be guarded against. This type of program can gather private information, such as credit card numbers, bank account balances, and passwords. Java answers both of these concerns by providing a firewall between a networked application and your computer. When you use a Java-compatible Web browser, you can safely download Java applets without fear of virus infection or malicious intent.

Portability For programs to be dynamically downloaded to all the various types of platforms connected to the Internet, some means of generating portable executable code is needed .As you will see, the same mechanism that helps ensure security also helps create portability. Indeed, Javas solution to these two problems is both elegant and efficient. The Byte code The key that allows the Java to solve the security and portability problems is that the output of Java compiler is Byte code. Byte code is a highly optimized set of instructions designed to be executed by the Java run-time system, which is called the Java Virtual Machine (JVM). That is, in its standard form, the JVM is an interpreter for byte code.

Translating a Java program into byte code helps makes it much easier to run a program in a wide variety of environments. The reason is, Once the run-time package exists for a given system, any Java program can run on it. Although Java was designed for interpretation, there is technically nothing about Java that prevents on-the-fly compilation of byte code into native code. Sun has just completed its Just In Time (JIT) compiler for byte code. When the JIT compiler is a part of JVM, it compiles byte code into executable code in real time, on a piece-by-piece, demand basis. It is not possible to compile an entire Java program into executable code all at once, because Java performs various runtime checks that can be done only at run time. The JIT compiles code, as it is needed, during execution.

Java Virtual Machine (JVM)


Beyond the language, there is the Java virtual machine. The Java virtual machine is an important element of the Java technology. The virtual machine can be embedded within a web browser or an operating system. Once a piece of Java code is loaded onto a machine, it is verified. As part of the loading process, a class loader is invoked and does byte code verification makes sure that the code thats has been generated by the compiler will not corrupt the machine that its loaded on. Byte code verification takes place at the end of the compilation process to make sure that is all accurate and correct. So byte code verification is integral to the compiling and executing of Java code.
Java Source

Javac

Java byte

Java VM

.Java

.Class

code

The above picture shows the development process a typical Java programming uses to produce byte codes and executes them. The first box indicates that the Java source code is located in a. Java file that is processed with a Java compiler called JAVA. The Java compiler produces a file called a. class file, which contains the byte code. The class file is then loaded across the

network or loaded locally on your machine into the execution environment is the Java virtual machine, which interprets and executes the byte code.

Java Architecture
Java architecture provides a portable, robust, high performing environment for development. Java provides portability by compiling the byte codes for the Java Virtual Machine, which is then interpreted on each platform by the run-time environment. Java is a dynamic system, able to load code when needed from a machine in the same room or across the planet.

Compilation of Code
When you compile the code, the Java compiler creates machine code (called byte code) for a hypothetical machine called Java Virtual Machine (JVM). The JVM is supposed to execute the byte code. The JVM is created for overcoming the issue of portability. The code is written and compiled for one machine and interpreted on all machines. This machine is called Java Virtual Machine.

Compiling and interpreting Java Source Code

PC Compil er Source Code .. .. .. Macintosh Compiler

Java Byte code

Java Interpreter (PC)

Java Interpreter (Macintosh

(Platform
Independent)

Java SPARC Compiler Interpreter (Sparc)

During run-time the Java interpreter tricks the byte code file into thinking that it is running on a Java Virtual Machine. In reality this could be a Intel Pentium Windows 95 or SunSARC station running Solaris or Apple Macintosh running system and all could receive code from any computer through Internet and run the Applets. SIMPLE Java was designed to be easy for the Professional programmer to learn and to use effectively. If you are an experienced C++ programmer, learning Java will be even easier. Because Java inherits the C/C++ syntax and many of the object oriented features of C++. Most of the confusing concepts from C++ are either left out of Java or implemented in a cleaner, more approachable manner. In Java there are a small number of clearly defined ways to accomplish a given task.

Object-Oriented
Java was not designed to be source-code compatible with any other language. This allowed the Java team the freedom to design with a blank slate. One outcome of this was a clean usable, pragmatic approach to objects. The object model in Java is simple and easy to extend, while simple types, such as integers, are kept as high-performance non-objects. Robust The multi-platform environment of the Web places extraordinary demands on a program, because the program must execute reliably in a variety of systems. The ability to create robust programs was given a high priority in the design of Java. Java is strictly typed language; it checks your code at compile time and run time. Java virtually eliminates the problems of memory management and deallocation, which is completely automatic. In a well-written Java program, all run time errors can and should be managed by your program.

SERVLETS
Introduction The Java web server is JavaSofts own web Server. The Java web server is just a part of a larger framework, intended to provide you not just with a web server, but also with tools. To build customized network servers for any Internet or Intranet client/server system. Servlets are to a web server, how applets are to the browser. About Servlets Servlets provide a Java-based solution used to address the problems currently associated with doing server-side programming, including inextensible scripting solutions, platform-specific APIs, and incomplete interfaces. Servlets are objects that conform to a specific interface that can be plugged into a Java-based server. Servlets are to the server-side what applets are to the clientside - object byte codes that can be dynamically loaded off the net. They differ from applets in that they are faceless objects (without graphics or a GUI component). They serve as platform independent, dynamically loadable, plugable helper byte code objects on the server side that can be used to dynamically extend server-side functionality. For example, an HTTP Servlet can be used to generate dynamic HTML content. When you use Servlets to do dynamic content you get the following advantages:
they're faster and cleaner than CGI scripts they use a standard API (the Servlet API) they provide all the advantages of Java (run on a variety of servers without

needing to be rewritten).

Attractiveness of Servlets
There are many features of Servlets that make them easy and attractive to use. These include:
Easily configured using the GUI-based Admin tool

Can be loaded and invoked from a local disk or remotely across the network. Can be linked together, or chained, so that one Servlet can call another

Servlet, or several Servlets in sequence.


Can be called dynamically from within HTML pages, using server-side include

tags.
Are secure - even when downloading across the network, the Servlet security

model and Servlet sandbox protect your system from unfriendly behavior.

Advantages of the Servlet API


One of the great advantages of the Servlet API is protocol independence. It assumes nothing about:
The protocol being used to transmit on the net How it is loaded The server environment it will be running in

These qualities are important, because it allows the Servlet API to be embedded in many different kinds of servers. There are other advantages to the Servlet API as well. These include:
It's extensible - you can inherit all your functionality from the base classes

made available to you.


It's simple, small, and easy to use.

Features of Servlets
Servlets are persistent. Servlet are loaded only by the web server and can

maintain services between requests.


Servlets are fast. Since Servlets only need to be loaded once, they offer

much better performance over their CGI counterparts.


Servlets are platform independent. Servlets are extensible. Java is a robust, object-oriented programming

language, which easily can be extended to suit your needs


Servlets are secure. Servlets can be used with a variety of clients.

Loading Servlets Servlets can be loaded from three places : From a directory that is on the CLASSPATH. The CLASSPATH of reside. From the <SERVICE_ROOT /Servlets/ directory> This is *not* in the servers class path. A class loader is used to create Servlets from this directory. New Servlets can be added - existing Servlets can be recompiled and the server will notice these changes. From a remote location. For this a code base like http://nine.eng/classes/foo/ is required in addition to the Servlet's class name. Refer to the admin GUI docs on Servlet section to see how to set this up. the Java Web Server includes service_root/classes/ which is where the system classes

Loading Remote Servlets Remote Servlets can be loaded by:


1. Configuring the Admin Tool to setup automatic loading of remote Servlets 2. Setting up server side include tags in .shtml files 3. Defining a filter chain configuration Invoking Servlets A Servlet invoker is a Servlet that invokes the "service" method on a named Servlet. If the Servlet is not loaded in the server, then the invoker first loads the Servlet (either from local disk or from the network) and the then invokes the "service" method. Also like applets, local Servlets in the server can be identified by just the class name. In other words, if a Servlet name is not absolute, it is treated as local. A client can invoke Servlets in the following ways:
The client can ask for a document that is served by the Servlet. The client (browser) can invoke the Servlet directly using a URL, once it

has been mapped using the Servlet Aliases section of the admin GUI.
The Servlet can be invoked through server side include tags. The Servlet can be invoked by placing it in the Servlets/ directory. The Servlet can be invoked by using it in a filter chain.

JAVASCRIPT JavaScript is a script-based programming language, which was developed by


Netscape Communication Corporation. JavaScript was originally called Live Script and renamed as JavaScript to indicate its relationship with Java.

JavaScript supports the development of both client and server components of


Web-based applications. On the client side, it can be used to write programs that are executed by a Web browser within the context of a Web page. On the server side, it can be used to write Web server programs that can process information submitted by a Web browser and then updates the browsers display accordingly. Even though JavaScript supports both client and server Web programming, we prefer JavaScript at Client side programming since most of the browsers supports it. JavaScript is almost as easy to learn as HTML, and JavaScript statements can be included in HTML documents by enclosing the statements between a pair of scripting tags <SCRIPTS>. </SCRIPT>. <SCRIPT LANGUAGE = JavaScript> JavaScript statements </SCRIPT> Here are a few things we can do with JavaScript:
Validate the contents of a form and make calculations. Add scrolling or changing messages to the Browsers status line. Animate images or rotate images that change when we move the mouse over

them.
Detect the browser in use and display different content for different browsers. Detect installed plug-ins and notify the user if a plug-in is required.

We can do much more with JavaScript, including creating entire application.

JavaScript Vs Java JavaScript and Java are entirely different languages. A few of the most glaring
differences are:
Java applets are generally displayed in a box within the web document;

JavaScript can affect any part of the Web document itself.


While JavaScript is best suited to simple applications and adding interactive

features to Web pages; Java can be used for incredibly complex applications. There are many other differences but the important thing to remember is that JavaScript and Java are separate languages. They are both useful for different things; in fact they can be used together to combine their advantages.

ADVANTAGES
JavaScript can be used for Sever-side and Client-side scripting.

It is more flexible than VBScript.


JavaScript is the default scripting languages at Client-side since all the

browsers supports it.

HTML
Hypertext Markup Language (HTML), the languages of the World Wide
Web (WWW), allows users to produces Web pages that include text, graphics and pointer to other Web pages (Hyperlinks).

HTML is not a programming language but it is an application of ISO Standard


8879,

SGML (Standard Generalized Markup Language) , but

specialized to hypertext and adapted to the Web. The idea behind Hypertext is that instead of reading text in rigid linear structure, we can easily jump from one point to another point. We can navigate through the information based on our interest and preference. A markup language is simply a series of elements, each delimited with special characters, that define how text or other items

enclosed within the elements should be displayed. Hyperlinks are underlined or emphasized works that load to other documents or some portions of the same document.

HTML can be used to display any type of document on the host computer, which
can be geographically at a different location. It is a versatile language and can be used on any platform or desktop.

HTML provides tags (special codes) to make the document look attractive.
HTML tags are not case-sensitive. Using graphics, fonts, different sizes, color, etc., can enhance the presentation of the document. Anything that is not a tag is part of the document itself.

Basic HTML Tags:


<!---> Specifies comments Creates hypertext links Formats text as bold Formats text in large font. Contains all tags and text in the HTML document Definition of a term Creates definition list Formats text with a particular font Encloses a fill-out form Defines a particular frame in a set of frames Creates headings of different levels Contains tags that specify information about a document Creates a horizontal rule Contains all other HTML tags Provides meta-information about a document Contains client-side or server-side script Creates a table Indicates table data in a table Designates a table row <A>.</A> <B>.</B> <BIG>.</BIG> <BODY></BODY> <DD></DD> <DL>...</DL> <FONT></FONT> <FORM>...</FORM> <FRAME>...</FRAME> <H#></H#> <HEAD>...</HEAD> <HR>...</HR> <HTML></HTML> <META>...</META> <SCRIPT></SCRIPT> <TABLE></TABLE> <TD></TD> <TR></TR>

<CENTER>...</CENTER> Creates text

<TH></TH> ADVANTAGES

Creates a heading in a table

A HTML document is small and hence easy to send over the net. It is small

because it does not include formatted information.


HTML is platform independent. HTML tags are not case-sensitive.

JDBC
Java Database Connectivity What Is JDBC?
JDBC is a Java API for executing SQL statements. (As a point of interest, JDBC is a trademarked name and is not an acronym; nevertheless, JDBC is often thought of as standing for Java Database Connectivity. It consists of a set of classes and interfaces written in the Java programming language. JDBC provides a standard API for tool/database developers and makes it possible to write database applications using a pure Java API. Using JDBC, it is easy to send SQL statements to virtually any relational database. One can write a single program using the JDBC API, and the program will be able to send SQL statements to the appropriate database. The combinations of Java and JDBC lets a programmer write it once and run it anywhere.

What Does JDBC Do?


Simply put, JDBC makes it possible to do three things:
establish a connection with a database send SQL statements Process the results.

JDBC versus ODBC and other APIs At this point, Microsoft's ODBC (Open Database Connectivity) API is that probably the most widely used programming interface for accessing relational

databases. It offers the ability to connect to almost all databases on almost all platforms. So why not just use ODBC from Java? The answer is that you can use ODBC from Java, but this is best done with the help of JDBC in the form of the JDBCODBC Bridge, which we will cover shortly. The question now becomes "Why do you need JDBC?" There are several answers to this question: 1. ODBC is not appropriate for direct use from Java because it uses a C interface. Calls from Java to native C code have a number of drawbacks in the security, implementation, robustness, and automatic portability of applications. 2. A literal translation of the ODBC C API into a Java API would not be desirable. For example, Java has no pointers, and ODBC makes copious use of them, including the notoriously error-prone generic pointer "void *". You can think of JDBC as ODBC translated into an object-oriented interface that is natural for Java programmers. 3. ODBC is hard to learn. It mixes simple and advanced features together, and it has complex options even for simple queries. JDBC, on the other hand, was designed to keep simple things simple while allowing more advanced capabilities where required. 4. A Java API like JDBC is needed in order to enable a "pure Java" solution. When ODBC is used, the ODBC driver manager and drivers must be manually installed on every client machine. When the JDBC driver is written completely in Java, however, JDBC code is automatically installable, portable, and secure on all Java platforms from network computers to mainframes.

Two-tier and Three-tier Models


The JDBC API supports both two-tier and three-tier models for database access.

In the two-tier model, a Java applet or application talks directly to the database. This requires a JDBC driver that can communicate with the particular database

management system being accessed. A user's SQL statements are delivered to the database, and the results of those statements are sent back to the user. The database may be located on another machine to which the user is connected via a network. This is referred to as a client/server configuration, with the user's machine as the client, and the machine housing the database as the server. The network can be an Intranet, which, for example, connects employees within a corporation, or it can be the Internet.
JAVA Application

Client machine DBMS-proprietary protocol

JDBC

Database server
DBMS

In the three-tier model, commands are sent to a "middle tier" of services, which then send SQL statements to the database. The database processes the SQL statements and sends the results back to the middle tier, which then sends them to the user. MIS directors find the three-tier model very attractive because the middle tier makes it possible to maintain control over access and the kinds of updates that can be made to corporate data. Another advantage is that when there is a middle tier, the user can employ an easy-to-use higher-level API which is translated by the middle tier into the appropriate low-level calls. Finally, in many cases the three-tier architecture can provide performance advantages.

Java Applet or HTML browser

Client machine (GUI)

HTTP, RMI, or CORBA calls


Application

Server (Java)

Server machine (business logic) DBMS-proprietary protocol Database server

DBMS
Until now the middle tier has typically been written in languages such as C or C+ +, which offer fast performance. However, with the introduction of optimizing compilers that translate Java byte code into efficient machine-specific code, it is becoming practical to implement the middle tier in Java. This is a big plus, making it possible to take advantage of Java's robustness, multithreading, and security features. JDBC is important to allow database access from a Java middle tier.

JDBC Driver Types


The JDBC drivers that we are aware of at this time fit into one of four categories:

JDBC-ODBC bridge plus ODBC driver Native-API partly-Java driver


JDBC-Net pure Java driver

Native-protocol pure Java driver


JDBC-ODBC Bridge
If possible, use a Pure Java JDBC driver instead of the Bridge and an ODBC driver. This completely eliminates the client configuration required by ODBC. It also eliminates the potential that the Java VM could be corrupted by an error in the native code brought in by the Bridge (that is, the Bridge native

library, the ODBC driver manager library, the ODBC driver library, and the database client library).

What Is the JDBC- ODBC Bridge?


The JDBC-ODBC Bridge is a JDBC driver, which implements JDBC operations by translating them into ODBC operations. To ODBC it appears as a normal application program. The Bridge implements JDBC for any database for which an ODBC driver is available. The Bridge is implemented as the sun.jdbc.odbc Java package and contains a native library used to access ODBC. The Bridge is a joint development of Intersolv and JavaSoft. FEATURES OF ORACLE Some of the features of Oracle supported for the project are as follows:
Large Database Management System

Oracle supports large databases potentially tera bytes in size.


Many Concurrent database users

Oracle supports large numbers of concurrent users executing a variety of database applications operating on the same data. It minimizes data contention and guarantees data concurrency.
High transaction processing performance

Oracle maintains the preceding features with a high degree of overall system performance. performance.
Security

Database

users

do

not

suffer

from

slow

processing

By providing proper authentication oracle provides security to the database users.

JAVA SERVER PAGES (JSP)


Java server Pages is a simple, yet powerful technology for creating and maintaining dynamic-content web pages. Based on the Java programming language, Java Server Pages offers proven portability, open standards, and a mature re-usable component model .The Java Server Pages architecture enables the separation of content generation from content presentation. This separation not eases maintenance headaches, it also allows web team members to focus on their areas of expertise. Now, web page designer can concentrate on layout, and web application designers on programming, with minimal concern about impacting each others work.

Features of JSP:
Portability: Java Server Pages files can be run on any web server or web-enabled application Server that provides support for them. Dubbed the JSP engine, this support Involves recognition, translation, and management of the Java Server Page Lifecycle and its interaction components.

Components
It was mentioned earlier that the Java Server Pages architecture can include reusable Java components. The architecture also allows for the embedding of a scripting language directly into the Java Server Pages file. The components current supported include Java Beans, and Servlets.

Processing
A Java Server Pages file is essentially an HTML document with JSP scripting or tags. The Java Server Pages file has a JSP extension to the server as a Java Server Pages file. Before the page is served, the Java Server Pages syntax is

parsed and processed into a Servlet on the server side. The Servlet that is generated outputs real content in straight HTML for responding to the client.

Access Models:
A Java Server Pages file may be accessed in at least two different ways. A clients request comes directly into a Java Server Page. In this scenario, suppose the page accesses reusable Java Bean components that perform particular well-defined computations like accessing a database. The result of the Beans computations, called result sets is stored within the Bean as properties. The page uses such Beans to generate dynamic content and present it back to the client. In both of the above cases, the page could also contain any valid Java code. Java Server Pages architecture encourages separation of content from presentation.

Steps in the execution of a JSP Application:


1. The client sends a request to the web server for a JSP file by giving the name of the JSP file within the form tag of a HTML page. 2. This request is transferred to the JavaWebServer. At the server side JavaWebServer receives the request and if it is a request for a jsp file server gives this request to the JSP engine. 3. JSP engine is program which can understands the tags of the jsp and then it converts those tags into a Servlet program and it is stored at the server side. This Servlet is loaded in the memory and then it is executed and the result is given back to the JavaWebServer and then it is transferred back to the result is given back to the JavaWebServer and then it is transferred back to the client .

JDBC Connectivity
The JDBC provides database-independent connectivity between the J2EE platform and a wide range of tabular data sources. JDBC technology allows an Application Component Provider to: Perform connection and authentication to a database server Manager transactions Move SQL statements to a database engine for preprocessing and execution Execute stored procedures Inspect and modify the results from Select statements

ROLE OF ORACLE IN DATABASE: ORACLE 8i is one of the many database services that plug into a client / server model. It works efficiently to manage resources, a database information, among the multiple clients requesting & sending. STRUCTURED QUERY LANGUAGE (SQL) SQL is an inter-active language used to query the database and access data in database. SQL has the following features: 1. It is a unified language. 2. It is a common language for relational database 3. It is a non-procedural language.

SYSTEM CONFIGURATIONS

The software requirement specification can produce at the culmination of the analysis task. The function and performance allocated to software as part of system engineering are refined by established a complete information description, a detailed functional description, a representation of system behavior, an indication of performance and design constrain, appropriate validation criteria, and other information pertinent to requirements. This project requires the following H/W and S/W equipment in order to execute them. They are as given below.

HARDWARE CONFIGURATION Processor Clock Ram Web Cam Head Set & Codec SOFTWARE CONFIGURATION : : : : : Pentium III 500 MHZ 128 MB JMF Supported Windows Supported

Operating System Language Addditional Packages

: Windows 98 : JAVA above V 1.4.0 or higher : JMF (Java Media FrameWork 2.1 )

System Analysis And Design

System Analysis Introduction: To analysis and understand the system we have to analyze and specify the requirements first. Software requirement specification is the starting point of software development activity. The software requirements specification means of translating the ideas in the minds of the clients (input), into the formal document (output). Any formal translating processes producing a formal output must have a precise and unambiguous input .The SRS phase consists of two basic activities. Problem analysis. Requirement specification. FACT FINDING TECHNIQUES: In this system we are going to develop a facility to a user that he will not face any difficulty at the time of usage like data missing, one way contacts, one view contacts. As we are developing this system with an encoding technique of images the user will not be bothered on which camera supportance is using, as well in sound. As we are maintaining one technique of speed controlling the frame relay will not be a problem for the user like over speed display, hanged display. FEASIBILITY STUDY: A feasibility study is a high-level capsule version of the entire System Analysis and Design Process. The study begins by classifying the problem definition. Feasibility is to determine if its worth doing. Once an acceptance problem definition has been generated, the analyst develops a logical model of the system. A search for alternatives is analyzed carefully. There are 3 parts in feasibility study.

Operational Feasibility: Question that going to be asked are Will the system be used if it developed and implemented. If there was sufficient support for the project from the management and from the users. Have the users been involved in planning and development of the Project. Will the system produce poorer result in any respect or area.

This system can be implemented in the organization because there is adequate support from management and users. Being developed in Java so that the necessary operations are carried out automatically. Technical feasibility Does the necessary technology exist to do what is been suggested Does the proposed equipment have the technical capacity for using the new system Are there technical guarantees of accuracy, reliability and data security

The project is developed on Pentium III with 128 MB RAM. The environment required in the development of system is any windows platform The observer pattern along with factory pattern will update the results eventually The language used in the development is JAVA 1.4.0 & Windows Flavour of JMF 2

FInancial and Economical Feasibility


The system developed and installed will be good benefit to the organization. The system will be developed and operated in the existing hardware and software infrastructure. So there is no need of additional hardware and software for the system.

EXISTING SYSTEM
System definition is the process of obtaining a clear understanding of the problem space such as your business opportunities; user needs, or market environment and defining an application or system to solve that problem. Existing system definition: In the existing systems of video conferencing developed using Java, there is a problem of capturing images and audio as well. Because for capturing of these values the system needs to query the devices that are associated with the devices. As java does not support any system level programming we had to depend either on JNI ( java native interface) or depend on any of the third party utility that was developed and captures the video and stores that into a file. And these videos were being transferred and were displayed in the opposite side. This reduces the interaction of the programmer to develop the conferencing system. As like the audio. This paradigm often makes this problem of waiting the conference systems for the resources, and unnecessary maintains of queues to the conference connection etc. this may often causes the system hangs or so called dead locks. And if the receiving system is not at that much speed of display the video at that much speed that it can receive from the network. There they may be a possibility of data loss and often a dead lock at the receiver to over come all these problems we for a new video conferencing system. One more problem was there that would be raised depending on the camera or device compatibilities and video patterns as well. In the existing system, all the transaction like 1.user friendly.

2. Completely not improved quality conferencing system. 3. Data was being transferred as files 4.Capable of running in single or multi-user environment.

NEED FOR COMPUTERIZATION:


It can be used in LAN, MAN, WAN & enterprise networks like internet, so for maintain conferencing among more than one conferency without depending on the network speeds, frame display rate and so on. The conferencies can feel that they are face to face.

Proposed System:
In our system we are going to develop a conferencing system that depends on the JMFs libraries to capture the images as well the sound so that we are not bothered by the system level programs or any JNI (java native interface) to query the camera and sound codecs, so that we are not going to use any fixed file formats to send the data and as we are not depending on the file formats we are not going to use any third party utility to capture audio as well video, thus our system has given a chance to develop itself all the required libraries ( depending on visitor pattern ) . As our program is calculating the frames per second (Fps) ratio our system will automatically share this information with other conferencies so that they will maintain this system Fps& network transfer timings and send the video files calculating these timings. In our system we are going to use a JPEG encoder and a JPEG decoder to convert the images into one unique format JPEG to support all the cameras and devices.

System Design Elements of Design


In the development of this system we are going to use different designing patterns to develop our program in a more interactive design in appearance as well performance. We are using one connection manager to manage and maintain the connections from the other conferences. The interactive part that is the frame will be passed as argument to this connection manager to prevent a possibility of several occurrences of the frame object. Thus we have added the singleton pattern to our system . So we are protecting our system resources by stopping more than one occurrences of the frame. Whenever a friend of us wants to establish a connection, our system will be invoked and one instance will be opened and the connection will be established on that instance. We are going to use observer & factory patterns to maintain and update

eventually the information that is needed to the other threads who needs. Whenever we are trying to capture our video and audio the threads that are responsible for the transaction will be waiting for the information whether capturing is over or not , this information should be updated and notified to all needy. Thus we have done our observation and updation singular and as a bunch even. So we can say that we have properly used observer pattern as well the factory pattern . We are going to use JMF libraries to satisfy our requirements in means of physical device performance capturing. We are going to implement these libraries in our program but not developing them. So that we can say that we are inviting this JMF library as a visitor.

System Description
Introduction
Video Conferencing system will be a program designed to provide a multiplatform video conferencing solution on Microsoft Windows Environment. The motivation behind this project comes from the lack of platform independent solution for videoconference. Proprietary hardware and platform specific video formats require video conferencing applications to be tailored and rewritten for each computing platform. The emergence of java technology provides tools to create platform independent applications. However, it is the general belief among technologies is that java technology is not suitable for computational intensive tasks, such as encoding and decoding video or audio, which are required in a video conferencing application. The ultimate goal of this project is to explore the feasibility of creating video conferencing application using javas latest multimedia technology, java media frame work.

Description
This Video Conferencing System supports three data channels for its operations: a video channel for its video operations: an audio channel for audio operations and a background text channel for inter program communication session. A user who connects through the program to one or more will be able to share his video and audio with all the other conferencies that are presently connected to him . Users should have to connect to the other conferency by entering the IP address or the DNS name, then the system will try to search whether an instance of the program is running on that system or not. If it finds an instance running, our system will be allowed to connect provided that particular system is not already connected to MAXIMUM allowed conferences. Users, like wise will be controlled to join and start the conference with the max allowed number of the conferences at a time to protect that our system will not

disturb the system resources. If a user wants to connect to other user, the second one must not be connected at the max count.

The Design And Specification Design Philosophy


At the highest level, this project is designed to be an extension package to the Java Video Conferencing Systems. It is not part of any Groups standard conferences. In other words, end users that are interested in the Video Conference features, they should be able to conference just with those they wish, they can just connect to that one and continue his conference. At the lower level this project is organized into individual components by their functions. And each of the components has its on handler, which is called manager that handles the manipulation and reproduction of each type of data. There are two types of manager in Video Conferencing Systems. The first type is a Connection manger. For example, there are two data components that are visible to the users. They are the video component, the audio component. Each of these components will be connected to connection manager takes care of the connections, its data type specific operation and its communication with the graphical use interface. The motivation behind this type of code organization is that it will be easier for potential developers to add new features in the future by simply create a new handler for the new component . The second type of manager in Video Conferencing Systems is a Sound Manger . That maintains all the sound data information, like input of the sound from the mike and the network socket, output of the sound to the speaker and the network socket as well. At the lowest level, the connection manager will maintain the data transfer, information passing to notify what are the operations to be done by the other side system should have to do for this system.

Architecture
Video Conferencing Systems is designed using a layered architecture. There are three major layers: graphical user interface (GUI layer), control layer (includes both the persistent and volatile control layers) and data layer.

In this project there are six major components in the application, two of which are visible to the end users. The four visible components are GUI component in the GUI layer, and the video component, the audio component and. The other four components that are not transparent to the end users are the communication between the hosts with regarding the sound, video, the communication and the data binding and packing.

The Implementation
The control layer
The control layer consists of two sub-layers: the persistent control layer and the volatile control layer. In the persistent control layer, there will be one Connection Manager and Sound Manager at a time and the channel manager does not exit until the application itself exits. This layer is used to coordinate and exchange information between the groups. In the volatile control layer, there will be one Connection Manager, these components in this layer will not be available for all the time they will be invoked at the Managers and whenever one will be utilized when ever its needed.

The persistent control layer


All the GUI, Sound and Video grabbers, Encoders, decoders and the compressors will be in the persistent control layer. These all classes will be invoked whenever the program is first invoked and remains standard for all the lifetime of the system, but some information maintained in these will be changed.

Connection Manger
The persistence layers modules like:

1) Sound Manager 2) Camera Control 3) JPEGEInputStream 4) JPEGEOutputStream 5) The main frame 6) Video label 7) Message panel Are invoked and the objects are initialized by attempting this class.

The volatile control layer


All the backbone support for the Video Conference will be provided at this layer. Here all the sockets, threads, and links will take a part in this layer.

Connection Manger
This class was designed to manage host connections and communication between respective hosts. The maximum number of host connections is 3 by default. When the first connection is attempted, three Server Sockets are created and start listening. If the connection attempt is successful, an Audio Socket, an Input Socket, and an Output Socket are created for data transfers for this one host. Three threads are started for this host as well: one for sending images, one for receiving images, and one for receiving audio. All the above are of volatile layer

Interface Listing
Audio Input Thread : This is a thread class for receiving audio data from one host. This classs Construction requires a link back to the object that's spawning us and an id number that is associated with one particular host. The run ( ) method in this class executes its content as long as other threads associated with this host are concurrently executing. The thread is usually blocking waiting for audio to be sent to it, and is run on low priority at that time. When audio is received, it is buffered until all of it is received, and then it is rendered. And finish ( ) method terminates this thread within a reasonable amount of time.

Audio Socket :-

This class encapsulates a standard tcp socket along with an InputStream and an OutputStream for the purpose of sending and receiving raw audio bytes. I hope to eventually filter the data streams with GZIP-type stream filters.

CalcFps :This class keeps track of the exact time at which it's updateFps() method is called. It assumes those method calls are made from within the paintComponent(Graphics g) methods in the Panel classes. Based on the times given, it calculates and then sends to the GUI the number of frames per second that are rendered.

CalcFpsListener : This interface is to be implemented by any class wishing to receive automatic updates of new calculated frames per second values from a CalcFps object.

Make sure to add a reference to an instance of this object to the CalcFps object using the add Listener method.

Camera Control: This class connects to a web cam using the com.objectguild.camera package. This class acts as an Observer for our Video Grabber, which is Observable. We start a thread for the Video Grabber, which constantly updates the camera. Each time the camera has new information; our update (Observable o, Object arg) is called, giving us the most current data.

ComSocket : This class is used for communication between two hosts. Communication is necessary only when hosts are transmitting audio data. When one host is ready to transmit, it tells the receiving host how many audio "buffers" to read over a separate socket class. I could not find a way to combine the socket in this class with the socket in the Audio Socket class: having multiple streams going in the same direction from one socket always fubared the data, even with synchronization.

Connection Manager : This class was designed to manage host connections and communication between respective hosts. The maximum number of host connections is 3. When the first connection is attempted, three Server Sockets are created and start listening. If the connection attempt is successful, an Audio Socket, an Input Socket, and an Output Socket are created for data transfers for this one host. Three threads are started for this host as well: one for sending images, one for receiving images, and one for receiving

GUI: This class is the main frame in the user interface for this application. It contains MAX_HOSTS Video Labels and a button for sending sound to all hosts.

Host Finder : This thread extension is designed to periodically announce it's presence on the local subnet via a multicast socket. The multicast socket in question is a member of our standardized group and when it receives packets bearing the signature of our protocol, we check to see if that host the host that sent that packet is

connected to us. If it isn't, we connect to it. If we are already connected to the host, we ignore the packet. We can also choose to ignore certain ip addresses. This can be useful for recently disconnected hosts whose packets may still be floating about.

ImageInputThread : This thread is used to repeatedly read images from one host across a socket. Terminates execution of this thread within a reasonable amount of time.

Input Socket : The class encapsulates a Socket and it's associated InputStream. The class is used solely to read images from a

IOThread_CommLink : This class is a simple monitor based Thread locking object.

JPEGEInputStream : A wrapper of input stream that decodes the image that came in the network.

JPEGEOutputStream : A wrapper of output stream that encodes the image that is to be delivered to the network.

Message Panel : Implements java.awt.event.KeyListener

NoTopLineBorder : Completely hacked from class javax.swing.border.LineBorder. The border is exactly the same as that in LineBorder, except that no top line is drawn on the rectangle.

Output Socket : The class encapsulates a Socket and it's associated OutputStream. The class is used solely to send images to one host.

Output Thread : This thread is used to repeatedly send images to one host across a socket.

Sound Manager : Class for managing capturing/rendering audio data in byte form. When this object is created, the Data Lines necessary for audio playback and capture are opened. The caller may record or play sound immediately. The StartRecording ( ) method returns the int array id represents any id number who should receive the recorded sound. A separate thread is started for this process so that the caller receives control back before we are done recording. The thread is terminated when the stopRecording ( ) method is called or when 15 seconds pass. Only one record thread may be running at once. The StopRecording ( ) method terminates any recording thread that is activated. The PlayData ( ) method contains the parameter frames, which is a list of byte arrays, which contain sound data. The id parameter represents which host sent this data.

The GetFormat ( ) Returns the AudioFormat object that sound associated with our system uses.

Video Label : This graphical component contains a JLabel to display images upon, and several other JLabels that label JButtons. Each VideoLabel is associated with a host id number. The SetImage ( ) method Sets the Image on this label to be image. The SetConnected ( ) method makes this panel aware that it is in a connected state. The SetDisconnected ( ) method makes this panel aware that it is in a disconnected state.

The SetFps ( ) method Sets the frames per second value for frames received from this host, to display. The SetIp ( ) method Sets the host's ip address to display The FlashOn ( ) method Sets our border red. The FlashOff ( ) method Sets our border black.

CONCLUSION: After completetion of this project we are satisfied that we have completed all the requirement of our system and the problems that are in the existing systems. And as we have used designing patterns we has reduced the system problems like hanging and late messaging. O that we suggest you to go thru the project and enjoy it

Bibliography
S No. PUBLICATION 1. 1994 REFERENCE JAVA 2 HERBERT SCHILDT HILL THE COMPLETE TITLE EDITION PATRICK NAUGHTON TATA McGraw AUTHOR

2.

JAVA 1998

JAWORSICK CERTIFICATION

TECH.MEDIA Publication 3. 1998

COMPLETE JAVA 2

ROBERT HELLERS ERNEST

DPB

PUBLICATIONS

Das könnte Ihnen auch gefallen