View
42
Download
0
Category
Preview:
Citation preview
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.)
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
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.
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
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
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).
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.
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.
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
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.
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.
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
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)
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.
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:
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.
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.
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.
Recommended