By Susan Dart
No doubt you were tired of hearing about the Y2K crisis. Some of you probably remember the software crisis too. Now there's a new crisis on the horizon: the Web Crisis. This crisis is the inability to maintain Web applications—the ad hoc development of Web applications that are kept running via a continual stream of patches and that are developed without any rigorous or systematic approach.
The ramifications of the crisis are manifold, but for Web development, the most significant issues include:
- Errors on sites that could have legal and financial implications
- Growth limitations that require massive redesigns
- Poor performance in response to users' requests
These problems defeat the benefits of the Web. In today's Internet economy, which requires an e-business strategy, the Web crisis will only escalate. Currently, there are not enough developers available to do all the Web work. As a result, companies are using both skilled and unskilled staff, further compounding the crisis. One way to avoid, or at least mitigate, the risks of a Web crisis, is to adopt configuration management (CM) tools and practices.
Even if a company isn't doing serious Web development today, it will come about, either through mergers, "Webifying" legacy applications, or bringing an enterprise together via a corporate portal. The Web (via its corporate portal) will eventually represent a company's means of collaboration and of collecting and disseminating corporate knowledge.
These days, most companies have an intranet, a private repository for their staff, and an Internet Web site, a public view of their company that typically holds only a portion of the content on the intranet. Companies' intranets will eventually evolve into full-spectrum portals supplying corporate-standard services and information throughout the company. Hence, the Web applications become even more important to companies: Not only will they represent the customer-relationship commerce, but also the internal enterprise-wide knowledge base and means of collaboration.
In this article, you’ll learn why configuration management allows safe growth of Web applications. Next Tuesday, the second article in the series will examine the goals of CM and discuss what vendors are offering. This content originally appeared in Wiesner Publishing's Software Magazine and appears on TechRepublic under a special arrangement with the publisher.
If the developers, Webmasters, and IT professionals make good use of a CM tool while growing and expanding their Web presence, it will buffer companies from the many challenges of the Web crisis. In fact, everything we have learned through the software crisis is applicable to Web development. The software crisis acknowledged that companies didn't know how to deliver bug-free software on time and within budget. The software and Y2K crises have taught industry the importance of CM the hard way. Without it, software maintenance and growth becomes unmanageable and error-prone. And Web development introduces extra challenges that require new skills, techniques, processes, and tool capabilities.
There are many CM tools on the market today. Web authoring/content management tools are just beginning to understand CM but don't have all of the necessary CM support. If developers are using a Web authoring tool without CM capabilities, this will further escalate the crisis. Businesses need to understand the differences, and the issues, to start protecting themselves now.
Signs of a crisis
Often, after the triumphant launch of a company Web site and e-commerce strategy, comes the aftershock: How do we maintain this Web application? Companies are finding that they quickly outgrow their Web sites' scalability and usability. Typical signs of a crisis include the inability to support increased volume, react to mergers, or handle updates.
CM could help mitigate many of these problems. Of course, high-performance Web servers would also help, in addition to gigabytes of disk space and clever structuring techniques along with caches. But in the case of caching, the content would be written with the caching algorithm in mind, so CM is needed to match the version of content with the version of the caching algorithm. CM can't solve all the Web crisis problems, but it can dramatically strengthen your company's position by enabling safe growth of Web applications and by providing a contingency plan.
CM will help managers and developers:
- Enable error-free change cycles by tracking all changes.
- Propagate the right changes to the variant sites.
- Ensure processes are followed so that errors are weeded out before being published to a live site.
- Track all the content and its history (previous versions).
- Enable reuse when redesigning or making enhancements.
- Allow ingrained roll-back of a site to a particular release (version) in case of disasters or isolated errors.
- Enable concurrent development of new sites and changes.
- Prototype changes quickly and test them in staging areas.
- Gather metrics of the change cycle.
Web development challenges
Web development offers all the challenges of traditional software development, and more. It differs fundamentally in the nature of the programming and its audience. Creating a Web application involves global, distributed programming. The user interface is of supreme importance since it needs to suit an international audience; cater to fast access to content and multiple versions of different browsers, including "microbrowsers" (that have small footprints suited to the type of device); and provide access via application interfaces (APIs) to non-human users like "agents" or "bots" that scour the Web seeking information. Programs are written to be platform-independent.
In addition, Web development is subject to the swift and haphazard evolution of applications, many of which are "Webified" legacy applications. And the content can be active and dynamic, meaning it is created "on the fly" in response to a request. Many companies have legal, ethical, or business reasons for maintaining such content, which is trickier than static content.
Web programming headaches
Web programming is also connection-based coding using asynchronous communication protocols. Connections can be non-persistent because services or devices may not be ready, may go down, or may be in contention. Programmers have to worry about middleware (such as COM and CORBA) now. Programs are also created out of component libraries, such as Microsoft Foundation Classes or JavaBeans.
The components are either in source or binary format, so they may or may not be customizable. The tools and languages used for the programming (such as Java interpreters, just-in-time compilers, HTML editors, active controls added to HTML such as Active Server Pages, or the many scripting languages such as Perl) are evolving constantly. With active controls, data will be created dynamically, which requires it to be managed and audited dynamically. Access to data has to have sophisticated security checks associated with it.
Language standards, such as XML, are being developed for content structuring and semantics by the World Wide Web Consortium. Standard protocols such as WebDAV (WWW Distributed Authoring and Versioning), an extension of HTTP being developed by the Internet Engineering Task Force (IETF), could enable many tools without APIs to be integrated via its versioning notions.
The Web application release cycle has many more steps than traditional software and is much more dependent on the type of change. For instance, high-priority changes (such as fixing a problem on the home page) happen immediately: Fix the files and publish it to the live site. There are extra steps in the release cycle, such as site registration across all search engines, link testing, browser testing, security access testing, and traffic load testing. The entire notion of a release becomes very fuzzy, too. Many companies typically set up a daemon program that automatically publishes updates, say, every 15 minutes. The notion of a "release" then becomes whatever files are on the live baseline at 15-minute intervals.
Although Web programming is different from traditional software programming, everything we know about software development is applicable to Web development. Along with the differences come at least nine other challenges that will affect IT managers, project managers, and developers.
Susan Dart is a strategic consultant for configuration management and author of the forthcoming book Containing the Web Crisis with Configuration Management (Artech House, U.K.). More information can be found in the paper "Web Content Management: Challenges for Web Systems, Proceedings of the International Symposium on CM," Dart, Susan, Springer Verlag, 1999.