architecting java solutions for cics · course introduction reasons for hosting java in cics...

56
Architecting Java solutions for CICS

Upload: others

Post on 21-Jul-2020

37 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

Architecting Java solutions for CICS

Page 2: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

Architecting Java solutions for CICSCourse introduction

Page 3: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

Course introduction

Reasons for hosting Java in CICS

Requirements: Knowledge of transaction processing Experience of Java development

Page 4: Architecting Java solutions for CICS · 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.

Page 5: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

Thank you for watching

Page 6: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

Overview of Java in CICSMixed language applications in CICS

Page 7: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

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?

Page 8: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

What is CICS?

Transactional integrity

High security

Workload management

Wide range of standard connectors

1.

2.

3.

4.

Page 9: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

COBOL

PL/I

Assembler

C/C++

CICS – A mixed language application server

REXX

PHP

Java

Mixed language application server

Page 10: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

Mixed language applications in CICS

Inter-language calling between components COBOL, Java and other languages Common interfaces Independant development

1.

Page 11: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

Mixed language applications in CICS

Standard APIs EXEC CICS command API Language neutral syntax Translated at compile time Language specific implementation for Java

2.

Page 12: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

Mixed language applications in CICS

Container management Transactions and security CICS task provides UOW and security context Spans across multiple language components

3.

Page 13: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

Multiple language components

Channels and containers

CICS task

Ccomponent

COMMAREAstorage

COBOLcomponent

Javacomponent

Security & transaction context

Page 14: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

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

Page 15: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

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

Page 16: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

EXEC CICS API and translator

EXEC CICS LINK PROGRAM ( )

Language specific statements

Translator

Compiler

Page 17: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

CICS transactions

CICS task

SecurityContext

Unit of work

Program

Transaction Definition

Program

Initial Program

Page 18: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

Overview of Java in CICSJava support in CICS

Page 19: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

Popular language

Readily available skills

Rich set of tools

Lower operating costs

Why use Java?

Page 20: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

Java components

JVM

Java compiler

Java source code

Bytecode

Class loaders

Interpreter

Garbage collector JIT compiler

Java class libraries

Threads & synchronization

Page 21: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

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

Page 22: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

Moving eligible work to zIIPSystem z

Java

Java

Java

GeneralCP

zIIP

Java

Java

Java

Page 23: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

Java support in CICS

CICS

JVM server

CSD

zFS directory

JVM profile

System Initialization Table (SIT)

JVMPROFILEDIR=

Javaapplications

JVMSERVER

Page 24: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

OSGi JVM server

Liberty JVM server

Classpath JVM server

Types of JVM server

Page 25: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

Axis2 web services engine

JSON web services

JSON parsers

SAML

Dynamic scripting (PHP)

Embedded CICS functions

Page 26: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

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

Page 27: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

OSGi

JVM

OSGi framework OSGi registry

OSGi bundle

HelloWorld

ClassA

ClassB

ClassX

com.package.aaa com.package.zzz

ClassY

ClassZ

Page 28: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

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 ( )

Page 29: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

Liberty JVM server

CICS

HTTP

EXEC CICS LINK

JDBC

JMSJVM server

COBOLprogram

MQ

JCICS

VSAMfile

Database

TD & TSqueues

Java EE web application

Page 30: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

Link to Liberty

CICS

JVM server

Liberty server

EXEC CICS LINKPROGRAM ( )

Web app

POJOPROGRAMMYPROG1

Page 31: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

Standard mode Requests do not run on CICS enabled threads by default Provides high zIIP offload

Integrated and standard mode Liberty

Page 32: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

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

Page 33: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

Java EE application packaging

WAR file

EAR file

EBA file

CICS bundle

Web app

Web app

EJB

Web app

OSGi bundle

Page 34: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

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

Page 35: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

Overview of Java in CICSJava application development for CICS

Page 36: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

Java Standard Edition

Java Enterprise Edition

JCICS

JDBC & JMS

z/OS extension libraries

Java APIs supported in CICS

Page 37: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

Java Standard Edition

Base libraries

Integration libraries

User Interface Toolkits

lang and util Networking Security XML JNI

JDBC JNDI RMI

AWT Swing Print Service

Page 38: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

JCICS

JVM

CICS region

Java application

Java class libraries JCICS API

Java NativeInterface

TransientData

TemporaryStorage VSAM

Page 39: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

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

Page 40: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

Java Enterprise Edition – Java EE 7

Java EE 6 & Java EE 7

JSR specifications

Java EE web profile

Java Enterprise Edition

Page 41: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

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

Page 42: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

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

Page 43: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

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

Page 44: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

Overview of Java in CICSUse cases for Java applications in CICS

Page 45: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

Use cases for Java applications in CICS

Java web applications

Java web services

Java components in CICS applications

Java batch

1.

2.

3.

4.

Page 46: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

Lower costs

Fast response times

High developer productivity

z/OS platform qualities of service

Benefits for all Java applications in CICS

Page 47: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

Java web applications

Liberty

CICS region

JVM server

Web application

CICSprogram

MQWeb browser

DB2VSAM

Page 48: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

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

Page 49: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

Java web services

Liberty

CICS region

JVM server

Web application

CICSprogram

MQ

SOAP

JSON

DB2VSAM

Page 50: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

Industry standard formats

Customizable processing

Data mapping tools

Java web services

Page 51: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

New Java components

CICS region

JVM server

Javaapplication

CICSprogram

MQCICSprogram

DB2VSAM

Page 52: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

Modernize CICS applications

Java development

Reuse Java components

CICS mixed language environment

Java components

Page 53: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

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

Page 54: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

Can be run with online transactions

Flexible scheduling

Parallel processing

Automatic restart after failures

Optimized Java execution

Java batch

Page 55: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

SummaryCourse review

Page 56: Architecting Java solutions for CICS · Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience of Java development

Course review

Invoke CICS programs from Liberty

Used JCICS to access VSAM files TSQs Unit of work support

Error handling