You are on page 1of 25

ACKNOWLEDGEMENT

We are Extremely grateful to our Chairman Sri A.Younus Kunju, for providing the
best facilities for our studies.

We also sincerely thank our principal, Prof. Mohammed Ali Esa, YCET, Kollam for
providing us best facilities to go ahead in the development of our project.

We also sincerely thank our Head of the Computer Science and Engineering, Mrs.
Jiji.N, for the valuable suggestion,which enabled us to do our best.

We are also indebted to Mrs. Jyothy, for her sincere Co-operation and giving
adequate suggestions in developing this project.

We are extremely grateful to all the Lecturers of our department for having provide us
the right support and the much need moral boost.

We also express our sincere thanks to the Lab Instructors, the Library staff and all the
members of staff of YCET for their whole hearted support Co-operation.
PREFACE

This project deals with the compilation of any program say Java, C, C++, etc in a
system even if there are no compilers for these languages in the system provided, the
system should be connected to a network .In the real sense we usually load all the
compilers that we need to accomplish our task. But by using this software named Remote
Compiler we can compile any program in our system connected to a network even if
there are no compilers.
TABLE OF CONTENTS
1. INTRODUCTION

This software deals with compiling any programs say Java, C, C++, etc in a system
even if there are no compilers for these languages in the system , provided the system
should be connected to a network .In the real sense we usually load all the compilers that
we need to accomplish our task. But by using this software named Remote Compiler we
can compile any program in our system connected to a network even if there are no
compilers.

This network based software which is coded in Java keeps track of all the clients
connected to the server and thus maintains their necessary information needed to access
them. This software works only in a Client-Server architecture and mainly uses the
concept of socket programming, where the server keeps track of all the clients presently
connected to the server. The server also checks frequently the status of each client and
removes all the idle clients inorder to avoid confusion.

This project includes a variety of different options like Add Compilers, Remotely
Compile, Status etc. There are both Basic compiling and Advanced compiling options
under Remotely Compile option. This provides a sort of flexibility for our project.

Moreover inorder to provide security to our software a specific Data Encryption


technique has been used. This is to ensure the prevention of intruders who try to create
problems.
1.1 FEATURES OF SOCKET PROGRAMMING

Java's socket model is derived from BSD (UNIX) sockets, introduced in the early
1980s for interprocess communication using IP, the Internet Protocol. The Internet
Protocol breaks all communications into packets, finite-sized chunks of data which are
separately and individually routed from source to destination. IP allows routers, bridges,
etc. to drop packets--there is no delivery guarantee. Packet size is limited by the IP
protocol to 65535 bytes. Of this, a minimum of 20 bytes is needed for the IP packet
header, so there is a maximum of 65515 bytes available for user data in each packet.
Sockets are a means of using IP to communicate between machines, so sockets are one
major feature that allows Java to interoperate with legacy systems by simply talking to
existing servers using their pre-defined protocol. Other common protocols are layered on
top of the Internet protocol.
The port number field of an IP packet is specified as a 16-bit unsigned integer. This
means that valid port numbers range from 1 through 65535. (Port number 0 is reserved
and can't be used).
Java does not have any unsigned data types; Java's short data type is 16 bits, but its
range is -32768 to 32767 since it is a signed type. Thus, short is not large enough to hold
a port number, so all classes which use or return a port number must represent the port
number as an int. In the JDK 1.1, using an int with a value greater than 65535 will
generate an Illegal Argument Exception. In the JDK 1.0.2 and earlier, values greater than
65535 are truncated and only the loworder16 bits are used.
Port numbers 1 through 255 are reserved by IP for well-known services. A well
known service is a service that is widely implemented which resides at a published,
"well-known", port. If you connect to port 80 of a host, for instance, you may expect to
find an HTTP server. On UNIX machines, ports less than1024 are privileged and can
only be bound by the root user. This is so an arbitrary user on a multi-user system can't
impersonate well-known services like TELNET(port 23), creating a security problem.
Windows has no such restrictions, but you should program as if it did so that your
applications will work cross-platform.
Client/Server Computing

You can use the Java language to communicate with remote file systems using
aclient/server model. A server listens for connection requests from clients across the
network or even from the same machine. Clients know how to connect to the server via
an IP address and port number. Upon connection, the server reads the request sent by the
client and responds appropriately. In this way, application scan be broken down into
specific tasks that are accomplished in separate locations.

The data that is sent back and forth over a socket can be anything you like. Normally,
the client sends a request for information or processing to the server, which performs a
task or sends data back. You could, for example, place an SQL shell on the server and let
people talk to it via a simple client "chat" program.

The IP and port number of the server is generally well-known and advertised so the
client knows where to find the service. In contrast, the port number on client the side is
generally allocated automatically by the kernel. Many protocols used on the Internet
(HTTP for example) are designed to be driven from the command line. They send their
requests and responses across thenet in plain text. One of the easiest ways to become
familiar with network programming and/or specific protocols is to use the TELNET
application to "talk" directly to a server from the command line.
Transmission Control Protocol (TCP)

We saw in the previous section that UDP provides an unreliable packet delivery
system--each packet is an individual, and is handled separately. Packets can arrive out of
order or not at all. The recipient does not acknowledge them, so the sender does not know
that the transmission was successful. There are no provisions for flow control--packets
can be received faster than they can be used. Packet size was limited by the underlying IP
protocol. TCP, Transmission Control Protocol, was designed to address these problems.
TCP packets are lost occasionally, just like UDP packets. The difference is that the TCP
protocol takes care of requesting retransmits to ensure that all packets show up, and
tracks packet sequence numbers to be sure that they are delivered in the correct order.
While UDP required us to send packets of byte arrays, with TCP we can use streams
along with the standard Java file I/O mechanism. Unlike UDP, the Transmission Control
Protocol, TCP, establishes a connection between the two endpoints. Negotiation is
performed to establish a socket, and the socket remains open throughout the duration of
the communications. The recipient acknowledges each packet, and packet
retransmissions are performed by the protocol if packets are missed or arrive out of order.
In this way TCP can allow an application to send as much data as it desires and not be
subject to the IP packet size limit. TCP is responsible for breaking the data into packets,
buffering the data, resending lost or out of order packets, acknowledging receipt, and
controlling rate of data flow by telling the sender to speed up or slow down sothat the
application never receives more than it can handle. Again, unlike UDP, the destination
host and port number is not sufficient to identify a recipient of a TCP connection. There
are five distinct elements that make a TCP connection unique:
IP address of the server
IP address of the client
Port number of the server
Port number of the client
Network Programming
Protocol (UDP, TCP/IP, etc...)
where each requested client socket is assigned a unique port number whereas the server
port number is always the same. If any of these numbers is different, the socket is
different. A server can thus listen to one and only one port, and talk to multiple clients at
the same time.
So a TCP connection is more like a telephone connection than a letter; you need to know
not only the phone number (IP address), but since the phone may be shared by many
people at that location, you also need the name of the user you want to talk to at the other
end (port number). The analogy can be taken a little further. If you don't hear what the
other person has said, a simple request ("What?") will prompt the other end to resend or
repeat the phrase. And, the connection remains open until someone hangs up.
1.2 OBJECTIVES OF THE PROJECT

Our project consists of mainly two modules:


1. Server Module
2. Client Module
The server module performs the following operations:
1 .Handle GUI: This part handles the GUI part of the server
2. Handles client requests
3 Handles client registration
4 Handles client request queries
5 Handles queueing operations
6 Handles client polling
The client module consists of the following sub-modules:
1. Client Service: This performs the following operations
a. Handles GUI
b. Handles In house compilers and Out house compilers
c. Handles server queries
d. Handles polling
2. Client GUI: Handles the client GUI part
1.3 SCOPE OF THE PROJECT

The scope of our project is to compile any program say Java, C, C++, etc in a
system even if there are no compilers for these languages in the system provided, the
system should be connected to a network .In the real sense we usually load all the
compilers that we need to accomplish our task. But by using this software named Remote
Compiler we can compile any program in our system connected to a network even if
there are no compilers.
1.4 LIMITATION OF THE PROJECT

We have tried our best to include all the facilities and have considered almost all the
security issues that can be faced by our project. We have also tried to consolidate all the
aspects of a Client-Server architecture and tried our level best to solve them. Even though
we have considered all these issues , the main limitation of our project is that in certain
cases the response time can be high.
2. LITERATURE SURVEY

2.1 STUDY OF EXISTING SYSTEM

Since the concept of remote compilation is new the study of existing system
proves no significance. In the existing system we have to load all the compilers inorder
to compile any program of our desire. This proves to be a memory wastage and a sort of
overburdening a single specific system.
2.2 LIMITATIONS OF THE EXISTING SYSTEM

In the existing system we have to load all the compilers inorder to compile any
program of our desire. This proves to be a memory wastage and a sort of overburdening
a single specific system.
2.3 STUDY OF PROPOSED SYSTEM

In the existing system we have to load all the compilers inorder to compile any
program of our desire. This proves to be a memory wastage and a sort of overburdening
a single specific system.

In the new system there is no need to load all the compilers, just write the code for the
desired program and then click the required button, the code to be compiled will be send
to the required system which has all the necessary compilers and the necessary resources
to accomplish the desired task.
2.3.1 PROBLEM SPECIFICATION

A system is a combination of resources working together to convert inputs in to


outputs. Analysis of system is concerned with investigation, analysis, designing,
implementation and evaluating information systems in an organization. We must design
the information system system, which will meet the organizational objectives, promote
integration and activities and facilitate controls.

So the existing system should be analysed likewise and the necessary operations
should be performed.
2.3.2 ADVANTAGES OF THE PROPOSED SYSTEM

In the proposed system there is no need to load all the compilers, just write the
code for the desired program and then click the required button, the code to be compiled
will be send to the required system which has all the necessary compilers and the
necessary resources to accomplish the desired task. This system thus ensures no memory
wastage and reduces the overburdening of a specific system.
3. FEATURES OF THE LANGUAGE

Java is a computer programming language developed by Sun Microsystems. Java is a


new language that is less than 10 years old (being created in 1995) and has been very
successful for many reasons.

The first reason for Java’s popularity is its cost – absolutely FREE!! A second reason for
the popularity of Java is that a Java program can run on almost any computer it is
platform-independent.

Java can be used to develop many types of applications. There are simple text-based
programs called console applications. These programs just support text input and output
to your computer screen. You can also build graphic user interface (GUI, pronounced
‘gooey’) applications. These are applications with menus, toolbars, buttons, scroll bars,
and other controls which depend on the computer mouse for input. A last application
that can be built with Java are applets. In this class, we concentrate on GUI applications.

Another popular feature of Java is that it is object-oriented. What this means to you, the
Java programmer, is that you can build and change large programs without a lot of
additional complication. As you work through this course, you will hear the word object
many, many times.

A last advantage of Java is that it is a simple language. Compared to other languages,


there is less to learn. This simplicity is necessary to help insure the platform-
independence (ability to run on any computer) of Java applications. But, just because it
is a simple language doesn’t mean it lacks capabilities. You can do anything with Java
that you can with any of the more complicated languages.
Program Structure of Java

Java, like any language (computer or spoken), has a terminology all its own. Let’s
look at the structure of a Java program and learn some of this new terminology. A Java
program (or project) is made up of a number of files. These files are called classes. Each
of these files has Java code that performs some specific task(s). Each class file is saved
with the file extension .java. The filename used to save a class must match the class
name. One class in each project will contain something called the main method.
Whenever you run a Java program, your computer will search for the main method to get
things started. Hence, to run a program, you refer directly to the class containing this
main method.

That’s really all we need to know about the structure of a Java program. Just remember a
program (or project, we’ll use both terms) is made up of files called classes that contain
actual Java code. One class is the main class where everything starts. And, one more
thing to remember is that projects are grouped in workspaces.
4. REQUIREMENTS

Hardware specifications

1. Processor
2. Ram : 128 MB or higher
3. Hard disk : 20 GB or higher
4. Monitor : Any

Software specifications

1. Front end : Java Netbeans


2. Back end : Data files
3. Technology : Jre 1.6 or higher
4. Operating System : Multiplatform
5. DATA FLOW DIAGRAM

Level-0 Diagram

CLIENT 4 CLIENT 1

SERVER

CLIENT 3
C LIENT 2
Level-1 Diagram

REGISTRATION QUERIES

SERVER SERVICE REQUEST


GUI

POLLING QUEUEING
Level-2 Diagram

GUI

CLIENT SERVICE COMPILERS


POLLING

QUERIES
Level-3 Diagram

CHANGE
PASSWORD

SERVER
SERVER GUI CLIENT
STATUS
SETTINGS

REMOTE
LOGIN
Level-4 Diagram

EDIT
COMPILER

CLIENT GUI ADD


SERVER IP COMPILER

REMOTELY
COMPILE
CONCLUSION

This software which is based on the new concept of remotely compiling a


program on any other system connected to the network, proves no difficulty to the
user and thus made user friendly at the best possible.

You might also like