21 The Coherence Ecosystem

The purpose of this document is to describe the:

21.1 Breakdown of Coherence editions

The Coherence ecosystem is divided into two subsections: Coherence client editions and Coherence server editions. There are two different client editions:

And there are three different server editions:

  • Standard Edition

  • Enterprise Edition

  • Grid Edition

Each edition has a different (graduated) list of features which can be found in Appendix A, "Coherence Features by Edition".

21.2 Coherence Client and Server Connections

Figure 21-1 illustrates which client editions can connect to which server editions. It illustrates two important points:

  • Coherence Data Client can connect to any of the Coherence Server Editions.

  • Coherence Real Time Client can only connect to Coherence Grid Edition.

Figure 21-1 Client/Server Features by Edition

Description of Figure 21-1 follows
Description of "Figure 21-1 Client/Server Features by Edition"

21.3 Coherence Modules Involved in Connecting Client and Server Editions

There are two Coherence modules involved in connecting Coherence client and server editions:

  • Coherence*Extend—which is the protocol (built on TCP/IP) that is used between the Coherence client and server processes.

  • Coherence*Extend TCP Proxy—which is the module that sits within a Coherence server edition process that manages the Coherence Extend*TCP connections coming in from the clients.

21.3.1 How a Single Coherence Client Process Connects to a Single Coherence Server

Note:

Coherence provides cross-platform client support by providing native clients for Java, .NET (C#), and C++. This allows different platforms to access, modify, query, (and so on), data between programming languages by connecting to the Coherence data grid. For more information on a data grid, see Chapter 1, "Defining a Data Grid".

Figure 21-2 illustrates how a request is passed from a Coherence client process to internal data storage:

  1. A Coherence client process uses Extend*TCP to initiate and maintain a connection to the Coherence (server-side) Data Grid.

  2. Extend*TCP connects to the Coherence Server JVM process, specifically the Extend*Proxy service that is running within the process space.

  3. The Extend*Proxy service routes the client requests to the internal data storage.

Figure 21-2 Single Client, Single Server

Description of Figure 21-2 follows
Description of "Figure 21-2 Single Client, Single Server"

21.3.2 Considering Multiple Clients and Servers

This section assumes that the components involved remain the same as in the previous example. Figure 21-3 illustrates how requests are passed from the client processes to internal data storage where there are multiple Coherence server JVM processes:

  1. The Coherence client processes use Extend*TCP to initiate and maintain a connection to the Coherence (server-side) Data Grid.

  2. Extend*TCP connects to a single Coherence server JVM process, specifically the Extend*Proxy service that is running within the process space. In the event of failure the client process will connect to another Coherence server JVM process that is running the Extend*Proxy service.

  3. The Extend*Proxy service then routes the client requests to the correct Coherence server JVM process (that is, the process or processes that hold the data relevant to the client request) represented by the "internal data storage" in the diagram.

Figure 21-3 Multiple Clients and Servers

Description of Figure 21-3 follows
Description of "Figure 21-3 Multiple Clients and Servers"