virtual desktop doc

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

Upload: mlakkampally

Post on 02-Apr-2015

359 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: virtual desktop doc

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

10.Bibliography

1

Page 2: virtual desktop doc

Virtual Desktop

ABSTRACT

2

Page 3: virtual desktop doc

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

Page 4: virtual desktop doc

Virtual Desktop

SCOPE OF THE

PROJECT

4

Page 5: virtual desktop doc

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

characters, help messages, and how an application program or a Web site invites

5

Page 6: virtual desktop doc

Virtual Desktop

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

Page 7: virtual desktop doc

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.

7

Page 8: virtual desktop doc

Virtual Desktop

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

Page 9: virtual desktop doc

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

Page 10: virtual desktop doc

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.

10

Page 11: virtual desktop doc

Virtual Desktop

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

Page 12: virtual desktop doc

Virtual Desktop

SYSTEM ANALYSIS

12

Page 13: virtual desktop doc

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

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

13

Page 14: virtual desktop doc

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.

14

Page 15: virtual desktop doc

Virtual Desktop

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.

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

15

Page 16: virtual desktop doc

Virtual Desktop

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

Operating System : Windows 2000/NT/XP

Language : JDK1.3/1.4,socket Programming

Protocols : TCP/IP,UDP

16

Page 17: virtual desktop doc

Virtual Desktop

SOFTWARE

REQUIREMENT

SPECIFICATION

17

Page 18: virtual desktop doc

Virtual Desktop

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.

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?

18

Page 19: virtual desktop doc

Virtual Desktop

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

19

Page 20: virtual desktop doc

Virtual Desktop

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.

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

20

Page 21: virtual desktop doc

Virtual Desktop

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:

The main input stages can be listed as below:

Data recording

Data transcription

Data converting

Data verification

Data control

Data transmission

Data validation

21

Page 22: virtual desktop doc

Virtual Desktop

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

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

22

Page 23: virtual desktop doc

Virtual Desktop

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

23

Page 24: virtual desktop doc

Virtual Desktop

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.

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

24

Page 25: virtual desktop doc

Virtual Desktop

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.

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

25

Page 26: virtual desktop doc

Virtual Desktop

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

Page 27: virtual desktop doc

Virtual Desktop

LITERATURE

REVIEW

27

Page 28: virtual desktop doc

Virtual Desktop

Network Programming

TCP/IP PROTOCOL SUITE:

fig. 1-8 Tcp/Ip protocol Suite

THE APPLICATION LAYER PROTOCOLS:

28

Page 29: virtual desktop doc

Virtual Desktop

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

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.

29

Page 30: virtual desktop doc

Virtual Desktop

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.

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

30

Page 31: virtual desktop doc

Virtual Desktop

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:

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

31

Page 32: virtual desktop doc

Virtual Desktop

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:

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.

32

Page 33: virtual desktop doc

Virtual Desktop

What Is a Socket?

Normally, a server runs on a specific computer and has a socket that is bound to

a specific port number. The server just waits, listening to the socket for a client to make a

connection request.

On the client-side: The client knows the hostname of the machine on which the server is

running and the port number on which the server is listening. To make a connection

request, the client tries to rendezvous with the server on the server's machine and port.

The client also needs to identify itself to the server so it binds to a local port number that

it will use during this connection. This is usually assigned by the system.

If everything goes well, the server accepts the connection. Upon acceptance, the

server gets a new socket bound to the same local port and has its remote endpoint set to

the address and port of the client. It needs a new socket so that it can continue to listen to

the original socket for connection requests while tending to the needs of the connected

client.

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.

33

Page 34: virtual desktop doc

Virtual Desktop

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.

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

34

Page 35: virtual desktop doc

Virtual Desktop

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 connections between hosts on the internet.

35

Page 36: virtual desktop doc

Virtual Desktop

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.

36

Page 37: virtual desktop doc

Virtual Desktop

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:

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)

37

Page 38: virtual desktop doc

Virtual Desktop

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)

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.

38

Page 39: virtual desktop doc

Virtual Desktop

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.

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:

39

Page 40: virtual desktop doc

Virtual Desktop

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.

40

Page 41: virtual desktop doc

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.

41

Page 42: virtual desktop doc

Virtual Desktop

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

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.

42

Page 43: virtual desktop doc

Virtual Desktop

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

Page 44: virtual desktop doc

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.

44

Page 45: virtual desktop doc

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.

45

Page 46: virtual desktop doc

Virtual Desktop

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.

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

46

Page 47: virtual desktop doc

Virtual Desktop

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

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

47

Page 48: virtual desktop doc

Virtual Desktop

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.

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.

48

Page 49: virtual desktop doc

Virtual Desktop

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

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

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

49

Java Source

Java byte code JavaVMJava . Class

Page 50: virtual desktop doc

Virtual Desktop

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

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

50

Page 51: virtual desktop doc

Virtual Desktop

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.

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

51

Source Code………..………..

………..

…………

PC Compiler

MacintoshCompiler

SPARC

Compiler

Java

Byte code

(PlatformIndependent)

JavaInterpreter(PC)

JavaInterpreter(Macintosh)

JavaInterpreter( Spare )

Page 52: virtual desktop doc

Virtual Desktop

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.

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

52

Page 53: virtual desktop doc

Virtual Desktop

(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

Page 54: virtual desktop doc

Virtual Desktop

SYSTEM DESIGN

54

Page 55: virtual desktop doc

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

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.

55

Page 56: virtual desktop doc

Virtual Desktop

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.

56

Page 57: virtual desktop doc

Virtual Desktop

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

Page 58: virtual desktop doc

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.

Questionnaires should contain all the data elements that flow in and out. Missing

interfaces redundancies and like is then accounted for often through interviews.

58

Page 59: virtual desktop doc

Virtual Desktop

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:

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.

59

Page 60: virtual desktop doc

Virtual Desktop

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

2) A source and /or sink has a noun phrase land

DATA FLOW

60

Page 61: virtual desktop doc

Virtual Desktop

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

Page 62: virtual desktop doc

Virtual Desktop

DATAFLOW DIAGRAMS

62

Page 63: virtual desktop doc

Virtual Desktop

CLIENT 1

VIRTUALDESK TOP

CLIENT 2

Request

Response

Request

Information

O – LEVEL:

63

Page 64: virtual desktop doc

Virtual Desktop

VCLIENT 1 VSERVER 1VIRTUALDESK TOP

SOCKET

Request

Response

SERVER F VIRTUL DESK TOP

CLIENT F

Send Receiver

64

Page 65: virtual desktop doc

Virtual Desktop

CLIENT F1 SERVER F

SOCKET

CLIENT F1

65

Page 66: virtual desktop doc

Virtual Desktop

V CLIENT

1.0

V CLIENT

Request

Services

V Server

Receiver

Server

66

Page 67: virtual desktop doc

Virtual Desktop

SYSTEM TESTING

67

Page 68: virtual desktop doc

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

Page 69: virtual desktop doc

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…

Client Needs

Requirements

Design

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

Acceptance Testing

System Testing

Integration Testing

Unit Testing

Page 70: virtual desktop doc

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

Page 71: virtual desktop doc

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

Page 72: virtual desktop doc

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

Page 73: virtual desktop doc

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 Testing

Maintenance

Planning,User needs Design

73

Page 74: virtual desktop doc

Virtual Desktop

Definition DetailsCode, 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.

74

Page 75: virtual desktop doc

Virtual Desktop

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

Page 76: virtual desktop doc

Virtual Desktop

Output Screens

76

Page 77: virtual desktop doc

Virtual Desktop

RMI Screen :

77

Page 78: virtual desktop doc

Virtual Desktop

Server screen :

78

Page 79: virtual desktop doc

Virtual Desktop

Viewer screen 1:

79

Page 80: virtual desktop doc

Virtual Desktop

Viewer screen 2:

80

Page 81: virtual desktop doc

Virtual Desktop

Press start screen :

81

Page 82: virtual desktop doc

Virtual Desktop

Out put screen :

82

Page 83: virtual desktop doc

Virtual Desktop

Output screen on Mac OS :

83

Page 84: virtual desktop doc

Virtual Desktop

in Mac OS X "Leopard"

Conclusion :

84

Page 85: virtual desktop doc

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

Page 86: virtual desktop doc

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

Page 87: virtual desktop doc

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