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
Senderassembles 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. ASendersends 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
Processorsto 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 (
ProcessorandModuleelements) 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.xmlconfiguration 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.