Essentials for Java on z Systems - IBM · programming model Reduced maintenance costs Stepwise...

58
Tobias Leicher | CICS Specialist and zChampion for Modernization | [email protected] Essentials for Java on z Systems The why, the how and the what of Liberty in CICS on zOS

Transcript of Essentials for Java on z Systems - IBM · programming model Reduced maintenance costs Stepwise...

Tobias Leicher | CICS Specialist and zChampion for Modernization | [email protected]

Essentials for Java on z SystemsThe why, the how and the what of Liberty in CICS on zOS

© 2016 IBM Corporation2

Liberty Essentials

08/05/16

© 2016 IBM Corporation

What will we discuss in this Session

§ Why to run Java on zOS at all if you already have Assembler, COBOL and PL/I?

§ How to run Java on zOS?

§ What is this Liberty Server?

§ What are typical usage scenarios?

§ Are we missing something?

08/05/16

Liberty Essentials

3

© 2016 IBM Corporation08/05/16

Liberty Essentials

4

© 2016 IBM Corporation

When will/have this happened?!

5

Liberty Essentials

08/05/16

© 2016 IBM Corporation

This is not going to come true, but look at what the mainframe did become!

6

Liberty Essentials

08/05/16

© 2016 IBM Corporation7

Liberty Essentials

08/05/16

Standard interfaces

Possible Target Szenario

Cobol-Modules

New functions realised with Java

DB2

Java-Modules

System z

Efficient programming

model

Reduced maintenance

costs

Stepwise integration

Java Modul

Big Picture: Where to go with the Mainframe Development

Today (sample scenario)

System z

Cobol-Modules

New functions

How to implement?

DB2

How to use services of other

systems?

Hard to maintance/change?

App ServerExternal Systems

Java Modul

Modernisation

Target Architecture?

© 2016 IBM Corporation

Java is just another Language which is

running on the Mainframe

08/05/16

Liberty Essentials

8

© 2016 IBM Corporation9

Liberty Essentials

08/05/16

IBM z13 – Taking Java Performance to the Next Level

9

Continued aggressive investment in Java on ZSignificant new hardware features tailored and

co-designed with Java

Simultaneous Multi-Threading (SMT)– 2x hardware threads/core for improved throughput– Available on zIIPs and IFLs

Single Instruction Multiple Data (SIMD)– Vector processing unit– Accelerates loops and string operations

Cryptographic Function (CPACF)– Improved performance of crypto co-processors

New Instructions– Packed Decimal óDecimal Floating Point – Load Immediate on Condition– Load Logical and Zero Rightmost Byte

Upto 2Ximprovementinthroughputpercoreforsecurityenabledapplications

Upto 50%improvementinthroughputforgenericapplications

New 5.0 GHz 8-Core Processor Chip

480MB L4 cache : Optimized for data serving

© 2016 IBM Corporation10

Liberty Essentials

08/05/16

Java Road Map

10

Language UpdatesJava 5.0 • New Language features:

• Autoboxing• Enumerated types• Generics• Metadata

Java 6.0• Performance Improvements• Client WebServices Support

• Support for dynamic languages• Improve ease of use for SWING• New IO APIs (NIO2)• Java persistence API• JMX 2.x and WS connection for JMX

agents• Language Changes

Java 7.0

IBM Java RuntimesIBM Java 5.0 (J9 R23) • Improved performance

• Generational Garbage Collector• Shared classes support• New J9 Virtual Machine• New Testarossa JIT technology

• First Failure Data Capture• Full Speed Debug• Hot Code Replace• Common runtime technology

• ME, SE, EE

IBM Java 6.0 (J9 R24)• Improvements in

• Performance• Serviceability tooling• Class Sharing

• XML parser improvements• z10™ Exploitation

• DFP exploitation for BigDecimal• Large Pages• New ISA features

5.0

6.0

2005 2009

SE 5

.018

pla

tform

s

SE 6

.020

pla

tform

s

EE 5

WAS6.1

WAS7.0

2006 2008

WAS6.0

200704

EE 6.x

2010 2011

IBM Java 6.0.1/Java 7 (J9 R26)

• Improvements in• Performance• GC Technology

• z196™ Exploitation• OOO Pipeline• 70+ New Instructions

• JZOS/Security Enhancements

WAS8.5

2012 2013 20147.0

• Language improvements • Closures for simplified fork/join

Java 8.0

SE60

1/ 7

.x>=

20

plat

form

sIBM Java 7 (J9 R26 SR3)• Improvements in

• Performance• zEC12™ Exploitation

• Transactional Execution• Flash 1Meg pageable LPs• 2G large pages• Hints/traps

IBM Java 7.1 (J9 R27)• Improvements in

• Performance• RAS• Monitoring

• zEC12™ Exploitation• zEDC for zip acceleration• SMC-R integration• Transactional Execution• Runtime instrumentation• Hints/traps

• Data Access Accelerator

SE60

1/ 7

.x>=

20

plat

form

s

2015

IBM Java 8 (J9 R28)• Improvements in

• Performance• RAS• Monitoring

• z13™ Exploitation• SIMD• SMT• Crypto acceleration

SE8

>= 2

0 pl

atfo

rms

© 2016 IBM Corporation11

Liberty Essentials

A Glimps into the past

HPJ compiledbytecode

Ressettable JVMCICS EJB &

CORBA

JVM server hosting Java 6 & AOT

CICS TS V1.31998

CICS TS V2.12001

CICS TS V2.32003

CICS TS V4.22011

CICS TS V4.12009

CICS TS V3.12005

CICS TS V5.12012

CICS TS V2.22002

CICS TS V3.2 2007

Java 1.4.2Channels/Containers

Reusable mode JVM PoolJava5 & shared class cache

Java 1.4Continuous JVM and class cache

Java 6.0.164-bit JVM serverExplorer SDK for JavaOSGi bundles

Liberty Web containerJava 7 JDBC Performance EJB and JVM Pool removal

CICS TS V5.22014

08/05/16

new era

© 2016 IBM Corporation12

Liberty Essentials

What's Liberty?

08/05/16

© 2016 IBM Corporation13

Liberty Essentials

08/05/16

© 2016 IBM Corporation14

Liberty Essentials

08/05/16

© 2016 IBM Corporation15

Liberty Essentials

08/05/16

© 2016 IBM Corporation16

Liberty Essentials

08/05/16

© 2016 IBM Corporation17

Liberty Essentials

08/05/16

© 2016 IBM Corporation18

A LIGHTWEIGHT

COMPOSABLE

FAST

…'Profile' of WebSphere Application Server

08/05/16

Liberty Essentials

© 2016 IBM Corporation19

Liberty Essentials

If this is tWAS...

...this is Liberty (WAS) ...so is this ...or even this!

08/05/16

© 2016 IBM Corporation20

Liberty Essentials

What do we want to achieve with Java on System z and in CICS

1. Provide new APIs for Java applications deployed into CICS– Enable porting of JEE applications to CICS from other application servers

2. Update CICS to provide same features and functions as WebSphere Liberty Profile

– Priority to API based functions– Support QoS features and integrate with CICS as required– Keep up to date with Liberty service stream

3. Continue to provide a robust JVM hosting environment for other components and services

– ODM, SAML– PHP, Modern Batch, Mobile …

08/05/16

© 2016 IBM Corporation

What’s in the CICS TS Liberty JVM server?

• Subset of the WAS for z/OS 2016.0.0.4 Liberty profile • Independently enabled extensions that exploit CICS facilities• Liberty behaves exactly the same on all platforms out of the box• Only configure the functions you use

• Web/servlet/RESTful technology

• JEE integration with CICS security • Java transactions and CICS UOW integration• Local and remote JDBC • Java web services (JAXWS)• z/OS Connect integration (APAR PI25503)

• JEE6/7 Web profile• JMS – (WAS embedded messaging only)• MongoDB• JCA resource adapters, (and local ECI JCA support)• LDAP security registry (and SAF integration)• HTTP session persistence (also in V5.2)• JMX monitoring (also in V5.2)• Dynamic cache service• JEE7 Full Profile in Standard mode

CICS TS V5.1

CICS TS V5.2

CICS TS V5.3

08/05/16

Liberty Essentials

© 2016 IBM Corporation22

Liberty Essentials

08/05/16

Liberty in CICS

Explorer SDK

CICS

Liberty

JVM server

Web Client

HttpRequest

HttpResponseURIMAP

Web App

Export Wizard

CICS Bundle

EBA

Deployinstall

server.xml

JVMProfile

Tran ID

security

Web.xml<security_constraint>

OSGibundle

COBOL

Web App

EBA

VSAM

DB2

© 2016 IBM Corporation

Let’s cross our fingers for a working Live Demo of how to start a Liberty in less then 5 Minutes

08/05/16

Liberty Essentials

23

© 2016 IBM Corporation24

Liberty Essentials

Benefits for CICS

§ Provides “off the shelf” Web-server capabilities (JSPs and Servlets)

§ Potential to re-use even more WebSphere technology in CICS.

§ JSP and Web servlets have direct, local, access to CICS data and resources.

§ Servlets can take advantage of existing CICS OSGi applications to provide a Dynamic Web front end.

08/05/16

© 2016 IBM Corporation25

Liberty Essentials

Liberty is running! (check the logs).

Server defaultServer created.

Launching defaultServer (wlp-1.0.0.20120428-1251/websphere-kernel_1.0.0) on IBM J9 VM, version pmz6470sr1-20120302_01 (SR1) (en_US)

[AUDIT ] CWWKE0001I: The server defaultServer has been launched.

[AUDIT ] CWWKG0028A: Processing included configuration resource: file:/u/ivanh/IYK3ZIH1/LIBERTY1/wlp/usr/servers/defaultServer/installedApps.xml

[AUDIT ] CWWKG0028A: Processing included configuration resource: file:/u/ivanh/IYK3ZIH1/LIBERTY1/wlp/usr/servers/defaultServer/cicsSecurity.xml

[AUDIT ] CWWKZ0058I: Monitoring dropins for applications.

[AUDIT ] CWWKF0011I: The server defaultServer is ready to run a smarter planet.

08/05/16

© 2016 IBM Corporation26

Liberty Essentials

08/05/16

WAS Liberty Profile

CICSProgram

ECIResourceAdapter

Lookup CFCreate Connection Create InteractionCreate record Interaction.execute(record)

CO

MM

AR

EACTG

JNDI

Web app

<featureManager>...<feature>jca-1.6</feature>

</featureManager>

<resourceAdapter autoStart="true" id="eciResourceAdapterlocation="/usr/lpp/cicstg/deployable/cicseci.rar" />

<connectionFactory id="eciTest" jndiName="eis/ECI"><properties.eciResourceAdapter />

</connectionFactory>

Typically - JCA ECI in WebSphere Liberty Profile

© 2016 IBM Corporation27

Liberty Essentials

08/05/16

COBOLProgram

Local ECIResourceAdapter

Lookup CFCreate Connection Create InteractionCreate recordInteraction.execute(record)

CO

MM

AR

EA

CICS region

JNDI

Web app

Liberty JVM server

JCA local ECI feature

server.xml

<featureManager>...<feature>jca-1.6</feature><feature>cicsts:jcaLocalEci-1.0</feature>

</featureManager>

<connectionFactory id=“eciLocal" jndiName="eis/ECI"><properties.com.ibm.cics.wlp.jca.local.eci />

</connectionFactory>

'Ported' - JCA ECI in CICS Liberty JVM server

Channel / ContainerAPI is possible

as well!

© 2016 IBM Corporation28

Liberty Essentials

08/05/16

WAS Liberty Profile local Developer

CICSProgram

Lookup CFCreate Connection Create InteractionCreate record Interaction.execute(record)

CO

MM

AR

EARemote

DevelopmentFeature

JNDI

Web app

<featureManager>...<feature>usr:jcaRemoteEci-1.0</feature>

</featureManager>

<connectionFactory id="defaultCICSConnectionFactory" jndiName="eis/ECI"> <properties.com.ibm.cics.wlp.jca.remote.eci

serverName="tcp://hostname:port"/></connectionFactory>

Test your Applications locally with the remote Development Feature

© 2016 IBM Corporation29

Liberty Essentials

08/05/16

zOS

CICS

Link to Liberty

zFS BundleJEEA_1.0.0

META-INF/cics.xmltest.osgibundle

TestJEE_1.0.0.ear

JVMServer - WLP

BUNDEFADeveloper

Eclipse/Build Engine

BundleJEEA_1.0.0

TestJEE_1.0.0

[COBOL/PLI]

EC LINK(ProgA)

How to entera JEE App?

© 2016 IBM Corporation

Link into Liberty

08/05/16

§ Invoking a Java EE application from a CICS program

§ Enable any CICS program to EXEC CICS LINK to a Java EE application in CICS Libertyo Liberty programs also supported as initial program for a transactiono START and START CHANNEL can be used

§ Use cases:o Reuse existing Java code from a Liberty applicationo Write new Java business logico Progressively replace COBOL with new Java implementation

§ Current scope and limitationso Support link to POJO in a WAR or EAR

§ Emphasis on targeting business logic not presentation logic

§ Liberty application invoked on the same CICS task and within same UOW

§ No support for invoking EJBs or OSGi applications

§ Liberty application invoked with DPL subset and SYNCONRETURN ignored

§ Using JTA with CICS integration turned on is not supported

Liberty Essentials

30

© 2016 IBM Corporation

How will a Developer experience this

08/05/16

§ Add @CICSProgram annotation to a Java method

§ Recommend this method is in a CICS-specific wrapper class

§ Requires CICS-supplied annotation processor to buildo Provided in CICS Explorer and CICS build toolkito Standalone annotation processor available for other dev and build environments

§ Annotation processor validates contents and location of annotationo Annotation processing must be turned on per-project

§ Generates code required by CICS to invoke the applicationpublic class CustomerLinkTarget{

@CICSProgram("CUSTGET")public void getCustomer(){

Channel currentChannel = Task.getTask().getCurrentChannel();Container dataContainer = currentChannel.getContainer("DATA");// do work hereContainer resultContainer =

currentChannel.createContainer("RESULT");byte[] results = null;resultContainer.put(results));

}}

Liberty Essentials

31

© 2016 IBM Corporation

This will also bring autoinstall for necessary Program Definitions

08/05/16

§ When an application is installed in Liberty, CICS looks for code generated from @CICSProgram annotations

§ Dynamically creates a PROGRAM for each annotated methodo If a PROGRAM already exists, no PROGRAM is created. If the existing PROGRAM

isn't suitable, a message will be issued

§ Dynamically created programs are deleted when the application is removed

§ Programs can be manually defined if desired, using the following syntax for the service name attribute: o wlp:className[#methodName]

§ Example:o wlp:com.ibm.cics.server.example.Example#linkMethod

§ Method name is optional and may be truncated to fit in maximum length of 255 characters

Liberty Essentials

32

© 2016 IBM Corporation

How to code the LINK in COBOL?

08/05/16

§ EXEC CICS LINK(program) – exactly as normal

§ Current channel passed to Java application

§ INPUTMSG and COMMAREA not supported

§ New RESP2 values: o PGMIDERR

• 26 - A LINK has been attempted to an application in a Liberty JVM server, but the request has failed and target application was not invoked.

• 27 - A LINK has been attempted to an application in a Liberty JVM server, but the request timed out and target application was not invoked.

o INVREQ • 53 - A LINK has been attempted to an application in a Liberty JVM server, but the

LINK listener process was not available. • 54 - The COMMAREA option is specified, but it is invalid when linking to an

application in a Liberty JVM server. • 55 - The INPUTMSG option is specified, but it is invalid when linking to an

application in a Liberty JVM server.

Liberty Essentials

33

© 2016 IBM Corporation

How to configure and what about Security here?

08/05/16

§ cicsts:link-1.0 feature required

§ Securityo Any access to CICS resources runs under the user ID of the CICS tasko When cicsts:security-1.0 feature is also configured, the userID of the CICS

task is propagated to the Java EE application o Recommend using SAF registry

Liberty Essentials

34

© 2016 IBM Corporation

Let’s cross our fingers for a quick Link into Liberty in 5 Minutes

08/05/16

Liberty Essentials

35

© 2016 IBM Corporation

JEE 7 Web profile (webprofile-7.0)

web-socket-1.1 (JSR 356)

el-3.0 (JSR 341)

jsp-2.3 (JSR 245)

JEE 7 full platform – javaee-7.0/javaeeclient-7.0 (JSR 342)

web-socket-1.0 (JSR 356)

jaxrs-2.0 (JSR 339)

jaxws-2.2(JSR 224)

jaxb-2.2(JSR 222)

jsonp-1.0 (JSR 353)

servlet-3.1 (JSR 340)

jsf-2.2 (JSR 344)

concurrent-1.0 (JSR 236)

cdi-1.2 (JSR 346)

beanValidation-1.1 (JSR 349)

ejb-3.2* (JSR 345)

ejblite-3.2 (JSR 236)

jca-1.7 (JSR 322)

jpa-2.1 (JSR 338)

jms-2.0 (JSR 343)

jta-1.2 (JSR 907)

javaMail-1.5 (JSR 919)

batch-1.0 (JSR 352)

Enterprise Technologies

jaspic-1.1 (JSR 196)

jacc-1.5 (JSR 115)

j2eeManagement-1.1 (JSR 77)

jdbc-4.1 (JSR 221)

JMX 2.0 (JSR 255)

JavaBeans Activation Framework -JAF 1.1 (JSR 925)

Management and Security

Streaming API for XML - StAX 1.0 (JSR 173)

Java EE Specs in Java SE

Dependency Injection 1.0 (JSR 330)

Interceptors 1.2 (JSR 318)

Common Annotations 1.2 (JSR 250)

JSTL 1.2 (JSR 52)

Debug support (JSR 45)

SOAP attachments SAAJ (JSR 67)

Web services metadata (JSR 181)

Web-services Interoperability (Basic Profile 1.2, 2.0)

JWSDL (JSR 110)

Enterprise Web services 1.4 (JSR 109)

Java API for XML Processing -JAXP 1.4 (JSR 206)

Web-services

Web-Applications

Liberty feature

Implicit capabilityKey:

* sub-features not shownSpec. increase

New JEE7 capability

jndi-1.0

WebSphere Liberty Profile 2016.0.0.4- JEE7

08/05/16

Liberty Essentials

36

© 2016 IBM Corporation

JEE 6 Web profile (webprofile-6.0)

jsp-2.2 (JSR 245)

JEE 6 platform – partial support (JSR 316)

jaxrs-1.1 (JSR 311)

jaxws-2.2(JSR 224)

jaxb-2.2(JSR 222)

servlet-3.0 (JSR 315)

jsf-2.0 (JSR 314)

cdi-1.0 (JSR 299)

beanValidation-1.0 (JSR 303)

ejblite-3.1 (JSR 318)

jca-1.6 (JSR 322)

jpa-2.0 (JSR 317)

jms-1.1 (JSR 914)

jta-1.1 (JSR 907)

Enterprise Technologies

jdbc-4.0 (JSR 221)

JMX 2.0 (JSR 255)

JavaBeans Activation Framework -JAF 1.1 (JSR 925)

Management and Security

Streaming API for XML -StAX 1.0 (JSR 173)

Java EE Specs in Java SE

Dependency Injection 1.0 (JSR 330)

Interceptors 1.1 (JSR 318)

Common Annotations 1.1 (JSR 250)

JSTL 1.2 (JSR 52)

Debug support (JSR 45)

SOAP attachments SAAJ (JSR 67)

Web services metadata (JSR 181)

Web-services Interoperability (Basic Profile 1.2, 2.0)

JWSDL (JSR 110)

Enterprise Web services 1.4 (JSR 109)

Java API for XML Processing -JAXP 1.4 (JSR 206)

Web-services

Web-Applications

Liberty feature

Implicit capabilityKey:

jndi-1.0

* restrictions

*

**

strike = not directly tested, but supported

CICS Liberty Profile v5.3 - JEE6 (at announcement)

08/05/16

Liberty Essentials

37

https://www.ibm.com/support/knowledgecenter/en/SSGMCP_5.3.0/com.ibm.cics.ts.java.doc/topics/liberty_features.html

© 2016 IBM Corporation38

Liberty Essentials

ConvergenceOffeatures,fixpacksandtiming

08/05/16

© 2016 IBM Corporation

Liberty Advanced Integration into CICS V5.2

§ Things that required more effort

39

Liberty Essentials

08/05/16

Liberty Integrated and

optimized for CICS Web workloads

JEE RolesRACF keyringsLTPA single signonForm based securitySSL client authenticationTrust Association Interceptors

Security

JTA

JDBC

JNDI namingDB2 DataSource

Java globaltransactions

IBM Java SDK V7.1 or V8

© 2016 IBM Corporation

Standard mode Liberty

08/05/16

Liberty Essentials

40

https://developer.ibm.com/cics/2016/07/12/java-ee-7-in-cics/

© 2016 IBM Corporation

Standard mode Liberty

§ Standard-mode provides a way for Java EE 7 full profile applications to be run in CICS, with all the benefits of running on z/OS

§ Threads used in Liberty are not integrated with CICS o No direct access to JCICSo No native CICS access to DB2 or MQ o Improved zIIP eligibility

§ JVM server lifecycle and CICS bundles are still supported

§ In essence a fully functional Liberty environment managed by CICS

08/05/16

Liberty Essentials

41

© 2016 IBM Corporation

Comparison

Capability integrated-mode standard-mode

Supported feature set Java EE 7 Web ProfileJava EE 6 Web Profile

Java EE 7 Full PlatformJava EE 7 Web ProfileJava EE 6 Web Profile

Java CICS API (JCICS) Yes Yes under runAsCICS() API onlyNative driver for DB2 Yes Yes under runAsCICS() API onlyEase of app migration to CICS Liberty Moderate EasyAsynchronous operations and nested transactions Some restrictions Yes

CICS bundle deployment of app? Yes YesCICS Liberty autoconfigure available? Yes YesJVM server creates and controls the Liberty server? Yes Yes

zIIP eligibility Up to 90% Up to 99%CP Integration overhead Minimal overheadCICS thread-pool optimisations Yes No

42

Liberty Essentials

08/05/16

© 2016 IBM Corporation

Standard mode Liberty II

§ Configured by the JVM profile variable: o CICS_WLP_MODE=STANDARD

§ Alternatively, the cicsts:standard-1.0 feature can be installed in place of the cicsts:core-1.0 feature.o These features are mutually exclusive:

CWWKF0033E: The singleton features cicsts:core-1.0 and cicsts:com.ibm.cics.wlp.core-0.0 cannot be loaded at the same time. The configured features cicsts:core-1.0 and cicsts:standard-1.0 include one or more features that cause the conflict. Your configuration is not supported; update server.xmlto remove incompatible features.

§ JCICS can still be access in standard-mode Liberty, through the CICS executor serviceo CICSExecutorService.runAsCICS

§ Limited context propagation from Libertyo SAF identities will be propagated onto the CICS task, if cicsts:security-1.0 is

enabledo Classloaders and transaction contexts are not propagated to the CICS thread08/05/16

Liberty Essentials

43

© 2016 IBM Corporation

Enhancements to RunAsCICS API

08/05/16

Liberty Essentials

44

© 2016 IBM Corporation

How to use a future object

45

Liberty Essentials

08/05/16

public static void main(String[] args){

// Submit a new Callable to the CICSExecutorService, and receive a Future objectFuture<String> future =

CICSExecutorService.runAsCICS(new TSQCallable("TEST", "HelloWorld"));// Wait for the test to complete (optional)while(!future.isDone()) {

try {Thread.sleep(500);

}catch (InterruptedException e){

e.printStackTrace();}

}// Print the return data from the Callabletry {System.out.println("ExecutorTest: '" + future.get() + "' from the Callable");}catch (InterruptedException | ExecutionException e) {

e.printStackTrace();}

}}

© 2016 IBM Corporation

Enhancements to RunAsCICS API

§ The RunAsCICS API has been enhanced to handle Callable types as well as Runnable types.

§ Callable is a modern interface for running multithreaded work which can return data via, and be synchronized by, a Future object.

§ Available for all modes of Liberty JVM servers and to OSGi JVM servers.

§ CICSTransactionCallable interface allows the transaction ID to be modified for Callable types

08/05/16

Liberty Essentials

46

© 2016 IBM Corporation

DB2 Type 2 Connection- Performant DB2 access beyond JDBC

§ The CICS TS V5.3 release added support for features which interact with data sources without using JDBC directly:o JPAo Session database

§ These features were restricted to type 4 drivers

§ Type 2 connections to DB2 are now supported for the jpa-2.0 and sessionDatabase-1.0 features in integrated-mode

08/05/16

CICS and Java - A successful Story continues

47

© 2016 IBM Corporation

00..00

FF..FF

zOS Kernel

CICS

...DB2 IMS Batch ... TCP

IP

DB2 Type 2 Connection- Performant DB2 access beyond JDBC

08/05/16

00..00

FF..FF

zOS Kernel

CICS

...DB2 IMS Batch ... TCP

IP

Liberty Essentials

48

© 2016 IBM Corporation

IBM MQ Support- Easily connect to IBM MQ through JMS and CICS

Liberty

08/05/16

CICS and Java - A successful Story continues

49

© 2016 IBM Corporation

IBM MQ Support- Easily connect to IBM MQ through JMS and CICS

Liberty§ MQ base classes can be used in Liberty JVM servers

§ JMS 2 can be used in both modes of Liberty JVM serverso Client mode is the only supported mode of transport for CICS integrated-mode Libertyo Client and bindings mode transport are both supported in CICS standard-mode Liberty

• Bindings mode must use a different queue manager to those specified in installed CICS MQCONNs.

08/05/16

CICS and Java - A successful Story continues

50

© 2016 IBM Corporation

Building a JEE application with Liberty

51

Connectors Application Frameworks

Data Access

Web

Restful

WebServices

BlueprintEJB

JNDI

JDBC

Mongodb

CDI

JMX

QoSSSL Session persistence OAuthHTTP

Plugin

JMS

JPA JCA

ManagedBeans

MDB

LDAP

08/05/16

Liberty Essentials

© 2016 IBM Corporation52

CICS region

LibertyVSAM

JVM Server

Liberty

Web App

COBOLProgram

Web Client

1. Porting web application to z/OSJEE6 Web profile and JCA local ECI - ‘lift and shift’ porting from other JEE servers

2. New integration logic for existing CICS servicesRestful services or SOAP Web services interfacing existing CICS components

3. Java business logic in CICSAccess to DB2 data – JDBC, EJBs, JPA or VSAM/JCICS

JCICS

DB2

JCICS

JDBC

RESTfulClient

Web servicesClient

HTTP

Why use Liberty in CICS?

08/05/16

Liberty Essentials

© 2016 IBM Corporation

Liberty in CICS scenarios - 1 Porting Web applications to z/OS

Usage of JCA enables porting of applications that use CICS Transaction Gateway JCA ECI resource adapter

VSAM

COBOLProgram

DB2Liberty JVM server

WebApplication

CICS region

HTTP LINKlocal ECI JCA

ResourceAdapter

EJB

08/05/16

Liberty Essentials

53

© 2016 IBM Corporation

Liberty in CICS scenarios - 2 Integration with existing CICS services

54

VSAM

DB2Liberty JVM server

JAX-RSApplication

CICS region

HTTP JCICS Link

RESTful orWeb

Services

3rd PartyApplication

COBOLBusiness

Logic Program

RESTful (JAXRS) or Web service (JAXWS) applications can be easily built to provide new service interfaces to existing business process applications

08/05/16

Liberty Essentials

© 2016 IBM Corporation

Liberty in CICS scenarios - 3 Java business logic on z/OS

55

DB2Liberty JVM server

WebApplication

CICS region

HTTP JDBC

Web client

COBOLProgram

DB2

VSAMJCICS

JDBC

T2 databasedriver

T4 databasedriver

Multiplatform

JCICS

JPA

EJB

JTA

JEE offers ability to use wide variety of frameworks including EJB, JTA, JDBC, JPA, ManagedBeans to create new business applications which integrate with existing CICS applications or relational databases.

08/05/16

Liberty Essentials

© 2016 IBM Corporation56

Liberty Essentials

08/05/16

The Goal

Possible Target SzenarioToday (sample scenario)

System z

Cobol-Modules

New functions

How to implement?

DB2

How to use services of other

systems?

Cobol-Modules

New functions realised with Java

DB2

Java-Modules

Hard to maintance/change?

System z

Efficient programming

model

Reduced maintenance

costs

Standard interfaces

External Systems

Stepwise integration

Modernisation

Java Modul

Java Modul

© 2016 IBM Corporation

Programming languages – Trends and Future

57

Liberty Essentials

08/05/16

If (time=available) {//please give us your insights into which new languages excite youhttp://ibm.biz/cics-language-survey}

© 2016 IBM Corporation58

Liberty Essentials

08/05/16

Questions?

Many Thanks for your Attention!

Tobias LeicherIT Specialist for CICS

& zChampion for Modernization

IBM Allee 1D-71139 EhningenMobil: 0151 – 15 16 24 89Mail: [email protected]