Essentials for Java on z Systems - IBM · programming model Reduced maintenance costs Stepwise...
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 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 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 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 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
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]