23/27

# 17 Coherence*Extend

Coherence*Extend 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 through a high-latency, unreliable WAN.

Coherence*Extend 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*Extend clients available:

- Java

- .NET

- C++

See Oracle Coherence Client Guide for detailed information on setting up Coherence*Extend and creating clients.

## Types of Clients

Coherence*Extend clients provide the same rich API support as the standard Coherence API without being full data members of the cluster. There are two categories of clients:

- Data client—The base client that allows for:

  - Key-based cache access through the `NamedCache` interface

  - Attribute-based cache access using Filters

  - Custom processing and aggregation of cluster side entries using the `InvocableMap` interface

  - In process caching through `LocalCache`

  - Remote invocation of custom tasks in the cluster through the Invocation Service

- Real Time Client (described in Chapter 18, "Real Time Client—RTC")

## 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 TCP/IP transport binding, Extend-TCP which uses a high performance, scalable TCP/IP-based communication layer to connect to the cluster. This protocol is supported by all available clients.