If there are images in this attachment, they will not be
displayed
AProject ReportOnHTTP SERVERSubmitted toRAJIV GANDHI PROUDYOGIKI
VISHWAVIDYALAYABHOPAL (M.P.)In the partial fulfillment of the
requirement for the award of the degree ofBachelor of
EngineeringInComputer Science & Engineering
2008-2009Under the Guidance ofProf. Manish DixitDepartment Of
Computer Science & Engineering and IT,
M.I.T.S. Gwalior (M.P.)Submitted byDivya BansalKanchi
BilthareNeha PurohitParul Rusia Richa Sharma
MADHAV INSTITUTE OF TECHNOLOGY & SCIENCE GWALIOR-5 (M.P.)
Department of Computer Science & Engineering and IT
2008-2009
CERTIFICATE This is to certify that this project entitled HTTP
SERVER Which is submitted by Divya Bansal, Kanchi Bilthare, Neha
Purohit ,Parul Rusia & Richa Sharma in partial fulfillment for
the award of the degree of Bachelor Of Engineering (Computer
Science & Engineering), 2008-2009, of Madhav Institute Of
Technology & Science, Gwalior is record students own work
carried by them under my guidance and supervision.To the best of my
knowledge , the matter presented in this project has not been
submitted for the award of any other diploma or degree
certificate.
Under the Supervision of:
Prof. Manish Dixit
Prof. R.K.Gupta
Project Guide
Head, Deptt. Of CSE & IT M.I.T.S. Gwalior-5 M.I.T.S.
Gwalior-5 Prof. Y.P. Singh DIRECTOR (O) M.I.T.S. Gwalior-5
ACKNOWLEDGEMENTIt is with great pleasure that we present this
report HTTP SERVER. We gratefully acknowledge our profound
indebtedness toward our esteemed teacher Prof. Manish Dixit
(Project Guide) , Department Of Computer Science & Engineering
and IT, M.I.T.S. Gwalior for his valuable guidance, excellent
supervision and constant encouragement during the entire course of
work. We shall be failing in our duty , if we do not express our
heart felt gratitude to Prof. R.K.Gupta (Professor & Head)
Department Of Computer Science & Engineering and IT, M.I.T.S.
Gwalior for her continual interest in the project.
We acknowledge with gratitude the benediction of our institution
and Director, M.I.T.S. Gwalior who extended all facilities and
co-operation in the completion of this project.
We also express sincere gratitude Shri Deepak Soni and Shri
Shankar Bannerjee for providing us the facilities which are at
their disposal in the department computer laboratories. Last, but
not the least, we owe our gratitude to our family and friends
without whose co-operation and constant encouragement this work
would not have been successful.
We also acknowledge express sincere gratitude to the librarian,
M.I.T.S. Gwalior for providing helpful study material.
CONTENTS
TABLE OF CONTENTS1.INTRODUCTION
1.1 Goals and Purpose.1.2 Need of the application.1.3 Scope of
the project..1.4 Platform Specifications Deployment2. SYSTEM
REQUIRMENT 2.1 Information Gathering.2.2 System Feasibility2.2.1
Economic Feasibility2.2.2 Technical Feasibility.2.2.3 Behavioral
Feasibility..3. SYSTEM ANALYSIS3.1 E-R Diagram3.2 Data Flow
diagram.3.2.1 Zeroth level DFD.
3.2.2 First level DFD
3.3 User Summary..3.3.1 Application Context.3.3.2 Class
diagram..4. DESIGN4.1 Dataflow Diagram4.2 Procedural/Modular
Approach4.2.1 User Module.
4.2.2 Administrator Module.4.2.3 Download file Module
4.2.4 Upload file Module.4.2.5 Encryption Module.4.2.6
Decryption Module..
4.2..7 Audio Capturing Module..4.2.8 Video Conferencing
Module.
4.2.9 Desktop Capturing Module
4.2.10 Chat Module. 5. IMPLEMENTATION
5.1 Work Partition.5.2 Description of our project..5.3 Technical
Discussions5.3.1 Front End..5.3.2 Back End. ..6. TESTING6.1 Unit
Testing..6.2 Validation Testing6.3 White Box Testing6.4 Other
testing Methods.7. TECHNOLOGIES USED7.1 Java
platform.......................................................................................................................................7.2
JMF.......................................................................................................................................7.3
MS
Access.......................................................................................................................................7.4
JMF.......................................................................................................................................7.5
RMI.......................................................................................................................................8.
SOFTWARE ENGINEERING PARADIGM..
9. RESULT AND CHALLENGES.10. CONCLUSION.11.
BIBLIOGRAPHY..PREFACEIn todays world, the ever increasing use of
computers in business and other aspects has raised a concern over
the use of internet. The private data of any website is critical to
be hidden from the unauthorized usage. An access to data over whole
network openly cannot be considered reliable.
Our project is motivated by the increasing concern over the
access of various websites. HTTP SERVER is a Platform to
authenticate the various clients for data sharing and transferring.
Main ponder is given on fulfilling the requests of clients and
keeping them secure. In our project we have developed a concept for
transferring, sharing, downloading/uploading of data or files and
also for audio and video conferencing and capturing over the
network .
Project will be based upon the technology which is platform
independent and reliable. Here the need for all this which also
include security is Java 2 Platform. Only the name is enough. We
will be using many features of it starting from Java Applets, JDBC,
RMI etc.
This project is a complete implementation of a client-server
model. In this we have performed the communication between the
client and the server with the help of Java RMI.
In this project the client can get text, image, audio or video
files encrypted through the server. The files can be decrypted and
viewed by the client any time he desires with the help of the
server. The client can use the security services only once he gets
registered at the server after submitting a registration request.
The server administrator has the complete authority to accept,
reject or keep the request of client pending.
INTRODUCTION
1.INTRODUCTION
An HTTP Server is responsible for accepting HTTP requests from
clients (user agents such as web browsers), and serving them HTTP
responses along with optional data contents, which usually are web
pages such as HTML documents and linked objects (images, etc.).
every web server program operates by accepting HTTP requests
from the client, and providing an HTTP response to the client. The
HTTP response usually consists of an HTML or XHTML document, but
can also be a raw file, an image, or some other type of document
(defined by MIME-types). If some error is found in client request
or while trying to serve it, a web server has to send an error
response which may include some custom HTML or text messages to
better explain the problem to end users.
The HTTP Server provides a client server model in which a client
requests to server for any service and server responses either by
providing the service requested by the client or an error message
why the request can not b fulfill.
This will allow the authenticated users to share, download,
upload data files (audio/video/text) over the web. The server can
capture the desktop of its clients and vice-versa, to access all
the facilities provided by the HTTP server a client has to register
itself.1.1 GOALS AND PURPOSEThe basic entities of a web server are
client and server which describes the relationship between two
computer programs in which one program, the client program, makes a
service request to another, the server program and server
responses.
The client-server software architecture model distinguishes
client systems from server systems, which communicate over a
computer network. A client-server application is a distributed
system comprising both client and server software. A client
software process may initiate a communication session, while the
server waits for requests from any client.
To develop an easy to use web based interface where a
user(client) can interact, collaborate and share the data with
other users and even with the server.
Drop Down feature which would allow the user to view the various
features availed by the server over the network such as chat,
download/upload data files and desktop capturing.
The user can update his/her profile whenever he wants to change
something in his/her profile.
The designed server has been provided a high level of security.
it uses encryption-decryption technique to transfer the image or
text file over the network.
A user can view the complete list of files
(image/text/audio/video) to download from the server, he/she has to
just enter the file name to download and by clicking on SAVE button
can save the file on his/her computer.
The HTTP SERVER would also have the following key goals:
Give immediate and complete response to clients request. Provide
a service that runs the operations and interacts with the provided
database.
Provide a responsive GUI that allow users to access the
service.
Provide client login into the system and to let new clients
register.
Let client modify/update his/her its profile.
Let clients provide their information by registering
themselves.
Provide the client to logout.
Provide Screen to let clients view the various features provided
by the server on a single page named HOME PAGE.
1.2 NEED OF THE APPLICATION
There are large numbers of commercial websites offering large
number of services to meet the interests of large number of users.
This server will provide a platform to let them active on the
network.
All the data is stored on the server, which generally have far
greater security controls than most clients. Server can better
control access and resources, to guarantee that only those clients
with the appropriate permissions may access and change data.
1.3 SCOPE Of THE PROJECT
The main scope and deliverables of the project would be:
In the present world of scenario computer software has become a
driving force . It is the engine that drives various decision
making processes. It serves as the basis for modern scientific
investigation. It is embedded in systems of all kinds. Software is
virtually inescapable in a modern world as we move into 21st
century. It will become the driver for new advances in
everything.
Our project can be extended to online transactions like
e-banking , e-shopping , e-billing .Important files and documents
like files containing account number and other personal details in
banks can be encrypted and kept secure.
The project can also be implemented in a military background by
making the security even more tightly and by using more complex
encryption algorithms. Multiple encryption algorithms can be used
which are even more difficult to crack. This would help keep the
crucial national strategic information secure.1.4 PLATFORM
SPECIFICATION- DEPLOYMENT
Hardware Specification
Processor P IV
RAM 250 MB
Minimum Space Required 100 MB
Display 16 bit color
Software SpecificationOperating Environment Windows
2000/XP/Vista
Platform J2DSK 6.0
Database MS Access 2003
SYSTEM REQUIRMENT2. SYSTEM REQUIRMENT
2.1 INFORMATION GATHERINGAs the goal of the application is ease
of use and to provide an interactive interface, extensive research
has been done to gain an insight into the needs and behaviors of
various users. The working of the application is made convenient
and easy to use for the end user.
The HTTP Server Project is a collaborative software development
effort aimed at creating a robust, commercial-grade, feature full
and freely-available source code implementation of an HTTP (Web)
server. The project use Internet and the Web to communicate, plan,
and develop the server and its related documentation. In addition,
people have contributed ideas, code, and documentation to the
project. This file is intended to briefly describe the HTTP
Server.It is based on the client server model. The client have to
register first and then can make use of various features like
chatting, upload download, update, delete, view profile, audio
/video conferencing, and security by encryption/ decryption of
image and test files. Only the server has such kind of
authority.
The users should be able to view the profile and can upload and
download files. They should be able to print out the files like
text, image, audio.
To increase the ease of use the user can be added or get
registered and then login into his/her account
Client
The client can register, and then login into his/her account.
View update and delete his profile. Upload and download files
(audio, video, text, and image), interactivity is provided by
audio/video conferencing, desktop capturing and chatting, and is
secured by encryption and decryption of files
Server
The sever executes the client request and provide various
features to be used by the client. It can add/remove/modify
information, client accounts. Interactivity is provided by audio
video conferencing and chatting, and is secured by encryption and
decryption of files.After registering the user can login into
his/her account and can access various features like chatting,
download, upload, audio, video conferencing( through webcam). A
user should be able to edit the contents of a profile. They should
be able to update profile and delete hi/her account by clicking on
corresponding button
Interactivity is provided by desktop capturing i.e. the server
can capture the desktop of user, audio/video conferencing in 2
machines and chatting.
Security is being provided by encryption and decryption of files
like image and text files. the image can be encrypted and saved on
the client machine and sent. In similar way it can be decrypted and
saved by the other user.
The application can be made interactive by pop up messages when
a action is performed.
Also users are impatient making it important to load pages
soon.
Other than this, I did a lot of research on various other
methods of building this
application which and was able to incorporate a few stronger
features into the application.
The tools and controls used in the application are recommended
java controls which improve the navigation and usability and
interactivity
2.2 SYSTEM FEASIBILITYThe system feasibility can be divided into
the following sections:
2.2.1 ECONOMIC FEASIBILITYThe project is economically feasible
as the only cost involved is having a
computer with the minimum requirements mentioned earlier. For
the users to access the
application, the only cost involved will be in getting access to
the Internet.
2.2.2 TECHNICAL FEASIBILITYTo deploy the application, the only
technical aspects needed are mentioned below:
Operating Environment Win 2000/XP
Platform java 6.0
Database Microsoft Access
For Users:
Internet Browser
Internet ConnectionHardware Requirements
In order to install .NET framework SDK following hardware is
required:
- Computer/Processor : Intel Pentium class, 133 megahertz (MHz)
or higher
- Minimum RAM Requirements : 128 megabytes (MB) (256 MB or
higher
recommended)
- Hard Disk :
- Hard disk space required to install: 600 MB
- Hard disk space required: 370 MB
- Display : Video: 800x600, 256 colors
- Input Device : Microsoft mouse or compatible pointing
device
Software Requirements
- Microsoft Internet Explorer 5.01 or later is required
- Microsoft Data Access Components 2.6 is also required
(Microsoft Data
Access Components 2.7 is recommended)
- Operating System :
- Microsoft Windows 2000, with the latest Windows service pack
and
critical updates available from the Microsoft Security Web
page
- Microsoft Windows XP (Microsoft Windows XP Professional if
you
want to run ASP.NET)
- Microsoft Windows NT 4.0
Note: If you want to simply run .NET applications then you can
also run them on
Microsoft Windows XP Home edition, Windows Millennium Edition
(Windows
ME) and Windows 98.
Here are some URLs that you will find handy in making your
system up-to-date
for above software requirements.
2.2.3 BEHAVIORAL FEASIBILITYThe application requires no special
technical guidance and all the views available
in the application are self explanatory. The users are well
guided with warning and failure
messages for all the actions taken.
SYSTEM ANALYSIS
3. SYSTEM ANALYSIS
After carefully analyzing the requirements and functionality of
the web
application, I had two important diagrams by the end of the
analysis phase. They are the
ER diagram and data flow diagram which were the basis for
finding out entities and
relationships between them, the flow of information
3.1 E-R DIAGRAM
3.2 DATA FLOW DIAGRAMS:
3.2.1 O LEVEL DATAFLOW DIAGRAM
3.2.2 ONE LEVEL DATAFLOW DIAGRAM User_id
User_id File id
User_id
3.3 USER SUMMARY
USER PROFILE:
The client have to register first and then can make use of
various features like chatting ,upload download ,update ,delete
,view profile , audio video conferencing, security by encryption
decryption of image and test files. Only the server have such kind
of authority .
Client
The primary user of the system. The client can register, then
login into his/her account. view update and delete his profile.
upload and download files(audio ,video ,text, image),interactivity
is provided by audio video conferencing, desktop capturing and
chatting, and is secured by encryption and decryption of files.
Sever
.The sever executes the client request and provide various
features to be used by the client. It can add/remove/modify
merchandise information, client accounts. Interactivity is provided
by audio video conferencing, desktop capturing and chatting, and is
secured by encryption and decryption of files.
Functionality
3.3.1 APPLICATION CONTEXT3.3.2 CLASS DIAGRAM
Design
4. Design4.1 DATAFLOW DIAGRAM
The design of the web application involves the design of the
forms Download, Upload file, Encryption , Decryption, Audio/ Video
Conferencing, desktop Capturing, Chat. Design of an interactive
application that enables the user transfer the files bye using
various features. User_id
File id
User_id
4.2 PROCEDURAL MODULAR APPROACH4.2.1USER MODULE
User Registration
To register the user for using the security services. The user
sends a request to the server giving his details and in turn
receives an application ID from the server.
User Login
Before using the services the user needs to enter the user ID
and password which are verified by the server.
Password Change
The user can change his password.
Update Profile
The user can update his profile.
4.2.2 ADMINISTRATOR MODULEStart Server
Administrator starts the RMI server.
Register Client
The client gets registered in RMI server.
Show Requests
The requests of all the clients wishing to get registered are
shown one by one. The administrator can accept, reject or keep the
request pending.
User List
List of all the users is shown and administrator can view the
details of any particular user at a time. The administrator can
also delete any user account.
4.2.3 DOWNLOAD MODULE
The client can download any file available on the web.
4.2.4 UPLOAD MODULE
The client can upload any file on the web.
4.2.5 ENCRYPTION MODULEText File Encryption
Any text file can be encrypted by the client by invoking a
remote method on the server.
Text File EncryptionImage File Encryption
An image file can be encrypted by the client by invoking a
remote method on the server.
Image File Encryption
4.2.6 DECRYPTION MODULEText File Decryption
Any encrypted text file can be decrypted by the client by
invoking a remote method on the server.
Text File Decryption
Image File Decryption
An encrypted image file can be decrypted by the client by
invoking a remote method on the server.
Get Image
Image File Decryption
4.2.7 AUDIO CAPTURING MODULEThe client can record his voice
using this module.
Audio Capturing4.2.8 VEIDEO CAPTURING MODULEThe client can
capture his image using this module via webcam.
Video Capturing4.2.9 DESKTOP CAPTURING MODULEThe client can view
the remote desktop by invoking a remote method on the server.
4.2.9 CHAT MODULEThe client can send instant message to server
and vice-versa.
IMPLEMENTATION
5. IMPLEMENTATION
5.1 WORK PARTITIONSr.No.EVENTInputs/Outputs
1.Sign UpUser Details(IN)
Confirm Registration(OUT)
2.LoginUser ID(IN)
User Password(IN)
In case of forget Password
(OUT)
Login Successful(OUT)
3.Update Account_DetailsNew information(IN)
Updated_Account info(OUT)
4.View Account_DetailsAccount Information(OUT)
5.Change PasswordCurrent Password(IN)
OR
Security Questions Ans(IN)
Password Changed(OUT)
6.LogoutLogout(IN)
Logout_Confirmed(OUT)
7.DownloadFilename(IN)
Required File(OUT)
If user wants to save this file then
newFilename(IN)
File Saved on the specified
location(OUT)
Sr.No.EventInputs/Outputs
8.UploadFilename(IN)
File Uploaded on Server(OUT)
9.EncryptionText or image file to be encrypted
(IN)
Encrypted File(OUT)
10.DecryptionText or image file to be decrypted
(IN)
Decrypted File(OUT)
11.Desktop CapturingPress Capture(IN)
Screen Captured(OUT)
12.Audio/Video ConferencingAudio or video from client(IN)
Captured on server/client(OUT)
13.chatmessage from one client(IN)
Send to other client(OUT)
14.Delete AccountAccount Deleted(OUT)
5.2 DESCRIPTION OF PROJECT1 .LOGIN
This is the front page of our project which is used for the
login of the user .Registered
User can login to home page by providing userid and password to
use the functions of the server. New Users can register themselves
through the New User option provided here. Also in case if the user
forgets his password he can get it after answering the security
question correctly.
2. REGISTRATION FORM
This is the registration page provided for the new user to
register himself .This page contains some fields containing
personal information to be filled up by the user.Here user can
create a user id and password of his own choice and can also select
his security question and answer which can be used in case if he
forgets his user id or password and is unable to login .
3. HOME PAGE
This is the home page which has a title menu bar having options
in its menu related to the given services provided by the server to
the user. On selecting an option one gets linked to the respective
page providing the required service to the user.
4.CHANGE PASSWORD
This page provides a service to the user to change his password.
The password can be changed by either providing the old password or
by answering the security questions which was selected by the user
while registering himself .
5 .DOWNLOAD
This page provides the user with file download service from
server. Where user can enter file name and on clicking the download
button the file gets downloaded and one can also save the file by
using the save button and can also cancel the file download by
using cancel button.
6. UPLOAD
This page provides the file upload facility to the user. The
user can enter a file name and on clicking the upload button the
file will be uploaded on the server side.
7. TEXT ENCRYPTION
This page provides the options to the user to get a text file in
encrypted form. The user can select the file by browsing the text
files available. And on clicking encrypt the file gets encrypted
and the encrypted data is displayed in the text box provided in
front of encrypted data label. This encrypted file can also be
saved by using the save button.
8 .DECRYPTION
This page provides the option to get the decrypted form of file
that is the encrypted file can be obtained in the original or
actual form. One can select the required file by browsing the files
from the available files from the system and on clicking decrypt
the decrypted file is obtained and the data is displayed in the
text box with label decrypted data.
9. FORGET PASSWORD
This page provides the user with an option to get his password
in case he forgets his password .This can be done by providing the
user id and answering the security question that was filled by the
user while filling the registering form to register himself on
server.
10 .IMAGE ENCRYPTION
This page provides the user with options to encrypt an image
file. User can enter a file
name which he wants to encrypt. He can also select a text that
can be used as
watermark on the encrypted image and can also change the color
of the text used in
watermark. When user clicks on the encrypt button the encrypted
form of the actual
image appears in a text box. This is different in appearance
from the actual image.
11. UPDATE PROFILE
User can update his account information like first name, last
name-drop ,location and secondary email using this page. After
making the changes in his account details and on clicking the
update button information gets updated.
12. VIDEO CAPTURING
This page is used to capture the still images or video from both
the side i.e client and server .On clicking the start capture
button the video capturing will get started.
I
13. VIEW PROFILE
This Form enables the user to view his/her all account
details
14. AUDIO CAPTURING
This form provides the functionality to capture the audio /
voice to the user with the help of recording button provided, one
can record/ save the audio and later on can listen this voice, with
the help of the provided options like pause, play, stop.
5.3 TECHNICAL DISCUSSIONIt is based on the client server model.
The client have to register first and then can make use of various
features like chatting, upload download, update, delete, view
profile, audio video conferencing, and security by encryption
decryption of image and test files. Only the server has such kind
of authority.
The users should be able to view the complete specification of
the product and
various images and can upload and download them. They should be
able to print out the files like text, image, audio, and video.
To increase the ease of use the user can be added or get
registered and then login into his/her account
ClientThe client can register, then login into his/her account.
view update and delete his profile. upload and download files(audio
,video ,text, image),interactivity is provided by audio/video
conferencing, desktop capturing and chatting, and is secured by
encryption and decryption of files
ServerThe sever executes the client request and provide various
features to be used by the client. It can add/remove/modify
merchandise information, client accounts. Interactivity is provided
by audio video conferencing and chatting, and is secured by
encryption and decryption of files.By registering and the can login
into his/her account and can access various features like chatting,
download, upload, audio, video conferencing( through webcam). A
user should
able to edit the contents of a profile. They should be able to
update profile and delete hi/her account by clicking on
corresponding button
Interactivity is provided by desktop capturing i.e. the server
can capture the desktop of user, audio/video conferencing in 2
machines and chatting.
Security is being provided by encryption and decryption of files
like image and text files. the image can be encrypted and saved on
the client machine and sent. In similar way it can be decrypted and
saved by the other user.
The application can be made interactive by pop up messages when
a action is performed.
Also users are impatient making it important to load pages
soon.
Other than this, I did a lot of research on various other
methods of building this
application which and was able to incorporate a few stronger
features into the application.
The tools and controls used in the application are recommended
java controls which improve the navigation and usability and
interactivity
This would improve the reliability of the application.5.3.1
FRONT END
JAVA 6.0
Java is a programming language originally developed by James
Gosling at Sun Microsystems and released in 1995 as a core
component of Sun Microsystems' Java platform. The language derives
much of its syntax from C and C++ but has a simpler object model
and fewer low-level facilities. Java applications are typically
compiled to byte code that can run on any Java virtual machine
(JVM) regardless of computer architecture.
The original and reference implementation Java compilers,
virtual machines, and class libraries were developed by Sun from
1995. As of May 2007, in compliance with the specifications of the
Java Community Process, Sun made available most of their Java
technologies as free software under the GNU General Public License.
Others have also developed alternative implementations of these Sun
technologies, such as the GNU Compiler for Java and GNU
Classpath.
PRIMARY GOALSThere were five primary goals in the creation of
the Java language:
It should be "simple, object oriented, and familiar".
It should be "robust and secure".
It should be "architecture neutral and portable".
It should execute with "high performance".
It should be "interpreted, threaded, and dynamic".
JAVA PLATFORMOne characteristic of Java is portability, which
means that computer programs written in the Java language must run
similarly on any supported hardware/operating-system platform. One
should be able to write a program once, compile it once, and run it
anywhere.
This is achieved by compiling the Java language code, not to
machine code but to Java byte code instructions analogous to
machine code but intended to be interpreted by a virtual machine
(VM) written specifically for the host hardware. End-users commonly
use a Java Runtime Environment (JRE) installed on their own machine
for standalone Java applications, or in a Web browser for Java
applets.
Standardized libraries provide a generic way to access host
specific features such as graphics, threading and networking. In
some JVM versions, bytecode can be compiled to native code, either
before or during program execution, resulting in faster
execution.
JAVA DATABASE CONNECTIVITY (JDBC)It has been estimated that half
of all software development involves client/server operations. A
great promise of Java has been the ability to build
platform-independent client/server database applications. In Java
1.2 this has come to fruition with Java DataBase Connectivity
(JDBC).
There is a standard database language, Structured Query Language
(SQL-92). JDBC is designed to be platform-independent, so doesnt
need to worry about the database while programming.
JDBC, like many of the APIs in Java, calls to the logical
operations when gathering data from a database: connect to the
database, create a statement and execute the query, and look at the
result set.
To allow this platform independence, JDBC provides a driver
manager that dynamically maintains all the driver objects that were
database queries will need.
The driver objects register themselves with the driver manager
at the time of loading, and we can force the loading using
Class.forName( ).
To open a database, we must create a database URL that
specifies:
That were using JDBC with jdbc
The sub protocol: the name of the driver or the name of a
database connectivity mechanism. Since the design of JDBC was
inspired by ODBC, the first sub protocol available is the jdbc-odbc
bridge, specified by odbc
The database identifier. This varies with the database driver
used, but it generally provides a logical name that is mapped by
the database administration software to a physical directory where
the database tables are located. For our database identifier to
have any meaning, we must register the name using our database
administration software. (The process of registration varies from
platform to platform.)
All this information is combined into one string, the database
URL. For example, to connect through the ODBC sub protocol to a
database identified as people, the database URL could be:
String dbUrl = "jdbc:odbc:news";When were ready to connect to
the database, we call the static method
DriverManager.getConnection( ), passing it the database URL, the
user name, and a password to get into the database. We get back a
Connection object that we can then use to query and manipulate the
database.
Once the connection is made with DriverManager.getConnection( ),
we can use the resulting Connection object to create a Statement
object using the createStatement( ) method. With the resulting
Statement, we can call executeQuery( ), passing in a string
containing an SQL-92 standard SQL statement.
The executeQuery( ) method returns a ResultSet object, which is
quite a bit like an iterator: the next( ) method moves the iterator
to the next record in the statement, or returns false if the end of
the result set has been reached.
Well always get a ResultSet object back from executeQuery( )
even if a query results in an empty set (that is, an exception is
not thrown). Note that we must call next( ) once before trying to
read any
record data. If the result set is empty, this first call to
next( ) will return false. For each record in the result set, we
can select the fields using (among other approaches) the field name
as a string. Also note that the capitalization of the field name is
ignored it doesnt matter with an SQL database. We determine the
type well get back by calling getInt( ), getString( ), getFloat( ),
etc. At this point, weve got our database data in Java native
format and can do whatever we want with it using ordinary Java
code.
SPECIAL CLASSES Applets
Servlet
Java server page
Swings
generics
AppletsA Java applet is an applet delivered in the form of Java
bytecode. Java applets can run in a Web browser using a Java
Virtual Machine (JVM), or in Sun's AppletViewer.Applets are used to
provide interactive features to web applications that cannot be
provided by HTML. Since Java's bytecode is platform independent,
Java applets can be executed by browsers for many platforms. Java
applets are executed in a sandbox by most web browsers, preventing
them from accessing local data.Advantages of applets
The same applet can work on "all" installed versions of Java at
the same time, rather than just the latest plug-in version only. it
runs in a sandbox, so the user does not need to trust the code, so
it can work without security approval.
it is supported by most web browsers. it can run at a comparable
(but generally slower) speed to other compiled languages such as
C++. it can be a real time application. it can move the work from
the server to the client, making a web solution more scalable with
the number of users/clients.Disadvantages of applets it can't start
up until the Java Virtual Machine is running, and this may have
significant startup time the first time it is used if it is
uncached, it must be downloaded (usually over the internet), and
this takes time if the JRE crashes it will take the browser down
with it if there is a server error, then it may not be able to
retrieve mandatory files.Servlet
Servlets are Java programming language objects that dynamically
process requests and construct responses. The Java Servlet API
allows a software developer to add dynamic content to a Web server
using the Java platform. The generated content is commonly HTML,
but may be other data such as XML. Servlets are the Java
counterpart to non-Java dynamic Web content technologies such as
PHP, CGI and ASP.NET. Servlets can maintain state across many
server transactions by using HTTP cookies, session variables or URL
rewriting.
The Servlet API, contained in the Java package hierarchy
javax.servlet, defines the expected interactions of a Web container
and a servlet. A Web container is essentially the component of a
Web server that interacts with the servlets. The Web container is
responsible for managing the lifecycle of servlets, mapping a URL
to a particular servlet and ensuring that the URL requester has the
correct access rights.
A Servlet is an object that receives a request and generates a
response based on that request. The basic servlet package defines
Java objects to represent servlet requests and responses, as well
as objects to reflect the servlet's configuration parameters and
execution environment. The package javax.servlet.http defines
HTTP-specific subclasses of the generic servlet elements, including
session management objects that track multiple requests and
responses between the Web server and a client. Servlets may be
packaged in a WAR file as a Web application.
Servlets can be generated automatically by JavaServer Pages
(JSP) compiler, or alternately by template engines such as
WebMacro. Often servlets are used in conjunction with JSPs in a
pattern called "Model 2", which is a flavor of the
model-view-controller pattern.
Java ServerPage
JavaServer Pages (JSP) is a Java technology that allows software
developers to create dynamically-generated web sites, with HTML,
XML, or other document types, in response to a Web client request.
The technology allows Java code and certain pre-defined actions to
be embedded into static content.
The JSP syntax adds additional XML-like tags, called JSP
actions, to be used to invoke built-in functionality. Additionally,
the technology allows for the creation of JSP tag libraries that
act as extensions to the standard HTML or XML tags. Tag libraries
provide a platform independent way of extending the capabilities of
a Web server.
JSPs are compiled into Java Servlets by a JSP compiler. A JSP
compiler may generate a servlet in Java code that is then compiled
by the Java compiler, or it may generate byte code for the servlet
directly. JSPs can also be interpreted on-the-fly, reducing the
time taken to reload changes.
Swings
Swing is a GUI toolkit for java. It is one part of the Java
Foundation Classes(JFC). Swings includes Graphical User
Interface(GUI) widgets such as text boxes, buttons, split-panes and
tables.
Swing widgets provide more sophisticated GUI components than the
earlier Abstract Window Toolkit. Since they are written in pure
java, they run the same on all platforms, unlike the AWT which is
tied to the underlying platforms windowing system. Swing supports
pluggable look and feel not by using the native platforms
facilities, but by roughly emulating them. This means you can get
any supported look and feel on any platform.
The disadvantage of light-weight components is possibly slower
execution. The advantage is uniform behaviour on all platforms.
Generic
Generic programming is a style of computer programming in which
algorithms are written in terms of to-be-specified-later types that
are then instantiated when needed for specific types provided as
parameters. This approach, pioneered by Ada in 1983, permits
writing common functions or types that differ only in the set of
types on which they operate when used, thus reducing duplication.
Software entities created using generic programming are known as
generics in Ada, Eiffel, Java, C#, Visual Basic .NET and Haskell;
templates in C++; and parameterized types in the influential 1994
book Design Patterns. The authors of Design Patterns note that this
technique, especially when combined with delegation, is very
powerful but that "Dynamic, highly parameterized software is harder
to understand than more static software." (Gang of Four
1995:21)
Generic programming refers to features of certain statically
typed programming languages that allow some code to effectively
circumvent the static typing requirements. For instance in C++, a
template is a routine in which some parameters are qualified by a
type variable. Since code generation in C++ depends on concrete
types, the template is specialized for each combination of argument
types that occur in practice. Generic programming is commonly used
to implement containers such as lists and hash tables and functions
such as a particular sorting algorithm for objects specified in
terms more general than a concrete type.
5.3.2 BACKENDMS ACCESS
What is Access?Microsoft Office Access, previously known as
Microsoft Access, is a relational database management system from
Microsoft that combines the relational Microsoft Jet Database
Engine with a graphical user interface and software development
tools. It is a member of the Microsoft Office suite of applications
and is included in the Professional and higher versions for Windows
and also sold separately. There is no version for MacOS or for
Microsoft Office Mobile.
Access stores data in its own format based on the Access Jet
Database Engine. It can also import or link directly to data stored
in other Access databases, Excel, SharePoint lists, text, XML,
Outlook, HTML, dBase, Paradox, Lotus 1-2-3, or any ODBC-compliant
data container including Microsoft SQL Server, Oracle, MySQL and
PostgreSQL. Software developers and data architects can use it to
develop application software and non-programmer "power users" can
use it to build simple applications. It supports some
object-oriented techniques but falls short of being a fully
object-oriented development tool.
Microsoft Access is part of the Microsoft Office suite and is
the most popular Windows desktop database application. It is
targeted for the information worker market, and is the natural
progression for managing data when the need for a relational
database arises or after reaching the limits of Microsoft
Excel.
What Can access do? Access can execute queries against a
database
Access can retrieve data from a database
Access can insert records in a database
Access can update records in a database
Access can delete records from a database
Access can create new databases
Access can create new tables in a database
Access can create stored procedures in a database
Access can create views in a database
Access can set permissions on tables, procedures, and views
ServicesMS ACCESS also includes an assortment of add-on
services. While these are not essential for the operation of the
database system, these provide value added services on top of the
core database management system.
Service BrokerThe Service Broker, which runs as a part of the
database engine, provides a reliable messaging and message queuing
platform for MS ACCESS applications. Used inside an instance, it is
used to provide an asynchronous programming environment. For cross
instance applications, Service Broker communicates over TCP/IP and
allows the different components to be synchronized together, via
exchange of messages.
Replication ServicesMS ACCESS Replication Services are used by
MS ACCESS to replicate and synchronize database objects, either in
entirety or a subset of the objects present, across replication
agents, which might be other database servers across the network,
or database caches on the client side. Replication follows a
publisher/subscriber model, i.e., the changes are sent out by one
database server ("publisher") and are received by others
("subscribers"). MS ACCESS supports three different types of
replication:
Transaction replicationEach transaction made to the publisher
database (master database) is synced out to subscribers, who update
their databases with the transaction. Transactional replication
synchronizes databases in near real time.
Merge replication
Changes made at both the publisher and subscriber databases are
tracked, and periodically the changes are synchronized
bi-directionally between the publisher and the subscribers. If the
same data has been modified differently in both the publisher and
the subscriber databases, synchronization will result in a conflict
which has to be resolved - either manually or by using pre-defined
policies.
Snapshot replication
Snapshot replication published a copy of the entire database
(the then-snapshot of the data) and replicates out to the
subscribers. Further changes to the snapshot are not tracked.
Analysis ServicesMS ACCESS Analysis Services adds OLAP and data
mining capabilities for MS ACCESS databases. The OLAP engine
supports MOLAP, ROLAP and HOLAP storage modes for data. Analysis
Services supports the XML for Analysis standard as the underlying
communication protocol. The cube data can be accessed using MDX
queries. Data mining specific functionality is exposed via the DMX
query language. Analysis Services includes various algorithms -
Decision trees, clustering algorithm, Naive Bayes algorithm, time
series analysis, sequence clustering algorithm, linear and logistic
regression analysis, and neural networks - for use in data
mining
Reporting ServicesMS ACCESS Reporting Services is a report
generation environment for data gathered from MS ACCESS databases.
It is administered via a web interface. Reporting services features
a web services interface to support the development of custom
reporting applications. Reports are created as RDL files.
.Integration ServicesMS ACCESS Integration Services is used to
integrate data from different data sources. It is used for the ETL
capabilities for MS ACCESS for data warehousing needs. Integration
Services includes GUI tools to build data extraction workflows
integration various functionality such as extracting data from
various sources, querying data, transforming data including
aggregating, duplication and merging data, and then loading the
transformed data onto other sources, or sending e-mails detailing
the status of the operation.
RDBMSRDBMS stands for Relational Database Management System.
RDBMS is the basis for ACCESS, and for all modern database
systems like MS SQL Server, IBM DB2, Oracle, MySQL, and SQL.
The data in RDBMS is stored in database objects called
tables.
A table is a collections of related data entries and it consists
of columns and rows.
Disadvantages and drawbacks:-
1. Need updating at regular intervals.
2. Websites are not vendor friendly.
3. Depends on browser settings.
4. Searching algorithm not on basis of price.
TESTING
6. TESTINGSoftware testing is a process of running with intent
of finding errors in software. It represents final review of other
phases of software like specification, design, code generation,
etc
6.1 UNIT TESTINGUnit testing emphasizes the verification effort
on the smallest unit of software design i.e.; a software component
or module. Unit testing is a dynamic method for verification, where
program is actually compiled and executed. Unit testing is
performed in parallel with the coding phase. Unit testing tests
units or modules not the whole software. We have tested each
view/module of the application individually. As the modules were
built up testing was carried out simultaneously, tracking out each
and every kind of input and checking the corresponding output until
module is working correctly. 20 The functionality of the modules
was also tested as separate units. Each of the three modules was
tested as separate units. In each module all the functionalities
were tested in isolation.In the user login module ,when a user has
tried to login into the server side by using a user id and password
to access the services provided by the server and has clicked the
submit button, it has been made sure that he is using a valid user
name and password field also matches with this user id. And in any
case if the user id and password does not get matched with the one
provided by the user, a message should be displayed informing about
the mismatching of the fields. In another case when a new user has
tried to log in and has clicked the new user button, a registration
form should get opened. When a registration form has been opened by
the user it is made sure that all the fields are filled properly,
otherwise a respective warning message should be displayed after
each field indicating that the field is not properly filled. Now if
the user has successfully logged in , a home page for that user
should get opened containing all the required services provided by
the server to the user .And on selecting a service related page or
information should get displayed and if any changes have been done
by the user in a page then the page should get refreshed or updated
automatically .It should also be checked that if the whole page
refreshes or the partial page update happens. It should also be
ensured that all the information at both the user and server site
are secured. Various method have been created for the purpose of
unit testing using java and test cases are automatically generated
for these methods. The methods are written to retrieve the
information from the database, strings that matches with the
certain search term and operation , check for the validity of user
, all the operations performed by him using the server site
services. The unit tests are automatically generated for these
methods and it should be ensured that the test have been
passed.6.2VALIDATION TESTINGIt provides final assurances that
software meets all functional, behavioral & performance
requirement. Black box testing techniques are used. There are three
main components.- Validation test criteria (no. in place of no.
& char in place of char)
- Configuration review (to ensure the completeness of s/w
configuration.)
- Alpha & Beta testing-Alpha testing is done at developers
site i.e. at home & Beta testing once it is deployed. Since we
have not deployed my application, we could not do the Beta
testing.Test Cases- we have used a number of test cases for testing
the product. There were different cases for which different inputs
were used to check whether desired output is produced or not.
1. login of a new user in the server should create a new row in
the login table.
2. changes in an existing information of the user has to update
the details of the
user.
3. Any changes or operations done by the user have to update the
summary correctly.
4. Because same page is inserting data into more than one table
in the database
atomicity of the transaction is tested.
6.3 WHITE BOX TESTING
In white box testing knowing the internal working of the
product, tests can be
conducted to ensure that internal operations are performed
according to specification and all internal components have been
adequately exercised. In white box testing logical path through the
software are tested by providing test cases that exercise specific
sets of conditions and loops. Using white-box testing software
developer can derive test case that
Guarantee that all independent paths within a module have been
exercised at least once.
Exercise all logical decisions on their true and false side.
Exercise all loops at their boundaries and within their
operational bound.
Exercise internal data structure to ensure their validity.
At every stage of project development I have tested the logics
of the program by supplying the invalid inputs and generating the
respective error messages. All the loops and conditional statements
are tested to the boundary conditions and validated properly.
6.4 OTHRE TESTING TECHNIQUES Testing method where user is not
required:
Functional Testing:
In this type of testing, the software is tested for the
functional requirements. The tests are written in order to check if
the application behaves as expected.
Stress Testing:
The application is tested against heavy load such as complex
numerical values, large number of inputs, large number of queries
etc. which checks for the stress/load the applications can
withstand.
Load Testing:
The application is tested against heavy loads or inputs such as
testing of web sites in order to find out at what point the
web-site/application fails or at what point its performance
degrades.
Ad-hoc Testing:
This type of testing is done without any formal Test Plan or
Test Case creation. Ad-hoc testing helps in deciding the scope and
duration of the various other testing and it also helps testers in
learning the application prior starting with any other testing.
Exploratory Testing:
This testing is similar to the ad-hoc testing and is done in
order to learn/explore the application.
Usability Testing:
This testing is also called as Testing for User-Friendliness.
This testing is done if User Interface of the application stands an
important consideration and needs to be specific for the specific
type of user.
Smoke Testing:
This type of testing is also called sanity testing and is done
in order to check if the application is ready for further major
testing and is working properly without failing up to least
expected level.
Recovery Testing:
Recovery testing is basically done in order to check how fast
and better the application can recover against any type of crash or
hardware failure etc. Type or extent of recovery is specified in
the requirement specifications.
Volume Testing:
Volume testing is done against the efficiency of the
application. Huge amount of data is processed through the
application (which is being tested) in order to check the extreme
limitations of the system.
Testing where user plays a role/user is requiredUser Acceptance
Testing:
In this type of testing, the software is handed over to the user
in order to find out if the software meets the user expectations
and works as it is expected to.
Alpha Testing:
In this type of testing, the users are invited at the
development center where they use the application and the
developers note every particular input or action carried out by the
user. Any type of abnormal behavior of the system is noted and
rectified by the developers.
Beta Testing:
In this type of testing, the software is distributed as a beta
version to the users and users test the application at their sites.
As the users explore the software, in case if any exception/defect
occurs that is reported to the developers.
Technologies Used
7. Technologies Used
JAVA platform
HTML
Microsoft ACCESS 2003
JMF RMI7.1 JAVA PLATFORM
Java refers to a number of computer software products and
specifications from Sun Microsystems that together provide a system
for developing application software and deploying it in a
cross-platform environment. Java is used in a wide variety of
computing platforms from embedded devices and mobile phones on the
low end, to enterprise servers and supercomputers on the high end.
Java is nearly ubiquitous in mobile phones, Web servers and
enterprise applications, and while less common on desktop
computers, Java applets are often used to provide improved
functionality while browsing the World Wide Web.
Writing in the Java programming language is the primary way to
produce code that will be deployed as Java bytecode, though there
are compilers available for other languages such as JavaScript,
Python and Ruby, and a native Java scripting language called
Groovy. Java syntax borrows heavily from C and C++ but it
eliminates certain low-level constructs such as pointers and has a
very simple memory model where every object is allocated on the
heap and all variables of object types are references. Memory
management is handled through integrated automatic garbage
collection performed by the Java Virtual Machine (JVM).
On 13 November 2006, Sun Microsystems made the bulk of its
implementation of Java available under the GNU General Public
License, although there are still a few parts distributed as
precompiled binaries due to intellectual property restrictions
7.2 HTMLHTML, an acronym for HyperText Markup Language, is the
predominant markup language for web pages. It provides a means to
describe the structure of text-based information in a documentby
denoting certain text as links, headings, paragraphs, lists,
etc.and to supplement that text with interactive forms, embedded
images, and other objects. HTML is written in the form of "tags"
that are surrounded by angle brackets. HTML can also describe, to
some degree, the appearance and semantics of a document, and can
include embedded scripting language code (such as JavaScript) that
can affect the behavior of Web browsers and other HTML
processors.7.3 MICROSOFT ACCESS
Microsoft Office Access, previously known as Microsoft Access,
is a relational database management system from Microsoft that
combines the relational Microsoft Jet Database Engine with a
graphical user interface and software development tools. It is a
member of the Microsoft Office suite of applications and is
included in the Professional and higher versions for Windows and
also sold separately. There is no version for MacOS or for
Microsoft Office Mobile.
Access stores data in its own format based on the Access Jet
Database Engine. It can also import or link directly to data stored
in other Access databases, Excel, SharePoint lists, text, XML,
Outlook, HTML, dBase, Paradox, Lotus 1-2-3, or any ODBC-compliant
data container including Microsoft SQL Server, Oracle, MySQL and
PostgreSQL. Software developers and data architects can use it to
develop application software and non-programmer "power users" can
use it to build simple applications. It supports some
object-oriented techniques but falls short of being a fully
object-oriented development tool.
Microsoft Access is part of the Microsoft Office suite and is
the most popular Windows desktop database application.[citation
needed] It is targeted for the information worker market, and is
the natural progression for managing data when the need for a
relational database arises or after reaching the limits of
Microsoft Excel
7.4 JMF(JAVA MEDIA FRAMEWORK)The Java Media Framework (JMF) is a
Java library that enables audio, video and other time-based media
to be added to Java applications and applets. This optional
package, which can capture, play, stream, and transcode multiple
media formats, extends the Java Platform, Standard Edition (Java
SE) and allows development of cross-platform multimedia
applications.The JMF architecture is organized into three
stages:
JMF is built around component architecture. The components are
organized into a number of main categories:
Media handlers
Data sources
Codecs/Effects
Renderers
Mux/Demuxes 7.5 RMIRemote method invocation (RMI) an
object-oriented variant of remote procedure call, is the technique
of invoking a method of a remote object by using the same syntax
used in local method invocation. A remote object has an interface
that specifies names, argument types, and result types of methods
that can be invoked from remote address spaces.
Mechanism of RMI
Java RMI allowed programmer to execute remote function class
using the same semantics as local functions calls
Architecture The server must first bind its name to the
registry
The client lookup the server name in the registry to establish
remote references.
The Stub serializing the parameters to skeleton, the skeleton
invoking the remote method and serializing the result back to the
stub.
Stub and Skeleton A client invokes a remote method, the call is
first forwarded to stub.
The stub is responsible for sending the remote call over to the
server-side skeleton
The stub opening a socket to the remote server, marshaling the
object parameters and forwarding the data stream to the
skeleton.
A skeleton contains a method that receives the remote calls,
unmarshals the parameters, and invokes the actual remote object
implementation.
SOFTWARE ENGINEERING PARADIGM9. SOFTWARE ENGINEERING
PARADIGMIntroduction
To solve actual problems in an industry setting, a software
engineer or a team of engineers must incorporate a development
strategy that encompasses the process, methods and tools layers and
the generic phases.This strategy is often referred to as a process
model or a software engineering paradigm. It is chosen based on the
nature of the project and application, the methods and tools to be
used, and the controls and deliverables that are required. All
software development can be characterized as a problem solving loop
in which four distinct stages are encountered: status quo, problem
definition, technical development, technical development and
solution integration .
Status quo represents current state of affairs; problem
definition identifies the specific problem to be solved; technical
development solves the problem through the application of some
technology, and solution integration delivers the results to those
who requested the solution in the first place. Regardless of the
process model chosen , all of the stages coexist simultaneously at
some level of detail. Various process models are as below:
The Linear Sequential model.
The Prototyping model.
The RAD model.
The Incremental model.
The Spiral model.Paradigm Used
The spiral model, also known as the spiral lifecycle model, is a
systems development method (SDM) used in information technology.
This model of development combines the features of the prototyping
model and the waterfall model. The spiral model is intended for
large, expensive, and complicated projects.
The steps in the spiral model can be generalized as follows:
1. The new system requirements are defined in as much detail as
possible. This usually involves interviewing a number of users
representing all the external or internal users and other aspects
of the existing system.
2. A preliminary design is created for the new system.
3. A first prototype of the new system is constructed from the
preliminary design. This is usually a scaled-down system, and
represents an approximation of the characteristics of the final
product.
4. A second prototype is evolved by a fourfold procedure:
a) evaluating the first prototype in terms of its strengths,
weaknesses, and risks.
b) defining the requirements of the second prototype.
c) planning and designing the second prototype.
d) constructing and testing the second prototype.
5. At the customer's option, the entire project can be aborted
if the risk is deemed too great. Risk factors might involve
development cost overruns, operating-cost miscalculation, or any
other factor that could, in the customer's judgment, result in a
less-than-satisfactory final product.
6. The existing prototype is evaluated in the same manner as was
the previous prototype, and, if necessary, another prototype is
developed from it according to the fourfold procedure outlined
above.
7. The preceding steps are iterated until the customer is
satisfied that the refined prototype represents the final product
desired.
8. The final system is constructed, based on the refined
prototype.
9. The final system is thoroughly evaluated and tested. Routine
maintenance is carried out on a continuing basis to prevent
large-scale failures and to minimize downtime.
Results & Challenges8. Results & ChallengesThe
application can be used for any Ecommerce application. It is easy
to use, since it
uses the GUI provided in the user dialog. User friendly screens
are provided. The
application is easy to use and interactive making online
shopping a recreational
activity for users. It has been thoroughly tested and
implemented.
Challenges Compatibility with browsers like Mozilla Firefox,
Internet explorer etc
Using a layered approach in developing the application which
would make the
application maintainable.
Learning new technologies like using JavaScript for drag and
drop behavior. The overall idea of doing this project is to get a
real time experience. Learn new
technologies.
CONCLUSION10. CONCLUSIONThe HTTP SERVER is designed to provide a
network application that would make file (text/audio/image/video)
download, upload, encryption decryption of image and text, sharing
like desktop capturing, chat and audio/video recording much
easier.
The web server using HTTP provides an easy and convenient way to
clients to acees and transfer the files on the network in a secure
way.
BIBILIOGRAPHY
11. BIBILIOGRAPHY
1. http://www.wikipedia.org/
2. http://cooltext.com/
3. http://www.NewEgg.com4. http://www.google.com5.
http://yahooanswers.com
DECLARATION
This is to Certify that the Project Report entitled HTTP SERVER
Which is submitted by me in partial fulfillment of the requirement
for the award of degree B.E. in Computer Science comprises only my
original work and due acknowledgement has been made in the text to
all other material used.
Date:
Divya Bansal
(CS05018)8. Logout.
3. Login.
4. Add/ delete/ modify shopping list.
7. Checkout.
5. Account modification.
6. View status of orders.
1. Search products.
2. Sign up new account.
Member User
8. Logout.
3. view/delete/ modify account.
4. Upload / Download files.
7. encryption and decryption of files
5. audio/video conferencing
6. chatting., desktop capturing
1. Register (sign up)
2. login
Client
9. Registers client
13. Manages chatting. Desktop capturing
12. manages audio/video conferencing
. 11. Manages the upload /download of files.
10. Add/ delete/ modify information.
14. Security encryption and decryption of files
Server
Process to store data
File
Registration
Login
Login database
Registration database
File database
Log
Log database
Process to store data
Process to store data
Process to store data
Application:
HTTP SERVER
Start Server
Register Client
List of Users
List of Requests
Logout
Login
Update Profile
Exit
Text Encryption
Text Decryption
Image Encryption
Image Decryption
Download File
Upload File
Audio Capturing
Video Capturing
Save File
Captured image
Process to store data
File
Registration
Login
Login database
Registration database
File database
Log
Log database
Process to store data
Process to store data
Process to store data
Client machine
Client side stub
Choose a text file to encrypt
1. Read data from file.
2. Convert file into bytes.
Send bytes by invoking RMI method.
(encText)
Remote machine
RMI server
Server side stub
Send the encrypted bytes.
1.Create a file
2. Write the encrypted bytes into file.
1. Fetch the bytes
2. Obtain users key from database
3. Encrypt bytes using key.
TCP/IP
TCP/IP
Client machine
Client side stub
Choose a text file to decrypt
1. Read data from file.
2. Convert file into bytes.
Send bytes by invoking RMI method.
(decText)
Remote machine
RMI server
Server side stub
Send the decrypted bytes.
1.Create a file
2. Write the decrypted bytes into file.
1. Fetch the bytes
2. Obtain users key from database
3. Decrypt bytes using key.
TCP/IP
TCP/IP
TCP/IP
TCP/IP
Set Text and Color(if requested for WaterMark)
Call getImage.
1. Read data from file.
2. Convert file into bytes.
1. Create file.
2. Get reference of file in BIS.
3. Read from BIS.
4. Write into bytes.
TCP/IP
TCP/IP
1. Create file.
2. Get reference of file in BOS.
3. Write bytes into BOS.
1. Create file.
2. Get reference of file in BOS.
3. Write bytes into BOS.
Server side stub
RMI server
Remote machine
Upload bytes by invoking RMI method
(upload)
Choose an image file to encrypt
Client side stub
Client machine
temp.dat created.
Input
Grab pixels of image.
Convert file into image.
Get reference of file in IS.
1. Create new FileOutputStream (FOS) for temp.dat.
2. Encrypt byte array.
3. Write byte array into FOS.
Encrypt pixels using rowFlipPixel.
Get reference of IS in BIS.
1. Create new BAOS.
2. Read data from BIS.
3. Write data in BAOS.
4. Convert BAOS in byte array.
1. Get reference of file in FOS.
2. Create new BufferedImage (BI) according to image size.
3. Get reference of FOS in JPEG Image
Encoder.
4.Encode FOS into BI.
temp.jpg created.
temp.dat created.
Client machine
Client side stub
Choose an image file to decrypt
Send bytes by invoking RMI method.
(imgdec)
Remote machine
RMI server
Server side stub
1. Get reference of file in FOS.
2. Write bytes into FOS.
Call decBytes
TCP/IP
TCP/IP
1. Decrypt bytes.
2. Return bytes.
Bytes
Bytes
1. Create a file.
2. Get reference of file in BIS.
3. Read from BIS and write into bytes.
1. Create new ByteArrayOutputStream
(BAOS).
2. Read from audio line into buffer.
3. Write from buffer into BAOS.
1. Get audio format.
2. Set Audio format in TDL.
3. Get reference of TDL in saveLine.
4. Create new Audio file.
5. Open saveLine.
6. Start saving.
7. Get reference of saveLine in
AudioInputStream(AIS).
8. Write from AIS into audio file.
1. Get Audio format.
2. Set audio format in TargetDataLine(TDL).
3. Get reference of audio device according to audio format.
4. Open audio line.
5. Start audio line.
6. Start saveThread & captureThread.
1. Create new ByteArrayOutputStream
(BAOS).
2. Read from video line into buffer.
3. Write from buffer into BAOS.
1. Get Videoo format.
2. Set Video format in TDL.
3. Get reference of TDL in saveLine.
4. Create new Video file.
5. Open saveLine.
6. Start saving.
7. Get reference of saveLine in
videoInputStream(VIS).
8. Write from AIS into video file.
1. Get Video format.
2. Set Vedio format in TargetDataLine(TDL).
3. Get reference of Video device according to Video format.
4. Open Video line.
5. StartVideo line.
6. Start saveThread & captureThread.
Java Application
Proprietary protocol
SQL Command
Result Set
Database
ODBC Driver
JDBC-ODBC Bridge
lookup
register
Networkkk
Name
Server
RMI [1]
result=remote_obj.method(args)
Proxy represents server object
Client Process
Server Process
Remote
Object
Skeleton
Client
Program
Proxy
EMBED Unknown
EMBED Unknown
has information of
lname
fname
dob
loc
uid
REGIS
type
filename
fileid
FILE
is available in
event
type
date
fileid
sno
LOG
can access
pwd
uid
LOGIN1
ans
semail
secque
_1219735756.vsd
_1219735812.vsd