+ All Categories
Home > Documents > 1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

Date post: 18-Jan-2018
Category:
Upload: patricia-hancock
View: 215 times
Download: 0 times
Share this document with a friend
Description:
January, 2000Connecting Databases to the Web3 How the Web Works All pages are static Need to generate web pages on the fly depending on user input ?
32
1 Connecting Databases to the Web January 31 th , 2000 Seree Chinodom
Transcript
Page 1: 1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

1

Connecting Databases to the Web

January 31th, 2000Seree Chinodom

Page 2: 1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

January , 2000 Connecting Databases to the Web 2

How the Web Works

• The old fashioned way:Web-Browser

HTTP-RequestGET ...

Web-Server

File-System

Load File

HTML-File

HTML-File

Page 3: 1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

January , 2000 Connecting Databases to the Web 3

How the Web Works

• All pages are static• Need to generate web pages on the fly depending

on user input

?

Page 4: 1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

January , 2000 Connecting Databases to the Web 4

• Some files on server are interpreted as programsdepending on either ext., flag or special directory

• Program is invoked and generates MIME header and HTML on stdout

Web-Server

Common Gateway Interface (CGI)

HTTP-Request

HTML-File

Web-Server

File-SystemLoad File

FileHTML?

HTML

Execute Program

Program?Output

I/O, Network, DB

Page 5: 1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

January , 2000 Connecting Databases to the Web 5

Advantages:

- Standardized: works for every web-server, browser

- Flexible: Any language (C++, Perl, Java, …) can be used

Disadvantages:

- Statelessness: query-by-query approach

- Inefficient: new process for every request

- Security: CGI programmer is responsible for security

- Updates: To update layout, one has to be a programmer

CGI: Discussion

Page 6: 1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

January , 2000 Connecting Databases to the Web 6

Java Applets

Web-ServerHTTP-Request

HTML-File

Web-Server

File-SystemLoad File

FileLoad Applet...

Java-Class Requests

Java-Classes

Execute Applet...

Java Virtual Machine (JVM)

Server-Process

Page 7: 1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

January , 2000 Connecting Databases to the Web 7

Advantages:- Platform independent: works for every web-server and

browser supporting JavaDisadvantages:

- Standalone Character:· Entire session runs inside applet· HTML forms are not used

- Inefficient: loading can take a long time ...- Resource intensive: Client needs to be state of the art- Restrictive: can only connect to server where applet was

loaded from (restrictions of Java VM)Note: Server-Process can be written in any language

Java Applets: Discussion

Page 8: 1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

January , 2000 Connecting Databases to the Web 8

Java-Server-Process

DB Access in Java

Sybase

Java Applet

TCP/UDPIP

Oracle ...

JDBC-Driver

JDBC-Driver

JDBC-Driver

JDBC Driver manager

Page 9: 1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

January , 2000 Connecting Databases to the Web 9

Previous Approaches- Platform independent and standardized

- Simple interface

- Lots of programming necessary

- Inefficient

Server Extensions- Server is extended with handler/module

- One handler for all incoming requests

- Much more efficient

Server Extensions

Page 10: 1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

January , 2000 Connecting Databases to the Web 10

Server Extensions: The Basic Idea

File-SystemWeb-Server

HTTP-Request

HTML-File

Web-Server

Load File

FileHTML?HTML

I/O, Network, DB

Script?Output

Server Extension

Page 11: 1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

January , 2000 Connecting Databases to the Web 11

• API depends on Server vendor:- Apache Foundation Apache Server: Apache API- Microsoft Internet Information Server: ISAPI- Netscape Enterprise Server: NSAPI

• One can define it’s own server extension, e.g.- Authentication module- Counter module

Server Extensions

Page 12: 1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

January , 2000 Connecting Databases to the Web 12

A Quick Look at Market Shares

Source: http://www.netcraft.com/survey/

Market Share for Top Servers Across All DomainsAugust 1995 - October 1999

Page 13: 1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

January , 2000 Connecting Databases to the Web 13

ColdFusion

File-SystemWeb-Server

HTTP-Request

HTML-File

Web-Server

Load File

FileHTML?

HTML

CF Script?HTML

Cold Fusion Server Extension

Cold Fusion Application Server

ODBC-Driver Native

DB DB

Email

Directories

COM/CORBA

Page 14: 1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

January , 2000 Connecting Databases to the Web 14

ColdFusion: Simple Query

• Proprietary Scripting Language CFML - similar to other scripting languages<CFQUERY NAME=“PersonList”

DATASOURCE=“PersonDB”>SELECT * FROM Persons

</CFQUERY><HTML><BODY><H1> Person List </H1><CFOUTPUT QUERY=“PersonList”>

<B>Name:</B> #Name#<B>Age:</B> #Age# <B>Salary:</B> $#Sal# <BR>

</CFOUTPUT></BODY></HTML>

<HTML><BODY><H1> Person List </H1><B>Name:</B> Tom <B>Age:</B> 45<B>Salary:</B> $45000 <BR><B>Name:</B> Jim <B>Age:</B> 38<B>Salary:</B> $40000 <BR><B>Name:</B> Karen <B>Age:</B> 26<B>Salary:</B> $32000 <BR></BODY></HTML>

Page 15: 1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

January , 2000 Connecting Databases to the Web 15

ColdFusion: Form Handling

<HTML><BODY><FORM ACTION="http://www.abc.com/cf/pf.cfm"><H1> Find Person </H1>Person Name <INPUT NAME="PNAME"> <p><input type="submit" value="Find"></FORM></BODY></HTML>

<CFQUERY NAME=“PersonInfo” DATASOURCE=“PersonDB”>SELECT * FROM Persons WHERE Name=#Form.PName#

</CFQUERY><HTML><BODY><CFOUTPUT QUERY=“PersonInfo”><H1> #Name# </H1><UL> <LI><B>Age:</B> #Age# <LI><B>Salary:</B> $#Sal# <LI><A href=“#URL#”><B>Homepage</B> </A></UL></CFOUTPUT></BODY></HTML>

<HTML><BODY><H1> Tom </H1><UL> <LI><B>Age:</B> 45 <LI><B>Salary:</B> $45000 <LI><A href=“www.tom.com” <B>Homepage</B></A></UL></BODY></HTML>

Page 16: 1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

January , 2000 Connecting Databases to the Web 16

ColdFusion: Misc. Issues

• Siteadmin sets up data sources very similar to the handling of ODBC data sources in MS Windows

• In fact ColdFusion combines techniques to access databases:- Generation of HTML code- Java Applets embedded via <CFGRID></CFGRID>

access the database through the application server• Application server is also gateway to database

for the ColdFusion IDE (ColdFusion Studio)

Page 17: 1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

January , 2000 Connecting Databases to the Web 17

• Active Server Pages (ASPs)- Available in IIS and Personal Web

Server- Based on VBScript, Jscript- Code in <% ... %>- Modular Object Modell- Active Server

Components- Active Data Objects for

Database access

Active Server Pages

File-SystemWeb-Server

HTTP-Request

HTML-File

Load File

ASP-File

HTML

ASP-ScriptOutput

I/O, Network, DBActive Server PageScripting Engine

Active Server Components

Page 18: 1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

January , 2000 Connecting Databases to the Web 18

PHP

How does PHP differ from ASP and CF?

• Free, open source• Many client libraries

integrated• Runs on any web

server supporting CGIs (MS Windows or Unix)

• Module version for Apache

File-SystemWeb-Server

HTTP-Request

HTML-File

Load File

PHP-File

HTML

PHP-ScriptOutput

Database APIs, other APIs SNMP, IMAP, POP3, LDAP, ...

PHP

Module

Web-Server

Page 19: 1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

January , 2000 Connecting Databases to the Web 19

PHP: an Example<HTML> <BODY>

<?PHP $db = mysql_connect("localhost", "root"); mysql_select_db("mydb",$db); $result = mysql_query("SELECT * FROM employees",$db);?>

<TABLE BORDER=1> <TR><TD>NAME</TD><TD>POSITION</TR>

<?PHP while ($myrow = mysql_fetch_row($result)) { printf("<tr><td>%s %s</td><td>%s</td></tr>\n", $myrow[1], $myrow[2], $myrow[3]); } ?>

</TABLE></BODY></HTML>

Page 20: 1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

January , 2000 Connecting Databases to the Web 20

PHP: Misc. Issues

• Syntax Perl/C like• Form fields are available as variables in

following page• has e.g. image and PDF generation on the fly• some OO features (e.g. classes)• Version 4 in beta test has

- more OO features- is based on a different, faster scripting engine- more modular architecture

• The number of functions is steadily increasing

Page 21: 1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

January , 2000 Connecting Databases to the Web 21

Databases Usually Used• ASP

- MS Jet Engine (DB engine behind MS Access)- MS SQL Server- Oracle (ODBC)

• ColdFusion- Oracle (native driver support)- Informix (native driver support)- Sybase (native driver support)

• PHP- MySQL (linked in client library)- mSQL (linked in client library)- Postgres (linked in client library)- Oracle (linked in client library)

Page 22: 1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

January , 2000 Connecting Databases to the Web 22

What Else Is Out There?

• Oracle Application Server (formerly known as OWS)- 3-tier architecture- PENN ExpressApp is based on OWS

• Informix Web datablade• Servlets for Java based web server• various web shop applications

- all of them use a more or less sophisticated scripting language

• and a lot more ...

Page 23: 1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

January , 2000 Connecting Databases to the Web 23

Architectures

• The architecture is the kind and number of servers involved

• Different architectures different advantages and disadvantages

• Generally we can distinguish between three different types:- 2-tier architecture- 3-tier architecture- 4-tier architecture

Page 24: 1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

January , 2000 Connecting Databases to the Web 24

Web-Server

2-tier architecture

• Web server plus module connecting to database, LDAP, IMAP, ...

HTTP-Request

HTML-File

Module

DB Directory

Mail Server

SNMP

1

2

Page 25: 1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

January , 2000 Connecting Databases to the Web 25

2-tier architecture

• Advantages:- easy and fast to setup- easy to administer

• Disadvantages:- not fail safe- scales badly on high loads

Page 26: 1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

January , 2000 Connecting Databases to the Web 26

3-tier architecture

• Web server plus application server connecting to database, IMAP, ...

DB DB Mail Server

SNMP

1

3

2

Web Server [Cluster]

Application Server [Cluster]

Other Servers [Cluster]

DBRepl.

Page 27: 1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

January , 2000 Connecting Databases to the Web 27

3-tier architecture

• Advantages:- better scalability- more reliable through failover mechanisms- offers better load balancing

• Disadvantages:- already complicated to set up- who is responsible for load balancing?

Page 28: 1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

January , 2000 Connecting Databases to the Web 28

4-tier architecture

DB DB Mail Server

SNMP

1

4

3

Web Server [Cluster]

Application Server [Cluster]

Other Servers [Cluster]

DBRepl.

2Request Router

Request Router

Request Router

Page 29: 1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

January , 2000 Connecting Databases to the Web 29

4-tier architecture

• Advantages:- even better scalability- better failover mechanisms- Request routers offer better load balancing- Easier to administer (number of request router

usually small)

• Disadvantages:- initial setup very complicated

Page 30: 1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

January , 2000 Connecting Databases to the Web 30

Architectures: Usage

• 2-tier- Apache-PHP plus Database etc.

• 3-tier- ColdFusion 4.0x- Oracle Web Application Server?

• 4-tier- Web shops like Intershop, ...- ColdFusion 4.5x?- Oracle Application Server?

Classification not always 100% clear

Page 31: 1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

January , 2000 Connecting Databases to the Web 31

Security Issues

• Complicated architecture More potential for glitches

• Protection of users from each other

• Web server with DB nice way for hacker into main database

• ...

Page 32: 1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.

January , 2000 Connecting Databases to the Web 32

Links

• Products:- Apache: http://www.apache.org/- ASP: http://msdn.microsoft.com/workshop/server/default.asp- ColdFusion: http://www.allaire.com/coldfusion/- MySQL: http://www.mysql.com/ - Oracle: http://www.oracle.net/- Oracle Technet: http://technet.oracle.net/- PHP: http://www.php.net/

• Others:- c|net: http://www.builder.com/- DevShed: http://www.devshed.com/Server_Side/- Webmonkey: http://www.hotwired.com/webmonkey/


Recommended