The purpose of this document is to describe the:
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:
Each edition has a different (graduated) list of features which can be found in Appendix A, "Coherence Features by Edition".
Figure 22-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.
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.
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 22-2 illustrates how a request is passed from a Coherence client process to internal data storage:
A Coherence client process uses Extend*TCP to initiate and maintain a connection to the Coherence (server-side) Data Grid.
Extend*TCP connects to the Coherence Server JVM process, specifically the Extend*Proxy service that is running within the process space.
The Extend*Proxy service routes the client requests to the internal data storage.
This section assumes that the components involved remain the same as in the previous example. Figure 22-3 illustrates how requests are passed from the client processes to internal data storage where there are multiple Coherence server JVM processes:
The Coherence client processes use Extend*TCP to initiate and maintain a connection to the Coherence (server-side) Data Grid.
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.
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.