Design choices for Java in CICS

CICS® supports various frameworks, tools, and packaging types. When you design your Java application, you need to understand different options you have at each stage: development, packaging, and deployment.

CICS provides a JVM server as the runtime environment to host applications in the CICS region. The JVM server can be configured to be a classpath-based Java VM, an OSGi framework, or a WebSphere® Liberty application server. Typically, an OSGi JVM server is appropriate when Java SE APIs are required, and a Liberty JVM server is appropriate where web technology, Enterprise Java APIs, or both are required.

Applications in Liberty JVM server

This diagram shows the support available for the Liberty server. Applications that are packaged as enterprise bundle archive (EBA), web application archive (WAR), enterprise application archive (EAR), Java archive (JAR), or resource adapter archive (RAR) files can be deployed into a Liberty JVM server. If you want to deploy OSGi applications into a Liberty JVM server, you need to wrap OSGi bundles into an EBA package. Note that EBA is stabilized from Java EE 8 or Jakarta EE 8. For differences between EBA, WAR, and EAR, see Enterprise Java and Liberty applications.

Figure 1. Design choices for Liberty JVM server applications
A decision tree showing support for Liberty JVM server applications

You can deploy a Liberty supported package by adding an <application> element that points to the application package to the Liberty server configuration (server.xml, included files, or configuration dropins files). CICS also supports deploying EAR, WAR, and EBA packages as bundle parts in CICS bundles. The CICS bundle is the recommended way of deploying CICS applications because it allows an entire CICS application to be controlled from a singular point.

Applications in OSGi JVM server

For OSGi applications to run in an OSGi JVM server, you must deploy OSGi bundles as bundle parts in CICS bundles.

Figure 2. Design choices for OSGi JVM server applications
A decision tree showing support for OSGi JVM server applications

Where next?