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 COMMAREA component storage Java component C Security & transaction context component
Calling components with a COMMAREA TASK0001 (Transaction: TRAN) PROGRAM A PROGRAM B COMMAREA FIELD1–“INPUTDATA” COMMAREA FIELD2–123456 READ COMMAREA FIELD3–“” BUSINESS LOGIC LINK PROGRAM TO PROGRAM B MODIFY COMMAREA WITH ADDITIONAL COMMAREA DATA FIELD1–“INPUTDATA” FIELD2–123456 FIELD3–“OUTPUTDATA”
Calling components with channel & containers TASK0001 (Transaction: TRAN) PROGRAM A CHANNEL PROGRAM B CREATE INPUT CONTAINER CHANNEL OUTPUT CONTAINER READ INPUT CREATE INPUT CONTAINER CONTAINER LINK TO BUSINESS CHANNEL PROGRAM B LOGIC CREATE OUTPUT CONTAINER READ OUTPUT CONTAINER RETURN
EXEC CICS API and translator EXEC CICS LINK PROGRAM ( ) Translator Language specific statements Compiler
CICS transactions CICS task Transaction Definition Initial Program Security Context Unit of Program work 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 Java class Bytecode libraries JVM Class loaders Threads & Interpreter synchronization Garbage collector JIT compiler
Java support on z/OS Java class libraries z/OS extension libraries Java source Crypto Health … … awt net i/o sql JZOS code support Center JVM Class loaders Garbage collector Interpreter Threads & synchronization JIT compiler z Systems hardware instructions
Moving eligible work to zIIP System z Java Java Java Java Java Java General zIIP CP
Java support in CICS CSD CICS JVMSERVER JVM server System Initialization Table (SIT) Java applications JVMPROFILEDIR= zFS directory 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 MQ CICS JMS JVM server JDBC DB2 Java applications JCICS VSAM file TD & TS queues HTTP TCPIP COBOL PROGRAM Service program 3270 APPC EXEC CICS LINK EXEC CICS START
OSGi JVM OSGi framework OSGi registry OSGi bundle com.package.aaa com.package.zzz HelloWorld ClassX ClassA ClassY ClassB ClassZ
OSGi JVM server CICS JVM server OSGi framework OSGi service registry OSGi bundle EXEC CICS LINK PROGRAM com.ibm.MyClass1 PROGRAM ( ) MYPROG1 OSGi bundle EXEC CICS START com.ibm.MyClass2 TRANSID( )
Liberty JVM server MQ CICS JMS JVM server JDBC HTTP Database Java EE web application JCICS VSAM file TD & TS queues EXEC CICS LINK COBOL program
Link to Liberty CICS JVM server Liberty server Web app EXEC CICS LINK PROGRAM POJO MYPROG1 PROGRAM ( )
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 OSGi bundle { CICS Web app JVM server Dropins EAR file Web app EJB server.xml EBA file Web app CSD CICS BUNDLE CICS bundle definition project
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 XML JNI Security
JCICS CICS region Java application Java class libraries JVM JCICS API Java Native Interface Transient Temporary VSAM Data Storage
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 z/OS CICS bundle project Export to zFS OSGi bundle project zFS CICS region CICS build tookit Web project
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 DB2 JVM server VSAM Liberty Web Web MQ browser application 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 DB2 JVM server VSAM Liberty JSON Web MQ application SOAP CICS program
Java web services Industry standard formats Customizable processing Data mapping tools
New Java components CICS region DB2 JVM server VSAM CICS Java MQ program application CICS program
Java components Modernize CICS applications Java development Reuse Java components CICS mixed language environment
Java batch CICS region Shared repository CICS region JVM server JVM server Persistent Liberty Liberty database Job Batch Batch Clients repository dispatcher 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
Recommend
More recommend