Customizing WebCenter Content Server: Part 1 – Content Server Architecture
By: Dwayne Parkinson – Solution Architect
WebCenter Content is an incredibly flexible and customizable system. The architecture allows for virtually any customization that can be dreamed up. The goal of the next few Blog entries is to give our readers an overview of what they need to start to leverage the architecture and customize it to their liking. In this entry we will talk about the way that Oracle Content Server is architected since understanding the architecture is the foundation of customization.
When a web browser client sends a content server request to the web server, the web server routes the request to the content server, which then performs one or more of the following actions:
- Run a content server service
- Run a search engine service
- Run a page retrieval service
Services are an important concept for developers. A service is a function or procedure that is performed by the content server. A client can communicate with the content server only by calling a content server service.
When a web browser requests a dynamic page, the actual request is for a service. For example, this is the request that is sent when clicking on the checkin link, a request for the CHECKIN_NEW_FORM service is sent to the web server.
Note: Because of this, the URL is a very important tool when developing. A user is usually only aware of the interaction with the interface, but the URL gives specifics about content server requests for different services.
Another central concept to the Content Server behavior is the concept of load order. Through the process of customization, a developer will work with the items listed in the four startup phases depicted below such as:
- Java classes
- Standard resources
- Custom Components
The following chart and table helps to show the way that these interact.
|2||Configuration Variables load||
|3||Standard Templates, Reports, and Resources Load||
|4||Custom Components Load||
The first two steps include loading many variables to memory through the following two files:
Content Server system variables, including directory, Internet and refinery settings, are configured in this file.
Global variables and configuration settings are configured in this file.
For information on the configuration variables please refer to the latest Oracle documentation. Our focus for customization will be on resources and components.
Much of Content Server’s functionality depends on Resources which are used to store and access code on the file system. The important thing to understand is that these resources can contain variables and custom code that affect Content Server functionality.
Additionally, when developing custom components you must be aware that custom resources are loaded after the standard resources. This means that in cases of overlapping names, custom resources are positioned so they override standard resources so load order is very important. For instance, if a variable is written to memory on two separate occasions in the loading process, the second instance will override the first.
The previous note is exemplified through the following scenario:
- A general configuration variable is set in config.cfg (this would be loaded in step 2).
- A custom component sets this same variable as part of one of its resources (this would be loaded in step 4).
In this scenario, VariableA would equal 1 because it was set by a Custom Component which is loaded later than the version of VariableA that was loaded in the Config.cfg file.
While there is much more to the content server architecture than we have covered here, this basic architecture overview will give us a foundation that we can use as we explore different was to customize the content server.
For more information on customizing WebCenter Content, please contact TEAM Informatics and ask about our training classes that can be tailored to suit the needs of your business.