Architecting Java solutions for CICS Architecting Java solutions for - - PowerPoint PPT Presentation
Architecting Java solutions for CICS Architecting Java solutions for - - PowerPoint PPT Presentation
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 youll
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
CICS as a mixed language application server Integrating Java applications into a mixed language environment Different ways of developing and deploying Java 1. 2. 3.
Thank you for watching
Overview of Java in CICS
Mixed language applications in 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?
What is CICS?
Transactional integrity High security Workload management Wide range of standard connectors 1. 2. 3. 4.
COBOL PL/I Assembler C/C++
CICS – A mixed language application server
REXX PHP Java Mixed language application server
Mixed language applications in CICS
Inter-language calling between components COBOL, Java and other languages Common interfaces Independant development 1.
Mixed language applications in CICS
Standard APIs EXEC CICS command API Language neutral syntax Translated at compile time Language specific implementation for Java 2.
Mixed language applications in CICS
Container management Transactions and security CICS task provides UOW and security context Spans across multiple language components 3.
Multiple language components
Channels and containers CICS task C component COMMAREA storage COBOL component Java component Security & transaction context
TASK0001 (Transaction: TRAN)
COMMAREA
PROGRAM A
COMMAREA FIELD1–“INPUTDATA” FIELD2–123456 FIELD3–“”
PROGRAM B READ COMMAREA BUSINESS LOGIC MODIFY COMMAREA WITH ADDITIONAL DATA LINK PROGRAM TO PROGRAM B
COMMAREA FIELD1–“INPUTDATA” FIELD2–123456 FIELD3–“OUTPUTDATA”
Calling components with a COMMAREA
Calling components with channel & containers
TASK0001 (Transaction: TRAN) PROGRAM A
CHANNEL CHANNEL
PROGRAM B READ INPUT CONTAINER BUSINESS LOGIC LINK TO PROGRAM B CREATE OUTPUT CONTAINER RETURN READ OUTPUT CONTAINER CREATE INPUT CONTAINER CREATE CHANNEL
OUTPUT CONTAINER INPUT CONTAINER
EXEC CICS API and translator
EXEC CICS LINK PROGRAM ( ) Language specific statements
Translator Compiler
CICS transactions
CICS task Security Context Unit of work Program Transaction Definition Program Initial Program
Overview of Java in CICS
Java support in CICS
Popular language Readily available skills Rich set of tools Lower operating costs
Why use Java?
Java components
JVM Java compiler Java source code Bytecode Class loaders Interpreter Garbage collector JIT compiler Java class libraries Threads & synchronization
Java support on z/OS
Java class libraries z/OS extension libraries z Systems hardware instructions Java source code JVM Class loaders Interpreter JIT compiler Garbage collector Threads & synchronization awt net i/o sql … JZOS … Crypto support Health Center
Moving eligible work to zIIP
System z Java Java Java General CP zIIP Java Java Java
Java support in CICS
CICS JVM server CSD zFS directory JVM profile System Initialization Table (SIT) JVMPROFILEDIR= Java applications JVMSERVER
OSGi JVM server Liberty JVM server Classpath JVM server
Types of JVM server
Axis2 web services engine JSON web services JSON parsers SAML Dynamic scripting (PHP)
Embedded CICS functions
OSGi JVM server
CICS HTTP 3270 APPC EXEC CICS LINK EXEC CICS START JVM server TCPIP Service COBOL program PROGRAM JCICS
VSAM file DB2 TD & TS queues
MQ JDBC JMS Java applications
OSGi
JVM OSGi framework OSGi registry OSGi bundle HelloWorld ClassA ClassB ClassX com.package.aaa com.package.zzz ClassY ClassZ
OSGi JVM server
CICS JVM server OSGi framework
com.ibm.MyClass1
OSGi bundle
com.ibm.MyClass2
OSGi bundle OSGi service registry PROGRAM MYPROG1 EXEC CICS LINK PROGRAM ( ) EXEC CICS START TRANSID( )
Liberty JVM server
CICS HTTP EXEC CICS LINK JDBC JMS JVM server COBOL program MQ JCICS
VSAM file
Database
TD & TS queues
Java EE web application
Link to Liberty
CICS JVM server Liberty server EXEC CICS LINK PROGRAM ( ) Web app POJO
PROGRAM MYPROG1
Standard mode Requests do not run on CICS enabled threads by default Provides high zIIP offload
Integrated and standard mode Liberty
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 EAR file EBA file CICS bundle Web app Web app EJB Web app OSGi bundle
Java EE application deployment
WAR file CICS bundle project EAR file EBA file Dropins CICS server.xml Web app Web app EJB Web app OSGi bundle { JVM server CSD CICS BUNDLE definition
Overview of Java in CICS
Java application development for CICS
Java Standard Edition Java Enterprise Edition JCICS JDBC & JMS z/OS extension libraries
Java APIs supported in CICS
Java Standard Edition
Base libraries Integration libraries User Interface Toolkits lang and util Networking Security XML JNI JDBC JNDI RMI AWT Swing Print Service
JCICS
JVM CICS region Java application Java class libraries JCICS API
Java Native Interface
Transient Data Temporary Storage VSAM
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
JCICS
Java Enterprise Edition – Java EE 7 Java EE 6 & Java EE 7 JSR specifications Java EE web profile
Java Enterprise Edition
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
Enterprise access tier Business application tier Web application tier JDBC JPA JMS JCA JTA Servlets JSPs JSF Java Beans Java web services EJB JPA Managed beans Batch processing
CICS Explorer SDK for Java
z/OS CICS region zFS CICS Explorer SDK CICS bundle project OSGi bundle project Workstation Web project Eclipse IDE Export to zFS CICS build tookit
Overview of Java in CICS
Use cases for Java applications in CICS
Use cases for Java applications in CICS
Java web applications Java web services Java components in CICS applications Java batch 1. 2. 3. 4.
Lower costs Fast response times High developer productivity z/OS platform qualities of service
Benefits for all Java applications in CICS
Java web applications
Liberty CICS region JVM server Web application CICS program MQ Web browser DB2 VSAM
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 applications
Java web services
Liberty CICS region JVM server Web application CICS program MQ SOAP JSON DB2 VSAM
Industry standard formats Customizable processing Data mapping tools
Java web services
New Java components
CICS region JVM server Java application CICS program MQ CICS program DB2 VSAM
Modernize CICS applications Java development Reuse Java components CICS mixed language environment
Java components
Java batch
Liberty CICS region Shared repository JVM server Liberty CICS region JVM server Batch executor Liberty CICS region JVM server Clients Batch dispatcher Messaging engine server
Persistent database
Job repository