This section provides an overview of Coherence*ExtendTM
and its architecture. It provides the following information:
Overview
Coherence*ExtendTM
extends the reach of the core Coherence TCMP cluster to a wider range of consumers, including desktops, remote servers and machines located across WAN connections. It also provides a wider range of language support including .NET and C++ clients. Typical uses of Coherence*Extend include providing desktop applications with access to Coherence caches (including support for Near Cache and Continuous Query) and Coherence cluster "bridges" that link together multiple Coherence clusters connected via a high-latency, unreliable WAN.
Coherence*ExtendTM
consists of two basic components: a client running outside the cluster, and a proxy service running in the cluster. The client API includes implementations of both the CacheService and InvocationService interfaces which route all requests to a proxy running within the Coherence cluster. The proxy service in turn responds to client requests by delegating to an actual Coherence clustered service (for example, a Partitioned or Replicated cache service).
There are three Coherence*ExtendTM
clients available:
Types of clients
Coherence*ExtendTM
clients provide the same rich API support as the standard Coherence API without being full data members of the cluster. Clients come in two flavors:
- Data client - The base client that allows for:
- Key based cache access via the NamedCache interface
- Attribute based cache access using Filters
- Custom processing and aggregation of cluster side entries using the InvocableMap interface
- In process caching via LocalCache
- Remote invocation of custom tasks in the cluster via the Invocation Service
- Real Time Client
Proxy service overview
The proxy service is responsible for dispatching requests from Extend clients to actual clustered services and returning the results of these requests to the appropriate client. It is hosted by one or more DefaultCacheServer processes running within a cluster. Clients communicate with a proxy service using a low-level messaging protocol that has two transport bindings:
- Extend-TCPTM
: uses a high performance, scalable TCP/IP-based communication layer to connect to the cluster. This protocol is supported by all available clients.
- Extend-JMSTM
: uses your existing JMS infrastructure as the means to connect to the cluster. This protocol is only supported by the java client.