I've been around the block with this product so many times I've worn out all my shoes. From its earliest days as FutureTense ContentServer, through the FatWire years, to its most recent incarnation as Oracle WebCenter Sites and everything along the way, it's been a very interesting, rewarding and occasionally frustrating journey through the eight (or eleven, depending on how you count) versions.
Originally designed as an extensible content management platform running on any J2EE app server — unlike much of the competition at the time — WebCenter Sites (WCS) picked up some great features along the way — including personalization and content targeting, flexible data design and multiple (four at last count) layers of caching, now based around Ehcache.
The product is comprised partly of a number of servlets deployed inside a web application. These do most of the heavy lifting. A few frequently used examples are:
- ContentServer — Generates and serves web pages dynamically. This servlet provides disk caching, session management, event management, searching and personalization services.
- CatalogManager — Provides most of the database management for the Content Server database, including revision tracking, security, result set caching and publishing services.
- BlobServer — Locates and serves binary large objects (blobs).
- Satellite — Assembles pages from cache and from requests to Content Server servlet if they don’t exist in the cache.
Starting with a database cache that holds all the most frequent queries in memory, up the stack to a pagelet (page chunk) cache at the Content Server level, and another one at the Satellite Server level, and with a new asset object cache in the more recent versions, WCS has an incredibly sophisticated and powerful caching model. It’s one of the architectural features that sets WCS apart from its competitors.
On the other hand, caching needs to be considered and factored into any design from day one. If your cache configuration is incorrect, you can find yourself with massive duplication, excessive heap usage, and incorrect content served, and it’s not always easy to see where you’re going wrong, so it bears paying close attention.
One of WebCenter Site's greatest strengths (and dangers) is and always has been its extensibility and flexibility. You can do just about anything with the platform. I've integrated it with video encoding, mobile delivery and messaging platforms like Tibco Rendezvous, written custom ingestion software to import twenty thousand pieces of content a day and used it purely as a content repository to be interrogated by custom applications.
However, because it's so open ended from a design point of view, it's also possible to make some particularly bad decisions if you don't have the right information and know-how.
WCS is commonly deployed with a configuration which includes Satellite Servers. These are essentially a distributed caching mechanism which store and assemble "pagelets," or elements of output. These Satellite Servers also sit on an application server, but have no database — they are memory and disk based only. They add a cheaper scaling alternative for handling large quantities of traffic.
To put that into perspective, I've recently worked on a project running on a 60 plus server cluster serving up to 250 million page views a month.
Let’s dig into some of the key product features.
Everything (well, almost everything) in WCS is called an “asset.” This means that all your content, as well as your code, is an object that has a set of standard operations that can be performed on it — creation, editing, deleting, revision tracking, workflow and so on.
Multilingual and Localization Support
Through the use of asset types called Dimensions and DimensionSets, WCS allows for the creation and management of content in multiple languages including the ability to link the translations together and assign a master language.
Most usefully of all it allows you to create a language fall-back strategy so that, for example, if a piece of content is not available in Swiss French, it would look for a Standard French version and, failing that, an English version.
There are also language packs allowing the Editorial interface to be rendered in a number of languages.
There is a module in the core product (although licensed separately) called Engage. This implements a number of additional asset types, such as Visitor Attributes, Segments and Recommendations.
- Why Agile As We Know It Will Disappear
- SWAM: When LinkedIn Locks Down Social Networking
- The Metamorphosis of the Social Enterprise
- Just How Badly Does Microsoft Want Your OneDrive Biz?
- ROI Is the Wrong Tool to Justify Social Investments
- Pivotal Revs Its Big Data Play, But There's a Better Story
- Oops! Is Rackspace Rethinking its 99.99% Uptime Boast?