Presentation is loading. Please wait.

Presentation is loading. Please wait.

Connecting Databases to the Web

Similar presentations


Presentation on theme: "Connecting Databases to the Web"— Presentation transcript:

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

2 Connecting Databases to the Web
How the Web Works The old fashioned way: Web-Browser Web-Server HTTP-Request GET ... HTML-File File-System Load File January , 2000 Connecting Databases to the Web

3 Connecting Databases to the Web
How the Web Works All pages are static Need to generate web pages on the fly depending on user input ? January , 2000 Connecting Databases to the Web

4 Common Gateway Interface (CGI)
Some files on server are interpreted as programs depending on either ext., flag or special directory Program is invoked and generates MIME header and HTML on stdout Web-Server Web-Server File-System HTTP-Request Load File HTML HTML? HTML-File Execute Program Program? Output File I/O, Network, DB January , 2000 Connecting Databases to the Web

5 Connecting Databases to the Web
CGI: Discussion 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 January , 2000 Connecting Databases to the Web

6 Java Applets Web-Server Web-Server Server-Process
HTTP-Request Load File File-System HTML-File File Load Applet... Java-Class Requests Java-Classes Execute Applet... Java Virtual Machine (JVM) Server-Process January , 2000 Connecting Databases to the Web

7 Java Applets: Discussion
Advantages: Platform independent: works for every web-server and browser supporting Java Disadvantages: 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 January , 2000 Connecting Databases to the Web

8 Connecting Databases to the Web
DB Access in Java Java Applet TCP/UDP IP Java-Server-Process JDBC Driver manager JDBC-Driver JDBC-Driver JDBC-Driver Sybase Oracle ... January , 2000 Connecting Databases to the Web

9 Connecting Databases to the Web
Server Extensions 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 January , 2000 Connecting Databases to the Web

10 Server Extensions: The Basic Idea
Web-Server Web-Server HTTP-Request File-System Load File HTML HTML? HTML-File File Script? Output Server Extension I/O, Network, DB January , 2000 Connecting Databases to the Web

11 Connecting Databases to the Web
Server Extensions 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 January , 2000 Connecting Databases to the Web

12 A Quick Look at Market Shares
Market Share for Top Servers Across All Domains August October 1999 Source: January , 2000 Connecting Databases to the Web

13 ColdFusion Web-Server Web-Server HTTP-Request Load File File-System
HTML HTML? HTML-File File HTML ODBC-Driver Native DB Directories COM/CORBA CF Script? Cold Fusion Server Extension Cold Fusion Application Server 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> January , 2000 Connecting Databases to the Web

15 ColdFusion: Form Handling
<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=“ <B>Homepage</B></A> </UL> </BODY> </HTML> <HTML> <BODY> <FORM ACTION=" <H1> Find Person </H1> Person Name <INPUT NAME="PNAME"> <p> <input type="submit" value="Find"> </FORM> </BODY> </HTML> 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) January , 2000 Connecting Databases to the Web

17 Active Server Pages 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 File-System Web-Server HTTP-Request HTML-File Load File ASP-File HTML ASP-Script Output I/O, Network, DB Active Server Page Scripting Engine Active Server Components January , 2000 Connecting Databases to the Web

18 Connecting Databases to the Web
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 Web-Server Web-Server File-System HTTP-Request Load File HTML HTML-File PHP-File Output PHP-Script PHP Module Database APIs, other APIs SNMP, IMAP, POP3, LDAP, ... January , 2000 Connecting Databases to the Web

19 Connecting Databases to the Web
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> 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> January , 2000 Connecting Databases to the Web

20 Connecting Databases to the Web
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 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) January , 2000 Connecting Databases to the Web

22 Connecting Databases to the Web
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 ... January , 2000 Connecting Databases to the Web

23 Connecting Databases to the Web
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 January , 2000 Connecting Databases to the Web

24 Connecting Databases to the Web
2-tier architecture Web server plus module connecting to database, LDAP, IMAP, ... 1 HTTP-Request HTML-File Web-Server Module 2 DB Directory Mail Server SNMP January , 2000 Connecting Databases to the Web

25 Connecting Databases to the Web
2-tier architecture Advantages: easy and fast to setup easy to administer Disadvantages: not fail safe scales badly on high loads January , 2000 Connecting Databases to the Web

26 Connecting Databases to the Web
3-tier architecture Web server plus application server connecting to database, IMAP, ... 1 Web Server [Cluster] Application Server [Cluster] 2 Other Servers [Cluster] 3 DB Repl. DB DB Mail Server SNMP January , 2000 Connecting Databases to the Web

27 Connecting Databases to the Web
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? January , 2000 Connecting Databases to the Web

28 Connecting Databases to the Web
4-tier architecture 1 Web Server [Cluster] Request Router Request Router Request Router 2 Application Server [Cluster] 3 Other Servers [Cluster] 4 DB Repl. DB DB Mail Server SNMP January , 2000 Connecting Databases to the Web

29 Connecting Databases to the Web
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 January , 2000 Connecting Databases to the Web

30 Connecting Databases to the Web
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 January , 2000 Connecting Databases to the Web

31 Connecting Databases to the Web
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 ... January , 2000 Connecting Databases to the Web

32 Connecting Databases to the Web
Links Products: Apache: ASP: ColdFusion: MySQL: Oracle: Oracle Technet: PHP: Others: c|net: DevShed: Webmonkey: January , 2000 Connecting Databases to the Web


Download ppt "Connecting Databases to the Web"

Similar presentations


Ads by Google