WEB Sites - CERN to CMS
In 1989, British Engineer, Tim Berners-Lee published a paper that proposed what would become the foundation of the World Wide Web. At a research institution with offices located in France and Switzerland named "CERN", Berners-Lee and colleagues put theory into practice.
While supporting valued services such as email and file transfer, the Internet was not widely understood or used by the general public. With development of the World Wide Web and growing awareness of the Information Super Highway as highlighted during the the 1992 Clinton/Gore US Presidential Campaign, the Internet took off. By 1995, Internet services companies that could provide Internet access and support WWW and email services were being established throughout the US and the World.
From the very beginnings, WWW browsers displayed images, text and links to WEB Sites via the Hypertext Protocol also known as HTTP. To this day, HTTP and its secure version, SSL/HTTPS, support the vast resources of the World Wide WEB.
To access WEB sites, computer, smartphone and tablet users use a client application named a WEB Browser to link to WEB Sites on servers wuich may be located on their private network or through out the world via the public Internet. The common browsers include:
- Microsoft Internet Explorer, Windows Only
- Mozilla Firefox, Windows, Mac, Linux/Unix
- Apple Safari, Mac and Windows
- Google Chrome
Smartphones and Tablets also feature browsers that work with WIFI or phone data plans with carriers such as ATT, Verizon, Sprint and T-Mobile.
On the server side, developers create web pages that are then available to browsers on private networks or across the Public WEB. Access is controlled so that entire sites or just specific parts are available. Access can be controlled via username and PW authentication and authorization, originating IP Address, SSL Digital Certificates or Virtual Private Network (VPN).
In the very early days, WEB pages were developed by hand with simple text editors. In 1994 I subscribed to a new ISP service named PCNET which was then located in Cheshire Connecticut. Using a telephone modem and a special software on my Windows 3.1 computer, I was able to attach to the Internet. As part of the package, PCNET provide a shell account on one of their UNIX servers.
Once I logged into my shell account via the telnet protocol, I was able to execute shell programs. One named vi, allowed me to create and edit text files. By creating a file named index.html, I was able to implement my very first WEB page. Here is an example of what I may created.
Welcome to my WEB page.
As displayed in a WEB browser:
Welcome to my WEB Page.
This example would be available to WWW users via:
The tilde (~) was used to indicate my home directory. Eventually I was able to register my own domain name and then browse as:
Changes to the WEB server configuration required to support my domain name were accomplished for me by PCNET's staff.
Getting back to the actual index.html file, HTML tags are used to control formatting, linking and display of pages. I used the following:
<h1> and </h1>. These indicated the start and end of Heading Style 1.
<p>. Indicates the beginning of a new paragraph.
The process of hand coding pages via Unix shell accounts of large and complex WEB sites became unsatisfactory. An early practice for users that did not have shell accounts was to prepare pages on local machines and then use File Transfer Protocol (FTP) client software to upload files to the WEB site. Eventually text editors incorporated built File Transfer capabilities so that files could be retrieved, edited and saved back on the WEB server.
With the proliferation of MAC and Windows personal computers in the mid 1990's, a logical next step was development of "What You See is What You Get", WSYWG, word processors and editors. Frontpage was an early offering by Microsoft that facilitated building complex WEB pages. Others that were developed included Adobe Pagemill, MAC BBEdit and others. Today Adobe Dreamweaver is a leader in this technology.
Early in the beginning of WEB server development, scripting was developed. Computer programers and web designers with programming experitise developed programs often termed scripts or applets, that could be executed on WEB servers as part of WEB sites. For example, a script could attach to a database to list customer names, email and phone numbers in a table on a web page. Scripts could also be crafted to support entry, edit and deletion of data. The following programming languages are commonly used for these tasks.
Active Server Pages (.asp) - Windows Only
Perl (.pl) Primarily Mac/Linux/Unix but also Windows
php (.php) Primarily Mac/Unix/Linux but also Windows
Java (.jsp and applet) All systems
Windows .NET Frramwork. C, C#, Java - Windows Only
Once data base components became common for managing data on WEB pages, a logical next step was to have database tools control the content of the WEB pages. In the late 90's developers such as Colleen Tully and David Hodges and I began to control and manage the content on pages via database driven WEB forms. Thus WEB users could remotely add and edit content displayed on pages. This eventually became kown as Dynamic Content. So for example there might be a section of a WEB page that provide current news. So a user with permission could modify a database record via a WEB form that would immediately change data on the WEB page.
I developed an entire system that allowed creation of Dynamic Web Sites using perl on unix systems and .asp on Windows. I eventually ported portions of the system to PHP. Colleen and David also went on to form their own companies and developed powerful content management tools. Many developers have been using this model where they can reuse their code for new projects. A powerful aspect is being able customize WEB sites and management tools to the specific needs of customers. However an area often challenging is adding in user permissions and management services to control what users can do and have access to.
A phenomenon spurred by the WEB is Open Source software collaboration and distribution. This is where developers from around the WEB collaborate on creating and supporting software often for free or for low rates for support or customization. Examples include:
- Apache WEB Server
- Perl and PHP languages
- CMS Applications discussed below
- EMAIL Systems
- Data Base Software such as Mysql (now owned by Oracle) and Postgress
- Linux Distributions (The kernel at the core of these OS is controlled by the original developer)
One important development is content management systems or CMS. These systems feature standard frameworks that can be used to develop and manage WEB sites. This aritcle is published on a CMS site developed in Joomla 2.5.
Common CMS programs include:
- Word Press (Originally developed to support Blogs)
These and other similar systems are most commonly written under the LAMP standard which includes:
Linux OS (RedHat, Centos, Debian, Unbuntu and others)
Apache Web Browser
Mysql Database (Open Source but owned by Oracle/Sun)
PHP (Zend Technologies)
LAMP also can be implemented on other OS including Mac, BSD Unix and Windows. This site is hosted on FreeBSD in a Virtual Private Server, VPS, supports the site. We often refer to our implementation as BAMP per the BSD OS. There is also support for Windows environments that are termed WAMP.
An important feature of CMS solutions is support for third party add-ons. These can include:
- Templates to change the look and feel of a site.
- Extensions that add functionality. Examples include music players, guest books, calendars and etc.
Add-on can be free or licensed. Support is often a billable option.
CMS solutions do present some important challenges to operations and support.
PHP and Mysql can have security vulnerabilities. One of most common issues is termed SQL Injection where specially crafted strings added to the browser url bar or via scripts can gain access to information, modify it or even allow access to the server OS. To combat this, programmers need to consider issues in their programming. 3rd party enhancements to CMS can be implemented that thwart attacks. An example is the JHack module developed by Sitegrounds.com and offered free of charge to the Joomla community.