ITY276 presentation 3 - University Of Worcester
Download
Report
Transcript ITY276 presentation 3 - University Of Worcester
COMP3241
E-Business Technologies
Richard Henson
University of Worcester
October 2012
Week 3 – Early Web Applications,
ActiveX, and Database connectivity
Objectives:
Contrast between client-end applications and
client-server applications
Explain the architecture of web-based database
connection with server-scripting
Create a presentable shopping page using data
from a database
Flatfiles and Databases
Many so-called databases are just lists of data
retrieval of data can take a looonnnggg time
Database proper links logically data:
hierarchically
relationally
object-oriented
Relational still popular mainly because of SQL
Relational Databases
Tight data structure means existing data
can be more rapidly located…
Real advantage of a true relational
database is that SQL can be used for
read/write & query database operations
Linking Server Script code
with a relational database
To make a two-way link with a relational
database:
need relevant data access components
» components for IIS-based scripts available from
Microsoft (MDAC)
“datasets” need to be defined using a
programming language & embedded SQL
connectivity link needed to database
pathname
Database Design
Same principles apply as with any other relational
database management system (RDBMS)…
identify entities & attributes
produce entity relationship
» define logic relationships between entities
make sure data is fully normalised
» create tables & links
use embedded SQL statements in the server script to
communicate with the data:
» extract data from specific fields in particular tables
» put data into specific fields in particular tables
Some “self-taught” developers are unaware of this,
and try to build the data round the processing…
Evolution of Application
- RDBMS connectivity
In the early web development days…
the connection of an application to a particular
relational database would be hard coded and
made available as an API (application program
interface)
a client application then had to be written to use
the proprietary API Even then, there was a
problem:
If more than one RDBMS needed to be used?
several different APIs would be used
each needed a client application…
added greatly to the complexity of the task!
The Microsoft Solution:
the ODBC API
Ideal: the “Universal Data Access” (UDA) model
all data consumers interact with all data providers…
response to the “API for each application” problem
First stage: ODBC = Open Database Connectivity
developed in early 1990s:
» common API for writing applications to access ANY relational
DBMS for which an ODBC driver had been written
Once the APIs had all been written, tried, and tested…
» any relational database with an ODBC compliant interface could use
them
» easy database path connectivity string management
ActiveX
The next stage in evolution of Microsoft’s data
objects model
sexy name for OLE v2.0
made up of…
» OLE
Object Linking and Embedding…
» Combined with COM
Common Object Model
ActiveX Data Objects make up a series of
modular components called ADO
used for “run-time” web applications
basis of .net controls
What is ActiveX®?
V. successful Microsoft invention…
Run-time code became known as a “control”
NO source code so can’t be embedded in HTML,
but can be called from a HTML file
» Runs on any Browser (not interpreted…)
allows compiled (i.e. executable) code to talk to
host applications
difficult to “hack” the code if source code not
available
As the scripts are compiled into executable
versions the source language is irrelevant
languages other than VB used…
More about VB ActiveX
Data Objects (ADO)
Use a common, easy-to-use object model
Designed to simplify the writing of client
applications to access data sources
through OLE DB providers
more flexible than DSN
» had to be specified on the local machine and limited to
using the ODBC providers on that machine
Data sources could now also include:
spreadsheets
graphics
web pages…
OLE DB
Application of OLE/ActiveX principles to
connectivity between applications and
databases
to be more precise, relational database
management systems!
Interface specification that provides a
layer of abstraction between:
a data provider e.g. relational DBMS
a data consumer e.g. business object or
client application
Universal Data Access in practice
System Connection
to the Database
Provided by Microsoft Data Access
Components (MDAC)
easily downloaded:
» http://www.microsoft.com/enus/download/details.aspx?id=5793
covers of range of databases
need most up-to-date version of MDAC (2.8
SP1) to work with latest database versions…
Use of MDAC with “path”
Once the correct components have been
chosen…
a logical 'connection' can be set up with the
database – wherever it is!
If this isn’t correct, scripts on a web server can’t even
link with, let alone interact with, a relational database
“Database Path” must include:
a definition of where the database is
a few simple rules on how the database should be
treated
Making a connection to a
database on the web server
Two systems still used:
ODBC – “legacy” .asp scripting
OLE DB – .aspx connectivity
Whichever is used…
essential to get connectivity working correctly
» RAD tools like VWD very helpful in achieving this…
Once connectivity achieved, server-script can
use embedded SQL commands to link to and
communicate smoothly with database tables
again… RAD tool like VWD can save a lot of time…
Databases & web pages
Some early e-commerce applications
used embedded JavaScript and a small
local database
Problems:
database took a long while to download &
could be tampered with!
if database ran locally how could data be
updated… prices changed, new products
added?
Early online shopping
example : Shop@ssistant
Came out of the early “wow, Java” revolution in
web development
http://staffweb.worc.ac.uk/hensonr/shop@ssistant
Whole system (30kb) written in Java Script, runs
on the client machine (!)
stores & presents product data
shows all the components and functionality expected
of a shopping cart system
interfaces with merchant systems that can be used to
handle online payment
TAKE A LOOK!!! Or download and run it yourself
Critical Look at
Client-end “apps”
Absolutely
fantastic!
Even better on a mobile…
BUT usually for entertainment only…
only small data sources, or infrequently
changed data sources are used
usually “single user”
Whatever happened to
“client only” web shopping?
In an ideal (Internet) world everything would be
able to run via the browser on the client
machine. Result:
faster
all data local
more controlled
The “Java+client-end HTML” model is fine…
until you need to store and change data… securely!!
Applications requiring
multi-client use & shared data
Specific requirement:
Large, regularly updated centralised data store that
needs to be accessed by a number of clients
Requirements for client-end solution?
» database updated centrally
» database downloaded every time the application is to be used!
Feasibility of client-end solution?
»
»
»
»
not powerful enough?
client not enough storage capacity?
not sufficient bandwidth?
downloading databases can compromise security
Using a remote database
with a web page
Compelling reason for client-server web
applications…
data held in a secure place
product data easily updated
database processing can happen at a
powerful server
Demands of Applications based
on centralised data storage!
Typically… the database is :
secure
readily accessible from all clients
queried remotely
alterable only by specific persons
Only achievable through a
client-server model
How Server Scripts can
Interact with Databases
Contain
embedded
SQL code that
can extract
data from or
send data to a
database
How Server Scripts can
Interact with Databases
Whenever a
database is
updated…
» updated data picked
up by server-script
when it runs
» updated data
displayed on client
How Server Scripts can
Interact with Databases
Whenever a
browser form
captures data…
» data transferred
directly to relevant
server
» then stored in
specified database
field(s)
How Server Scripts
Interact with Databases
Whenever database
information needs to
be presented:
database fields and
records taken into
server memory
data sent to local
machine to be
displayed within a
HTML format
Parameter Passing
between Programs
Essential to programming
Coding can rapidly get quite complex…
Essential for
product selection
passing data into a remote SQL query
sound horrendous?
» you’ll be eased into this gently…
» Starting NEXT week.
Mechanism for variable passing
between Dynamic Web Pages
HTML “GET” function:
parameter/s tagged on to the URL e.g.
» Get <www
address>/thetest.jsp?firstname=richard&password=holidays&la
stname=henson&action=transferbankfunds
Can result in v. long URLs…
Variable Passing between
Dynamic Web Pages
Alternative: “POST”
designed to be used within HTML forms…
Example of syntax, added to HTML
coding within <FORM>…
post /thetest.jsp
firstname=richard&password=holiday
s&lastname=henson&action=transfer
bankfunds
And now for the practical…
Thanks for listening!
http://csharpdotnetfreak.blogspot.com/2009/05/as
pnet-creating-shopping-cart-example.html