The CICS External Call Interface, or EXCI, lets a non-CICS program invoke a CICS program, locally or on a remote system. It acts much like the EXEC CICS LINK macro except that it's used from a program which is not running under CICS. The caller can be a standalone application, a program running in a JES region, part of the code for an ASP.NET web page, and so on. The calling program and the CICS program it invokes communicate using a CICS commarea.
There are several ways to make a call using EXCI. Enterprise Server for .NET supports the EXCI DFHXCIS API specified by IBM, with some limitations. DFHXCIS is a procedural API and is useful with migrated applications that used EXCI on the mainframe. It also provides an object-oriented API for a more natural programming style when EXCI is used from OO COBOL programs or programs written in other .NET languages. Finally, procedural COBOL programs can be compiled with the CICSECM(EXCI=YES) compiler directive and use the EXEC CICS LINK macro to make EXCI calls.
EXCI is particularly suited for standalone procedural COBOL programs and for programs running in an Enterprise Server for .NET JES region. For COBOL programs, the EXEC CICS LINK macro is a very convenient way to make calls to CICS programs.
In Enterprise Server for .NET, EXCI is implemented using CICS REST web services. An EXCI client makes a REST request to the EXCI mirror transaction, CPMI, which in turn links to the program specified by the EXCI request.
In Enterprise Server, EXCI is implemented using the IBM CICS Transaction Gateway (CTG) protocol. Enterprise Server for .NET includes client support for CTG, which lets .NET programs (including COBOL for .NET programs running in Enterprise Server for .NET JCL regions, for example) make EXCI requests to native-code Enterprise Server regions. Client programs use the same interfaces (DFHXCIS, the EXCI client class, and EXEC CICS LINK) for both the REST protocol (to invoke programs under Enterprise Server for .NET CICS) and the CTG protocol (for Enterprise Server CICS). The application configuration file determines which protocol is used, and an application can make EXCI requests to both types of regions. See the Enterprise Server documentation for information on configuring a CTG listener.