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

Post on 21-Jul-2020

29 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related