Having owned a Web development company, I can say from experience how difficult it is to build a dynamic site that lets nondevelopers add or revise content. Many smaller companies use FrontPage or other development environments with relatively easy-to-learn interfaces and then train one or two employees to maintain the site. But when you’re dealing with large sites and dynamic content, this approach just won’t cut it. There are too many opportunities for security lapses, accidental content mangling, and other problems. Microsoft’s solution is Content Management Server, or CMS. In this article, I’ll explore CMS to help you understand the role it can play in your enterprise, and I’ll explain how CMS’ components can streamline Web site development and deployment. At $42,999 for a one-processor license, this solution isn’t for everyone. But if you’re betting the business on your site, it could be a good investment.
CMS enables dynamic content, secure authoring, and easy updates
Many companies with a growing Web presence are looking for ways to improve that presence by offering personalized content, better availability and failover capability, and simplified content development. Rather than build a larger development team, some are looking to offload content development to nondevelopers. For example, with the proper framework in place, the sales and engineering staff can create the product content, and the support staff can create the support content. Looking beyond content, many companies want to better integrate their Web presence with existing or developing business processes and applications. This might mean integrating supply management with online sales, providing a front end to the customer management system, integrating customer management and support, and other aspects of the business that are not Webcentric. Finally, managing the workflow to create and manage a large site can be a daunting task, even if your company doesn’t intend to offload content creation to nondevelopers.
In a move to provide a content management solution, Microsoft purchased NCompass Labs Inc. and repackaged Ncompass’ Resolution 4.0 as Content Management Server. CMS is a collection of applications that enable you to build a Web site that provides dynamic and user-targeted content, secure authoring, and the ability for nondevelopers to revise the site’s content through a Web browser. CMS’ core component is a Web application that relies on Internet Information Services (IIS) for underlying hosting/Web services. CMS requires Windows 2000 Server or later as its operating platform.
Unlike static or even database- or code-driven sites hosted directly by IIS, the content for a CMS site resides in an external database called the Content Repository. Client requests come into IIS and are passed on to CMS, which retrieves the data from the repository. The site itself is created as a set of templates with placeholders for the dynamic part of the page content. Nondevelopers can post content to the site through a Web browser, and the content is stored in the database. CMS includes templates that define the site control navigation and layout. CMS templates are also defined as static elements of the site’s content. Sites can be static as well, but that negates the need for CMS.
CMS can also work in conjunction with Microsoft Site Server to provide authentication for Web site members. The Membership Server component of Site Server uses Lightweight Directory Access Protocol (LDAP) to query for and authenticate users from the Active Directory. By integrating with Site Server in this way, CMS lets you serve up personalized content to clients, whether those clients are intranet or Internet based.
Pieces of the CMS puzzle
The core of CMS is the Content Management Server application itself. CMS can serve several roles, depending on your deployment scheme. First, CMS functions as a development server in which the development team creates the templates and other data that defines the site. The site can then be published up to a content development server—also running CMS—on which content creators add content to the site’s framework. This content development server can act as the final location for the site, or the site can be deployed to a production server running CMS or exported to a static HTML server running essentially any Web server.
In the simplest deployment, a single CMS server can serve all roles. However, if you separate framework development, content creation, and final client access onto separate servers, you can increase availability and reduce the chances of a mangled site from authoring errors, development problems, or a combination of the two. You can use a single server or install CMS on each server in a clustered Web farm and use load balancing to direct traffic to the servers. If you plan to cluster servers, you’ll need to deploy Windows 2000 Advanced Server beneath CMS or employ a third-party clustering solution.
Site Builder is another CMS component. Site Builder is a desktop application that the development team uses to build the site’s framework, specify user roles and permissions, and create the templates that content creators will use to populate the site with content. Site Builder uses HTTP to communicate with the CMS servers, which it can do through nonsecure HTTP or SSL.
Site Builder also includes the Site Deployment Manager, which lets you export the site as a package to other servers, separating development and production environments. Site Deployment Manager provides a transaction-based mechanism for exporting the site, enabling the site to remain online and available while updates are accomplished. The Site Stager component exports the site to other servers. Site Stager creates an HTML snapshot of the site that can be deployed to any HTTP server, regardless of platform. This makes it possible to publish the site to external servers that are not running CMS, such as an external hosting site or a partner’s site. The site’s administrator controls which parts of the site are exported by creating staging profiles.
Web Author, another CMS component, enables content creators to add content to the site framework. Web Author integrates with the server rather than functioning as a standalone desktop application. Users add content to the site through a Web browser running on Windows or Macintosh platforms. Users aren’t limited to Internet Explorer either; they can use Netscape as well. Either nonsecure HTTP or SSL can be used for authoring, depending on the network infrastructure on which CMS is deployed. The templates created by the development team contain placeholders for the dynamic data. The placeholders use either DHTML or ActiveX, depending on the placeholder’s function and the browser being used.
At the bottom of the CMS hierarchy is the Content Repository, a SQL database. The database stores all site content, including templates, pages, and other resources. The content can include essentially any data, such as text, images, video clips, documents, and executable files. The database can reside on a CMS server, but it’s better to deploy it on its own server(s) for performance and availability reasons.
Putting it all together
When you bring together all the pieces in CMS, you have a powerful framework for controlling Web development workflow and offloading content creation tasks to nondevelopers. This not only frees up the development team for the more hardcore aspects of site development, but also puts content creation in the hands of the people who are typically closest to it and best equipped to do the job. It also affords a much more modular approach to site development and content creation. What’s more, the workflow structure that CMS places on the development process can help you get a better handle on security and control how and when content is created and updated.