WEB CONTENT MANAGEMENT PATTERNS



Similar documents
Content Management Using Rational Unified Process Part 1: Content Management Defined

Mobile Strategy and Design

Content Management Systems: Drupal Vs Jahia

Content Management System (CMS)

IT Insights. Using Microsoft SharePoint 2013 to build a robust support and training portal. A service of Microsoft IT Showcase

SENSE/NET 6.0. Open Source ECMS for the.net platform. 1

Authoring Within a Content Management System. The Content Management Story

Web Developer Toolkit for IBM Digital Experience

Outline. CIW Web Design Specialist. Course Content

SharePoint 2010 Performance and Capacity Planning Best Practices

Web Design Specialist

ACE: Dreamweaver CC Exam Guide

Content Management Using the Rational Unified Process By: Michael McIntosh

LearningServer for.net Implementation Guide

Rich Media & HD Video Streaming Integration with Brightcove

Building Views and Charts in Requests Introduction to Answers views and charts Creating and editing charts Performing common view tasks

A Tool for Evaluation and Optimization of Web Application Performance

Wiki Server. Innovative tools for workgroup collaboration and communication. Features

HARVARD BUSINESS PUBLISHING BENEFITS FROM CRAFTER SOFTWARE

Enterprise Content Management with Microsoft SharePoint

2007 to 2010 SharePoint Migration - Take Time to Reorganize

Introduction to XML Applications

OpenText Content Hub for Publishers

Working with RD Web Access in Windows Server 2012

MatchPoint Technical Features Tutorial Colygon AG Version 1.0

Website Development. Decision / Planning Phase. Website Design. > Kind words from our clients. Home Services Portfolio Free Quote Templates Contact

Macromedia Dreamweaver 8 Developer Certification Examination Specification

Search Engine Optimization Glossary

GlobalSCAPE Wide Area File Services

IBM Digital Experience. Using Modern Web Development Tools and Technology with IBM Digital Experience

Using Workflows in a Content Management System

Web-based Multimedia Content Management System for Effective News Personalization on Interactive Broadcasting

CHAPTER 20 TESING WEB APPLICATIONS. Overview

SOA REFERENCE ARCHITECTURE: WEB TIER

Structured Content: the Key to Agile. Web Experience Management. Introduction

Course 20489B: Developing Microsoft SharePoint Server 2013 Advanced Solutions OVERVIEW

Middleware- Driven Mobile Applications

Taleo Enterprise. Career Section Branding Definition. Version 7.5

Developing Microsoft SharePoint Server 2013 Advanced Solutions

Configuring Apache HTTP Server as a Reverse Proxy Server for SAS 9.3 Web Applications Deployed on Oracle WebLogic Server

S3 Monitor Design and Implementation Plans

Hypercosm. Studio.

SiteCelerate white paper

How to Create & Publish an RSS Feed

Move Forward, Build Faster, Get Farther. Web Content Management Platform

A Content Hub strategy for newspaper and magazine publishers

Configuring the JEvents Component

THE CLIENT SPEC SHEET

NextRow - AEM Training Program Course Catalog

Desktop Management, Profile Migration and Cross Platform Delivery. Technical Overview

Developing a Website. Chito N. Angeles Web Technologies: Training for Development and Teaching Resources

WHAT'S NEW IN SHAREPOINT 2013 WEB CONTENT MANAGEMENT

Making a Web Page with Microsoft Publisher 2003

Kentico CMS, 2011 Kentico Software. Contents. Mobile Development using Kentico CMS 6 2 Exploring the Mobile Environment 1

SUBJECT CODE : 4074 PERIODS/WEEK : 4 PERIODS/ SEMESTER : 72 CREDIT : 4 TIME SCHEDULE UNIT TOPIC PERIODS 1. INTERNET FUNDAMENTALS & HTML Test 1

NCR NETKEY Deliver and manage an interactive kiosk and digital signage experience

4 Understanding. Web Applications IN THIS CHAPTER. 4.1 Understand Web page development. 4.2 Understand Microsoft ASP.NET Web application development

Ever since the inception of Information Technology, everyone wants to get global exposure of their business by. Research Article 2014

White Paper. Enterprise IPTV and Video Streaming with the Blue Coat ProxySG >

Bridging People and Process. Bridging People and Process. Bridging People and Process. Bridging People and Process

DE-20489B Developing Microsoft SharePoint Server 2013 Advanced Solutions

NAS 259 Protecting Your Data with Remote Sync (Rsync)

Oct 15, Internet : the vast collection of interconnected networks that all use the TCP/IP protocols

Globule: a Platform for Self-Replicating Web Documents

Creating Library Website Using Open Source Content Management System

What s New in Version Cue CS2

CREATIVE EXPRESS. Digital Upload MODULE 2A. Version 3 November Copyright 2010 Hewlett-Packard Development Company, L.P.

Creating Online Surveys with Qualtrics Survey Tool

SharePoint 2013: Key feature improvements

A Close Look at Drupal 7

Describe how to utilize the Publishing API to access publishing settings and content.

Marketing in the 21 st Century THE MID ATLANTIC CHESAPEAKE CONFERENCE

Guidelines for Effective Creative

Digital Library for Multimedia Content Management

Web Analytics Understand your web visitors without web logs or page tags and keep all your data inside your firewall.

Content Delivery Service (CDS)

Set up My Sites (SharePoint Server

IE Class Web Design Curriculum

Empowered Employee Training With a Content Strategy

Microsoft Office SharePoint Designer 2007

Programming Fundamentals of Web Applications Course 10958A; 5 Days

Publish Acrolinx Terminology Changes via RSS

Key Factors to Consider When Selecting a Web Content Management Solution

Deciding When to Deploy Microsoft Windows SharePoint Services and Microsoft Office SharePoint Portal Server White Paper

MyCompany Professional Web Developer Certification Examination Specification

The Webcast will begin at 1:00pm EST.

How To Customize An Org Bee 11G With A Custom Skin On A Windows 7.5 (Oracle) 11G (Orca) 11Ge (Orora) 11Gh (Orroboro) 11E (Ororro

Flattening Enterprise Knowledge

We automatically generate the HTML for this as seen below. Provide the above components for the teaser.txt file.

Course Information Course Number: IWT 1229 Course Name: Web Development and Design Foundation

Transcription:

WEB CONTENT MANAGEMENT PATTERNS By YOAB GORFU RENEL SMITH ABE GUERRA KAY ODEYEMI May 2006 Version Date: 23-Apr-06-06:04 PM - 1 -

Story TABLE OF CONTENTS Pattern: Separate it. How do you ensure the site you are building has a consistent look and feel? How can the site easily be re-branded? Pattern: Tag it. How do you keep track of these various categories that give more meaning to the pieces of content? Pattern: Pre-generate it How do you improve performance without significantly increasing your infrastructure? Pattern: Cache it. How do you improve performance? Pattern: Fragment it. How do we accommodate changing a piece of text that is common among multiple pieces of content? Pattern: Expire it. When do you remove the pieces of content from the web site? Pattern: Archive it. How do you clean up content that has expired or is not used any more? Pattern: Distribute it. How do you improve performance for a globally distributed audience? Pattern: Personalize it. How do you enable your users to configure the site to their specific needs so they can focus on content they are interested in seeing on a regular basis? Pattern: Aggregate it. How do you join piece of content together? Pattern: Syndicate it. How do you share the content? How do you enable access to your content via other web sites? Pattern: Segregate it How do you organize your web resources? Acknowledgements - 2 -

STORY To create a web site that is flexible for both the content creator and consumer and performs well, various best practices have been developed over time. To enable componentization of a web site for flexibility, it is a best practice to Separate the data or information content from the look and feel or presentation of the site. Componentization is further realized by creating contents as individual Fragments that can be assembled in multiple creative ways. To enable searching and efficient navigation, each piece of content should be Tagged with metadata. Keeping your web site content fresh is key! The metadata should contain enough properties to Expire and Archive old content. To enable efficient access, creating a high performance web site is important. One proven practice is to Pre-generate the content and place is as close to the consumer as possible. Various approaches exist to Cache and Distribute the content. Given the vast array of content sources available, efficient access also implies, from the consumer perspective, the ability to Personalize a site as well as Aggregate content from other providers. A corollary to Aggregate is Syndicate. The consumer is not limited to a user but can also be another site. As you aggregate content from other sites, you can also Syndicate your content to other sites! In closing, content that is separated from its presentation, componentized via fragments and tagged with meta-data can enable highly flexible personalization, aggregation and syndication. - 3 -

Figure 1: A relationship map of the patterns in this paper. - 4 -

NAME: SEPARATE You are starting a new project to build a web site or re-factor an existing web site composed of static HTML pages. The site has many content contributors. Generating the HTML with the closest tool available as quickly as possible is tempting to get a new site running quickly. The data within the static pages need to be displayed on various devices and formats. Decomposing static pages involves extra work that does not seem to provide an immediate benefit. How do you ensure the site you are building has a consistent look and feel? How can the site easily be re-branded? Separate the content from the presentation. This can be done via many methods: Such as the use of Cascading Style Sheets (CSS) The use of XML data content formatted by XSLT style sheets The use of Web Content Management (WCM) tools that provide separation of the data entry from the "look and feel" templates NEW The look and feel (presentation) of the website can now change independent of the content. This would allow for quick look and fell transformation of a whole site easily and quickly. - 5 -

NAME: TAG You have a lot of content. It is organized in a folder / directory structure. However it seems the content could be categorized and reused in various different ways. You have a lot of content, but the content itself may have no means of hold these extra pieces of information. There is a need to add more meaning to the content so that the content could be used in new and different ways. Having a search engine or other means of dynamically creating taxonomies for the content does not quite create the right kind of categories you need for providing useful information to your users. How do you keep track of these various categories that give more meaning to the pieces of content? Tag the content, both static and dynamic html. Keep this metadata separate from the content for search portal personalization and syndication applications. This could be a database that contains a list of pieces of content and along side each piece of content attributes describing the content. Consider using tagging standards such as Dublin Core or Publishing Requirements for Industry Standard Metadata. NEW The content can now be used in a different manner than its original intention since it now has additional meaning. Extra work needs to be performed during creation of the content and updates to Tag content appropriately. - 6 -

NAME: PRE-GENERATE You have a web site that is serving dynamic content from a data source. The site is not scaling well. Usage is increasing and performance is decreasing. The bottleneck is your data store infrastructure that generates dynamic content. Serving dynamic content is orders of magnitude more expensive that than serving static content. Databases are expensive web servers are cheap. How do you improve performance without significantly increasing your infrastructure? Pre-generate static content from the dynamic content. Techniques using "object dependency graphs" exist to only build sections of pages that have been modified. NEW A dated snapshot of what the content will look like on the website. New changes to the underlying data will need to trigger a new generate operation. - 7 -

NAME: CACHE You have a deployed site and performance is poor or users of your site are scattered around the globe. Reducing content size in order to reduce transmission time ant thereby increasing performance might not be feasible. Building a more robust architecture would be too expensive. Increasing network bandwidth from web severs to user computers is not feasible. How do you improve performance? Develop some kind of caching strategy(s) and apply it on as much content as possible. NEW Cache can become stale. Using some kind of caching strategy improves performance, especially for items that do not change often. - 8 -

NAME: FRAGMENT The same piece of content is repeated in several pieces of content. If the piece of content changes in one place, it needs to change in all places that has a similar piece of content. It is easier to create a whole piece of content with everything it needs in one shot. It is difficult to change each piece of content to match up the piece of text. How do we accommodate changing a piece of text that is common among multiple pieces of content? Decompose a page into smaller components, and have a method for rebuilding the components / fragments in to a complete piece of content. NEW There is now a lot more content to manage. It becomes easier to send out changes of common fragment through out the website without actually touching each individual piece of content that might be affected. - 9 -

NAME: EXPIRE Content is constantly being created and updated then published to a web site. Need to keep the web site fresh Not easy to check the freshness of the content at regular short interval. Not cleaning up outdated piece of content on the web site could potentially affect web site performance. Leaving old content on the web site could introduce some legal liability you are not will to be responsible for. When do you remove the pieces of content from the web site? Add an expiration date to the content at the time of creation. This would indicate when a piece of content should be removed from the web site. Then have an automate process review these tags at regular intervals and act accordingly. NEW The clean up of the website is automated. Improper expiration tagging could lead to content being removed before it should be or much later that it should have been. - 10 -

NAME: ARCHIVE You have a web site where content is constantly being created and updated. You do not want to delete the content. You want to keep it around for various reasons. You want to reduce clutter. How do you clean up content that has expired or is not used any more? Move expire content and minimally used content into a separate area. NEW Out of date content is now in a separate area of the content management system, not clogging up the area with that contains content that is current. User bookmarks to old content might not work anymore if proper redirects have not been put in place. - 11 -

NAME: DISTRIBUTE You have a deployed a web site with global users. Performance is poor in remote areas. Your site includes serving heavy graphics audio and video and performance is poor. Global web sites have users with different levels of network bandwidth. Distance adds network latency. It is easy to change the content directly on one site, however if this is done, there is no record of what is on the site, since the content management system is the piece that keep the record of what content is on the site. How do you improve performance for a globally distributed audience? Distribute the content in some manner, for example, using a content delivery network. This would help caching the content as close to the user as possible. NEW The content from the content management system moves out to all web servers in a timely fashion. The total time to physically update a website might increase. - 12 -

NAME: PERSONALIZE You are managing a web site with significant amounts of content. Your users are complaining about "content overload". They can not easily find what they are looking for. You have enabled basic "search" capabilities. The number of sources is outstripping the navigation design of your site. The amount of available content keeps increasing. Search is not a solution by itself. Users want to see what they want to see where they want to see it. It is easy to create a site with a large amount of static and aggregated content but not as easy to organize and present it in a useful form. How do you enable your users to configure the site to their specific needs so they can focus on content they are interested in seeing on a regular basis? Enable your users to Personalize the site. Organize your content by category and enable your users to select from a list of available sources what they want to see. You may also consider enabling a certain level of look and feel customization by presenting your users a certain set of packaged options to change color, font, or placement of content on the page. Building a site using Portal technology greatly enables personalization. NEW Users have more control over how the content is delivered to them. However, this could also result into a support issue where by some users have one view into the site while other have a different view. The users might compare what each other see and feel that they are not getting the full benefits of the site. It requires the ability to ability identify users as well as manage their data, potentially leading to privacy issues. - 13 -

NAME: AGGREGATE You have content in fragments and different sources. There is a need to combine the fragments and other sources of information. Manually building content from these sources would be time consuming and almost unrealistic. You might want content from certain source presented in different ways. How do you join piece of content together? Find some method to aggregate the content. Use Pre-generate to help achieve this. Incorporate content feed from other sites. Ensure the content from other sites is used with permission. An RSS feed is a common format used by many sites. NEW Content made whole. More content produced. Update management very important or else aggregate becomes stale for content that comes sources that are highly dynamic. - 14 -

NAME: SYNDICATE You have a lot of content that others find useful. You already Aggregate content from other sources and present them via your web site. Appropriate credit is not being given to the content 'taken' from your site. Other website operators can use 'scrappers' to get at the content on your site. Others would like to use you content with your permission if a means was provided to receive such content. How do you share the content? How do you enable access to your content via other web sites? Provide a Syndication mechanism. Offer your content for use on other sites in exchange for a plug or a link. The most common format is as an RSS feed. NEW It will now be easier for others to reuse your content. - 15 -

NAME: SEGREGATE Your website has a lot of content of various types like images, static html pages, scripts, applets, style sheets etc. It is easy to just put all of the content in one directory / folder. Creating a directory structure has some overhead, for example, path to resources become longer and extra clicks or typing is needed to place resource in there correct location. Some resources might need permission restriction due to the fact that such resources perform specific actions. How do you organize your web resources? Segregate the content by type into folders / directories NEW All resource for a single page is not in a single location. Resources of a common type are located in the same directory. Permissions are easy to apply on resources based on type. Path to resources are longer. - 16 -

ACKNOWLEDGEMENTS The authors wish to thank our shepherds, Peter Sommerlad and Francisco Jose da Silva e Silva, for reviewing these patterns. Our thanks are also extended to Joe Bergin and Fred Grossman at Pace University for the impetus to start writing these patterns. - 17 -