Java Proxy Server

25

Click here to load reader

Transcript of Java Proxy Server

Page 1: Java Proxy Server

MINI PROJECTMINI PROJECT

ON ON

JAVAPROXY SERVERJAVAPROXY SERVER(OPEN SOURCE SOFTWARE)

Submitted To Submitted By

Mr. Sunil Nandal Pratibha

Lect. Of cse 0701333

deptt. C.S.E(3rd yr.)

Page 2: Java Proxy Server

INDEX

S.NO TOPICPAGE

NO.

1INTRODUCTION TO OPEN SOURCE

1

2 FREE SOFTWARE Vs OPEN SOFTWARE 3

3ADVANTAGES\DISADVANTAGES OF OPEN

SOURCE4

4 INTRODUCTIO TO JAVA 6

5 FEATURES & CHARACTERISTICS 7

6 INTRODUCTION TO PROXY SERVER 8

7 JAVA PROXY SERVER 9

8 FEATURES & CONFIGURATION 10

9 WORKING 12

Page 3: Java Proxy Server

Introduction

Open source software is computer software whose source code is available under a

license (or arrangement such as the public domain) that permits users to use, change, and

improve the software, and to redistribute it in modified or unmodified form. It is often

developed in a public, collaborative manner. It is the most prominent example of open

source .The basic idea behind open source is very simple. When programmers can read,

redistribute, and modify the source code for a piece of software, the software evolves.

People improve it; people adapt it; people fix bugs. Open source development is ideally

suited to the infrastructure of the Internet and is becoming increasingly ubiquitous. It has

the potential to move at speeds that put proprietary software development to shame.

How does open source software development work?

Sir Isaac Newton is famously quoted as saying: If I have seen further it is only by

standing on the shoulders of giants. Open source software development embraces this

principle. Open source is a community-centric development model, which encourages the

free flow of knowledge and insight between all members. The open source model does

away with organizations and central control, replacing them with open networks of

individuals. Every individual can build on the work that has been done by others in the

network; no time is spent reinventing the wheel.

Page 4: Java Proxy Server

Figure 1: The Open Source Model: Source code is available to public. The public is free

to make improvements.

Figure 2: The Closed Model: The Microsoft source code is closely guarded. The User

only receives a compiled version of the software. Modification is impossible.

In recent years, the linking of individuals has been enhanced by the Internet's high-speed

data capacity and omnipresence. With efficient networking infrastructure in place, the

collaborative open source model has limitless potential. In fact, over the last decade open

Page 5: Java Proxy Server

source software licences have been embraced internationally and are already in force for

thousands of computer programs.

How does 'free software' differ from 'open source'?

The difference between the movements is not concrete. The 'open' collaboration model

used for software development is the same for both free software and open source. The

only pronounced distinction is ideological. 'Free software' software development is

motivated by an altruistic desire to improve society at large; society comes first and

individual commercial gain is a distant second (to put it mildly). 'Open source'

development is motivated by a belief that the development model is superior to proprietary

models. The open source movement is an offshoot of the free software movement. It puts a

more pragmatic, less dogmatic face on the development model, making it more palatable to

mainstream developers. Nevertheless, much of the present success of the 'open source'

movement is due to the Free Software Foundation doggedly championing the framework.

ADVANTAGES:

The availability of the source code and the right to modify it is very important. It

enables the unlimited tuning and improvement of a software product. It also

makes it possible to port the code to new hardware, to adapt it to changing

conditions, and to reach a detailed understanding of how the system works. This

is why many experts are reaching the conclusion that to really extend the lifetime

of an application, it must be available in source form. In fact, no binary-only

application more than 10 years old now survives in unmodified form, while

several open source software systems from the 1980s are still in widespread use

(although in many cases conveniently adapted to new environments). Source code

Page 6: Java Proxy Server

availability also makes it much easier to isolate bugs, and (for a programmer) to

fix them.

The right to redistribute modifications and improvements to the code, and to reuse

other open source code, permits all the advantages due to the modifiability of the

software to be shared by large communities. This is usually the point that

differentiates open source software licences from ``nearly free'' ones. In

substance, the fact that redistribution rights cannot be revoked, and that they are

universal, is what attracts a substantial crowd of developers to work around open

source software projects.

The right to use the software in any way. This, combined with redistribution

rights, ensures (if the software is useful enough), a large population of users,

which helps in turn to build up a market for support and customization of the

software, which can only attract more and more developers to work in the project.

This in turn helps to improve the quality of the product, and to improve its

functionalityWhich, once more, will cause more and more users to give the

product a try, and probably to use it regularly.

There is no one with the power to restrict in a unilateral way how the software is

used, even in a retroactive way. Such a power manifests, for instance, when a

proprietary software vendor decides not to upgrade some software product for

some old platform. In this case, customers can only stick to the old version of the

software, or switch to another product. If open source software is used, customers

can also fund some development for the desired platform, or look for other

vendors to provide the upgrades (of the very same product).

Page 7: Java Proxy Server

DISADVANTAGES

There is no guarantee that development will happen. In other words: it is not

possible to know if a project will ever reach a usable stage, and even if it reaches

it, it may die later if there is not enough interest. Of course, this is also a problem

with proprietary software, but it is more evident in the case of open source.

Especially when a project is started without strong backing from one or more

companies, there is a significant initial gap, when the source base is still immature

and the development base is still being built. If it is not possible to get funding or

enough programmers cooperating at this stage, the project just ``dies'', or perhaps

slowly fades out. Usually, when it reaches a self-sustaining level, the user and

development base is such that it can proceed by itself, without other external

incentive.

No guarantee of quality or fitness

Some open source software projects, such as the Linux initiative, have one or

more stewards who monitor code quality and track bugs. Other initiatives, however,

are the product of hobbyists and do not enjoy the same code quality and rigorous

testing protocol. Without contractual commitments of quality or fitness, the licencee

must accept the risk that the software contains fatal errors, viruses or other problems

that may have downstream financial consequences.

Copyleft Licencing

As mentioned above, some open-source licences, such as the GPL, require licencees

to provide royalty-free copies of their derivative works in source code form for others

to use, modify and redistribute in accordance with the terms of the parent licence

agreement (see Figure 3). This licensing condition makes it very difficult for

companies in the commercial software business to use such open source software as a

foundation for a business. As a result, companies may be concerned that the use of

OSS within.

Page 8: Java Proxy Server

JAVA

INTRODUCTION:

Java is an object oriented programming language that was designed to meet the need of

platform independent language and a technology language.It is used to create application

s that can runon a single computer as well as a distributed network. Java is both a

language and a technology used to develop stand-alone and internet application .

NEED FOR JAVA:

The java language contains buit _in support for the world wide web(www),which is a

service of the internet to retrieve information in the form of web pages. i he primary

motive behind developing java language was the need for a portable and platform –

independent language that could be used to produce code that would run on a variety of

C.P.U under different environments.

APPLICATIONS OF JAVA ARE AS FOLLOWS:

Application that use Character User Interface(CUI):Applications are executable

programs that are controlled by operating system.These applications have an access to

system resources.

Application that use Graphical User Interface(GUI):These applications are used in

windows environment.In GUI ,you interact with the application in thamse graphical

mode.

Page 9: Java Proxy Server

APPLETS:Applets are small executable programs that run on a web page.

These programs require a Java enabled browser ,such as Internet Explorer or Netscape

navigator.Applets have limited access to system resources.

Servlets: servlets are the programs that are used to extend the functionality of web

servers.

CHARACTERISTICS OF JAVA:

SIMPLE:A java programmer doesn’t need to know the internal details of java as to how

memory is allocated to data because in java,the programmer doesn’t need to handle

memory manipulation .Java is simple language that can be learned easily even if you

have just started programming.

OBJECT-ORIENTED:Java supports the object-oriented approach to develop

programs.It

Supports various features of an object-oriented language,such as

abstraction,encapsulation,inheritanceand polymorphism.To implement the object-

oriented language,the entire code of program must be written within a class.The java

language does not support stand-alone statements.

COMPILED & INTERPRETED:The java programs are the first compiled and then

interpreted.Whle compiling ,the compiler software checks for errors in the program and

lists all the errors on the screen .After that compiler converts the programs into computer

language.The java compiler compileshe code to a bytecode that is understood by

java.When you compile a java source code file ,the java compiler generates the

bytecode,which is a compiled java program with a .class extension

Page 10: Java Proxy Server

PORTABLE:Portability refers to the ability of a program to ru on any platform without

changing the source code of program.The programs developed on one computer run

computer ,which might have a different platform .Java enables the creation of cross-

platform programs by compiling the programs into an intermediate representation called

Java bytecode which is a result of compiling a java program.

DISTRIBUTED:Java is used to develop application that can be distributed among

various computers on the network.Java is designed for the distributed environment of

internet because it supports the various internet protocols,such as Transmission Control

Protocols and internet protocol.

SECURE:Java has built in security features that verify that the programs don’t perform

any destructive task,such as accessing the files on a remote system.Java does not allow

the use of explicit pointers,which are used to refer to the memory locations in a c++

programs.In ,java the compiled bytecode is strongly type checked .Any changes made in

the bytecode are flagged as errors and the program doesn’t execute.This ensures the

security of the Java program over the internet.

Page 11: Java Proxy Server

Proxy Servers :

Definition:

A proxy server is a kind of buffer between your computer and the Internet

resources you are accessing. They accumulate and save files that are most often

requested by thousands of Internet users in a special database, called “cache”.

Therefore, proxy servers are able to increase the speed of your connection to the

Internet. The cache of a proxy server may already contain information you need by

the time of your request, making it possible for the proxy to deliver it immediately.

The overall increase in performance may be very high. Also, proxy servers can help

in cases when some owners of the Internet resources impose some restrictions on

users from certain countries or geographical regions. In addition to that, among

proxy servers there are so called anonymous proxy servers that hide your IP

address thereby saving you from vulnerabilities concerned with it.The functions of

proxy, firewall, and caching can be in separate server programs or combined in a

single package. Different server programs can be in different computers. For

example, a proxy server may in the same machine with a firewall server or it may

be on a separate server and forward requests through the firewall.

Page 12: Java Proxy Server

JAVA PROXY-

Java Proxy is not just usual proxy, it is advanced traffic redirection tool. It

can provide you access to computers behind a firewall or NAT. You can

implement these features transparently to your network and firewall,

without modifying their configuration. Java Proxy includes web proxy

(HTTP, HTTPS, FTP), SOCKS proxy and port mapping tool for client

applications compatibility. It allows you to use such services as WWW,

FTP, Remote Administration Tools (PC Anywhere, SSH, telnet, VNC), E-

mail, Instant Messaging tools and many others behind firewall.

FEATURES:

Java Proxy also has traffic encryption features and has simple built-in web

server to allow file downloading from remote computer without

installation of additional software.

CONFIGURATION:

Java Proxy requires TWO computers on the net controled by you - one

outside firewall and second behind firewall. Controled by you, means you

can install and run applications on these computers. On this diagram such

computers are Computer 1 and Computer 2. Second requirement is

computer outside firewall must have real IP address. Last requirement is -

you must have J2SE 1.4 installed on both computers, you can download it

here, and it is highly recommended (until you know how to deal with java

application) to have Java Web Start support installed (it is in default J2SE

installation, just don't remove this option). Client application not necessary

Page 13: Java Proxy Server

have to be located on the computer with Connector, all allowed clients can

use it as proxy to access services behind firewall. The same situation is for

Redirector - it can access services on it's own computer or on another

computers.

Configuration on computer outside firewall (Computer 1)

Page 14: Java Proxy Server

Click , to run application by Java Web Start. Or download

application and run in from your disk.

Select Connector server mode. Click Next.

There is default value for Server port, you can use it or

customize it. If your Firewall/Proxy does not allow

connections to custom ports you may try 443 or 563, or ports

above 1024 here. Configure Proxies/Forwarders section, you

can read about them here. Click Next.

Click Start. Connector is running, once Redirector will be

running too, you can start using Java Proxy.

Configuration on computer behind firewall

(Computer2)

Click here, to run application by Java Web Start. Or download

application and run in from your disk.

Select Redirector client mode. Click Next.

Specify hostname or IP of Computer 1 in the Host field and in the

Port enter the same number as you entered in Server port for Computer

1.

If you can connect to the Internet only through proxy (check

browser configuration if you are not sure), then you have to enter

information about it into Advanced Connection section. Once it is done,

click Next.

Page 15: Java Proxy Server

Click Start. Once Computer 2 will connect Computer 1 you will

see orange squre in the left lower corner. It means you can start using Java

Proxy.

How it looks like

This UML diagram shows example of how all this stuff can be located on

the net. This diagram does not demonstrates all possible configurations,

but the main idea should be clear.

Connector and Redirector are parts of Java Proxy, and we will skip them

for first demonstration:

Page 16: Java Proxy Server

WORKING OF JAVAPROXY:

Next UML diagram shows what happens when you try to connect

computer behind firewall using Java Proxy. There are two new players -

Java Proxy Connector and Java Proxy Redirector. They are two new

programs you have to launch, (you can run Connector on Client

Application computer and Redirector on Server computer, or you can run

them on another computers). As you can see Redirector is located behind

firewall, Java Proxy is not a "hack tool", you can not get access to the

internal network without valid control over some computer in that

network, but you don't have to control Firewall/Proxy gateway.

Page 17: Java Proxy Server

Request starts before any actions from the user, Redirector connects to

Connector (it is allowed because it is client connection from internal

network into the Internet) and holds this connection. When User calls

client application to access

some resource, client application sends request to Connector, but

Connector already has connection to Redirector and asks it to transmit

request to Server Behind Firewall and get answer.

If it is necessary, Redirector can additionaly pack connections to

Connector into HTTPS messages to satisfy Firewall/Proxy.

Page 18: Java Proxy Server

BIBLIOGRAPHY

During this project report following websites and search

engines was used:

http://www.google.com

http://www.ask.com

http://www.metasearchengines.com

http://www.yahoosearch.com

http://www.java.net

and all the downloads and documents were taken from W3

consortium website.