Written by Vaughn Vernon
Enterprise Business Pattern
Dynamic Web Site
Supplies up-to-date views and distribution of live and customized business data. This pattern forms the foundation for all Web-based business systems, whether in the B2C, B2E, or B2B space.

Background
A business must deliver up-to-the-second information to its consumers, whether the consumers are customers, employees, or partners. The contemporary means of delivering such data to consumers of all sorts includes the use of dynamic Web components.
The business Web site is a very familiar concept. However, familiarity may cause some to over simplify this domain. Most businesses require much more than “brochureware,” or even a mix of static and dynamic data, to satisfy consumer needs. There are several other dynamic presentation and fulfillment concerns that must be addressed by any serious business enterprise. These include the following:
-
Publication of multi-channel data
-
Presentation of data that favors either online readability or print, on-the-fly
-
Handling of requests that require the assembly and generation of specialized business documents
-
Distribution of intellectual property (IP), which may include the above specialized business documents and software, in a legally binding fashion
Multi-channel data is data that is aggregated from a few or many data sources. A data source in this context is not limited to a database, while it may also be a database. It may include content management systems, enterprise applications, and data gather from resources outside the business.
For the purpose of this Dynamic Web Site pattern I use the term “page” frequently. Of course technically “page” is not strictly part of the Internet web paradigm; that is, from the pure HTTP standpoint. However, “pages” are very much a part of the component frameworks that facilitate our day-to-day work of developing and delivering web-base applications. Thus, I believe I can skip to the chase and use a term that the vast majority of readers not only grasp but favor.
Value and Benefits
Live business data must be provided on demand to consumers. Most consumers must be able to make decisions, whether tactical, strategic, or to make acquisitions, based on current data. If the business cannot supply such information, the consumer may have to consume elsewhere. If the business cannot supply such information in a cost-effective way, it will not be able to sustain business operations.
There is very high value in live data that can be displayed in both textual and graphical form. Some information will require a highly polished page layout, and some will need to be printable in a WYSIWYG format.
Some legally protected IP will need to be distributed by some businesses. For various reasons the business needs to ensure that consumers obtain its IP legally.
Any of these facilities may be provided in a manual or semi-manual way. However, the greater the manual labor required the greater the cost and the less value realized from online distribution. For example, you may employee a number of human resources to manually update data in static Web pages in far less then real time. Granted, that is just about unheard of these days. But it probably happens at an alarmingly high rate. In any case, a more realistic scenario would be generating software license keys manually and inserting them into a download bundle when a user acquires your software online. This is costly to the business because of the manual labor involved. It is also costly to the consumer because of the latency, if only a matter of hours. It is also a nuisance to the consumer due to the necessity of extra attention to details.
The benefit to your business is realized when all necessary facilities can be deployed and employed as needed by a truly dynamic web site. The facilities must be as automated as possible to reduce the overall cost of doing business and to maintaining the facilities. Your customers, employees, and/or partners will be served better by the richness and versatility provided by your business distribution facility. Consumers may actually enjoy doing business with you.
Putting It to Work
The core concept at play in this pattern is the use of a Web server that allows you to produce pages that contain “live” data on demand. This demands the use of the Dynamic Web Page (page #) solution pattern. A given Web page may use static graphics, or it may require the generation of a graph based on live data. The generation of business graphs is embodied in the Image Producer (page #) pattern.
A Web page can take on different forms. Most of the time you want a Web page to have a layout that is visually appealing and that provides a rich set of links to other business resources. You may also need to display banner and sidebar advertisements. The Stylized Page (page #) solution pattern defines how your dynamic pages can display the desired design and layout while maintaining the design and layout fluid and changeable. The Printer-Friendly Article (page #) pattern addresses the opposite concern. A Stylized Page is not necessarily printable. In fact if you print a highly styled page some or much of the important text may be omitted. This is because the page has certain design elements that force the page to maintain a set layout regardless of on what device it is rendered. The Printer-Friendly Article pattern provides a means to remove stylized layout. It focuses on making the text and graphics fit the width of any printer.
The Business Document Generator (page #) pattern has overlapping concerns with Stylized Page (page #). In fact the Stylized Page pattern may be used to generate the dynamic input to the Business Document Generator. Given a complete set of input, the Business Document Generator pattern is used to create a highly readable and printable WYSIWYG document.
A document generated by the Business Document Generator (page #) pattern may contain IP or other sensitive, confidential data. Your business may also allow consumers to download software or additional forms of IP. Use the Intellectual Property Distribution Facility (page #) solution pattern to protect your IP.
Solution Pattern Strategies
The following are the cataloged solution patterns strategies for the Dynamic Web Site EBP.
AJAX
Achieving a rich user interface on the web requires the use of background interaction with the server-side web application that does not involve full request/response rountrips and full page displays. Using the AJAX pattern allows developers to effectively make web applications respond to user interactions in a manner similar to desktop applications.
Business Document Generator
Sometimes printable material must have the official corporate look. Many times such a document will have a standard layout and format, but contain live data from one or more data sources, either of the production or reporting variety, or both. Many business scenarios require that live data be merged into a standard template document on the fly, and that the document be highly readable and printable in a WYSIWYG manner.
COMET
When implementing a rich user interface with the use of the AJAX patten, it is possible to degrade application performace when the browser-hosted client code must poll the server constantly checking for changed server state that could impact the current display. The COMET pattern is a push-based approach allowing the server to contact the client when updated data is available. This facilitates a server to client event model which can greatly reduce the number of AJAX-based requests and increase server performace.
Dynamic Web Page
Allows your business Web server to produce pages that contain dynamic data. This pattern includes the definition of custom components, template pages, and custom tag libraries.
Image Producer
If the graphs represent live changing data you will want to use this pattern. Common uses of Image Producer (page #) include stock performance history, corporate sales trends, and those supplied by general reporting tools and business intelligence dashboard applications.
Intellectual Property Distribution Facility
Whether you are distributing business documents or software solutions online, you may need to shield such distributions using licensing or other legal protection. This pattern allows you to secure sensitive and proprietary information by distributing it only to those you intend to distribute it to, and to alert and inform the consumer that they must agree to your specific legal terms in order to obtain what you are distributing.
Printer-Friendly Article
Inverts the goals of the Stylized Page pattern. This pattern focuses on making the text and graphics of a given page fit the width of any printer device. It accomplishes this by removing page layout designations that prevent printers from wrapping text lines as necessary.
Stylized Page
Makes dynamic Web pages visually appealing. Addresses various layout concerns that are business focused, such as advertisements, special promotions, and key informational links. This pattern focuses on providing its behavior on the fly and making the pages’ style changeable with a minimum of impact on the Web site.
Consequences
This is a foundation, indispensable EBP. While you will find competing forces within some of the strategies within the solution patterns, I do not attempt to identify any here. However, if this EBP is ignored, serious consequences will be realized.
Related Patterns
Serving Web pages and other business information dynamically is important to many, if not most, of the patterns in this catalog.
Frameworks and Tools