* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download 5.2 UML Diagrams
Survey
Document related concepts
Transcript
1. INTRODUCTION Server Plus is the software which allows monitoring, controlling and sharing files over a specific computer network. It minimizes the work load of network administrator by providing the features like monitoring the activities, controlling, and file sharing on network. It provides the package of facilities which makes easy to handle the any network. Monitoring unit provides information of currently running process/task on client PC, present on network i.e. administrator can know the details of the processes by specifying the IP address of the client PC. Controlling unit handles the terminal operation such as shutdown, restart and logoff by specifying the IP address of the client PC. For this purpose we are using RMI (Remote Method Invocation) and Java Runtime class. File sharing unit provides the facility of file sharing between the networks. 1 2. OBJECTIVES AND SCOPE The main objectives of developing the Server Plus are given below:i. To provide easy tools to handle network ii. To deal with the functionalities which can be achieved in between computer networks iii. To enhance the work efficiency of the administrator and also to reduces the physical work strain 2 3. LITERATURE REVIEW 3.1 Java Java has become enormously popular. Java is a full-featured, general-purpose programming language that is capable of developing robust mission-critical applications. Today, it is used not only for web programming, but also for developing standalone applications across platforms on servers, desktops, and mobile devices. It was used to develop the code to communicate with and control the robotic rover that rolled on Mars. The creation of Java Java was conceived by James Goslings, Patrick Naughton, Chris Warth, Ed Frank, and Mike Sheridan at Sun Microsystems, Inc. in 1991. It took 18 months to develop the first working version. This language was initially called “Oak” but was renamed “Java” in 1995. Between the initial implementation of Oak in the fall of 1992 and the public announcement of Java in the spring of 1995, many more people contributed to the design and evolution of the language. Bill Joy, Arthur van Hoff, Jonathan Payne, Frank Yellin, and Tim Lindholm were key contributors to the maturing of the original prototype. The Continuing Revolution The initial release of Java was nothing short of revolutionary, but it did not mark the end of Java’s era of rapid innovation. Unlike most other software system that usually settles into a pattern of small, incremental improvements, java continued to evolve at an explosive pace. Soon after the release of Java1.0, the designers of Java had already created Java1.1. The features added by Java 1.1 were more significant and substantial than the increase in the minor revision number would have you think. Java1.1 added many new library elements, redefined the way events are handled by applets, and reconfigured many features of the 1.0 library. It 3 also deprecated (rendered obsolete) several features originally defined by Java1.0. Thus, Java1.1 both added and subtracted attributes from its original specification. The next major release of Java was Java2. Java2 was a watershed event, marking the beginning of the “modern age” of this rapidly evolving language! The first release of Java2 carried the version number1.2. It may seem odd that the first release of Java2 used the 1.2 version number. The reason is that it originally referred to the version of the Java libraries, but it was generalized to refer to the entire release, itself. Java2 added support for a number of new features, such as Swing and the Collections framework, and it enhanced the Java Virtual Machine and various programming tools. 3.2 Networking basics Java is a good language for networking. All classes in Java defined in the java.net package. These networking classes encapsulate the “socket” paradigm pioneered in the Berkeley Software Distribution (BSD) from the University of California at Berkeley. 4.2BSD came with a fast file system, reliable signals, interprocess communication, and became the de facto standard for the Internet. The networking support first found in 4.2 eventually remains the primary standard for communications within the Internet. The socket paradigm for interprocess and network communication has also been widely adopted outside of Berkeley. Even Windows and the Macintosh started talking “Berkeley sockets” in the late’80s. Remote Method Invocation (RMI) Remote Method Invocation (RMI) facilitates object function calls between Java Virtual Machines (JVMs). JVMs can be located on separate computers - yet one JVM can invoke methods belonging to an object stored in another JVM. Methods can even pass objects that a foreign virtual machine has never encountered before, allowing dynamic loading of new classes as required. Remote method invocation 4 allows applications to call object methods located remotely, sharing resources and processing load across systems. Unlike other systems for remote execution which require that only simple data types or defined structures be passed to and from methods, RMI allows any Java object type to be used - even if the client or server has never encountered it before. Any object that can be invoked this way must implement the Remote interface. When such an object is invoked, its arguments are “marshaled” and sent from the local virtual machine to the remote one, where the arguments are “unmarshalled”. When the method terminates, the results are marshaled from the remote machine and sent to the caller's virtual machine. If the method invocation results in an exception being thrown, the exception is indicated to caller. Fig 1.1 RMI Architecture Socket Overview A network socket is a lot like an electrical socket. Various plugs around the network have a standard way of delivering their payload. Anything that understands the standard protocol can “plug in” to the socket and communicate. With electrical sockets, it doesn’t matter if you plug in a lamp or a toaster; as long as they are expecting 60Hz, 115-volt electricity, the devices will work. Think how your electric bill is created. There is a meter somewhere between your house and the rest of the network. For each kilowatt of power that goes through that meter, 5 you are billed. The bill comes to your “address”. So even though the electricity flows freely around the power grid, all of the sockets in your house have a particular address. The same idea applies to network sockets, except we talk about TCP/IP packets and IP addresses rather than electrons and street addresses. Internet Protocol (IP) is a low-level routing protocol that breaks data into small packets and sends them to an address across a network, which does not guarantee to deliver said packets to the destination. Transmission Control Protocol (TCP) is a higher-level protocol that manages to reliably transmit your data. A third protocol, User Datagram Protocol(UDP), sits next to TCP and can be used directly to support fast, connectionless, unreliable transport of packets. Client/Server You often hear the term client/server mentioned in the context of networking. It seems complicated when you read about it in corporate marketing statements, but it is actually quite simple. A server is anything that has some resource that can be shared. There are compute servers. Which provide computing power; print servers, which manage a collection of printers; disk servers, which provide networked disk space; and webservers, which store webpages. A client is simply any other entity that wants to gain access to a particular server. The interaction between client and server is just like the interaction between a lamp and an electrical socket. 3.3 Swings We will take a tour of a supercharged alternative called swing. Swing is a set of classes that provides more powerful and flexible components than are possible with the AWT. In addition to the familiar components, such as buttons, check 6 boxes, and labels, Swing supplies several exciting additions, including tabbed panes, scroll panes, trees, and tables. Even familiar components such as buttons have more capabilities in Swing. For example, a button may have both an image and a text string associated with it. Also, the image can be changed as the state of the button changes. 7 4. FEASIBILITY STUDY OF PROJECT All projects are feasible, given unlimited resources and infinite time. But the development of software is plagued by the scarcity of resources and difficult delivery rates. It is prudent to evaluate the feasibility of the project at the earliest possible time. Three key considerations are involved in feasibility analysis. 4.1 Technical Feasibility The SERVER PLUS software is developed using the java environment. The reason for using java, as the development platform is that, java is an Object Oriented Language which handles most of the networking concepts. Since java is a platform independent language, the class files can be executed on any operating system easily. 4.2 Economic Feasibility This is the most frequently used method for evaluating the effectiveness of a system. It is also called as a cost analysis. The SERVER PLUS project, which is used to control all the remote systems in a network, requires resources such as the software and hardware components that support the RMI through java project effectively. Since all the clients are usually connected to the server in any organization, it reduces the cost factor. 4.3 Operational Feasibility The SERVER PLUS project is a user-friendly tool developed in order to make the operations of the administrator much better. It will be easy for the administrator to handle all the systems in the network from the server itself which helps in increasing the operational efficiency of the administrator. 8 5. METHODOLOGY 5.1 System Overview Start Server Plus Options Yes Monitor Share Control No Processes and Tasks Shutdown Restart Logoff Exit Fig. 5.1 Flowchart of System Overview 9 Share File 5.2 UML Diagrams 5.2.1 Class Diagram A class diagram represents the structure of the system. It shows set of classes, interfaces, and relationships between them. login +username: char +password: char +login() monitor transfer +ip: string +ip: string +transferfile() +clienttask() control +ip: string +shutdown() +restart() +lock() Fig 5.2 Class diagram of ServerPlus The class diagram above consists of four classes which are login class, transfer class, monitor class and monitor class. Firstly we have login class without which we cannot enter other classes. The attributes related to it are username and password and operation is login (). After successful login, we can enter any of the three classes as per out choice. 10 5.2.2 Sequence diagrams A Sequence Diagram emphasizes the time ordering of messages. Sequence diagram is a diagram that shows object interactions arranged in time sequence. In particular it shows objects participating in the interaction and the sequence of messages exchanged. server user client 1 : login() 2 : perform validition() 3 : specify IP address() 4 : select operation() 5 : process information() 6 : ask for presence of client() 7 : send a message if user is presence() 8 : execute() 9 : exit() Fig. 5.3 Sequence Diagram of ServerPlus 11 5.2.3 Use case diagram A Use case diagram identifies the primary processes in system which describes functionality of the system and primary elements involved in the system. The usecase diagram graphically renders interaction between various actors and different usecase belonging to a system or to sub system. System Control +1....* +1 1 Monitor +1 1....* 1...* Server Transfer Fig. 5.4 Use case diagram of ServerPlus 12 Client 5.2.4 Deployment diagram A deployment diagram shows the configuration of run rime processing nodes and the components the live on those nodes. Network client 1 admin clientn client2 Fig. 5.5 Deployment diagram of ServerPlus 13 5.2.5 Activity diagrams An Activity Diagram is essentially a flow chart sharing flow of control from activity to activity. Activity diagram are used to visualize, specify, construct and document dynamic aspects of society of objects related to Use case Scenarios. These diagrams are used to specify flow of control among various operations in society of objects. admin selection option Monitor Transfer control Fig. 5.6. Activity diagram of ServerPlus 14 6. PROJECT FEATURES The SERVER PLUS software is divided in to three modules based on their functionalities. These modules are as follows. Monitor Client Computers Control File Transfer 6.1 Monitoring Client Computers Using this software we can access the processes of any remote system by giving the desired system’s IP address. It is useful for the administrator to monitor the activities of the employees of that organization. This feature is similar to that of a task manager present in the windows operating system. The administrator can be able to get the desktop of that particular system and can warn the employees if they are doing any illegal activities. 6.2 Control The Control module handles the terminal operations such as shutdown, restart and logoff, by specifying the IP address of the remote system. For this purpose we are using RMI (Remote Method Invocation) and Java Runtime class. This module asks the administrator to enter the system address on which he wants to perform the terminal operations. It also asks the administrator to mention one of the above three terminal operations to be performed on the remote system. Once the administrator has confirmed the action, an echo message is sent to the remote system in order to ensure whether the user is using the system or not. In case of the system being accessed by the user a response is sent to the administrator. The administrator can either suspend or continue with his actions 15 after receiving the response. If the administrator knows that no one is using the system or no processes running at that time then he can use these options like shutdown, restart or logoff. 6.3 File Transfer Using this module we can transfer files between the client and the server based on the IP address. Few limitations are that it is a one way communication and we cannot transfer files from client computers to server or between two client computers. 16 7. SOFTWARE REQUIREMENT SPECIFICATION Software Requirement OPERATING : PLATFORM FRONT END WINDOWS XP, WINDOWS WINDOWS 8 : JAVA, RMI, SWINGS Hardware Specifications PROCESSOR : PENTIUM-4 RAM : 256 MB (MINIMUM) HARD DISK : 20 GB (MINIMUM) VDU : SVGA COLOR MONITOR KEY BOARD : 104 STANDARDS LAN : 17 ENABLED 7, 8. PROBLEMS FACED We had faced problems in various phases while developing the software. Some of the phases where we faced problems are: while starting the client computer while providing the hostname to execute the task in host while trying to fetch the task list executed in client computer 18 9. TESTING 9.1 Testing Plan Software testing is a critical element of software quality assurance and represents the ultimate review of specification, design and coding. Testing presents an interesting anomaly for the software engineer. 9.1.1 Testing Objective includes Testing is a process of executing a program with the intent of finding an error. A good test case is one that has a probability of finding an as yet undiscovered error. A successful test is one that uncovers an undiscovered error. 9.1.2 Testing Principles - All tests were traceable to end user requirements - Tests were planned long before testing begins - Testing was begun on a small scale and progress towards testing in large. - To be most effective testing was conducted by a independent third party 9.2 Testing Strategies 9.2.1 Integration Test Cases After the unit testing we had to perform integration testing. The goal here is to see if modules can be integrated properly, the emphasis being on testing interfaces between modules. In this project the main system is formed by integrating all the modules. When integrating all the modules we had 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. 19 It detects faults that have not been detected during unit testing, by focusing on small groups of components. 9.2.2 Integration testing strategies Bottom-up testing Top-down testing Sandwich testing The bottom-up testing strategy first individually tests each component of the bottom layer and then integrates them with components of the next layer up. The advantage of bottom-up testing is that interface faults can be more easily found. The disadvantage faults found on top layer may often leads to changes in the subsystem decomposition. The top-down testing strategy unit tests the components of the top layer first and then integrates the components of the next layer down. The advantage of topdown testing is that it starts with user interface components. The same set of tests, derived from the requirements, can be used in testing the increasingly more complex set of subsystems. The sandwich testing strategy combines the top-down and bottom-up strategies, attempting to make use of the best of both strategies. 20 10. LIMITATIONS The limitations are listed as follows: Main limitation is of security. We have allowed all permission to access all the data of client computers on network. Unable to find whether the client computer is turned on or it is off. During file sharing, we cannot share files between the client computers. During monitoring activity, we are only able to explore the processes on client computer, we cannot kill the tasks on client computers. 21 11. FUTURE ENHANCEMENTS In this project, even though we are able to transfer files from server to client, we cannot transfer files between two client computers. Thus we can add this functionality in the next versions of this software. Similarly, in the monitoring activity, we are only able to view the processes of the clients; we cannot kill those processes/tasks directly from server computer. We want to implement this function and also add functionality such that we can start a new process in the client computers directly from the server. Additionally we are unable to scan any malware and virus in client system and notify it to the server system. Further we want to implement this concept that if any malware or virus found in client systems then a message will be sent to the server system as a notification along with brief details. 22 12. PROJECT PLAN We planned the following work schedule for the development of our application software: Jun 2014 ID Task Name Start Finish Duration 25/5 1/6 1 Decision making and Analysis 26/05/2014 06/06/2014 10d 2 Design 05/06/2014 19/06/2014 11d 3 Implementation and Coding 18/06/2014 18/07/2014 23d 4 Debugging 03/07/2014 22/07/2014 14d 5 Testing 20/06/2014 30/07/2014 29d 8/6 Fig. 12.1 Gantt chart (Work Planning Schedule) 23 Jul 2014 15/6 22/6 29/6 6/7 13/7 20/7 13. CONCLUSION Thus, we have finally developed an application for the minor project entitled “Server Plus”. We had programmed the application in Java programming language for monitoring and controlling the client computers by a server computer. Establishing network between many computers helped the administrator to communicate, transfer data, control and manage the processes on many computers by a single computer. By doing this minor project, we gained enumerable knowledge about Java programming language, especially about Remote Method Invocation (RMI) , and thus learned to establish communication between client/server on a computer network. 24 REFERENCES 1. Alpcan, T., & Basar, T. (2004). Network Security. London, UK: Cambridge University Press. 2. James, F., & Ross, K. W. (2006). Computer Networking. New York, USA: Oxford University Press. 3. Sharma, R., & Sharma, V., (1998). Java Programming by Example. London, UK: Cambridge University Press. 25