Вы находитесь на странице: 1из 65

Virtual Desktop

1. INTRODUCTION

This application Personal allows you to remotely access your computer from any
other Internet-connected computer in the world with almost any operating system through
a secure, private connection
This application is a unique Web-based technology that works with your existing firewall
and Internet infrastructure. You do not have to change or open ports, configure IP
addresses or deploy any hardware or software, and you can use your existing corporate
Internet connection. The service and architecture are designed for maximum
performance, reliability and scalability
This application is for individuals needing remote access to 1-20 PCs. It's an easy and
secure remote-access solution that enables you to conveniently access email, files,
programs and network resources from home or the road. Get unlimited access to your
PCs from any Web browser anywhere
This application is Personal allows you to access and work on your PC on-the-fly from
any location connected to the Internet. Get reliable, convenient access to email, files,
programs and network resources from home or the road.
When you are abroad or away from your computer you can access all the files and folders
in your computer remotely.

1
Virtual Desktop

2.SCOPE OF THE PROJECT

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

2
Virtual Desktop

except for a few buttons at an operator's console. The user interface was largely in the
form of punched card input and report output

Virtual Desktop Manager

3
Virtual Desktop

Objective
The main objective of this project is to implement remote accessing of a system.
Based on this application personal allows you to remotely access your computer from
any other internet connected computer in the world with almost any operating
system through a secure private connection. This service and architecture is designed
for improving the performance, reliability and scalability. You do not have to change or
open ports, configure IP addresses or deploy any hardware or software, and you can use
your existing corporate connection. An easy and secured remote access solution enables
you to conveniently access e-mail, files, programs and network resources from home or
the road.
The main facilities of this project are:
• Connecting Server and Client.
• Generating a Socket to establish connection.
• Sending and receiving the messages.
• Connecting different clients.
• File searching in server system.

4
Virtual Desktop

Overall Description
The main goal of this project is to implement Remote accessing of system when we are
on Road or any where . The global communication is solved in great deal by the
introduction of Internet. This made the necessity of networking in communication clear.
The Internet protocol TCP/IP and also UDP uses computers called Gateways, which
provide interconnections among physical networks and also provides wireless
connection. .
This application is a unique web based technology that works with existing firewall and
Internet infrastructure.You do not have to change or open ports ,configure IP address or
deploy any hardware ,software ,and u can use your existing corporate internet
connection.The service and architecture are designed for maximum performance,
reliability and scalability.
Socket programming
Socket are application progarmme interface i.e., they providethe user interface wiyh the
system. They can be used for local inter process communicationand also across TCP/IP
networks.They allow unrelated process to exchange data locally over networks. They
provide both connection and connectionless modes of commution
Socket is a two way communication channel and provides the following services
1. Creation and naming of socket
2. Waiting for a connection
3. Acceptng and making socket connection
4. Sending and Receiving data
5. Closing the socket connection
6. translating network address

5
Virtual Desktop

Socket Process
Socket is application programme interface. i.e., they provide the user interface with the
system. They can be used for local inter process communication and TCP/IP networks.
They allow unrelated process to exchange data locally over networks. They provide both
connection and connectionless modes of communication.
Socket is a two-way communication channel and provides the following services.
1. Create and naming of socket.
2. Waiting for a connection.
3. Accepting and making socket connection.
4. Sending and Reciving data.
5. Closing the socket connection.
6. Translating network address.

Server Process
First, the protocol server opens a port and registers the IP address of the client.
When a client request arise the server process spawns a separate process/thread to take up
on client.
When a particular client attempts to a server it creates a separate process to the client.
This process is same for every incoming clients. The server returns a welcome message
to the client indicating that the initial handshaking has been successfully.
Ofter successfully receiving the client connection, the server then proceeds to setup the
user directory, which the user will be using for either querying the contents, sorting files
or retrieving files. The server also assigns appropriate privileges & security to the
directory also called user directory.

6
Virtual Desktop

Client Process
The current project scope should involve in developing client to achieve the above-
mentioned features in a platform neutral, network neutral manner with a GUI interface as
supported by traditional command line interfaces provided by most operating systems.

The client has to have prior information of the IP address of the server and also the port
on which it is listening for requests. On the other hand, if the authentication schema has
failed at the server then the server returns an error code after which the client is simply
disconnected.

After this process, the client then proceeds to make the requests. The requests that a client
can make to the server can be categorized into 3 types.
• Access Controle Commands.
• Transfer Parameter Commands.
• Protocol Service Commands.
File Searching Process
The prototype of the file transfer protocol should be introduced as an application level
protocol. It should involve in opening a connection to a remote server from the client.
Next, the client should provided a means for performing a series of well-defined
commands on the server to browse, create, delete, and set the current working directory.
The user should have permission to write or delete files from the accessible directories.
Which should be implemented through proper commands to operate on multiple files.
The client can search files from server system and can add or delete files. When we a
desired file, the system searches the file. First, it duplicates the file and stored it in a
system. We can add a file, delete a file. We get the desired file we can stop the searching
process.
Technology used
 J2SE, JDBC are used for this project.
 JDK 1.3/1.4.
 Windows 2000/XP.

7
Virtual Desktop

Servers used
SMPT Server: Sending the mails or messages from one to another.
FTP Server: Sending the files from one to another system.
POP (Post office Protocol) Server: Receiving the files.
TCP/IP Server: TCP/IP means transmission control protocol/internet protocol.
This is for IP addresses are maintaining uniquely

3.SYSTEM ANALYSIS:

System Analysis is first stage according to System Development Life Cycle model. This
System Analysis is a process that starts with the analyst.
Analysis is a detailed study of the various operations performed by a system and their
relationships within and outside the system. One aspect of analysis is defining the
boundaries of the system and determining whether or not a candidate should consider
other related systems. During analysis, data is collected from the available files, decision
points, and transactions handled by the present system.
Logical system models and tools are used in analysis. Training, experience, and common
sense are required for collection of the information needed to do the analysis.
Existing System
In existing system to remote accessing of a system we have to change IPaddress of a
system and we have to use the same operating system which is used in user system. So it
is difficult if we don’t have same operating system.
Problem Statement
A computer network is a communication system for connecting end system, in order to
send messages or files from one to another. So to achieve proper communication the
network should be a dedicated one. the interconnection i.e. physical connections should
be proper.
Whenever a new network is added it should not disturb the existing network. Similarly
when a network is deleted communication should be carried on properly

8
Virtual Desktop

The network should be reachable with a high reliability and should provide consistent
routing and should be able to provide solution for the routing problem

Proposed System
In the proposed system we need not to change IP address of a system. We need to
change port number or any hardware or software of a system.We can work on any
operating system .
REQURIEMENTS ANALYSIS
The requirement phase basically consists of three activities:

1. Requirement Analysis
2. Requirement Specification
3. Requirement Validation
Requirement Analysis
Requirement Analysis is a software engineering task that bridges the gap between system
level software allocation and software design. It provides the system engineer to specify
software function and performance, indicate software’s interface with the other system
elements and establish constraints that software must meet.
The basic aim of this stage is to obtain a clear picture of the needs and requirements of
the end-user and also the organization. Analysis involves interaction between the clients
and the analysis. Usually analysts research a problem from any questions asked and
reading existing documents. The analysts have to uncover the real needs of the user even
if they don’t know them clearly. During analysis it is essential that a complete and
consistent set of specifications emerge for the system. Here it is essential to resolve the
contradictions that could emerge from information got from various parties.
This is essential to ensure that the final specifications are consistent.
It may be divided into 5 areas of effort.

1. Problem recognition
2. Evaluation and synthesis
3. Modeling
4. Specification

9
Virtual Desktop

5. Review
Each Requirement analysis method has a unique point of view. However all analysis
methods are related by a set of operational principles. They are
• The information domain of the problem must be represented and
understood.
• The functions that the software is to perform must be defined.
• The behavior of the software as a consequence of external events must be
defined.
• The models that depict information, function and behavior must be
partitioned in a hierarchical or layered fashion.
• The analysis process must move from essential information to
implementation detail.

REQUIREMENTS SPECIFICATION

Specification Principles:

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

10
Virtual Desktop

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

• Operating System : Windows 2000/NT/XP


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

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

11
Virtual Desktop

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
o User’s main interface with the computer.
• Operational outputs whose use is purely with in the computer department.
• Interface outputs, which involve the user in communicating directly with other
users of the system.
Output Definition
The outputs should be defined in terms of the following points:
Type of the output
 Content of the output
 Format of the output
 Location of the output
 Frequency of the output

12
Virtual Desktop

 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.
 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.
INPUT STAGES:

13
Virtual Desktop

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
• Accuracy
• Verification methods
• Rejection rates
• Ease of correction
• Storage and handling requirements
• Security

14
Virtual Desktop

• Easy to use
• Portabilility
Keeping in view the above description of the input types and input media, it can be said
that most of the inputs are of the form of internal and interactive. As
Input data is to be the directly keyed in by the user, the keyboard can be considered to be
the most suitable input device.

ERROR AVOIDANCE
At this stage care is to be taken to ensure that input data remains accurate form the stage
at which it is recorded up to the stage in which the data is accepted by the system. This
can be achieved only by means of careful control each time the data is handled.
ERROR DETECTION
Even though every effort is make to avoid the occurrence of errors, still a small
proportion of errors is always likely to occur, these types of errors can be discovered by
using validations to check the input data.
DATA VALIDATION
Procedures are designed to detect errors in data at a lower level of detail. Data
validations have been included in the system in almost every area where there is a
possibility for the user to commit errors. The system will not accept invalid data.
Whenever an invalid data is keyed in, the system immediately prompts the user and the
user has to again key in the data and the system will accept the data only if the data is
correct. Validations have been included where necessary.
The system is designed to be a user friendly one. In other words the system has been
designed to communicate effectively with the user. The system has been designed with
pop up menus.
USERINTERFACE DESIGN
It is essential to consult the system users and discuss their needs while designing the user
interface:
USER INTERFACE SYSTEMS CAN BE BROADLY CLASSIFIED AS:

15
Virtual Desktop

1. User initiated interface the user is in charge, controlling the progress of the
user/computer dialogue. In the computer-initiated interface, the computer selects the
next stage in the interaction.
2. Computer initiated interfaces In the computer-initiated interfaces the computer
guides the progress of the user/computer dialogue. Information is displayed and the
user response of the computer takes action or displays further information.

USER_INITIATED INTERFACES
User initiated interfaces fall into tow approximate classes:
1. Command driven interfaces: In this type of interface the user inputs
commands or queries which are interpreted by the computer.
2. Forms oriented interface: The user calls up an image of the form to
his/her screen and fills in the form. The
3. Forms oriented interface is chosen because it is the best choice.
COMPUTER-INITIATED INTERFACES
The following computer – initiated interfaces were used:
1. The menu system for the user is presented with a list of alternatives
and the user chooses one; of alternatives.
2. Questions – answer type dialog system where the computer asks
question and takes action based on the basis of the users reply.
Right from the start the system is going to be menu driven, the opening menu displays the
available options. Choosing one option gives another popup menu with more options. In
this way every option leads the users to data entry form where the user can key in the
data.
ERROR MESSAGE DESIGN:
The design of error messages is an important part of the user interface design. As user is
bound to commit some errors or other while designing a system the system should be

16
Virtual Desktop

designed to be helpful by providing the user with information regarding the error he/she
has committed.
This application must be able to produce output at different modules for different inputs.
Performance Requirements:

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

6.LITERATURE REVIEW
Network Programming
TCP/IP PROTOCOL SUITE:

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

18
Virtual Desktop

acknowledgment of the receiving end’s TCP virtual circuit session, retransmitting those
that aren’t acknowledged.

Before a transmitting host starts to send segments down the model, the sender’s TCP
protocol contacts the destination’s TCP protocol to establish a connection. What is
created is known as a virtual circuit. This type of communication is called connection-
oriented. During this initial handshake, the two layers also agree on the amount of
information that’s going to be sent before the recipient’s TCP sends back an
acknowledgment. With everything agreed upon in advance, the path is paved for reliable
communication to take place.TCP is a full duplex, connection-oriented, reliable, accurate
protocol, and establishing all these terms and conditions, in addition to error checking, no
small task. TCP is very complicated and, not surprisingly, costly in terms of network
overhead. Since today’s networks are much more reliable than those of yore, this added
reliability is often unnecessary.The TCP header is 20 bytes long. The TCP segment
contains the following fields:

Source Port – The port number of the host sending the data.
Destination port – The port number of the application requested on the destination host.
Sequence number – Puts the data back in the correct order or retransmits missing or
damaged data, a process called sequencing.
Acknowledgment number – Defines which TCP octet is expected next.
HLEN – Stands for header length, which defines the number of 32-bit words in the
header.
Reserved – Always set to zero.
Code bits – Control functions used to set up and terminate a session.
Window – The window size the sender is willing to accept, in octets.
Checksum – The cyclic redundancy check (CRC), because TCP doesn’t trust the lower
layers and checks everything. The CRC checks the header and data fields.
Urgent pointer – Indicates the end of urgent data.

19
Virtual Desktop

Option – Sets the maximum TCP segment size to either 0 or 32 bits, if any.
Data – Handed down to the TCP protocol at the Transport Layer, which includes the
upper-layer headers.

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.

IP receives segments from the Transport Layer and fragments them into data grams. IP
then reassembles data gram back into segments on the receiving side. Each data gram is
assigned the IP address of the sender and of the recipient.

IP Address:

20
Virtual Desktop

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
looking window that pops up....from there type in ipconfig....after that look for the IP
Address it will be clearly listed there

Now as for getting to the name of the computers....I'm not sure about other operating
systems but I'm pretty sure it's quite similar across all windows operating systems but I
will give you the exact instructions from Windows 2000 Professional which is what OS I
happen to run:

21
Virtual Desktop

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 the
original socket for connection requests while tending to the needs of the connected client.

22
Virtual Desktop

On the client side, if the connection is accepted, a socket is successfully created and the
client can use the socket to communicate with the server.

The client and server can now communicate by writing to or reading from their sockets.

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:

The Inet Address class is used to encapsulate both the numerical IP address and domain
name for that address. The InetAddress class hides the number inside.

23
Virtual Desktop

FACTORY METHODS

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:

The InetAddress class also has a few non static methods, it can be used on the objects
returned by methods.Boolean equals(object other)-> Returns true,if this object has same
internet address as other.Byte[ ] getAddress[]-> Returns a fair element byte array that
represents the object’s internet address in network byte order.

TCP/IP SOCKETS:

A socket can be used to connect java’s I/O system to other programs that may reside
either on the local machine or an any other machine on the internet.TCP/IP sockets are
used to implement reliable bidirectional,persistent,point to point,stream based

24
Virtual Desktop

connections between hosts on the internet. Applets may only estabilish socket
connections back to the host from which the applet was downloaded. This restriction
exists because it would be dangerous for applets loaded through a firewall to have access
to any arbitrary machine.

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

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

25
Virtual Desktop

Int getLocalPort(): Returns the local port for which this socket object is connected.

Socket object is used to the input and output streams associated with it.

InputStream getInputStream()

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:

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.

26
Virtual Desktop

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)

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.

27
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

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.

28
Virtual Desktop

The Dynamic and/or Private Ports are those from 49152 through 65535
A value of 0 in the port numbers registry below indicates that no port
has been allocated.

Browser

A browser is an application program that provides a way to look at and interact with
all the information on the World Wide Web. The word "browser" seems to have
originated prior to the Web as a generic term for user interfaces that let you browse
(navigate through and read) text files online.

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 other.
The DOD must build a "network" out of systems each of which, by law, was delivered by
the lowest bidder on a single contract.

The Internet Protocol was developed to create a Network of Networks (the "Internet").
Individual machines are first connected to a LAN (Ethernet or Token Ring). TCP/IP
shares the LAN with other uses (a Novell file server, Windows for Workgroups peer
systems). One device provides the TCP/IP connection between the LAN and the rest of
the world.

29
Virtual Desktop

To insure that all types of systems from all vendors can communicate, TCP/IP is
absolutely standardized on the LAN. However, larger networks based on long distances
and phone lines are more volatile. In the US, many large corporations would wish to
reuse large internal networks based on IBM's SNA. In Europe, the national phone
companies traditionally standardize on X.25. However, the sudden explosion of high
speed microprocessors, fiber optics, and digital phone systems has created a burst of new
options: ISDN, frame relay, FDDI, Asynchronous Transfer Mode (ATM). New

30
Virtual Desktop

technologies arise and become obsolete within a few years. With cable TV and phone
companies competing to build the National Information Superhighway, no single
standard can govern citywide, nationwide, or worldwide communications.

The original design of TCP/IP as a Network of Networks fits nicely within the current
technological uncertainty. TCP/IP data can be sent across a LAN, or it can be carried
within an internal corporate SNA network, or it can piggyback on the cable TV service.
Furthermore, machines connected to any of these networks can communicate to any other
network through gateways supplied by the network vendor.

Subnets

Although the individual subscribers do not need to tabulate network numbers or provide
explicit routing, it is convenient for most Class B networks to be internally managed as a
much smaller and simpler version of the larger network organizations. It is common to
subdivide the two bytes available for internal assignment into a one byte department
number and a one byte workstation ID.

31
Virtual Desktop

The enterprise network is built using commercially available TCP/IP router boxes. Each
router has small tables with 255 entries to translate the one-byte department number into
selection of a destination Ethernet connected to one of the routers. Messages to the PC
Lube and Tune server (130.132.59.234) are sent through the national and New England
regional networks based on the 130.132 part of the number. Arriving at Yale, the 59
department ID selects an Ethernet connector in the C& IS building. The 234 selects a
particular workstation on that LAN. The Yale network must be updated as new Ethernets
and departments are added, but it is not effected by changes outside the university or the
movement of machines within the department.

32
Virtual Desktop

UDP
Definition : - UDP (User Datagram Protocol) is a communications protocol that offers
a limited amount of service when messages are exchanged between computers in a
network that uses the Internet Protocol (IP). UDP is an alternative to the Transmission
Control Protocol (TCP) and, together with IP, is sometimes referred to as UDP/IP. Like
the Transmission Control Protocol, UDP uses the Internet Protocol to actually get a data
unit (called a datagram) from one computer to another. Unlike TCP, however, UDP does
not provide the service of dividing a message into packets (data grams) and reassembling
it at the other end. Specifically, UDP does not provide sequencing of the packets that the
data arrive in. This means that the application program that uses UDP must be able to
make sure that the entire message has arrived and is in the right order. Network
applications that want to save processing time because they have very small data units to
exchange (and therefore very little message reassembling to do) may prefer UDP to TCP.
The Trivial File Transfer Protocol (TFTP) uses UDP instead of TCP.
UDP provides two services not provided by the IP layer. It provides port numbers to help
distinguish different user requests and, optionally, a checksum capability to verify that
the data arrived intact. In the Open Systems Interconnection (OSI) communication
model, UDP, like TCP, is in layer 4, the Transport Layer.

Firewall

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

33
Virtual Desktop

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

34
Virtual Desktop

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

35
Virtual Desktop

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.

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,

36
Virtual Desktop

because Java performs various run-time checks that can be done only at run time. The JIT
compiles code, as it is needed, during execution.

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

37
Virtual Desktop

a dynamic system, able to load code when needed from a machine in the same room or
across the planet.

Compilation of code

When you compile the code, the Java compiler creates machine code (called byte code)
for a hypothetical machine called Java Virtual Machine (JVM). The JVM is supposed to
execute the byte code. The JVM is created for overcoming the issue of portability. The
code is written and compiled for one machine and interpreted on all machines. This
machine is called Java Virtual Machine.

Compiling and interpreting Java Source Code

During run-time the Java interpreter tricks the byte code file into thinking that it is
running on a Java Virtual Machine. In reality this could be a Intel Pentium Windows 95
or SunSARC station running Solaris or Apple Macintosh running system and all could
receive code from any computer through Internet and run the Applets.

38
Virtual Desktop

Java
Source PC Compiler Interpreter
Code (PC)
……….. Java
………..
Byte code
Macintosh Java
……….. Compiler Interpreter
(Macintosh
Java
(Platform
)Interpreter
Indepen
………… SPARC dent) ( Spare )

Compiler

Simple

Java was designed to be easy for the Professional programmer to learn and to use
effectively. If you are an experienced C++ programmer, learning Java will
be even easier. Because Java inherits the C/C++ syntax and many of the
object oriented features of C++. Most of the confusing concepts from C++
are either left out of Java or implemented in a cleaner, more approachable
manner. In Java there are a small number of clearly defined ways to
accomplish a given task.

Object-Oriented

Java was not designed to be source-code compatible with any other language. This
allowed the Java team the freedom to design with a blank slate. One outcome of this was
a clean usable, pragmatic approach to objects. The object model in Java is simple and
easy to extend, while simple types, such as integers, are kept as high-performance non-
objects.

39
Virtual Desktop

Robust

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.Swing components aren’t thread safe. If you modify a visible Swing component,
for example-from anywhere but an event handler; then you need to take special steps to
make the modification execute on the event dispatching thread.

Swing is major component of the JFC which is the result of a large collaborative effort
between Sun, Netscape, IBM and other companies. Swing provides a large number of
useful GUI controls that originated with Netscape’s Internet Foundations classes (IFC).
The Swing components go far beyond the IFC, to the point where there is no visible
resemblance between Swing components and those of the IFC. The biggest difference
between the AWT components and Swing Components is that the Swing components are
implements with absolutely no native code.

40
Virtual Desktop

Java Threads
Java uses threads to enable the entire environment to be asynchronous. Once a thread is
inside a synchronized method, no other thread can call any other synchronized method on
the same object. When a program starts executing, it runs the initialization code, calls
methods or procedures and Continues running and processing until it’s complete or until
the program ends. These program use a single Thread – where thread is a single locus
control for the program.
Multithreading, as in Java, enable several different threads to run at the same time inside
the same program, in parallel, without interfering with each other. For example, supposed
that a long computation near the start of the program’s execution, this long computation
may not be needed until later on in the program execution. If run, these kinds of
programs, waiting becomes mandatory for sometime to finish the computation and start
the execution of the rest of the program, because the program is running in single thread.
If multithreads are used the computation work in a thread can be used and the rest of the
program could be run independently.
7.SYSTEM DESIGN

The most creative and challenging phase of the life cycle is system design. The term
design describes a final system and the process by which it is developed. It refers to the
technical specifications that will be applied in implementations of the candidate system.
The design may be defined as “the process of applying various techniques and principles
for the purpose of defining a device, a process or a system with sufficient details to
permit its physical realization”.
The designer’s goal is how the output is to be produced and in what format. Samples of
the output and input are also presented. Second input data and database files have to be
designed to meet the requirements of the proposed output. The processing phases are
handled through the program Construction and Testing. Finally, details related to
justification of the system and an estimate of the impact of the candidate system on the

41
Virtual Desktop

user and the organization are documented and evaluated by management as a step toward
implementation.

The importance of software design can be stated in a single word “Quality”. Design
provides us with representations of software that can be assessed for quality. Design is
the only way where we can accurately translate a customer’s requirements into a
complete software product or system. Without design we risk building an unstable
system, that might fail if small changes are made. It may as well be difficult to test, or
could be one who’s quality can’t be tested. So it is an essential phase in the development
of a software product.

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

42
Virtual Desktop

A DFD is also known as a “bubble Chart” has the purpose of clarifying system
requirements and identifying major transformations that will become programs in system
design. So it is the starting point of the design to the lowest level of detail. A DFD
consists of a series of bubbles joined by data flows in the system.
DFD SYMBOLS
In the DFD, there are four symbols
1. A square defines a source(originator) or destination of system data
2. An arrow identifies data flow. It is the pipeline through which the information
flows
3. A circle or a bubble represents a process that transforms incoming data flow into
outgoing data flows.
4. An open rectangle is a data store, data at rest or a temporary repository of data

Process that transforms data flow.

Source or Destination of data

Data flow

Data Store

43
Virtual Desktop

CONSTRUCTING A DFD
Several rules of thumb are used in drawing DFD’s:
1. Process should be named and numbered for an easy reference. Each name
should be representative of the process.
2. The direction of flow is from top to bottom and from left to right. Data
traditionally flow from source to the destination although they may flow back to
the source. One way to indicate this is to draw long flow line back to a source.
An alternative way is to repeat the source symbol as a destination. Since it is used
more than once in the DFD it is marked with a short diagonal.
3. When a process is exploded into lower level details, they are numbered.
4. The names of data stores and destinations are written in capital letters.
Process and dataflow names have the first letter of each work capitalized
A DFD typically shows the minimum contents of data store. Each data store should
contain all the data elements that flow in and out.
Questionnaires should contain all the data elements that flow in and out. Missing
interfaces redundancies and like is then accounted for often through interviews.
SAILENT FEATURES OF DFD’s:-
1. The DFD shows flow of data, not of control loops and decision are
controlled considerations do not appear on a DFD.
2. The DFD does not indicate the time factor involved in any process
whether the data flows take place daily, weekly, monthly or yearly.
3. The sequence of events is not brought out on the DFD.

TYPES OF DATA FLOW DIAGRAMS


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

44
Virtual Desktop

1) CURRENT PHYSICAL:

In Current Physical DFD process label include the name of people or their positions or
the names of computer systems that might provide some of the overall system-processing
label includes an identification of the technology used to process the data. Similarly data
flows and data stores are often labels with the names of the actual physical media on
which data are stored such as file folders, computer files, business forms or computer
tapes.
2) CURRENT LOGICAL:
The physical aspects at the system are removed as mush as possible so that the current
system is reduced to its essence to the data and the processors that transforms them
regardless of actual physical form.
3) NEW LOGICAL:
This is exactly like a current logical model if the user were completely happy with he
user were completely happy with the functionality of the current system but had problems
with how it was implemented typically through the new logical model will differ from
current logical model while having additional functions, absolute function removal and
inefficient flows recognized.
4) NEW PHYSICAL:
The new physical represents only the physical implementation of the new system.
RULES GOVERNING THE DFD’S

PROCESS:-
1) No process can have only outputs.
2) No process can have only inputs. If an object has only inputs than it must be a
sink.
3) A process has a verb phrase label.
DATA STORE
1) Data cannot move directly from one data store to another data store, a process
must move data.

45
Virtual Desktop

2) Data cannot move directly from an outside source to a data store, a process,
which receives, must move data from the source and place the data into data store
3) A data store has a noun phrase label.
SOURCE OR SINK
The origin and purpose of data is explained as follows:-
1) Data cannot move direly from a source to sink it must be moved by a process
2) A source and /or sink has a noun phrase land

DATA FLOW
1) A Data Flow has only one direction of flow between symbols. It may flow in
both directions between a process and a data store to show a read before an update.
The later is usually indicated however by two separate arrows since these happen at
different type.
2) A join in DFD means that exactly the same data comes from any of two or
more different processes data store or sink to a common location.
3) A data flow cannot go directly back to the same process it leads. There must
be at least amount one other process that handles the data flow produce some other
data flow returns the original data into the beginning process.
4) A Data flow to a data store means update (delete or change).
5) A data Flow from a data store means retrieve or use.
A data flow has a noun phrase label more than one data flow noun phrase can appear on a
single arrow as long as all of the flows on the same arrow move together as one package.

46
Virtual Desktop

DATAFLOW DIAGRAMS

O – LEVEL:

Information
Request

CLIENT 1 VIRTUAL
CLIENT 2
DESK TOP
Response
Request

47
Virtual Desktop

Request

VCLIENT 1 VIRTUAL VSERVER 1


Response DESK
TOP

SOCKET

SERVER F VIRTUL CLIENT F


DESK
TOP
Send Receiver

48
Virtual Desktop

SOCKET

CLIENT
CLIENT F1 SERVER F
F1

Request Server
1.0

V CLIENT V Server V CLIENT

Services Receiver

49
Virtual Desktop

8.SYSTEM TESTING

PROJECT TESTING

Testing is the process of detecting errors. Testing performs a very critical role for quality
assurance and for ensuring the reliability of software. The results of testing are used later
on during maintenance also.

Psychology of Testing
The aim of testing is often to demonstrate that a program works by showing that it has no
errors. The basic purpose of testing phase is to detect the errors that may be present in the
program. Hence one should not start testing with the intent of showing that a program
works, but the intent should be to show that a program doesn’t work. Testing is the
process of executing a program with the intent of finding errors.

Testing Objectives:

The main objective of testing is to uncover a host of errors, systematically and with
minimum effort and time. Stating formally, we can say,

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

Levels of Testing:
In order to uncover the errors present in different phases we have the concept of levels of
testing. The basic levels of testing are as shown below…

50
Virtual Desktop
Acceptance
Testing

Client Needs
System Testing

Requirements

Integration Testing
Design

Unit Testing

Code

System Testing

The philosophy behind testing is to find errors. Test cases are devised with this in mind.
A strategy employed for system testing is code testing.

Code Testing:

This strategy examines the logic of the program. To follow this method we developed
some test data that resulted in executing every instruction in the program
and module i.e.

Every path is tested. Systems are not designed as entire nor are they tested as single
systems. To ensure that the coding is perfect two types of testing is performed or for that
matter is performed or that matter is performed or for that matter is performed on all
systems.

Types of Testing

 Unit Testing
 Link Testing

51
Virtual Desktop

Unit Testing:

Unit testing focuses verification effort on the smallest unit of software i.e. the module.
Using the detailed design and the process specifications testing is done to uncover errors
within the boundary of the module. All modules must be successful in the unit test before
the start of the integration testing begins.

In this project each form can be thought of a module. There are so many forms like
Student Login, Admin Login, Company Login, Profile update. Giving different sets of
inputs has tested each form, when developing the form as well as finishing the
development so that each module works without any error. The inputs are validated when
accepting from the user.

Unit testing is first done on forms, independent of one another to locate errors. This
enables to detect errors. Through these errors resulting from interaction between forms
initially avoided.

Link Testing
Link testing does not test software but rather the integration of each form in system. The
primary concern is the compatibility of each module. The Programmer tests where
modules are designed with different parameters, length, type etc.

Integration Testing:

After the unit testing we have to perform integration testing. The goal here is to see if
modules can be integrated properly, the emphasis being on testing interfaces between
modules. This testing activity can be considered as testing the design and hence the
emphasis on testing module interactions.

In this project integrating all the modules forms the main system. When integrating all
the modules it has been checked whether the integration effects working of any of the
services by giving different combinations of inputs with which the two services run
perfectly before Integration.

52
Virtual Desktop

System Testing

Here the entire software system is tested. The reference document for this process is the
requirements document, and the goal is to see if software meets its requirements.

Acceptance Testing:

Acceptance Test is performed with realistic data of the client to demonstrate that the
software is working satisfactorily. Testing here is focused on external behavior of the
system; the internal logic of program is not emphasized.

Test cases should be selected so that the largest number of attributes of an equivalence
class is exercised at once. The testing phase is an important part of software development.
It is the process of finding errors and missing operations and also a complete verification
to determine whether the objectives are met and the user requirements are satisfied.

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.

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.

53
Virtual Desktop

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.

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

54
Virtual Desktop

Planning,
User needs Design
Definition Details
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 enhancements

55
Virtual Desktop

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.

9.Output Screens

RMI Screen

56
Virtual Desktop

Server screen

57
Virtual Desktop

Viewer screen 1

58
Virtual Desktop

Viewer screen 2

59
Virtual Desktop

Press start screen

60
Virtual Desktop

Out put screen

61
Virtual Desktop

62
Virtual Desktop

Output screen on Mac OS


in Mac OS X "Leopard"

63
Virtual Desktop

Conclusion :
This application run in any OS. Not need particular OS , But we need compulsory java
run time 1.6.0_12 software because this application developed with this new version of
java runtime software. And use minimum 1.5 runtime software also and not use bellow
1.5 , it is compulsory.
This application Personal allows you to remotely access your computer from any
other Internet-connected computer in the world with almost any operating system through
a secure, private connection
This application is a unique Web-based technology that works with your existing firewall
and Internet infrastructure. You do not have to change or open ports, configure IP
addresses or deploy any hardware or software, and you can use your existing corporate
Internet connection. The service and architecture are designed for maximum
performance, reliability and scalability
This application is for individuals needing remote access to 1-20 PCs. It's an easy and
secure remote-access solution that enables you to conveniently access email, files,
programs and network resources from home or the road. Get unlimited access to your
PCs from any Web browser anywhere. This application is Personal allows you to access
and work on your PC on-the-fly from any location connected to the Internet. Get reliable,
convenient access to email, files, programs and network resources from home or the road.
When you are abroad or away from your computer you can access all the files and folders
in your computer remotely.

10.References

64
Virtual Desktop

1. D. Austin Henderson, Jr., Stuart Card (1986) Rooms: the use of multiple virtual
workspaces to reduce space contention in a window-based graphical user interface
ACM Transactions on Graphics (TOG)
2. User interface with multiple workspaces for sharing display system objects, US
Patent 5,533,183
3. Thomas E. LaStrange (1990) swm: An X window manager shell. USENIX
Summer.
4. Greg Donner Workbench Nostalgia site: A 2024 monitor and Workbench 1.3
modified to 1.4

External links

• Ars Technica: "The Micro-AmigaOne and Amiga OS4 Developer Prerelease"


(Update 1), By Jeremy Reimer, Monday January 17, 2005 ("Desktop and
drawers" section).

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


Categories : Graphical user interface | User interface techniques

65

Вам также может понравиться