EXCI (External CICS Interface) is an IBM-defined API for non-CICS applications to execute programs under CICS, much as if they had been called from a CICS program using EXEC CICS LINK. For an introduction to EXCI see About CICS External Call Interface. For more information on the design of EXCI, see the IBM CICS documentation.
EXCI in Enterprise Server for .NET is implemented using a REST web service that invokes the system transaction CPMI. The standard CICS resource definition set supplied with the product includes a PCT definition for CPMI, but for security reasons the corresponding REST web service is not defined by default. Instructions for defining it can be found in Configuring a REST Web Service for EXCI.
In the native-code Enterprise Server, EXCI is implemented using IBM's CTG protocol. The EXCI client APIs support both REST and CTG, so you can invoke CICS programs running under both managed and native Enterprise Server.
To make an EXCI request, the client program invokes one of the EXCI client APIs (see EXCI Client APIs) with the appropriate parameters and options. The EXCI client layer uses the APPLID string supplied by the client application to find the URL for the EXCI REST service or CTG listener for the target CICS region. If the target is anEnterprise Server for .NET CICS region, the client constructs a request object and serializes it, then passes it to the REST service as the commarea for the CPMI transaction. The request object includes the name of the program that the client wants to invoke. CPMI invokes the program, passing the application request data. When the application program returns, CPMI constructs a response object which includes the application response (if any), as well as error codes and abend information. That is returned to the EXCI client layer, which deserializes the response and makes the information available to the client program. With native Enterprise Server, the process is somewhat different, but the results are essentially identical from the application's point of view.
To derive the service URL from the APPLID supplied by the caller, the EXCI client layer looks in the application configuration or web configuration for the client program. The URL may use the http scheme, to connect to Enterprise Server for .NET, or the ctg scheme for native Enterprise Server. It can also make use of an optional user exit routine to convert one APPLID to another. See Configuring EXCI for the client.