Implementation and maintenance Learning from Amazon’s culture
690
Part 3 Implementation
Web application frameworks
A standard programming framework based on
reusable library functions for creating dynamic
websites through a programming language.
Web application server
Software processes which is accessed by a
standard programming interface API of a web
application framework to serve dynamic website
functionality in response to requests received from
browsers. They are designed to manage
multiple requests from multiple users and will
provide load-balancing to support high volumes of
usage.
Examples
Microsoft Windows Notepad
www.microsoft.com
Program File Editor PFE. Graphics editors are used to create and modify GIF and JPEG pictures.
Examples
Adobe Photoshop
www.macromedia.com
Paintshop Pro
www.jasc.com
. Specialized HTML editors
These tools provide facilities for adding HTML and CSS tags automatically. For example, adding the bold text tag B B to the HTML document will happen when the user
clicks the bold tag.
Examples There are many freeware and shareware editors in this category.
Basic tools Microsoft FrontPage
www.microsoft.com
.
Dreamweaver
www.macromedia.comproductsdreamweaver
Modern versions of word processors such as Microsoft Word or OpenOffice now have these facilities through using the Save As Web Page option but they may add to ‘page weight’
through additional XML markup code, so cannot typically be used for commercial sites.
Advanced graphics tools Adobe Photoshop extensively used by graphic designers,
www.adobe.com
. Macromedia Flash and Director-Shockwave used for graphical animations,
www.macromedia.com
.
Web application frameworks and application servers
Web application frameworks
provide a foundation for building dynamic interactive web sites and web services. They use standard programming conventions or Application Pro-
gramming Interface APIs in combination with data storage to achieve different tasks such as simply adding a user to a system or rendering the different page elements of a site. They
provide standard functions in libraries to make it quicker to develop functionality than starting from lower-level coding. Functions in the web application framework are executed
by
web application servers
which are software processes running on the server which accept and action requests via the principal web server software e.g. Apache or Microsoft
Information Server. The Common Gateway Interface CGI was a forerunner of this con- cept since it enabled standard functions to be accessed on a server, for example to perform
form validation.
Examples
Adobe ColdFusion
www.adobe.comproductscoldfusion
. An established commercial framework.
Microsoft ASP.Net
www.asp.net
is an evolution of the former Micosoft ASP script-based approach to an entirely different approach based on running compiled code on a server.
PHP
www.php.net
An open-source script-based alternative for development of web applications which can be used to create web applications. Open-source CMS such as
Drupal
www.drupal.org
are based on this. JavaBeans Enterprise and Java Server Pages. Widely used enterprise open-source system
promoted by Sun Microsystems which are implemented using the Java language
www.java.com
. The ERP system SAP makes extensive use of this framework within its web application versions.
Zope
www.zope.org
An object-based open-source application server using the Python language on which the widely used Plone
www.plone.org
CMS is based. Ruby on Rails
www.rubyonrails.org
Another relatively new open-source application framework feted for its rapid production of systems and re-usability of modules as part of
agile development. A technical discussion of the issues involved with selection of application frameworks and
servers is outside the scope of this text. Essentially all of the solutions above have been suc- cessfully used to develop enterprise web services and what is most important to successful
project delivery is finding the right level of skills for implementation and a project method- ology or development process which is effective. The open-source alternatives have lower
costs associated, but there may be difficulty in obtaining the right in-house or third-party resources to create applications of some of the less widely used frameworks and servers. This
is indicated by Figure 12.2 which shows a survey of the application frameworks used by For- tune 1000 companies in 2007.
Content management systems
A
content management system CMS
provides a method for non-specialists to update web site pages. Lotus Notes was an early form of enterprise CMS. This is an efficient method
of publishing content since the facility can be made available to people throughout the com- pany. Today there are two main forms of CMS, both of which are delivered as web services
which can be accessed through a web browser. Enterprise CMSs can be used for large, com- plex sites and other corporate documents and as well as the standard page creation and
editing facilities, CMSs enable version control and review of documents through workflow systems which notify reviewers when new documents are ready for editing.
Typically, CMS, are browser-based web applications running on a server. All enable users to readily add new pages within an existing page template. Some have flexibility for modify-
ing a page template to include new promotions and images with left and right sidebars.
Issues in selecting a content management system
A professional content management systems should provide these facilities: Easy authoring system. Editing of new and existing documents should be possible through
a WYSIWYG what you see is what you get facility similar to a word processor which makes it easy to embed images and supports a range of markup necessary for SEO.
691
Figure 12.2
A survey of the application frameworks used by Fortune 1000 companies in 2007
Source: Port80 software www.port80software.comsurveystop1000appservers
51.5
0.0 12.7
Microsoft Platforms ASP.NET, ASP
Java Platforms J2EE, JSP, WebLogic,
WebSphere, Tomcat PHP
ColdFusion Perl
Python 6.0
3.2 1.9
0.2 5.0
10.0 15.0
20.0 25.0
35.0 40.0
45.0 50.0
55.0
30.0