Download VIDEO CONFRENCING DOCUMENT

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

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

Document related concepts
no text concepts found
Transcript
INTRODUCTION
ORGANIZATION PROFILE
CONTENTS
S.NO
CHAPTER
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
PAGE NO
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 java’s 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 programmer’s 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++. Java’s 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, Java’s 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
that’s has been generated by the compiler will not corrupt the machine that it’s
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
.Java
Java
Javac
byte
Java
VM
code
.Class
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 Compiler
Source
Java
Java
Interpreter
(PC)
Byte code
Code
………..
………..
………..
Macintosh
Compiler
Java
Interpreter
(Macintosh)
………
…
Java
Interpreter
SPARC
Compiler
(Sparc)
(Platform
Independent)
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
the Java
Web Server includes service_root/classes/ which is where the system classes
reside.
From the <SERVICE_ROOT /Servlets/ directory> This is *not* in the server’s
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.
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 browser’s 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 Browser’s 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
<A>……….</A>
Creates hypertext links
<B>……….</B>
Formats text as bold
<BIG>……….</BIG>
Formats text in large font.
<BODY>…</BODY>
Contains all tags and text in the HTML document
<CENTER>...</CENTER> Creates text
<DD>…</DD>
<DL>...</DL>
<FONT>…</FONT>
<FORM>...</FORM>
<FRAME>...</FRAME>
<H#>…</H#>
<HEAD>...</HEAD>
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
<HR>...</HR>
Creates a horizontal rule
<HTML>…</HTML>
Contains all other HTML tags
<META>...</META>
<SCRIPT>…</SCRIPT>
Provides meta-information about a document
Contains client-side or server-side script
<TABLE>…</TABLE>
Creates a table
<TD>…</TD>
Indicates table data in a table
<TR>…</TR>
Designates a table row
<TH>…</TH>
Creates a heading in a table
ADVANTAGES
 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
JDBC
Client machine
DBMS-proprietary protocol
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
Client machine (GUI)
or
HTML
browser
HTTP, RMI, or CORBA calls
Application
Server machine (business logic)
Server (Java)
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.
Database
users
do
not
suffer
from
slow
processing
performance.
 Security
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 other’s 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
client’s 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
:
Pentium III
Clock
:
500 MHZ
Ram
:
128 MB
Web Cam
:
JMF Supported
Head Set & Codec
:
Windows Supported
SOFTWARE CONFIGURATION
Operating System
: Windows 98
Language
: JAVA above V 1.4.0 or higher
Addditional Packages
: 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 it’s 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 JMF’s 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 java’s 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 it’s 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 layer’s 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 class’s
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.
TITLE
PUBLICATION
EDITION
1.
AUTHOR
THE COMPLETE
PATRICK NAUGHTON
REFERENCE JAVA 2
HERBERT SCHILDT
TATA McGraw
1994
2.
JAVA
TECH.MEDIA
HILL
JAWORSICK
1998
CERTIFICATION
Publication
3.
COMPLETE JAVA 2
ROBERT HELLERS
1998
ERNEST
PUBLICATIONS
DPB