You are on page 1of 73

TABLE OF CONTENT

SR NO 1 2 TOPIC NAME ABSTRACT INTRODUCTION 2.1 Problem Definition 2.2 Need 2.3 Scope SYSTEM REQUIREMENTS 3.1 Hardware and Software Requitements 3.1.1 Hardware Requirements 3.1.2 Software Requirements 3.2 Tools ans Technology 3.2.1 Features of JAVA 4 SYSTEM ANALYSIS 4.1 Existing Systems 4.1.1 VNC 4.1.2 Remote Desktop Connection in Windows 4.2 Drawbacks of Existing Systems 4.3 Proposed System 4.4 Feasibility Study 4.4.1 Behavioral Feasibility 4.4.2 Economical Feasibility 4.4.3 Technical Feasibility OBJECTIVES AND GOALS 5.1 Objectives 5.2 Goals 5.2.1 Server Side Goals 5.2.2 Client Side Goals DESIGN 6.1 Design of System 6.2 System & Environment 6.3 Class Diagram 6.4 Activity Diagram 6.5 Sequence Diagram 6.6 Use Case Diagram 1 PAGE NO. 7 9 10 10 10 11 12 12 12 13 13 17 18 18 18 18 19 20 20 20 20 21 22 23 23 24 25 26 26 27 28 31 33

6.7 Component Diagram 6.8 Deployment Diagram SCREENSHOTS & SOURCE CODES 7.1 Screenshots 7.1.1 Login Page 7.1.2 Main Page 7.1.3 Listing of Clients IP Address 7.1.4 Message Sending 7.1.5 Showing Active and Inactive Clients 7.1.6 Listing of Clients Screenshots 7.1.7 Online Session 7.1.8 Showing Clients Memory Information 7.1.9 File Transferring from Server to Client 7.2 Source Codes 7.2.1 Client Side 7.2.2 Server Side FUTURE PLANS CONCLUSION CHARTS ANS DIAGRAMS 10.1 Timeline Chart 10.2 Gantt Chart 10.3 PERT diagram SYSTEM TESTING 11.1 Introduction 11.2 Software Testing Strategies 11.2.1 Unit Testing 11.2.2 Black Box Testing 11.2.3 White Box Testing BIBLIOGRAPHY 12.1 References 12.2 Websites

35 36 37 38 38 39 40 41 42 43 44 45 46 47 47 53 58 60 62 63 64 65 66 67 68 69 70 70 71 72 72

8 9 10

11

12

1.ABSTRACT

This application does not involve any end user (client) activity. Only user of the application is administrator sitting at server. This application can be applied to monitor activities of employee in a particular department or the work running on students terminal specific lab work session. Mainly this application can be useful for manager or head of the department in industries and for staff person in educational institutes.

This application will be beneficial to mainly two areas:Industries (usually, Employee Department). Educational Institutes. In Industries, an administrator (Head of the Department) can easily watch the activities going on the employees terminal. In Educational institutes, staff person can easily monitor that no student is doing any mischief. Besides that if any student needs help or guidance, then it can be easily provided.

This Project provides many features and advantages and it will be implemented in the fields like school, college, hospital , large corporate firms . The need for a time-effective and cost-effective solution has been the basic motive behind the development of this project. 4

At the office, this system will help a manager catch employees suspected of violating the daily routine and thus improve productivity. In a computer class, this system will help the teacher keep an eye on the flow and completeness of students' tasks. The teacher can see what students do on their computers when the teacher was out of the class. At an Internet-Cafe or in a computer-game room, the system will help the administrator see the overall picture of what the users are doing, and help them if necessary, without leaving the work place. It will let you see some system performance information on remote computers.

2. INTRODUCTION

INTRODUCTION 2.1PROBLEM DEFINITION

A computer networks is a collection of computers and other devices that can send and receive data from one another communication system, since networking deals with data, hence it becomes necessary to bring security in picture .managing the other remote computers is equally important in the congested network environment .management consist of monitoring, By monitoring the other computers on the network we know what others are doing on their system.

2.2 NEED

In todays fast and growing world, every system is connected to network via internet or by a combinations of LAN (local area network) or by an WAN (wide area network) or by a MAN (metropolitan area network).hence is a basic need here. In a environment where there is administrator an user present management and monitoring becomes the important aspect of the network system. Administrator should have all sorts of control over the remote user computer 6

2.3 SCOPE

This Project provides many features and advantages and it will be implemented in the fields like school, college, hospital , large corporate firms . The need for a time-effective and cost-effective solution has been the basic motive behind the development of this project.

3.SYSTEM REQUIREMENTS

3.1 HARDWARE AND SOFTWARE REQUIREMENTS

3.1.1 HARDWARE REQUIREMENTS

The following hardware component is required for implementing the system.

1) Desktop computer with following configuration. Processor : Pentium IV 2.4 GHz D850 80GB 512 MB DDR RAM or higher

Motherboard : Hard Disks Memory : :

3.1.2 SOFTWARE REQUIREMENTS

The following softwares are required for implementing the system. Linux platform (eg. Fedora, Ubuntu, Mint, etc.) Jdk 6.0 , netbeans 6.0 Jre 6.0

3.2 Tools and technology:

The first choice that can be the candidate that we may use for implementation was VISUAL BASICS. But we have not used it because of straight through availability of ACTIVE X CONTROLS which allows the controlled access to remote pc with little effort provided that the client and the server both are operating on MICROSOFT Platform putting restriction on features we intended to provide. 9

Hence we need to choose programming environment that itself guarantees to allow the communication of client and server running on different platforms. So the obvious choice was to go for JAVA. We decided to make a use of JAVA RMI (Remote Method Invocation) to build our application. In JAVA RMI the stub/skeleton interface has been provided which is going to make the client/server application possible by making a call to remote objects which have been running at remote pcs.

3.2.1 FEATURES OF JAVA:


Platform Independence
o

The Write-Once-Run-Anywhere ideal has not been achieved (tuning for different platforms usually required), but closer than with other languages.

Object Oriented
o o

Object oriented throughout - no coding outside of class definitions, including main (). An extensive class library available in the core language packages.

Compiler/Interpreter Combo
o

Code is compiled to byte codes that are interpreted by a Java virtual machines (JVM) . This provides portability to any machine for which a virtual machine has been written. The two steps of compilation and interpretation allow for extensive code checking and improved security.

Robust

10

Exception handling built-in, strong type checking (that is, all data must be declared an explicit type), local variables must be initialized.

Several dangerous features of C & C++ eliminated:


o o o

No memory pointers No preprocessor Array index limit checking

Automatic Memory Management


o

Automatic garbage collection - memory management handled by JVM.

Security
o o o o

No memory pointers Programs run inside the virtual machine sandbox. Array index limit checking Code pathologies reduced by

byte code verifier - checks classes after loading Class loader - confines objects to unique namespaces. Prevents loading a hacked "java.lang.SecurityManager" class, for example.

11

Security manager - determines what resources a class can access such as reading and writing to the local disk.

Dynamic Binding
o o o

The linking of data and methods to where they are located is done at run-time. New classes can be loaded while a program is running. Linking is done on the fly. Even if libraries are recompiled, there is no need to recompile code that uses classes in those libraries. This differs from C++, which uses static binding. This can result in fragile classes for cases where linked code is changed and memory pointers then point to the wrong addresses.

Good Performance
o

Interpretation of byte codes slowed performance in early versions, but advanced virtual machines with adaptive and just-in-time compilation and

other techniques now typically provide performance up to 50% to 100% the speed of C+ + programs.

12

Threading
o

Lightweight processes, called threads, can easily be spun off to perform multiprocessing. Can take advantage of multiprocessors where available Great for multimedia displays.

o o

Built-in Networking Java was designed with networking in mind and comes with many classes to develop sophisticated Internet communications.

13

4. SYSTEM ANALYSIS

ANALYSIS 4.1 EXISTING SYSTEM

14

4.1.1 VNC
Vnc is the most popular application that is used for the remote administration but its not platform independent. an we have manually configure each and every system. It also doesnt provide the web access control over the client computer

4.1.2 REMOTE DESKTOP CONNETION IN WINDOWS


Its a by default application provided along with the windows operating systems. It handovers control of the remote computer ,but ends up locking the screen of the remote computer .thus client or user cant use the computer and even if he/she tries to do that ,then connection is lost .

4.2 DRAW BACKS OF EXISTING SYSTEM


Hardwarecostismore. Itisnotconvenientasitconsumesmoretime. Nocentralizedcontrol. Webaccesscannotbecontrolledremotely Doesntprovidecompletesecurity Systemincomputermaybecomevulnerable

15

4.3 PROPOSED SYSTEM


This application does not involve any end user (client) activity. Only user of the application is administrator sitting at server. This application can be applied to monitor activities of employee in a particular department or the work running on students terminal specific lab work session. Mainly this application can be useful for manager or head of the department in industries and for staff person in educational institutes.

This application will be beneficial to mainly two areas:Industries (usually, Employee Department). Educational Institutes. In Industries, an administrator (Head of the Department) can easily watch the activities going on the employees terminal. In Educational institutes, staff person can easily monitor that no student is doing any mischief. Besides that if any student needs help or guidance, then it can be easily provided.

16

4.4 FEASIBILITY STUDY


Wheneveraprojectisinitiated,itisnecessarytocheck whetherthenewsystemisfeasibleto developorinstall.Themainobjectiveistodeterminewhetherthedevelopmentoftheprojecthasa reasonablechanceofsuccess.TherewerethreetypesofFeasibilityStudycarriedoutduringthe fieldstudyoftheproject.Theywererelatedasfollows:

4.4.1 Behavioral Feasibility

In this feasibility study, the project was checked and assumed that if the software is actually developed, will the interface provide user friendly enough for a non-computer educated client to work with the software

4.4.2EconomicalFeasibility

Intheeconomicfeasibility,theprojectwasconsideredandcostestimationwasdonethatishow muchcostwillbeappropriatelyrequiredforoveralldevelopmentoftheprojectandwillthe projectbeactuallyimplementedandwilltheclientsfindthesoftwaretobeusefulenoughto implementfortheirpersonaluseorfortheorganizationaluse.

4.4.3 Technical Feasibility


In the technical feasibility, the project was checked and the software and the hardware requirements of the project were pre calculated. In checking the project for the technical feasibility, we considered that will the project require high end hardware or a normally configured personal computer will run the software. Even, it is considered that if the software can work with the minimum amount of the 17

software requirements that is an extra software product for running the project will be needed or not.

5. OBJECTIVES AND GOALS

18

5.1 Objectives
Establishing client-server connection. Controlling clients from server. Adding clients to the Network. Deleting clients from the Network. Having Client-Server communication. Having proper LAN connection. Both Server and Client should have Linux operating system. Server should be aware of Clients IP address. Clients should be aware of Servers IP address.

19

5.2 Goals
5.2.1 Server side Goals
Ordered listing of remote computer screenshots Establishing client-server connection. Displaying actual-sized screenshots in a separate window with advanced functions Sending message to Client from the Server. Logoff Client from the Server. Restart Client from the Server. Shutdown Client from the Server. Auto listing of client names (IP addresses). Managing individual clients or all clients simultaneously Displaying information on available hard disk space on a remote computer, and other information about system resources Having online session in which the server can provide service to a particular group of Clients. Transferring files from the Server to the Client. Graphical representation of every Client; in which if the Client is successfully connected the color will change and if it is not connected the color wont change. Controlling the Clients cursor and perform actions from the Server through clients screenshot. Having an Interactive GUI. Having a Notepad application on the Server for instant use like noting various clients IP 20

addresses.

5.2.2 Client side Goals


Launch automatically on system startup The program start is invisible to users Making screenshots from all monitors connected to the computer Keyboard shortcuts for accessing the program settings Password-restricted access to the program settings Adjustable screenshot quality User-defined screenshot capture period.

21

6. DESIGN

22

6.1 Design of System

6.2 System & Environment

23

6.3 Class Diagram

24

6.4 Activity Diagram

25

Activity diagrams represent the business and operational workflows of a system. An Activity diagram is a dynamic diagram that shows the activity and the event that causes the object to be in the particular state. An Activity diagram talks more about the transitions and activities causing the changes in the object states. An Activity diagram consists of the following behavioral elements: 1. Initial Activity: This shows the starting point or first activity of the flow. Denoted by a solid circle. This is similar to the notation used for Initial State.

Fig 6.11 Symbol for Initial Activity 2. Activity Description: Represented by a rectangle with rounded (almost oval) edges.

Fig 6.12 Symbol for Activity

3. Decisions: Similar to flowcharts, a logic where a decision is to be made is depicted by a diamond, with the options written on either side of the arrows emerging from the diamond, within box brackets

Fig 6.13 Symbol for Decisions 4. Concurrent Activities: Some activities occur simultaneously or in parallel. Such activities are called concurrent activities. For example, listening to the lecturer and looking at the blackboard is a

26

parallel activity. This is represented by a horizontal split (thick dark line) and the two concurrent activities next to each other, and the horizontal line again to show the end of the parallel activity.

Fig 6.14 Symbol for Concurrent Activities 5. Final Activity: The end of the Activity diagram is shown by a bull's eye symbol, also called as a final activity.

Fig 6.15 Symbol for Final Activity

27

Theactivitydiagramabovedescribestheentireflowofourproject.Itclearlystatestheflowas desired byourUSER. The activity diagram outlines thebehavior ofthe system in format of flowchart.

28

6.5 Sequence Diagram :

Sequence Diagrams show the message exchange (i.e. method call) between several Objects in a specific time-delimited situation. Objects are instances of classes. Sequence Diagrams put special emphasis in the order and the times in which the messages to the objects are sent. In Sequence Diagrams objects are represented through vertical dashed lines, with the name of the Object on the top. The time axis is also vertical, increasing downwards, so that messages are sent from one Object to another in the form of arrows with the operation and parameters name.

29

30

6.6 Use Case Diagram

A use case illustrates a unit of functionality provided by the system. The main purpose of the usecase diagram is to help development teams visualize the functional requirements of a system, including the relationship of "actors" (human beings who will interact with the system) to essential processes, as well as the relationships among different use cases. Use-case diagrams generally show groups of use cases -- either all use cases for the complete system, or a breakout of a particular group of use cases with related functionality (e.g., all security administration-related use cases). To show a use case on a use-case diagram, you draw an oval in the middle of the diagram and put the name of the use case in the center of, or below, the oval. To draw an actor (indicating a system user) on a use-case diagram, you draw a stick person to the left or right of your diagram (and just in case you're wondering, some people draw prettier stick people than others). Use simple lines to depict relationships between actors and use cases

31

32

6.7 Component diagram


A component diagram provides a physical view of the system. Its purpose is to show the dependencies that the software has on the other software components (e.g., software libraries) in the system. The diagram can be shown at a very high level, with just the large-grain components, or It can be shown at the component package

33

6.8 Deployment Diagram


The deployment diagram shows how a system will be physically deployed in the hardware environment. Its purpose is to show where the different components of the system will physically run and how they will communicate with each other. Since the diagram models the physical runtime, a system's production staff will make considerable use of this diagram

34

7. SCREENSHOTS & SOURCE CODES

35

Showing Clients Memory information like available processor, free memory, available memory etcetc.

7.1.9 File Transferring from Server to Client

36

You can select any type of a file from the Server and send it to the Client(s) by selecting their IP Address.

7.2 SOURCE CODES


7.2.1Client Side
package Client; 37

import java.awt.AWTException; import java.awt.Dimension; import java.awt.GraphicsDevice; import java.awt.GraphicsEnvironment; import java.awt.Rectangle; import java.awt.Robot; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; import java.net.Socket; import java.net.UnknownHostException; import javax.swing.JFrame; import javax.swing.JProgressBar; import javax.swing.Timer; /** * * This class is responsible for connecting to the server * and starting ScreenSpyer and ServerDelegate classes */ public class ClientFirst { private JFrame frame = new JFrame(); JProgressBar pb=new JProgressBar(0,1000); Socket socket = null; public static void main(String[] args){ new ClientFirst().initialize("192.168.0.1", 1122); } public void initialize(String ip, int port ){ Robot robot = null; //Used to capture the screen Rectangle rectangle = null; //Used to represent screen dimensions //changes for timer int delay = 50000; //milliseconds ActionListener taskPerformer = new ActionListener() { public void actionPerformed(ActionEvent evt) { frame.setSize (500,400); frame.setResizable (true); frame.setLocation(500,250);

38

frame.setLayout(null); pb.setValue(0); pb.setStringPainted(true); frame.getContentPane().add(pb); frame.setVisible(true);

7.1 SCREENSHOTS

7.1.1 Login Page

39

7.1.2 Main Page

40

7.1.3 Listing of Clients IP Address

41

7.1.4 Message sending

42

MessagefromServertoClient

7.1.5 Showing Active & Inactive Clients

43

The Clients which are active are shown in Blue while the inactive Clients are shown in Black.

7.1.6 Listing of Clients Screenshots

44

All the clients Screenshots will be shown in this window. You can select any Client and control the actions of that Client.

7.1.7 Online Session

45

Server side

Client side

7.1.8 Showing Clients Memory Information

46

for(int i=0;i<=10000;i++) { pb.setValue(pb.getValue()+i); } callLogOff(); } }; new Timer(delay, taskPerformer).start(); try { System.out.println("Connecting to server .........."); socket = new Socket(ip, port); System.out.println("Connection Established."); //Get default screen device GraphicsEnvironment gEnv=GraphicsEnvironment.getLocalGraphicsEnvironment(); GraphicsDevice gDev=gEnv.getDefaultScreenDevice(); //Get screen dimensions Dimension dim = Toolkit.getDefaultToolkit().getScreenSize(); rectangle = new Rectangle(dim); //Prepare Robot object robot = new Robot(gDev); int verify=2; if (verify > 0) { //ScreenSpyer sends screenshots of the client screen new ScreenSpyer(socket,robot,rectangle); //ServerDelegate recieves server commands and execute them new ServerDelegate(socket,robot); } } catch (UnknownHostException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } catch (AWTException ex) { ex.printStackTrace(); } } public static void callLogOff() 47

{ try { // // Runtime rt = Runtime.getRuntime(); rt.exec("shutdown -l"); //System.out.println("Called!"); } catch(Exception ex) { //TODO } } }

------package Client; import java.net.*; import java.io.*; import javax.swing.*; import java.awt.image.*; import java.awt.*; class ClientSecond { public static void main(String a[]) { clientsecondbody(); // FileTransferbody();

}//End of main public static void clientsecondbody(){ try { String compname; InetAddress ia ; 48

byte[] b = new byte[4]; b[ 0] = new Integer(192).byteValue(); b[ 1] = new Integer(168).byteValue(); b[ 2] = new Integer(0).byteValue(); b[ 3] = new Integer(50).byteValue(); /** Initializing InetAddress */

ia = InetAddress.getByAddress(b); //ia = InetAddress.getLocalHost(); /** Creates socket for the specified port */ Socket clientSocket = new Socket("192.168.0.100",5000); DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream()); //compname = System.getProperty("user.name.")+"/"+ia.getLocalHost().toString(); compname = ia.getHostAddress().toString(); /** host name is send to the server side application */ outToServer.writeBytes(compname); clientSocket.close(); } catch (Exception e) { System.out.println("Error Occured "+ e.getMessage()); } try { ServerSocket ss = new ServerSocket(2030); while(true) { System.out.println("hi"); Socket s = ss.accept(); System.out.println("hi"); BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));

49

System.out.println("hi"); String str = br.readLine(); System.out.println(str); if(str.equals("msinfo32")) { Runtime rt = Runtime.getRuntime(); rt.exec("msinfo32"); } if(str.equals("LOGOFF")) { Runtime rt = Runtime.getRuntime(); rt.exec("shutdown -l"); } if(str.equals("RESTART")) { Runtime rt = Runtime.getRuntime(); rt.exec("shutdown -r"); } if(str.equals("MESSAGE")) { new getmsg(); } } }catch(Exception e) { System.out.println(e); } } // public static void FileTransferbody(){ // // try{ // // System.out.println("Server running..."); // // /* Listen on port 5555 */ // // ServerSocket server = new ServerSocket(5555); // // /* Accept the sk */ // // while(true) // {

50

//Socket sk = server.accept(); // // System.out.println("Server accepted client"); // InputStream input = sk.getInputStream(); // BufferedReader inReader = new BufferedReader(new InputStreamReader(sk.getInputStream())); // BufferedWriter outReader = new BufferedWriter(new OutputStreamWriter(sk.getOutputStream())); // // /* Read the filename */ // String filename = inReader.readLine(); // // if ( !filename.equals("") ){ // // /* Reply back to client with READY status */ // // outReader.write("READY\n"); // outReader.flush(); // } // // /* Create a new file in the tmp directory using the filename */ // FileOutputStream wr = new FileOutputStream(new File("D:\\ga\\" + filename)); // // byte[] buffer = new byte[sk.getReceiveBufferSize()]; // // int bytesReceived = 0; // // while((bytesReceived = input.read(buffer))>0) // { // /* Write to the file */ // wr.write(buffer,0,bytesReceived); // } // } // } // catch(Exception ex){ // /* Catch any errors */ // System.out.println(ex); // } // } }//End of client class

7.2.2 Server Side

package Server;

51

import java.awt.BorderLayout; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java.util.Collection; import java.util.LinkedList; import javax.swing.*; import javax.swing.JDesktopPane; import javax.swing.JFrame; import javax.swing.JPanel; /** * This is the entry class of the server */ public class ServerFirst { //Main server frame public JFrame frame = new JFrame(); JFrame frame1=new JFrame(); JButton btnLogin; LinkedList list=new LinkedList(); LinkedList list1=new LinkedList(); LinkedList<JButton> list2=new LinkedList<JButton>(); Socket client; //JDesktopPane represents the main container that will contain all //connected clients' screens private JDesktopPane desktop = new JDesktopPane(); public static void main(String args[]){ // String port = JOptionPane.showInputDialog("Please enter listening port"); new ServerFirst().initialize(1122); } public void initialize(int port){ try { ServerSocket sc = new ServerSocket(port); for(int counter=1;counter<=255;counter++) list1.add(new String("/192.168.0."+ counter +"")); //Show Server GUI drawGUI(); drawClientInfo();

52

while(true){ client = sc.accept(); list.add(client.toString()); System.out.println("New client Connected to the server"+client.getLocalAddress()); //Per each client create a ClientHandler new ClientHandler(client,desktop,list2,list,list1); } } catch (IOException ex) { System.out.println("Error in SF"+ex); ex.printStackTrace(); } } public void callclienthandler(int port){ //Listen to server port and accept clients connections try { ServerSocket sc = new ServerSocket(port); }catch (IOException ex) { System.out.println("Error in SFl"+ex); ex.printStackTrace(); } } /* * Draws the main server GUI */ public void drawGUI(){ frame.add(desktop,BorderLayout.CENTER); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Show the frame in a maximized state frame.setExtendedState(frame.getExtendedState()|JFrame.MAXIMIZED_BOTH); frame.setVisible(true); } public void drawClientInfo() { //frame1.setLayout(new BoxLayout(frame1,1));

53

//

frame1.setSize (1000,730); frame1.setResizable (true); frame1.setLocation(0,0); frame1.setLayout (null); JButton btnLogin; frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); int INITIAL_LEFT=10; int INITIAL_TOP=10; for(int i=1;i<=255;i++) { if(INITIAL_LEFT>950) { INITIAL_LEFT=10; INITIAL_TOP+=50; } btnLogin = new JButton (String.valueOf(i)); btnLogin.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Server/off.jpg"))); btnLogin.setToolTipText("192.168.0."+String.valueOf(i)); btnLogin.setBounds(INITIAL_LEFT,INITIAL_TOP,20,30); INITIAL_LEFT+=50; //System.out.println("button"+btnLogin.getText()); list2.add(btnLogin); frame1.add(btnLogin); // System.out.println("size"+list2.size()); } frame1.setVisible (true); } public void actionPerformed(ActionEvent a){ System.out.println("button"+btnLogin.getText()); } public void changeIp(String str,LinkedList<JButton> list2) { // System.out.println("aaa"+str+"asdasd"+list2.size()); for(int i=0;i<list2.size();i++)

54

{ // System.out.println("asd"+i); JButton b=(JButton)list2.get(i); if(b.getText().equals(str)) { //System.out.println("insidfe"); b.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Server/on.jpg"))); } else { b.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Server/off.jpg"))); } } } public void clear(LinkedList<JButton> list2) { for(int i=0;i<list2.size();i++) { // System.out.println("asd"+i); JButton b=(JButton)list2.get(i); b.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Server/off.jpg"))); } } } ---------

package Server;

//import the packages for using the classes in them into the program

55

import javax.swing.*; import java.awt.*; public class ServerSecond { public static void main(String[] args) { frmLogin start=new frmLogin(); start.setVisible(true); new ServerFirst().initialize(1122); } }

56

8. FUTURE PLANS

1.

Since our project is only for 2 system. it is possible in future to place it in distributed

environment. 57

2. The steps that we have eliminated in our system due to standalone system will be included in distributed environment. 3. It is also possible to implement more advance algorithm for data mining. 4. We can give access rights to the Clients like website access. 5. We can have Audio Conferencing between Server and Client. 6. We can have Video Conferencing between Server and Client. 7. We can have more then one Server for better Monitoring of Clients. 8. It can be further be used for Cloud Computing. 9. We can show the Server screen on selected Clients for Teaching purpose. 10. Integrate Firewalls for more improved security.

58

9. CONCLUSION

Thus we have an intuitive tool allowing you to discreetly view the activity of a remote user on any desktop of your network easily. You can take screenshots of the remote machines on your network and save them to a file on your 59

local computer. Application can be configured to automatically capture screenshots from the remote machines after a specified period of time and saving them to files in a variety of image formats. You can check the memory information of the Client machine from the Server. This information can be the type of processor, free memory, maximum memory, total memory, file system root, etc etc. You can Log Off, Restart and Shutdown the Clients from the Server. You are just one click away for the Power Management of the Client. You can provide Service for a particular group of Clients through the Online Session. Just select the Clients which you want to communicate and start the session. You can Transfer files from Server to Client using the file transfer. You can send a text, audio, video, etc. files to any number of Clients. Just select the Clients and send the desired files you want. You can check which Clients are active and which are inactive by viewing the graphical representation of all the Clients.

60

10. CHARTS AND DIAGRAMS

10.1 Timeline Chart

61

Task to be accomplished

Number of Days

Start Date 22nd Jun August 30th July 13th August 21st August 30th September 21st October 18th January 26th January 8th February 24th February 12th March 17th April

End Date 30th July 13th August 21st August 30th September 21st October 18th November 26th January 6th February 24th February 12th March 8th April 24th April

Understanding the depth of subject 28 Learning JAVA related to project 10 Analysis 6 Requirement analysis specification of project. Software Requirements Analysis Designing of core module 20 Designing of supporting module 6 Project Plan (SQA) 9 Implementation of the modules White Box Testing 12 Black Box Testing Project Report 19 7 28 15

12

10.2 Gantt Chart

62

10.3 PERT Diagram

63

64

11. SYSTEM TESTING

11.1 INTRODUCTION
65

The development of the software system involves a series of production activities where opportunities for injection of human feasibilities are enormous. Error may being to occur at the very inception of the process where the objectives may be erroneously or imperfectly specified as well as later design and development stages

Software is tested from two different perspectives:


Internal program logical is exercised using white box test case design techniques. Software requirements are exercised using black box test case design techniques.

66

11.2 SOFTWARE TESTING STRATEGIES

A strategy for a software testing integrates software test care design methods into a well planned series of steps that result in the successful construction of software. The strategy provides a road map that describes the steps to be conducted as part of testing, where these steps are planned and then undertaken, how much effort, time, and resources will required.. Therefore, any testing strategy must incorporate test planning, test case design, test execution, and resultant data collection and evaluation The software engineering process may be viewed as spiral illustrated in figure below. initially, system engineering was viewed as whole in the role of software and it led to software requirements analysis, where the information and finally coding. A strategy for software testing may be viewed in the context of the spiral. Unit testing began at the vortex of the spiral and concentrated on each unit software as implemented in source code. Testing progressed by moving outward along the spiral to integration testing where the focus was design and the construction of the software architecture. Taking another turn outward on the spiral, validation encountered where requirements established as a part of software requirements analysis were validated against the software that had been constructed. domain ,function ,behavior, performance , constraints, and validation criteria for software was established moving inward along the spiral, we came to design

67

11.2.1 UNIT TESTING


Unit testing focuses verification effort on the smallest unit of software design the software component or module. Using the component level design description as a guide, important control paths are tested to uncover errors within the boundary of the module. The relative complexity of tests and uncover errors is limited by the constraints scope established for unit testing. the unit test is white-box oriented ,and the step can be in parallel for multiple components.

Unit Test Considerations:The module interface was tested to ensure that information properly flowed into out of the program unit under test. Test local data structure was examined to ensure that data stored temporarily maintain its integrity during all steps of the main Decision Support System algorithms execution. Boundary condition was tested to ensure that the module operated properly at the boundaries established to limit or restrict processing. All independent paths (basis paths) through the control structure were exercised to ensure that all statement in each module was executed at the least once. Finally, all error handling paths i.e. the Exception Handlers and the cry and catch loops were tested Tests of data flow across a module interface are required before any test is initiated. In addition, local data structures should be exercised and local impact on global data should be ascertained. In order to implement the aforementioned, the global variable success was tested using in various test cases to arrives at various result and successfully test local impact caused

68

11.2.2 BLACK BOX TESTING


Black box testing typically involves running through every possible input to verify that it result in the right outputs using the software as an end-user would. we have decided to perform equivalence partitioning and boundary value analysis testing on our application. The equivalent partitioning will be performed at both the unit test level and the system test level. In considering the inputs for our equivalence testing, the following types will be used: Legal input values Test values within boundaries of the specification equivalence classes. This shall be the input data the program expects and is programmed to transform into usable values. Illegal input values ---- Test equivalence classes outside the boundaries of the specification. This shall be input data the program may be presented, but that will not produce any meaningful inputs. The test designer examines the input space defined for the unit under test and seeks to find sets of input that are, or should be, processed identically. The test team will perform black box testing. All procedural steps have been included to assist the team in executing the various tests.

11.2.3 WHITE BOX TESTING


In white box testing, the UI is bypassed. Inputs and outputs are tested directly at the code level and the result are compared against specification. This form of testing ignores the function of the program under test and will focus only on its code and the structure of that code. The test cases that have been generated shall cause each condition to be executed at least once. To ensure this happens, we are applying basis path testing. Because the functionality of the program is relatively simple, this method will be feasible to apply. Each function of the binary tree repository is executed independently; therefore, a program flow for each function has been derived from the code. The development team will be performing all white 69

box testing.

12. BIBLIOGRAPHY

70

12.1 References
1. Herbert Schildt, The Complete Reference JAVA2, Fifth Editition, Tata Magraw-Hill 2002 2. Troy Bryan, Remote Method Invocation JAVA, Second Edition, IDLG 2001 3. Robert Eckstein ,Marc Loy & Dave Wood ,JAVA Swing, 1 Edition ,OREILLY

12.2 Websites
1.www.java.sun.com/docs/rmi 2.www.apl.jhu.edu/~hall/java/Swing-Tutorial/ 3.www.java.sun.com/docs/books/tutorial/native1.1/ 4. www.ccs.neu.edu/home/kenb/1335/socket_tut.html 5.www.java.sun.com/docs/books/tutorial/networking/sockets/

71

12. APPENDIX

72

73

You might also like