Professional Documents
Culture Documents
CONTENTS
1. ABSTRACT
2. Scope Of The Project
3. System Analysis
• Existing System
• Problem Statement
• Proposed System
• Requirement Analysis
• Requirement Specification
4. Software Requirement Specification
•Introduction
•Output Design
•Input Design
5. Literature Review
• Network Programming
• Java
• Java swings
• Java Threads
6. System Design
• Dataflow Diagrams
7. System Testing
8. Output Screens
9. Conclusion
1
Virtual Desktop
10.Bibliography
ABSTRACT
2
Virtual Desktop
Abstract
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.
3
Virtual Desktop
SCOPE OF THE
PROJECT
4
Virtual Desktop
Definition-
A virtual desktop manager is a program that allows a computer user to have more than
one user interface available simultaneously on a single computer. Each user interface is
called a virtual desktop.
Virtual desktop managers allow folders and icons to be moved from one virtual
desktop to another by dragging and dropping with a mouse, just as files can be moved
among folders on a single desktop. Each virtual desktop occupies a defined portion of
the screen, and the set of virtual desktops is arranged in a matrix or grid. The size of
the matrix depends on the number of virtual desktops.
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:
5
Virtual Desktop
characters, help messages, and how an application program or a Web site invites
interaction and responds to it. In early computers, there was very little user interface
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
6
Virtual Desktop
Objective:
7
Virtual Desktop
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
8
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.
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.
9
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.
10
Virtual Desktop
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:
SMPT Server:
11
Virtual Desktop
SYSTEM ANALYSIS
12
Virtual Desktop
System Analysis:
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
13
Virtual Desktop
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
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
14
Virtual Desktop
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
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:
15
Virtual Desktop
Requirements may be specified in a variety of ways. However there are some guidelines
worth following: -
HARDWARE REQUIREMENTS: -
SOFTWARE REQUIREMENTS: -
16
Virtual Desktop
17
Virtual Desktop
SOFTWARE
REQUIREMENT
SPECIFICATION
Purpose:
The main purpose for preparing this document is to give a general insight
into the analysis and requirements of the existing system or situation and for determining
the operating characteristics of the system.
Scope:
This Document plays a vital role in the development life cycle (SDLC)
18
Virtual Desktop
As it describes the complete requirement of the system. It is meant for use by the
developers and will be the basic during testing phase. Any changes made to the
requirements in the future will have to go through formal change approval process.
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
19
Virtual Desktop
Output Definition
For Example
. Will decimal points need to be inserted?
. Should leading zeros be suppressed?
Output Media:
In the next stage, it is to be decided that which medium is the most appropriate for
the output. The main considerations when deciding about the output media are:
20
Virtual Desktop
Keeping in view the above description, the project is to have outputs mainly
coming under the category of internal outputs. The main outputs desired according to the
requirement specification are:
The outputs were needed to be generated as a hot copy and as well as queries to
be viewed on the screen. Keeping in view these outputs, the format for the output is
taken from the outputs, which are currently being obtained after manual processing. The
standard printer is to be used as output media for hard copies.
INPUT DESIGN
Input design is a part of overall system design. The main objective during the
input designing is as given below:
• To produce a cost-effective method of input.
• To achieve the highest possible level of accuracy.
• To ensure that the input is acceptable and understood by the user.
21
Virtual Desktop
INPUT STAGES:
INPUT TYPES:
It is necessary to determine the various types of inputs. Inputs can be categorized
as follows:
• External inputs, which are prime inputs for the system.
• Internal inputs, which are user communications with the system.
• Operational, which are computer department’s communications to the
system?
• Interactive, which are inputs entered during a dialogue.
INPUT MEDIA:
At this stage, choice has to be made about the input media. To conclude about the
input media consideration has to be given to;
• Type of input
• Flexibility of format
• Speed
22
Virtual Desktop
• Accuracy
• Verification methods
• Rejection rates
• Ease of correction
• Storage and handling requirements
• Security
• 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
23
Virtual Desktop
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:
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.
24
Virtual Desktop
USER_INITIATED INTERFACES
COMPUTER-INITIATED INTERFACES
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.
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 designed to be helpful by providing the user with information regarding the error
he/she has committed.
25
Virtual Desktop
This application must be able to produce output at different modules for different
inputs.
Performance Requirements:
The requirement specification for any system can be broadly stated as given
below:
• The system should be able to interface with the existing system
• The system should be accurate
• The system should be better than the existing system
The existing system is completely dependent on the user to perform all the duties.
26
Virtual Desktop
27
Virtual Desktop
LITERATURE REVIEW
Network Programming
28
Virtual Desktop
29
Virtual Desktop
The Transmission Control Protocol (TCP) takes large blocks of information from an
application and breaks them into segments. It number and sequences each segment so that
the destination’s TCP protocol can put the segments back into order the application
intended. After these segments are sent, TCP (on the transmitting host) waits for an
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.
30
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.
There are two main reasons for the Internet Layer’s existence: routing and
providing a single network interface to the upper layers.None of the upper or lower layer
protocols have functions relating to routing. The complex and important task of routing is
the job of the Internet Layer. The Internet Layer’s second job is to provide a single
network interface to the upper-layer protocols. Without this layer, application
programmers would need to write “hooks” into every one of their applications for each
different Network Access protocol. That accomplished, it’s then the job of IP and the
various Network Access protocols to get along and work together.
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.
31
Virtual Desktop
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:
How do you know the IP address of each computer and the corresponding
name of the computer within the LAN?
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
32
Virtual Desktop
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:
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
33
Virtual Desktop
the original socket for connection requests while tending to the needs of the connected
client.
The client and server can now communicate by writing to or reading from their sockets.
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:
34
Virtual Desktop
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.
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:
35
Virtual Desktop
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 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.
36
Virtual Desktop
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
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()
37
Virtual Desktop
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:
DATAGRAM PACKETS:
38
Virtual Desktop
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:
1) In information technology, a server is a computer program that provides services to
other computer programs (and their users) in the same or other computers.
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.
39
Virtual Desktop
Client:
File Search Assistant (FSA) is a file search utility designed to make document
searching fast, easy and efficient.
With Files Search Assistant, you can search text in different file formats, for example in:
Preview pane, custom search options, search reports and other options make your search
efficient and rapid.
PORT NUMBERS
40
Virtual Desktop
The port numbers are divided into three ranges: the Well Known Ports,
The Registered Ports, and the Dynamic and/or Private Ports.
The Well Known Ports are those from 0 through 1023.
DCCP Well Known ports SHOULD NOT be used without IANA registration.
The registration procedure is defined in [RFC4340], Section 19.9.
The Dynamic and/or Private Ports are those from 49152 through 65535
Browser:
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
41
Virtual Desktop
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.
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
42
Virtual Desktop
options: ISDN, frame relay, FDDI, Asynchronous Transfer Mode (ATM). New
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
43
Virtual Desktop
44
Virtual Desktop
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.
UDP:
45
Virtual Desktop
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
and transparent to users, but it is difficult to configure. In addition, it is
susceptible to IP spoofing.
• Application gateway: Applies security mechanisms to specific
applications, such as FTP and Telnet servers. This is very effective, but can
impose performance degradation.
• Circuit-level gateway: Applies security mechanisms when a TCP or UDP
connection is established. Once the connection has been made, packets can flow
between the hosts without further checking.
• Proxy server: Intercepts all messages entering and leaving the network.
The proxy server effectively hides the true network addresses.
46
Virtual Desktop
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).
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.
47
Virtual Desktop
categories of objects are transmitted between the Server and the Personal computer. They
are: Passive information and Dynamic active programs. The Dynamic, Self-executing
programs cause serious problems in the areas of Security and probability. But, Java
addresses those concerns and by doing so, has opened the door to an exciting new form
of program called the Applet.
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.
48
Virtual Desktop
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, 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
49
Virtual Desktop
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
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
50
Virtual Desktop
portability. The code is written and compiled for one machine and interpreted on all
machines. This machine is called Java Virtual Machine.
Java
Source PC Compiler Interpreter
Code (PC)
……….. Java
………..
Byte code
Macintosh Java
……….. Compiler Interpreter
(Macintosh
Java
(Platform
)
Interpreter
Indepen
………… SPARC dent) ( Spare )
Compiler
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.
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.
51
Virtual Desktop
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.
Robust
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.
52
Virtual Desktop
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.
Java Threads
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.
53
Virtual Desktop
SYSTEM DESIGN
54
Virtual Desktop
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 user and the organization are documented and evaluated by management as
a step toward implementation.
55
Virtual Desktop
A data flow diagram is graphical tool used to describe and analyze movement of
data through a system. These are the central tool and the basis from which the other
components are developed. The transformation of data from input to output, through
processed, may be described logically and independently of physical components
associated with the system. These are known as the logical data flow diagrams. The
physical data flow diagrams show the actual implements and movement of data between
people, departments and workstations. A full description of a system actually consists of
a set of data flow diagrams. Using two familiar notations Yourdon, Gane and Sarson
notation develops the data flow diagrams. Each component in a DFD is labeled with a
descriptive name. Process is further identified with a number that will be used for
identification purpose. The development of DFD’s is done in several levels. Each
process in lower level diagrams can be broken down into a more detailed DFD in the next
level. The lop-level diagram is often called context diagram. It consists a single process
bit, which plays vital role in studying the current system. The process in the context level
diagram is exploded into other process at the first level DFD.
56
Virtual Desktop
The idea behind the explosion of a process into more process is that
understanding at one level of detail is exploded into greater detail at the next level. This
is done until further explosion is necessary and an adequate amount of detail is described
for analyst to understand the process.
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:
57
Virtual Desktop
Data flow
Data Store
CONSTRUCTING A DFD:
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.
58
Virtual Desktop
Questionnaires should contain all the data elements that flow in and out. Missing
interfaces redundancies and like is then accounted for often through interviews.
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.
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:
59
Virtual Desktop
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.
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.
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
60
Virtual Desktop
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.
61
Virtual Desktop
DATAFLOW DIAGRAMS
62
Virtual Desktop
O – LEVEL:
Information
Request
CLIENT 1 VIRTUAL
CLIENT 2
DESK TOP
Response
Request
63
Virtual Desktop
Request
SOCKET
64
Virtual Desktop
SOCKET
CLIENT
CLIENT F1 SERVER F
F1
65
Virtual Desktop
Request Server
1.0
Services Receiver
66
Virtual Desktop
SYSTEM TESTING
67
Virtual Desktop
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:
68
Virtual Desktop
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…
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.
69
Virtual Desktop
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
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.
70
Virtual Desktop
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.
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.
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.
71
Virtual Desktop
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.
72
Virtual Desktop
activities. This phase requires well-defined input information, processes and results in
This model is sometimes called the Waterfall Model, the products cascade from
one level to another in smooth progression.
73
Virtual Desktop
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.
System Testing involves two kinds of testing integration testing and acceptance
testing. Developing a strategy for integrating the components of a software system into a
functioning requires careful planning so that modules are available for integration when
needed. Acceptance testing involves planning and execution of various tests in order to
demonstrate that the implemented system satisfies the requirement document.
The Maintenance phase comes after the acceptance of the product by the
customer and release of the system for production work. Maintenance activities include
74
Virtual Desktop
This project follows the Phased Life Cycle Model or the Water Fall model to a
large extent.
Hosts_Up is a file in which all the nodes that are active to take part in the
communication are present. In order to make an entry into this file initially the
administrator has to Up it into the network after having received a signal from it if it is
not already present in the file.
So, if the clients IP so received happens to be a new valid IP it is checked for its
entry in the Hosts_Up file, if not present the file is updated with the name of the system
and the IP address.
Now the session starts and both exchange information as explained in TCP/IP and
it also uses the TFTP for file transfer.
75
Virtual Desktop
Output Screens
76
Virtual Desktop
RMI Screen :
77
Virtual Desktop
Server screen :
78
Virtual Desktop
Viewer screen 1:
79
Virtual Desktop
Viewer screen 2:
80
Virtual Desktop
in Mac OS X "Leopard"
Conclusion :
84
Virtual Desktop
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.
Bibliography :
85
Virtual Desktop
References :
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)
External links :
• Ars Technica: "The Micro-AmigaOne and Amiga OS4
Developer Prerelease" (Update 1), By Jeremy Reimer,
86
Virtual Desktop
Retrieved from
"http://en.wikipedia.org/wiki/Virtual_desktop"
87