122
A Project Report On “HTTP SERVER” Submitted to RAJIV GANDHI PROUDYOGIKI VISHWAVIDYALAYA BHOPAL (M.P.) In the partial fulfillment of the requirement for the award of the degree of Bachelor of Engineering In Computer Science & Engineering 2008-2009 Under the Guidance of Prof. Manish Dixit Department Of Computer Science & Engineering and IT, M.I.T.S. Gwalior (M.P.) Submitted by Divya Bansal Kanchi Bilthare Neha Purohit

Done Http Server

Embed Size (px)

DESCRIPTION

its online networking file

Citation preview

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