Architecting Java solutions for CICS
Architecting Java solutions for CICS Course introduction
Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development
What you ll learn by the end of this course 1. CICS as a mixed language application server 2. Integrating Java applications into a mixed language environment 3. Different ways of developing and deploying Java
Thank you for watching
Overview of Java in CICS Mixed language applications in CICS
What is CICS? Mixed language application server High volume on-line transaction processing Provides services to host applications Multi-user access to data and messaging
What is CICS? 1. Transactional integrity 2. High security 3. Workload management 4. Wide range of standard connectors
CICS A mixed language application server COBOL REXX PL/I PHP Assembler Java C/C++ Mixed language application server
Mixed language applications in CICS 1. Inter-language calling between components COBOL, Java and other languages Common interfaces Independant development
Mixed language applications in CICS 2. Standard APIs EXEC CICS command API Language neutral syntax Translated at compile time Language specific implementation for Java
Mixed language applications in CICS 3. Container management Transactions and security CICS task provides UOW and security context Spans across multiple language components
Multiple language components CICS task Channels and containers COBOL component COMMAREA storage Java component Security & transaction context C component
Calling components with a COMMAREA TASK0001 (Transaction: TRAN) PROGRAM A COMMAREA FIELD1 INPUTDATA FIELD2 123456 FIELD3 LINK PROGRAM TO PROGRAM B COMMAREA FIELD1 INPUTDATA FIELD2 123456 FIELD3 OUTPUTDATA COMMAREA PROGRAM B READ COMMAREA BUSINESS LOGIC MODIFY COMMAREA WITH ADDITIONAL DATA
Calling components with channel & containers TASK0001 (Transaction: TRAN) PROGRAM A CREATE CHANNEL CREATE INPUT CONTAINER LINK TO PROGRAM B READ OUTPUT CONTAINER CHANNEL INPUT CONTAINER OUTPUT CONTAINER CHANNEL PROGRAM B READ INPUT CONTAINER BUSINESS LOGIC CREATE OUTPUT CONTAINER RETURN
EXEC CICS API and translator EXEC CICS LINK PROGRAM ( ) Translator Language specific statements Compiler
CICS transactions CICS task Transaction Definition Security Context Initial Program Unit of work Program Program
Overview of Java in CICS Java support in CICS
Why use Java? Popular language Readily available skills Rich set of tools Lower operating costs
Java components Java source code Java compiler Bytecode Java class libraries Class loaders JVM Interpreter Threads & synchronization Garbage collector JIT compiler
Java support on z/os Java class libraries z/os extension libraries Java source code awt net i/o sql Crypto Health JZOS support Center Class loaders JVM Interpreter Garbage collector JIT compiler Threads & synchronization z Systems hardware instructions
Moving eligible work to ziip System z Java Java Java Java Java Java General CP ziip
Java support in CICS CSD JVMSERVER CICS System Initialization Table (SIT) JVMPROFILEDIR= zfs directory JVM server Java applications JVM profile
Types of JVM server OSGi JVM server Liberty JVM server Classpath JVM server
Embedded CICS functions Axis2 web services engine JSON web services JSON parsers SAML Dynamic scripting (PHP)
OSGi JVM server CICS MQ JVM server JMS Java applications JDBC JCICS DB2 VSAM file HTTP TCPIP Service PROGRAM COBOL program TD & TS queues 3270 APPC EXEC CICS LINK EXEC CICS START
OSGi JVM OSGi framework OSGi registry OSGi bundle com.package.aaa com.package.zzz HelloWorld ClassA ClassB ClassX ClassY ClassZ
OSGi JVM server CICS JVM server OSGi framework EXEC CICS LINK PROGRAM ( ) PROGRAM MYPROG1 OSGi service registry OSGi bundle com.ibm.myclass1 EXEC CICS START TRANSID ( ) OSGi bundle com.ibm.myclass2
Liberty JVM server CICS MQ JVM server JMS HTTP Java EE web application JDBC JCICS Database VSAM file EXEC CICS LINK COBOL program TD & TS queues
Link to Liberty CICS JVM server Liberty server Web app EXEC CICS LINK PROGRAM ( ) PROGRAM MYPROG1 POJO
Integrated and standard mode Liberty Standard mode Requests do not run on CICS enabled threads by default Provides high ziip offload
Integrated and standard mode Liberty Integrated mode Requests run on CICS enabled threads EXEC CICS LINK command to POJOs Integrated with CICS transactions and security
Java EE application packaging WAR file Web app EAR file Web app CICS bundle EJB EBA file Web app OSGi bundle
Java EE application deployment WAR file Web app EAR file Web app EJB { Dropins server.xml CICS JVM server EBA file Web app OSGi bundle CICS bundle project CSD CICS BUNDLE definition
Overview of Java in CICS Java application development for CICS
Java APIs supported in CICS Java Standard Edition Java Enterprise Edition JCICS JDBC & JMS z/os extension libraries
Java Standard Edition User Interface Toolkits AWT Swing Print Service Integration libraries JDBC JNDI RMI Base libraries lang and util Networking Security XML JNI
JCICS CICS region Java application JVM Java class libraries JCICS API Java Native Interface Transient Data Temporary Storage VSAM
JCICS Task Syncpoint control and abends Program Link command TSQ and TDQ Accessing queues KSDS, ESDS and RRDS - VSAM files StartResource - Asynchronous processing CICSConditionException - Error response codes
Java Enterprise Edition Java Enterprise Edition Java EE 7 Java EE 6 & Java EE 7 JSR specifications Java EE web profile
Java EE Web profile highlights Subset of full platform Core web technology Servlets/JSPs RESTful JSON web services Local EJB support Contexts and Dependency injection Web sockets
Java EE Full platform highlights Web application tier Servlets JSPs JSF Java Beans Business application tier Java web services EJB JPA Managed beans Enterprise access tier JDBC JPA JMS JCA JTA Batch processing
CICS Explorer SDK for Java Workstation Eclipse IDE CICS Explorer SDK CICS bundle project Export to zfs z/os OSGi bundle project Web project CICS build tookit zfs CICS region
Overview of Java in CICS Use cases for Java applications in CICS
Use cases for Java applications in CICS 1. Java web applications 2. Java web services 3. Java components in CICS applications 4. Java batch
Benefits for all Java applications in CICS Lower costs Fast response times High developer productivity z/os platform qualities of service
Java web applications CICS region JVM server DB2 VSAM Web browser Liberty Web application MQ CICS program
Java web applications Host web applications from other platforms Simplified administration Potential to lower costs Manage together with CICS components Option to tightly integrate with CICS
Java web services CICS region JSON SOAP JVM server Liberty Web application DB2 VSAM MQ CICS program
Java web services Industry standard formats Customizable processing Data mapping tools
New Java components CICS region JVM server DB2 VSAM CICS program Java application MQ CICS program
Java components Modernize CICS applications Java development Reuse Java components CICS mixed language environment
Java batch CICS region JVM server Liberty Shared repository Persistent database CICS region JVM server Liberty Clients Batch dispatcher Job repository Batch executor CICS region JVM server Liberty Messaging engine server
Java batch Can be run with online transactions Flexible scheduling Parallel processing Automatic restart after failures Optimized Java execution
Summary Course review
Course review Invoke CICS programs from Liberty Used JCICS to access VSAM files TSQs Unit of work support Error handling