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

Chapter 12 Implementation and maintenance

Content management system CMS A software tool for creating, editing and updating documents accessed by intranet, extranet or Internet. Search engine robot crawling. The content within the search engine must be stored and linked such that it can be indexed by search engine crawlers to add it to their index – this was not possible with some first-generation content management systems, but is typical of more recent ones. Sometimes URL rewriting to a search-engine-friendly format without many parameters is required. The Google Webmaster pages describe the requirements: www.google.comwebmasters . Search-engine-optimization-friendly markup. Some bespoke content management systems created by design agencies do not enable easy editing of the key fields shown in Box 12.2. such as title, h1 and meta name= “description” content=“page description”. Different page templates. The design and maintenance of content structure sub-components, templates, etc., web-page structure and web-site structure. It should be possible to create different layouts and designs for different site sections or categories of pages many blogs, for example, only offer a single layout for the entire blog. Link management. The maintenance of internal and external links through content change and the elimination of dead links. Input and syndication. The loading spidering of externally originating content and the aggregation and dissemination of content from a variety of sources. Versioning. The crucial task of controlling which edition of a page, page element or the whole site is published. Typically this will be the most recent, but previous editions should be archived and it should be possible to roll back to a previous version at the page, page element or site level. Security and access control. Different permissions can be assigned to different roles of users and some content may only be available through log-in details. In these cases, the CMS main- tains a list of users. This facility is useful when a company needs to use the same CMS for an intranet, extranet or public Internet site which may have different levels of permission. Use of plug-ins and widgets. Mashups are possible through embedding widgets such as links to social networks or third-party applications such as Google Maps or YouTube videos. But a content management system may not readily support embedding within the main content or sidebars. Publication workflow. Content destined for a web site needs to pass through a publication process to move it from the management environment to the live delivery environment. The process may involve tasks such as format conversion e.g. to PDF, or to WAP, rendering to HTML, editorial authorization and the construction of composite docu- ments in real time personalization and selective dissemination. Tracking and monitoring. Providing logs and statistical analysis of use to provide performance measures, tune the content according to demand and protect against misuse. It should be also be possible to rapidly add tags to the page templates for web analytics tools such as Google Analytics which require a script to be added at the end of every page on the site to collect data about site activity. In advanced implementation it may be necessary for the content or commerce management system to update these tags automatically according to page type. Navigation and visualization. Providing an intuitive, clear and attractive representation of the nature and location of content using colour, texture, 3D rendering or even virtual reality. Personal CMSs are lower-cost CMSs that can be used by individuals or smaller businesses, often as part of the hosting package. They enable editing and update of content, but do not usually contain version control or workflow facilities. Personal CMSs overlap with blogging services, many of which can be configured for more general site management but may lack some of the requirements for enterprise CMS such as security and workflow management. The main open source CMSs are: Plone www.plone.org Drupal www.drupal.org , a PHP version MamboJoomla www.mamboserver.com . 692 Part 3 Implementation