One of the basic parts of the internet includes databases.  Databases need to be able to interact with basic other web things - such as web pages.  The World Wide Web Consortium (W3C) is the body that comes up with the standards for WWW products and interaction.  W3C established the standards for HTTP (hyper text transfer protocol), and HTML (hyper text markup language).  The W3C deals with architecture, interaction, technology and society, and web accessibility as their four main domains.

HTML is a scripting language that defines Web document structure and layout for display purposes.  XML (Extensible Markup Language) is a scripting language that allows for the capture of data structures. XHTML extends HTML code to make it XML compliant.  Java is one language that is used quite a bit for web development.  JavaScript shares many of the features and structures of Jave.  JavaScript is used to achieve interactivity and introduce dynamic content (mouse rollovers, automatic notices, error handling), etc.  JavaScript may be embedded in HTML code.  VBScript is similar to JavaScript but is simpler and is based on Visual Basic programming language.  Cascading Style Sheets (CSS) were also developed by W3C.  The CSS defines the appearance of different elements, such as headers and links.  CSS can be applied to any web page.  XSL is a language used to develop style sheets (similar to CSS - but describes how an XML document will be displayed).  XSLT is a language used to transform complex XML documents and also used to create HTML pages from XML documents.  XP)ath is one of a set of XML technologies that supports XQuery development.  XPath expressions are used to locate data in XML documents.  XLink is an XML markup language used to create hypertext links.  It describes how the links are inserted into an XML document.  XPointer is used along with XLink to establish hypertext links to any URL reference within an XML document. 

XML Schema (XSD) is a language used for defining XML databases that has been recommended by the W3C.  RELAX NG is a language used for defining XML databases that is an ISO international standard.  Document Structure Description (DSD) is a language used for defining XML databases that is noted for its ease of use and expressiveness.  XQuery is an XML transformation language that allows applications to query both relational databases and XML data.

The WWW follows a client-server model.  For instance, if a client requires access to a database, the Web server has to have the capability of accessing that data - but remember Web servers only understand HTML-formatted pages.  This requires a software program - called a server-side extension that interacts directly with a Web server to handle requests. 

The process is:  a request for information is submitted from a browser via the Web into the Web server.  The SQL query for the database will be included in the script , but the Web server cannot directly interpret the code.  This requires a Web-to-database middleware (software) that identifies the query and prepares it to be passed to the database management system and the database, where the data resides.  The resulting query set is returned to the middleware, which converts the result so that it will display correctly when the WEb page is returned to the client browser.  Examples of products include:  Web servers:  Apache, Netscape Fast Track Server, Microsoft Internet Information Server; ODBC (open database connectivity) compliant database that has SQL capability - Oracle, Sybase, Microsoft Access; middleware - ColdFusion, Netscape Application Server.

Web Server interfaces are used to communicate between the Web server and the client or database.  Two common Web server interfaces are:  Common Gateway Interface (CGI) and Application Program Interface (API).  CGI specifies how to transfer information between a Web server and a CGI program.  CGI programs may be written in any language that produces executable files - C, C++, Pearl, Java or Visual Basic.  Java servlets are used as an alternative to CGI programs.  APIs are more efficient that CGI scripts.  They are implemented as shared code or dynamic link libraries (DLLs).  The code resides in memory and can be called dynamically as needed.  APIs are specific to operating systems and the Web server on which they reside and must be rewritten to run with other systems.

Domain name server (DNS) balancing is a load-balancing approach where the DNS server for the hostname of the site returns multiple IP addresses for the site.  Software and hardware load balancing is a load-balancing approach where request to one IP address are distributed among the multiple servers hosting the Web site at the TCP/IP  routing level.
  Reverse proxy is a load-balancing approach that intercepts requests from clients and caches the response on the Web server tht sends it back to the client.  Plug-ins are hardware of software modules that extend the capacilities of a browser by adding a specific feature - such as encruption, animation, or wireless access.  ActiveX is a loosely defined set of technologies developed by Microsoft that extends browswer capabilities and allows the manipulation of data inside the browser.  Cookie is a block of data stored on a client by a Web server.

Web-to-database tools that are the most popular for middle ware applications include PHP, Microsoft ASP.net, and ColdFusion.  There are six different components that must be sued together to create a dynamic Web site:

1.  A Database Management System (Oracle, etc.)

2.  A Web server (Apache, etc.)

3.  Programming languages and development technologies (ColdFusion, ASP.net, etc.)

4.  A Web browser (Explorer, Firefox Safari, etc.)

5.  A text editor (notepad, etc.)

6.  FTP - if using a remote server (SmartFTP, etc.)

Open source components that you can use for free include:

1.  DBMS - MySQL

2.  Web server - Apache Web Server

3.  Development language - PHP

Some of the problems still existing with the web include:

1.  Lack of mature standards

2.  Lack of secuirty