AUTOMATED NETWORK ADMINISTRATION TOOL

Published on June 2016 | Categories: Types, School Work | Downloads: 36 | Comments: 0 | Views: 392
of 67
Download PDF   Embed   Report

Automated Network Administration Tool (ANAT) is an innovative tool for managing a network automatically in the absence of an administrator. ANAT is used for executing the commands on the Gateway machines and restricting access to server machines on the network for different users in the network. In Automated Network Administration tool an algorithm is developed for the purpose of automatically managing the network based on the criteria like Time, Host and User. This algorithm will restrict the access of the user to applications or resources on a system according to the access control rules set by the administrator. As a part of network management packet filtering, packet blocking etc. are done. Firewalls are activated and deactivated and Packet redirecting is developed according to the requirement of the Network administrator. Automated Network Administration Tool (ANAT) is an innovative tool for managing the network automatically and executing the commands on the Gateway machines and restricting access to server machines on the network for different users in the network.

Comments

Content

AUTOMATED NETWORK ADMINISTRATION TOOL

CONTENTS
SNO
1
2
3

CONTENTS
ABSTRACTION
INTRODUCTION
about the project
SYSTEM ANALYSIS
3.1 existing system
3.2 proposed system

4

PROBLEM ANALYSIS
4.1 feasibility study

5

SYSTEM REQUIREMENTS
5.1 hardware requirements
5.2 software requirements

6
7

SYSTEM DESIGN
6.1 DFD
SYSTEM TESTING

9

SYSTEM IMPLEMENTATION

10
11

FUTURE ENHANCEMENT
CONCLUSION

12

BIBLIOGRAPY

PAGE NO

ABSTRACT

Automated Network Administration Tool (ANAT) is an innovative tool for
managing the network automatically and executing the commands on the Gateway machines
and restricting access to server machines on the network for different users in the network.
Now a day, there are many tools available for network monitoring and management.
But ANAT provides a unique way of managing the network, that is, automatic network
management based on the three main constraints like time, host, and user. This automatic
administration relieves the administrator from his usual tedious task.

INTRODUCTION
Automated Network Administration Tool (ANAT) is an innovative tool for
managing a network automatically in the absence of an administrator. ANAT is used for
executing the commands on the Gateway machines and restricting access to server machines on
the network for different users in the network.
In Automated Network Administration tool an algorithm is developed for
the purpose of automatically managing the network based on the criteria like Time, Host and
User. This algorithm will restrict the access of the user to applications or resources on a system
according to the access control rules set by the administrator. As a part of network management
packet filtering, packet blocking etc. are done. Firewalls are activated and deactivated and Packet
redirecting is developed according to the requirement of the Network administrator.

SYSTEM ANALYSIS
Existing System:
Now a day, the task of controlling the communication across the network is very
tedious. There are many network monitoring tools available today which monitor the network
host but which cannot restrict the network access based on the three constraints i.e. time, host
and user.
All the constraints and access rights of a network user are written in the firewall
of a respective Bastion machine. For more security, these rules will have to be written in more
than one Bastion machine. In the existing system, a network administrator will have to write all
such rules in the firewalls of the respective Bastions separately.
The administrator will have to manually reconfigure all such rules when the
network users move in the network or they change their position. The administrator will have to
be there in the current network for reconfiguring the network i.e., he cannot do this job from a
remote site or another place
Also there is always a chance for the misuse of the privileges, by the network
users given by the administrator. He may misuse his privilege to access the ports of different
server machines in the network using utilities such as SSH, TELNET, FTP etc.
The administrator will have to continuously rewrite the rules, to restrict the access
to different servers in the network by the network users.
There is no network management or controlling tool, which completely holds the
necessities discussed above. The administrator has no tools currently available, which can be
used to update the firewall written for a business firm.

Proposed System:
The proposed system is for a network which consists of different servers
connected to a gateway machine and the clients connected to the bastion server through a hub or
switch. The proposed system is expected to rectify all drawbacks of the existing system. The
administrator should be able to control and monitor the whole network from a central Bastion.
There will be provision for writing the firewall rules in a central Bastion. The policies or rules
for each user are stored in the central database in the Bastion Server. The administrator can login
to the central Bastion, which is basically a web server from anywhere in the world i.e., from any
other network, provided that he must have access to the Internet. When a user login to the
network, the login information is sent to the Bastion Server and all his access rights are retrieved
from the database and are applied on the Bastion Server.
The propose system is based on three constraints time, user and host. The policies
or rules are applied in the central Bastion machine according to these three constraints. The user
access to the machine or the network can be restricted based on time, host and user. There are
provisions for adding new users to the network. At the time of creation of user accounts the
rules and policies for that particular user are decided by the network administrator. The network
administrator can write new policies and rules for existing users and for new users, which is
accomplished by a well designed user interface for administrator.

Automated Network Administration has the following modules :
1. Login
2. UserDetails
3. Group
4. Host
5. Policy

Login:
Login will display the username and the pass word. Whenever a client is logged
into the network, his details are verified with the database and his corresponding policies are
applied to that user and the corresponding hosts.
User Details:
This will display all the authorized users in the network. User details is the having
the own id.Explain the various users of the network. userid stores the user id. every user having
the own id.user password stores the password of the user.user policy stores the special policy of
user.groupsign in stores the combined policy of the groups in which hw is member.start time
stores the start time of the userfrom which he can be in the network.endtime stores the end time
of user upto which can be in the network.email stores the email of the user. With these fields we
cant login.
Group:
Group explain the various user groups in the network.this will display the groups
which are registered in the network.In the automated network administration tool we are using in
companies and the any under network company.This group we are having different baches.
Every batch having one group id, group description,group policy.Group id stores the id of the
group.Group description srores the policy that will affect a particular group..every group having
some particular restriction.with out permission they cant login.
Host:
Host will display the user who are currently in the network.host stores the details
of the various clients in the network. Host having the some fields.host id , start time and the end
time .Host id explain about the id of a host.host is nothing but a ip adrress. Every system having
the own ip addresss.In host impartant is the start time and the end time.Start time is the explain
the start time of the user .this disply when he login which group login.End time stores the end
time of the host up to which it can be in the network.

Policy:
This will display all the policies which can be set for users the new policy stores
the details of various policies than can be applied to different users in new policy we are using
the policy id .it stores the id of various policies.Policy description it stores description of the
policies script id stores the names of script Files in which the it tables rules are written.policy is
nothing but a rules and regulations in the new policy we are having the different types of rules
.Every user having the own id and the password.

To Manage The Entire Network Users:
The administrator should be able to manage the entire network users i.e. by
restricting their access to the servers in the network.
User Friendly Interface:
The administrator should be provided with a user-friendly interface to add new
users, delete users, modify users, add policy, add groups etc.
Make Updates Anytime, Anywhere:
The administrator should be able to update the user policies or the database even
he is not in the local network.
Fast, Simple And Easy To Use:

Once software installed and configured the automated

management should be done.
Maximum Efficiency And Scalability: The software should be efficient and scalable.
Security And Authentications:

Authentication should be provided for better security

PROBLEM ANALYSIS
FEASIBILITY ANALYSIS:
In feasibility study an estimate is made of whether the identified user needs may be
satisfied using current software and hardware techniques. The study will decide if the proposed
system will be cost effective from a business point of view, and if it can be developed given
existing budgetary constraints. The result should inform the decision whether to go ahead with a
more detailed analysis.
SYSTEM PERFORMANCE DEFINITION
There is no printed document or report as the output of proposed system. The only
intended output of the system is user-friendly screens for getting some inputs and processing
them.
FEASIBILITY CONSIDERATION
Three key considerations are involved in the feasibility analysis, economic,
technical, and behavioral.
ECONOMIC FEASIBILITY
Economic analysis is the most frequently used method for evaluating the
effectiveness of a candidate system. More commonly known as cost benefit analysis, the
procedure is to determine the benefits and saving are expected from a candidate system and
compared them with costs. The benefits outweigh costs, the decision is made to design and
implement the system. Otherwise further justification and alternation in the proposed system
have to be made.
ANAT, saves money and time. The administrator is relieved from the day to day
firewall configuration.

TECHNICAL FEASIBILITY :
ANAT can be managed from any part of the world provided, an internet
connection.
BEHAVIORAL FEASIBILITY
In behavioral feasibility, an estimate should be made of how strong a reaction the
user staff is likely to have toward the new system. As far as concerned with this project ANAT,
the clients can run on any platform. A minimum memory of 256MB is required for the gateway
system. A hard disk of minimum 20GB is also recommended.

SYSTEM REQUIREMENT
HARDWARE AND SOFTWARE REQUIREMENTS
The software requirement specification is produced at the culmination of the
analysis task. The function and performance allocated to software as part of system engineering
are refined by establishing a complete information description as functional representation, a
representation of system behavior, an indication of performance requirements and design
constraints, appropriate validation criteria.
Hardware Requirements
Gateway machine:
Memory 256 MB RAM
Hard Disk 20 GB
Two 10/100mbps NIC cards
Client Machine:
Memory 128 MB RAM
Hard Disk 2GB
10/100mbps NIC cards
Software Requirements
Gateway machine:
Redhat Linux 9
Recompiled Redhat Enterprise Linux 2.4.x Kernel
My SQL 3.23.54 for Linux
For communication RMI Client and RMI Stub is needed.
Client Machine:
Redhat Linux 9 or Windows Operating System
For communication RMI Client and RMI Stub is needed.

Software Description :
Java was conceived by James Gosling, Patrick Naughton, Chris Wrath, Ed Frank,
and Mike Sheridan at Sun Micro system. It is an platform independent programming Language
that extends its features wide over the network.Java2 version introduces an new component
called “Swing” – is a set of classes that provides more power & flexible components than are
possible with AWT.
 It’s a light weight package, as they are not implemented by platform-specific code.
 Related classes are contained in javax.swing and its sub packages, such as
javax.swing.tree.
 Components explained in the Swing have more capabilities than those of AWT
What Is Java?
Java is two things: a programming language and a platform.
The Java Programming Language
Java is a high-level programming language that is all of the following:
1. Simple
2. Object-oriented
3. Distributed
4. Interpreted
5. Robust
6. Secure
7. Architecture-neutral
8. Portable
9. High-performance
10. Multithreaded

With most programming languages, you either compile or interpret a program so that you can
run it on your computer. The Java programming language is unusual in that a program is both
compiled and interpreted. With the compiler, first you translate a program into an
intermediate language called Java byte codes —the platform-independent codes interpreted
by the interpreter on the Java platform. The interpreter parses and runs each Java byte code
instruction on the computer. Compilation happens just once; interpretation occurs each time
the program is executed. The following figure illustrates how this works.

You can think of Java bytecodes as the machine code instructions for the Java Virtual
Machine (Java VM). Every Java interpreter, whether it’s a development tool or a Web
browser that can run applets, is an implementation of the Java VM. Java bytecodes help
make “write once, run anywhere” possible. You can compile your program into bytecodes on
any platform that has a Java compiler. The bytecodes can then be run on any implementation
of the Java VM. That means that as long as a computer has a Java VM, the same program
written in the Java programming language can run on Windows 2000, a Solaris workstation,
or on an iMac.

The Java Platform
A platform is the hardware or software environment in which a program runs. We’ve already
mentioned some of the most popular platforms like Windows 2000, Linux, Solaris, and
MacOS. Most platforms can be described as a combination of the operating system and
hardware. The Java platform differs from most other platforms in that it’s a software-only
platform that runs on top of other hardware-based platforms.
The Java platform has two components:


The Java Virtual Machine (Java VM)



The Java Application Programming Interface (Java API)

You’ve already been introduced to the Java VM. It’s the base for the Java platform and is
ported onto various hardware-based platforms.
The Java API is a large collection of ready-made software components that provide many
useful capabilities, such as graphical user interface (GUI) widgets. The Java API is grouped
into libraries of related classes and interfaces; these libraries are known as packages. The
next section, What Can Java Technology Do?, highlights what functionality some of the
packages in the Java API provide.
The following figure depicts a program that’s running on the Java platform. As the figure
shows, the Java API and the virtual machine insulate the program from the hardware.

Native code is code that after you compile it, the compiled code runs on a specific
hardware platform. As a platform-independent environment, the Java platform can be a bit
slower than native code. However, smart compilers, well-tuned interpreters, and just-in-time
bytecode compilers can bring performance close to that of native code without threatening
portability.

What Can Java Technology Do?
The most common types of programs written in the Java programming language are applets
and applications. If you’ve surfed the Web, you’re probably already familiar with applets.
An applet is a program that adheres to certain conventions that allow it to run within a Javaenabled browser.
However, the Java programming language is not just for writing cute, entertaining applets for
the Web. The general-purpose, high-level Java programming language is also a powerful
software platform. Using the generous API, you can write many types of programs.
An application is a standalone program that runs directly on the Java platform. A special kind
of application known as a server serves and supports clients on a network. Examples of
servers are Web servers, proxy servers, mail servers, and print servers. Another specialized
program is a servlet. A servlet can almost be thought of as an applet that runs on the server
side. Java Servlets are a popular choice for building interactive web applications, replacing
the use of CGI scripts. Servlets are similar to applets in that they are runtime extensions of
applications. Instead of working in browsers, though, servlets run within Java Web servers,
configuring or tailoring the server.
How does the API support all these kinds of programs? It does so with packages of
software components that provide a wide range of functionality. Every full implementation
of the Java platform gives you the following features:


The essentials: Objects, strings, threads, numbers, input and output, data structures,
system properties, date and time, and so on.



Applets: The set of conventions used by applets.



Networking: URLs, TCP (Transmission Control Protocol), UDP (User Data gram
Protocol) sockets, and IP (Internet Protocol) addresses.



Internationalization: Help for writing programs that can be localized for users
worldwide. Programs can automatically adapt to specific locales and be displayed in the
appropriate language.



Security: Both low level and high level, including electronic signatures, public and
private key management, access control, and certificates.



Software components: Known as JavaBeansTM, can plug into existing component
architectures.



Object serialization: Allows lightweight persistence and communication via Remote
Method Invocation (RMI).



Java Database Connectivity (JDBCTM): Provides uniform access to a wide range of
relational databases.
The Java platform also has APIs for 2D and 3D graphics, accessibility, servers,
collaboration, telephony, speech, animation, and more. The following figure depicts what
is included in the Java 2 SDK.

Java Server Page (JSP)
JSP is a technology that allows Web pages to be created dynamically for the Web
Server so that the page content can be varied according to circumstances. This can be used for
instance, to provide custom pages according to the identity of the user, the type of Web browser
they are using, information they have provided or selections they have made.
JSP documents are written in plain text and have a .jsp file extension. They use
tags, like those in HTML or XML, to denote JSP elements. A JSP element is used to dynamically
insert content into a page. It can be used for many purposes, such as getting information from a
database or retrieving user preferences.

JSP elements can contain scriptlets, written in the

Java programming language, to provide the logic to determine which content should be
generated for a Web page.
INTRODUCTION TO JDBC
JDBC (Java Database connectivity) is a front-end tool for connecting to a server to ODBC in
that respect, however JDBC can connect only java client and it uses ODBC for the
connectivity. JDBC is essentially a low-level API since any data manipulation, storage and
retrieval has to be done by the program itself. Some tools, which provide a higher-level
abstraction, are expected shortly.
The next question that needs to be answered is why we need JDBC, once we have ODBC on
hand. We can use the same ODBC to connect the entire database and ODBC is a proven
technology.Problem for doing this is ODBC gives a ‘c’ language API, which uses pointers
extensively. Since java does not have any pointers and is object-oriented sun Microsystems,
inventor of java developed to suit its needs.
Requirements to use JDBC:
To use JDBC you need a basic knowledge of databases and SQL . A part from this you need
the jdk1.1 (Java Development Kit1.1 available javasoft’s website) or a version of Java since
jdk1.1 and above come bundled with JDBC Software.
After that you need to have a back-end database engine for which a JDBC driver is available.
When JDBC drivers are not available JDBC-ODBC bridge drivers are used to access the
database through ODBC. Back-end is not needed when JDBC driver is capable of storing and

retrieving the data itself, or if JDBC-ODBC Bridge and the ODBC driver can be used to store
and retrieve the information.

DATABASE MODELS:
JDBC and accessing the database through applets and JDBC API via an intermediate server
resulted server resulted in a new type of database model which is different from the clientserver model. Based on number of intermediate server through the request should go it is
named as single tire, two tire and multi tire architecture
Single Tier:
In a single tier the server and client are the same in the sense that a client program that needs
information (client) and the source of this type of architecture is also possible in java, in case
flat files are used to store the data. However this is useful only in case of small applications.
The advantage with this is the simplicity and portability of the application developed.
Two Tier (client-server):
In two tier architecture the database resides in one machine and client in different machine
they are connected through the network. In this type of architecture a database management
takes control of the database and provides access to clients in a network. This software
bundle is also called as the server. Software in different machines, requesting for information
are called as the clients.

Client
Server
Client

Three tier and N-Tier:

database
database

In the three-tier architecture, any number servers can access the database that resides on
server. Which in turn serve clients in a network. For example, you want to access the
database using java applets, the applet running in some other machine, can send request only
to the server from which it is down loaded. For this reason we will need to have a
intermediate server which will accept the requests from applets and them to the actual
database server. This intermediate server acts as a two-way communication channel also.
This is the information or data from the database is passed on to the applet that is requesting
it. This can be extended to make n tiers of servers, each server carrying to specific type of
request from clients, however in practice only 3 tiers architecture is popular.
JDBC Driver Types:
The JDBC drivers that we are aware of at this time fit into one of four categories
JDBC-ODBC BRIDGE PLUS ODBC DRIVER
The java soft bridge product provides JDBC access via ODBC drivers. Note that ODBC
binary code end in many cases database client code must be loaded on each client machine
that uses this driver. As a result, this kind of driver is most appropriate on a corporate
network where client installations are not major problem, or for application server code
written in java in a 3-tier architecture.
NATIVE API PARTLY-JAVA DRIVER:
This kind of driver converts JDBC calls into calls on the client API for oracle Sybase,
Informix, DB2, or other DBMS. Note that, like the bridge driver, this style of driver requires
that some binary code be loaded on each client machine.
JDBC-NET ALL-JAVA DRIVER

This driver translates JDBC calls into a DBMS independent net protocol, which is then
translated, to a DBMS protocol by a server. This net server middle-ware is able to connect its
all java clients to many different databases. The Specific protocol used depends on the
vendor. In general, this most flexible JDBC alternative. It is likely that all vendors of this
solution will provide products suitable for intranet use. In order for these products to also
support Internet access, they must handle the additional requirements for security, access
through firewalls, etc that the web imposes. Several vendors are adding JDBC drivers to their
existing database middleware products.
NATIVE PROTOCOL ALL-JAVA DRIVER
This kind of driver converts JDBC calls into the network protocol used by DBMS directory.
This allows a direct call from the client machine to the DBMS server that is practical solution
for intranet access. Since many of these protocols are proprietary, the database vendors
themselves will be the primary source. Several database vendors have these in progress.
Eventually, we expect that driver categories 3 and 4 will be the preferred way to access
databases from JDBC. Driver categories one and two are interim solutions where direct all
java drivers are not yet available. Category 4 is in some sense the ideal; however, there are
many cases where category 3 may be preferable: eg: -where a thin DBMS-independent client
is desired, or if a DBMS –independent protocol is standardized and implemented directly by
many DBMS vendors.

JDBC Goals
Few software packages are designed without goals in mind. JDBC is one that, because of its
many goals, drove the development of the API. These goals, in conjunction with early
reviewer feedback, have finalized the JDBC class library into a solid framework for building
database applications in Java.
The goals that were set for JDBC are important. They will give you some insight as to why
certain classes and functionalities behave the way they do. The eight design goals for JDBC
are as follows:

MYSQL

MySQL has become one of the most popular Linux databases on the market and it
continues to improve each day. MySQL is a popular structured query language (SQL) database
server. Like other SQL servers, MySQL provides the means of accessing and managing SQL
databases. However, MySQL also provides tools for creating database structures, as well as for
adding, modifying and removing data from those structures. Because MySQL is a relational
database, data can be stored and managed in small, manageable tables. Those tables can be used
in combination to create flexible yet complex data structures.

IPTABLES
Iptables is used to set up, maintain, and inspect the tables of IP packet filter rules
in the Linux kernel. There are several different tables like FILTER, NAT and MANGLE which
may be defined, and each table contains a number of built-in chains like INPUT, OUTPUT,
FORWARD, POSTROUTING, PREROUTING, and may contain user-defined chains. Each
chain is a list of rules which can match a set of packets: each rule specifies what to do with a
packet which matches. This is called a `target', which may be a jump to a user-defined chain in
the same table.

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,
checkboxes, and labels, swing supplies several exciting additions including tabbedpanes,
scrollpanes, 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.

Unlike awt components, swing components are not implemented by platform
specific code .Instead they are written entirely in java and are therefore platform independent.
The term lightweight is used to describe such elements.

Swing Heavy weight
Components

AWT

Swing Lightweight
Components

Frame ,Window ,Dialog
F

Component, Container, Graphics, Color,
Font, Toolkit, Layout Managers etc.
Swing’s Relationship to the AWT

Introduction to Servlets
Servlets provide a Java(TM)-based solution used to address the problems currently associated
with doing server-side programming, including inextensible scripting solutions, platformspecific APIs, and incomplete interfaces.

Servlets are objects that conform to a specific interface that can be plugged into a Java-based
server. Servlets are to the server-side what applets are to the client-side -- object bytecodes
that can be dynamically loaded off the net. They differ from applets in that they are faceless
objects (without graphics or a GUI component). They serve as platform-independent,
dynamically-loadable, pluggable helper bytecode objects on the server side that can be used
to dynamically extend server-side functionality.
What s a Servlet?
Servlets are modules that extend request/response-oriented servers, such as Java-enabled web
servers. For example, a servlet might be responsible for taking data in an HTML order-entry
form and applying the business logic used to update a company's order database.

Servlets are to servers what applets are to browsers. Unlike applets, however, servlets have
no graphical user interface.
Servlets can be embedded in many different servers because the servlet API, which you use
to write servlets, assumes nothing about the server's environment or protocol. Servlets have
become most widely used within HTTP servers; many web servers support the Servlet API.

Use Servlets instead of CGI Scripts!
Servlets are an effective replacement for CGI scripts. They provide a way to generate
dynamic documents that is both easier to write and faster to run. Servlets also address the
problem of doing server-side programming with platform-specific APIs: they are developed
with the Java Servlet API, a standard Java extension.
So use servlets to handle HTTP client requests. For example, have servlets process data
POSTed over HTTPS using an HTML form, including purchase order or credit card data. A
servlet like this could be part of an order-entry and processing system, working with product
and inventory databases, and perhaps an on-line payment system.
Other Uses for Servlets : Here are a few more of the many applications for servlets:


Allowing collaboration between people. A servlet can handle multiple requests
concurrently, and can synchronize requests. This allows servlets to support systems such
as on-line conferencing.



Forwarding requests. Servlets can forward requests to other servers and servlets. Thus
servlets can be used to balance load among several servers that mirror the same content,
and to partition a single logical service over several servers, according to task type or
organizational boundaries.

Architecture of the Servlet Package
The javax.servlet package provides interfaces and classes for writing servlets. The architecture
of the package is described below.
The Servlet Interface:
The central abstraction in the Servlet API is the Servlet interface. All servlets implement this
interface, either directly or, more commonly, by extending a class that implements it such as
HttpServlet.

The Servlet interface declares, but does not implement, methods that manage the servlet and
its communications with clients. Servlet writers provide some or all of these methods when
developing a servlet.

REMOTE METHOD INVOCATION
Remote Method Invocation (or RMI for short) allows us to execute methods on
remote servers. As the name suggests, it helps us to locate and execute methods of remote
objects. It's like placing a class on Machine A and calling methods of that class from Machine B
as though they were from the same machine.
RMI is a pure Java solution unlike CORBA where we can have objects from
different programming languages interacting. In RMI everything we code will be in JAVA. This
whole process will look transparent to the end user.
Objects which have to be made available to other machines have to be exported to
something called a Remote Registry Server so that they can be invoked. Remote Registry Server

is a service that runs on the server and helps client’s search and access objects on the server
remotely. If an object has to be capable of being exported then it must implement the Remote
Interface present in the RMI package. RMI uses something called a stub and a skeleton.
The stub is present on the client side, and the skeleton the server side. There are a
number of events that have to take place beforehand which help in the communication of the
data. The stub is like a local object on the client side, which acts like a proxy of the object on the
server side. It provides the methods to the client which can be invoked on the server. The Stub
then sends the method call to the Skeleton, which is present on the server side. The skeleton then
implements the method on the server side.
The Stub and the Skeleton communicate with each other through something
called a Remote Reference Layer. This layer gives the stub and skeleton the capability to send
data using the TCP/IP protocol. A simple technique called "Binding" is involved in RMI.

SYSTEM DESIGN
Data flow diagrams (DFD)
Data flow diagrams (DFDs) reveal relationships among and between the various components
in a program or system. DFDs are an important technique for modeling a system’s high-level
detail by showing how input data is transformed to output results through a sequence of
functional transformations. DFDs consist of four major components: entities, processes, data
stores, and data flows. The symbols used to depict how these components interact in a system
are simple and easy to understand, however, there are several DFD models to work from,
each having its own symbology. DFD syntax does remain constant by using simple verb and
noun constructs. Such a syntactical relationship of DFDs makes them ideal for objectoriented analysis and parsing functional specifications into precise DFDs for the systems
analyst.
Data flow diagram is a graphical tool used to describe analyze the movement of data through
a system manual or automated including the processes, stores of data, and delays in the
system.
Data flow diagrams are the central tool and basis for form which other components are
developed. The data flow diagram is also known a data flow graph or bubble Data flow
diagrams illustrate how data is processed by a system in terms of inputs and output. Data
flow diagrams (DFDs) are the method of choice over technical descriptions for three
principal reasons.
1. DFDs are easier to understand by technical and nontechnical audiences
2. DFDs can provide a high level system overview, complete with boundaries and
connections to other systems

3. DFDs can provide a detailed representation of system components.
DFD’s represent the following:
1. External devices sending and receiving data
2. Processes that change that data.
3. Data flows themselves.
4. Data storage locations
The hierarchical DFD typically consists of a top-level diagram (Level 0) underlain by
cascading lower level diagrams (Level 1, Level 2…) that represent different parts of the
system.
Data Flow:
Data flow is the movement of data between the entity, the process, and the data store. Data
flow portrays the interface between the components of the DFD. The flow of data in a DFD
is named to reflect the nature of the data used (these names should also be unique within a
specific DFD). Data flow is represented by an arrow, where the arrow is annotated with the
data name.

Context diagram:
A context diagram is a top level (also known as level 0) data flow diagram. It only contains
one process node (process 0) that generalizes the function of the entire system in relationship
to external entities.
The top-level diagram is often called a “context diagram”. It contains a single process, but it
plays a very important role in studying the current system.
The context diagram defines the system that will be studied in the sense that it determines the
boundaries.
Anything that is not inside the process identified in the context diagram will not be part of
the system study.
It represents the entire software element as a single bubble with input and output data
indicated by incoming and outgoing arrows respectively.

Advantages and Disadvantages of DFDs:
Advantages:
As we have seen, the DFD method is an element of objectoriented analysis and is widely
used. Use of DFDs promotes quick and relatively easy project code development. DFDs are
easy to learn with their few-and simple-to-understand symbols (once you decide on a
particular DFD model). The syntax used for designing DFDs is simple, employing English
nouns or nounadjective- verb constructs.
Disadvantages:
DFDs for large systems can become cumbersome, difficult to translate and read, and be time
consuming in their construction. Data flow can become confusing to programmers, but DFDs
are useless without the prerequisite detail.

System components

Symbolizes process
Symbolizes data flow
Symbolizes External entity
Symbolizes data store
The data flow diagram is one of the most important tools used for the system
analysis. ADEMACRO (1978) and SARSON (1979) populated the use of data flow diagrams
as modeling tool through their structured analysis methodologies. They suggested that a data
flow diagram should be the first tool used by the analyst to model the system components.
There are four types of system components. They are

Process:

Process shows what system does. A process is represented by a circle as shown above. Each
process is given a unique name and a unique number. Each process takes one or more data
inputs and produces one or more data outputs.
Data flows:
Data flows made the passage of data and are represented by the line joining the system
components. An arrow is used to indicate the direction of data flow shown in the above and
the line is labeled by the name of the data flow.
Data stores:

Data store is used to represent the repository of the data that maintains in the system. A
process can store data into a data store or retrieve the data from the data store. A data store is
represented by a thin line as shown in the above.
External Entities:
External entities are the out side the system but they either supply input into system or use
system output. The designer has to control over these entities. These are represented by a
square or rectangle outputs as shown in the above.
The context level data flow diagram shown above gives a brief idea about the flow of
data should be and it is also shows the control if some data are invalid.

Data Flow Diagram:
LEVEL 0 :

SYSTEM DESIGN
DATAFLOW DIAGRAM

SERVER1

CLIENT1

ANAT ON
CLIENT2

GATEWAY

CLIENT n

SERVER2

SERVER n
LEVEL 0

LEVEL 1 :

CLIENT

Client
authentication on
Gateway machine

Chat Interface
for client

User details

Policies for
Client is set on
Gateway machine

Logout
client

Adding users and
policies

Policies

ADMINISTRATOR

LEVEL 1

Policies for the
client are
removed

LEVEL 2 (Client)

client

User authentication
User details

Checking the
allowable time to n/w

Checking current
availability of the system
in which client is logged in

Checking whether
client is allowed to sit
on the current machine

Host details
Setting user policies
on the gateway

Policies

User-host details
logout
Chat for client

LEVEL 2 (Client)

Removing
policies for
client

LEVEL 3 (Administrator) :

ADMINISTRATOR
Add users,
policies and
groups
userdetails
Policy details
Group details

Modify users,
policies & groups

Delete users,
policies& groups

Group details
User details

Policy details

LEVEL 3 (Administrator)

4.2 Input Design:
Input design is the process of converting user-originated input to a

computer-

based format. The goal of designing input data is to make data entry as easy, logical and free
from errors. Input data are collected and organized into groups of similar data. Appropriate input
media are selected for processing. The project requires a set of information from the user to
prepare a report. In order to prepare a report, organized input data are needed.
Input design is one of the most expensive phases of the operation of computerized
system and is often the major problem of a system. Inaccurate input data are the most common
cause of error in data processing. Errors entered by data entry operators can be controlled by
input design.
The objective of input design is:


To produce a cost effective method of input.



To make the input forms understandable to the user.



To ensure the validation of the data input.



To achieve the highest possible level of accuracy.
The various activities to be performed for the overall input process are:



Data recording at its own



Data transfer to input form



Data conversion to computer accessible mode



Data validation



Data flow control



Data correction if necessary
The design of input covers all phases of input form from the creation of initial

data to actual entering of the data of the system for processing. The design of input involves

identifying the data needed; specifying the characteristics of each data item, capturing and
preparing data for computer processing and ensuring correctness of data .
In ANAT input design is done with several components like forms and its
elements like buttons, textboxes, labels etc. ANAT provides interfaces for administrators and
users of the network.

Administrator Interface :
Administrator is provided with various forms for manipulating users, policies and
groups. Forms are made with the help of html, JSP and JavaScript. Administrator can easily do
his work with the help of these forms.
User Interface :
Users are provided with a login form through which he can log on to the network.
User forms are designed with the help of Swing package from java. Also forms are provided for
communicating users with the Server machine managers.
Output Design :
In Output design, the emphasis is on producing a hard copy of information or
displaying the output. Output design generally refers to the results generated by the system.
Computer output is the most important and direct source of information to the user. Efficient,
intelligent output design should improve system relationships with the user and help in decision
making.
For many end-users, output is the main reason for developing the system and the
basis on which they evaluate the usefulness of the application. Print outs should be designed
around the output requirements of the user. One of the most important reasons, which tempt the
user to go for a new system, is the output. Outputs also provide a means of storage by copying
the results for later reference in consultation. There is a chance that some of the end-users will
not actually operate the input data or information.
Outputs of a system can take various forms. The most common are reports, screen
displays, printed forms, graphical drawings etc. Two phases of output design are:



Output Definition



Output Specification

Output definition takes into account the type of output contents, its frequency and
its volume. The appropriate output media is determined for outputs. Once the output media is
chosen, the detail specifications of output documents are carried out. The nature of output
required from the proposed system is determined during the logical stage itself.
The outputs generated by the system are often regarded to be the criterion for
evaluating the system usefulness and resourcefulness. The outputs of a system are the
justification for its existence. If the outputs are inadequate in any way, the system itself is
inadequate. The basic requirement of output is that it should be accurate, timely and appropriate
in terms of content, medium and layout for its intended purpose. Hence it is necessary to design
outputs so that the objectives of the system are attained.

The following are some of the outputs generated in the proposed system.

 Policy set for a user who logged in.
Whenever a client is logged into the network, his details are verified
with the database and his corresponding policies are applied to that
user and the corresponding hosts.
 List all the users who are in the network currently.
This will list all the users who are currently in the network.
 List users
This will display all the authorized users in the network.

 List Policies
This will display all the policies which can be set for users.
 List groups
This will display all the groups which are registered in the network.

Database Design :
Automated Network Administration Tool uses a relatively complex database having seven
tables.
1. Admin able
2. User table
3. Host table
4. User host table
5. Group table
6. User group table
7. Policy table
8. Login detail table

Database Tables:
The database tables used for the project are:
Admin Table:
Table Description: This tsble is used to store Admin information
Sno
1
2

Column Name
Admin ID

Data Type
VarChar(20)

Admin pwd VarChar(20)

Null option
Not null
Not null

Key
Primary
Key

Description
Stores admin id
Stores admin
pwd

Group Table:
Table Description: This tsble is used to Store Group information
Sno

Data Type

Null option

Key

Description

1

Column
Name
Groupid

VarChar(20)

Not null

Primary Key

2

Groupdesc

VarChar(20)

Not null

3

groupPolicy

VarChar(20)

Not null

Stores group
id
Stores
groupdesc
StoresPolocy

Host Table:
Table Description: This tsble is used to Store Host information
Sno

Data Type

Null option

Key

Description

1

Column
Name
Hostid

VarChar(20)

Not null

Primarykey

2

Starttime

Time

Not null

3

Endtime

Time

Not null

Stores
Hostid
Stores
starttime
Stores
Endtime

Login Details Table :
Table Description: This tsble is used to Store User information

Sno

Data Type

Null option

Number

Not null

2

Column
Name
Login
number
Userid

VarChar(20)

Not null

3

Hostid

VarChar(20)

Not null

4

Login time

Number

Not null

5

Logout time

Number

Not null

1

Key

Primary key

Description
Stores
loginnumber
Stores
Userid
Stores
Hostid
Stores login
time
Stores
logout time

User Table :
Table Description: This tsble is used to Store User information
Sno
1

Column
Name
Userid

Data Type

Null option

2

UserPassword VarChar(20) Not null

3

Userpolicy

VarChar(20) Not null

4

Groupsin

VarChar(20) Not null

5

Start time

Time

Not null

6

End time

Time

Not null

7

Email

VarChar(20) Not null

VarChar(20) Not null

Key

Description

PrimaryKey

Stores
Userid
Stores
Userpwd
Stores
userpolicy
Stores
Groupsin
Stores Start
time
Stores end
time
Stores
UserEmail

Userhost Table :
Table Description: This tsble is used to Store Userhost information

Sno

Data Type

Null option

Key

Description

1

Column
Name
Userid

VarChar(20)

Not null

Primarykey

2

Userpwd

VarChar(20)

Not null

Stores
Userid
Userpwd

Usergroup Table :
Table Description: This tsble is used to Store UserGroup information
Sno

Data Type

Null option

Key

Description

1

Column
Name
Userid

VarChar(20)

Not null

Primarykey

2

Groupid

VarChar(20)

Not null

Stores
Userid
Stores
Groupid

Policy Table :
Table Description: This tsble is used to Store Policy information
Sno

Data Type

Null option

1

Column
Name
Policyid

VarChar(20)

Not null

2

Policydesc

VarChar(20)

Not null

3

Scriptid

VarChar(20)

Not null

Key

Description
Stores
Policyid
Stores
poloicydesc
Stores policy
Scriptid

SYSTEM TESTIN
System testing :
The aim of any software development is to create bug free, reliable and secure systems that
provide solution to user requirement. The implementation of newly designed package is
important in adopting a successful new system.
Testing is an important and critical design in software development. It accounts for the
largest amount of technical effort in the software development process. It plays a critical role
in determining life cycle validates the code against the functional specification. The feedback
from the test stage will be incorporated which there by ensures high reliability.
Testing involves operations of a system or application under controlled conditions and
evaluating the results. The controlled conditions should include both normal and abnormal
conditions. Testing should intentionally attempt to make things go wrong to determine if
things happen when they should. It is meant to 'detection' oriented.

Test Plan:
Importance of the Testing phase cannot be undermined. Software testing is a critical element
of software quality assurance and represents the ultimate review of specification, design and
coding. Realizing the importance of the testing phase in the development cycle of a product.
Though few of the minor error checking takes place during the coding itself, but to check the
stability of the system and also to see whether the finished product is in accordance to the
system requirement specification, the product needs to undergo extensive testing.
The Process can be divided into two categories, namely.

Testing Objectives:

The main objective of testing is to uncover a host of errors, systematically and with minimum
effort and time.


Testing is a process of executing a program with the intent of finding an error.



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.

FUNCTIONAL TESTING:
Also known as Black Box testing it focuses on the Functional Requirement of the system.
The major aim of this type of testing is to check whether all the pre stated functional
requirements (as in the System requirement specification) of the system are must.
Black Box testing was an attempt to find errors in the following categories:
qIncorrect or missing functionalities.
qThe GUI was extensively checked to see if any of the specifications was not included.
qInterface error.
qA thorough check was made to see if all the pages were up to the standard design.
qErrors in database access.
qThe related tables were checked to see if the functionalities of the phase are getting
reflected properly.
qPerformance errors.
qThe focus was to see how accurately the functionalities are carried out without any error.
UNIT TESTING
The individual programs are tested to determine whether they are able to handle all kinds of
real time situations. They are checked to determine whether the right outputs are generated
and whether the logic is working accurately, as per design specifications.

The data entry screens were tested individually for compatibility and appearance and
ensuring that the screens were as per the design specifications. The more messages were
included to make it more user friendly. In the database, the required tables were created. The
insertion, deletions and updating of records were performed to ensure correct operations of
the database.
In case of programs, individual were tested thoroughly for all possible defects. Test set to
determine all possible outputs was to check the correctness of the program. The defects were
logged and then rectified by appropriate modifications to the code.

TESTING METHODS:
A Strategy for software testing integrates software test cases into a series of well planned
steps that result in the successful construction of software. Software testing is a broader topic for
what is referred to as Verification and Validation. Verification refers to the set of activities that
ensure that the software correctly implements a specific function.
Unit testing:
Unit testing focuses verification effort on the smallest unit of software design that is the
module. Using procedural design description as a guide, important control paths are tested to
uncover errors within the boundaries of the module.
Integration Testing:
Integration testing is a systematic technique for constructing the program structure, while
conducting test to uncover errors associated with the interface. The objective is to take unit tested
methods and build a program structure that has been dictated by design.
Top-down Integration:
Top down integrations is an incremental approach for construction of program structure.
Modules are integrated by moving downward through the control hierarchy, beginning with the
main control program.

Modules subordinate to the main program are incorporated in the

structure either in the breath-first or depth-first manner.
Bottom-up Integration:
This method as the name suggests, begins construction and testing with atomic modules
i.e., modules at the lowest level. Because the modules are integrated in the bottom up manner

the processing required for the modules subordinate to a given level is always available and the
need for stubs is eliminated.

Validation Testing:
At the end of integration testing software is completely assembled as a package.
Validation testing is the next stage, which can be defined as successful when the software
functions in the manner reasonably expected by the customer. Reasonable expectations are those
defined in the software requirements specifications.
System Testing:
System testing is actually a series of different tests whose primary purpose is to fully
exercise the computer-based system. Although each test has a different purpose, all work to
verify that all system elements have been properly integrated to perform allocated functions.
Security Testing:
Attempts to verify the protection mechanisms built into the system.
Performance Testing:
This method is designed to test runtime performance of software within the context of
an integrated system

SNAP SHOTS
Screen shots B:
After Login :

User Details:

View User Detail :

Userdetail Enqiuiry Update :

New User Information :

User Updating :

User Enquiry Updating :

Policy Enquiry Updating :

Group View Form :

Host Details :

SYSTEM IMPLEMENTATION
Implementation is the process of converting a new or revised system design into an
operational one. Apart from planning, the major tasks of preparing for implementation or
education and training of users. Implementation includes following activities:


Obtaining and installing the system hardware



Providing user access to the system



Creating and updating the database



Training the users on the new system



Documenting the system for its users



Evaluating the operation and use of the system

Implementation Methods
There are four basic methods of implementation:


Direct conversion



Parallel conversion



Pilot conversion



Phasing conversion

Direct Conversion:
Description:
In this method the new one replaces the old system. This makes organization to fully rely
on the new system.
Advantages:
This method forces users to make the new system work. There are immediate benefits
from new methods and controls.
Disadvantages:
There is no other system to fall back on if difficulties arise with new system. This method
also requires most careful planning.

Parallel Conversion:
Description:
In this method, the old system is operated along with the new system.
Advantages:
This method offers greatest security. The old system can take over if errors are found in
the new system or if some usage problems occur.
Disadvantages:
This method doubles operating costs also the new system may not get fair trail.
Pilot Conversion:
Description:

In this method the system is implemented to a small part of the organization. Based on
the feedback, changes are made and the system is installed in the rest of the organization
by one of the other methods.
Advantages:
This method provides experience and live test before implementation.
Disadvantages:
This method may give the impression that the old system is unreliable and not error free.
Phased Conversion:
Description:
In this method, the system is implemented gradually across all users.
Advantages:
It allows some users to take advantages of the system early. It allows training and
installing without unnecessary use of resources.
Disadvantages:
A long phase-in causes user problems whether the project goes well (over enthusiasm) or
not (resistance or lack of fair trail).

For designing our system we used parallel conversion in which operated
along with the old system.

System Implementation:
Implementation is the stage in the project where the theoretical design is
turned Into a working system and is giving confidence on the new system for the users, which it
will work efficiently and effectively. It involves careful planning, investigation of the current
System. Apart from planning major task of preparing the implementation are education and
training of users.
Implementation includes all those activities that take place to convert from
the old system to the new. The new system may be totally new, replacing an existing system or it
may be major modification to the system currently put into use. This system “Automated

Network Administration” is a new system. Implementation as a whole involves all those tasks
that we do for successfully replacing the existing or introduce new software to satisfy the
requirement.

User Training:
After the system is implemented successfully, training of the user is one
of the most important subtasks of the developer.. Thus the users are trained to operate the
developed systems successfully in future. Preparation of user and system documentation
conducting user training with demo and hands on test run for some period to ensure smooth
switching over the system.

Source Code A:

JSP CODING FOR LOGIN.JSP:
<%@ page language="java" import ="java.sql.*" %>
<% Connection con=null;
Statement st=null;
String adminid=request.getParameter("adminid").trim();

String adminpwd=request.getParameter("sudha").trim();
String id=null;
String pass=null;
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:odbc:cd","sa","");
st=con.createStatement();
ResultSet rs=st.executeQuery("select * from admintable where
adminid='"+adminid+"'AND adminpwd='"+sudha+"'");
while(rs.next())
{
id=rs.getString(1).trim();
pass=rs.getString(2).trim();
}
if(adminid.equalsIgnoreCase(id)&& sudha.equals(pass))
{
response.sendRedirect("Display.html");
}

else
{
response.sendRedirect("invalid.html");
}
}
catch(ClassNotFoundException e)

{
//out.print("Error is " +e.getMessage());
}
catch(SQLException e2)
{
//out.print("Error is " +e2.getMessage());
}
catch(Exception e1)
{
//out.print("Error is " +e1.getMessage());
}
%>

DBConection .java:
package db;
import java.sql.*;
public class DBConnection
{
public static Connection getConnection()
{
Connection connection = null;

try
{
Class.forName("com.mysql.jdbc.Driver").newInstance();
connection =
DriverManager.getConnection("jdbc:mysql://localhost/anat", "root", "1234");
}

catch(Exception e)
{
System.out.println("Error in con : " + e);
//throw new JspException("in connection.");
}
return connection;
}
}

JSP FOR USERVIEW.JSP
<%@ page language="java" import="java.sql.*"%>
<html>
<head>
<h1><u>Enquiry Updating</u>
</h1>
</head>
<body background="edgbkgnd.gif" bgcolor="#FFFFFF" >
<form name="editdelete" method="get" action="VIEWUSER.jsp">

<%!
Connection con=null;
Statement st=null;
PreparedStatement ps=null;
ResultSet rs=null;

String submit;
%>
<%
try
{
//con = DriverManager.getConnection("jdbc:mysql://localhost/anat", "root",
"1234");
Class.forName(getServletContext().getInitParameter("driver"));
Connection con=DriverManager.getConnection(
getServletContext().getInitParameter("url"),
getServletContext().getInitParameter("uname"),
getServletContext().getInitParameter("pass"));
st=con.createStatement();
String cusname=request.getParameter("selectid");
rs=st.executeQuery("select * from usertable where userid='"+cusname+"'");
while(rs.next())
{
%>

<P align=left>Userid
ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<INPUT value="<%=rs.getString(1)%>" name=cid></P>
<P align=left>User Password&nbsp;&nbsp; <INPUT value="<%=rs.getString(2)%>"
name=cpwd> </P>
<P
align=left>Userpolicy&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<INPUT size=40 value="<%=rs.getString(3)%>" name=cpolicy> </P>

<Palign=left>Groupsin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<INPUT size=40 value="<%=rs.getString(4)%>" name=cgroup> </P>
<P
align=left>Start_Time&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;
<INPUT value="<%=rs.getString(5)%>" name=cstime> </P>
<Palign=left>End_Time&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<INPUT value="<%=rs.getString(6)%>" name=cetime> </P>

<Palign=left>Email&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<INPUT value="<%=rs.getString(7)%>" name=email> </P>
<P align=left><B>
<A href="userwindow.html">Click Here To Go Back
user Home Page</A></B></P></FORM>
<b><font face="Georgia">
<a href="viewuserid.jsp">
<Palign=left>UseridID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<INPUT value="<%=rs.getString(1)%>" name=cid></P>

<P align=left>User Password&nbsp;&nbsp; <INPUT value="<%=rs.getString(2)%>"
<font color="#0000FF">Click Here To Go Back </font> </a>
</font></b>

<%
}
}
catch(ClassNotFoundException e)
{
//out.print("Error is " +e.getMessage());
}
catch(SQLException e2)
{
//out.print("Error is " +e2.getMessage());
}
catch(Exception e1)
{
//out.print("Error is " +e1.getMessage());
}
%></html>

FUTURE ENHANCEMENTS
Scope Of Future Expansion
1. Providing facility for offline messaging.
2. Providing facility for detecting intrusion.
3. Restricting client to client communication.
4. Providing facility for voice chat.
5. Providing facilities for network monitoring and control.
6. Providing facility for remote desktop sharing.

7. Providing facilities for controlling hosts of different platforms.
8. Providing facilities for controlling multiple networks at a time.
9. Providing facilities for supporting multiple Bastion Hosts for the purpose of high
availability.
10. Providing facilities for setting the rules according to the bandwidth needs of the user.

Sponsor Documents

Or use your account on DocShare.tips

Hide

Forgot your password?

Or register your new account on DocShare.tips

Hide

Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in

Close