1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom
January, 2000Connecting Databases to the Web2 How the Web Works The old fashioned way: Web-Browser HTTP-Request GET... Web-Server File-System Load File HTML-File
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 ?
January, 2000Connecting Databases to the Web4 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 Common Gateway Interface (CGI) HTTP-Request HTML-File Web-Server File-System Load File File HTML? HTML Execute Program Program?Output I/O, Network, DB
January, 2000Connecting Databases to the Web5 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
January, 2000Connecting Databases to the Web6 Java Applets Web-Server HTTP-Request HTML-File Web-Server File-System Load File File Load Applet... Java-Class Requests Java-Classes Execute Applet... Java Virtual Machine (JVM) Server- Process
January, 2000Connecting Databases to the Web7 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 Java Applets: Discussion
January, 2000Connecting Databases to the Web8 Java-Server-Process DB Access in Java Sybase Java Applet TCP/UDP IP Oracle... JDBC- Driver JDBC Driver manager
January, 2000Connecting Databases to the Web9 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
January, 2000Connecting Databases to the Web10 Server Extensions: The Basic Idea File-System Web-Server HTTP-Request HTML-File Web-Server Load File File HTML? HTML I/O, Network, DB Script? Output Server Extension
January, 2000Connecting Databases to the Web11 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
January, 2000Connecting Databases to the Web12 A Quick Look at Market Shares Source: Market Share for Top Servers Across All Domains August October 1999
January, 2000Connecting Databases to the Web13 ColdFusion File-System Web-Server HTTP-Request HTML-File Web-Server Load File File HTML? HTML CF Script? HTML Cold Fusion Server Extension Cold Fusion Application Server ODBC-DriverNative DB Directories COM/CORBA
January, 2000Connecting Databases to the Web14 ColdFusion: Simple Query Proprietary Scripting Language CFML - similar to other scripting languages SELECT * FROM Persons Person List Name: #Name# Age: #Age# Salary: $#Sal# Person List Name: Tom Age: 45 Salary: $45000 Name: Jim Age: 38 Salary: $40000 Name: Karen Age: 26 Salary: $32000
January, 2000Connecting Databases to the Web15 ColdFusion: Form Handling <FORM ACTION=" Find Person Person Name SELECT * FROM Persons WHERE Name=#Form.PName# #Name# Age: #Age# Salary: $#Sal# Homepage Tom Age: 45 Salary: $45000 <A href=“ Homepage
January, 2000Connecting Databases to the Web16 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 access the database through the application server Application server is also gateway to database for the ColdFusion IDE (ColdFusion Studio)
January, 2000Connecting Databases to the Web17 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-System Web-Server HTTP-Request HTML-File Load File ASP-File HTML ASP-ScriptOutput I/O, Network, DB Active Server Page Scripting Engine Active Server Components
January, 2000Connecting Databases to the Web18 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-System Web-Server HTTP-Request HTML-File Load File PHP-File HTML PHP-ScriptOutput Database APIs, other APIs SNMP, IMAP, POP3, LDAP,... PHP Module Web-Server
January, 2000Connecting Databases to the Web19 PHP: an Example <?PHP $db = mysql_connect("localhost", "root"); mysql_select_db("mydb",$db); $result = mysql_query("SELECT * FROM employees",$db); ?> NAME POSITION <?PHP while ($myrow = mysql_fetch_row($result)) { printf(" %s %s %s \n", $myrow[1], $myrow[2], $myrow[3]); } ?>
January, 2000Connecting Databases to the Web20 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, 2000Connecting Databases to the Web21 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, 2000Connecting Databases to the Web22 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, 2000Connecting Databases to the Web23 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, 2000Connecting Databases to the Web24 Web-Server 2-tier architecture Web server plus module connecting to database, LDAP, IMAP,... HTTP-Request HTML-File Module DBDirectory Mail Server SNMP 1 2
January, 2000Connecting Databases to the Web25 2-tier architecture Advantages: -easy and fast to setup -easy to administer Disadvantages: -not fail safe -scales badly on high loads
January, 2000Connecting Databases to the Web26 3-tier architecture Web server plus application server connecting to database, IMAP,... DB Mail Server SNMP Web Server [Cluster] Application Server [Cluster] Other Servers [Cluster] DB Repl.
January, 2000Connecting Databases to the Web27 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, 2000Connecting Databases to the Web28 4-tier architecture DB Mail Server SNMP Web Server [Cluster] Application Server [Cluster] Other Servers [Cluster] DB Repl. 2 Request Router
January, 2000Connecting Databases to the Web29 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, 2000Connecting Databases to the Web30 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, 2000Connecting Databases to the Web31 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, 2000Connecting Databases to the Web32 Links Products: -Apache: -ASP: -ColdFusion: -MySQL: -Oracle: -Oracle Technet: -PHP: Others: -c|net: -DevShed: -Webmonkey: