Download 5.2 UML Diagrams

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

AppleTalk wikipedia , lookup

Dynamic Host Configuration Protocol wikipedia , lookup

Wake-on-LAN wikipedia , lookup

Cracking of wireless networks wikipedia , lookup

Zero-configuration networking wikipedia , lookup

Lag wikipedia , lookup

Remote Desktop Services wikipedia , lookup

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