Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
UNIVERSITY OF CINCINNATI
_____________ , 20 _____
I,______________________________________________,hereby submit this as part of the requirements for thedegree of:
________________________________________________
in:
________________________________________________
It is entitled:
________________________________________________
________________________________________________
________________________________________________
________________________________________________
Approved by:________________________________________________________________________________________________________________________
DataMart for an Autonomous Guided Vehicle using ColdFusion
A thesis submitted to the
Division of Graduate studies and Research
Of the University of Cincinnati
In partial fulfillment of the
requirements for the degree of
Master of Science
in the Department of Mechanical, Industrial and Nuclear Engineering
Of the College of Engineering
2001
by
Ramya Ravindran
B.E (Mechanical & Production Engineering)
Annamalai University, India, 1998.
Thesis Advisor and Committee Chair: Dr. Ernest L. Hall
Abstract Internet has by far and wide changed the way information is being processed and used.
The World Wide Web took the world by storm to become the widest known, used and
talked-about technology for faster provision and reception of large volumes of coherently
structured online information. In this age of technology where information and
knowledge transfer is critical for the success and continuous enhancement of any product
it is imperative to keep abreast with technological innovations. One such step towards
technology transfer is achieved by developing a data mart utilizing one of the most
powerful web- to -database middleware application called ColdFusion.
The thesis talks about the application of ColdFusion to create a warehouse of data for the
automated guided vehicle Bearcat III. Since design, development and continuous
enhancement is necessary for building a complex system like the Bearcat III online data
storage and retrieval about various components of the autonomous guided vehicle
becomes imperative. The thesis delves in detail the methodology adapted in the design
and development of the online data mart, which stores information ranging from team
members details, parts, sponsorer information and other critical data that are vital for
knowledge transfer. The data mart will serve as a great reference tool for information
interchange and enhancements on the Bearcat III.
Acknowledgements
I would like to thank my advisor, Dr.Ernest Hall, without whose guidance and support
this thesis would not have been possible. His suggestions and feedback had greatly
helped me in my thesis and I am really grateful for his help and support.
I would like to thank Dr.Richard L.Shell and Dr.Ronald L.Huston for agreeing to
chair the committee. I would also like to thank them for their suggestions and positive
feedbacks.
I would like to thank the Robotics Team members for all the help and support
they had given me during my graduate period of study at the University Of Cincinnati. I
would like to thank all my friends and well-wishers who had helped me from time to
time.
Last but not the least, I would like to thank my family for their encouragement
and support in all my endeavors. I owe all my success to them.
1
Table Of Contents
Chapter 1 Introduction 6
1.1 Objective 7
1.2 Organization of Thesis 8
Chapter 2 Bearcat III 9
2.1 Mechanical System 9
2.2 Vision System 10
2.2.1 Line Following 11
2.2.2 Pothole Detection 11
2.3 Power System 12
2.4 Navigation System 12
2.4.1 Sonar 12
2.4.2 Global positioning System 13
2.4.3 Laser Scanner 13
2.5 Safety System 13
2.5.1 Manual Emergency Stop 13
2.5.2 Remote controlled Emergency Stop 14
2.6 Health Monitoring System 14
2.7 Central Logic Controller 14
2
Chapter 3 Literature Survey 16
3.1 Introduction to Internet Terminologies 16
3.2 Client Server Architecture 20
3.2.1 Two Tier Architecture. 21
3.2.2 Three Tier Architecture 22
3.3 Client side Extensions 23
3.4 Server Side Extensions 24
3.5 Web-Server Interfaces 25
3.6 Markup Languages 27
3.7 Scripting Languages 27
Chapter 4 Database Design 28
4.1 Why we need a database 28
4.2 Steps Involved in database design 28
4.3 Relational Database 29
4.4 Open database Connectivity 30
4.5 Structured Query Language 31
Chapter 5 ColdFusion 32
5.1 Introduction to ColdFusion 32
5.2 ColdFusion Vs other technologies 32
5.2.1 Advantages of ColdFusion 34
5.3 How ColdFusion works 35
3
5.4 Cold Fusion Server 37
5.4.1 ColdFusion Administrator 38
5.5 Cold Fusion Studio 39
5.6 Components of ColdFusion 40
5.6.1 Database Files 40
5.6.2 ColdFusion Data Source 40
5.6.3 Templates 41
5.6.4 The Query and the output element 42
5.7. Common Tags used in design 43
5.8. Client and Session management 44
5.8.1 Application variables 45
5.8.2 Session Variables 45
5.8.3 Client Variables 46
5.8.4 Cookies 46
Chapter 6 Architecture of datamart 47
6.1 Steps involved in creating datamart 47
6.2 Schematic representation of datamart 49
6.2.1 Major subsystems 50
6.2.2 Team Member Information 51
6.2.3 Sponsor Information 52
6.2.4 PFEMA Analysis 52
6.2.5 Technical Information 54
4
6.3 Results 55
Chapter 7
7.1 Conclusions and Recommendations. 61
Bibliography 62 Appendix A
Templates Related to ColdFusion Implementation 63
5
List Of Figures
Chapter 2
2.1 Bearcat III Block Diagram 10
2.2 Vision System 11
Chapter 3
3.1 Basic Components of the Worldwide Web 16
3.2 Client/Server Requests Processing 21
3.3 Two-Tier Architecture 21
3.4 Three-Tier Architecture 22
Chapter 4
4.1 Various phases of Database Design 29
4.2 Open Database Connectivity 31
Chapter 5
5.1 Web-to–database Middleware 35
5.2 ColdFusion Server 37
5.3 ColdFusion Administrator 38
5.4 ColdFusion Studio 39
5.5 Setting up Datasource in ColdFusion 41
5.6 ColdFusion Template 42
Chapter 6
6.1 Steps Involved in creating Datamart 47
6.2 Components of Datamart 49
6
Chapter 1
Introduction
The Internet has opened a new channel for communication by allowing hundreds of
millions of users to connect with each other, thus making it inevitable for organizations
across the world to use it as a medium to further their profits and provide enhanced public
services. Internet technology facilitates the sharing of heterogeneous information in an
environment that provides multiple benefits at a fraction of the cost. Internet has opened a
communication channel where sharing and information exchange is possible with a
relatively shorter downtime. Since almost all information sharing is based on data
transfer, it becomes necessary to store valuable and current data that can be accessible by
all users at all times. Building a database to store information and facilitate user requests
is one of the key elements for effective information sharing. The application of web
based to tools to empower such an application is crucial for its success.
The UC Center For Robotics is a research group of engineers, which has dedicated itself
for building intelligent autonomous vehicles. The team participates in the Annual
Intelligent ground Robotics competition every year and is continuously working on
adding technical enhancements to the autonomous guide vehicle, Bearcat. So it becomes
important for every member to understand the complexities of every system involved for
the effective functioning of the group. Building a data mart that will provide answers to
questions technical or otherwise is crucial, as it will lead to better communication and
better understanding of the robot. The thesis describes the various steps involved in
applying web-based technology to build a data mart for the autonomous vehicle Bearcat
III using an effective server side tool called ColdFusion. The solution will empower users
7
current as well as future members to have a better understanding of the various
components and it will serve as an excellent tool for design, analysis and effective
decision-making.
1.1 Objective
Since information interchange is the need of the hour for the successful design and
enhancement of any product it is necessary to maintain a knowledge base that is
informative and current. Since the Bearcat III is being continuously evolved it is
important to ensure that data about critical components are being transferred. To achieve
this a data mart is created .A data mart refers to the collection of data on a particular
subject and is usually implemented to address specific problems confined to the needs of
the specific group of users. The data mart serves as an excellent source of data to provide
supportive decisions and serve as a means of providing accurate and reliable information
to end-users. The thesis describes the various steps involved in the design building and
the deployment of a data mart for the automated guide vehicle Bearcat III. The Data Mart
contains information about the various components of the robot, member information,
vendor information that had been collected in the past. A powerful server side extension
tool called ColdFusion is employed to dynamically support the user request and present
data to the end-user in a browser window. The application is user friendly and is easy to
use and can be used to view data from any computer in the world that supports a browser
such as Internet Explorer or Netscape navigator. ColdFusion achieves this functionality
by employing a markup language called ColdFusion Markup Language (CFML) to
interact with the database and present data dynamically. The CFML tags are embedded in
the HTML page and are executed on the server side. Validation techniques are employed
8
to ensure that only authenticated users are allowed to access the resources and manipulate
the existing data. The important advantage of using ColdFusion is that it can build
complex web applications with shorter downtime, thus enabling faster deployment of
dynamic sites a reality to even non-programmers. Various steps involved in the design,
storage and retrieval of data are discussed in detail in the following chapters.
1.2 Organization Of Thesis
To facilitate ease of reading the thesis is segmented into chapters. The segmentation is
carried out in such a way that it provides easy understanding. Chapter 2 describes the
various components of the autonomous guide vehicle Bearcat III. Chapter 3 gives a brief
outline of the components that are crucial for the building of web to database application.
Chapter 4 describes the underlying concepts in building a database. Chapter 5 introduces
the basic components, tags and the templates used in ColdFusion. Chapter 6 sketches the
implementation of datamart using ColdFusion. Chapter 7 outlines the recommendations
for future enhancements.
9
Chapter 2
Bearcat III
Components of Bearcat III
The purpose of this chapter is to explore the various functional components that make up
Bearcat III. The automated guided vehicle is an integration of numerous functional
subsystems controlled by means of a high-level central computer that enables the vehicle
to function as an intelligent machine. Each sub-system is designed to meet or assist with
a specific contest requirement.
• Mechanical system.
• Vision system.
• Power system.
• Navigation system.
• Safety system
• Health Monitoring System
• Central Logic Controller
2.1 Mechanical system
The Bearcat III is an outdoor vehicle designed to carry a payload of 100 pounds. The
vehicle navigates using two 36 volts 15 amperes motors. Two separate gearboxes are
used to individually power the wheels. Worm gears with a ratio of 40:1 are used to
transmit power to the wheels through a mechanical coupling. This enables a zero turning
radius by rotating one wheel in the forward direction and the other in the reverse
direction. This unique design offers the ability to make a turn about the center of axis of
10
the drive wheels, thereby providing the vehicle exceptional maneuverability. The zero
turning radius is achieved by using a rear castor wheel. The power to each motor is
delivered from an AMC DC 48A amplifier that amplifies the signal from the Galil DMC
Motion Controller.
Figure 2.1 Bearcat III System Block Diagram
2.2 Vision System
Bearcat III Control Logic
Serial RS 232 Ports
Pentium Processor
Pentium based CPU
Serial I/O RS 422
Remote E- Stop
ISCAN I/O
Galil DMC
EPIX PCI
Serial I/O RS 232
Serial I/O RS 232
Serial I/O RS 232
Rotating Sonar
Motorola GPS
Digital voltmeter
Futaba E-Stop
ISCAN Tracker
Laser Scanner
GALIL DMC
FSR Video
Left Motor
Right Motor
Pothole Camera
Left camera
Right Camera
OMNI Camera Ethernet
11
The vision system is a critical component that assists the vehicle following a line, and
avoiding potholes that it might encounter on its course. The vehicle has three cameras,
two of which are used for line following and the third is used for pothole detection.
Figure 2.2 Vision System
2.2.1 Line Following
The course that the robot follows is bounded using solid or dashed white lines. The
vehicle uses two JVC CCD cameras to digitize the vision system from a 3-D coordinate
system to a 2-D coordinate system. Point or line tracking is achieved through the two
digital CCD cameras. At any instant, only one camera is used. In case if the track is lost
from one camera, the vision is switched to the other camera. This is accomplished using a
video switch. The Iscan tracking device does image processing. A CCSU-8BW video
switch from FSR, Inc., alternates between the two cameras depending upon the visibility
of the marker.
2.2.2 Pothole Detection
For the autonomous challenge event, the vehicle should be capable of detecting and
avoiding simulated potholes represented by two feet diameter white circles randomly
positioned along the course[1]. The reaction distance of the vehicle is twelve feet. A
12
monochrome Panasonic CCD camera is used to capture the course ahead of the robot.
The data from the camera is passed to a PIXCI SV4 imaging board, manufactured by
Epix, Inc., The control software for the imaging board processes the formatted data. This
software makes extensive use of the XCOBJ/PXIPL Image Processing libraries provided
by EPIX to detect the presence of a simulated pothole and determine the location of the
centroid of the pothole. The line following, obstacle avoidance and pothole detection
systems are fused to permit the robot to follow a path around the pothole.
2.3 Power System
The Bearcat’s electrical system consists of a DC battery power system that supports an
AC power system through an inverter. Three 12-Volt DC supplies the main power, 130
Amp hours, deep-cycle marine batteries connected in series, which provide 4680 Amp
hours. A 36-Volt, DC input 600-Watt inverter provides 60 Hz pure sine wave output at
115 Volts AC. The inverter supplies AC electrical power for all AC systems including
the main computer, cameras, and auxiliary regulated DC power supplies. The DC system
provides 36 volts unregulated DC electrical power to the motors at a maximum of 10
Amps.
2.4 Navigation system
Three components that assist in navigating the robot on its trajectory are:
• Sonar system.
• GPS.
• Laser Scanner.
2.4.1 Sonar system
13
The objective of this subsystem is to provide reliable measurements in terms of the
distance of the vehicle from the obstacle, and the angle to the obstacle. The Sonar
transmits sound waves towards the target and detects an echo, and measures the time that
elapses between the start of the transmit pulse and the reception of the echo pulse. It uses
a Polaroid ultrasound ranging kit and RS 232 interface card.
2.4.2 Global Positioning system
The solution is then sent through an RS 232 serial link. For the navigation contest, a fixed
base point is set as the home position. Then the GPS is used to get the original position in
MAS. Then tracking is used to move from one point to the next, updating the new “base”
with every pass.
2.4.3 Laser Scanner
The laser scanner would be used for avoiding any obstacles that the vehicle might
encounter while navigating the course. The scanner data is used to get the information
about the profile shape and size of the obstacle. It is mounted at a height of 8 inches
above the ground to facilitate the detection of short as well as tall objects. The central
controller performs the logic for obstacle avoidance and the interface between the line
following and the motion control program.
2.5 Safety System
2.5.1 Manual Emergency Stop
The manual emergency stop unit consists of a red manual push button located on the
easily accessible rear surface of the vehicle. When pressed, the power to the motors is
cut off and the self-locking mechanism of the gearbox brings the vehicle to a rapid halt.
The self-locking mechanism ensures that the vehicle does not move when it is not
14
powered, and serves as a safety measure against any undesirable motion such as rolling
when parked on a slope. Disconnect switches also permit disconnecting all power for a
final safety measure.
2.5.2 Remote Controlled Emergency Stop
The mobile robot must be de-activated by a remote unit from a distance of no less than 50
feet in compliance with the rules for this contest. The remote controlled emergency stop
consists of a Futaba transmitter, a receiver, an amplifier and a relay. The advantage of
using this is that the transmitter need not be in line with the sight of the receiver. The
Futaba transmitter uses a 6V DC and transmits FM signals at 72.470 MHz over a range of
65 feet. This amplified current activates the contacts of the relay that in turn activates the
emergency stop solenoid and cuts power to the motors.
2.6 Health Monitoring Systems
The Bearcat III is equipped with a self-health monitoring system. A RS 232 serial port is
used to take input from a digital multi meter, which continuously checks the voltage of
the batteries. An audible alarm is sounded when the voltage is less than a threshold to
inform the operator to shut down the system and change batteries. Several other meters
and LED displays are included to assist in operation. A fault diagnosis system is available
on-line for anticipated problems.
2.7 Central Logic Controller
The various systems are integrated by means of a central logic controller. The control
logic is custom developed software written in C++. The data from the vision system (the
line following data) and the obstacle avoidance system (sonar, laser scanner and pothole
detection camera) are used to make decisions to control the velocity and the orientation of
15
the wheels with reference to the direction of the line being followed. The various sub
systems are integrated to make decisions about the speed and steering angle of the
vehicle, and switching between the left and the right cameras. The central logic controller
is extremely important for making intelligent decisions to guide the Bearcat III in the
intended direction.
16
Chapter 3
Literature survey
3.1 Introduction to Internet Terminologies
A user-friendly web interface is important for effective data sharing. As database friendly
web interfaces are necessary for presenting data successfully to end-users, it is necessary
to understand the underlying concepts of Internet technology. The various terms are
explained in detail below.
Internet
Worldwide network of computers connected together through a standard network
protocol known as transmission Control protocol or TCP/IP [2].
Web BrowserServer
Computer
HTMLDocuments
TCP/IP
Web Pages
Internet
Figure 3.1 Basic Components of the World Wide Web
17
Advantages of Internet
Internet Characteristics Benefit
Hardware and Software Independence
• Savings in equipment/software
acquisition. • Runs on most existing environment. • No need for multiple platform
development.
Location Independence
• Global access through Internet infrastructure.
• Reduced costs for dedicated connections.
Common and simple user interface
• Reduced training costs and times. • Reduced costs on end user support. • No need for multiple platform
development.
Rapid development at manageable costs
• Multiple development tools available • Plug and Play development tools • Development is more interactive • Reduced development times • Tools are relatively inexpensive • Free client access tools (Web
Browser) • Low entry costs-Free web servers
available. • Reduces costs of maintaining private
networks. • Distributed processing using multiple
servers.
World Wide Web (WWW)
It is a worldwide network of computers that store collections of specially formatted files
known as web pages. The web is just one of many services provided by the Internet.
18
Web Browser
The end user application used to browse or navigate through the Internet. The browser is
a graphical application that runs on the client computer and its main function is to display
web pages. The web browser (e.g., Netscape Navigator, Internet Explorer) requests Web
pages from a web server.
Web Page
A text document containing labels of special commands written in Hypertext Markup
language.
Web pages can be classified into two
q Static Web Pages
q Dynamic Web Pages
Static Web pages
Static web page content is determined at the time of writing the document. As implied
above, every request for a static page gives the same response. Static Web pages are
simple and easy to create. They can be viewed quickly and can be stored as local copies,
on the client’s computer, for quicker access in the future. Problem with static web pages
is the lack of adaptability. If a static page needs to be changed, someone has to manually
change the code on each revision. This can take up lots of time if the validity of the
information in the file expires frequently 6.
Dynamic web pages
Dynamic web pages changes appearance depending upon what information is stored in
the database. Rather than writing an HTML page, instructions on how to make the page
19
are written. The server then creates the actual HTML and presents the data in a readable
form. This technique allows the development of incredibly rich content on the Internet.
Dynamic web pages do not require any extra processing on the client's machine as
against static pages, so they are generally faster.
Web site
It is a term used to refer to the web server and the collection of web pages stored on the
local hard disk of the server computer on an accessible shared directory. The web server
and the web client communicate using a special protocol known as Hypertext Transfer
Protocol.
Hypertext Transfer Protocol
The standard protocol [2] used by the Web Browser and the Web server to communicate
i.e. to send requests and replies between servers and browsers.
Extranet
Extranets are networks that spread across two or more companies and they facilitate
business communications across diverse business units. Although security and bandwidth
are the typical problems that are faced in facilitating business-to-business transactions
over the web, companies have to benefit in terms of excellent supplier-vendor relations
and thus lower product costs and increase profits. Extranets facilitate communication,
coordination and collaboration among employees and teams, and even with business
partners, regardless of their physical locations.
Intranet
Intranet can be defined as an internal network [2] that is not usually available to Web
users. Intranets are used within businesses for employee tasks such as information
20
sharing, maintaining the company database and collection and distribution of vital
information that can be used in information processing at all levels of an organization.
Since intranet needs to be restricted from public access, they normally reside behind a
corporate firewall. A firewall is usually software or a hardware component that limits and
controls the data traffic into the company database. The intranet has several advantages as
given below.
1. Intranet is relatively simple and easy to setup and implement.
2. Intranet can run on a set of protocols and services that are available on many
platforms ranging from windows to Unix to IBM Mainframe operating systems.
3. Intranet architecture allows the distribution of services among different computers
and support multiple data sources and types.
4. Shorter development times, ease of use and reduced costs also make it a good
reason to use intranets.
3.2 Client/Server Architecture
Web Server
A specialized application whose only function is to listen for Clients requests and to send
the requested web pages.
Clients
Clients are PCs or workstations on which users run applications. Clients rely on servers
for resources, such as files, devices, and even processing power.
21
Services
File
Communication
FAXMultimedia
Server Process
Requests and repliestravel through the
Network
NetworkClient requestsservices fromdifferent server
processes
Client Process
Figure 3.2 Client/Server Request Processing
Depending upon the type of services the client server architecture can be classified into
two namely:
i. Two –Tier Architecture
ii. Three- Tier Architecture
3.2.1 Two-Tier Architecture
App l i ca t i onL o g i c
App l i ca t i onL o g i c
Cl ien t Se rve r
T I E R 1 T I E R 2
User I n te r face
Figure3.3 Two Tier Architecture
22
In a two-tier architecture, a client requests services directly from the server. The user
interface and the application logic reside on the client machine and the data resides on the
server. It is typically used in environments where there are only a few users. The client in
this model is usually called fat client because it carries a large proportion of the
processing load. The server in a two-tier is called thin server because it handles only
lesser processing load.
The major disadvantages of two-tier architecture are as follows
• It is very difficult to maintain database security.
• Modular application programming is not possible thus making it difficult to
maintain and debug application code.
• The application is exposed to hacking and other security threats.
• It ties the application to one type of presentation thus making it impossible to
reuse the implementation with a different type of presentation.
3.2.2 Three-Tier Architecture
Middleware
API Protocol
Oracle LDAP FTPWeb
Server
ProtocolAPI
FTP ClientDatabase
ClientWeb
BrowserNFS Client
Client dependentInterface/API
Server dependent API/Interface
Servers
Client
Figure 3.4 Three-Tier Architecture
23
The Three-Tier architecture is basically an extension of the client server architecture in
which an intermediate server handles requests. The three-tier architecture has the
configuration as shown in figure 3.4. In the three-tier architecture the business logic and
the database reside on the server whereas the user interface resides on the client side. The
prime advantage of three-tier architecture is that a middleware layer is introduced in
between the client and server. This separates the business logic and user interface. All the
database processing is done at the server site thus reducing the network traffic. The client
in this case is called thin client and the server is called fat server.
3.3 Client Side Extensions
Client side extensions [2] add functionality to the browser. Although client side extensions
are available in various form, they are most commonly encountered are:
§ Plug-ins
§ Java and JavaScript
§ ActiveX and VB script
A Plug-in is an external application that is automatically invoked by the browser when
needed. Because it is an external application, the plug-in is operating systems specific.
The plug-in is associated with a data object generally using the file extension to allow the
web server to handle data properly that is not originally supported. For example, if one of
the page components contains a .pdf document, the web server will recognize it as a
portable document object and it will launch the adobe acrobat reader to present and
manipulate the data in the client computer.
Java is the object oriented programming language developed by Sun Microsystems that
runs on top of the web browser software. Java application are compiled and stored in the
24
web server. Calls to java routines are embedded inside the HTML page. When the
browser finds this call, it will download the java code from the web server and it will run
in the client computer.
JavaScript developed by Netscape is a scripting language that allows web authors to
design interactive sites. Because JavaScript is much simpler to generate than Java, it is
easier to learn. JavaScript code is embedded in the web pages. The embedded script is
downloaded with the web page and is activated when a specific event takes place.
ActiveX is Microsoft’s alternative to Java. ActiveX is a specification for writing
programs that will run inside the Microsoft’s client browser i.e. Internet explorer.
Because ActiveX is oriented mainly to Windows applications, it has low portability.
ActiveX are most commonly created in Visual Basic and C++.
VBScript is another Microsoft product that is used to extend the browsers functionality.
VBScript is derived from Microsoft Visual Basic. VBScript code is embedded inside an
HTML page and triggering events such as, clicking a link activates this code. The use of
routines permit data validation on the client side is absolutely necessary. For example,
when data is entered on a web form and no form data validation is done on the client side,
the entire data must be sent to the web server. This scenario requires the server to
perform all data validations thus wasting valuable CPU processing cycles. Therefore the
client data validation is one of the basic requirements for developing web applications.
3.4 Server-Side Extensions
The web server is the main hub through which all intranet services are accessed. For
example, when an end user dynamically queries a database, the client browser actually
requests a web page. When the web server receives the page request, it looks for the page
25
on the hard disk and when it finds the page, it will send it back to the client. The problem
encountered with the preceding scenario is that neither the browser nor the server knows
how to connect to and read the data from the database. Therefore to support this type of
request, the web server’s capability must be extended so that it can understand and
process database requests. This job is done through server-side extensions [2].
ColdFusion [3] is one of the most powerful database server side extensions that can
support database requests within a web page environment. The server side extension
program retrieves data from the database and passes the retrieved data to the web server,
which in turn will send it to the client browser for display purposes. Quite aside from the
fact that the server side extension makes it possible to retrieve and present the query
results, it provides its services to the web server in a way that is transparent to the client
browser. In short, the server extensions add significant functionality to the web server
and therefore to the Intranet.
3.5 Web Server Interfaces
If a web server has to successfully communicate with an external program, both the
programs must use standard way of exchanging messages and responding to requests. A
web server interface defines how a web server communicates with external programs.
There are two well-defined Web server interfaces:
• Common Gateway Interface
• Application Programming Interface
The Common Gateway Interface (CGI) uses script files which is usually a small program
containing commands written in some programming language usually PERL, C++, or
visual Basic, that perform specific functions based on the clients parameters that are
26
passed to the web server. The script files contents can be used to connect to the database
and to retrieve data from it using the parameters passed by the web server. The main
disadvantage of using CGI is that for every request the script file has to be executed for
each users request. Such a scenario decreases the system performance.
Application Programming Interface (API) are a newer web server interface standard that
is much more efficient than CGI scripts. APIs are more efficient because they are
implemented as shared code or Dynamic linked libraries (DLL’s). This means that API is
treated as part of the web server program and is dynamically invoked whenever needed.
The other advantage is that, API can use a shared connection to the database instead of
creating a new one every time, as in case with CGI scripts. However, API has its own
disadvantages. Since it shares the same memory space as the server, API errors can bring
down the server. The other disadvantage is that APIs are specific to the web Server and
the operating system. The three well established web server APIs are
v Netscape API (NSAPI) for Netscape Servers
v Internet Server API (ISAPI) for Microsoft Windows NT web Servers
v Website API (WSAPI) for O’Reilly Website Servers
Regardless of the type of the type of web server interface used, the web-to-database
middleware program has to connect with the database. The database connection can be
accomplished in one of the following two ways.
v Use native SQL access middleware like SQL*Net for Oracle.
v Use ODBC for connecting to databases.
27
3.6 Markup Languages
Markup languages are used to format text and to add special information and actions to a
document, such as images or highlighting. They're called markup languages because
special instructions are added to a text file and the original text is "marked up." HTML is
the markup language used to create Web pages. The browser acts as an interpreter for the
HTML code embedded in the document and it can be viewed by using a standard browser
such as Internet Explorer or Netscape Navigator.
3.7 Scripting languages
A script is a simple, unsophisticated program. Scripting languages are different from
markup languages, because in case of markup languages the instructions are embedded in
a document whereas in the case of scripts the instructions are stand-alone. Essentially,
scripting languages are used to provide a list of instructions for the computer to follow.
The following scripting languages are most commonly used on web servers:
• ASP
• Perl
• CGI
28
Chapter 4
Database Design
Database
A database is a self-describing collection of related data. The structure of the database is
stored within the database system and the responsibility of integrating the data is assumed
by the DBMS instead of the programmer. So a database is superior to a file system.
4.1 Why we need a database
Data constitute the building blocks of information. Good, relevant and timely information
is the key to good decision-making [7]. Since a good database is a good information
generator, a systematic approach to database design is very important for the building of
any database application. In any practical application, a database that can provide
interactive and organized data is necessary for effective communication and knowledge
transfer.
4.2 Steps involved in Database Design
Design of databases is implemented by utilizing models. Models are simplified
abstractions of the real world events or conditions. First step in the design of any database
is to capture the requirements that are deemed necessary. The requirements can be
captured using two techniques, namely Critical Success Factor analysis or by Decision
Analysis. Once the requirements are captured, the next step is to construct the entity
relationship diagram. An entity is a conceptual representation of real world objects. Once
the entities are captured, normalized tables are obtained from the Entity Relationship
Diagram. This step is called as logical design or conceptual data model mapping. Final
29
phase in the design process is to populate the tables with values. The various steps
involved in the design process are outlined in figure 4.1.
Requ i remen tC o l lect ion and
Ana lys is
Concep tua l Des ign
Log ica l Des ign(Da ta Mode l
Mapp ing )
Phys ica l Des ign
Appl ica t ionProg ram Des ign
Transac t ionImp lemen ta t i on
D B M S I n d e p e n d e n t
DBMS Spec i f i c
Da tabaseRequ i remen ts
C o n c e p t u a l S c h e m a( In a h igh leve l data
mode l )
Log i ca l Schema
In te rna l Schema(Fo r t he same
D B M S )
App l i ca t ion Programs
Funct iona lRequ i remen ts
H igh Leve l T ransac t ionSpec i f ica t ion
Funct iona lAna lys is
M in iwor ld
Figure 4.1 Various Phases of Database Design
4.3 Relational Databases
The relational database model was devised by E.F.Codd [7] and is based on the branch of
mathematics called set theory. The relational stores data in the form of tables. The tables
are otherwise known as relations. Each table is a matrix, consisting of series of rows and
columns. The rows from a relational table are analogous to a record, and the columns to a
30
field. The main advantage of this model is structural independence i.e. ability to make
changes in the database structure without affecting the DBMS’s ability to access the data.
MS Access, Oracle and DB2 are some examples for relational databases.
Advantages of Relational Databases
The relational database model has several important advantages as given below.
i. Improved conceptual simplicity.
ii. Easier database design, implementation, management and use.
iii. Ad hoc query capability.
iv. Changes to database schema are easier to make.
v. It is self-documenting.
4.4 Open Database Connectivity
One of the typical requests in an application environment is a database search. To search
efficiently any web to database middleware needs to have the database ready for access
when requests come in. If each time the program receives a request it has to open the
database file, search the records and then close the file, it would be inefficient and would
be unable to handle multiple requests pouring in simultaneously. Open database
connectivity source [4] establishes a data pipeline in and out of the database, making it
readily accessible. When ODBC is installed in the system a set of drivers that are
compatible with a variety of common database applications are automatically installed. A
driver is software that enables the system software to communicate with hardware or
other software. The operating system communicates with the various hardware and
software by way of drivers. ODBC allows any windows application to access data
31
sources that are in relational database systems, using standard SQL (Structured Query
Language).
WINDOWS ApplicationWord,Excel,Access
Other WindowsServices
Memorymanagement
PrinterSpooling
OracleDriver
MS SQLDriver
Common Databaseaccess service is done
through ODBCWindows
application hasaccess to multiple
services
Database Vendors provide ODBC driversso windows applications can access their
respective databases
ODBC
Figure 4.2 Open Database Connectivity.
4.5 Structured Query Language
Structured query language is a universal set of commands that programs such as
ColdFusion use to communicate with a database. SQL allows users to access data in
relational database management systems, such as Oracle, Sybase, Informix, Microsoft
SQL Server, and Access, by allowing users to describe the data, which the user wishes to
see. SQL also allows users to define data in a database, and manipulate that data. SQL
statements are also used to perform tasks such as updating data in a database, or retrieve
data from a database. SQL statements are in short the industry standard for relational
database management and for creating, defining and managing databases.
32
Chapter 5
ColdFusion 5.1 Introduction To ColdFusion
ColdFusion was developed by Allaire Corporation [3]. ColdFusion is an application web-
to-database middleware that expands the functionality of web servers by linking them to
a wide range of services such as databases, directory systems, search engines and so on.
Some of the typical uses of ColdFusion are
§ Connect to and query a database from a web page.
§ Present database data in a web page, using various formats
§ Create dynamic web search pages
§ Create pages to insert, update and delete database data.
§ Define required and optional relationships and form fields.
§ Use simple and nested queries to represent business rules.
5.2 Cold Fusion Vs Other Technologies
• One of the principle advantages of ColdFusion over ASP technology is the ability
to create powerful Web applications without core programming skills. By
comparison, ASP technology requires a proficiency in Visual Basic and VBScript.
• Another benefit is the ability to run ColdFusion on multiple platforms.
ColdFusion will operate on Microsoft’s Windows NT or Windows 2000 operating
systems (running IIS), Solaris, HP-UX, and Linux. Of course some OS-specific
exceptions exist, such as case sensitivity on UNIX.
33
• Ease of use sways most developers to choose ColdFusion over ASP. Functions
such as server clustering support, site administration services, email and security
that must be programmed in ASP/IIS are available out of the box in ColdFusion,
making fast deployment of dynamic sites a reality even for non- programmers.
• In addition to many powerful wizards, ColdFusion offers ColdFusion Markup
Language (CFML), which looks similar to HTML and works with the application
server like ASP. CFML enables HTML-ists to quickly and easily build complex
sites. ColdFusion’s development time is about half that of ASP applications, a
huge advantage when site deployment speed translates into hard cash.
• ColdFusion’s static (multi-session) state management, broadly customizable error
handling and true XML integration give it an edge over ASP functionality. Other
attractive features of the package include database connectivity through COM,
OLE DB, ODBC and native drivers; dynamic load balancing across servers and
cross-platform compatibility with Windows NT, HP-UX and Linux as well as
support for any CGI-compliant server and external server support.
• ColdFusion offers more than enough power, performance and flexibility for
robust and complex site development and is especially recommended for faster
site deployment, cross-platform scalability and rapid sophisticated, innovative and
dynamic application development.
• Primarily because of its scalability and reliability, ColdFusion is well suited for
developing large e-commerce sites with mission-critical applications and site
availability. The Linux/Apache combination offers more than enough scalability
34
to serve even heavy-duty business-to-business e-commerce applications, server
farms and virtual private networks (VPNs).
5.2.1 Advantages of ColdFusion
Issues Advantages
User Security User Security allows us to control the resource types on a user-by-user basis. It is possible to allow only one user to see the description of an item, whereas a privileged
user can see the full text of an item. ColdFusion provides authentication tags and functions that make it
possible to programmatically determine the authentication status and the authority of each user.
Business Security One of the most powerful features of the ColdFusion Security Framework is the capability to secure individual sections of code at runtime. This control is in the hands
of the programmer, allowing complex security to be implemented with significantly less development time
than a customized security scheme. ColdFusion relies on the developer to mark sections of code to be secured.
This increases the efficiency of the application by minimizing the security overhead.
E-Commerce Cold Fusion is e-commerce ready. It has lots of built in tools that make it possible to build sites offering secure
online transactions. Real time web Presentation ColdFusion can directly interact with active databases.
This means that any changes in the database is immediately reflected in the web site thus making it
possible to generate dynamic web pages and informative data.
Interfacing with intranets ColdFusion is ideal for facilitating intranet communications and its database functions work
effectively on the intranets also.
35
5.3 How ColdFusion works
TCP/IPNetwork
Web Server
Web-to-database
Middleware
RDBMS Server
Server Computer
RDBMSComputer
Web Browser
HTTPpage
request
WebServer
ReceivesRequest
ScriptPage
HTMLPage
Database Serverpasses the query
results to theweb-to-database
middleware
Web-to-databasemiddleware connectsto the database and
passes the query
Web server sends the HTMLFormatted
Page to the ClientWeb-to-database
middlewarepasses the queryresults in HTMLformat back tothe web server
Web Server determines the page that contains script
language and passes the scriptpage to
web-to-database middleware
Figure 5.1 web-to-database middleware
36
The figure 5.1 shows the interaction between the browser, the web server and the web-to-
database middleware. The client browser sends a page request to the web server. The web
server receives the request and validates it. In this case, the server will pass the request to
the web-to-database middleware for processing. The scripts in the requested page enable
database interaction. The web-to-database middleware reads the script, validates it and
executes it. It connects to the database, queries the database and dynamically generates an
HTML formatted page that includes the data retrieved from the database and sends it to
the web server. The web server returns the just created HTML page, which now includes
the query result to the client browser for display.
Clearly, the interaction between the web server and the web-to-database is crucial
for the development of a successful intranet database implementation. Therefore the
middleware must be well integrated with the other intranet services and the components
that are involved in its use. In addition how well the web server and the web-to- database
services interact will depend on the web server interfaces supported by the web server. In
the client/server relationship, ColdFusion resides on the server computer, running in
conjunction with the web server software. It waits for the client request and upon
reception it momentarily seizes control on the web server, processes the request and
sends it back to the client. In order to interact with the database ColdFusion uses a
powerful scripting language called ColdFusion Markup language [4]. The Cold Fusion
Markup language abbreviated, as CFML is similar to HTML tags except that they are
recognized only by ColdFusion server and require ColdFusion application server running
concurrently with the web server to handle database requests and to provide other support
functions.
37
5.4 ColdFusion Server
The ColdFusion Server [4] usually works in conjunction with the web server and it serves
as an excellent web-to-database gateway. The ColdFusion Server comes into play when
the browser program requests a .cfm file instead of the standard .html documents which
the web browser usually works with. As a gateway program, ColdFusion serves as an
active link between the web server and the database. The following figure shows the flow
of data from a browser request to output.
WebServer
Internetor
Intranet
HTTP Request
Client Network Server
Database Server
File System
Email Server
Distributed Objects
Other enterprisesystemsColdFusion Server
Web Browser
CF Page
Web Page
Web Page
Figure 5.2 ColdFusion Server
The ColdFusion Server comes in three varieties viz.,
i. Professional Edition
ii. Enterprise Edition
iii. ColdFusion Express
38
The various editions differ in their functionality and support features. All versions are
compatible with Windows NT or greater. The enterprise edition is used for developing
ColdFusion application of the Bearcat III.
5.4.1 ColdFusion Administrator
The ColdFusion administrator is the web interface for the program configuration utility.
The ColdFusion administrator provides various options to fine-tune performance of the
server, datasources, extensions, logging options, automated tasks and extension options].
ColdFusion administrator provides the web interface to easily manage and maintain the
web server and it also helps in basic security and password setup [4].
Figure 5.3 ColdFusion Administrator
39
5.5 ColdFusion Studio
ColdFusion Studio is a companion product to ColdFusion Server.ColdFusion studio is a
semi-graphic interface that enables developers to work with HTML and CFM files as text
pages, but includes graphic shortcuts that aid in the coding process. ColdFusion is strictly
a windows application and is compatible only with Windows 95/98 and Windows NT
platforms. ColdFusion Studio has a lot of components like frames, tables, tag validation
tools etc to build interactive web graphic interface in a short span of time.
Resourcearea
Main ToolBarEditing Tools
Tag Tolols Edit Window
Figure 5.4 ColdFusion Studio
40
5.6 Components of ColdFusion
The various components [4] of ColdFusion are as follows.
o Database files
o ColdFusion data source
o The template
o Query and output elements
5.6.1 Database Files
The main elements in any database files are tables ColdFusion supports the following
database files on various platforms.
5.6.2 ColdFusion Data source
After a database is created it is necessary to create a link between the database and the
web. This link is achieved by using ODBC or open database connectivity. By
establishing a link it is possible to create a pipeline in and out of the database. The name
of the datasource and the driver that is required to drive the database is defined in the
ColdFusion Administrator. The Administrator automatically sets up the connection with
the database and makes the data available for querying.
Windows
Platform
Microsoft SQL Server, Microsoft Access, Microsoft FoxPro,
Oracle, Borland dBase
Solaris DB2, dBase, Informix, Ingress, Sybase SQL Server, Oracle
41
Figure 5.5 Setting up data source in ColdFusion
5.6.3 Templates
ColdFusion templates determine the layout and the content of what the user actually sees
in the browser when a ColdFusion page is viewed. Templates have the .cfm extension
rather than the .html extension. Templates can be created editors such as notepad or vi or
it can be constructed using ColdFusion Studio. A sample template is as shown in the
figure 5.6. The template has HTML tags [6], which are interspersed with ColdFusion tags.
A template is recognized by the .cfm extension and when the ColdFusion tags are
encountered the ColdFusion Server takes over and processes the tags and sends the
output in a standard HTML format, which can be viewed in the browser.
42
<CFQUERY NAME = "get_data" DATASOURCE = "XYZ">Select * from data</CFQUERY><HTML><HEAD> <TITLE>Welcome to this Page</TITLE></HEAD>
<BODY BGCOLOR = "#FFFFFF"><H1> This page displays some data</H1>
<CFOUTPUT QUERY = "get_data"><P> Name : #Name#<P> Page : #Page#<P>No_Of_Hits: #Hits#</CFOUTPUT>
</BODY></HTML>
Figure5.6 ColdFusion Template
5.6.4 The Query and the Output Element
The query element (<CFQUERY >) is nothing but a set of instructions that is sent to the
database. The query is a simple way of performing a simple search of records. Queries
instruct ColdFusion about which datasource is to be used, and what function is to be
performed on the table’s data.
The output element lies between the <CFOUTPUT> tags. It is similar to that of HTML
tags but it contains variables enclosed within hash marks like “#Variable_name#”. A
variable is a symbol or a name that stand for values returned by ColdFusion query. The
hash marks are used to indicate that the texts within the hash marks are variables. The
43
output element determines the way in which the output is displayed to the user. The
output element is executed for every record that is returned by the CFQUERY tag. The
tags are synonymous to input and output statements in a programming language
environment.
5.7 Common Tags Used In ColdFusion
< CFIF >, < CFELSE >, < CFSWITCH >
Controls application-processing flow with conditional logic.
< CFSET >
Declares a variable and its values.
< CFOUTPUT >
Determines which data is displayed on the page, and how it will be
presented.
< CFQUERY >
Passes SQL (Sequential Query Language) to open database sources, and
returns a result for processing, usually through use of the <CFOUTPUT>
tag.
< CFMAIL >
Allows ColdFusion applications to generate messages to an SMTP server
for distribution.
< CFTABLE >, < CFCOL >
Creates either HTML or preformatted text tables.
44
<CFAPPLICATION>
Defines application name and activates client variables.
<CFFILE>
Performs typical file handling tasks within the ColdFusion Application.
<CFFORM>
Builds an input form and performs client-side input validation.
<CFINCLUDE>
Embeds references to ColdFusion Pages
<CFINSERT>
Inserts records in an ODDBC datasource.
<CFUPDATE>
Updates rows in a database datasource
5.8 Client and Session Management
As a user moves from one page to another in an application environment, it is highly
possible that the variable values that the user processes do not get passed on to the
consecutive pages. Variable values are specific to a page on which they are displayed and
the HTTP protocol that drives the web does not provide any way to save these values.
This is called Internet statelessness. In order to have an interactive web interface,
ColdFusion overcomes statelessness by using four variables that are given below
• Application Variables
• Session Variables
• Client Variables
• Cookies
45
5.8.1 Application Variables
The application variables reside in the application.cfm file. The application.cfm
file is a special template file [4] that resides along with the other application
templates and folders. The application.cfm files defines a set of parameters to be
used throughout the entire application including the following
i. Name of the application
ii. Default variable values
iii. Custom Error pages
iv. Data Sources
v. Default Style settings
vi. Security Settings
By creating an application.cfm file it is possible to define a set of values that can be used
by any template that resides in the same folder as the application.cfm file. For example, if
all the templates in a particular folder use the same datasource, it can be defined in the
application.cfm file so that if the datasource changes later, then the datasource name has
to be changed only once rather than in every template. The application.cfm file is active
for the entire application and it expires only when the user closes the application or when
the server is restarted. The application variables can be defined in the ColdFusion
Administrator.
5.8.2 Session Variables
46
Session variables are active as long as the user session is active. When a user leaves the
web site the session variables no longer retain the values. They may be set to expire after
a certain time. Session variable are enabled by setting the SESSIONMANAGEMENT =
“yes” in the application.cfm file
5.8.3 Client variables
Client variables are used when it is necessary to store values that are specific to a client
such as user preferences. They remain active every time the client visits the site. Client
variables are enabled by setting CLIENTMANAGEMENT = “yes” in application.cfm
file.
5.8.4 Cookies
A server, when returning an HTTP object to a client, may also send a piece of state
information, which the client will store. Included in that state object is a description of
the range of URLs for which that state is valid. Any future HTTP requests made by the
client, which fall in that range will include a transmittal of the current value of the state
object from the client, back to the server. The state object is called a cookie.
This simple mechanism provides a powerful new tool, which enables a host of new types
of applications to be written for web-based environments. Shopping applications for
example can store information about the currently selected items and free the client from
retyping a user-id on next connection. Cookies retain their values as long as the cookie
remains on the client’s machine or until the client expires. Cookie variables are enabled
by using the <CFCOOKIE> tag.
47
Chapter 6
Architecture of Data Mart
6.1 Steps involved in creating data mart
Set up a webServer
Install ColdFusionserver
and ColdfusionStudio
Setup adatabase
Establish adatasource
I.e.Link databaseand ColdFusion
CreateColdFusiontemplates
Execute templatesand Obtain
Results
Figure 6.1 Steps Involved in creating datamart
The various steps involved in creating the data mart are shown in the figure 6.1. The
Microsoft Internet Information Server is installed to support web to database transaction.
Once the web server is setup ColdFusion Server Enterprise version 4.5.1 and ColdFusion
Studio version 4.5.1 is installed. A relational database base is developed using MS
Access. Tables are created using past and current data. ColdFusion templates that can
interact with the data and produce results are developed. The final output can be viewed
by means of a web Browser such as Internet Explorer or Netscape Navigator.
48
The data mart is designed to store information on the various components of the AGV,
current member details, sponsor details and other technical details that are relevant to the
user. The data are stored in the form of tables. The database is created as a shared access
folder so that it can be accessed and used all over the world. MS Access was used to
create the database tables. Once the database is created it is necessary to establish a link
in and out of the database so that the tables can be read and accessed. Defining a
datasource is done in the ColdFusion server administrator page. A typical definition is as
shown in the figure. A datasource name is defined and the path where the datasource
resides is defined. Timeout properties can be set such that the page expires after a certain
time. The database can be administered by providing security checks so that unauthorized
personnel cannot change the contents of the database. ColdFusion thus accounts for
security in database management.
Defining a datasource in ColdFusion Administrator
49
6.2. Schematic representation of the DataMart
Check ForUserName
andpassword
Log-Insuccessful
Selectchoice
Memberdetails
ViewExisting
members
Add newmember
Sponsordetails
Add newsponsor
Viewexisting
sponsors
SystemComponents
PowerSystems
MechanicalSystems
SafetySystems
VisionSystems
Technicaldetails
ViewPowerPoints
Upload fileson the server
UserAuthorization
page
View ExistingComponents
Log-InError
Failure ModeAnalysis
MechanicalSystems
SONARSystems
PowerSystems
VisionSystems
ChargingSystems
Figure 6.2 Components of DataMart
50
The data mart as the name implies is a collection of valuable information on a particular
subject that conveys useful information. The information that is stored in the data mart
can be classified as follows.
i. Major Subsystems Information
ii. Team Member Information
iii. Sponsorer Information
iv. PFEMA Analysis
v. Technical information
6.2.1 Major Subsystems
The major subsystems are analyzed with respect to the following subsystems
i. Vision System
ii. Mechanical System
iii. Power System
iv. Safety System
The database contains the following tables. A snapshot of the tables is given to conserve
space. The snapshot is representative of the entire table.
Vision System
PartName Vendor Quantity cost Fish Eye Lens Nikon Inc 1 $475.00
51
PartName Vendor Quantity cost Frame Grabber EPIX Inc 1 $395.00 ISCAN Iscan Inc. 1 $9,000.00 JVC CAMERAS JVC Inc 2 $400.00 Video Switch FSR Inc 1 $2,000.00
Mechanical System
Partname Vendor Price uses Bearing Blocks Cincinnati belting $126.25
Gearbox Cincinnati Belting $340.00 To power the wheels Shaft Couplings Grainger $24.00
Power System
partname Vendor Price Quantity Cables $0.00 8 Insulators Michael tire $15.00 10 Inverter Tripilte $600.00 1
Safety Systems
Type Vendor Price Uses
Remote E-Stop Futaba Inc $520.00 Can stop the robot vehicle at a distance of 65 feet Switches Homedepot $15.00 Disconnect power supply
6.2.2 Team member information
Team Member Information
Firstname Lastname address telephone city state zip email Rahul Dhareshwar 2900 vine
Street 5139613517 cincinnati OH 45220 [email protected]
Sachin Modi 618 Probasco Street
5132817956 Cincinnati OH 45220 [email protected]
Vidya Sagar 2930 morgans
5135563891 cincinnati OH 45220 [email protected]
Mayank Saxena 2920 Scioto
5135567959 Cincinnati OH 45220 [email protected]
52
Firstname Lastname address telephone city state zip email Street
6.2.3 Sponsor Details
Sponsorer Information
FirstName LastName Middlename Address Phone City State amount Year Ernest Hall L 508 Rhodes
Hall 5135562730 Cincinnati OH $300 2001
Rob Hicks UC Center For Robotics
5135562730 Cincinnati OH $20 2001
Kartikeyan Kumaraguru UC Center for Robotics
Cincinnati OH $150 2001
6.2.4 PFEMA Analysis
The Potential failure mode and effects analysis (PFEMA) is to track the system
performance and evaluate the causes for failure. The PFEMA analysis section is based on
the following sub systems outlined below:
i. Vision System
ii. Power System
iii. Mechanical System
iv. Sonar System
v. Charging System
53
Failure modes in Vision System
ID System Unit Failure_mode potential_effects potential_causes Solutions 200 Vision Vision
Threshold No points Picked
Robot goes off-track
threshold limit not reached
Adjust threshold
201 Vision CCD No points Picked
Robot goes off track
CCD camera not working
Check connections with reference to the schematic diagram
202 Vision ISCAN co-ordinates not available
cannot be calibrated
ISCAN tracker is not functioning
Check the circuit and connections
203 Vision Switching unit
Camera switch fails
Robot goes-off track
Galil Board controller not working
Reset the Galil board
Failure Modes in Power System
ID Unit Failure_Mode Potential_Effects Potential_Causes Solutions System 0 Power 1 Battery Low Battery
Power Robot stops or computer reboots
Battery down Check voltage by the voltmeter which is mounted on the side panel
Power
2 Fuse No Power Camera & ISCAN do not work
Fuse is blown check and replace fuse
Power
3 Invertor No power Computer does not Power on
Looses Connection
Check connection at the invertor
Power
4 SONAR motor
No main power SONAR motor does not start
battery down Check the battery voltage
Power
Failure Modes in Mechanical System
ID System Unit Failure_mode Potential_effects Potential_causes Solutions 100 Mechanical Wheel Wheel rotating
freely Shaft may be damaged
Shaft key missing Remove the feel and place appropriate shaft key
101 Mechanical Fitting Wheels jammed
Robot does not move
A bulged shaft due to improper fit
Filing or grounding the shaft and the inner hub of the wheel is necessary
102 Mechanical Servo Motor
Servo motor turns very slowly
Robot does not move
Amplifier output is insufficient
Re-adjust amplifier gain value and PID
54
ID System Unit Failure_mode Potential_effects Potential_causes Solutions value
103 Mechanical Shaft Keys
Shaft moving out of its place
Shaft gets disengaged from the shaft coupling
Robot stops The shaft keys must be tightened at regular intervals with the allen screw
Failure Modes in Sonar System
ID System Unit Failure_mode Potential_effects potential_causes Solutions 11 SONAR PID No intermittent
Stops SONAR doesn't bring in proper feedback
improper SONAR amplifier output
Adjust the PID valves
12 SONAR Polakit Error in calculating the obstacle distance
Robot hits obstacle Sufficient reflections not received from the obstacle
Adjust parameters in polakit program
13 SONAR Sonar Wire
Failure to initiate change in steering
Robot hits obstacle open circuit between CPU and polaroid board
secure connections
14 SONAR Polaroid Failure to detect obstacle
Robot hits obstacle Polaroid board may not be working
Secure connections,refer polaroid manual
15 SONAR Program Failure to detect Obstacles
Robot hits obstacle polakit program values not adjusted
Reset parameters in the program
Failure Modes in Charging System
ID System Unit Failure_mode potential_effects potential_causes solutions 300 charging charger batteries does
not charge No power to the entire system
circuit not closed Check to see the if main switch is on and the emergency stop is in its off position
6.2.5 Technical Information
The technical Information page is for uploading files to the server. It also has links to the
information available on the robotics home page.
55
6. 3 Results
The data provided above are stored in tables across the database. It is possible to obtain
the required data by selecting the appropriate choices as and when required. The data
mart is available online at http://127..137.16.85/public_html/index.cfm. To ensure that
only valid users are accessing the data, the data mart is password protected .The index
page is as shown below.
Login Screen
Once the user is successfully logged on the user is given taken to a menu as shown in
screen below to access any information required.
56
Components of Data Mart
The user can choose to view any component based on his/her choice. The outputs for
various selections are shown below:
Sponsor information
Current sponsorers
57
Adding new sponsorers to the database
Major subsystem Information
Subsystems Menu
58
Screen view showing Vision System Components
Team Member Information
Current Member Information
59
Add New Team Members
Potential Failure Mode Analysis
View Showing PFEMA for a Mechanical System
60
Technical details
This provides the interface for uploading files to the server using a web browser. It can be
also used to view the technical information available online at www.robotics.uc.edu
Technical Information Page
The data-mart is a valuable and a powerful source of information. Since a data-mart can
be used to store data about every component and it provides a very friendly user interface
it is possible to use extend the functionality of a data-mart from an information sharing
tool to a decision making tool. The information stored in a data mart is not only valuable
but also it is efficient because it is possible for many users to connect to and gain
information. It is a single source of integrated data and hence redundancies are
eliminated. The data mart also eliminates the need for carrying additional storage devices
thus reducing inventory. However, to stay well informed and to provide valuable
information at all times the database needs to be updated from time to time.
61
Chapter 7
7.1 Conclusions and Recommendations
A datamart is valuable in terms of information sharing and also in eliminating time
delays. Datamart is not only about storing data in the form of texts and numbers but
information can be stored on just about anything ranging from images, cliparts etc.
However the current database MS Access does not support databases of larger memory.
So it is possible to use sophisticated relational management systems like Oracle to
achieve this.
Since data marts need to be updated at regular intervals to stay current, care should be
taken to ensure that data redundancy is avoided at all times. It is possible to add user
interfaces in the existing datamart application for inserting, deleting and updating current
database information. This no doubt will be a very useful tool. It might also lead to loss
of information if users do not understand the implications of such data manipulation.
Thus, it is becomes necessary to ensure that database data are not manipulated except by
the administrator or by the database manager. Stringent validation techniques can be
implemented to ensure that there are no violations to this rule.
62
Bibliography
[1] http://reeses.mie.uc.edu/IGRC2001/DesignReport/DesignReport2001.doc
[2] Carlos Coronel, Peter Rob, “Database Systems Design, Implementation and
management “ Ch 14, 2000, Course technology, MA, 2000.
[3] www.allaire.com
[4] Charles Mohnike, “Teach yourself ColdFusion” pp 111-210,Sams publishing, IN,
2000.
[5] Sampath Kanagarju “Online fault Diagnostic System for an Autonomous guide
[6] Deitel and Deitel “Internet & World Wide Web How to Program”, Prentice hall, New Jersey, 2000.
[7] Fred R. McFadden, Jeffrey A. Hoffer, Mary B. Prescott, Modern Database
Management, ch3, Addison-Wesley, New York, 1999
63
Appendix A
Templates Related to ColdFusion Implementation
ColdFusion Templates for creation of Datamart for
Bearcat III
Application.cfm File
<html>
<head>
<title>Untitled</title>
</head>
<body><!--- CREATE A NEW NAME FOR THE APPLICATION --->
<CFAPPLICATION NAME="RR"
SESSIONMANAGEMENT ="Yes"
SESSIONTIMEOUT=#CreateTimeSpan(0,0,10,0)#>
<!---DEFINE A DEFAULT DATABASE --->
<CFSET ODBC_DATASOURCE ="Thesisdata">
<!---DEFINE A DEFAULT BACKGROUND COLOR --->
<CFSET BG_COLOR = "00AAFF">
<!---DEFINE A DEFAULT FONT --->
<CFSET Font_Face = "Helvetica">
</body>
</html>
64
Creating Templates for displaying title and welcome information
Header.cfm
html>
<head>
<title>Header</title>
</head>
<body>
<center>
<FONT SIZE = "+2" color="red">Welcome to the University of Cincinnati's Center for Robotics Research
Thank You for accessing our online Data Mart.
</FONT>
</center>
</body>
</html>
Displaying Footer for every .cfm file
Footer.cfm
<html>
<head>
<title>Footer</title>
</head>
<body>
<H3><CENTER>This Site is for UC Robotics Team Members only.
Any unauthorized use is prohibited.
65
For more information on the UC Robot Team Please visit
www.robotics.uc.edu</H3>
</CENTER>
</body>
</html>
Welcome page for new users and returning users
Index.cfm
<title>Welcome Page</title>
</head>
<body>
<H1>
<CFINCLUDE template="header.cfm">
</H1>
Please type your user name and password and then hit "submit"
<BODY BGCOLOR = "#BG_COLOR#">
<form method="POST" action=logon.cfm>
<p>USER NAME :<input type="Text" name ="Uname" size = "10"></p>
<p>PASSWORD : <input type="Password" name="Password" size="7"></p>
<p><input type="submit" value="Submit" name="B1">
<input type="reset" value="Clear" name="B2"></p>
<p> </p>
</form>
66
<CFINCLUDE template="footer.cfm">
</body>
</html>
Checking for user authentication
Logon.cfm
<CFQUERY NAME ="get_name" DATASOURCE = "Thesisdata">
select username FROM check
</CFQUERY>
<CFQUERY NAME = "get_pass" DATASOURCE = "Thesisdata">
Select Password FROM Check
</CFQUERY>
<html>
<head>
</head>
<body>
<CFINCLUDE TEMPLATE = "header.cfm">
<CFIF form.password IS NOT get_pass.password>
<Center>Error processing request
Try logging in again
<a href="index.cfm">Back to the Main Page</a>
</CENTER>
</CFIF>
67
<CFIF FORM.uname IS not get_name.username>
<Center>Error processing request
Try logging in again
<a href="index.cfm">Back to the Main Page</a>
</CFIF>
</CENTER>
<CFIF form.password IS get_pass.password>
<CFIF form.uname IS get_name.username>
<CENTER>You are successfully logged on.Thanks for visiting us.</CENTER>
<center>Select a choice from below </center><BR><P></P>
<TABLE BORDER=5 align = "CENTER" bgcolor="#BG_COLOR#">
<TR>
<TD align= "CENTER">Options available </TD>
<TD align ="CENTER"> Your Choice </TD>
</TR>
<TR>
<TD align ="center"><B>Bearcat III System information</B> </TD>
<TD align ="center"> <a href="system.cfm">All Systems</a><BR></TD>
</TR>
<TR>
<TD align ="center"><B>Team Member Information</B> </TD>
<TD align ="center"><a href="member.cfm">Team Members</a><BR></TD>
68
</TR>
<TR>
<TD align ="center"><B>Technical Information</B></TD>
<TD align ="center"><a href="ppt.cfm">Technical details</a></TD>
</TR>
<TR>
<TD align ="center"><B>Sponsor List</B></TD>
<TD align ="center"><a href="Spl.cfm">Sponsor List</a></TD>
</TR>
<TR>
<TD align ="center"><B>Failure mode analysis</B></TD>
<TD align ="center"><a href="pfm.cfm">PFEMA Analysis</a></TD>
</TR>
</TABLE>
</CFIF>
</CFIF>
<p> </p>
<CFINCLUDE TEMPLATE ="footer.cfm">
</body>
</html>
69
Choice 1: Choose major Subsystems for display
System.cfm
<CFQUERY NAME ="get_name" DATASOURCE = "Thesisdata">
select username FROM check
</CFQUERY>
<CFQUERY NAME = "get_pass" DATASOURCE = "Thesisdata">
Select Password FROM Check
</CFQUERY>
<html>
<head>
</head>
<body>
<CFINCLUDE TEMPLATE = "header.cfm">
<CFIF form.password IS NOT get_pass.password>
<Center>Error processing request
Try logging in again
<a href="index.cfm">Back to the Main Page</a>
</CENTER>
</CFIF>
<CFIF FORM.uname IS not get_name.username>
<Center>Error processing request
Try logging in again
<a href="index.cfm">Back to the Main Page</a>
70
</CFIF>
</CENTER>
<CFIF form.password IS get_pass.password>
<CFIF form.uname IS get_name.username>
<CENTER>You are successfully logged on.Thanks for visiting us.</CENTER>
<center>Select a choice from below </center><BR><P></P>
<TABLE BORDER=5 align = "CENTER" bgcolor="#BG_COLOR#">
<TR>
<TD align= "CENTER">Options available </TD>
<TD align ="CENTER"> Your Choice </TD>
</TR>
<TR>
<TD align ="center"><B>Bearcat III System information</B> </TD>
<TD align ="center"><a href="system.cfm">All Systems</a><BR></TD>
</TR>
<TR>
<TD align ="center"><B>Team Member Information</B> </TD>
<TD align ="center"><a href="member.cfm">Team Members</a><BR></TD>
</TR>
<TR>
<TD align ="center"><B>Technical Information</B></TD>
71
<TD align ="center"><a href="ppt.cfm">Technical details</a></TD>
</TR>
<TR>
<TD align ="center"><B>Sponsor List</B></TD>
<TD align ="center"><a href="Spl.cfm">Sponsor List</a></TD>
</TR>
<TR>
<TD align ="center"><B>Failure mode analysis</B></TD>
<TD align ="center"><a href="pfm.cfm">PFEMA Analysis</a></TD>
</TR>
</TABLE>
</CFIF>
</CFIF>
<p> </p>
<CFINCLUDE TEMPLATE ="footer.cfm">
</body>
</html>
Display System Information
Selection.cfm
<html>
<CFQUERY name="name1" datasource="Thesisdata">
72
select partname,vendor,cost,quantity from vision
</cfquery>
<CFQUERY name="name2" datasource="Thesisdata">
Select partname,vendor,price,quantity from Power
</CFQUERY>
<CFQUERY name ="name3" datasource="Thesisdata">
Select type,vendor,price,uses from safety
</CFQUERY>
<CFQUERY name ="name4" datasource="Thesisdata">
Select partname,vendor,price,uses from mechanical
</CFQUERY>
</head>
<title>Detail of various sytems</title>
<body>
<CFINCLUDE template = "header.cfm">
<CFIF form.system IS "VisionSystem">
<CFTABLE query="Name1" startrow = "1" colspacing ="1" colheaders >
<cfcol header ="<B>PartName</B>" width ="15" text ="#Partname#">
<cfcol header ="<B>Vendor</B>" width ="15" text ="#Vendor#">
<cfcol header ="<B>Quantity</B>" width ="25" text ="#Quantity#">
<cfcol header ="<B>Cost</B>" width ="15" text ="#Cost#">
</CFTABLE>
73
</CFIF>
<CFIF form.system IS "PowerSystem">
<CFTABLE query="Name2" startrow = "1" colspacing ="1" colheaders >
<cfcol header ="<B>PartName</B>" width ="15" text ="#Partname#">
<cfcol header ="<B>Vendor</B>" width ="15" text ="#Vendor#">
<cfcol header ="<B>Quantity</B>" width ="25" text ="#Quantity#">
<cfcol header ="<B>Cost</B>" width ="15" text ="#Price#">
</CFTABLE>
</CFIF>
<CFIF form.system IS "SafetySystem">
<CFTABLE query="Name3" startrow = "1" colspacing ="1" colheaders >
<cfcol header ="<B>Type</B>" width ="15" text ="#Type#">
<cfcol header ="<B>Vendor</B>" width ="15" text ="#Vendor#">
<cfcol header ="<B>Uses</B>" width ="30" text ="#Uses#">
<cfcol header ="<B>Price</B>" width ="15" text ="#Price#">
</CFTABLE>
</CFIF>
<CFIF form.system IS "MechanicalSystem">
<CFTABLE query="Name4" startrow = "1" colspacing ="1" colheaders >
<cfcol header ="<B>PartName</B>" width ="15" text ="#Partname#">
74
<cfcol header ="<B>Vendor</B>" width ="30" text ="#Vendor#">
<cfcol header ="<B>Price</B>" width ="10" text ="#Price#">
<cfcol header ="<B>Uses</B>" width ="25" text ="#Uses#">
</CFTABLE>
</CFIF>
<CFINCLUDE template = "footer.cfm">
</body>
</html>
Choice: 2 Choose Team member information
Team Member Selection Menu
<CFQUERY Name= "newname" DATASOURCE = "Thesisdata">
Select Firstname from membe order by Firstname
</CFQUERY>
<html>
<head>
<title>Member Information Page</title>
</head>
<body bgcolor = "pink">
<CFINCLUDE template ="header.cfm">
<CENTER><B><H2>Welcome to the Member Information page</H2></B></CENTER>
<FORM ACTION = "dismem.cfm" Method = "post">
<Table align = "center" Bgcolor ="silver">
75
<TR>
<TD Align ="right"> Member Firstname</TD>
<TD><SELECT NAME ="Firstname" size = 1>
<option Selected value ="ANY">ANY
<Cfoutput query="newname">
<OPTION VALUE="#newname.firstname#">#Firstname#
</CFoutput>
</select>
</TD>
</TR>
<TR>
<TD Align ="right" valign="middle">
<INPUT TYPE ="submit" value ="search">
</FORM>
</TD>
<TD align ="right" valign ="middle">
<FORM ACTION ="newmem.cfm" value = "add new">
<INPUT TYPE ="submit" value ="add new">
</FORM>
</TD>
</TR>
</TABLE>
<CFINCLUDE template="footer.cfm">
76
</body>
</html>
Add new members
Newmem.cfm
<html>
<head>
<title>New Member Addition page</title>
</head>
<body>
<CFINCLUDE TEMPLATE = "header.cfm">
<Form action = "memsuccess.cfm" method ="post">
<CENTER> <H1>New Member Data Entry</H1></CENTER>
<CENTER>Please do fill in all the Fields</CENTER>
<INPUT type ="hidden" Name = "Firstname_required" value ="You must enter a firstname">
<INPUT type ="hidden" Name = "Lastname_required" value ="You must enter a Lastname">
<p>First Name: <input type="text" name="Firstname" size="20"></p>
<p>Last Name: <input type="text" name="Lastname" size="20"></p>
<p>Address : <input type="text" name="address" size="20"></p>
<p>Telephone : <input type="text" name="Telephone" size="20"></p>
77
<p>City : <input type="text" name="City" size="20"></p>
<p>State :<select size="1" name="State">
<option selected>OH</option>
<option>NY</option>
<option>NJ</option>
<option>KY</option>
<option>IN</option>
</select></p>
<p>ZIP : <input type="text" name="zip" size="20"></p>
<p>email
:<input type="text" name="email" size="40"></p>
<Input type = "submit" Value="Add Record">
</FORM>
<CFINCLUDE TEMPLATE = "footer.cfm">
</body>
</html>
New Member Addition Successful
Memsuccess.cfm
<html>
<head>
<title>Add New Members</title>
78
</head>
<CFINSERT datasource="Thesisdata"
TABLENAME = "membe"
FORMFIELDS = "FirstName,LastName,Address,Telephone,City,State,Zip,email">
<body>
<CFINCLUDE TEMPLATE = "header.cfm">
Your data is successfully added to the database.
<CFOUTPUT>
FIRSTNAME : #Firstname# <BR>
LASTNAME : #Lastname# <BR>
ADDRESS : #address# <BR>
TELEPHONE : #telephone# <BR>
CITY : #City# <BR>
STATE :#State# <BR>
ZIP : #Zip# <BR>
EMAIL:#email# <BR>
</CFOUTPUT>
<A href="First.cfm">Go to Main page </A>
<CFINCLUDE TEMPLATE ="footer.cfm">
</body>
</html>
79
Display Current Member Information
Dismem.cfm
<html>
<CFQUERY NAME = "SearchMember" DATASOURCE = "thesisdata">
Select FirstName,Lastname,address,telephone,city,state,zip,email
from membe
where 0=0
<CFIF #form.Firstname# IS NOT "ANY">
AND membe.firstname like '%#form.Firstname#%'
</CFIF>
</CFQUERY>
<head>
<title>Member Information</title>
</head>
<CFINCLUDE template ="header.cfm">
<body bgcolor ="pink">
<H1>
<CENTER><B>Member Search results</B></CENTER>
</H1>
<BR>
<CFTABLE query="SearchMember" startrow = "1" colspacing ="1" colheaders>
<cfcol header ="<B>Firstname</B>" width ="15" text ="#Firstname#">
80
<cfcol header ="<B>Lastname</B>" width ="15" text ="#Lastname#">
<cfcol header ="<B>email</B>" width ="25" text ="#email#">
<cfcol header ="<B>telephone</B>" width ="15" text ="#Telephone#">
<cfcol header ="<B>address</B>" width ="20" text ="#address#">
<cfcol header ="<B>city</B>" width ="15" text ="#city#">
<cfcol header ="<B>state</B>" width ="5" text ="#state#">
<cfcol header ="<B>zip</B>" width ="5" text ="#zip#">
</CFTABLE>
<CFIF #searchmember.recordcount# IS 0>
<h2> No records were found</h2>
<CFELSE>
<CFOUTPUT>Your search returned #searchmember.recordcount# record(s).</CFOUTPUT>
</CFIF>
<a href = "member.cfm">Another search</a>
<CFINCLUDE template ="footer.cfm">
</body>
</html>
Choice 3: Technical Details menu page
ppt.cfm
<html>
<head>
81
<title>Welcome to File Uploading feature</title>
</head>
<body>
<CFINCLUDE TEMPLATE ="header.cfm">
<H4>Enter the file path if you wish to upload files to the server
</H4><HR>
<FORM ACTION ="upload_action.cfm" ENCTYPE = "multipart/form-data" METHOD = "post">
Please enter the path name of the file to be uploaded or use the "Browse"
button to find it.
<INPUT TYPE=FILE NAME = "FileName" SIZE = "50"><P>
<INPUT TYPE= SUBMIT value="Upload">
</P>
</FORM>
<BR>
IF you are not interested in uploading files Check out the
power points.
<P>
<TABLE BORDER = 5 background="BG_COLOR">
<TR>
<TD>SYSTEMS </TD>
<TD>POWER POINT</TD>
82
</TR>
<TR>
<TD align ="center"><B>GPS</B> </TD>
<TD align ="center"><a href="http://reeses.mie.uc.edu/IGRC2001/MotorolaGPS/">GPS</a><BR></TD>
</TR>
<TR>
<TD align ="center"><B>Sonar</B> </TD>
<TD align ="center"><a href="http://reeses.mie.uc.edu/IGRC2001/PoloraidSonar/">Sonar</a><BR></TD>
</TR>
<TR>
<TD align ="center"><B>Laser Scanner</B></TD>
<TD align="center"><a href="http://reeses.mie.uc.edu/IGRC2001/SICKLaserScanner/">Laser Scanner</a></TD>
</TR>
<TR>
<TD align ="center"><B>Wireless Modem</B></TD>
<TD align ="center"><a href="http://reeses.mie.uc.edu/IGRC2001/FreewaveWirelessModems/">Wireless Modem</a></TD>
</TR>
</TABLE>
<CFINCLUDE TEMPLATE ="footer.cfm">
</P>
83
</body>
</html>
Upload files to the server
Upload_action.cfm
<html>
<head>
<title>The Results of File Upload</title>
</head>
<body>
<CFFILE ACTION= "Upload" FILEFIELD="Filename"
DESTINATION = "c:\upload" NAMECONFLICT = "makeunique">
<H2>The results of your File upload</H2>
your file is uploaded to the server...Thanks.
<A HREF= "index.cfm">BACK</A>.
</body>
</html>
choice 4: Sponsor Menu page
Spl.cfm
<CFQUERY Name= "sponsorname" DATASOURCE = "Thesisdata">
84
Select Firstname from sponsor order by Firstname
</CFQUERY>
<html>
<head>
<title>Sponsor Information Page</title>
</head>
<body bgcolor = "lightblue">
<CFINCLUDE template ="header.cfm">
<CENTER><B><H2>Welcome to the Sponsor Information page</H2></B></CENTER>
<FORM ACTION = "disspon.cfm" Method = "post">
<Table align = "center" Bgcolor ="silver">
<TR>
<TD Align ="right"> Firstname</TD>
<TD><SELECT NAME ="Firstname" size = 1>
<option Selected value ="ANY">ANY
<Cfoutput query="sponsorname">
<OPTION VALUE="#sponsorname.firstname#">#Firstname#
</CFoutput>
</select>
</TD>
</TR>
85
<TR>
<TD Align ="right" valign="middle">
<INPUT TYPE ="submit" value ="search">
</FORM>
</TD>
<TD align ="right" valign ="middle">
<FORM ACTION ="newspon.cfm" value = "add new">
<INPUT TYPE ="submit" value ="add new">
</FORM>
</TD>
</TR>
</TABLE>
<CFINCLUDE template="footer.cfm">
</body>
</html>
New sponsorer addition
Newspon.cfm
html>
<head>
<title>New Sponsor addition</title>
</head>
<body bgcolor = "lightgreen">
86
<CFINCLUDE TEMPLATE = "header.cfm">
<FORM ACTION = "sponsorsuccess.cfm" METHOD = "post">
<CENTER> <H3>New Sponsor Data Entry</H3></CENTER>
<CENTER>Please do fill in all the Fields</CENTER>
<INPUT type ="hidden" Name = "Firstname_required" value ="You must enter a firstname">
<INPUT type ="hidden" Name = "Lastname_required" value ="You must enter a Lastname">
<p>First Name: <input type="text" name="Firstname" size="20">
Last Name: <input type="text" name="lastname" size="20"></p>
<p>Middle Name: <input type="text" name="middlename" size="20">
Address : <input type="text" name="address" size="20"></p>
<p>Phone : <input type="text" name="phone" size="20">
City : <input type="text" name="City" size="20"></p>
<p>State : <input type="text" name="State" size="20">
Amount : <input type="text" name="Amount" size="20"></p>
<p>Year : <input type="text" name="year" size="20">
<input type="submit" value="Submit" name="add">
<input type="reset" value="Reset" name="reset"></p>
</FORM>
<CFINCLUDE TEMPLATE = "footer.cfm">
</body>
</html>
87
New Sponsorer successfully added
sponsorsuccess.cfm
<html>
<head>
<title>Untitled</title>
</head>
<CFINSERT datasource="Thesisdata"
TABLENAME = "sponsor"
FORMFIELDS = "FirstName,LastName,middlename,Address,phone,City,State,amount,Year">
<body>
<CFINCLUDE TEMPLATE = "header.cfm">
Your data is successfully added to the database.<BR>
<CFOUTPUT>
FIRSTNAME : #Firstname# <BR>
LASTNAME : #Lastname# <BR>
MIDDLENAME : #Middlename# <BR>
ADDRESS : #Address# <BR>
TELEPHONE : #phone# <BR>
CITY : #City# <BR>
STATE :#State# <BR>
AMOUNT : #Amount# <BR>
YEAR : #Year# <BR>
88
</CFOUTPUT>
<CFINCLUDE TEMPLATE ="footer.cfm">
You may use the back browser button to view a new record.
</body>
</html>
View existing sponsorers
Disspon.cfm
<html>
<CFQUERY NAME = "SearchSponsor" DATASOURCE = "thesisdata">
Select FirstName,Lastname,middlename,address,phone,city,state,amount,year
from Sponsor
where 0=0
<CFIF #form.Firstname# IS NOT "ANY">
AND sponsor.firstname like '%#form.Firstname#%'
</CFIF>
</CFQUERY>
<head>
<title>Sponsor Information</title>
</head>
89
<CFINCLUDE template ="header.cfm">
<body bgcolor ="lightblue">
<H1>
<CENTER><B>Sponsorer Search results</B></CENTER>
</H1>
<BR>
<CFTABLE query="SearchSponsor" startrow = "1" colspacing ="1" colheaders>
<cfcol header="<B>Firstname</B>" width ="15" text ="#Firstname#">
<cfcol header="<B>Lastname</B>" width ="15" text ="#Lastname#">
<cfcol header="<B>Middlename</B>" width ="15" text ="#Middlename#">
<cfcol header="<B>address</B>" width ="20" text ="#address#">
<cfcol header="<B>telephone</B>" width ="15" text ="#phone#">
<cfcol header ="<B>city</B>" width ="15" text ="#city#">
<cfcol header ="<B>state</B>" width ="5" text ="#state#">
<cfcol header ="<B>Amount</B>" width ="5" text ="#amount#">
<cfcol header ="<B>Year</B>" width ="20" text ="#Year#">
</CFTABLE>
<CFIF #searchsponsor.recordcount# IS 0>
<h2> No records were found</h2>
<CFELSE>
90
<CFOUTPUT>Your search returned #searchsponsor.recordcount# record(s).
</CFOUTPUT>
</CFIF>
<a href = "spl.cfm">Another search</a>
<CFINCLUDE template ="footer.cfm">
</body>
</html>
Choice 5: PFEMA Analysis
Choose the system, which needs to be analyzed
Pfm.cfm
<html>
<head>
<title>Failure Mode analysis</title>
</head>
<body>
<CFINCLUDE TEMPLATE ="header.cfm">
<FORM ACTION = "pfm_anal.cfm" METHOD = "post">
<p><select size="1" name="sys">
<option selected>Power</option>
<option>Mechanical</option>
<option>Sonar</option>
<option>Charging</option>
91
<option>vision</option>
</select></p>
<p><input type="submit" value="Submit" name="submit">
<input type="reset" value="Reset" name="reset"></p>
</FORM>
<CFINCLUDE TEMPLATE = "footer.cfm">
</body>
</html>
Display reasons for failure
Pfm_anal.cfm
<!--- Failure Mode analysis --->
<CFQUERY Name ="Pfailure" datasource = "Thesisdata">
select * from pow_failure
</CFQUERY>
<CFQUERY name ="sfailure" datasource = "thesisdata">
Select * from son_failure
</CFQUERY>
<CFQUERY name = "mfailure" datasource = "thesisdata">
Select * from mec_failure
</CFQUERY>
<CFQUERY name = "vfailure" datasource = "thesisdata">
Select * from vis_failure
92
</CFQUERY>
<CFQUERY name = "cfailure" datasource = "thesisdata">
Select * from cha_failure
</CFQUERY>
<HTML>
<Title> Welcome to Failure mode analysis</TITLE>
</HEAD>
<BODY>
<CFINCLUDE TEMPLATE = "Header.cfm">
<CFIF Form.sys is Pfailure.system>
You have chosen the Mechanical System
<CFTABLE query="pfailure" startrow = "1" colspacing ="1" colheaders>
<cfcol header ="<B>Unit</B>" width ="10" text ="#unit#">
<cfcol header ="<B>Failure Mode</B>" width ="40" text ="#failure_mode#">
<cfcol header ="<B>potential Effects</B>" width ="40" text ="#potential_effects#">
<cfcol header ="<B>Potential Causes</B>" width ="40" text ="#potential_causes#">
<cfcol header ="<B>Solutions</B>" width ="40" text ="#Solutions#">
</CFTABLE>
</CFIF>
<CFIF Form.sys is sfailure.system>
You have chosen the Sonar System
93
<CFTABLE query="sfailure" startrow = "1" colspacing ="1" colheaders>
<cfcol header ="<B>Unit</B>" width ="10" text ="#unit#">
<cfcol header ="<B>Failure Mode</B>" width ="40" text ="#failure_mode#">
<cfcol header ="<B>Potential effects</B>" width ="40" text ="#potential_effects#">
<cfcol header ="<B>Potential Causes</B>" width ="40" text ="#potential_causes#">
<cfcol header ="<B>Solutions</B>" width ="40" text ="#Solutions#">
</CFTABLE>
</CFIF>
<CFIF Form.sys is vfailure.system>
You have Chosen the Vision System
<CFTABLE query="vfailure" startrow = "1" colspacing ="1" colheaders>
<cfcol header ="<B>Unit</B>" width ="10" text ="#unit#">
<cfcol header ="<B>Failure Mode</B>" width ="40" text ="#failure_mode#">
<cfcol header ="<B>Potential Effects</B>" width ="40" text ="#potential_effects#">
<cfcol header ="<B>Potential Causes</B>" width ="40" text ="#potential_causes#">
<cfcol header ="<B>Solutions</B>" width ="40" text ="#Solutions#">
</CFTABLE>
</CFIF>
<CFIF Form.sys is cfailure.system>
94
You have chosen the Charging System
<CFTABLE query="cfailure" startrow = "1" colspacing ="1" colheaders>
<cfcol header ="<B>Unit</B>" width ="10" text ="#unit#">
<cfcol header ="<B>Failure Mode</B>" width ="40" text ="#failure_mode#">
<cfcol header ="<B>Potential Effects</B>" width ="40" text ="#potential_effects#">
<cfcol header ="<B>Potential Causes</B>" width ="40" text ="#potential_causes#">
<cfcol header ="<B>Solutions</B>" width ="40" text ="#Solutions#">
</CFTABLE>
</CFIF>
<CFIF Form.sys is mfailure.system>
You have Chosen the Mechanical System
<CFTABLE query="mfailure" startrow = "1" colspacing ="1" border = "2"colheaders>
<cfcol header ="<B>Unit</B>" width ="10" text ="#unit#">
<cfcol header ="<B>Failure Mode</B>" width ="40" text ="#failure_mode#">
<cfcol header ="<B>Potential Effects</B>" width ="40" text ="#potential_effects#">
<cfcol header ="<B>Potential Causes</B>" width ="40" text ="#potential_causes#">
<cfcol header ="<B>Solutions</B>" width ="40" text ="#Solutions#">
</CFTABLE>
</CFIF>
95
<CFINCLUDE TEMPLATE = "footer.cfm">
</BODY>
</HTML>