Table of Contents
- Web Servers
- Layers of Web Programming
- Text Formatting
- Browser Scripting
- Server Scripting
- Databases
- Data Formats
- Enterprise Architectures
The term web server is used to refer to both the physical computer responsible for providing web services, and the software running on that computer that provides the web services (http://en.wikipedia.org/wiki/Web_server). The software responsible for providing web services is also referred to as an application server (http://en.wikipedia.org/wiki/Application_server). The hardware for a good web server is expensive, along with the cost of bandwidth depending on the service provider and traffic. For this reason smaller to medium sized websites are run on web hosts, which are web hosting service providers that provide the web server and application server for multiple entities (http://en.wikipedia.org/wiki/Web_host). The application server of the web host determines the server-side scripting languages, databases, and enterprise frameworks that you can use. The following are some of the more popular application servers, for a list of all web servers see http://en.wikipedia.org/wiki/Comparison_of_web_servers:
- IIS (Internet Information Systems)
- Apache
- Apache Tomcat
- JAS (Java Application Server)
IIS (Internet Information Systems)
IIS is a Microsoft technology for running web services on a web server. Typically IIS is used to run the server-side scripting language ASP and the .NET framework. It also is commonly used with the database management system (DBMS) MS Access and MS SQL. IIS comes with Windows Server OS, and with Windows XP and MCE.
- Wikipedia General Information - http://en.wikipedia.org/wiki/Internet_Information_Services
- Microsoft IIS Home - http://www.microsoft.com/WindowsServer2003/iis/default.mspx
- Installation Guide for Windows XP - http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/iiiisin2.mspx?mfr=true
Apache originally was a Unix based application server, but has since been ported to Linux, Windows, and OS X. It is free and open source, and is credited with playing a key role in the growth of the Internet. Apache is typically used to run the server-side scripting language PHP, and the database management system MySQL.
- Wikipedia General Information - http://en.wikipedia.org/wiki/Apache_HTTP_Server
- Apache Homepage - http://httpd.apache.org/
Apache Tomcat is a web container that implements Java Server Pages. Since this is Java based it is cross platform compatible, so it can run on any operating system and can use any DBMS that has a driver for Java. It should also be noted that projects such as Jakarta allow Apache Tomcat to run with IIS.
- Wikipedia General Information - http://en.wikipedia.org/wiki/Apache_Tomcat
- Tomcat Guide - http://www.oreilly.com/catalog/tomcat/
- J2EE Scripting in JSP - http://java.sun.com/javaee/5/docs/tutorial/doc/JSPAdvanced.html
- Java Home Page - http://java.sun.com
JAS is a platform used for delivering server-side web content using the J2EE framework, which includes JSP, servlets, and EJBs (Enterprise Java Beans). JAS includes its own database and can work with any other DBMS with a driver for Java.
- Wikipedia General Information - http://en.wikipedia.org/wiki/J2ee
- J2EE Tutorial - http://java.sun.com/javaee/5/docs/tutorial/doc/
- Download JAS and J2EE - http://java.sun.com/javaee/downloads/index.jsp
- Java Home Page - http://java.sun.com
Most people consider the web a mysterious random conglomeration of applications and content of different types and uses, with no categories or organization. While the web is a random series of static and dynamic content, the languages used to generate an maintain that content can be grouped by function and usages. Instead of just referring to every individual language used on the web, I find it more intuitive to group languages by overall function, and divide functions into layers.
- Text formatting - These are languages that are just used to specify how to handle text in browsers.
- Browser Scripting - These are languages that are used to program the behavior of the browser.
- Server Scripting - These are languages that are used to program the behavior of the server.
- Databases - This refers to the where data is stored, and the language used to communicate with those databases.
- Data Formats - This refers to the various formats that are used to pass data on the web, which may or may not be independent of a database.
- Enterprise Architectures - These are packages of web technologies which encapsulate all of the other layers.
The text formatting languages on the web are basically variations of the Hyper Text Markup Language (HTML), and Cascading Style Sheets (CSS).
HTML (Hyper Text Markup Language)
HTML is simply a language for formatting text in files with the "htm" or "html " file extension. HTML uses markup tags to define what to do with text when it is interpreted by the browser. For example "<b>This is text</b>" in HTML would be displayed as "This is text" in a browser. The <b> markup tag is used to make text bold. While HTML can be done in any text editor, there are many tools that work like a Word Processor for generating HTML, so that the user doesn't have to remember all of the markup tags.
Tools for generating HTML
- Microsoft Frontpage - General Information
- Adobe Dreamweaver - General Information
- Ekit (free) - General Information and Download
HTML Tutorials
- W3Schools HTML - http://www.w3schools.com/html/default.asp
- W3Schools XHTML - http://www.w3schools.com/xhtml/default.asp
- Wikipedia General Information - http://en.wikipedia.org/wiki/HTML
CSS is used to define how to display individual HTML elements, by defining display properties within an HTML page or by linking HTML pages to external files with the "css" file extension.
- W3Schools CSS - http://www.w3schools.com/css/default.asp
- Wikipedia General Information - http://en.wikipedia.org/wiki/CSS
The following are the most common languages and practices for programming the behavior of the browser (list from www.w3schools.com) :
- JavaScript
- HTML DOM (Hyper Text Markup Language Document Object Model)
- DHTML (Dynamic Hyper Text Markup Language)
- VBScript (Visual Basic Script)
- AJAX (Asynchronous JavaScript and XML)
- AppML (Application Markup Language)
- E4X (ECMAScript for XML)
- WMLScript (Wireless Markup Language Script)
JavaScript is a scripting language for programming the behavior of the browser, with syntax similar to that of the Java programming language. It should also be noted that JavaScript and the Java programming language are not the same thing. JavaScript can be embedded within an HTML page, or linked externally as a file with a ".js" file extension. Either way JavaScript is executed at runtime by the browser itself in order to provide dynamic interaction.
- W3Schools JavaScript - http://www.w3schools.com/js/default.asp
- Wikipedia General Information - http://en.wikipedia.org/wiki/Javascript
- Dojo Toolkit - http://dojotoolkit.org/about
- Java Homepage - http://java.sun.com
HTML DOM (Hyper Text Markup Language Document Object Model)
HTML DOM is a standardized set of methods for the management of HTML documents for multiple programming languages, by dividing the HTML document into a node tree:
Image from W3Schools - http://www.w3schools.com/htmldom/dom_nodes.asp
W3Schools HTML DOM - http://www.w3schools.com/htmldom/default.asp
Wikipedia General Information - http://en.wikipedia.org/wiki/Document_Object_Model
DHTML (Dynamic Hyper Text Markup Language)
DHTML is not a language itself, but is used to describe a combination of web languages used to add dynamic content to HTML. Usually the combination consists of HTML 4.0, CSS, DOM, and JavaScript.
W3Schools DHTML - http://www.w3schools.com/dhtml/default.asp
Wikipedia General Information - http://en.wikipedia.org/wiki/DHTML
VBScript (Visual Basic Script)
VB Script is a language for programming the behavior of the browser, with syntax similar to Visual Basic. VBScript is executed at runtime by the browser itself in order to provide dynamic interaction.
W3Schools VBScript - http://www.w3schools.com/vbscript/default.asp
Wikipedia General Information - http://en.wikipedia.org/wiki/VBScript
AJAX (Asynchronous JavaScript and XML)
AJAX is not a language, but is a technique for using JavaScript, XML, HTML, and CSS to create more interactive web pages faster.
W3Schools AJAX - http://www.w3schools.com/ajax/default.asp
Wikipedia General Information - http://en.wikipedia.org/wiki/Ajax_%28programming%29
AppML (Application Markup Language)
AppML is a declarative language that uses XML to describe internet applications, which is open source and browser independent. AppML XML files reside on a web server and use an AppML web service for execution.
W3Schools AppML - http://www.w3schools.com/appml/default.asp
Wikipedia General Information - http://en.wikipedia.org/wiki/Appml
E4X is an standardized extension of JavaScript that includes direct support of XML.
W3Schools E4X - http://www.w3schools.com/e4x/default.asp
Wikipedia General Information - http://en.wikipedia.org/wiki/E4x
Java Homepage - http://java.sun.com
WMLScript (Wireless Markup Language Script)
WMLScript is a browser scripting language for WML pages, which are pages written in an XLM based markup language that inherits from HTML, intended to be viewed by wireless devices.
W3Schools WMLScript - http://www.w3schools.com/wmlscript/default.asp
Wikipedia General Information - http://en.wikipedia.org/wiki/WMLScript
Server scripting languages are used to execute code directly on the server. Because these languages are executed on the server, no browser client support is needed. In the 3-tier architecture server side languages reside in the application/logic tier, while in the MVC pattern the server side languages reside in the controller. The following are the most common languages for programming the behavior of the server:
-
ASP (Active Server Pages)
-
ESP (Escapade Server Pages)
-
JSP (JavaServer Pages)
-
CFML (ColdFusion Markup Language)
-
PHP (Hypertext Preprocessor)
ASP is a Microsoft technology that most commonly runs on the Internet Information Systems (IIS) web service used for generating dynamic web pages. ASP pages can actually be written in either VBScript, PerlScript, or JScript, where VBScript is the most common implementation. Though ASP is still in widespread use it has evolved into ASP.NET as part of the .NET architecture, which is discussed later.
W3Schools Tutorial - http://www.w3schools.com/asp/default.asp
Wikipedia General Information - http://en.wikipedia.org/wiki/Active_Server_Pages
ASP Tutorials - http://www.asp101.com/
DevGuru Quick ASP Reference - http://devguru.com/technologies/asp/index.asp
ESP is a server-side scripting language the runs on Linux and Unix based platforms. It is commonly used in Europe but is generally not used within the US.
Wikipedia General Information - http://en.wikipedia.org/wiki/Escapade
Scripting Engine Download - http://www.squishedmosquito.com/
JSP is a Java technology server-side scripting language with XML-like syntax that can run on Tomcat or JAS (Java Application Server), which is part of the J2EE architecture but can be used by itself.
Wikipedia General Information - http://en.wikipedia.org/wiki/JavaServer_Pages
JSP Homepage - http://java.sun.com/products/jsp/index.jsp
Java Homepage - http://java.sun.com
CFML (ColdFusion Markup Language)
CFML is an XML based server-side scripting language that typically runs on the Adobe ColdFusion application server.
Wikipedia General Information - http://en.wikipedia.org/wiki/ColdFusion_Markup_Language
ColdFusion Homepage - http://www.adobe.com/products/coldfusion/
ColdFusion Tutorials - http://www.adobe.com/devnet/coldfusion/getting_started.html
PHP is a server-side scripting language with syntax similar to PERL. It typically runs on the Apache application server.
Wikipedia General Information - http://en.wikipedia.org/wiki/PHP
PHP Tutorial - http://www.w3schools.com/php/default.asp
A database is a structured collection of data (http://en.wikipedia.org/wiki/Database), but in web programming the term database usually refers to the software used to manage and query the database. This software is referred to as a Database Management System (DBMS), or more correctly for database systems that are based on the relational model, Relational Database Management Systems (RDBMS). The relational model uses predicate logic and set theory to imply relationships between data within in a database (http://en.wikipedia.org/wiki/Database#Relational_model), which yields the ability to have related data. Communication with databases occurs through the use of queries using the Structured Query Language (SQL), which varies slightly from one database system to the next. Some of the more popular database systems are as follows:
Microsoft Access, now called Microsoft Office Access, is a simple relational database management system that what it lacks in power makes up for in simplicity. Microsoft Access doesn't require an application server and can be used as a desktop application, but when run with an application server it is typically IIS.
Wikipedia General Information - http://en.wikipedia.org/wiki/Ms_access
Tutorial - http://www.drewslair.com/desk/access_series/Intro.htm
Homepage - http://office.microsoft.com/en-us/access/default.aspx
Microsoft SQL Server is a relational database management system that typically runs on IIS.
Wikipedia General Information - http://en.wikipedia.org/wiki/Microsoft_SQL_Server
Homepage - http://www.microsoft.com/sql/default.mspx
MySQL is a relational database management system that runs on numerous application servers, notably Apache and IIS.
Wikipedia General Information - http://en.wikipedia.org/wiki/Mysql
Homepage - http://www.mysql.com/products/database/
Sybase is a relational database management system that at one time was almost identical to MS SQL Server, but has since branched off into its own. It also runs on multiple platforms including Windows (IIS).
Wikipedia General Information - http://en.wikipedia.org/wiki/Sybase
Sybase Online Documentation - http://www.sybase.com/support/manuals/
The term Oracle is used to refer to both a relational database management system and the company that makes it. Oracle runs on multiple platforms, but is the most expensive of RDMS with prices depending on license agreement that range from $149 per user to $40,000 per machine.
Wikipedia General Information - http://en.wikipedia.org/wiki/Oracle_database
Oracle Homepage - http://www.oracle.com/technology/software/products/database/oracle10g/
DB2 is IBM's relational database management system, which runs on multiple platforms (Windows, Linux, and Unix).
Wikipedia General Information - http://en.wikipedia.org/wiki/IBM_DB2
DB2 Homepage - http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp
PostgreSQL is an object-relational database management system (ORDBMS), which is a relational database management system that allows developers to integrate the database with their own custom data types and methods (http://en.wikipedia.org/wiki/ORDBMS).
Wikipedia General Information - http://en.wikipedia.org/wiki/Postgresql
PostgreSQL Homepage - http://www.postgresql.org/
The term data format in the context of this document is used to refer to standardized methods for storing and/or transmitting data with or without the use of a database. All of the formats described here are XML based, which means they use the XML syntax for storing self-describing data.
-
Linking in XML - XLink and XPointer
The Extensible Markup Language (XML) is a general purpose markup language used for storing self-descriptive data in a human readable format using tree-based structures.
Wikipedia General Information - http://en.wikipedia.org/wiki/Xml
W3Schools Tutorial - http://www.w3schools.com/xml/default.asp
The Extensible Stylesheet Language (XSL) is stylesheet language for XML, and is used to describe how an XML document should be displayed in the same way that CSS does for HTML. XSL consists of XSLT, XSL-FO, and XPath.
Wikipedia General Information - http://en.wikipedia.org/wiki/Extensible_Stylesheet_Language
W3Schools Tutorial - http://www.w3schools.com/xsl/xsl_languages.asp
XSL Transformations (XSLT) is a language for transforming XML documents.
Wikipedia General Information - http://en.wikipedia.org/wiki/XSL_Transformations
W3Schools Tutorial - http://en.wikipedia.org/wiki/XSL_Transformations
XSL Formatting Objects (XSL-FO) is a language for formatting XML documents.
Wikipedia General Information - http://en.wikipedia.org/wiki/XSL-FO
W3Schools Tutorial - http://www.w3schools.com/xslfo/default.asp
XML Path (XPath) is a language for navigating XML documents.
Wikipedia General Information - http://en.wikipedia.org/wiki/XPath
W3Schools Tutorial - http://www.w3schools.com/xpath/default.asp
XML Query (XQuery) is a language for querying XML documents similar to SQL.
Wikipedia General Information - http://en.wikipedia.org/wiki/XQuery
W3Schools Tutorial - http://www.w3schools.com/xquery/default.asp
XML Link (XLink) defines a format for creating hyperlinks in XML documents, while XML Pointer (XPointer) defines a format for creating hyperlinks to point to more specific parts of XML documents.
Wikipedia General Information - http://en.wikipedia.org/wiki/Xlink
W3Schools Tutorial - http://www.w3schools.com/xlink/default.asp
Document Type Definition (DTD) is used to define the structure of XML documents.
Wikipedia General Information - http://en.wikipedia.org/wiki/Document_Type_Definition
W3Schools Tutorial - http://www.w3schools.com/dtd/default.asp
XML Schema Definition (XSD) is an alternative to DTD and is used to define the structure of XML documents.
Wikipedia General Information - http://en.wikipedia.org/wiki/Xsd
W3Schools Tutorial - http://www.w3schools.com/schema/default.asp
XML Document Object Model (XML DOM) defines a standard way for traversing and manipulating XML documents.
Wikipedia General Information - http://en.wikipedia.org/wiki/DOM_%28XML_API%29
W3Schools Tutorial - http://www.w3schools.com/dom/default.asp
Simple Object Access Protocol (SOAP) is an XML based protocol for communication over HTTP.
Wikipedia General Information - http://en.wikipedia.org/wiki/SOAP
W3Schools Tutorial - http://www.w3schools.com/soap/default.asp
The Web Services Description Language (WSDL) uses XML to describe web services and how they are accessed.
Wikipedia General Information - http://en.wikipedia.org/wiki/WSDL
W3Schools Tutorial - http://www.w3schools.com/wsdl/default.asp
The Resource Description Framework (RDF) is a standard for describing web resources.
Wikipedia General Information - http://en.wikipedia.org/wiki/Resource_Description_Framework
W3Schools Tutorial - http://www.w3schools.com/rdf/default.asp
Really Simple Syndication is an XML based method distributing web content, most commonly in the form of news feeds.
Wikipedia General Information - http://en.wikipedia.org/wiki/RSS
W3Schools Tutorial - http://www.w3schools.com/rss/rss_intro.asp
In terms of the Web Enterprise, Enterprise Frameworks refer to a group of related services for creating and managing web content over all tiers of web development using defined practices, tools, and methods. Two popular and competing Enterprise Frameworks are .NET and J2EE.
Java Platform, Enterprise Edition (Java EE) is the industry standard for developing portable, robust, scalable and secure server-side Java applications (http://java.sun.com/javaee/). As shown in the following figure, J2EE provides the framework for all tiers of web development:
Image from java.sun.com - http://java.sun.com/javaee/5/docs/tutorial/doc/
-
J2EE Homepage - http://java.sun.com/javaee/
-
J2EE Tutorial - http://java.sun.com/javaee/5/docs/tutorial/doc/
-
Wikipedia General Information - http://en.wikipedia.org/wiki/J2ee
The .NET Framework provides a large body of pre-coded solutions to common program requirements, and manages the execution of programs written specifically for the framework (http://en.wikipedia.org/wiki/Microsoft_.NET_Framework#.NET_Framework_architecture). As does J2EE, the .NET Framework encompasses all tiers of web development. It also relies on the Common Language Infrastructure (CLI) to take in code from different languages in order to execute the result on the windows platform:
Image from Wikipedia - http://en.wikipedia.org/wiki/Microsoft_.NET_Framework
-
.NET Developer Homepage - http://msdn.microsoft.com/netframework/
-
Wikipedia General Information - http://en.wikipedia.org/wiki/.NET_Framework
2 comments:
This is a very thorough information source! I am from Texas myself originally, from McAllen, TX down in the Valley.
Best,
Brad Neuberg
http://codinginparadise.org
Nice job John.
Regarding databases, there's also SQLite that some people like a lot.
Also, regarding data structures, JSON is somewhat similar to XML, but with sometimes much less overhead.
Mark
Post a Comment