Publishing overview

Publishing is the process of getting content out of the Content Manager through a Content Delivery environment, onto a presentation environment. Publishing involves a number of processes, each of which performs a specific task. Publishing is multi-threaded and facilitates distribution to multiple destinations, such as data centers, webservers and so on.

The following diagram shows the various parts of the publishing process:

Publishing from the Content Manager environment

In the Content Manager environment, publishing comprises the following subprocesses:

Publish command

A user publishes content to a Target Type, which represents a logical target in Topology Manager. The Publisher Engine then generates Publish Transactions for the items to publish, and puts them in the Publisher Queue where the Transactions await being picked up by the Publisher Service.

Publisher service

The Publisher Service interacts with Topology Manager to retrieve information about where and how to send the content, and offers the content and publishing information to the Transport Service.

Transport Service

The Transport Service's Sender assembles the item(s), together with any other items on which it depends, into a Transport Package which it transports to the Content Deployer on the Content Delivery environment. A Sender sends the package to one or more physical destinations.

Publishing to the Content Delivery environment

In the Content Delivery environment, publishes comprises the following subprocesses:

Content Deployer

On the Content Delivery system, a Content Deployer receives the Transport Package. The Content Deployer uses one of its Processors to process the contents of the Transport Package. Each Processor contains a number of Modules which specify the steps in the deployment or undeployment process. The package is processed by the Content Deployer and the items in the package are sent on to the Storage Layer.

You can add your own custom processing (Processor and Module elements) to the Content Deployer.

Storage Layer

The Storage Layer handles the storing and retrieving of data to and from the Content Data Store. The Storage Layer is configurable so that you can store individual types of incoming items to different databases.

The Storage Layer is based on the Java Persistence API (JPA) and its concrete implementation, Hibernate. Because the Storage Layer is extensible, third-party storage solutions such as streaming server or content delivery networks (CDNs) can be fully integrated. The Storage Layer provides interaction with a storage medium using an implementation pattern (Data Access Object) and supports JSR-220.

You can use CDNs to cache copies of your site content in locations closer to your local markets. This distributes the load on your central infrastructure, provides failover and improves the responsiveness of your site.

The extensibility of the Storage Layer also lets you store additional information, using the same mechanism as regular content. The Storage Layer lets you hook into the moment at which a publish transaction is committed. The extension then uses this hook to notify the CDN about any successfully deployed changes, so that it can update the CDN cache accordingly.

You configure where to store content in the cd_storage_conf.xml configuration file.

Caching
You can implement object caching to store the most commonly used objects in the in-memory cache, in order to improve the performance of your website. Content Delivery guarantees that the cache gets refreshed when content updates occur. The cache keeps objects available to applications for repeated use.
Content Delivery APIs
The Content Delivery APIs allow you to access published content (Pages, Component Presentations, and published metadata) from your Web pages using the ASP.NET APIs or the JSP APIs depending on the Web technology you use.
Presentation environment
The presentation environment comprises the machines on which a web application server is installed.