Home - TcmExtensions/TcmCDService GitHub Wiki

Introduction

TcmCDService is a windows service which exposes a self-hosted Windows Communication Foundation (WCF) service. This service can be consumed from any .Net based clients to provide access to the Tridion Content Delivery functionality without having to directly integrate with Tridion.

The advantage is that the application will be agnostic to changes in Tridion and multiple application pools will be able to use the same Tridion Java Virtual Machine instead of loading a separate Tridion instance for each application.

The idea of hosting Tridion Content Delivery in a shared service is based an on initial implementation by Raimond Kempees. Thanks Raimond!

Architecture

TcmCDService centralizes all Tridion integration into a single service so that the Tridion JVM instance can be optimally used across multiple clients consuming information from Tridion Content Delivery.

Please see the architecture page for a more detailed description of the architecture.

Additionally a simple healthcheck functionality is available over standard HTTP. This allows network monitoring tools to validate the status of TcmCDService on regular intervals.

See here for more information about the [healthcheck configuration](Health Check).

API

TcmCDService exposes existing Tridion broker functionality using a standard WCF API. Out of the box a simple client library is included which allows interacting with the API directly.

More information can be found on the API page.

Cache Types

Cache types are plugins which enable TcmCDService to plug-in to the Tridion Content Delivery caching system. A cache type allows TcmCDService to cache api results in .NET and receive cache update events from the Tridion Java virtual machine(s).

The following cachetypes are available:

NullCache

NullCache cache type instructs TcmCDService to not cache any Tridion content delivery results within .NET, this is the default behavior.

AbsoluteCache

AbsoluteCache cache type instructs TcmCDSevice to cache any Tridion content delivery results within .NET with an absolute expiration. The expiration duration is configurable in the configuration section.

RMI Cache

Remote method interface cache type uses the JuggerNET Java virtual machine interface to register with an existing Tridion Cache Channel. This allows .NET to listen (and react to) Tridion content delivery cache events. Only when a cache event is received, the associated item is removed from the .NET cache. More details are on the [RMI Cache](RMI Cache) page.

Native RMI Cache

The native remote method interface cache type implements a remote method interface connection to an existing Tridion Cache Channel by means of IKVM.net. More details are on the [Native RMI Cache](Native RMI Cache) page.

ActiveMQ Cache

ActiveMQ cache type implements a connection to Apache Active MQ, note that Tridion Content Delivery will have to make use of the JMSXMLCacheChannelConnector provided as part of TcmCDService. More details on the [ActiveMQ Cache](ActiveMQ Cache) page.

ZeroMQ Cache

ZeroMQ cache type implements a subscriber/publisher model using ZeroMQ, not that Tridion Content Delivery will have to make use of the ZMQCacheChannelConnector provided as part of TcmCDService. More details on the [ZeroMQ Cache](ZeroMQ Cache) page.

Configuration

The TcmCDService configuration consists of both the TcmCDService configuration itself as well as configuration for the provided plug-ins on the Tridion Content Delivery side.

Please see the following pages for configuration information:

  • Configuration
  • [RMI Configuration](RMI Configuration)
  • [ActiveMQ Configuration](ActiveMQ Configuration)
  • [ZeroMQ Configuration](ZeroMQ Configuration)