Académique Documents
Professionnel Documents
Culture Documents
TABLE OF CONTENTS
1.0 SYNOPSIS
EXISTING SYSTEM
PROPOSED SOLUTION
FEASIBILITY STUDY
4.0 MODULES
When a User enters the file name to search, the Grid controller
divides the process into many processes and these processes will be scheduled
to corresponding systems. More number of machines and its drives can be
selected from the tool.The result of the search will be displayed in the user
interface. If the file name is not known, the extension of the file is provided to
search the file and all the available files of that kind are listed as a result of
this. An advanced search module where the users provide the kind of file and
search is accomplished according to the common extensions of that kind of
file.The search comprising of simple search and advanced search.
2. SYSTEM CONFIGURATION
Hardware Requirements
Processor : Intel Pentium IV – 2.6 GHZ
Stop Bits : 1
Parity : Disabled
Transmission : Binary
Software Requirements
3. PROBLEM DESCRIPTION
Intranet search engines usually search for a file or a folder
serially and this result in a huge time process, or the searching should be done
individual in each system, and even then it searches serially in the local drives.
The ferret engine is a speed search engine in which the files have been
searched parallely by using thread concept in asp.net.
4. PROJECT DESCRIPTION
Ferret engine is basically an intranet search engine applied in
local area network to find a file by retrieving any system through its ip
address. Operations can be performed from our system, and it is
implemented in any organization.
FEATURES:
Saving
Tunneling features
• Skip Operations
• Stop Operations
• Pause Operations
• Restart Operations
Authentication for specified user can login the ferret engine system
and store the options and stored to this system. Next time to login the system
then previous options are opened then user can access by the all the last time
process.
In the system can create the new user and password for
authentication. After that user can select some option and it’s stored for
authentication system, again user can login the search engine then it
automatically open all the user last selected option.
The ferret engine is formulated as a boon to the
administrators, authentication is provided for security purpose, since to
protect the files from the hackers, and to provide rights only to the admin to
do search processing in this ferret engine. A Username and Password is given
only to the admin to enter into the ferret engine.
Establishing a Polling Server:
Description:
Polling
B
E
C
D
Then, when the network becomes active, it checks for the connectivity
of the systems over the intranet. It sends the user datagram packets to the
connected systems. If the response is retrieved from the connected clients, it
establishes the communication over the entire network automatically. Also, It
monitors the existence of the connected systems over the intranet.
• Fast Sorting
• Data Acquisition
• Embedded Images
• Column Totaling
• Dynamic Interaction
The advanced search module where the users provide the kind
of file and search is accomplished according to the common extensions
of that kind of file.
Establishing a Grid Controller:
Description
This Grid Control enables the display of (Drive Names) data in rows.
Powerful features include Fast Sorting, Data Acquisition, Embedded Images,
Column Totaling and much more. Enables Dynamic interaction with other
System components.
When a User enters the file name to search, the Grid controller divides
the process into many processes and these processes will be scheduled to
corresponding system
Search ing
B
E
C
D
Why we are searching files, not only to see whether it exists or not.
We need some information from that file. We have to go the file content and
to see what it contains and we need to update that contact. At that situation
this tool will help you save the content of the file where you want to save this
in your local hard disk for further updating and you can save this file where you
wanted. In future you can use it or update.
It will help u to remember where the exact file located from the resulted
search.
Saving Search Criteria:
SEAGINE system is used to search the files and copy the files
from remote system. In the system required some IP Address and Drives to
search the system. IP Address and Drives list are collect by POLLING and its
display the SEARGINE. Now you want to skip the some drives and folders in file
search process. To enter the skip drives name and folders name, than it
transfer the particular remote system and to start the search process, then any
folder are find same as skip folder it will be avoided from the SEAGINE.
SEAGINE system is used search the files in remote system. In the system
can simultaneously search all the remote system. You want to stop or pause or
restart the search process in specific remote system. All the remote system
details are come for SEAGINE and we are select to stop and pause, restart the
file search. If select for stop process then it stops the transaction of SEAGINE to
particular remote system. Select for pause then it wait for transaction of
SEAGINE to particular remote system. If after pause to enable the restart
option, if start the transaction of SEAGINE and remote system.
FORM DESCRIPTION
Login Page
Separate logins for the client and the admin to enter into the search
engine.
Client Details
In the client details IP address of all the systems connected to that
network are listed.
Admin Details
In Admin OS information, system info, and the CPU stage and the
task manager will be presented.
Task Manager
If we enter into the particular system task manager, it shows all
the programs running on that particular system.
Search
Search process is done by specifying the particular file to be
searched, and the file name is taken as a string and searching is performed.
Process Access
Not only searching, if we want to take some information from that
file, or updation or u a data to be copied etc of any process can be accessed
Advantage of ferret engine
The application is mainly for time reduction, instead of searching
individually each system, sitting in a single system getting the entire LAN and
process can be easily accomplished.
A
Searching machines
B
Our system Polling
C
D
Sending request to all system in the intranet from our system to get IP
Searched File
Searched File Stored in Local Host
File Content
Data Base
Searched File
File Path
File Path
File Path
Data Base
4. SYSTEM ANALYSIS
4.1. Abstract:
When a User enters the file name to search, the Grid controller
divides the process into many processes and these processes will be scheduled
to corresponding systems. More number of machines and its drives can be
selected from the tool. The result of the search will be displayed in the user
interface. If the file name is not known, the extension of the file is provided to
search the file and all the available files of that kind are listed as a result of
this. An advanced search module where the users provide the kind of file and
search is accomplished according to the common extensions of that kind of file.
The search comprising of simple search and advanced search.
In the existing system only serial search is possible, parallel search is not
possible.
It is only possible in super computers but they are not used in common.
Default searching utility does not contain the option of searching in the
particular set of nodes and excluding other systems.
Resources are not used in efficient way due to wastage of time in serial searching
Advantages:
Using Ferret engine we are able to get a system through its IP address
and any folder can be searched easily.
Through the Java VM, the same application is capable of running on multiple
platforms.
Networking:
Computers running on the Internet communicate to each other using either the
Transmission Control Protocol (TCP) or the User Datagram Protocol (UDP), as
this diagram illustrates:
When you write Java programs that communicate over the network, you are
programming at the application layer. Typically, you don't need to concern
yourself with the TCP and UDP layers. Instead, you can use the classes in the
java.net package. These classes provide system-independent network
communication. However, to decide which Java classes your programs should
use, you do need to understand how TCP and UDP differ.
Understanding Ports
Generally speaking, a computer has a single physical
connection to the network. All data destined for a particular computer arrives
through that connection. However, the data may be intended for different
applications running on the computer. So how does the computer know to
which application to forward the data? Through the use of ports.
Data transmitted over the Internet is accompanied by addressing
information that identifies the computer and the port for which it is destined.
The computer is identified by its 32-bit IP address, which IP uses to deliver
data to the right computer on the network. Ports are identified by a 16-bit
number, which TCP and UDP use to deliver the data to the right application.
In connection-based communication such as TCP, a server
application binds a socket to a specific port number. This has the effect of
registering the server with the system to receive all data destined for that
port. A client can then rendezvous with the server at the server's port, as
illustrated here:
Definition: The TCP and UDP protocols use ports to map incoming data to a
particular process running on a computer.
Port numbers range from 0 to 65,535 because ports are represented by 16-bit
numbers. The port numbers ranging from 0 - 1023 are restricted; they are
reserved for use by well-known services such as HTTP and FTP and other
system services. These ports are called well-known ports. Your applications
should not attempt to bind to them.
Networking Classes in the JDK:
Through the classes in java.net, Java programs can use TCP or UDP to
communicate over the Internet. The URL, URLConnection, Socket, and
ServerSocket classes all use TCP to communicate over the network. The
DatagramPacket, DatagramSocket, and MulticastSocket classes are for use with
UDP.
URL
If you've been surfing the Web, you have undoubtedly heard the term URL and
have used URLs to access HTML pages from the Web.
It's often easiest, although not entirely accurate, to think of a URL as the name
of a file on the World Wide Web because most URLs refer to a file on some
machine on the network. However, remember that URLs also can point to other
resources on the network, such as database queries and command output.
The following is an example of a URL which addresses the Java Web site hosted
by Sun Microsystems:
• Protocol identifier
• Resource name
Note that the protocol identifier and the resource name are
separated by a colon and two forward slashes. The protocol identifier indicates
the name of the protocol to be used to fetch the resource. The example uses
the Hypertext Transfer Protocol (HTTP), which is typically used to serve up
hypertext documents. HTTP is just one of many different protocols used to
access different types of resources on the net. Other protocols include File
Transfer Protocol (FTP), Gopher, File, and News.
The resource name is the complete address to the resource. The
format of the resource name depends entirely on the protocol used, but for
many protocols, including HTTP, the resource name contains one or more of
the components listed in the following table:
Host Name The name of the machine on which the resource lives.
Port
The port number to which to connect (typically optional).
Number
For many protocols, the host name and the filename are required, while the
port number and reference are optional. For example, the resource name for
an HTTP URL must specify a server on the network (Host Name) and the path to
the document on that machine (Filename); it also can specify a port number
and a reference. In the URL for the Java Web site java.sun.com is the host
name and an empty path or the trailing slash is shorthand for the file named
/index.html.
Parsing a URL
The URL class provides several methods that let you query URL objects. You
can get the protocol, authority, host name, port number, path, query,
filename, and reference from a URL using these accessor methods:
Remember that not all URL addresses contain these components. The
URL class provides these methods because HTTP URLs do contain these
components and are perhaps the most commonly used URLs. The URL class is
somewhat HTTP-centric.
You can use these getXXX methods to get information about the URL
regardless of the constructor that you used to create the URL object.
The URL class, along with these accessor methods, frees you from
ever having to parse URLs again! Given any string specification of a URL, just
create a new URL object and call any of the accessor methods for the
information you need.
Socket
A socket is one endpoint of a two-way communication link
between two programs running on the network. A socket is bound to a port
number so that the TCP layer can identify the application that data is destined
to be sent.
Normally, a server runs on a specific computer and has a socket
that is bound to a specific port number. The server just waits, listening to the
socket for a client to make a connection request.
On the client-side: The client knows the hostname of the machine on which the
server is running and the port number on which the server is listening. To make
a connection request, the client tries to rendezvous with the server on the
server's machine and port. The client also needs to identify itself to the server
so it binds to a local port number that it will use during this connection. This is
usually assigned by the system.
The java.net package in the Java platform provides a class, Socket, that
implements one side of a two-way connection between your Java program and
another program on the network. The Socket class sits on top of a platform-
dependent implementation, hiding the details of any particular system from
your Java program. By using the java.net.Socket class instead of relying on
native code, your Java programs can communicate over the network in a
platform-independent fashion.
If you are trying to connect to the Web, the URL class and related classes
(URLConnection, URLEncoder) are probably more appropriate than the socket
classes. In fact, URLs are a relatively high-level connection to the Web and use
sockets as part of the underlying implementation. See Working with URLs for
information about connecting to the Web via URLs.
Datagram
A datagram is an independent, self-contained message sent over the
network whose arrival, arrival time, and content are not guaranteed. Clients
and servers that communicate via a reliable channel, such as a TCP socket,
have a dedicated point-to-point channel between themselves, or at least the
illusion of one. To communicate, they establish a connection, transmit the
data, and then close the connection. All data sent over the channel is received
in the same order in which it was sent. This is guaranteed by the channel.
In contrast, applications that communicate via datagrams send and receive
completely independent packets of information. These clients and servers do
not have and do not need a dedicated point-to-point channel. The delivery of
datagrams to their destinations is not guaranteed. Nor is the order of their
arrival.
The java.net package contains three classes to help you write Java programs
that use datagrams to send and receive packets over the network:
DatagramSocket, DatagramPacket, and MulticastSocket An application can send
and receive DatagramPackets through a DatagramSocket. In addition,
DatagramPackets can be broadcast to multiple recipients all listening to a
MulticastSocket.
5. TESTING AND IMPLEMENTATION
System testing is an expensive but critical process that can take as much
as fifty percent of the budget for program development. Consequently,
different levels of testing are employed. In fact, a successful test is one that
finds an error. The system performance criteria deals with turn around time
backup, file protection and human factor. A test for the user acceptance should
also be carried out.
Testing Strategy:
This is the phase where the bug in the programs was to be found and
corrected. One of the goals during the dynamic testing is to produce a test
suite, where the salary calculated with the desired outputs such as reports in
this case. This is applied to ensure that the modifications of the program do not
have any side effects. This type of testing is called Regression testing. Testing
generally removes all the residual bugs and improves the reliability of the
program. The basic types of testing are:
Unit Testing
Integration Testing
Validation Testing
Output Testing
User Acceptance Testing
Unit Testing
This is the first level of testing. In this different modules are tested against the
specifications produced during the coding of the simple program module in an
isolated environment. Unit testing first focuses on the modules independently
of one another to locate errors.
After coding each dialogue is tested and run individually. All unnecessary
coding were removed and it was ensured that all the modules worked, as the
programmer would expect. Logical errors found were corrected. So, by working
all the modules independently and verifying the outputs of each module in the
presence of staff was conducted that the program was functioning as expected.
Integration Testing
Validation Testing
This provides the final assurance that the software meets all functional,
behavioral and performance requirements. The software is completely
assembled as a package. Validation succeeds when the software functions in a
manner in which the user expects. Validation refers to the process of using
software in a live environment in order to find errors. During the course of
validating the system, failures may occur and sometimes the coding has to be
changed according to the requirement. Thus the feedback from the validation
phase generally produces changes in the software.
Output Testing
After performing the validation testing, the next step is output testing of the
proposed system since no system could be useful if it does not produces the
required output generated or considered into two ways; one is on screen and
another is printed format.
Test Data
After preparing the test data the system under study was tested
using test data. While testing the system by using test data, errors were again
uncovered and corrected by using the above testing steps. Preparing of test
data plays a vital role in the system testing. Taking various types of test data
does all the above testing.
Test Execution
Test data was prepared which were the acknowledgement details
and information regarding the various departments in this case. An already
existing file was taken from the database and the data was fed to the new
system. Various testing as mentioned above were carried out. Initially there
was bug and drawbacks for the users to complete the same process. Those bugs
and drawbacks were noted down and modified later. Again the same process
was repeated three to four times.
All the outputs generated were compared with the existing file
documents and found to be acceptable. After the final testing and modification
the newly developed package is running properly and efficiently.
FUTURE ENHANCEMENT
The Intranet search engine application which provides boon only to the
administrators since it can be authenticated only to the administrator, so in future
it can be made possible to all the clients to enter into the search engine.
At present the application can be loaded only to the server since for protection,
but in future it can be provided by adding security features and can be loaded
even in the client system.
In the ferret engine the parallel searching can be made by retrieving the IP address
of the nodes connected to the system, but in large industries the IP address have
been created temporarily instant of that session, so the application may not result
in effective way, so that in future it can be modified by any specified name or etc
to get the entire LAN.
In this development the searching can be done such as keyword searching etc
Since in future we can add complex searching such as index searching, text
searching, etc
APPENDIX
Local Local
DB
DB
Machine E
Machine D
Server Pgm
DB
Machine C
Machine B
Local
Local
DB
DB
Architectural Diagram Explanation:
• In the architectural diagram the polling server which plays a vital part,
in which all the systems are surrounded around it in the system.
• The entire network statistics has been monitored by the polling server
and it generates the trend report.
• Once the parallel response is received, the searching can be done in the
search engine.
• Searching C drive as a whole LAN, and similarly the whole D drive etc.
• Thus the file or folder can be founded, and the result has been displayed
in the search engine.
8.2. USER HIERACHY:
FERRET
ENGINE
.
Searching
Process
Save Save
Save Result
Content Criteria
User Hierarchy Explanation:
1. Authentication Server.
2. Polling Server.
3. Grid Controller.
4. Saving
5. Search Result.
6. Congestion Control.
7. Tunneling Features.
1. Searching Process.
2. Save Content.
3. Save Result.
4. Save Criteria.
1. Skip Operations.
2. Pause Operations.
3. Stop Operations.
4. Restart Operations.
8.3. USECASE DIAGRAM:
Enter file to
be searched
Identify
content
Retrieve
content
Extent data
2. Finding the file, by identifying the place where it has been located.
6. Store the file searched out in the local database, which is useful to the
further users.
query:string
out:output stream
search engines:vector
threadgroup:ThreadGroup
initialize()
doGet()
Search Engine
query:String
serverURL:String
results :Vector
run()
gethost()
outputResults()
getquery()
setquery()
setResultCount()
removeResultItem()
getResults()
SearchEngine()
getServerURL()
java runnable setServerURL()
getResultItem()
Server URL:string getContent().
Results:vector
Run()
Set()
Class Diagram Explanation
The Search Engine which gets the input as query, and it acts as a server
and result has been obtained.
The Search Manager which manages the search engine and the output
stream has been found out by using a thread group.
.NET the thread concept which is used to find a file, and acts between the
Search Manager and the Search Engine.
• Execution
Identify Matches
8.6. Table Structure:
Login:
Client Table :
Server Table:
Field Name DataType Size
IP address Varchar 25
1. Login Form
User Name
Password
2. Client Table
IP Address
System Name
File Name
File Type
Size
Date Created
Date Modified
Status
Time
3. Server Table
IP Address
System Name
8.7. SCREEN LAYOUT:
CONCLUSION
References Authors
HEAD FIRST SERVLETS AND JSP Kathy Sierra & Bert Bates
IPV6 NETWORK ADMINSTRATION Murphy
COMPUTER NETWORKS Andrew S.Tanenbaum
SOFTWARE ENGINEERING Rogen S. Pressman
Visited Websites:
www.roseindia.net
www.javaworld.com
www.sun.com