You are on page 1of 87

Virtual Desktop

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

VIRTUAL DESKTOP MANAGER:

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.

Several vendors offer virtual desktop managers.

So, first, what is a 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:

Definition :- In information technology, the user interface (UI) is everything designed


into an information device with which a human being may interact -- including
display screen, keyboard, mouse, light pen, the appearance of a desktop, illuminated

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

Virtual Desktop Manager

6
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.

7
Virtual Desktop

• Sending and receiving the messages.


• Connecting different clients.
• File searching in server system.
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

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.

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.

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.

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.

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:

 J2SE, JDBC are used for this project.


 JDK 1.3/1.4.
 Windows 2000/XP.
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

11
Virtual Desktop

SYSTEM ANALYSIS

12
Virtual Desktop

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

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:

Software Requirements Specification plays an important role in creating quality


software solutions. Specification is basically a representation process. Requirements are
represented in a manner that ultimately leads to successful software implementation.

15
Virtual Desktop

Requirements may be specified in a variety of ways. However there are some guidelines
worth following: -

• Representation format and content should be relevant to the problem


• Information contained within the specification should be nested
• Diagrams and other notational forms should be restricted in number and
consistent in use.
• Representations should be revisable.

Software Requirements Specifications:

The software requirements specification is produced at the culmination of the


analysis task. The function and performance allocated to the software as a part of system
engineering are refined by establishing a complete information description, a detailed
functional and behavioral description, and indication of performance requirements and
design constraints, appropriate validation criteria and other data pertinent to
requirements.

HARDWARE AND SOFTWARE REQUIREMENTS:

HARDWARE REQUIREMENTS: -

• Pentium Min. 233 MHz.


• 64 to 256 MB Ram
• 512 KB Cache Memory
• Hard disk 20 GB

SOFTWARE REQUIREMENTS: -

16
Virtual Desktop

• Operating System : Windows 2000/NT/XP


• Language : JDK1.3/1.4,socket Programming
• Protocols : TCP/IP,UDP

17
Virtual Desktop

SOFTWARE
REQUIREMENT
SPECIFICATION

SOFTWARE REQUIREMENT SPECIFICATION:


INTRODUCTON

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. Developers Responsibilities Overview:

The developer is responsible for:

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

19
Virtual Desktop

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
 Volume of the output
 Sequence of the output

It is not always desirable to print or display data as it is held on a computer. It


should be decided as which form of the output is the most suitable.

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:

The suitability for the device to the particular application.


 The need for a hard copy
 The response time required.

20
Virtual Desktop

 The location of the users


 The software and hardware available.
 The cost.

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:

The main input stages can be listed as below:


• Data recording
• Data transcription
• Data converting
• Data verification
• Data control
• Data transmission
• Data validation
• Data correction

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:

USER INTERFACE SYSTEMS CAN BE BROADLY CLASSIFIED AS:

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

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 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:

Performance is measured in terms of the output provided by the application.

Requirement specification plays an important part in the analysis of a system.


Only when the requirement specifications are properly given, it is possible to design a
system, which will fit into required environment. It rests largely in the part of the users
of the existing system to give the requirement specifications because they are the people
who finally use the system. This is because the requirements have to be known during
the initial stages so that the system can be designed according to those requirements. It is
very difficult to change the system once it has been designed and on the other hand
designing a system, which does not cater to the requirements of the user, is of no use.

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

TCP/IP PROTOCOL SUITE:

28
Virtual Desktop

fig. 1-8 Tcp/Ip protocol Suite


THE APPLICATION LAYER PROTOCOLS:

The Application combines the top three layers (Application, Presentation,


Session). This layer defines protocol for node-to-node application communication and
also controls user-interface specifications.

THE TRANSPORT LAYER:


The main purpose is to shield the upper-layer application from the complexities of
the network.

TRANSMISSION CONTROL PROTOCOL :

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.

THE INTERNET LAYER PROTOCOLS:

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.

INTERNET PROTOCOL (IP):

Internet Protocol (IP) is a connectionless protocol that gateways use to identify


networks and paths to networks and hosts. In other words, IP handles the routing of
data between networks and nodes on those networks.
The Internet Protocol (IP) essentially is the Internet Layer. The other protocols
found here merely exist to support it. IP contains the big picture and could be said to “
see all”, in that it is aware of all the interconnected networks. It can do this because all
the machines on the network have software, or logical address called an IP address.

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:

An identifier for a computer or device on a TCP/IP network. Networks using


the TCP/IP protocol route messages based on the IP address of the destination. The
format of an IP address is a 32-bit numeric address written as four numbers
separated by periods. Each number can be zero to 255. For example, 1.160.10.240
could be an 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

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

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:

1. Right click on the My Computer icon, which is located on the desktop


2. Left click on properties
3. Go to the Network Identification tab
4. Click the properties button
5. Look at the value in the Computer Name box
6. Now you know what the computer's name is.

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.

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.

Definition: A socket is one endpoint of a two-way communication link between two


programs running on the network. A socket is bound to a port number so that the TCP
layer can identify the application that data is destined to be sent.

The Basics of TCP/IP :

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:

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:

The InetAddress class has no visible constructors.To create an InetAddress object


, we have to use factory methods.Factory methods are static methods in a class return an
instance of that class.

Three methods are,

1. getLocalHost()

2. getByName()

3. getAllByName()

StaticInetAddress getLocalHost() throws UnKnownHostException

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.

TWO KINDS OF TCP SOCKETS:

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.

TCP/IP CLIENT SOCKETS:

36
Virtual Desktop

To create a socket object,

Socket(String hostName,int port)

Creates a socket connecting the local host to the named host port can throw an unKnown
HostException or an IOException.

Socket(InetAddress ipAddress,int port)

Creates a socket connecting the local host to the named host and port can throw an
UnKnownHostException or an Exception.

Socket(InetAddress ipAddress , int port)

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.

InetAddress getinitAddress(): Returns the InetAddress assocated with the socket


object.

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()

Returns the InputStream associated with the invoking socket.

OutputStream getOutputStream()

Returns the outputStream associated with the invoking socket.

Void close():closes both the InputStream and OutputStream

TCP/IP SERVER SOCKETS:

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.

The constructors are as follows:

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.

ServerSocket(int port,int maxQueue,InetAddress localAddress)

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:

Datagrams are bundles of information passed between machines.

Java implements datagrams on top of the UDP protocol by using two classes:
DatagramPacket , DatagramSocket.

DATAGRAM SOCKET:

Datagram socket is the mechanism used to send or receive the


DatagramPackets.

DATAGRAM PACKETS:

DatagramPackets can be created with one of four constructors.

DatagramPacket(byte data[],int size)

DatagramPacket(byte data[],int offset,int size)

DatagramPacket(byte data[],int size,InetAddress ipAddress,int port)

DatagramPacket(byte data[],int offset,int size,InetAddress ipAddress,int port)

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 specify an offset into the buffer at which data will be stored.

To specifies a target address and port which are used by a Datagramsocket to determine
where the data in the packet will be sent.

To transmits packets beginning at the specified offset into the data

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.

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.

39
Virtual Desktop

Client:

Definition- A client is the requesting program or user in a client/server relationship. For


example, the user of a Web browser is effectively making client requests for pages from
servers all over the Web. The browser itself is a client in its relationship with the
computer that is getting and returning the requested HTML file. The computer handling
the request and sending back the HTML file is a server

FILE SEARCH ASSISTANT DESCRIPTION


File Searching:

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:

• Adobe Acrobat (PDF) documents;


• MS Office files Excel (xls) files;
• Microsoft Word (.doc) files.

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 Registered Ports are those from 1024 through 49151

DCCP Registered 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

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.

Network of Lowest Bidders

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.

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.

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

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.

43
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

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:

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.

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:

A system designed to prevent unauthorized access to or from a private network.


Firewalls can be implemented in both hardware and software, or a combination of both.
Firewalls are frequently used to prevent unauthorized Internet users from accessing
private networks connected to the Internet, especially intranets. All messages entering or
leaving the intranet pass through the firewall, which examines each message and blocks
those that do not meet the specified security criteria.

There are several types of firewall techniques:

• 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.

In practice, many firewalls use two or more of these techniques in concert.

46
Virtual Desktop

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).

Today, the Internet is a public, cooperative, and self-sustaining facility accessible


to hundreds of millions of people worldwide. Physically, the Internet uses a portion of the
total resources of the currently existing public telecommunication networks. Technically,
what distinguishes the Internet is its use of a set of protocols called TCP/IP (for
Transmission Control Protocol/Internet Protocol). Two recent adaptations of Internet
technology, the intranet and the extranet, also make use of the TCP/IP protocol.

Features Of The Java Language


About Java

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.

Importance of Java to the Internet


Java has had a profound effect on the Internet. This is because; Java expands the
Universe of objects that can move about freely in Cyberspace. In a network, two

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.

Java can be used to create two types of programs


Applications and Applets: An application is a program that runs on our
Computer under the operating system of that computer. It is more or less like one creating
using C or C++. Java’s ability to create Applets makes it important. An Applet is an
application designed to be transmitted over the Internet and executed by a Java –
compatible web browser. An applet is actually a tiny Java program, dynamically
downloaded across the network, just like an image. But the difference is, it is an
intelligent program, not just a media file. It can react to the user input and dynamically
change.

Features Of Java Security

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

For programs to be dynamically downloaded to all the various types of platforms


connected to the Internet, some means of generating portable executable code is
needed .As you will see, the same mechanism that helps ensure security also helps create
portability. Indeed, Java’s solution to these two problems is both elegant and efficient.

The Byte code

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.

Java Virtual Machine (JVM)

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

Java architecture provides a portable, robust, high performing environment for


development. Java provides portability by compiling the byte codes for the Java Virtual
Machine, which is then interpreted on each platform by the run-time environment. Java is
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

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.

Compiling and interpreting Java Source Code

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

The multi-platform environment of the Web places extraordinary demands on a


program, because the program must execute reliably in a variety of systems. The ability
to create robust programs was given a high priority in the design of Java. Java is strictly
typed language; it checks your code at compile time and run time.

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.

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

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.

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.

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

55
Virtual Desktop

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.

DATA FLOW DIAGRAMS

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.

Larry Constantine first developed the DFD as a way of expressing system


requirements in a graphical from, this lead to the modular design.

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

Process that transforms data flow.

57
Virtual Desktop

Source or Destination of data

Data flow

Data Store

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.

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.

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.

TYPES OF DATA FLOW DIAGRAMS


1. Current Physical
2. Current Logical
3. New Logical
4. New Physical

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.

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.
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

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.

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

VCLIENT 1 VIRTUAL VSERVER 1


Response DESK
TOP

SOCKET

SERVER F VIRTUL CLIENT F


DESK
TOP
Send Receiver

64
Virtual Desktop

SOCKET

CLIENT
CLIENT F1 SERVER F
F1

65
Virtual Desktop

Request Server
1.0

V CLIENT V Server V CLIENT

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:

The main objective of testing is to uncover a host of errors, systematically and


with minimum effort and time. Stating formally, we can say,

 Testing is a process of executing a program with the intent of finding an error.


 A successful test is one that uncovers an as yet undiscovered error.
 A good test case is one that has a high probability of finding error, if it exists.
 The tests are inadequate to detect possibly present errors.
 The software more or less confirms to the quality and reliable standards.

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.

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.

White Box Testing:

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.

Black Box Testing:

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.

Criteria Satisfied by Test Cases:

1) Test cases that reduced by a count that is greater


than one, the number of additional test cases that much be designed to achieve
reasonable testing.

2) Test cases that tell us something about the presence


or absence of classes of errors, rather than an error associated only with the
specific test at hand.

72
Virtual Desktop

LIFE CYCLE MODELS

The stage of planning and development process involves defining, developing,


testing, delivering, operating, and maintaining a software product. Different lifecycle
models emphasize different aspects and no single lifecycle model is suitable for all
software products. A lifecycle model that is understood and accepted improves project
communication and enhances project manageability, resource allocation, cost control, and
product quality.

The Phased Life Cycle Model

The phased lifecycle model represents software lifecycle as a series of successive

activities. This phase requires well-defined input information, processes and results in

well-defined products. The phased lifecycle model consists of following phases.

Analysis, Design, Implementation, System Testing and Maintenance

This model is sometimes called the Waterfall Model, the products cascade from
one level to another in smooth progression.

Analysis Design Implementation System Maintenance


Testing
Planning,
User needs Design
Definition Details

73
Virtual Desktop

Code, debug
and Test
Integration &
Acceptance
Enhance, Fix
Adapt

The Analysis Stage consists of Planning and Requirements definition.


A feasibility study, developing a recommended solution strategy, determining the
acceptance criteria and planning development process. The products of planning are a
System definition and a project plan.

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.

The implementation phase of software development involves translation of


design specification into source code, and debugging, documenting and unit testing the
source code. To enhance the quality of the software the methods are structured control
constructs, built in and user defined data types, secure type checking, flexible scope rules
exception handling mechanism, concurrency constructs and separates compilation
modules.

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

enhancements of capabilities, adaptation of software to new processing environments,


and correction of software bugs.

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

Press start screen :


81
Virtual Desktop

Out put screen :


82
Virtual Desktop

Output screen on Mac OS :


83
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)

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 :
• Ars Technica: "The Micro-AmigaOne and Amiga OS4
Developer Prerelease" (Update 1), By Jeremy Reimer,

86
Virtual Desktop

Monday January 17, 2005 ("Desktop and drawers"


section).

Retrieved from
"http://en.wikipedia.org/wiki/Virtual_desktop"

Categories: Graphical user interface | User interface


techniques

For java programs:


J2SE 5th edition author by Herbert schildt
Programming with java A primer 3rd edition author by
E . Balagurusamy.

87

You might also like