Академический Документы
Профессиональный Документы
Культура Документы
1. INTRODUCTION
This application Personal allows you to remotely access your computer from any
other Internet-connected computer in the world with almost any operating system through
a secure, private connection
This application is a unique Web-based technology that works with your existing firewall
and Internet infrastructure. You do not have to change or open ports, configure IP
addresses or deploy any hardware or software, and you can use your existing corporate
Internet connection. The service and architecture are designed for maximum
performance, reliability and scalability
This application is for individuals needing remote access to 1-20 PCs. It's an easy and
secure remote-access solution that enables you to conveniently access email, files,
programs and network resources from home or the road. Get unlimited access to your
PCs from any Web browser anywhere
This application is Personal allows you to access and work on your PC on-the-fly from
any location connected to the Internet. Get reliable, convenient access to email, files,
programs and network resources from home or the road.
When you are abroad or away from your computer you can access all the files and folders
in your computer remotely.
1
Virtual Desktop
Simply said, a "desktop" is what you see when you run windows: the actual windows
desktop, with the icons on it; some open windows; some minimized windows. The main
goal of the project is thus to allow working with only some of the applications visible at a
time. Later, some other windows may be visible. The program thus allows having a few
set of applications/windows, where you can simply choose which group is visible, and
switch between one group or the other.
User interface
2
Virtual Desktop
except for a few buttons at an operator's console. The user interface was largely in the
form of punched card input and report output
3
Virtual Desktop
Objective
The main objective of this project is to implement remote accessing of a system.
Based on this application personal allows you to remotely access your computer from
any other internet connected computer in the world with almost any operating
system through a secure private connection. This service and architecture is designed
for improving the performance, reliability and scalability. You do not have to change or
open ports, configure IP addresses or deploy any hardware or software, and you can use
your existing corporate connection. An easy and secured remote access solution enables
you to conveniently access e-mail, files, programs and network resources from home or
the road.
The main facilities of this project are:
• Connecting Server and Client.
• Generating a Socket to establish connection.
• Sending and receiving the messages.
• Connecting different clients.
• File searching in server system.
4
Virtual Desktop
Overall Description
The main goal of this project is to implement Remote accessing of system when we are
on Road or any where . The global communication is solved in great deal by the
introduction of Internet. This made the necessity of networking in communication clear.
The Internet protocol TCP/IP and also UDP uses computers called Gateways, which
provide interconnections among physical networks and also provides wireless
connection. .
This application is a unique web based technology that works with existing firewall and
Internet infrastructure.You do not have to change or open ports ,configure IP address or
deploy any hardware ,software ,and u can use your existing corporate internet
connection.The service and architecture are designed for maximum performance,
reliability and scalability.
Socket programming
Socket are application progarmme interface i.e., they providethe user interface wiyh the
system. They can be used for local inter process communicationand also across TCP/IP
networks.They allow unrelated process to exchange data locally over networks. They
provide both connection and connectionless modes of commution
Socket is a two way communication channel and provides the following services
1. Creation and naming of socket
2. Waiting for a connection
3. Acceptng and making socket connection
4. Sending and Receiving data
5. Closing the socket connection
6. translating network address
5
Virtual Desktop
Socket Process
Socket is application programme interface. i.e., they provide the user interface with the
system. They can be used for local inter process communication and TCP/IP networks.
They allow unrelated process to exchange data locally over networks. They provide both
connection and connectionless modes of communication.
Socket is a two-way communication channel and provides the following services.
1. Create and naming of socket.
2. Waiting for a connection.
3. Accepting and making socket connection.
4. Sending and Reciving data.
5. Closing the socket connection.
6. Translating network address.
Server Process
First, the protocol server opens a port and registers the IP address of the client.
When a client request arise the server process spawns a separate process/thread to take up
on client.
When a particular client attempts to a server it creates a separate process to the client.
This process is same for every incoming clients. The server returns a welcome message
to the client indicating that the initial handshaking has been successfully.
Ofter successfully receiving the client connection, the server then proceeds to setup the
user directory, which the user will be using for either querying the contents, sorting files
or retrieving files. The server also assigns appropriate privileges & security to the
directory also called user directory.
6
Virtual Desktop
Client Process
The current project scope should involve in developing client to achieve the above-
mentioned features in a platform neutral, network neutral manner with a GUI interface as
supported by traditional command line interfaces provided by most operating systems.
The client has to have prior information of the IP address of the server and also the port
on which it is listening for requests. On the other hand, if the authentication schema has
failed at the server then the server returns an error code after which the client is simply
disconnected.
After this process, the client then proceeds to make the requests. The requests that a client
can make to the server can be categorized into 3 types.
• Access Controle Commands.
• Transfer Parameter Commands.
• Protocol Service Commands.
File Searching Process
The prototype of the file transfer protocol should be introduced as an application level
protocol. It should involve in opening a connection to a remote server from the client.
Next, the client should provided a means for performing a series of well-defined
commands on the server to browse, create, delete, and set the current working directory.
The user should have permission to write or delete files from the accessible directories.
Which should be implemented through proper commands to operate on multiple files.
The client can search files from server system and can add or delete files. When we a
desired file, the system searches the file. First, it duplicates the file and stored it in a
system. We can add a file, delete a file. We get the desired file we can stop the searching
process.
Technology used
J2SE, JDBC are used for this project.
JDK 1.3/1.4.
Windows 2000/XP.
7
Virtual Desktop
Servers used
SMPT Server: Sending the mails or messages from one to another.
FTP Server: Sending the files from one to another system.
POP (Post office Protocol) Server: Receiving the files.
TCP/IP Server: TCP/IP means transmission control protocol/internet protocol.
This is for IP addresses are maintaining uniquely
3.SYSTEM ANALYSIS:
System Analysis is first stage according to System Development Life Cycle model. This
System Analysis is a process that starts with the analyst.
Analysis is a detailed study of the various operations performed by a system and their
relationships within and outside the system. One aspect of analysis is defining the
boundaries of the system and determining whether or not a candidate should consider
other related systems. During analysis, data is collected from the available files, decision
points, and transactions handled by the present system.
Logical system models and tools are used in analysis. Training, experience, and common
sense are required for collection of the information needed to do the analysis.
Existing System
In existing system to remote accessing of a system we have to change IPaddress of a
system and we have to use the same operating system which is used in user system. So it
is difficult if we don’t have same operating system.
Problem Statement
A computer network is a communication system for connecting end system, in order to
send messages or files from one to another. So to achieve proper communication the
network should be a dedicated one. the interconnection i.e. physical connections should
be proper.
Whenever a new network is added it should not disturb the existing network. Similarly
when a network is deleted communication should be carried on properly
8
Virtual Desktop
The network should be reachable with a high reliability and should provide consistent
routing and should be able to provide solution for the routing problem
Proposed System
In the proposed system we need not to change IP address of a system. We need to
change port number or any hardware or software of a system.We can work on any
operating system .
REQURIEMENTS ANALYSIS
The requirement phase basically consists of three activities:
1. Requirement Analysis
2. Requirement Specification
3. Requirement Validation
Requirement Analysis
Requirement Analysis is a software engineering task that bridges the gap between system
level software allocation and software design. It provides the system engineer to specify
software function and performance, indicate software’s interface with the other system
elements and establish constraints that software must meet.
The basic aim of this stage is to obtain a clear picture of the needs and requirements of
the end-user and also the organization. Analysis involves interaction between the clients
and the analysis. Usually analysts research a problem from any questions asked and
reading existing documents. The analysts have to uncover the real needs of the user even
if they don’t know them clearly. During analysis it is essential that a complete and
consistent set of specifications emerge for the system. Here it is essential to resolve the
contradictions that could emerge from information got from various parties.
This is essential to ensure that the final specifications are consistent.
It may be divided into 5 areas of effort.
1. Problem recognition
2. Evaluation and synthesis
3. Modeling
4. Specification
9
Virtual Desktop
5. Review
Each Requirement analysis method has a unique point of view. However all analysis
methods are related by a set of operational principles. They are
• The information domain of the problem must be represented and
understood.
• The functions that the software is to perform must be defined.
• The behavior of the software as a consequence of external events must be
defined.
• The models that depict information, function and behavior must be
partitioned in a hierarchical or layered fashion.
• The analysis process must move from essential information to
implementation detail.
REQUIREMENTS SPECIFICATION
Specification Principles:
10
Virtual Desktop
HARDWARE REQUIREMENTS: -
SOFTWARE REQUIREMENTS: -
11
Virtual Desktop
1) Developing the system, which meets the SRS and solving all the requirements of
the system?
2) Demonstrating the system and installing the system at client's location after the
acceptance testing is successful.
3) Submitting the required user manual describing the system interfaces to work on it
and the documents of the system.
4) Conducting any user training that might be needed for using the system.
5) Maintaining the system for a period of one year after installation.
Functional Requirements:
OUTPUT DESIGN
Outputs from computer systems are required primarily to communicate the results of
processing to users. They are also used to provide a permanent copy of the results for
later consultation. The various types of outputs in general are:
• External Outputs, whose destination is outside the organization.
• Internal Outputs whose destination is with in organization and they are the
o User’s main interface with the computer.
• Operational outputs whose use is purely with in the computer department.
• Interface outputs, which involve the user in communicating directly with other
users of the system.
Output Definition
The outputs should be defined in terms of the following points:
Type of the output
Content of the output
Format of the output
Location of the output
Frequency of the output
12
Virtual Desktop
13
Virtual Desktop
14
Virtual Desktop
• Easy to use
• Portabilility
Keeping in view the above description of the input types and input media, it can be said
that most of the inputs are of the form of internal and interactive. As
Input data is to be the directly keyed in by the user, the keyboard can be considered to be
the most suitable input device.
ERROR AVOIDANCE
At this stage care is to be taken to ensure that input data remains accurate form the stage
at which it is recorded up to the stage in which the data is accepted by the system. This
can be achieved only by means of careful control each time the data is handled.
ERROR DETECTION
Even though every effort is make to avoid the occurrence of errors, still a small
proportion of errors is always likely to occur, these types of errors can be discovered by
using validations to check the input data.
DATA VALIDATION
Procedures are designed to detect errors in data at a lower level of detail. Data
validations have been included in the system in almost every area where there is a
possibility for the user to commit errors. The system will not accept invalid data.
Whenever an invalid data is keyed in, the system immediately prompts the user and the
user has to again key in the data and the system will accept the data only if the data is
correct. Validations have been included where necessary.
The system is designed to be a user friendly one. In other words the system has been
designed to communicate effectively with the user. The system has been designed with
pop up menus.
USERINTERFACE DESIGN
It is essential to consult the system users and discuss their needs while designing the user
interface:
USER INTERFACE SYSTEMS CAN BE BROADLY CLASSIFIED AS:
15
Virtual Desktop
1. User initiated interface the user is in charge, controlling the progress of the
user/computer dialogue. In the computer-initiated interface, the computer selects the
next stage in the interaction.
2. Computer initiated interfaces In the computer-initiated interfaces the computer
guides the progress of the user/computer dialogue. Information is displayed and the
user response of the computer takes action or displays further information.
USER_INITIATED INTERFACES
User initiated interfaces fall into tow approximate classes:
1. Command driven interfaces: In this type of interface the user inputs
commands or queries which are interpreted by the computer.
2. Forms oriented interface: The user calls up an image of the form to
his/her screen and fills in the form. The
3. Forms oriented interface is chosen because it is the best choice.
COMPUTER-INITIATED INTERFACES
The following computer – initiated interfaces were used:
1. The menu system for the user is presented with a list of alternatives
and the user chooses one; of alternatives.
2. Questions – answer type dialog system where the computer asks
question and takes action based on the basis of the users reply.
Right from the start the system is going to be menu driven, the opening menu displays the
available options. Choosing one option gives another popup menu with more options. In
this way every option leads the users to data entry form where the user can key in the
data.
ERROR MESSAGE DESIGN:
The design of error messages is an important part of the user interface design. As user is
bound to commit some errors or other while designing a system the system should be
16
Virtual Desktop
designed to be helpful by providing the user with information regarding the error he/she
has committed.
This application must be able to produce output at different modules for different inputs.
Performance Requirements:
6.LITERATURE REVIEW
Network Programming
TCP/IP PROTOCOL SUITE:
17
Virtual Desktop
18
Virtual Desktop
acknowledgment of the receiving end’s TCP virtual circuit session, retransmitting those
that aren’t acknowledged.
Before a transmitting host starts to send segments down the model, the sender’s TCP
protocol contacts the destination’s TCP protocol to establish a connection. What is
created is known as a virtual circuit. This type of communication is called connection-
oriented. During this initial handshake, the two layers also agree on the amount of
information that’s going to be sent before the recipient’s TCP sends back an
acknowledgment. With everything agreed upon in advance, the path is paved for reliable
communication to take place.TCP is a full duplex, connection-oriented, reliable, accurate
protocol, and establishing all these terms and conditions, in addition to error checking, no
small task. TCP is very complicated and, not surprisingly, costly in terms of network
overhead. Since today’s networks are much more reliable than those of yore, this added
reliability is often unnecessary.The TCP header is 20 bytes long. The TCP segment
contains the following fields:
Source Port – The port number of the host sending the data.
Destination port – The port number of the application requested on the destination host.
Sequence number – Puts the data back in the correct order or retransmits missing or
damaged data, a process called sequencing.
Acknowledgment number – Defines which TCP octet is expected next.
HLEN – Stands for header length, which defines the number of 32-bit words in the
header.
Reserved – Always set to zero.
Code bits – Control functions used to set up and terminate a session.
Window – The window size the sender is willing to accept, in octets.
Checksum – The cyclic redundancy check (CRC), because TCP doesn’t trust the lower
layers and checks everything. The CRC checks the header and data fields.
Urgent pointer – Indicates the end of urgent data.
19
Virtual Desktop
Option – Sets the maximum TCP segment size to either 0 or 32 bits, if any.
Data – Handed down to the TCP protocol at the Transport Layer, which includes the
upper-layer headers.
IP looks at each packet’s address. Then, using a subnet mask it decides where a packet is
to be sent next (local or remote). If it is local IP address (Based on network ID) then it
communicates directly to the specific host. If not local then it directly communicates to
the Router.
IP receives segments from the Transport Layer and fragments them into data grams. IP
then reassembles data gram back into segments on the receiving side. Each data gram is
assigned the IP address of the sender and of the recipient.
IP Address:
20
Virtual Desktop
Well...depending on whether you are using a router or not you have 2 options that I can
think of right off
1st option is to run ipconfig on each computer and it will tell you the ip address of the
computer you are on. To get the name of the computer you can go to the network
configuration settings, which I will explain in a bit how to get to.
2nd option type in the IP address of the router in the web browser of the one of the
computers connected to it, log in to the router with the username and password you used
to set it up with, and depending on the router you have you're going to want to look at the
log or look around in the different settings to see if you can't find a list of currently
connected devices almost every router I've seen to date has had a list somewhere of the
devices connected to it
Anyways back to option 1....in order to run ipconfig on your computer go to Start
menu -> Run (or hold the windows key and press r) type in ipconfig in the box that pops
up....if that doesn't work then try typing cmd in the box....you should get an msdos
looking window that pops up....from there type in ipconfig....after that look for the IP
Address it will be clearly listed there
Now as for getting to the name of the computers....I'm not sure about other operating
systems but I'm pretty sure it's quite similar across all windows operating systems but I
will give you the exact instructions from Windows 2000 Professional which is what OS I
happen to run:
21
Virtual Desktop
What Is a Socket?
Normally, a server runs on a specific computer and has a socket that is bound to a
specific port number. The server just waits, listening to the socket for a client to make a
connection request.
On the client-side: The client knows the hostname of the machine on which the server is
running and the port number on which the server is listening. To make a connection
request, the client tries to rendezvous with the server on the server's machine and port.
The client also needs to identify itself to the server so it binds to a local port number that
it will use during this connection. This is usually assigned by the system.
If everything goes well, the server accepts the connection. Upon acceptance, the server
gets a new socket bound to the same local port and has its remote endpoint set to the
address and port of the client. It needs a new socket so that it can continue to listen to the
original socket for connection requests while tending to the needs of the connected client.
22
Virtual Desktop
On the client side, if the connection is accepted, a socket is successfully created and the
client can use the socket to communicate with the server.
The client and server can now communicate by writing to or reading from their sockets.
TCP/IP (The Transmission Control Protocol/Internet Protocol) is the protocol suite that
drives the Internet. Specifically, TCP/IP handles network communications between
network nodes (computers, or nodes, connected to the net).
The suite is actually composed of several protocols including IP, which handles the
movement of data between host computers, TCP that manages the movement of data
between applications, UDP, which also manages the movement of data between
applications but is less complex and reliable than TCP, and ICMP, which transmits error
messages, and network traffic statistics.
INETADDRESS:
The Inet Address class is used to encapsulate both the numerical IP address and domain
name for that address. The InetAddress class hides the number inside.
23
Virtual Desktop
FACTORY METHODS
1. getLocalHost()
2. getByName()
3. getAllByName()
StaticInetAddressgetByName(StringHostName)throws UnKnownHostException
StaticInetAddress[]getAllByName(StringhostNamethrows UnKnownHostException
getLocalHost(): This method simply returns the InetAddress object that represents the
local host.
getByName():The method returns an InetAddress for a host name passed to it.If these
methods are unable to resolve the host name, they throw an ( UnKnownHostException)
getAllByName(): This method return an array of InetAddresses that represent all of the
address that a particular name resolves to.
INSTANCE METHODS:
The InetAddress class also has a few non static methods, it can be used on the objects
returned by methods.Boolean equals(object other)-> Returns true,if this object has same
internet address as other.Byte[ ] getAddress[]-> Returns a fair element byte array that
represents the object’s internet address in network byte order.
TCP/IP SOCKETS:
A socket can be used to connect java’s I/O system to other programs that may reside
either on the local machine or an any other machine on the internet.TCP/IP sockets are
used to implement reliable bidirectional,persistent,point to point,stream based
24
Virtual Desktop
connections between hosts on the internet. Applets may only estabilish socket
connections back to the host from which the applet was downloaded. This restriction
exists because it would be dangerous for applets loaded through a firewall to have access
to any arbitrary machine.
1. server
2. clients
The server socket class is designed to be a “ listener” which waits for clients to connect.
The sockets class is designed to connect to server sockets and initiate protocol
exchanges.
Creates a socket connecting the local host to the named host port can throw an unKnown
HostException or an IOException.
Creates a socket connecting the local host to the named host and port can throw an
UnKnownHostException or an Exception.
Creates a socket using a preexisting InetAddress object and a port can throw an
IOException.
A socket can be examined at any time for the address and port information associated
with it , by use of the following methods.
Int getPort(): Returns the remote port to which this socket object is connected
25
Virtual Desktop
Int getLocalPort(): Returns the local port for which this socket object is connected.
Socket object is used to the input and output streams associated with it.
InputStream getInputStream()
OutputStream getOutputStream()
ServerSockets are different from normal sockets when you create a serversocket. It will
register itself with the system as having an internet in client connection.
The constructors for serversocket reflect the port numbers that to accept connections.
serverSocket(int port) : creates a server socket on the specified port with a queue length
of 50.
ServerSocket(int port,int maxqueue): creates a server socket on the specified port with a
maximum queue length of maxqueue.
Creates a server socket on the specifed port with a maximum queue length of maxqueue
on a multithreaded host localAddress specifies the Ipaddress to which this socket binds.
DATAGRAMS:
Java implements datagrams on top of the UDP protocol by using two classes:
DatagramPacket , DatagramSocket.
DATAGRAM SOCKET:
26
Virtual Desktop
DATAGRAM PACKETS:
Specifies a buffer that will receive data and the size of a packet(it is used for receiving
data over a DatagramSocket).
To specifies a target address and port which are used by a Datagramsocket to determine
where the data in the packet will be sent.
SERVER
2) The computer that a server program runs in is also frequently referred to as a server
(though it may be used for other purposes as well).
3) In the client/server programming model, a server is a program that awaits and fulfills
requests from client programs in the same or other computers. A given application in a
computer may function as a client with requests for services from other programs and
also as a server of requests from other programs.
Specific to the Web, a Web server is the computer program (housed in a computer) that
serves requested HTML pages or files. A Web client is the requesting program associated
with the user. The Web browser in your computer is a client that requests HTML files
from Web servers.
27
Virtual Desktop
CLIENT
Preview pane, custom search options, search reports and other options make your search
efficient and rapid.
PORT NUMBERS
The port numbers are divided into three ranges: the Well Known Ports,
28
Virtual Desktop
The Dynamic and/or Private Ports are those from 49152 through 65535
A value of 0 in the port numbers registry below indicates that no port
has been allocated.
Browser
A browser is an application program that provides a way to look at and interact with
all the information on the World Wide Web. The word "browser" seems to have
originated prior to the Web as a generic term for user interfaces that let you browse
(navigate through and read) text files online.
The Army puts out a bid on a computer and DEC wins the bid. The Air Force puts out a
bid and IBM wins. The Navy bid is won by Unisys. Then the President decides to invade
Grenada and the armed forces discover that their computers cannot talk to each other.
The DOD must build a "network" out of systems each of which, by law, was delivered by
the lowest bidder on a single contract.
The Internet Protocol was developed to create a Network of Networks (the "Internet").
Individual machines are first connected to a LAN (Ethernet or Token Ring). TCP/IP
shares the LAN with other uses (a Novell file server, Windows for Workgroups peer
systems). One device provides the TCP/IP connection between the LAN and the rest of
the world.
29
Virtual Desktop
To insure that all types of systems from all vendors can communicate, TCP/IP is
absolutely standardized on the LAN. However, larger networks based on long distances
and phone lines are more volatile. In the US, many large corporations would wish to
reuse large internal networks based on IBM's SNA. In Europe, the national phone
companies traditionally standardize on X.25. However, the sudden explosion of high
speed microprocessors, fiber optics, and digital phone systems has created a burst of new
options: ISDN, frame relay, FDDI, Asynchronous Transfer Mode (ATM). New
30
Virtual Desktop
technologies arise and become obsolete within a few years. With cable TV and phone
companies competing to build the National Information Superhighway, no single
standard can govern citywide, nationwide, or worldwide communications.
The original design of TCP/IP as a Network of Networks fits nicely within the current
technological uncertainty. TCP/IP data can be sent across a LAN, or it can be carried
within an internal corporate SNA network, or it can piggyback on the cable TV service.
Furthermore, machines connected to any of these networks can communicate to any other
network through gateways supplied by the network vendor.
Subnets
Although the individual subscribers do not need to tabulate network numbers or provide
explicit routing, it is convenient for most Class B networks to be internally managed as a
much smaller and simpler version of the larger network organizations. It is common to
subdivide the two bytes available for internal assignment into a one byte department
number and a one byte workstation ID.
31
Virtual Desktop
The enterprise network is built using commercially available TCP/IP router boxes. Each
router has small tables with 255 entries to translate the one-byte department number into
selection of a destination Ethernet connected to one of the routers. Messages to the PC
Lube and Tune server (130.132.59.234) are sent through the national and New England
regional networks based on the 130.132 part of the number. Arriving at Yale, the 59
department ID selects an Ethernet connector in the C& IS building. The 234 selects a
particular workstation on that LAN. The Yale network must be updated as new Ethernets
and departments are added, but it is not effected by changes outside the university or the
movement of machines within the department.
32
Virtual Desktop
UDP
Definition : - UDP (User Datagram Protocol) is a communications protocol that offers
a limited amount of service when messages are exchanged between computers in a
network that uses the Internet Protocol (IP). UDP is an alternative to the Transmission
Control Protocol (TCP) and, together with IP, is sometimes referred to as UDP/IP. Like
the Transmission Control Protocol, UDP uses the Internet Protocol to actually get a data
unit (called a datagram) from one computer to another. Unlike TCP, however, UDP does
not provide the service of dividing a message into packets (data grams) and reassembling
it at the other end. Specifically, UDP does not provide sequencing of the packets that the
data arrive in. This means that the application program that uses UDP must be able to
make sure that the entire message has arrived and is in the right order. Network
applications that want to save processing time because they have very small data units to
exchange (and therefore very little message reassembling to do) may prefer UDP to TCP.
The Trivial File Transfer Protocol (TFTP) uses UDP instead of TCP.
UDP provides two services not provided by the IP layer. It provides port numbers to help
distinguish different user requests and, optionally, a checksum capability to verify that
the data arrived intact. In the Open Systems Interconnection (OSI) communication
model, UDP, like TCP, is in layer 4, the Transport Layer.
Firewall
• Packet filter: Looks at each packet entering or leaving the network and
accepts or rejects it based on user-defined rules. Packet filtering is fairly effective
33
Virtual Desktop
In practice, many firewalls use two or more of these techniques in concert. A firewall is
considered a first line of defense in protecting private information. For greater security,
data can be encrypted.
]Internet:
The Internet, sometimes called simply "the Net," is a worldwide system of computer
networks - a network of networks in which users at any one computer can, if they have
permission, get information from any other computer (and sometimes talk directly to
users at other computers).
34
Virtual Desktop
Initially the language was called as “oak” but it was renamed as “Java” in 1995. The
primary motivation of this language was the need for a platform-independent (i.e.,
architecture neutral) language that could be used to create software to be embedded in
various consumer electronic devices.
Java is a programmer’s language.
Java is cohesive and consistent.
Except for those constraints imposed by the Internet environment,
Java gives the programmer, full control.
Finally, Java is to Internet programming where C was to system programming.
35
Virtual Desktop
Every time you that you download a “normal” program, you are risking a viral infection.
Prior to Java, most users did not download executable programs frequently, and those
who did scanned them for viruses prior to execution. Most users still worried about the
possibility of infecting their systems with a virus. In addition, another type of malicious
program exists that must be guarded against. This type of program can gather private
information, such as credit card numbers, bank account balances, and passwords. Java
answers both these concerns by providing a “firewall” between a network application
and your computer. When you use a Java-compatible Web browser, you can safely
download Java applets without fear of virus infection or malicious intent.
Portability
The key that allows the Java to solve the security and portability problems is that the
output of Java compiler is Byte code. Byte code is a highly optimized set of instructions
designed to be executed by the Java run-time system, which is called the Java Virtual
Machine (JVM). That is, in its standard form, the JVM is an interpreter for byte
code.Translating a Java program into byte code helps makes it much easier to run a
program in a wide variety of environments. The reason is, once the run-time package
exists for a given system, any Java program can run on it.
Although Java was designed for interpretation, there is technically nothing about Java
that prevents on-the-fly compilation of byte code into native code. Sun has just completed
its Just In Time (JIT) compiler for byte code. When the JIT compiler is a part of JVM, it
compiles byte code into executable code in real time, on a piece-by-piece, demand basis.
It is not possible to compile an entire Java program into executable code all at once,
36
Virtual Desktop
because Java performs various run-time checks that can be done only at run time. The JIT
compiles code, as it is needed, during execution.
Beyond the language, there is the Java virtual machine. The Java virtual machine is an
important element of the Java technology. The virtual machine can be embedded within a
web browser or an operating system. Once a piece of Java code is loaded onto a machine,
it is verified. As part of the loading process, a class loader is invoked and does byte code
verification makes sure that the code that’s has been generated by the compiler will not
corrupt the machine that it’s loaded on. Byte code verification takes place at the end of
the compilation process to make sure that is all accurate and correct. So byte code
verification is integral to the compiling and executing of Java code.
Overall Description
Java
Jav
Sourc Java byte code
aVM
e
Picture showing . Class
Java the development process of JAVA Program
Java programming uses to produce byte codes and executes them. The first box indicates
that the Java source code is located in a. Java file that is processed with a Java compiler
called javac. The Java compiler produces a file called a. class file, which contains the
byte code. The. Class file is then loaded across the network or loaded locally on your
machine into the execution environment is the Java virtual machine, which interprets and
executes the byte code.
Java Architecture
37
Virtual Desktop
a dynamic system, able to load code when needed from a machine in the same room or
across the planet.
Compilation of code
When you compile the code, the Java compiler creates machine code (called byte code)
for a hypothetical machine called Java Virtual Machine (JVM). The JVM is supposed to
execute the byte code. The JVM is created for overcoming the issue of portability. The
code is written and compiled for one machine and interpreted on all machines. This
machine is called Java Virtual Machine.
During run-time the Java interpreter tricks the byte code file into thinking that it is
running on a Java Virtual Machine. In reality this could be a Intel Pentium Windows 95
or SunSARC station running Solaris or Apple Macintosh running system and all could
receive code from any computer through Internet and run the Applets.
38
Virtual Desktop
Java
Source PC Compiler Interpreter
Code (PC)
……….. Java
………..
Byte code
Macintosh Java
……….. Compiler Interpreter
(Macintosh
Java
(Platform
)Interpreter
Indepen
………… SPARC dent) ( Spare )
Compiler
Simple
Java was designed to be easy for the Professional programmer to learn and to use
effectively. If you are an experienced C++ programmer, learning Java will
be even easier. Because Java inherits the C/C++ syntax and many of the
object oriented features of C++. Most of the confusing concepts from C++
are either left out of Java or implemented in a cleaner, more approachable
manner. In Java there are a small number of clearly defined ways to
accomplish a given task.
Object-Oriented
Java was not designed to be source-code compatible with any other language. This
allowed the Java team the freedom to design with a blank slate. One outcome of this was
a clean usable, pragmatic approach to objects. The object model in Java is simple and
easy to extend, while simple types, such as integers, are kept as high-performance non-
objects.
39
Virtual Desktop
Robust
Java virtually eliminates the problems of memory management and deallocation, which is
completely automatic. In a well-written Java program, all run time errors can –and should
–be managed by your program.
Java Swing
Swing components have capabilities far beyond what the AWT components offer. Swing
buttons and labels can display images instead of or in addition to text. It is easy to add or
change the orders drawn around most Swing components. Swing components don’t have
to be rectangular. For example, buttons can be round. Assistive technologies such as
screen readers can easily get information from Swing components. Another interesting
Swing feature is that you can specify which look and feel your program’s GUI uses. One
of the standard look and feel options is a cross platform look and feel the Java Look
&feel.Swing components aren’t thread safe. If you modify a visible Swing component,
for example-from anywhere but an event handler; then you need to take special steps to
make the modification execute on the event dispatching thread.
Swing is major component of the JFC which is the result of a large collaborative effort
between Sun, Netscape, IBM and other companies. Swing provides a large number of
useful GUI controls that originated with Netscape’s Internet Foundations classes (IFC).
The Swing components go far beyond the IFC, to the point where there is no visible
resemblance between Swing components and those of the IFC. The biggest difference
between the AWT components and Swing Components is that the Swing components are
implements with absolutely no native code.
40
Virtual Desktop
Java Threads
Java uses threads to enable the entire environment to be asynchronous. Once a thread is
inside a synchronized method, no other thread can call any other synchronized method on
the same object. When a program starts executing, it runs the initialization code, calls
methods or procedures and Continues running and processing until it’s complete or until
the program ends. These program use a single Thread – where thread is a single locus
control for the program.
Multithreading, as in Java, enable several different threads to run at the same time inside
the same program, in parallel, without interfering with each other. For example, supposed
that a long computation near the start of the program’s execution, this long computation
may not be needed until later on in the program execution. If run, these kinds of
programs, waiting becomes mandatory for sometime to finish the computation and start
the execution of the rest of the program, because the program is running in single thread.
If multithreads are used the computation work in a thread can be used and the rest of the
program could be run independently.
7.SYSTEM DESIGN
The most creative and challenging phase of the life cycle is system design. The term
design describes a final system and the process by which it is developed. It refers to the
technical specifications that will be applied in implementations of the candidate system.
The design may be defined as “the process of applying various techniques and principles
for the purpose of defining a device, a process or a system with sufficient details to
permit its physical realization”.
The designer’s goal is how the output is to be produced and in what format. Samples of
the output and input are also presented. Second input data and database files have to be
designed to meet the requirements of the proposed output. The processing phases are
handled through the program Construction and Testing. Finally, details related to
justification of the system and an estimate of the impact of the candidate system on the
41
Virtual Desktop
user and the organization are documented and evaluated by management as a step toward
implementation.
The importance of software design can be stated in a single word “Quality”. Design
provides us with representations of software that can be assessed for quality. Design is
the only way where we can accurately translate a customer’s requirements into a
complete software product or system. Without design we risk building an unstable
system, that might fail if small changes are made. It may as well be difficult to test, or
could be one who’s quality can’t be tested. So it is an essential phase in the development
of a software product.
42
Virtual Desktop
A DFD is also known as a “bubble Chart” has the purpose of clarifying system
requirements and identifying major transformations that will become programs in system
design. So it is the starting point of the design to the lowest level of detail. A DFD
consists of a series of bubbles joined by data flows in the system.
DFD SYMBOLS
In the DFD, there are four symbols
1. A square defines a source(originator) or destination of system data
2. An arrow identifies data flow. It is the pipeline through which the information
flows
3. A circle or a bubble represents a process that transforms incoming data flow into
outgoing data flows.
4. An open rectangle is a data store, data at rest or a temporary repository of data
Data flow
Data Store
43
Virtual Desktop
CONSTRUCTING A DFD
Several rules of thumb are used in drawing DFD’s:
1. Process should be named and numbered for an easy reference. Each name
should be representative of the process.
2. The direction of flow is from top to bottom and from left to right. Data
traditionally flow from source to the destination although they may flow back to
the source. One way to indicate this is to draw long flow line back to a source.
An alternative way is to repeat the source symbol as a destination. Since it is used
more than once in the DFD it is marked with a short diagonal.
3. When a process is exploded into lower level details, they are numbered.
4. The names of data stores and destinations are written in capital letters.
Process and dataflow names have the first letter of each work capitalized
A DFD typically shows the minimum contents of data store. Each data store should
contain all the data elements that flow in and out.
Questionnaires should contain all the data elements that flow in and out. Missing
interfaces redundancies and like is then accounted for often through interviews.
SAILENT FEATURES OF DFD’s:-
1. The DFD shows flow of data, not of control loops and decision are
controlled considerations do not appear on a DFD.
2. The DFD does not indicate the time factor involved in any process
whether the data flows take place daily, weekly, monthly or yearly.
3. The sequence of events is not brought out on the DFD.
44
Virtual Desktop
1) CURRENT PHYSICAL:
In Current Physical DFD process label include the name of people or their positions or
the names of computer systems that might provide some of the overall system-processing
label includes an identification of the technology used to process the data. Similarly data
flows and data stores are often labels with the names of the actual physical media on
which data are stored such as file folders, computer files, business forms or computer
tapes.
2) CURRENT LOGICAL:
The physical aspects at the system are removed as mush as possible so that the current
system is reduced to its essence to the data and the processors that transforms them
regardless of actual physical form.
3) NEW LOGICAL:
This is exactly like a current logical model if the user were completely happy with he
user were completely happy with the functionality of the current system but had problems
with how it was implemented typically through the new logical model will differ from
current logical model while having additional functions, absolute function removal and
inefficient flows recognized.
4) NEW PHYSICAL:
The new physical represents only the physical implementation of the new system.
RULES GOVERNING THE DFD’S
PROCESS:-
1) No process can have only outputs.
2) No process can have only inputs. If an object has only inputs than it must be a
sink.
3) A process has a verb phrase label.
DATA STORE
1) Data cannot move directly from one data store to another data store, a process
must move data.
45
Virtual Desktop
2) Data cannot move directly from an outside source to a data store, a process,
which receives, must move data from the source and place the data into data store
3) A data store has a noun phrase label.
SOURCE OR SINK
The origin and purpose of data is explained as follows:-
1) Data cannot move direly from a source to sink it must be moved by a process
2) A source and /or sink has a noun phrase land
DATA FLOW
1) A Data Flow has only one direction of flow between symbols. It may flow in
both directions between a process and a data store to show a read before an update.
The later is usually indicated however by two separate arrows since these happen at
different type.
2) A join in DFD means that exactly the same data comes from any of two or
more different processes data store or sink to a common location.
3) A data flow cannot go directly back to the same process it leads. There must
be at least amount one other process that handles the data flow produce some other
data flow returns the original data into the beginning process.
4) A Data flow to a data store means update (delete or change).
5) A data Flow from a data store means retrieve or use.
A data flow has a noun phrase label more than one data flow noun phrase can appear on a
single arrow as long as all of the flows on the same arrow move together as one package.
46
Virtual Desktop
DATAFLOW DIAGRAMS
O – LEVEL:
Information
Request
CLIENT 1 VIRTUAL
CLIENT 2
DESK TOP
Response
Request
47
Virtual Desktop
Request
SOCKET
48
Virtual Desktop
SOCKET
CLIENT
CLIENT F1 SERVER F
F1
Request Server
1.0
Services Receiver
49
Virtual Desktop
8.SYSTEM TESTING
PROJECT TESTING
Testing is the process of detecting errors. Testing performs a very critical role for quality
assurance and for ensuring the reliability of software. The results of testing are used later
on during maintenance also.
Psychology of Testing
The aim of testing is often to demonstrate that a program works by showing that it has no
errors. The basic purpose of testing phase is to detect the errors that may be present in the
program. Hence one should not start testing with the intent of showing that a program
works, but the intent should be to show that a program doesn’t work. Testing is the
process of executing a program with the intent of finding errors.
Testing Objectives:
The main objective of testing is to uncover a host of errors, systematically and with
minimum effort and time. Stating formally, we can say,
Levels of Testing:
In order to uncover the errors present in different phases we have the concept of levels of
testing. The basic levels of testing are as shown below…
50
Virtual Desktop
Acceptance
Testing
Client Needs
System Testing
Requirements
Integration Testing
Design
Unit Testing
Code
System Testing
The philosophy behind testing is to find errors. Test cases are devised with this in mind.
A strategy employed for system testing is code testing.
Code Testing:
This strategy examines the logic of the program. To follow this method we developed
some test data that resulted in executing every instruction in the program
and module i.e.
Every path is tested. Systems are not designed as entire nor are they tested as single
systems. To ensure that the coding is perfect two types of testing is performed or for that
matter is performed or that matter is performed or for that matter is performed on all
systems.
Types of Testing
Unit Testing
Link Testing
51
Virtual Desktop
Unit Testing:
Unit testing focuses verification effort on the smallest unit of software i.e. the module.
Using the detailed design and the process specifications testing is done to uncover errors
within the boundary of the module. All modules must be successful in the unit test before
the start of the integration testing begins.
In this project each form can be thought of a module. There are so many forms like
Student Login, Admin Login, Company Login, Profile update. Giving different sets of
inputs has tested each form, when developing the form as well as finishing the
development so that each module works without any error. The inputs are validated when
accepting from the user.
Unit testing is first done on forms, independent of one another to locate errors. This
enables to detect errors. Through these errors resulting from interaction between forms
initially avoided.
Link Testing
Link testing does not test software but rather the integration of each form in system. The
primary concern is the compatibility of each module. The Programmer tests where
modules are designed with different parameters, length, type etc.
Integration Testing:
After the unit testing we have to perform integration testing. The goal here is to see if
modules can be integrated properly, the emphasis being on testing interfaces between
modules. This testing activity can be considered as testing the design and hence the
emphasis on testing module interactions.
In this project integrating all the modules forms the main system. When integrating all
the modules it has been checked whether the integration effects working of any of the
services by giving different combinations of inputs with which the two services run
perfectly before Integration.
52
Virtual Desktop
System Testing
Here the entire software system is tested. The reference document for this process is the
requirements document, and the goal is to see if software meets its requirements.
Acceptance Testing:
Acceptance Test is performed with realistic data of the client to demonstrate that the
software is working satisfactorily. Testing here is focused on external behavior of the
system; the internal logic of program is not emphasized.
Test cases should be selected so that the largest number of attributes of an equivalence
class is exercised at once. The testing phase is an important part of software development.
It is the process of finding errors and missing operations and also a complete verification
to determine whether the objectives are met and the user requirements are satisfied.
This is a unit testing method where a unit will be taken at a time and tested thoroughly at
a statement level to find the maximum possible errors. I tested step wise every piece of
code, taking care that every statement in the code is executed at least once. The white box
testing is also called Glass Box Testing.
I have generated a list of test cases, sample data which is used to check all possible
combinations of execution paths through the code at every module level.
This testing method considers a module as a single unit and checks the unit at interface
and communication with other modules rather getting into details at statement level. Here
the module will be treated as a block box that will take some input and generate output.
Output for a given set of input combinations are forwarded to other modules.
53
Virtual Desktop
activities. This phase requires well-defined input information, processes and results in
54
Virtual Desktop
Planning,
User needs Design
Definition Details
Code, debug
and Test
Integration &
Acceptance
Enhance, Fix
Adapt
The Software Design follows analysis. Design is concerned with its software
components, specifying relationships among components specifying some structure,
maintaining a record of design decisions and providing blueprint implementation phase.
Design consists of detailed design and Architectural design.
55
Virtual Desktop
9.Output Screens
RMI Screen
56
Virtual Desktop
Server screen
57
Virtual Desktop
Viewer screen 1
58
Virtual Desktop
Viewer screen 2
59
Virtual Desktop
60
Virtual Desktop
61
Virtual Desktop
62
Virtual Desktop
63
Virtual Desktop
Conclusion :
This application run in any OS. Not need particular OS , But we need compulsory java
run time 1.6.0_12 software because this application developed with this new version of
java runtime software. And use minimum 1.5 runtime software also and not use bellow
1.5 , it is compulsory.
This application Personal allows you to remotely access your computer from any
other Internet-connected computer in the world with almost any operating system through
a secure, private connection
This application is a unique Web-based technology that works with your existing firewall
and Internet infrastructure. You do not have to change or open ports, configure IP
addresses or deploy any hardware or software, and you can use your existing corporate
Internet connection. The service and architecture are designed for maximum
performance, reliability and scalability
This application is for individuals needing remote access to 1-20 PCs. It's an easy and
secure remote-access solution that enables you to conveniently access email, files,
programs and network resources from home or the road. Get unlimited access to your
PCs from any Web browser anywhere. This application is Personal allows you to access
and work on your PC on-the-fly from any location connected to the Internet. Get reliable,
convenient access to email, files, programs and network resources from home or the road.
When you are abroad or away from your computer you can access all the files and folders
in your computer remotely.
10.References
64
Virtual Desktop
1. D. Austin Henderson, Jr., Stuart Card (1986) Rooms: the use of multiple virtual
workspaces to reduce space contention in a window-based graphical user interface
ACM Transactions on Graphics (TOG)
2. User interface with multiple workspaces for sharing display system objects, US
Patent 5,533,183
3. Thomas E. LaStrange (1990) swm: An X window manager shell. USENIX
Summer.
4. Greg Donner Workbench Nostalgia site: A 2024 monitor and Workbench 1.3
modified to 1.4
External links
65