You are on page 1of 18

MINI PROJECT ON JAVAPROXY SERVER

(OPEN SOURCE SOFTWARE)

Submitted To Mr. Sunil Nandal Lect. Of cse deptt.

Submitted By Pratibha 0701333 C.S.E(3rd yr.)

INDEX

S.NO

TOPIC

PAGE NO.
1

INTRODUCTION TO OPEN SOURCE

FREE SOFTWARE Vs OPEN SOFTWARE

ADVANTAGES\DISADVANTAGES OF OPEN SOURCE

INTRODUCTIO TO JAVA

FEATURES & CHARACTERISTICS

INTRODUCTION TO PROXY SERVER

JAVA PROXY SERVER

FEATURES & CONFIGURATION

10

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 doesnt need to know the internal details of java as to how memory is allocated to data because in java,the programmer doesnt 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 objectoriented 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 crossplatform 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 dont 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 doesnt 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 PROXYJava 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), Email, 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.


Port

Select Redirector client mode. Click Next. Specify hostname or IP of Computer 1 in the Host field and in the 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.

Proxy.

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

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.

You might also like