Publishing Dynamic Information

cortegesmashInternet και Εφαρμογές Web

10 Νοε 2013 (πριν από 3 χρόνια και 10 μήνες)

95 εμφανίσεις





Reference:
1.0
,
Issued

(
2
nd

September

2004
)

Publishing

Dynamic Information



A study of methods and three examples



The purpose of this project is to investigate technology that can publish, specifically,
dynamic
information, using a common interfa
ce
such as

a Web Browser. An important factor in doing this
project is to help the Author’s Cost Centre, the Data and IP Integration and Test Centre which is
灡牴=of=_q=b硡xt
K
=
=

Graham Butcher



Publishing Dynamic Information

Graham Butcher

ii

Contents

Chapter 1 : Introduction and Objectives

................................
................................
..............

1


1.1 Project and Work Objectives

................................
................................
....................

1

1.2 Document structure

................................
................................
...............................

1

1.3 Readership

................................
................................
................................
...........

2

1.4 Technical Assumptions

................................
................................
...........................

2

1.5 Stakeholders of the report, Motivati
on for writing and Business Case

.............................

2

Chapter 2 : Overview of available technologies and assessment of their suitability

.....................

4


2.1 Intro
duction

................................
................................
................................
.........

4

2.2 Web Server Side Coding Methods

................................
................................
............

4



2.2.1 CGI Type Solutions

................................
................................
................

4


2.2.2 Solutions using Apache, PHP and MySQL

................................
.................

6


2.2.3 Simple Microsoft/ASP type solutions using I
IS, PWS, MS Access

...................

8


2.3

Total Development Environment Methods

................................
...............................

11



2.3.1 Cold Fusion


Server and Development Environment

................................

11


2.3.2 Advanced MS solution
s using Visual Studio.NET

................................
......

18


2.3.3 Third Party, Software Development Tools

................................
..............

22


2.4 Enterprise Wide Systems

................................
................................
......................

24

2.5 Other topics relevant to producing Database driven Web Pages

................................
.

25



2.5.1 Client versus Server side scripting and programs

................................
......

25


2.5.2 Use of ODBC for connecting to databases

................................
...............

25


2.5.3 What’s Oracle’s contributions to the discussion?
................................
......

26


2.5.4 Security

................................
................................
.............................

26


2.6 A comparison of different solutions

................................
................................
........

26

Chapter 3
:
An overview of the three working ex
amples produced during the project

.................

29


3.1 Inventory and Calibration System


Concert

................................
.............................

29

3.2 Enhanced Lab Equipment, Asset Registe
r


UKIP

................................
......................

31

3.3 Enhanced Document Management System


XGH1

................................
..................

33

Chapter 4
:

Details of the first example, Concert Test Equipment & Cal
ibration Details solution

..

36


4.1 Requirements

................................
................................
................................
.....

36

4.2 Background.

................................
................................
................................
.......

36

4.3 Problem analysis

................................
................................
................................
.

37

4.4 Functional analysis of web
-
access to DBs

................................
................................

41

4.5 Practical advice

................................
................................
................................
...

41

4.6 Heuristics

................................
................................
................................
...........

41

4.7 High level development

................................
................................
........................

41

4.8 Scalability

................................
................................
................................
..........

41

4.9 Ease of maintenance

................................
................................
............................

41

4.10 Technologies v non
-
functional requirements

................................
..........................

41

4.11 Design and Devel
opment of Solution

................................
................................
....

41

Chapter 5
:

Details of second example, the UKIP Asset Register

................................
.............

43


5.1 Requirements

................................
................................
................................
.....

43

5.2 Background.

................................
................................
................................
.......

43

Publishing Dynamic Information

Graham Butcher

iii

5.3 Problem analysis

................................
................................
................................
.

43

5.4 Functional analysis of web
-
access to DBs

................................
................................

47

5.5 Practical advice

................................
................................
................................
...

47

5.6 Heuristics

................................
................................
................................
...........

47

5.7 High level developme
nt

................................
................................
........................

47

5.8 Scalability

................................
................................
................................
..........

47

5.9 Ease of maintenance

................................
................................
............................

47

5.10 Design and

Development of Solution

................................
................................
....

47

Chapter 6
:

Details of third example, Centre’s Documentation Management System

.................

50


6.1 Requirements

................................
................................
................................
.....

50

6.2 Background

................................
................................
................................
........

50

6.3 Problem analysis

................................
................................
................................
.

50

6.4

Design and Development

of Solution

................................
................................
.....

53

Chapter 7
:

Evaluation of Solutions

................................
................................
....................

55


7.1 Evaluation of solution 1

................................
................................
........................

55

7.2 Evaluation of solution 2

................................
................................
........................

55

7.3 Evaluation of solution 3

................................
................................
........................

56

Chapter 8
:

Recommendations

................................
................................
..........................

58


8.1 General Recommendations

................................
................................
...................

58

8.2 Recommendations from Solution 1

................................
................................
........

58

8.3 Recommend
ations from Solution 2
................................
................................
.........

58

8.4 Recommendations from Solution 3
................................
................................
.........

59

Chapter 9
:

Conclusions

................................
................................
................................
...

61


9.1 Conclusions from Solution 1

................................
................................
..................

61

9.2 Conclusions from Solution 2

................................
................................
..................

61

9.3 Conclusions from Solution 3

................................
................................
..................

61

9.4 Overall Conclusions

................................
................................
.............................

61



9.4.1 Use of Total Development Environments

................................
......................

61


9.4.2 Reliability and Robustness of Solutions Produced

................................
..........

62


9.4.3 Use of Skills Developed during the Project for the
benefit of the Test Centre……
62

Chapter 10
:

Acknowledgements

................................
................................
.......................

63

Chapter 11
:

References

................................
................................
................................
...

63

Chapter 12
:

Appendix A


Source Code for all Solutio
ns

................................
.......................

64

Chapter 13
:

Appendix B


Glossary

................................
................................
...................

64

Chapter 14
:

Appendix C


CodeCharge Product Feature Details

................................
............

66


Application Builder
................................
................................
................................
.....

66

Integrated Development Environment (IDE)

................................
................................
...

66

Form and Component Builders

................................
................................
.....................

66

Visual Query Builder

................................
................................
................................
...

67

Security Management/Role
-
based Access Control

................................
...........................

68

Support for Multiple Programming Languages

................................
...............................

68

Extensibility

................................
................................
................................
..............

68

Multiple Database Connections

................................
................................
...................

68

Microsoft FrontPage Integration

................................
................................
...................

68

Integration with Other Products

................................
................................
...................

69

Publishing Dynamic Information

Graham Butcher

iv

Extensive Database Support

................................
................................
........................

69

Application Templates (Solutions)

................................
................................
................

70

Custom Code and Actions

................................
................................
...........................

70

Code G
eneration Engine

................................
................................
.............................

71

Sample Databases

................................
................................
................................
.....

72

Chapter 15
:

Appendix D


ColdFusion Features

................................
................................
...

72

Figures

Figure 1
-

Example of an Application that uses CGI and Perl, Autosave Router Configurations

......

5

Figure 2
-

An example of WODA

................................
................................
.........................

6

Figure 3
-

Web interface for MySQL management and administration

................................
.......

8

Figure 4
-

An example of ASP 3.0

................................
................................
........................

9

Figure 5
-

MacroMedia's own description of ColdFusion plus the Price

................................
....

11

Figure 6
-

An Example of CFML

................................
................................
.........................

14

Figure 7
-

CFML page

................................
................................
................................
......

16

Figure 8
-

CFML with error

................................
................................
...............................

17

Figure 9
-

Microsoft's pricing for Visual Studio.Net

................................
..............................

18

Figure 10
-

Web Matrix, design window

................................
................................
.............

20

Figure 11
-

SQL Server control panel

................................
................................
.................

20

Figure 12
-

Details of

CodeCharge Studio's pricing s
tructure

................................
................

22

Figure 13
-

CodeCharge Studio IDE

................................
................................
...................

23

Figure 14
-

PHP
-

ASP.Net comparison table from ref
[5]

................................
......................

27

Figure 15
-

Author's comparison table

................................
................................
...............

28

Figure 17
-

View of Assets Table

................................
................................
.......................

30

Figure 18
-

Login, obtain password page

................................
................................
............

30

Figure 19
-

Simple search page of UKIP Inventory

................................
................................

31

Figure 20
-

Power searc
h of UKIP Inventory

................................
................................
........

32

Figure 21
-

Documentation System, database chooser

................................
.........................

33

Figure 22
-

Documentation System, search for "Peakflow
dos"

................................
..............

34

Figure 23
-

Show versions of "Peakflow DOS upgrade ..."

................................
.....................

34

Figure 24
-

Requested document retrieved to user

s web browser

................................
..........

35

Figure 25
-

Starting point, existing NVT database
-

MS access

................................
...............

37

Figure 26
-

E
xisting database, view of Assets

................................
................................
......

37

Figure 27
-

Flowchart showing choices made for first solution

................................
................

39

Figure 28


Features provided with Easily.co.uk Web hosting

................................
................

40

Figure 29


Original user interface to UKIP Inventory database

................................
..............

44

Figure 30
-

Analysis of tables and relationships in UKIP Inventory database

.............................

44

Figure 31
-

Flowchart showing decisions made for solution 2

................................
.................

46

Figure 32
-

Analysis of FileStore "back end" database

................................
..........................

51

Publishing Dynamic Information

Graham Butcher

v

Figure 33
-

Flowchart to show decisions made for solution 3

................................
..................

52

Figure 34
-

CodeCharge Query Builder, covering 3 tables

................................
.....................

53






Publishing Dynamic Information

Graham Butcher

vi

Copyright

© British Telecommunications plc,
2004
. All rights reserved.

BT maintains that all reasonable care and skill has been used in the compilation of this publication.

However, BT shall not be under any liability for loss or damage (including

consequential loss)
whatsoever or howsoever arising as a result of the use of this publication by the reader, his
servants, agents or any third party.

All third
-
party trademarks are hereby acknowledged.

Document history


Revision

Author

Date

Notes

0.
A

Gr
aham
Butcher

21
st

October
2003

First Draft after presentation

0.B

Graham
Butcher

31
st

May
2004

Second
Draft

0.C

Graham
Bu
tcher

22
nd

August
2004

Third Draft

1.0

Graham
Butcher

2
nd

September
2004

Issued version

Distribution

Distribution will be controlle
d by:

Graham Butcher

Orion 3
rd

Floor, Adastral Par
k
, Ipswich IP5 3 RE

graham.butcher
@bt.com

tel: +44(0) 1473 649059


Publishing Dynamic Information

Graham Butcher

vii

Abstract

The skills required to be able to publish
dynamic

information on the Internet or an Intra
net are as
important today (2004
) as usi
ng a word processor or business software was in the late 1980s.
Those individuals and organisations that had (and have) these skills command a distinct advantage
over their competitors in the business world.

The purpose of this project is to investigate t
echnology
that can publish, this kind of

informat
ion,
using a common interface such as

a Web Browser.
The main objective of the project
however,
i
s to
provide tools and skills that can benefit the Author’s work area

-

the Data and IP Integration and
Test
C
entre which is part of BT Exact at Adastral Park.

Within the Test Centre there are many teams doing a varie
ty of activities


these include

providing
the test environment, testing itself, managing resources and dealing and communicating with end
customers
. Normally information relating to Invento
ries, Booking Systems,
Configurations,
Documentation, Ownership and other related topics is hel
d i
n databases. If this
information were
permanently and instantly a
vailab
le, everyone would benefit
.

The aim of this

project is therefore to look at different methods of imp
l
ementing the display of non
static

information
held in databases by using dynamic w
eb

pages
.
Three examples were pr
oduced
for the project, adding value

to the
Author
’s workplace.


Publishing Dynamic Information

Graham Butcher

viii

Declaration


This

dissertation is a result of my independent investigation. The portions of the report that are
indebted to other sources have been referenced in the normal way.

This dissertation has not been accepted in substance for any degree and is not concurrently
su
bmitted in candidature for any degree.


Signed:








Date:


_______________
______
___________



___
____
______________
_____
Publishing Dynamic Information

Graham Butcher

1

of
81

Chapter 1

:
Introduction and Objectives

This section covers such things as separating the project objectives from normal work objectives,

the document structure, the readership the document is aimed at and the type of people who
would benefit from reading the report


the stakeholders.

1.1
Project
and Work
Objectives

Project Objectives

The
re are three main

project objectives
. The first is
to
find ways of publishing
information
with
in
the
Author
’s work areas. This information will be
specifically dynami
c information. P
ublishi
ng can
be defined in this case as

making information available to a chosen audience through a common
means


-

witho
ut
specialised software or dedicated programs.

If spec
ialised software or programs
were to be

used, they might need specialised installation and upgrading. In practice what is
meant
by a “common means” is a Web B
rowser. By dynamic information, the meani
ng for
the purpose of
this project is “information held in databases that is updated

by

a means separate from its
publication

and presentation
”.


In practice, this could mean, for example, displayin
g and searching
a live inventory database
(
to a
chosen au
dience
) where updating
that
database would be kept separate from its display.

The
viewers

would always see the latest inf
ormation whereas

the
updaters

of the information would not
have to think about the presentation of the information ie they would not h
ave to update the web
page or
web
site.

The second

objective is to
step back from the
Author
’s environment and
look into
all

methods
av
ailable
-

at the
time

of writing
. Also investigated are

reasons why one method is preferred over
another, depending on t
he situation.

The final objective is to produce

some working ex
amples


which can be
used in the
Author
’s work
area


hopefully to the benefit of all.

Work Objectives

During the period when the project was being researched the

Author

had several roles. Th
ese

ranged from M
anaging Test Labs and Reference M
odels,
to
T
esting International SDH B
andwidth
and
,

finally,
C
o
-
ordinating Test T
eams in the UKIP area. One common denominator to all these
roles however
, was a need to convey information.

The tools that w
ere expected to be used were
such things as email,
Word documents,
databases and spreadsheets.

A
nother

common requirement


i
n all three situations
-

was
keep
ing

equipment
inventories
.


A
common situation

that arose was for

people to wish

to know the where
abouts of test

equipment so
items could be borrowed when not in

use or booked for future testing.

To summarise, the
Author
’s work objectives we
re:



Manage Test L
abs


bookings, configurations, inventories, safety etc.



Carry out
Global Testing of High Bandwi
dth SDH, “super
-
highway
s”


as well doing the
testing, keep track of test equipment and the calibration of instruments.



Co
-
ordinate infrastructure for Test Teams in the UKIP test area


improv
e documentation
and flow of information across the area.

1.2

Do
cument structure

T
his

introduction

includes the Project Objectives separated from normal Work objectives,
Readership Aims, Technical Assumptions,
who the Stakeholders of the R
eport
are
and
the
Motivation for writing

the report.

Section 2 steps back from t
he Project and looks at categories of
solutions making suggestions about choices of technologies s
uch as languages, platforms,
web
servers

and Development Environments
. Section 3 is an overview of the three working examples
Publishing Dynamic Information

Graham Butcher

2

of
81

produced. Sections 4, 5 and 6
document in more detail
,

the production, problem solving and
decisions made to produce each of the
se

solutions. Sections 7, 8 and 9 cover the Evaluations,
Recommendations and Conclusions of the three respective solutions. Th
e final Chapters, sections
11
-
15

cover such things as References, Source Code, Glossary of Terms used and Product Features
of CodeCharge Studio and ColdFusion MX.

1.3

Readership

In the early part of the project the readership was aimed at other Lab Managers who frequently
needed to di
splay information about
such things as
lab test equipment and bookings.

Later on as
the scope of the project broadened

it became apparent that there were many
other
uses of the
skills

and techniques
investigated
that could benefit a wider audience. The r
eadership
of
this

report is therefore aimed at
:



Lab Managers wishing to make information available to colleagues and customers
.



Managers or Project Leaders wishing to commission bespok
e publicising/publishing
System
s.



Database speci
alists

and developers wh
o seek to explore new presentational methods
.



Web site managers who wish to

enhance their web pages with more information

ie
database based and searchable.



Anyone wishing to publicise dynamic information on an intranet or the internet.



Anyone wishing to
Ma
nage

information


Minimising holding, Maximising Access.


1.4

Technical Assumptions

A high level of technical knowledge is
not

assumed for use

of this document. A basic knowl
edge of
the following will be required
:



A
n

elementary knowledge of HTML, tags a
nd mark
-
up

languages in general.



A basic knowledge of the components that make up Databases


tables, queries, records,
views, links etc



Some knowledge of programming ie the difference between a compiled language and an
interpreted one.



Some knowledge of O
perating Systems such as Microsoft Windows, Solaris and Linux


1.5

Stakeholders of
the
report
, Motivation
for writing
and Business Case

Stakeholders

The main stakeholders of this

report

are:

1.

Work colleagues wishing to publish (dynamic information) within
the
ir work

environment.

2.

People looking for an overview of techniques.


Time is money


and both could be saved if information was made
,

more readily available.

Motivation

The motivation for this research c
ame from
the period
w
hen t
he
Author
’s main job was m
anaging
Test L
ab
oratorie
s
. T
here see
med to be a common need amongst

Lab Managers
to have a
System

that would
not only
cover b
ookings, inventories, loans,
configurations

and the like

but also

make
the information available

to users and managers alike.

Ther
e were also issues about different versions of the same document “floating around” in emails.
Sometimes people got left out of “the loop” and hence had wrong versions.

Publishing Dynamic Information

Graham Butcher

3

of
81

During
this time various
System
s were tried but
were not highly successful because the
information
they pro
vided was too difficult to access
.

The Systems

were
not aimed at the larger audiences.
Another observation made was that when specialists were brought in they only provided one type
of solution ie there was little choice available.

Th
e
Author

visualised having the skills within his work area where people could quickly build
intuitive
,

flexible,
open
System
s that would allow
the
free flow of information.

Business case

The b
usiness case is fairly simple. If suitable
System
s were produc
ed there would savings in the
following areas:

1.

Email storage


only one copy, the latest version, would be published with

emails just
carrying the links to the location

of the information
.

2.

Time


to find documents. Searching is more efficient with dedicat
ed search tools and less
time is wasted looking for information.

3.

Version control


a definitive version of a piece of information
or document
would be
available.


Publishing Dynamic Information

Graham Butcher

4

of
81

Chapter 2

:
Overview of available technologies and assessment of their suitability

2.1 Introduction

This

section attempts to stand back from the project and tasks in hand and
tries to give

an
overview of the techniques, methods and products tha
t can help produce database driven web
pages and
sites.

In the
Author
’s view, t
here are roughly
3 categories

of
solutions:



Simple
Web S
erver side coding

methods
. These involv
e
writing and
running

programs on
a

web server that, w
hen called, go off and perform
tasks like connecting to

database
s,
querying them

and outputting

the results in HTML to
the user’s browser.


In the old days
this was done by CGI scripts but nowadays dedicated
scripting
languages such as PHP,
ASP
and CFML
are
frequently
used.

A knowledge of

one of the PHP, ASP or CFML
languages is required for this type of solution or some knowledge of how CGI

works.



Total Development Environment methods
. Three s
uch Systems are looked at
:

a)

The Microsoft contribution
-

Visual Studio.Net


b)

T
he Macromedia

(
DreamW
eaver
)

environment version
-

Cold Fusion
.

c)

An independent company solution like

the
CodeCharge

Studio

p
roduct from
YesSoftware. This

third example, unlike the first two
,

is technology
independent,
producing
solutions to most platforms using code and databases of the user’
s
choice.

The product generates the code.

These

type
s

of solution
s tend

to be
for mor
e time
-
complex
situations

and
,

in the case of
the first two examples
,

more proprietary. The third example is slightly different in that it is
not tied to a platform.

In all three
,

there
are
varying degrees of extra cost involved.

The
three examples give
n are by no means the only ones available but probably reflect a
reasonable cross section of the market.



Enterprise Wide Systems
. These are

not covered in this discussion

as they are usually
multi
-
million pound
corporate wide solutions. They are ordered
at board level and

make
use of technologies such as Java, XML and heavyweight distributed databases.

They
could involve a 3 level model


including an intermediate application server with corporate
strategy implemented.
These
solutions
are considered bey
ond the scope of this report.

Since starting this project BT has adopted se
veral such Systems


the
Niku
Enterprise
System
and
the LiveL
ink

document management
System
.

There are of course grey areas and overlaps between these artificial segregations of ca
tegories.


First we will look at simple Server Side Scripting Solutions.


2.2

Web Server Side Coding Methods

2.2
.1
CGI Type Solutions

In the early days before dedicated
web
scripting languages such as ASP and PHP were developed
programmers and developers

had to produce their own code, native to the operating
System

hosting the web service
.


They used existing languages supported

on the web server
. These
specialised pieces of code were usually placed in a directory called the CGI bin


the Common
Gateway
Interface, binaries folder

or directory
. Although any language, compiled or interpreted is
acceptable
,

the common choices were:

I.

Report w
riting language of
PERL.

II.

A scripting language such as
csh



C shell scripting language

III.

A compiled language such as
C

o
r C++



T
he only requirement
s

for t
his method
are:



T
he program must work on the web server.



It must be capable of
accessing the

data
or database
, hosted locally or remotely


Publishing Dynamic Information

Graham Butcher

5

of
81



It must also be capable of outputting the results of the queries or searches i
n
HTML so that the user can view them in his/her browser.

This method is still used for complex or specialised solutions. Sometimes, historically the bulk of
the coding has already been written from a
previous proprietary solution and
can be re
-
used for a

more open and efficient
web based solution.

An example of CGI and Perl, used in the
Author
’s work area is the
Autosave

tool that captures and
displays various configuration information from equipment such as Cisco Routers.


Figure
1

-

Example of
an Application that uses
CGI and Perl, Autosave
Router
Configurations

A second example

of using CGI and Perl to produce Database Web Pages

One of the first examples of a complete Web based database System is
WODA
(Web Oriented
Database)
,

w
hich is claimed by the
Designer
, Prof Ziga Turk, to have originated around 1995. The
System is completely written in Perl
.

Turk also comments “
i
f in 1994 concepts like
active server
pages

and database
System
s built right into the HTTPD servers were avail
able, as easily as
today, the evolution of
WODA would perhaps be different


ref [6]
.


Turk

claims that WODA
is still used
internally
by NASA, Siemens and Amazon.com.

Publishing Dynamic Information

Graham Butcher

6

of
81


Figure
2

-

An example of WODA

An example of a Dynamic Database

Web site produced exclusively using WODA

Summary

(of CGI method)

A couple of

disadvantages of
using
CGI programs

are:

a)

all the commands

used
to contact and connect to databases must be known and included
in the CGI code. With the dedicated languages su
ch as PHP and ASP, the details are built into
the language
s

and less knowledge is required.


b)

if five

different people submit
queries

via CGI, five copies of the program have to run to
fulfil the request
s
. This can make a popular web site slow down sign
ificantly.

An advantage of using CGI is that existing non Web based solutions can be ported to the Web
using the original code with minimal

alterations required. This
would only be a short term solution
however, that doesn’t take advantage of latest devel
opments in the Web,

Database arena.


2.2
.2
Solutions using Apache, PHP and MySQL

This type of solution appeals to people on a tight budget or people familiar with the
UNIX
/Solaris/Linux platforms. All three co
mponents


Apache, PHP and MySQL

-

that make

up the
solution are effectively free.

Apache

i
s a freely available complete Web Server that is usually deployed on a
UNIX

Operating
System such as Solaris or Linux.

Apache accounts for approximately 65% of the worlds Web

Servers
[ref1]
.

As well as supp
lying complete

Web Hosting Services, additional
free
components
called modules
can be added
. These

modules
supply the following services [ref1]:



CGI script handling



Site activity logging



Dynamic HTML



Proxy services



Direct Access to Perl



User authenticatio
n



Image maps



Encryption and security



User and activity tracking



Java servlets

Publishing Dynamic Information

Graham Butcher

7

of
81

Commercially produced
modules or
components can also be added.

Apache originally came from the NCSA
(National Centre for Super computing Applications)
organisation.
Its name
cam
e from the fact that
,

b
ecause the earlier versions had so many software
“patches”
,

the product subsequently became known as “Apache”.
Apache is available free

of
charge at
www.apache.org

or
ftp.apache.org


PHP

(Hypertext pre
-
processor
)
is a freely available scripting language specially designed for web
applications

and database access
. It is available at
www.php.net
. The advantages of PHP are:




It’s fast. Because it is embedded in HTML code
,

the response time is short



It’s inexpensive


free in

fact



It’s easy to use


similar constructs as other popular languages
such as
C and C shell



R
uns on many platforms


Linux/
UNIX
,
Windows and

Mac OS



Tec
hnical support is widely available through discussion groups



It’s secure


the user does not see the PHP code



It’s designed to support databases



most

supported



It’s customisable


the open source licence allows programmers to modify PHP for their
own spe
cific needs or environments

if necessary.

PHP wor
ks by embedding
scripting
code in normal HTML using extensions to the HTML tag
method.

A piece of PHP code will start with the
<?PHP

tag and finish with the
?>

tag. As a result
all HTML statements are sent

to the browser “as is” but PHP statements are pre
-
processed and
outputted in HTML before sending to the browser. Eg

<?PHP echo “<p>Hello World”; ?>

Will be processed to

<p>Hello World

w
hich is HTML



Hello World is displayed in the user’s browser.

The con
sequence of this is that the end user never sees the PHP code
-

making it transparent and
secure.

MySQL

is a freely available full RDBMS

(Relational Database Management System)

similar to
Oracle
. It is available at
www
.mysql.com
. MySQL is developed, marketed, and supported by a
Swedish company MySQL AB. There are two types of licence:

I.

Open Source Software


available via the GNU General Public Licence (GPL).
Anyone who meets the GNU requirements can use the product
for free
,

even if they
are making money from it.

The disadvantage is that developments have to be made
public.

II.

Commercial
Licence


MySQL

is available at a modest price for developers who want
to produce and sell new products that use MySQL rather than re
lease them under
GPL.

MySQL comes with a complete Web based Management
and Administration
System
.


Publishing Dynamic Information

Graham Butcher

8

of
81


Figure
3

-

Web interface for MySQL management

and administration

Putting the three products


Apache
,

PHP
and

MySQL

-

together mak
es an attractive
, open,

low
budget solution for
implementing web based database
System
s.


2.2
.3
Simple Microsoft/ASP type solutions using IIS, PWS
,

MS Access

or SQL Server

The reason why

this section is called “Simple

Microsoft …


solutio
n is to distingui
sh it from
solution
s

provided in section 2.2.2

where a more advanced MS solution is described.


The soluti
ons that are described in this section

use a proprietary Microsoft language called
ASP


Active Server Pages. This language is ver
y
similar to PHP,
described in 2.2
.2, in that it was
designed specifically for web applications and connecting to databases.

It would probably not be
an exaggeration to say that ASP
, sometimes known as
ASP 3.0
,

is the most common language
used to produce web pages with dyn
amic contents.

ASP

will run automatically on all Microsoft based web
servers

-

IIS and PWS



but will not work on
Apache or other web servers.
This is because t
here is no MS install program
available.


ASP is built
into MS web servers. To get round this
problem

ho
w
ever
, a third party company called Chilisoft
produced an “open” version

of ASP, called Chilisoft ASP. This product is fully compatib
le with
non
-
Microsoft platforms and servers.

Chilisoft ASP

used to be freely available at
www.chilisoft.com

When that URL

is now accessed
though, you are re
-
directed to Sun Java System, Active Server Pages 4
.0 so it looks as though Sun
have

bought out the company and

distributes it as part of its

web server products.

Chili
soft ASP is
basically an “open” version of Microsoft’s language designed to run on all platforms.
Chilisoft ASP
is particularly useful for porting legacy Systems from
a MS/ASP environment into an

open one.

Publishing Dynamic Information

Graham Butcher

9

of
81

Microsoft’s main Web S
erver product is called
IIS



Internet Inform
ation Service. The product

come
s

free with various versions of Windows


usually known as “professional”
eg
Windows XP,
Professional
. With Windows 98 and 2000

there is

a free optional

installable product called PWS


Personal Web S
erver
. This is a light weight Web S
erver, use
ful for testing out ASP code and Web
pages on your PC.

Microsoft’s two database offerings are
Access

and
SQL Server
. The former is more aimed at the
single user customer with the latter aimed at the multi
-
user heav
y weight end of the market.

Many
web based database solutions
however
,

run quite happily using Access as their database
.

A simple example of ASP
(written in VB script


Visual Basic Script)
code would be:


<html>

<body>

<center>

<% Dim ftsize, ftcolor%>

<
% For

ftsize = 1 to 7 %>

<font size
=
<%
=
ftsize%>
>

Hello and Welcome!<br>

<% Next %>

</center>

</body>

</html>

NB This is actually a mixture of HTML and ASP. The ASP code
, embedded in the HTML and

highlighted

starts with
<%

and finishes with
%>
. In this
way it works like PHP and is not visible to
the end

user.

The result of calling this short bit of code would be to display the words

Hello and
Welcome!


i
n 7 different font sizes.


Figure
4

-

An example of AS
P
3.0

By using, for
example,
IIS, ASP and Access
,

a quick and simple web based database
System

can be
built. A
knowledge of
the
ASP
language
will
however
be

required. Alternatively
,

if
additional tools
are used like Microsoft’s “Front Page”


their web
page and
site ge
nerat
or
-

then wizards and short
cuts can
also
be used for simple solutions without any knowledge of ASP.

Publishing Dynamic Information

Graham Butcher

10

of
81

Also
,

a dedicated code generation tool such as Co
deCharge Studio (see section 2.3
.3) can be used
which removes the need to learn any languages.

Publishing Dynamic Information

Graham Butcher

11

of
81

2.3

Total

Development Environment Methods

The second category of solutions is Total Development Environments

category
.
A sample of three
is

given here


Cold Fusion
,
Visual Studio.Net

and
CodeCharge Studio
.

2.3
.1
Cold Fusion

=
卥rve爠r湤=䑥velo灭pnt=䕮viro湭ent
=
q
桥=
fi牳r=
e硡x灬攠i渠t桩猠捡te杯特ri猠䍯汤䙵獩onK==
䥴=i猠来湥牡汬r=捯湳ide牥r=t桡t=䑲aam睥ave爠r猠t桥=
扥獴⁗敢s偡来=䑥ve汯灭p湴=qoolK==q桥=ma湵晡捴畲敲u
I
=
ja捲cmedia
I
=
a汳漠桡ve=a=獴so
湧⁨o汤=o渠
te戠杲a
灨p捳c睩t栠t桥i爠䙬r獨=a湤=䙩牥ro牫r=
灲od畣t献†
q桥i爠䥮r
e杲ated=䑥ve汯灭pnt=䕮biro湭e湴=
⡉E䔩⁩湣汵ne猠a=灲od畣u=捡汬ed=䍯汤䙵獩o渠t桡t=
i湴eg牡瑥猠
data扡獥=a湤=data=獯畲捥猠i湴o=
te戠
灡来献†=====================================================================================================================
††=
=============================================================================================================================
=============================================================================================================================
======
††††=††††††††††††††††††††††††=†††††††††††=
=
䥴=i猠灯獳i扬攠to=do睮汯ad=the=捯m灬整攠
䍯汤c畳uo渠
灡捫a来=fo爠r=mo
nth’s free trial
. When

the trial
expires it is possible to keep the development environment for
use with
a

single IP address. This
allows developers to effectively
continue to
develop pages on their own

computer and deploy them
o
n other

existing
, licenced

ColdFusion server
s
.

The price of
the
development and
server
software
is listed below
-

$1299 for the Stan
dard Edition
(correct in July 2004). This i
s considered a little too expensive for the Project.

It is also felt that
ColdFusion’s influence is
now slightly
on the wane see
ref [2
] “
ColdFusion had become less
popular.
Its

embedded tag has also been embr
aced in different formats by other Web
technologies…”

The following
discussion


obtained from
ref
[3]
,
www.macromedia.com

explains how ColdFusion
works and how you develop database driven dynamic web pages using
the Macromedia ColdFusion
environment.


Figure
5

-

MacroMedia's own description of ColdFusion plus the Price

What is ColdFusion MX?

ColdFusion MX is a powerful web application server that lets you create robust sites and
applicat
ions without a long learning curve. ColdFusion MX does not require coding in traditional
programming languages (for example, C/C++, Java, XML), although it supports these traditional
programming languages.

ColdFusion MX consists of the following core compo
nents:



ColdFusion server



ColdFusion Markup Language (
CFML
)



ColdFusion Administrator


Publishing Dynamic Information

Graham Butcher

12

of
81

The ColdFusion application server

The ColdFusion application server is itself a web application that typically resides on the same
compu
ter as your web server softwar
e ie it can co
-
exist with IIS and Apache.


It is the program that
parses (reads and interprets) and processes supplied instructions. These instructions are passed to
ColdFusion through ColdFusion pages, which use a CFM or CFC file extension. A ColdFusion p
age
looks like an HTML page but contains special tags that instruct the ColdFusion server to perform
specific operations
.

In this way CFML is similar to PHP and ASP 3.0.

How ColdFusion processes pages

The ColdFusion server looks at the content of the pag
e and searches for the following ColdFusion
instructions:



Tags that begin with
cf
.



Variables and functions that are always surrounded by
hash

signs (
#
).

If the ColdFusion server finds any HTML or plain text in the page, the ColdFusion server returns it
to the web server untouched.

The ColdFusion server processes all the ColdFusion instructions found, and returns any remaining
results to the web server. The web server then sends the entire output to the

browser.

The ColdFusion Markup Language

ColdFusion

Markup Language

(
CFML) is
a tag
-
based language similar to HTML that uses special
tags and functions. With CFML you can enhance your standard HTML files with database
commands, conditional operators, and high
-
level formatting functions, and rapidly produce

easy
-
to
-
maintain web applications.

CFML looks similar to HTML: it includes start and end tags, and each tag is enclosed in angle
brackets. All ending tags are preceded with a forward slash (/) and all tag names are preceded with
cf; for example:

<cfstartt
agname> </cfendtagname>

Building applications with CFML

You build ColdFusion applications as a series of pages that use CFML. Developers can extend this
language by creating their own custom tags or user
-
defined functions (UDF), or by integrating
COM, C++
, and Java components (such as JSP tag libraries).

Interacting with data sources

ColdFusion applications can interact with any database that supports a JDBC technology
-
based
driver. A JDBC technology
-
based driver uses an Application Programming Language
(API) to
execute SQL statements to databases on most platforms. However, ColdFusion is not limited to
JDBC data sources. You can also interact with existing Open Database connectivity (ODBC) data
sources by using ODBC Socket, a driver that interacts with a
n existing ODBC driver.

Development tools

While you can code your ColdFusion application with NotePad or any HTML editor, Macromedia
recommends that you build your applications using Macromedia Dreamweaver MX. Dreamweaver
MX offers features and wizards t
hat enhan
ce ColdFusion development.

Publishing Dynamic Information

Graham Butcher

13

of
81

The ColdFusion MX Administrator

You use the ColdFusion MX Administrator to configu
re and maintain the ColdFusion Application
Server


the Web Server.

It is a web
-
based application that you can access using any web brow
ser,
from any computer with an Internet connection.

You can manage the following configuration options with the ColdFusion MX Administrator:



ColdFusion data sources



Debugging output



Server settings



Application security

Creating a ColdFusion page

Creat
ing a ColdFusion page involves using tags and functions. The best way to understand this
process is to create a ColdFusion page.

In the following procedure, you will create a simple ColdFusion page by using HTML tags, one
ColdFusion tag, and two ColdFusio
n functions. The following table briefly explains the ColdFusion
tags and functions:


Element

Description.

Now()

A function supported in CFML that you can use to retrieve information from your
System
.

You will use the
Now

( )

function in the following pr
ocedure to return the current date that is
retrieved from your
System
.

DateFormat()

A function that instructs ColdFusion to format the date returned by the
Now()

function.

cfoutput

A ColdFusion tag that you use to return dynamic data (data retrieved from

a database) to a web
page.

You will use the
cfoutput

tag in the following procedure to display the current date retrieved from
your
System
.

Note:
ColdFusion tags and functions are considered p
rimary elements of CFML.

To create a ColdFusion page:

Open you
r editor and create a blank file.

Enter the following code on the page:


<html>

<head>

<title>A ColdFusion Page</title>

</head>

<body>

<strong>Hello world, this is a ColdFusion page.</strong>

<br>

<cfoutput> Today's date is #DateFormat(Now())# </cfoutpu
t>

</body>

</html>



Publishing Dynamic Information

Graham Butcher

14

of
81



The following figure shows the cfpage.cfm in the browser:



Figure
6

-

An Example of CFML



Understanding CFML elements

CFML

consists of two primary language elements: tags and functions.
Tags

let you perform
operations such as accessing a database.
Functions

can return data and do o
ther operations like
retrieving the
System

date. Almost everything you want to accomplish with ColdFusion will involve
using tags and functions.

You will use another important element known as a variable. Variables are an important part of
most programming

languages and are equally important with CFML.
Variables

let you store
information in memory and enable you to pass data.

The following sections describe how to use these three elements.

Tags

You can think of tags as commands that you use to instruct th
e ColdFusion server to perform
operations. These operations might include selecting data from a database, reading a file that
resides on the server, or showing the results of processing.

Tag syntax

ColdFusion tags are similar to HTML tags. ColdFusion tags
are enclosed in angle brackets and
often have a start and end tag. The start tag encloses the tag name in brackets, like this:


<tagname>


Most often the end tag encloses the tag name in brackets and includes a slash (/), like this:

</tagname>


The informa
tion processed by ColdFusion is placed between the start and end tag, like this:

<tagname>

info to be processed ...

Publishing Dynamic Information

Graham Butcher

15

of
81

</tagname>


ColdFusion tags, for the most part, share these common characteristics:



All start with
cf
.



A start and end tag.



Use of attribu
tes (like html tags), and most attributes have values.


Some ColdFusion tags, such as
cfset
, omit the closing tag. This type of tag uses one set of angle
brackets and places all the required information between the left (<) and right (>) angle brackets,
l
ike this:

<cfset name="bob">

Tag attributes

Tag attributes instruct the ColdFusion server about the details of an operation. For example, to
update a database table, the server needs to know specifics about the database, such as the
database name and the t
able name. The code required to write this type of statement might look
like this:

<cfupdate datasource="mydb" tablename="mytable">

where
datasource

and
tablename

are attributes of the
cfupdate

tag and
"mydb"

and
"mytable"

are
attribute values.

Functions

Typically, a function acts on data. It can generate a value or a set of values, usually from some
input. You can perform the following operations (actions) with functions:



Manipulate data and time values



Examine a value or variable



Display and format in
formation



Manipulate string data



Retrieve
System

information and resources



Perform mathematical operations



Using functions on values

Usually, a function performs an operation on a value, and the value can include the value of a
variable. For example: t
o format the value of a variable containing a value in dollars, the code to
write this statement might look like this:

#DollarFormat(price)#

The
DollarFormat

function returns a value as a string and formats that value with two decimal
places, thousand sepa
rator, and dollar sign. The
hash

signs (#) around the function instruct
ColdFusion to evaluate the content between the
hash

signs and display the value.

Functions and parentheses

All functions have parentheses, regardless of whether the function acts on da
ta. Consider the
following function:

#Now()#

Publishing Dynamic Information

Graham Butcher

16

of
81

If you put anything inside the parentheses of the
Now()

function, an error would occur. The
Now()

function returns an unformatted date and time. However, you can format the results of this
function with other fu
nctions, such as the
DateFormat()

or
TimeFormat()

functions.

Nesting functions

Functions can generate data as well as act on data. Consider the following example:

#DateFormat(Now(), "mm/dd/yyyy")#

In this example, the
Now()

function generates the date, and

then the
DateFormat

function formats
the date.

Functions and
hash

signs

You use
hash

signs (#) with functions to display the results of a function on the page.
Hash

signs
tell the ColdFusion server to evaluate the content between the
hash

signs and displa
y the value, for
example:

<cfoutput>

Hello world, <br>

Today's date is #DateFormat(Now(), "mm/dd/yyyy")#

</cfoutput>

The following figure shows the output of this example:



Figure
7

-

CFML page

If you did not include the
hash

signs around the
DateFormat(Now(),
"mm/dd
/y
yyy")

function, ColdFusion would no
t evaluate the function and the previous example would display your
source code, as follows:

Publishing Dynamic Information

Graham Butcher

17

of
81



Figure
8

-

CFML with error

Variables

Variables let you store data in memory on

the server
-

they

always have a name and a value. You
can assign a value to a variable, or you can instruct ColdFusion to assign var
iable values based on
data that it retrieves from a data source, such as a database table.

Summary

ColdFusion was probably the first robust
integrated
development environment introducing features
such as
server side scripting with CFML (ColdFusion Markup
Language)
using
embedded
declarative tags.

It is now losing popularity a little to cheaper more versatile solutions. CFML
re
quires a ColdFusion Web Server to host the site, applications and CFML web pages.

Yue and
Ding ref [2] writing from
Design and Ev
olution of an Undergraduate Course on Web Application

say

“The initial inclusion of ColdFusion in 1998 and its exclusion in 2000 may serve of an example …”

ColdFusion would suit the developer that works exclusively with Macromedia tools and has a
ColdFusio
n Web Server to publish on.

Publishing Dynamic Information

Graham Butcher

18

of
81

2.3
.2
Advanced MS solutions using Visual Studio.NET

The second

example of Total Development Environment category of solutions is Visual Studio.Net.

Visual Studio.Net

is Microsoft’s current development environment for Web, Win
dows and Mobile

applications. It costs $1079
.



Figure
9

-

Microsoft's pricing for Visual Studio.Net

The Integrated development environment contains the following elements:



A common IDE for the supported languages:

o

Visual Basic.N
et

o

Visual C#

o

Visual FoxPro

o

Visual C++.Net



Easy ASP.Net programming ie WYSI
WYG (what you see is what you get) and Code Aware
Editors

The
.Net initiative

started to take off around the mid
dle of 2000. It came about because of the

increasingly important role

of the Internet
, more

collaboration

between de
velopers

and the gradual
shift from desktop computing to distributed computing.

It’s method of communi
cating between applications,
environments

and platforms

is
XML

(eXstensible
Mark
-
up

Language).

As

people ha
ve some knowledge of
the
older
MS languages of Visual Basic and Visual C++ this
discussion will just focus on
the new elements of the package


ASP.Net and C# languages.

Publishing Dynamic Information

Graham Butcher

19

of
81

ASP.Net

is Microsoft’s next versi
on of (ASP) Active Server Pages


the earlier version
, ASP 3.0
is

m
entioned in section 2.2
.3
of this report. T
he main difference between ASP
3.0 and ASP.Net is
that the latter is object oriented
and compiled. It

can be produced

within

Visual Studio
.Net IDE
using any of the
languages

mentioned earlier
. The
advantages of ASP.Net over ASP 3.0 are:



Unlike ASP 3.0
,

ASP.Net is compiled therefore applications will run faster. Ju
st In T
ime
(JIT) binding is possible.



ASP.Net provides DataGrid and DataList controls tailored for efficient database access.



State manag
ement is handled better. ASP.Net offers three types of states for Web
applications: application, session and user
.



Improved caching. A complete caching API is implemented. One of the benefits is
improved performance when interacting with databases throu
gh better caching.



Better updating. With 3.0 it’s necessary to shutdown the Web server to update the ASP
with ASP.Net it’s not.



Multiple audience targeting. The same page can deliver

text only


for a mobile phone
s
or

rich
-
dynamic content for IE 6.0. Th
is is a built
-
in

function that detects the browser
being used.



Object oriented. Better re
-
use of code is achieved.

Upgrading from
ASP
3.0 to
ASP
.Net is achieved in one of two ways:

1.

Rewrite the code in ASP.Net

2.

Change the file extension from .asp to .net

V
isual C#

is Microsoft’s latest language that combin
es the strengths of C++ with it
s low level
controls with the simplicity
and RAD features
of Visual Basic. It also has the added benefit
of
being
able to convert

applications produced in C# into XML web se
rvices available to a range of platforms
and other environments.


To encourage people to move to the .Net metho
d of development, Microsoft are

giving away
,

free
,

certain elements of

Visual Studio. One of these i
s a product called
Web Matrix
, an editor for

producing and compiling ASP.Net pages. It is a visual editor with elements such as DataGrid and
DataList

drag and droppable


onto W
eb pages. Also provided free is
a run time version of their
Database System,
SQL Server
.
More information is available a
t their ASP.Net community site
www.asp.net

ref
[7].


Publishing Dynamic Information

Graham Butcher

20

of
81


Figure
10

-

Web Matrix, design window



Figure
11

-

SQL Server control panel





Publishing Dynamic Information

Graham Butcher

21

of
81

Summary

Using .Net technology is

an investment for the future as the older Microsoft ASP 3.0 is likely to be
phased out an
d

un
supported some time in the future. The visual Studio.Net environment also has
the advantage that it can develop for the
Web,
for
Windows

and
for
Mobile devices

s
uch as PDAs.
This means that applications written for one platform can be
ported across relatively easily to
another. The prohibitive cost of the product


Visual Studio.Net


and lack of free trial period
prevented
an
in
-
depth study in this project.

Publishing Dynamic Information

Graham Butcher

22

of
81

2.
3
.3
Third Party, Software Development Tools (CodeCharge
Studio
from Yes software)

The
third

example in this “Total Development Environment” category is
CodeCharge Studio
.


Figure
12

-

Details of CodeCharge Studio's pricing struc
ture


NB
,

The Personal Edition does
not cover all languages

This type of solution has created quite a buzz in the industry as companies like Yes Software are
now challenging the big names


Microsoft and Macromedia


in
the field of
R
apid
A
pplication
D
eve
lopment

of dynamic
database driven
web pages.

At the start of the project this type of solution wasn’t considered important but as the project
progressed
,

this particular tool became more and more important. A simple internet search
revealed CodeCharge
St
udio
as being a method of developing code for database web applications.
The full b
lown product i
s available
,

free of charge
, for one month and consists

of a 25 MB
download. After 3 months of trials (on 3 separate computers) the
Author

was so impressed t
hat
the product was purchased at the full price of $180. Subseque
ntly the price has risen to $499 see
above
.

CodeCharge’s own sales information is quoted as saying “CodeCharge Studio is a visual
application builder and code generator that provides a featu
re
-
rich environment for
rapid
application development

for the web. It is the most productive way available today to create
powerful, scalable, and secure web applications quickly. Based on a sophisticated code generation
engine, CodeCharge Studio opens up
new possibilities for web developers by automating the
creation of virtually all web application components and by generating robust, professional
-
level
server code in any of the following programming languages: ASP.NET (C# and VB), ASP 3.0, PHP
4.0, Java
Servlets 2.2, JSP 1.1
, ColdFusion 4.01, and PERL 5.0


ref [4].

Publishing Dynamic Information

Graham Butcher

23

of
81

How CodeCharge works

CodeCharge Studio is functionally and visually similar to other RAD tools, such as Microsoft

Studio.Net and Macromedia ColdF
usion with the ability to maximize developer pro
ductivity while
ke
eping the cost of development to

a minimum. While visual programming tools are traditionally
used for developing desktop and client applications, CodeCharge Studio is ideal for developing
sophisticated web applications.


Figure
13

-

CodeCharge Studio IDE


Project development using CodeCharge

The following steps demonstrate how a basic application would be crea
ted using CodeCharge:

1.

Start CodeCharge Studio.

2.

Create a new project.

3.

Name the project and select
Application Builder
.

4.

Specify project settings such as the
programming language

and path to the web server.

5.

Specify the
database connection type

and establis
h a database connection.

6.

Configure
site authentication

by specifying the database table and columns that contain
user login and password information as well as security groups and roles.

7.

Select the
database tables

based upon which the web application will

be created.

8.

Specify the type of web page to be created for each of the previously selected database
tables. Specify if you want to create
Search
,
Grid
, and
Record

maintenance pages for
each table.

9.

Specify a
theme

to be applied to the site. The theme def
ines the basic layout and
appearance of different elements within a page.

10.

The Application Builder
will automatically create a project

with sets of pages that make
up the web application. You can then publish the pages to the server and test them.

Publishing Dynamic Information

Graham Butcher

24

of
81

11.

If you
wish, you can make
further modifications
to the created application by using the
integrated development environment (IDE).

CodeCharge Studio does not help you develop the underlying databases that drive the
applications. It does however, let you connect t
o existing databases during development and to
test your application with real database connections during testing.

CodeCharge Studio Features

T
he f
ollowing is a summary of

the CodeCharge sales information available at
www.codecharge.com

ref [4]
. The main features are:

1.

Application Builder

2.

Integrated Development Environment

3.

Form and Component Builder

4.

Visual Query Builder

5.

Security Management
/Role
-
based

Access

Control

6.

Support for multiple languages

7.

Extensibility

8.

Mult
iple Database Connections

9.

Integration with other products

10.

Extensive Database Support

11.

Application Templates (Solutions for customisation)

12.

Custom Code Actions

13.

Code Generation Engine

The details of these features are included verbatim in
Appendix C
.

Benefits
of using CodeCharge Studio

The following benefits are obtained by using CodeCharge Studio:

1.

CodeCharge generates structured, object oriented code in the language of your choice.

2.

As the code is well structured it is easily maintainable and can be extended ma
nually if
necessary. If this done within CodeCharge’s own editors the new code is not over
-
written
during subsequent use of the automatic code generator.

3.

The code produced separates the programming logic from the presentation layer ie the
files .asp, .php
, .jsp,
etc files are separate from
their corresponding HTML files. In large
scale developments this allows separate teams to work on programming and visual design.


Summary

CodeCharge Studio offers an attractive and flexible way of rapidly producing Dyna
mic Database
Web pages. It would be the solution that the
Author

would recommend that people
,

new to the
arena
,

look at first.


2.4

Enterprise Wide Systems


As stated earlier
,

this type of solution was considered beyond the
scope of the project
and is on
ly
included here for

the sake of completion.


Publishing Dynamic Information

Graham Butcher

25

of
81

2.5

Other topics relevant to producing Database driven Web Pages

This section includes
additional

pieces of information
, critical to

the understanding of web based
database technologies.

2.5
.1
Client versus S
erver side scripting

and programs

Up until now all the programming languages and code have been designed to work on the Web
Server side of the Client/Server model used for discussing web pages. One (or two) important
languages that run instead in the clie
nt’s browser are Ja
va script (and the MS version JS
cript).
These are important because they
,

for example, can verify data input to a form. This saves
time as
the browser doesn’t need

to access the server to do this. Basic checks for
data integrity of
th
ings
like telephone numbers and email addresses are easily achieved.

The only problem with this client side programming is that
unlike HTML,
there are few open
,

independent standards and different browsers behave in different ways to
interpret
the same c
ode.

A way to get round this is to make the s
cripting program first check the browser type

and version
before re
-
directing to the required code for that browser.

Also worth mention are Java Applets and

Java Servlets. These are
programs
, written in Java,
a
complex language based on C++,
that run on
the
Client
(
PC
, Mac or other)

or the Server
respectively.

Obviously
,

if they run on the client PC
(or other)
they have the possibility of doing a
lot of damage
. This could be things like installing a Trojan,
a

V
irus or merely carrying out the
command “format C:
\
” on a PC machine.

This means that with normal browser settings the user is
first asked if he wants t
o accept the downloaded program before it can run.

2.5
.2
Use of ODBC for connecting to databases

ODB
C is the “glue” that allows different applications to access different databases from different
manufacturers in a consistent way. It existed long before web based databases were thought of.

ODBC originated from

Microsoft’s Windows Open Systems Architectu
re (WOSA), which provides a
series of application program interfaces (APIs) to simplify and provide standards for various
programming activities. The goal is to have all applications communicating through the same set
of APIs. ODBC is just one piece of the

WOSA picture. Other components include telephone
services (TAPI), messaging services (MAPI), and open data services (ODS).

Today it is
generally
treated as an “open” standard.

Normally b
efore accessing an ODBC database, you must install on your
System

th
e appropriat
e
ODBC driver for that database (if it’s not installed already).

A Data Source Name (DSN) is what ODBC uses to allow you to associate a database with a driver.
You use the ODBC Administrator (in Control Panel

on PCs
) to configure
and
give the D
SN a unique
name and then associate it with both a database and a driver.

When you open a connection to ODBC, you specify what DSN you want to work with. ODBC takes
care of all the little details involved in opening that database.

Before you can access O
DBC databases, you must configure the ODBC data source names, the
ODBC drivers, and the configuration values used in ODBC.INI. You also should understand the
structure of an ODBC driver and the ODBC API as well as some ODBC
-
related terminology.

In order f
or any application to access data in a database, it must establish a connection to that
database through its corresponding ODBC driver. To do this, the application must request a
connection from the ODBC Driver Administrator, specifying the data

source des
ired.

Although
ODBC
is the oldest method it
is by no means the only way of connecting to databases
.
Other methods are JDBC,
ADO (Active Data Objects)

and Jet (MS Access database engine)
. A tool
like CodeCharge Studio will allow you to choose
the type an
d sort out
the necessary code
for
connecting to
database
s

automatically.

Publishing Dynamic Information

Graham Butcher

26

of
81

2
.5
.3 What’s Oracle’s contributions to the discussion?
=
l牡捬r=i猠t桥=睯牬d

s largest database company. Along with Oracle v7 and possibly v8
,

there us
ed
to be a free Web Server and W
izards that allowed you to develop dynamic web pages
. Although
this appears to be supported with the latest version, Oracle’s support seems to be withdrawing and
they
generally seem to be recommending

other proven methods such as PHP and ASP.Net
. See
Hul
l,

ref [5].


2.5
.4 Security

Web and Database security are massive subjects in their own right. The discussion in this report is
limited to a few mistakes that can be made when designing Database Web pages and sites:

1.

Access database (or other single file