Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS...
Transcript of Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS...
Architecting Java solutions for CICS
Architecting Java solutions for CICSCourse 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 CICSMixed 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
Ccomponent
COMMAREAstorage
COBOLcomponent
Javacomponent
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
SecurityContext
Unit of work
Program
Transaction Definition
Program
Initial Program
Overview of Java in CICSJava 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
JVMClass loaders
Interpreter
JIT compiler
Garbagecollector
Threads & synchronization
awt net i/o sql … JZOS …Cryptosupport
HealthCenter
Moving eligible work to zIIPSystem z
Java
Java
Java
GeneralCP
zIIP
Java
Java
Java
Java support in CICS
CICS
JVM server
CSD
zFS directory
JVM profile
System Initialization Table (SIT)
JVMPROFILEDIR=
Javaapplications
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
TCPIPService
COBOLprogramPROGRAM
JCICS
VSAMfile
DB2
TD & TSqueues
MQ
JDBC
JMS
Javaapplications
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 serviceregistry
PROGRAMMYPROG1
EXEC CICS LINKPROGRAM ( )
EXEC CICS STARTTRANSID ( )
Liberty JVM server
CICS
HTTP
EXEC CICS LINK
JDBC
JMSJVM server
COBOLprogram
MQ
JCICS
VSAMfile
Database
TD & TSqueues
Java EE web application
Link to Liberty
CICS
JVM server
Liberty server
EXEC CICS LINKPROGRAM ( )
Web app
POJOPROGRAMMYPROG1
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 bundleproject
EAR file
EBA file
Dropins
CICS
server.xml
Web app
Web app
EJB
Web app
OSGi bundle
{JVM server
CSD
CICS BUNDLEdefinition
Overview of Java in CICSJava 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 NativeInterface
TransientData
TemporaryStorage 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 regionzFS
CICS Explorer SDK
CICS bundle project
OSGi bundle project
Workstation
Web project
Eclipse IDE
Export to zFS
CICS build tookit
Overview of Java in CICSUse 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
CICSprogram
MQWeb browser
DB2VSAM
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
CICSprogram
MQ
SOAP
JSON
DB2VSAM
Industry standard formats
Customizable processing
Data mapping tools
Java web services
New Java components
CICS region
JVM server
Javaapplication
CICSprogram
MQCICSprogram
DB2VSAM
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
Batchexecutor
Liberty
CICS region
JVM server
Clients Batchdispatcher
Messagingengineserver
Persistentdatabase
Jobrepository
Can be run with online transactions
Flexible scheduling
Parallel processing
Automatic restart after failures
Optimized Java execution
Java batch
SummaryCourse review
Course review
Invoke CICS programs from Liberty
Used JCICS to access VSAM files TSQs Unit of work support
Error handling