Non_Visual_Search_Engine_For_Visually_Challengedx

illinoiseggoΛογισμικό & κατασκευή λογ/κού

28 Οκτ 2013 (πριν από 4 χρόνια και 10 μήνες)

289 εμφανίσεις


1.
INTRODUCTION

1.1 PURPOSE


The main purpose of the project is to develop an application called Non Visual Search Engine
for

Visually Challenged is a need for web based application where we provide a user friendly
application for visually impaired people. This application works just like Google search engine
but with a new feature for visually challenged. The data entered anywh
ere on the screen is taken
into to a textbox with focus in it. So it gives all the results of it in a systematic manner. When the
user clicks the right mouse the first result is read heard. For next result, left mouse is pressed. In
this way the user can l
isten all the results of the required data.


1.2 SCOPE


In the flexibility of the uses the interface has been developed a graphics concept in
mind, associated through a browser interface. The GUI’S at the top level have been categorized
as



Administrative
user interface



The operational or generic user interface


The administrative user interface concentrates on the consistent information that is
practically, part of the organizational activities and which needs proper authentication for the
data collection.

The interfaces help the administrations with all

the transactional states like d
at
a
insertion, data deletion and d
ate updation along with the extensive data search capabilities.

The operational or generic user interface helps the users upon the system in
transactions
through the existing data and required services. The operational user interface also helps the
ordinary users in managing their own information helps the ordinary users in managing their own
information in a customized manner as per the assist
ed flexibilities.

1.2.1 Feasibility Study

1.2.1.1

Introduction

Preliminary investigation examine project feasibility, the likelihood the system will be
useful to the organization. The main objective of the feasibility study is to test the Technical,
Operational and Economical feasibility for adding new modules and debugging old running
system. All system is feasible if they are unlimited resources and infinite time. There are aspects
in the feasibility study portion of the preliminary investigation:





Technical Feasibility



Operation Feasibility



Economic
Feasibility

1.2.1.2
Technical Feasibility

The technical issue usually raised during the feasibility stage of the investigation includes
the following:



Does the necessary
technology exist to do what is suggested?



Do the proposed equipments have the technical capacity to hold the data required
to use the new system?



Will the proposed system provide adequate response to inquiries, regardless of
the number or location of users
?



Can the system be upgraded if developed?



Are there technical guarantees of accuracy, reliability, ease of access and data
security?


Earlier no system existed to cater to the needs of ‘Secure Infrastructure Implementation
System’. The current system deve
loped is technically feasible. It is a web based user interface for
audit workflow at NIC
-
CSD. Thus it provides an easy access to the users. The database’s purpose
is to create, establish and maintain a workflow among various entities in order to facilitat
e all
concerned users in their various capacities or roles. Permission to the users would be granted
based on the roles specified. Therefore, it provides the technical guarantee of accuracy, reliability
and security. The software and hard requirements for
the development of this project are not
many and are already available in
-
house at NIC or are available as free as open source. The work
for the project is done with the current equipment and existing software technology. Necessary
bandwidth exists for pro
viding a fast feedback to the users irrespective of the number of users

using the system.

1.2.1.3
Operational Feasibility


Proposed projects are beneficial only if they can be turned out into information system.
That will meet the organization’s operating
requirements. Operational feasibility aspects of the
project are to be taken as an important part of the project implementation. Some of the important
issues raised are to test the operational feasibility of a project includes the following:
-



Is there suf
ficient support for the management from the users?



Will the system be used and work properly if it is being developed and implemented?



Will there be any resistance from the user that will undermine the possible application
benefits?


This system is targete
d to be in accordance with the above
-
mentioned issues.


Beforehand, the management issues and user requirements have been taken into
consideration. So there is no question of resistance from the users that can undermine the
possible application benefits.

The well
-
planned design would ensure the optimal utilization of the computer resources
and would help in the improvement of performance status.


1.2.1.4
Economic Feasibility

A system can be developed technically and that will be used if installed must
still be a
good investment for the organization. In the economical feasibility, the development cost in
creating the system is evaluated against the ultimate benefit derived from the new systems.
Financial benefits must equal or exceed the costs.

The syste
m is economically feasible. It does not require any addition hardware or
software. Since the interface for this system is developed using the existing resources and
technologies available at NIC, There is nominal expenditure and economical feasibility for
certain.








2 TECHNOLOGIES USED

2.1

I
NTRODUCTION TO JAVA


Initially the language was called as “oak” but it was renamed as “Java” in 1995. The
primary motivation of this language was the need for a platform
-
independent (i.e., architecture
neutral) language that could be used to create software to

be embedded in various consumer
electronic devices.



Java is a programmer’s language.



Java is cohesive and consistent.



Except for those constraints imposed by the Internet environment, Java gives the
programmer, full control.



Finally, Java is to Internet

programming where C was to system programming.

2.2
IMPORTANCE OF JAVA TO

THE

I
NTERNET

Java has had a profound effect on the Internet. This is because; Java expands the
Universe of objects that can move about freely in Cyberspace. In a network, two categori
es of
objects are transmitted between the Server and the Personal computer. They are: Passive
information and Dynamic active programs. The Dynamic, Self
-
executing programs cause serious
problems in the areas of Security and probability. But, Java addresses

those concerns and by
doing so, has opened the door to an exciting new form of program

2.2.1
Java can be used to create two types of programs


Applications and Applets: An application is a program that runs on our Computer under
the operating system of th
at computer. It is more or less like one creating using C or C++. Java’s
ability to create Applets makes it important. An Applet is an application designed to be
transmitted over the Internet and executed by a Java

compatible web browser. An applet is
act
ually a tiny Java program, dynamically downloaded across the network, just like an image.
But the difference is, it is an intelligent program, not just a media file. It can react to the user
input and dynamically change.

2.2.2
Features of Java Security

Every time you that you download a “normal”
program
you are risking a viral infection.
Prior to Java, most users did not download executable programs frequently, and those who did
scan them for viruses prior to execution. Most users still worried about the

possibility of
infecting their systems with a virus. In addition, another type of malicious program exists that
must be guarded against. This type of program can gather private information, such as credit card
numbers, bank account balances, and passwords
. Java answers both these concerns by providing
a “firewall” between a network application and your computer.When you use a Java
-
compatible
Web browser, you can safely download Java applets without fear of virus infection or malicious
intent.

2.2.2.1
Porta
bility

For programs to be dynamically downloaded to all the various types of platforms
connected to the Internet, some means of generating portable executable code is needed .As you
will see, the same mechanism that helps ensure security also helps create
portability. Indeed,
Java’s solution to these two problems is both elegant and efficient.

2.2.2.2
The Byte code

The key that allows the Java to solve the security and portability problems is that the
output of Java compiler is Byte code. Byte code is
a highly optimized set of instructions
designed to be executed by the Java run
-
time system, which is called the Java Virtual Machine
(JVM). That is, in its standard form, the JVM is an interpreter for byte code.

Translating a Java program into byte code he
lps makes it much easier to run a program in
a wide variety of environments. The reason is, once the run
-
time package exists for a given
system, any Java program can run on it.

Although Java was designed for interpretation, there is technically nothing abo
ut Java
that prevents on
-
the
-
fly compilation of byte code into native code. Sun has just completed its Just
In Time (JIT) compiler for byte code. When the JIT compiler is a part of JVM, it compiles byte
code into executable code in real time, on a piece
-
by
-
piece, demand basis. It is not possible to
compile an entire Java program into executable code all at once, because Java performs various
run
-
time checks that can be done only at run time. The JIT compiles code, as it is needed, during

execution.

2.2.3
Java Virtual Machine (JVM)

Beyond the language, there is the Java virtual machine. The Java virtual machine is an
important element of the Java technology. The virtual machine can be embedded within a web
browser or an operating system. Once a piece of Jav
a code is loaded onto a machine, it is
verified. As part of the loading process, a class loader is invoked and does byte code verification
makes sure that the code that’s has been generated by the compiler will not corrupt the machine
that it’s loaded on.
Byte code verification takes place at the end of the compilation process to
make sure that is all accurate and correct. So byte code verification is integral to the compiling
and executing of Java code
.

2.2.4 Overall

Description

Java programming uses to produce byte codes and executes them. The first box indicates
that the Java source code is located in a. Java file that is processed with a Java compiler called
javac. The Java compiler produces a file called a. class file, which c
ontains the byte code. The
Class file is then loaded across the network or loaded locally on your machine into the execution
environment is the Java virtual machine, which interprets and executes the byte code.

2.2.5
Java Architecture


Java architecture p
rovides a portable, robust, high performing environment for
development. Java provides portability by compiling the byte codes for the Java Virtual Machine,
which is then interpreted on each platform by the run
-
time environment. Java is a dynamic
system, a
ble to load code when needed from a machine in the same room or across the planet.

2.2.6
Compilation of code

When you compile the code, the Java compiler creates machine code (called byte code)
for a hypothetical machine called Java Virtual Machine (JVM).
The JVM is supposed to execute
the byte code. The JVM is created for overcoming the issue of portability. The code is written
and compiled for one machine and interpreted on all machines. This machine is called Java
Virtua
Machine.

2.2 Hyper Text Markup La
nguage



Hypertext Markup Language (HTML), the languages of the World Wide Web (WWW),
allows users to produces Web pages that include text, graphics and pointer to other Web pages
(Hyperlinks).

HTML is not a programming language but it is an application of

ISO Standard 8879,
SGML (Standard Generalized Markup Language), but specialized to hypertext and adapted to the
Web. The idea behind Hypertext is that instead of reading text in rigid linear structure, we can
easily jump from one point to another point. W
e can navigate through the information based on
our interest and preference. A markup language is simply a series of elements, each delimited
with special characters that define how text or other items enclosed within the elements should

be displayed. Hype
rlinks are underlined or emphasized works that load to other documents or
some portions of the same document.

HTML can be used to display any type of document on the host computer, which can be
geographically at a different location. It is a versatile lang
uage and can be used on any platform
or desktop.

HTML provides tags (special codes) to make the document look attractive. HTML tags
are not case
-
sensitive. Using graphics, fonts, different sizes, color, etc., can enhance the
presentation of the document. A
nything that is not a tag is part of the document itself.

Basic HTML Tags:



<HTML>…</HTML>



<HEAD>...</HEAD>



<BODY>…</BODY>

2.2.1
Advantages



A HTML document is small and hence easy to send over the net. It is small becait does
not include formatted
information.



HTML is platform independent.



HTML tags are not case
-
sensitive
.


2.3JAVASCRIPT



JavaScript is a script
-
based programming language that was developed by Netscape
Communication Corporation. JavaScript was originally called Live Script and
renamed as
JavaScript to indicate its relationship with Java. JavaScript supports the development of both
client and server components of Web
-
based applications. On the client side, it can be used to
write programs that are executed by a Web browser within

the context of a Web page. On the
server side, it can be used to write Web server programs that can process information submitted
by a Web browser and then updates the browser’s display accordingly

Even though JavaScript supports both client and server We
b programming, we prefer
JavaScript at Client side programming since most of the browsers supports it. JavaScript is
almost as easy to learn as HTML, and JavaScript statements can be included in HTML
documents by enclosing the statements between a pair of
scripting tags

<SCRIPTS>... </SCRIPT>.

<SCRIPT LANGUAGE = “JavaScript”>

JavaScript statements

</SCRIPT>

Here are a few things we can do with JavaScript:



Validate the contents of a form and make calculations.



Add scrolling or changing messages to the
Browser’s status line.



Animate images or rotate images that change when we move the mouse over them.



Detect the browser in use and display different content for different browsers.



Detect installed plug
-
ins and notify the user if a plug
-
in is required.

We
can do much more with JavaScript, including creating entire application
.

2.3
.1JavaScript Vs Java

JavaScript and Java are entirely different languages. A few of the most glaring differences
are



Java applets are generally displayed in a box within the web
document; JavaScript
can affect any part of the Web document itself.



While JavaScript is best suited to simple applications and adding interactive
features to Web pages; Java can be used for incredibly complex applications.

There are many other differences

but the important thing to remember is that JavaScript and
Java are separate languages. They are both useful for different things; in fact they can be used
together to combine their advantages.

2.3.2Advantages



JavaScript can be used for Sever
-
side and
Client
-
side scripting.



It is more flexible than VBScript.



JavaScript is the default scripting languages at Client
-
side since all the browsers supports
it.

2.4 JDBC




Java Database Connectivity or in short JDBC


is a technology that enables the
java program
to manipulate data stored into the database. Here is the complete tutorial on JDBC technology.

2.4.
1WhatisJDBC?



JDBC is Java application programming interface that allows the Java programmers to
access database management system fro
m Java code. It was developed by Java Soft, a subsidiary
of Sun Microsystems.

JDBC has four Components:


1. The JDBC API.


2. The JDBC Driver Manager.


3. The JDBC Test Suite.


4. The JDBC
-
ODBC Bridge.

2.4.1.
1.TheJDBC
API.


The JDBC appli
cation programming interface provides the facility for

accessing

the
relational database from the Java programming language. The API technology provides the
industrial standard for independently connecting Java programming language and a wide range
of data
bases. The user not only execute the SQL statements, retrieve results, and update the data
but can also access it


anywhere within a network because of


it's "Write Once, Run Anywhere"
(WORA) capabilities.

Due to JDBC API technology, user can also access o
ther tabular data sources like spreadsheets or
flat files even in the a heterogeneous environment.


JDBC application programming interface is
a

part of the Java platform that has included Java Standard Edition (Java SE) and the
Java

Enterprise Edition (Jav
a EE) in itself.

The JDBC API has four main interface:


The latest version of

JDBC 4.0 application programming interface is divided into two packages

i
-
) java.sql

ii
-
) javax.sql.


Java SE and Java EE platforms are included in both the packages.

2.4.1.2
TheJDBCDriverManager



The JDBC Driver Manager is a very important class that defines objects which connect
Java applica
tions to a JDBC driver. Usually

Driver Manager is the backbone of the JDBC
architecture.
It's very simple and small that

is used to pro
vide a means of managing the different
types of JDBC database driver running on an application. The main responsibility of


JDBC
database driver is to load all the drivers found in the system properly as well as to select the
most


appropriate driver from
opening a connection to a database.


The Driver Manager also
helps to select the most appropriate driver from the previously loaded drivers when a new open
database is connected.


2.4.1.3TheJDBCTest
Suite


The function of


JDBC driver test suite

is to make ensure that the


JDBC drivers will run
user's program or not . The test suite of


JDBC application program interface is very useful


for
testing a driver
based on JDBC technology
duringtesting
peri
od.It

ensurestherequirementof

JavaPlatformEnterp
riseEdition
(J2EE).


2.4.1.4
TheJDBC
-
ODBC
Bridge



The JDBC
-
ODBC bridge, also known as JDBC type 1 driver is a


database driver that
utilize the ODBC driver to connect


the


database. This driver translates JDBC method calls into
ODBC function c
alls. The Brid
ge implements JDBC

for any database for which an

ODBC

driver
is available. The Bridge is always

implementedasthe
su
n.jdbc.odbcJavapackageanditcontainsanativelibraryusedtoaccess
ODBC.



Now we can conclude this topic: This first two component of


JDBC, the JDBC API and
the JDBC Driver Manager manages to connect to the database and then build a java program that
utilizes SQL commands to communicate with any RDBMS. On the other hand, the last two
components are used


to communicate with ODBC or to te
st web application


in the
specialized

environment.

2.4.2 JDBC Architecture

1.

Database connections

2.

SQL statements



3. Result Set

4.

Database metadata

5.

Prepared statements


6. Binary Large Objects (BLOBs)

7.

Character Large Objects
(CLOBs)

8.

Callable statements

9.

Database drivers

10.

Driver manager


The JDBC API uses a Driver Manager and database
-
specific drivers to provide transparent
connectivity to heterogeneous databases. The JDBC driver manager ensures that the correct
driver
is used to access each data source. The Driver Manager is capable of supporting multiple
concurrent drivers connected to multiple heterogeneous databases. The location of the driver
manager with respect to the JDBC drivers and the servlet is shown





Fig 2.1
Layers of the JDBC Architecture

A
JDBC

driver

translates standard
JDBC

calls into a network or database protocol or into
a database library API call that facilit
ates communication with the database. This translation
layer provides JDBC applications with database independence. If the back
-
end database changes,
only the JDBC driver need be replaced with few code modifications required. There
are four
distinct types
of JDBC
drivers.

2.5 JDBC Driver and Its Types

2.5.1 Type 1 JDBC
-
ODBC Bridge:



Type 1 drivers act as a
"bridge"

between
JDBC
and another database connectivity
mechanism such as
ODBC.

The

JDBC
-

ODBC

bridge provides JDBC access using most

standard ODBC drivers. This driver is included in the Java 2 SDK within the
sun.jdbc.odbc

package. In this driver the java statements are converted to jdbc statements. A JDBC statement
calls the ODBC by using the
JDBC
-
ODBC Bridge
.
And finally the query is
executed by the
database. This driver has serious limitation for many applications




.
F
ig 2.2 Type 1
JDBC Architecture

2.5.2 Type 2 Java to Native API



Type 2 drivers use the
Java Native Interface (JNI)

to make calls to a local database
library API.


This driver converts the JDBC calls into a database specific call for databases such
as SQL, ORACLE etc. This driver communicates directly with the database server. It requires
some native code to connect to

the database. Type 2 drivers are usually faster than Type 1
drivers. Like Type 1 drivers, Type 2 drivers require native database client libraries to be install
ed
and configured on the client
machine.







F
ig 2.3

Type 2 JDBC Architecture

2.5.3

Type 3 Java to Network Protocol Or All
-

Java Driver

Type 3 drivers are pure Java drivers that use a proprietary network protocol to
communicate with JDBC middleware on the server. The middleware then translates the network
protocol to database
-
specific function calls. Type 3 drivers are the most flexible JD
BC solution
because they do not require native database libraries on the client and can connect to many
different databases on the backend.
Type 3 drivers ca
n be deployed over the
Internetwithoutclient
installation.

Java
-------
> JDBC statements
------
> SQL st
atements
------
> databases.






Fig 2.4

Type 3 JDBC Architecture

2.5.4 Type 4 Java to Database Protocol



Type 4 drivers are pure Java drivers that implement

a proprietary database protocol (like
Oracle's SQL*Net) to communicate directly with the database. Like Type 3 drivers, they do not
require native database libraries and can be deployed over the Internet without client installation.
One drawback to Type 4

drivers is that they are database specific. Unlike Type 3 drivers, if your
back
-
end database changes, you may save to purchase and deploy a new Type 4 driver (some
Type 4 drivers are available free of charge from the database manufacturer). However, becau
se
Type drivers communicate directly with the database engine rather than through middleware or a
native library, they are usually the fastest JDBC drivers available. This driver directly converts
the java statements to SQL statements.




Fig 2.5

Type 4 JDBC Architecture


So, you may be asking yourself, "Which is the right type of driver for your application?"

Well,

that depends on the requirements of your particular project. If you do not have the
opportunity or in
clination to

install and configure
softwareon
eac
hclient,youcanruleoutType1andType2
drivers.

However, if the cost of Type 3 or Type 4 drivers is prohibitive, Type 1 and type 2 drivers may
become more attractive because they are usually available free of char
ge. Price aside, the debate
will often boil down to whether to use Type 3 or Type 4 driver for a particular application. In this
case, you may need to weigh the benefits of flexibility and interoperability against performance.
Type 3 drivers offer your app
lication the ability to transparently access different types of
databases, while Type 4 drivers usually exhibit better performance and, like Type 1 and Type 2
drivers, may be available free if charge from the database manufacturer

2.6
JAVA SERVER PAGES

(JSP)



Java server Pages is a simple, yet powerful technology for creating and maintaining
dynamic
-
content web pages. Based on the Java programming language, Java Server Pages offers
proven portability, open standards, and a mature re
-
usable c
omponent model. The Java Server
Pages architecture enables the separation of content generation from content presentation. This
separation not eases maintenance headaches; it also allows web team members to focus on their
areas of expertise. Now, web page
designer can concentrate on layout, and web application
designers on programming, with minimal concern about impacting each other’s work.

2.6.1 Features of JSP

2.6.1.1 Portability


Java Server Pages files can be run on any web server or web
-
enabled
application server
that provides support for them. Dubbed the JSP engine, this support involves recognition,
translation, and management of the Java Server Page lifecycle and its interaction components.

2.6.1.2 Components


It was mentioned earlier tha
t the Java Server Pages architecture can include reusable Java
components. The architecture also allows for the embedding of a scripting language directly into
the Java Server Pages file. The components current supported include Java Beans, and Servlets.

2
.6.1.3 Processing


A Java Server Pages file is essentially an HTML document with JSP scripting or tags.
The Java Server Pages file has a JSP extension to the server as a Java Server Pages file. Before
the page is served, the Java Server Pages syntax is

parsed and processed into a Servlet on the
server side. The Servlet that is generated outputs real content in straight HTML for responding to
the client.

2.6.2
Access Models


A Java Server Pages file may be accessed in at least two different ways. A cl
ient’s request
comes directly into a Java Server Page. In this scenario, suppose the page accesses reusable Java
Bean components that perform particular well
-
defined computations like accessing a database.
The result of the Beans computations, called resul
t sets is stored within the Bean as properties.
The page uses such Beans to generate dynamic content and present it back to the client.

In both of the above cases, the page could also contain any valid Java code. Java Server Pages
architecture encourages s
eparation of content from presentation.

2.6.3 Steps in the execution of a JSP Application:



The client sends a request to the web server for a JSP file by giving the name of the JSP
file within the form tag of a HTML page.



This request is transferred to the JavaWebServer. At the server side JavaWebServer
receives the request and if it is a request for a jsp file server gives this request to the JSP
engine.



JSP engine is program which can understand the tags of the jsp and t
hen it converts those
tags into a Servlet program and it is stored at the server side. This Servlet is loaded in the
memory and then it is executed and the result is given back to the JavaWebServer and
then it is transferred back to the result is given bac
k to the JavaWebServer and then it is
transferred back to the client.



2.6.4

Java Beans:

We can assemble a computer or fan very easily by choosing different components
manufactured by different vendors. We can take a screw from company one and use it to f
it the
Mother board to cabinet as they are manufactured according to a standard. Observing to this
point to simplify the process of developing software, different software companies has proposed
different component technologies. Ex: java soft java bean com
ponent tech, EJB component tech,
Microsoft COM, BONOBO component model. Java Bean and EJB are two different
specifications from java soft. EJB can be used to implement business logic on the server side.
Most of the developers uses to assume Java Bean compo
nents are for developing GUI
components and they can be used only on the client side but we can develop any kind of software
using Java Bean standard (GUI/ non GUI). Java Bean can be used either on the client side or on
the server side. AWT, JFC components

are implemented according to Java Bean standard.
According to Java Bean standard a Bean component can support a set of properties, set of events,
any number of additional methods. A property can be read
-
write or it can be just read only
property. For read

write property we need to provide setXXX and getXXX methods (isXXX if
the property is Boolean )

To support the following properties (i) uname (ii) email (iii) age according to Java bean standard
we need to write the code as,

public class UserBean {String

uname;


String email;

int age;

public void setUsername( String value ) {uname = value; }

public void setEmail( String value ) { email = value; }

public void setAge( int value ) { age = value; }

public String getUsername() { return uname; }

public String
getEmail() { return email; }

public int getAge() { return age; }

}

Java Beans like JButton supports the events by providing the methods with

naming patterns (
i) addXXXListener (ii) removeXXXListener

Apart from developing Java bean class we can also provide

BeanInfo class.

In this class we can
provide
(i) Information about properties (ii) Information

about the events and (iii) Information about the icon that represents our

bean.

According to JSP model1 we can develop the application as,





Fig 2.6
JSP model1


According to above model the presentation logic has to be implemented in JSP page and
the business logic has to be implemented as part of Java bean This model help us in separating
the presentation and business logic. For a large scale projects instead of
using model1 it is better
to use model2 (MVC). Stuts frame work is based on model 2.

2.7

STRUTS

What is Struts
-

Struts Architecture

Struts is famous for its robust Architecture and it is being used for developing small and big
software projects.


Struts i
s an open source framework used for developing
J2EE

web applications using Model View Controller (MVC) design pattern. It uses and extends the
Java Servlet

API to encourage developers to

adopt MVC architecture. Struts framework provides three key
componen
ts:

A
request

handler provided by the
application developer

that is used to

mapped to a particular
URI.


A
response

handler which is used to transfer the control to another resource which will be
responsible for completing the response.

A
tag library

which helps developers to create the interactive form based applications with server
pages

Struts provides you the basic infrastructure infrastructure for implementing MVC allowing the
developers to concentrate on the business logic.

2.7.1 MVC
Architecture

The main aim of the MVC architecture


is to separate the business logic and application
data from the presentation data to the user.

Here are the reasons why we should use the MVC design pattern.



They are
reusable
: When the problems recurs,
there is no need to invent a new
solution, we just have to follow the pattern and adapt it as necessary.



They are
expressive
: By using the MVC design pattern our application becomes
more expressive.



Fig 2.7 MV
C Design Pattern



Model
:

The model object knows about all the data that need to be displayed. It is model
who is aware about all the operations that can be applied to transform that object. It only
represents the data of an application. The model represents

enterprise data and the
business rules that govern access to and updates of this data. Model is not aware about
the presentation data and how that data will be displayed to the browser.





View:

The view represents the presentation of the application. The

view object refers to
the model. It uses the query methods of the model to obtain the contents and renders it.
The view is not dependent on the application logic. It remains same if there is any
modification in the business logic. In other words, we can s
ay that
it is the responsibility
of the
of the view's to maintain the consistency in its presentation when the model
changes.



Controller:


Whenever the user sends a request for something then it always go through
the controller. The controller is responsi
ble for intercepting the requests from view and
passes it to the model for the appropriate action. After the action has been taken on the
data, the controller is responsible for directing the appropriate view to the user. In

GUIs,
the views and the control
lers often work very closely together.

2.7.2 Overview of the Struts Framework

The Struts framework is composed of approximately 300 classes and interfaces which are
organized in about 12 top level packages. Along with the utility and helper classes framewo
rk
also provides the classes and interfaces for working with controller and presentation by the help
of the custom tag libraries. It is entirely on to us which model we want to choose. The view of
the Struts architecture is given below:



The Struts
Controller Components:


Whenever a user request for something, then the request is handled by the Struts
Action Servlet. When the ActionServlet receives the request, it intercepts the URL and based on
the Struts Configuration files, it gives the handling of the request to the Act
ion class. Action
class is a part of the controller and is responsible for communicating with the model layer.



The Struts View Components:



The view components are responsible for presenting information to the users and
accepting the in
put from them. They are responsible for displaying the information provided by
the model components. Mostly we use the Java Server Pages (
JSP
) for the view presentation. To
extend the capability of the view we can use the Custom tags, java script etc.




Th
e Struts model component:


The model component provides a model of the business logic behind a

Struts
program. It provides interfaces to databases or back
-

ends systems. Model components are
generally a java class. There is not any suc
h defined format for a Model component, so it is
possible for us to reuse Java code which is written for other projects. We should choose the
model according to our client requirement.



Validator Framework


Struts Framework provides the fu
nctionality to validate the form data. It can be use
to validate the data on the users browser as well as on the server side. Struts Framework emits
the java scripts and it can be used to validate the form data on the client browser. Server side
validation

of the form can be accomplished by sub classing your From Bean with
DynaValidatorForm class.
The Validator framework was developed by David Winterfeldt as
third
-
party add
-
on to Struts. Now the Validator framework is a part of Jakarta Commons project
and i
t can be used with or without Struts. The Validator framework comes integrated with the
Struts Framework and can be used without doing any extra setting




















3. SYSTEM ANALYS

3.1 EXISTING SYSTEM

The main purpose of the project is to develop an application called Non Visual Search
Engine for Visually Challenged is a need for web based application where we provide a

user
friendly application for visually impaired people. This application works just like Google search
engine but with a new feature for visually challenged. The data entered anywhere on the screen
is taken into to a textbox with focus in it. So it gives
all the results of it in a systematic manner.
When the user clicks the right mouse the first result is read heard. For next result, left mouse is
pressed. In this way the user can listen all the results of the required data.

3.1.1
Disadvantages



Visually ch
allenged people
don’t have proper tool to get the information they want



Fewer Users


Friendly.

3.2
P
ROBLEM STATEMENT

The Word Wide Web has come to take an important part in our lives: it has become
indispensable for finding information, communicating
with others, and performing daily tasks
for work, banking, and shopping. Web sites are designed mostly for graphical interaction,
limiting access for an entire community of people with visual disabilities. According to the
WHO’s World Health Report, there
are approximately 45 million people without sight
worldwide. These people don’t have proper tool to get the information they want.

3.3 PROPOSED SYSTEM



There is a need for web based application where we provide a user friendly application
for visually imp
aired people. This application works just like Google search engine but with a
new feature for visually challenged. The data entered anywhere on the screen is taken into to a
text box with focus in it. So it gives all the results of it in a systematic mann
er. When

the user
clicks the right key

the first result is read he
ard. For next result, left key

is pressed.

For the result
to be read heard down arrow is pressed

In this way the user can listen all the results of the
required data.

3.3.1 Advantages


The project is identified by the merits of the system offered to the user. The merits of this
project are as follows



It’s a web based project.



W
e can able to create the search engine for the visually challenged people.



B
y using this application we can

maintain the data for the search criteria for visually
challenged
.



Visually Challenged people can get

the voice to be heard.


















4. SYSTEM REQUIREMENTS

SPECIFICATIONS


Requirement Specification plays an important role to create quality software solution;
Requirements are refined and analyzed to assess the clarity.
Req
uirements are represented in a
manner that ultimately leads to successful software implementation. Each r
equirement must be
consistent with the overall objective. The development of this project deals with the following
requirements:



Hardware Requirements



Software Requirements

4.1 HARDWARE REQUIREMENTS

The selection of hardware is very important in the
existence and proper working of any
software. In the selection of hardware, the size and the capacity requirements are also important
.


T
able

4.1
Hardware requirements

Content

Description

HDD

20 GB Min

40 GB Recommended


4.2 SOFTWARE REQUIREMENTS


The software requirements specification is produces at the culmination of the analysis tasks.
One of the most difficult tasks is that, the selection of the software, once system requirement is
known

by determining whether a particular software package fits the requirements
.






T
able

4.2

Software requirements

Content

Description

OS

Windows XP with SPII or
Windows Vista

Database(Back
-
end)

My SQL

Technologies

Core Java, Advance Java,
HTML, JSP,XML

IDE

My Eclipse










RAM

1 GB

Min

2 GB Recommended








5. SYSTEM DESIGN


5.1. INTRODUCTION



The main purpose of the project is to develop an application called Non Visual Search
Engine for Visually Challenged is a
need for web based application where we provide a user
friendly application for visually impaired people. This application works just like Google search
engine but with a new feature for visually challenged. The data entered anywhere on the screen
is taken

into to a textbox with focus in it. So it gives all the results of it in a systematic manner.
When the user clicks the right mouse the first result is read heard. For next result, left mouse is
pressed. In this way the user can listen all the results of t
he required data.

5.2. SYSTEM SPECIFICATIONS

5.2.1 Processes Involved



Access Management process to allow users to use the application.



User information setup and maintenance process



Search Engine process



Engine data maintenance process



Voice
maintenance and
management



Data Archive and cleanup process

5.3 SYSTEM COMPONENTS


5.3.1

Modules Involved



Access management Module
:

This module is used by the system Admin to provided
access to various users of the application.



User information setup and

maintenance

Module
:
This module allows admin to setup
the details of all the users.



Search Engine Module
:
This module allows admin to create the search engine for the
visually challenged people.



Engine data maintenance process
:

This module allows the admin

to maintain the data
for the search criteria.



Voice
maintenance and
management
:
This module allows the admin to maintain the
voice to be heard by the people.



Data Archiving and Cleanup

Module

:
Allows Admin users to Archive/Cleanup old
data on the system.


5.4 UML DIAGRAMS



Fig 5.1 Class diagram












Fig 5.2 Master Usecase Diagram










Fig 5.3 User Usecase Diagram










Fig 5.4 Master Sequence Diagram

5.5
DATA

DICTIONARY


Table 5.
1 MasterPreferenceTypes



COLOUMN
NAME

DATATYPE

PTypeId

Integer

PtypeName

Varchar

Status

Varchar




Table 5.
2 DefaultPreferences









Table 5.
3 User Searches








Table 5.
4 SearchResults









Table 5.
5 ActionTypes

COLOUMN
NAME

DATATYPE

PTypeId

Integer

PTypeName

Varchar

DefaultPrefernce

Varchar

Status

Varchar

COLOUMN
NAME

DATATYPE

SearchId

Integer

SessionId

Varchar

SearchString

Varchar

TimeStamp

Varchar


Status

Varchar

COLOUMN
NAME

DATATYPE

ResultId

Integer

SearchId

Varchar

SessionId

Varchar

SequenceId

Varchar

ResultUrl

Varchar

ResultSummary

Varchar


Status

Varchar

COLOUMN
NAME

DATATYPE








Table 5.
6 Actions






Table
5.
7ActionPrompts
















ActionTYpeId

Integer

ActionName

Varchar

Status

Varchar

COLOUMN
NAME

DATATYPE

ActionId

Integer

ActionName

Varchar

Status

Varchar

COLOUMN
NAME

DATATYPE

ActionPromptId

Integer

ActionID

Varchar

ActionTypeId

Varchar

PromptText

Varchar

Status

Varchar