SlideShare uma empresa Scribd logo
1 de 44
© 2015 IBM Corporation
© IBM Corporation 2011
Why are you so different?
Java for COBOL Developers
Tobias Leicher |
CICS Client Technical Professional |
tobias.leicher@de.ibm.com
© 2014 IBM Corporation
IBM
© 2014 IBM Corporation
IBM
Goal of this Session
 After running around and shouting „Java is just another language running on the
mainframe“, it is now time to show you some lies about my fact.
 Understand differences and reasons for them
 See the advantages of different languages and also understand that there is no
single language that rules the world
 Get a feeling why problems in Java are different and a Dump in classical sense
often leads you nowhere
 Give Java another chance, that guy is now grown up and in his twenties, probably
the time in life where you have enough experience to solve the important
problems in life
© 2014 IBM Corporation
IBM
Before we compare, let us rethink what we know already
 Today we will talk about COBOL, PLI or even Assembler (LE) and we will
compare it to Java, as I am a CICS Person I will talk more about CICS than IMS
or Batch
 So how does a COBOL Program executes in zOS (only cover LE here):
» The first thing that happens is a load of the program:
○ In CICS the LOADER will issue a BLDL or LLACOPY MACRO against MVS and the Program is
loaded into the storage
» If you then Call the Program a new LE Enclave is----------------
○ Wait, what is this LE guy used for again?!
© 2014 IBM Corporation
IBM
LE – The standardized Runtime Environment in zOS
 Before LE all Languages brought their own Runtime Libraries
 A Runtime library brings all the code that is provided by a language and not part
of the user Program (Storage management, Math functions...)
 A Runtime library has the advantage, that the code is always tied to the
underlying hardware, without letting the compiler or the application do too much
adaptions
 Why now LE?
» When all the languages brought their own runtime, they expected to be alone in the world
» Customers had problems to run different languages side by side
 Back to our Topic!
© 2014 IBM Corporation
IBM
Before we compare, let us rethink what we know already
 Today we will talk about COBOL, PLI or even Assembler (LE) and we will
compare it to Java, as I am a CICS Person I will talk more about CICS than IMS
or Batch
 So how does a COBOL Program execute in zOS (only cover LE here):
» The first thing that happens is a load of the program:
○ In CICS the LOADER will issue a BLDL or LLACOPY MACRO against MVS and the Program is
loaded into the storage
» If you then Call the Program a new LE Enclave is initialized
○ initial storage is obtained
○ condition handlers initialized
○ active member language specific run-time is initialized
» Control is given to the application code
» Once the application ends and 'returns' to LE
○ The LE environment is terminated
○ System resources obtained during initialization and throughout the execution of the application are
cleaned up
© 2014 IBM Corporation
IBM
How does that look like?
= CICS Region
= CICS initial transaction
= Main Transaction
Program
or EC Linked
Program
© 2014 IBM Corporation
IBM
So what does the storage in LE look like?
© 2014 IBM Corporation
IBM
CICS AS
How is a program dispatched then in CICS (abstracted)
zOS
Dispatcher
WEB
SWUQ
WEB WEB WEB
Global
SRB
TCB
ASCB
CICS
DFHSIP
TCB
OTE
TCB
OTE
LE Enclave LE Enclave
WEB
TCB
QR
CICS
Dispatcher
LE Enclave LE Enclave
RTRQ
© 2014 IBM Corporation
IBM
So in CICS a Task has one or more LE Enclaves that are totally
seperated from each other Task in the address space
 What happened with this great concept?!
© 2014 IBM Corporation
IBM
Once upon a time...
© 2014 IBM Corporation
IBM
Everyone knew where to put their application, but suddenly things were
different...
© 2014 IBM Corporation
IBM
Soon the workload starts spreading...
© 2014 IBM Corporation
IBM
Everyone was confused...
© 2014 IBM Corporation
IBM
And the new and shiny PC world was different to the Mainframe!
 Less Users
 Bad code has far more resources on its own
 Coding Style Changed a lot
 No LE, not even a unified Operating System (And Yes I know we have VM, VSE,
TPF and Linux on the mainframe as well)
 Backward Compatibility was not given anymore
 ...
© 2014 IBM Corporation
IBM
History of programming languages
1954 1959 1964 1971
SmallTalk
PL/I
COBOL
Fortran
1983
C
C++
LISP
Basic
1989
Perl
1995
OAK Java
JavaScript
© 2014 IBM Corporation17 March 6, 2015
IBM
What is Java and what makes it different from what we have today
Java is What makes Java different
Java differes in some parts quite a lot from traditional
languages like assembler, PL/I or COBOL
 Java is NOT compiled to executable code, it is
compiled to bytecode, that runs in a virtual machine
 The virtual machine uses the just-in-time compiler (JIT)
to execute the code
 Java is not based on programs, it is based on classes
 Java uses a garbage collector, that removes unused
objects from the storage
 Java development is often based on exiting
programming patterns (Design Patterns)
 Most of the build in funtionality of Java is based of
class libraries, that are build in the Java Runtime (JRE)
 Java contains a library for user interface development
 Java has the ability to reflect about the runtime with
several methods
 Java has a type safe variable declaration
 Uses JNI for native system calls and JDBC for
database calls
Java is
 an object oriented,
 platform independent,
 broadly supported and prevalent
 an state of the art language
 [and an Island in Indonesia]
 Something YOU should care about
Java is not
 something new and not reliable
 an error-prone language
 the only solution for good code
 independent on it's own
 something that the distributed world should care of
 easy and/or out of the box
 a composable workbox full of libraries
© 2014 IBM Corporation18 March 6, 2015
IBM
Java on Mainframes - what is different and why here?
 IBM uses its own implementation of a
JVM on mainframes that uses the
underlying platform architecture
 The Java workload can be offloaded
to a zAAP processor
 The Java logic can be a bridge
between the mainframe and the
distributed world
 Java is a common language on many
platforms that can help to find a dialog
between the departments
 Java is a language that is well known
by many new professionals and so a
good common ground, when they
start to develop for mainframe
IBM JDK for z/OS
Standard JSE
(JDK specification)
zOS
Extensions
Just In Time Compiler (JIT)
Exploitation of the Hardware Architecture
z/OS Operating System
and System z Hardware
© 2014 IBM Corporation19 March 6, 2015
IBM
Java packaging and class hierarchies
 Java modularity:
–Classes contain data and logic
–Packages contain these classes and
organize them
• This is just a virtual form of organization
–Jar files contain the classes and are the
base for enterprise applications
 Java visibility settings:
–Private, protected, package private,
public
 At the runtime, there are just a lot of
classes on a classpath
jar file
java packages
class files
There are some features missing: jar visibility, versioning, dependencies
© 2014 IBM Corporation20 March 6, 2015
IBM
The Classpath – What was called a load lib concatenation before
Java VM
log4j
barcode4j
axis
batik
commons
derby
fop
ezmorph
freemarker
httpunit
jakarta
jcl
json
jdbm
jdom
jenks
jpos18
jython
looks
lucene
mail
mx4j
naming
jetty
poi
resolver
rome
serializer
servlets
tomcat
velocity
ws-commons
xalan
wsdl4j
xerces
xmlgraphics
xmlrpc
xmlapis
..
geronimo
bsh
bsf
guiapp
hhfacility
manufact.
marketing
minerva
accounting
assetmaint
base
bi
catalina
common
oagis
order
ebay
content
datafile
ecommerce
entity
googlebase
ofbiz
widget
minilang
party
pos.
product
workeffort
workflow
…
sunjce_prov.
plugin
jsse
jce
rt
dnsns
..
…
Class
Not
Found
Exception
BeginBegin
HereHere
© 2014 IBM Corporation
IBM
Specialty CP operation
 Eligible work moves to specialty CP under control of z/OS
 Provide more capacity for eligible workloads without a change in MSU
 Provides more capacity for non-eligible workloads
 Reduces software stack charges for non-eligible products on CEC
Eligible
work
Eligible
work
Eligible
work
Eligible
work
Eligible
work
Eligible
work
GCP zIIPGCP
© 2014 IBM Corporation
IBM
IBM System z Application Assist Processor (zAAP)
Dedicated to execution of Java workloads under z/OS®
– e.g. Websphere®
, CICS, IMS, DB2®
 Available on all IBM zEnterprise
systems, System z9 and z10 and
zSeries z990 and z890
 Used by any workload with Java
cycles
 Executes java code without any
changes to the applications
 Also used for XML parsing
Standard CP zAAP
WebSphere
Execute JAVA Code
z/OS Dispatcher
Suspend JVM task on z/OS
standard logical processor
WebSphere
Java Application Code
Executing on a zAAP
logical processorz/OS Dispatcher
JVM
Switch to zAAP
JVM
JVMSwitch to
z/OS Dispatcher
JVM
Dispatch JVM task on z/OS
standard logical processor
JVM
z/OS Dispatcher
logical processor
z/OS Dispatcher
Dispatch JVM task on z/OS
zAAP logical processor
JVM
Switch to standard processor
z/OS Dispatcher
Suspend JVM task on z/OS
standard logical processor
© 2014 IBM Corporation
IBM
So now let us see what happens in Java
 Everything in Java is executed within a virtual machine
 Run Time Data Management is done by the virtual machine
 The JVM will only stop if the last non-deamon thread finishes
 Java is never compiled upfront, it is interpreted and compiled during runtime
» Do you remember HPJ?
 Java is platform independent, so everything in Java is abstracted (including
Datatypes
© 2014 IBM Corporation
IBM
Lets dive a bit deeper
Source: http://www.artima.com/insidejvm/ed2/jvmP.html
© 2014 IBM Corporation
IBM
How does a Java LE-Enclave look like
C main procedure (JVM)
LE Thread
Native
Stack
LE Heap Storage
Java Heap
Java Stack Classes
JIT Data
© 2014 IBM Corporation
IBM
If we have a look at the LE Config for Java in CICS (DFHAXRO)
 The LE Enclave is configured to always obtain new Heap Storage
» Bare in Mind that the JVM Heap Size is managed by the JVM, so a JVM can run out of
memory
» initial 64-bit heap of 100MB
» initial 31-bit heap of 4MB
» Both areas allow incremental expansion to increase
 The Files generated by the JVM are controlled by:
» DC C'ENVAR("_EDC_UMASK_DFLT=nnn")'
 The output that is produced by the RPTO and RPTS options is written to the
CESE transient data queue
© 2014 IBM Corporation
IBM
CICS AS
So how is Java now executed in CICS (abstracted)
zOS
Dispatcher
WEB
SWUQ
WEB WEB WEB
Global
SRB
TCB
ASCB
CICS
DFHSIP
TCB
OTE
TCB
OTE
Java LE Enclave
JVM Thread
WEB
TCB
QR
CICS
Dispatcher
LE Enclave LE Enclave
RTRQ
JVM Thread
JVM Thread
pThread
pThread
© 2014 IBM Corporation
IBM
What happens when a class got loaded
© 2014 IBM Corporation
IBM
What happens in the different phases
 Loading: A class is obtained from a file and loaded to the JVM memory.
 Verifying: Check whether or not the read class is configured as described in the
Java Language Specification and JVM specifications. This is the most
complicated test process of the class load processes, and takes the longest time.
Most cases of the JVM TCK test cases are to test whether or not a verification
error occurs by loading wrong classes.
 Preparing: Prepare a data structure that assigns the memory required by classes
and indicates the fields, methods, and interfaces defined in the class.
 Resolving: Change all symbolic references in the constant pool of the class to
direct references.
 Initializing: Initialize the class variables to proper values. Execute the static
initializers and initialize the static fields to the configured values.
© 2014 IBM Corporation
IBM
So what happens higher above in the Compiler
 The Java Bytecode for the following method:
 Compiles to (javap -c):
public int sum(int a, int b) {
int result = 0;
result = a + b;
return result;
}
 public int sum(int, int);
    Code:
         0: iconst_0      
         1: istore_3      
         2: iload_1       
         3: iload_2       
         4: iadd          
         5: istore_3      
         6: iload_3       
         7: ireturn    
© 2014 IBM Corporation
IBM
Some more details (javap -v):
  public int sum(int, int);
    flags: ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
         0: iconst_0      
         1: istore_3      
         2: iload_1       
         3: iload_2       
         4: iadd          
         5: istore_3      
         6: iload_3       
         7: ireturn       
      LineNumberTable:
        line 12: 0
        line 13: 2
        line 14: 6
      LocalVariableTable:
         Start  Length  Slot   Name   Signature
               0       8     0   this   Lorg/leicher/java/samples/HelloWorldSum;
               0       8     1      a   I
               0       8     2      b   I
               2       6     3  result   I
© 2014 IBM Corporation
IBM
What happens now with this bytecode?
 The JVM constructs for each Thread an execution engine
 In this engine the application now needs to be executed
» Problem?
○ The JVM interpreting bytecodes can’t match the performance of native applications with machine
code
○ Need to improve the performance of JVM startup (interpreting/compiling) and Java applications
over the life of JVM
» Solution!
○ A compiler that will allow JVM to start reasonably quickly
○ JIT code optimization processes
○ Improve overall Java applications performance
 The JIT Frontend is common in all IBM JVM Implementations, the Backend is
specific to system z
© 2014 IBM Corporation
IBM
A Glance at JIT and the Interpreter
Java Application
JVM
JIT
Compiler
J9
Interpreter
© 2014 IBM Corporation
IBM
The Memory Management of the JVM
Heap Method Area Native Area
Young Generation Old Generation
Virtual
From
Survivor0
To
Survivor1
Eden
Tenured
Virtual
Permanent Generation
Runtime Constant
Pool
Field & Method Data
Code
Virtual
Code Cache
Native
Compile
Threads (1..N)
Virtual
PC
Stack
Native
Stack
-Xmx
NrGCEvents
© 2014 IBM Corporation
IBM
So where are now the data of an Object
Heap
● Object HelloWorld
● Object SimpleDateFormat
● Object String
● Object LOGGER
Method Area
● Class SimpleDateFormat
● …
● Class Logger
● …
● Class HelloWorld
● Method: sayHello()
● ...
Native Area
● Parameter reference:
“message” to String
object
● Variable references
● “formatter”
● “today”
© 2014 IBM Corporation37
IBM
Compare Cobol to Java
Develop a COBOL program
 Cobol does not know complex DataTypes or Objects
 Data Elements are usually shared, not hidden
 The compile is usually done after coding (no online
syntax checking)
 Compiler perform less static tests
 Debugging is done in Multiuser Environments
Runtime Behaviour of Cobol
 LE does not check wether the loaded program is
corrupt
 The runtime can not check whether the data is
assigned correctly and Problems can arise
 Handlers get control if something went wrong
 Memory is defined upfront
Develop a Java program
 Data is structured in complex Objects
 Variables are not shared, they are adressed by
methods of the object
 Compiles are executed everytime a class is saved
(while ongoing syntax check is performed)
 Compiler performs a lot of static testing
 Debugging is usually done locally
 Memory can NEVER be addressed directly
Runtime Behaviour of Java
 The JVM checks the bytecode after loading the class
 Classes are checked during compilation and in
Runtime data is only assigned if types match
 Classes and methods can throw exceptions (also JNI)
if a problem occurs
 New Objects can be generated very dynamical
© 2014 IBM Corporation38
IBM
Update Behavior – “Java, why can't I just phase you in?”
Update a COBOL Program in CICS
 COBOL Program is compiled/linked into a PDSe that
is concatinated into the RPL upfront the existing Load
Library or replace the existing version
 In CICS issue a NEWCOPY or PHASEIN to let CICS
reload the Program from the Dataset
 Use the new Program
Update a Java Program in CICS
 In Java you can't replace runtime code (except via
JDWP)
 Frameworks like OSGi enables the exchange of
bundles
 You need to decouple the application desing (using
micro Services in OSGi or accept a small outage
Problems with this Approach
 Compatibility is a contract that is not checked until
runtime
 The connection is something the compiler is not
aware of
Problems with this Approach
 The simple Phasein/Newcopy is not possible
 A complex Build infrastructure is necessary
 Only bundles/services, not classes can be “phased in”
 A change in Application Development Architecture is
necessary
© 2014 IBM Corporation39
IBM
Questions
Tobias Leicher
Client Technical Professional & zChampion
– CICS & CICS Tools
IBM Allee 1
D-71139 Ehningen
Mobil: 0151 – 15 16 24 89
Mail: tobias.leicher@de.ibm.com
Foto
VIELEN DANK FÜR IHRE AUFMERKSAMKEIT.
What’s next…
More of my sessions
#ASZ-3983: CICS Java Real-Life Projects, Featuring Datev
#ASZ-3978: Why Is Java So Different?: A Session forCobol/PLI/AssemblerDevelopers
#ASZ-5927: Meet the Experts of Generation z—Driving Innovation on the Mainframe
More Cloud sessions
#ASZ-2829: Liberté, Égalité, Fraternité—Viva the CICS and WebSphere Mini Revolution
#ASZ-6481: Java and CICS—A Perfect Match
#ASZ-1841: WebSphere Liberty Profile Support forJava Batch and the JSR-352 Specification, Featuring
Sicoob
Collect a z Passport stickerhere, and at…
@IBM_CICS slideshare.net/IBM_CICSfacebook.com/IBMCICS ibm.com/cics
WIN!
Get a lightning start: Key InterConnect 2015 sessions
#2829 Mon 2:00-3:00 Liberté, Égalité, Fraternité—Viva the CICS and WebSphere Mini Revolution
#1670 Tue 3:30-4:30 IBM WebSphere Liberty z/OS Connect: A Technical Introduction
#4032 Wed 9:30-10:30 Meet the Winners of IBM’s Mainframe Mobile App Throwdown 2014
#6482 Thu 11:00-11:50 What is the Mainframe Mobile App Throwdown and How Do I Register?
Registernow at
ibm.biz/mmathrowdown
and submit yourapp by April 12th
Mobilize yourmainframe in our fun app-building contest for
z Systems clients & business partners!
The Mainframe Mobile App Throwdown
is back for 2015!
Need expert help?
42
CICS Development Services, for worldwide services assistanceCICS Development Services, for worldwide services assistance
Bringing CICS development expertise directly to your doorstep
Email us CICSDTS@UK.IBM.COM
Bringing CICS development expertise directly to your doorstep
Email us CICSDTS@UK.IBM.COM
Get a deep dive into your systems with a
CICS health check
Get a deep dive into your systems with a
CICS health check
Want to know more about CICS and
Java? We offer tailored Java education
Want to know more about CICS and
Java? We offer tailored Java education
Move forward with mobile with our
customized mobile workshop
Move forward with mobile with our
customized mobile workshop
Soar into the cloud with our
tailored cloud workshop
Soar into the cloud with our
tailored cloud workshop
Need to optimize your systems? Then
ask about a performance optimization
engagement
Need to optimize your systems? Then
ask about a performance optimization
engagement
Get the low down on performance with a
CICS performance workshops
Get the low down on performance with a
CICS performance workshops
Need to modernise your workload in
CICS? Ask about a integration and
connectivity engagement
Need to modernise your workload in
CICS? Ask about a integration and
connectivity engagement
Need some help upgrading to the latest
release? Then ask about our upgrade
workshop
Need some help upgrading to the latest
release? Then ask about our upgrade
workshop
Need to reduce cost by optimizing your
systems? Then a performance
optimization engagement may be for you
Need to reduce cost by optimizing your
systems? Then a performance
optimization engagement may be for you
Need something different? Then we can
build a customized workshop, just for
you!
Need something different? Then we can
build a customized workshop, just for
you!
Availability a concern? Then try our High
Availability workshop
Availability a concern? Then try our High
Availability workshop
Visit ibm.com/cics
then click ‘Services’
Thank You
Your Feedback is
Important!
Access the InterConnect 2015 Conference
CONNECT Attendee Portal to complete
your session surveys from your
smartphone,
laptop or conference kiosk.
Notices and Disclaimers
Copyright © 2015 by International Business Machines Corporation (IBM). No part of this document may be reproduced or transmitted in any
form without written permission from IBM.
U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM.
Information in these presentations (including information relating to products that have not yet been announced by IBM) has been reviewed for
accuracy as of the date of initial publication and could include unintentional technical or typographical errors. IBM shall have no responsibility to
update this information. THIS document is distributed "AS IS" without any warranty, either express or implied. In no event shall IBM be liable
for any damage arising from the use of this information, including but not limited to, loss of data, business interruption, loss of profit or loss of
opportunity. IBM products and services are warranted according to the terms and conditions of the agreements under which they are provided.
Any statements regarding IBM's future direction, intent or product plans are subject to change or withdrawal without notice.
Performance data contained herein was generally obtained in a controlled, isolated environments. Customer examples are presented as
illustrations of how those customers have used IBM products and the results they may have achieved. Actual performance, cost, savings or
other results in other operating environments may vary.
References in this document to IBM products, programs, or services does not imply that IBM intends to make such products, programs or
services available in all countries in which IBM operates or does business.
Workshops, sessions and associated materials may have been prepared by independent session speakers, and do not necessarily reflect the
views of IBM. All materials and discussions are provided for informational purposes only, and are neither intended to, nor shall constitute legal
or other guidance or advice to any individual participant or their specific situation.
It is the customer’s responsibility to insure its own compliance with legal requirements and to obtain advice of competent legal counsel as to
the identification and interpretation of any relevant laws and regulatory requirements that may affect the customer’s business and any actions
the customer may need to take to comply with such laws. IBM does not provide legal advice or represent or warrant that its services or
products will ensure that the customer is in compliance with any law.
Notices and Disclaimers (con’t)
Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or
other publicly available sources. IBM has not tested those products in connection with this publication and cannot confirm the
accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM
products should be addressed to the suppliers of those products. IBM does not warrant the quality of any third-party products, or
the ability of any such third-party products to interoperate with IBM’s products. IBM expressly disclaims all warranties, expressed or
implied, including but not limited to, the implied warranties of merchantability and fitness for a particular purpose.
The provision of the information contained herein is not intended to, and does not, grant any right or license under any IBM patents,
copyrights, trademarks or other intellectual property right.
• IBM, the IBM logo, ibm.com, Bluemix, Blueworks Live, CICS, Clearcase, DOORS®, Enterprise Document Management
System™, Global Business Services ®, Global Technology Services ®, Information on Demand, ILOG, Maximo®,
MQIntegrator®, MQSeries®, Netcool®, OMEGAMON, OpenPower, PureAnalytics™, PureApplication®, pureCluster™,
PureCoverage®, PureData®, PureExperience®, PureFlex®, pureQuery®, pureScale®, PureSystems®, QRadar®, Rational®,
Rhapsody®, SoDA, SPSS, StoredIQ, Tivoli®, Trusteer®, urban{code}®, Watson, WebSphere®, Worklight®, X-Force® and
System z® Z/OS, are trademarks of International Business Machines Corporation, registered in many jurisdictions worldwide.
Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is
available on the Web at "Copyright and trademark information" at: www.ibm.com/legal/copytrade.shtml.

Mais conteúdo relacionado

Mais procurados

What Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell YouWhat Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell YouJohn Pape
 
BP203 limitless languages
BP203 limitless languagesBP203 limitless languages
BP203 limitless languagesMark Myers
 
JavaOne 2012 CON3978 Scripting Languages on the JVM
JavaOne 2012 CON3978 Scripting Languages on the JVMJavaOne 2012 CON3978 Scripting Languages on the JVM
JavaOne 2012 CON3978 Scripting Languages on the JVMPaulThwaite
 
JavaOne 2012 CON 3961 Innovative Testing Techniques Using Bytecode Instrument...
JavaOne 2012 CON 3961 Innovative Testing Techniques Using Bytecode Instrument...JavaOne 2012 CON 3961 Innovative Testing Techniques Using Bytecode Instrument...
JavaOne 2012 CON 3961 Innovative Testing Techniques Using Bytecode Instrument...PaulThwaite
 
Visual COBOL Development for Unix and Java
Visual COBOL Development for Unix and JavaVisual COBOL Development for Unix and Java
Visual COBOL Development for Unix and JavaMicro Focus
 
Websphere Application Server: Much more than Open Source
Websphere Application Server: Much more than Open SourceWebsphere Application Server: Much more than Open Source
Websphere Application Server: Much more than Open SourceIBM WebSphereIndia
 
Symfony Day 2009 - Symfony vs Integrating products
Symfony Day 2009 - Symfony vs Integrating productsSymfony Day 2009 - Symfony vs Integrating products
Symfony Day 2009 - Symfony vs Integrating productsXavier Lacot
 
From java-to-ruby-book-summary
From java-to-ruby-book-summaryFrom java-to-ruby-book-summary
From java-to-ruby-book-summary120bi
 
The Evolution of Java
The Evolution of JavaThe Evolution of Java
The Evolution of JavaFu Cheng
 
Concierge: Bringing OSGi (Back) to Embedded Devices
Concierge: Bringing OSGi (Back) to Embedded DevicesConcierge: Bringing OSGi (Back) to Embedded Devices
Concierge: Bringing OSGi (Back) to Embedded DevicesJan S. Rellermeyer
 
We Can Do Better - IBM's Vision for the Next Generation of Java Runtimes - Jo...
We Can Do Better - IBM's Vision for the Next Generation of Java Runtimes - Jo...We Can Do Better - IBM's Vision for the Next Generation of Java Runtimes - Jo...
We Can Do Better - IBM's Vision for the Next Generation of Java Runtimes - Jo...mfrancis
 

Mais procurados (19)

What Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell YouWhat Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell You
 
BP203 limitless languages
BP203 limitless languagesBP203 limitless languages
BP203 limitless languages
 
JavaOne 2012 CON3978 Scripting Languages on the JVM
JavaOne 2012 CON3978 Scripting Languages on the JVMJavaOne 2012 CON3978 Scripting Languages on the JVM
JavaOne 2012 CON3978 Scripting Languages on the JVM
 
Blue Ruby SDN Webinar
Blue Ruby SDN WebinarBlue Ruby SDN Webinar
Blue Ruby SDN Webinar
 
Introduction to java
Introduction to javaIntroduction to java
Introduction to java
 
JavaOne 2012 CON 3961 Innovative Testing Techniques Using Bytecode Instrument...
JavaOne 2012 CON 3961 Innovative Testing Techniques Using Bytecode Instrument...JavaOne 2012 CON 3961 Innovative Testing Techniques Using Bytecode Instrument...
JavaOne 2012 CON 3961 Innovative Testing Techniques Using Bytecode Instrument...
 
JAVA INTRODUCTION - 1
JAVA INTRODUCTION - 1JAVA INTRODUCTION - 1
JAVA INTRODUCTION - 1
 
Java introduction
Java introductionJava introduction
Java introduction
 
History of Java 2/2
History of Java 2/2History of Java 2/2
History of Java 2/2
 
Sadiq786
Sadiq786Sadiq786
Sadiq786
 
Visual COBOL Development for Unix and Java
Visual COBOL Development for Unix and JavaVisual COBOL Development for Unix and Java
Visual COBOL Development for Unix and Java
 
Websphere Application Server: Much more than Open Source
Websphere Application Server: Much more than Open SourceWebsphere Application Server: Much more than Open Source
Websphere Application Server: Much more than Open Source
 
Symfony Day 2009 - Symfony vs Integrating products
Symfony Day 2009 - Symfony vs Integrating productsSymfony Day 2009 - Symfony vs Integrating products
Symfony Day 2009 - Symfony vs Integrating products
 
From java-to-ruby-book-summary
From java-to-ruby-book-summaryFrom java-to-ruby-book-summary
From java-to-ruby-book-summary
 
1 java introduction
1 java introduction1 java introduction
1 java introduction
 
History of Java 1/2
History of Java 1/2History of Java 1/2
History of Java 1/2
 
The Evolution of Java
The Evolution of JavaThe Evolution of Java
The Evolution of Java
 
Concierge: Bringing OSGi (Back) to Embedded Devices
Concierge: Bringing OSGi (Back) to Embedded DevicesConcierge: Bringing OSGi (Back) to Embedded Devices
Concierge: Bringing OSGi (Back) to Embedded Devices
 
We Can Do Better - IBM's Vision for the Next Generation of Java Runtimes - Jo...
We Can Do Better - IBM's Vision for the Next Generation of Java Runtimes - Jo...We Can Do Better - IBM's Vision for the Next Generation of Java Runtimes - Jo...
We Can Do Better - IBM's Vision for the Next Generation of Java Runtimes - Jo...
 

Destaque

W Bertschinger Consulting - profile & service portfolio
W Bertschinger Consulting - profile & service portfolioW Bertschinger Consulting - profile & service portfolio
W Bertschinger Consulting - profile & service portfolioWalter Bertschinger
 
java memory management & gc
java memory management & gcjava memory management & gc
java memory management & gcexsuns
 
Поэзия обыденного. Серов В. А.
Поэзия обыденного. Серов В. А.Поэзия обыденного. Серов В. А.
Поэзия обыденного. Серов В. А.Biblioteka-22
 
SHARE 2014, Pittsburgh IBM Mobile Pricing
SHARE 2014, Pittsburgh IBM Mobile PricingSHARE 2014, Pittsburgh IBM Mobile Pricing
SHARE 2014, Pittsburgh IBM Mobile Pricingnick_garrod
 
Change Detection Anno Domini 2016
Change Detection Anno Domini 2016Change Detection Anno Domini 2016
Change Detection Anno Domini 2016Artur Skowroński
 
Facebook - The Social Network
Facebook - The Social NetworkFacebook - The Social Network
Facebook - The Social Networkgeersb
 
عادت های موفق ترین محققان بازار
عادت های موفق ترین محققان بازارعادت های موفق ترین محققان بازار
عادت های موفق ترین محققان بازاربازآران
 
SHARE 2014 Pittsburgh, Modernizing cics for cloud
SHARE 2014 Pittsburgh, Modernizing cics for cloudSHARE 2014 Pittsburgh, Modernizing cics for cloud
SHARE 2014 Pittsburgh, Modernizing cics for cloudnick_garrod
 
SHARE 2014, Pittsburgh CICS Connectivity amd Networking
SHARE 2014, Pittsburgh CICS Connectivity amd NetworkingSHARE 2014, Pittsburgh CICS Connectivity amd Networking
SHARE 2014, Pittsburgh CICS Connectivity amd Networkingnick_garrod
 
S111 cics connectivity in devops
S111   cics connectivity in devopsS111   cics connectivity in devops
S111 cics connectivity in devopsnick_garrod
 
Impact 2014 Best practices for_cics_soa_co
Impact 2014 Best practices for_cics_soa_coImpact 2014 Best practices for_cics_soa_co
Impact 2014 Best practices for_cics_soa_conick_garrod
 
SHARE 2014, Pittsburgh CICS Connectivity amd Networking
SHARE 2014, Pittsburgh CICS Connectivity amd NetworkingSHARE 2014, Pittsburgh CICS Connectivity amd Networking
SHARE 2014, Pittsburgh CICS Connectivity amd Networkingnick_garrod
 
Share seattle liberty
Share seattle libertyShare seattle liberty
Share seattle libertynick_garrod
 
Share seattle health_center
Share seattle health_centerShare seattle health_center
Share seattle health_centernick_garrod
 
SHARE 2014 Pittsburgh, CICS Workload Management
SHARE 2014 Pittsburgh, CICS Workload Management SHARE 2014 Pittsburgh, CICS Workload Management
SHARE 2014 Pittsburgh, CICS Workload Management nick_garrod
 
2844 CICS Policy Based Management – There’s a new sheriff in town
2844 CICS Policy Based Management – There’s a new sheriff in town2844 CICS Policy Based Management – There’s a new sheriff in town
2844 CICS Policy Based Management – There’s a new sheriff in townnick_garrod
 

Destaque (20)

W Bertschinger Consulting - profile & service portfolio
W Bertschinger Consulting - profile & service portfolioW Bertschinger Consulting - profile & service portfolio
W Bertschinger Consulting - profile & service portfolio
 
java memory management & gc
java memory management & gcjava memory management & gc
java memory management & gc
 
Belgium prb
Belgium prbBelgium prb
Belgium prb
 
Поэзия обыденного. Серов В. А.
Поэзия обыденного. Серов В. А.Поэзия обыденного. Серов В. А.
Поэзия обыденного. Серов В. А.
 
看图写话
看图写话看图写话
看图写话
 
SHARE 2014, Pittsburgh IBM Mobile Pricing
SHARE 2014, Pittsburgh IBM Mobile PricingSHARE 2014, Pittsburgh IBM Mobile Pricing
SHARE 2014, Pittsburgh IBM Mobile Pricing
 
Change Detection Anno Domini 2016
Change Detection Anno Domini 2016Change Detection Anno Domini 2016
Change Detection Anno Domini 2016
 
Facebook - The Social Network
Facebook - The Social NetworkFacebook - The Social Network
Facebook - The Social Network
 
عادت های موفق ترین محققان بازار
عادت های موفق ترین محققان بازارعادت های موفق ترین محققان بازار
عادت های موفق ترین محققان بازار
 
Naturales.
Naturales.Naturales.
Naturales.
 
SHARE 2014 Pittsburgh, Modernizing cics for cloud
SHARE 2014 Pittsburgh, Modernizing cics for cloudSHARE 2014 Pittsburgh, Modernizing cics for cloud
SHARE 2014 Pittsburgh, Modernizing cics for cloud
 
SHARE 2014, Pittsburgh CICS Connectivity amd Networking
SHARE 2014, Pittsburgh CICS Connectivity amd NetworkingSHARE 2014, Pittsburgh CICS Connectivity amd Networking
SHARE 2014, Pittsburgh CICS Connectivity amd Networking
 
S111 cics connectivity in devops
S111   cics connectivity in devopsS111   cics connectivity in devops
S111 cics connectivity in devops
 
Impact 2014 Best practices for_cics_soa_co
Impact 2014 Best practices for_cics_soa_coImpact 2014 Best practices for_cics_soa_co
Impact 2014 Best practices for_cics_soa_co
 
SOP Merakit PC
SOP Merakit PCSOP Merakit PC
SOP Merakit PC
 
SHARE 2014, Pittsburgh CICS Connectivity amd Networking
SHARE 2014, Pittsburgh CICS Connectivity amd NetworkingSHARE 2014, Pittsburgh CICS Connectivity amd Networking
SHARE 2014, Pittsburgh CICS Connectivity amd Networking
 
Share seattle liberty
Share seattle libertyShare seattle liberty
Share seattle liberty
 
Share seattle health_center
Share seattle health_centerShare seattle health_center
Share seattle health_center
 
SHARE 2014 Pittsburgh, CICS Workload Management
SHARE 2014 Pittsburgh, CICS Workload Management SHARE 2014 Pittsburgh, CICS Workload Management
SHARE 2014 Pittsburgh, CICS Workload Management
 
2844 CICS Policy Based Management – There’s a new sheriff in town
2844 CICS Policy Based Management – There’s a new sheriff in town2844 CICS Policy Based Management – There’s a new sheriff in town
2844 CICS Policy Based Management – There’s a new sheriff in town
 

Semelhante a 3978 Why is Java so different... A Session for Cobol/PLI/Assembler Developers

Java Programming (M&M)
Java Programming (M&M)Java Programming (M&M)
Java Programming (M&M)mafffffe19
 
(java2days) Is the Future of Java Cloudy?
(java2days) Is the Future of Java Cloudy?(java2days) Is the Future of Java Cloudy?
(java2days) Is the Future of Java Cloudy?Steve Poole
 
MWLUG - Universal Java
MWLUG  -  Universal JavaMWLUG  -  Universal Java
MWLUG - Universal JavaPhilippe Riand
 
Java training in bangalore
Java training in bangaloreJava training in bangalore
Java training in bangalorezasi besant
 
Introduction to Java Programming, Basic Structure, variables Data type, input...
Introduction to Java Programming, Basic Structure, variables Data type, input...Introduction to Java Programming, Basic Structure, variables Data type, input...
Introduction to Java Programming, Basic Structure, variables Data type, input...Mr. Akaash
 
Java the reason behind its never ending demand
Java the reason behind its never ending demandJava the reason behind its never ending demand
Java the reason behind its never ending demandDeepika Chaudhary
 
Introduction to Java
Introduction to Java Introduction to Java
Introduction to Java Hitesh-Java
 
BP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM DominoBP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM DominoSerdar Basegmez
 
Java & J2EE Struts with Hibernate Framework
Java & J2EE Struts with Hibernate FrameworkJava & J2EE Struts with Hibernate Framework
Java & J2EE Struts with Hibernate FrameworkMohit Belwal
 
J2ee strutswithhibernate-140121221332-phpapp01
J2ee strutswithhibernate-140121221332-phpapp01J2ee strutswithhibernate-140121221332-phpapp01
J2ee strutswithhibernate-140121221332-phpapp01Jay Palit
 
Java Introduction | PDF
Java Introduction |  PDFJava Introduction |  PDF
Java Introduction | PDFGeekster
 
C,c++,java,php,.net training institute in delhi, best training institute for ...
C,c++,java,php,.net training institute in delhi, best training institute for ...C,c++,java,php,.net training institute in delhi, best training institute for ...
C,c++,java,php,.net training institute in delhi, best training institute for ...MCM COmpetitive Classes
 

Semelhante a 3978 Why is Java so different... A Session for Cobol/PLI/Assembler Developers (20)

Java Programming (M&M)
Java Programming (M&M)Java Programming (M&M)
Java Programming (M&M)
 
(java2days) Is the Future of Java Cloudy?
(java2days) Is the Future of Java Cloudy?(java2days) Is the Future of Java Cloudy?
(java2days) Is the Future of Java Cloudy?
 
MWLUG - Universal Java
MWLUG  -  Universal JavaMWLUG  -  Universal Java
MWLUG - Universal Java
 
Java training in bangalore
Java training in bangaloreJava training in bangalore
Java training in bangalore
 
Introduction to Java Programming, Basic Structure, variables Data type, input...
Introduction to Java Programming, Basic Structure, variables Data type, input...Introduction to Java Programming, Basic Structure, variables Data type, input...
Introduction to Java Programming, Basic Structure, variables Data type, input...
 
Java the reason behind its never ending demand
Java the reason behind its never ending demandJava the reason behind its never ending demand
Java the reason behind its never ending demand
 
S109 cics-java
S109 cics-javaS109 cics-java
S109 cics-java
 
130700548484460000
130700548484460000130700548484460000
130700548484460000
 
Java
JavaJava
Java
 
Introduction to Java
Introduction to Java Introduction to Java
Introduction to Java
 
BP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM DominoBP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM Domino
 
00 intro to java
00 intro to java00 intro to java
00 intro to java
 
Java & J2EE Struts with Hibernate Framework
Java & J2EE Struts with Hibernate FrameworkJava & J2EE Struts with Hibernate Framework
Java & J2EE Struts with Hibernate Framework
 
J2ee strutswithhibernate-140121221332-phpapp01
J2ee strutswithhibernate-140121221332-phpapp01J2ee strutswithhibernate-140121221332-phpapp01
J2ee strutswithhibernate-140121221332-phpapp01
 
Unit1 JAVA.pptx
Unit1 JAVA.pptxUnit1 JAVA.pptx
Unit1 JAVA.pptx
 
Class_01.pptx
Class_01.pptxClass_01.pptx
Class_01.pptx
 
Java Intro
Java IntroJava Intro
Java Intro
 
Java Introduction | PDF
Java Introduction |  PDFJava Introduction |  PDF
Java Introduction | PDF
 
C,c++,java,php,.net training institute in delhi, best training institute for ...
C,c++,java,php,.net training institute in delhi, best training institute for ...C,c++,java,php,.net training institute in delhi, best training institute for ...
C,c++,java,php,.net training institute in delhi, best training institute for ...
 
Java.pptx
Java.pptxJava.pptx
Java.pptx
 

Mais de nick_garrod

2844 inter connect cics policy (2844)
2844  inter connect cics policy (2844)2844  inter connect cics policy (2844)
2844 inter connect cics policy (2844)nick_garrod
 
Cics ts v4 and v5 recap, and the new cics ts v5.3 open beta (1)
Cics ts v4 and v5 recap, and the new cics ts v5.3 open beta (1)Cics ts v4 and v5 recap, and the new cics ts v5.3 open beta (1)
Cics ts v4 and v5 recap, and the new cics ts v5.3 open beta (1)nick_garrod
 
Enhanced cics cloud enablement and dev ops capabilities
Enhanced cics cloud enablement and dev ops capabilitiesEnhanced cics cloud enablement and dev ops capabilities
Enhanced cics cloud enablement and dev ops capabilitiesnick_garrod
 
Api management customer
Api management customerApi management customer
Api management customernick_garrod
 
Anz cics ts v5 technical update seminar intro (half day event)
Anz cics ts v5 technical update seminar intro (half day event)Anz cics ts v5 technical update seminar intro (half day event)
Anz cics ts v5 technical update seminar intro (half day event)nick_garrod
 
S110 gse - liberte egalite fraternite
S110 gse - liberte egalite fraterniteS110 gse - liberte egalite fraternite
S110 gse - liberte egalite fraternitenick_garrod
 
S108 - 1 Billion Smartphones a year and counting – How is your CICS connected?
S108 - 1 Billion Smartphones a year and counting – How is your CICS connected?S108 - 1 Billion Smartphones a year and counting – How is your CICS connected?
S108 - 1 Billion Smartphones a year and counting – How is your CICS connected?nick_garrod
 
S107 5 compelling reasons for using cics in the cloud
S107 5 compelling reasons for using cics in the cloudS107 5 compelling reasons for using cics in the cloud
S107 5 compelling reasons for using cics in the cloudnick_garrod
 
S106 using ibm urban code deploy to deliver your apps to cics
S106 using ibm urban code deploy to deliver your apps to cicsS106 using ibm urban code deploy to deliver your apps to cics
S106 using ibm urban code deploy to deliver your apps to cicsnick_garrod
 
S105 performance
S105 performanceS105 performance
S105 performancenick_garrod
 
S104 twist and cloud
S104 twist and cloudS104 twist and cloud
S104 twist and cloudnick_garrod
 
S103 cics cloud and dev ops agility
S103 cics cloud and dev ops agilityS103 cics cloud and dev ops agility
S103 cics cloud and dev ops agilitynick_garrod
 
S102 cics the future is closer abridged
S102 cics the future is closer abridgedS102 cics the future is closer abridged
S102 cics the future is closer abridgednick_garrod
 
S101 cics what's in it for you
S101   cics what's in it for you S101   cics what's in it for you
S101 cics what's in it for you nick_garrod
 
SHARE Seattle 2015 Taming the Beast – Best Practices for zFS with CICS
SHARE Seattle 2015 Taming the Beast – Best Practices for zFS with CICSSHARE Seattle 2015 Taming the Beast – Best Practices for zFS with CICS
SHARE Seattle 2015 Taming the Beast – Best Practices for zFS with CICSnick_garrod
 
Share seattle cics cloud
Share seattle cics cloudShare seattle cics cloud
Share seattle cics cloudnick_garrod
 
SHARE 2015 SeattleShare cics ts 52 technical overview
SHARE 2015 SeattleShare cics ts 52 technical overviewSHARE 2015 SeattleShare cics ts 52 technical overview
SHARE 2015 SeattleShare cics ts 52 technical overviewnick_garrod
 
Share cics policy (2844)
Share cics policy (2844)Share cics policy (2844)
Share cics policy (2844)nick_garrod
 
Share multi versioning scenarios
Share  multi versioning scenariosShare  multi versioning scenarios
Share multi versioning scenariosnick_garrod
 
16370 cics project opening and project update f
16370  cics project opening and project update f16370  cics project opening and project update f
16370 cics project opening and project update fnick_garrod
 

Mais de nick_garrod (20)

2844 inter connect cics policy (2844)
2844  inter connect cics policy (2844)2844  inter connect cics policy (2844)
2844 inter connect cics policy (2844)
 
Cics ts v4 and v5 recap, and the new cics ts v5.3 open beta (1)
Cics ts v4 and v5 recap, and the new cics ts v5.3 open beta (1)Cics ts v4 and v5 recap, and the new cics ts v5.3 open beta (1)
Cics ts v4 and v5 recap, and the new cics ts v5.3 open beta (1)
 
Enhanced cics cloud enablement and dev ops capabilities
Enhanced cics cloud enablement and dev ops capabilitiesEnhanced cics cloud enablement and dev ops capabilities
Enhanced cics cloud enablement and dev ops capabilities
 
Api management customer
Api management customerApi management customer
Api management customer
 
Anz cics ts v5 technical update seminar intro (half day event)
Anz cics ts v5 technical update seminar intro (half day event)Anz cics ts v5 technical update seminar intro (half day event)
Anz cics ts v5 technical update seminar intro (half day event)
 
S110 gse - liberte egalite fraternite
S110 gse - liberte egalite fraterniteS110 gse - liberte egalite fraternite
S110 gse - liberte egalite fraternite
 
S108 - 1 Billion Smartphones a year and counting – How is your CICS connected?
S108 - 1 Billion Smartphones a year and counting – How is your CICS connected?S108 - 1 Billion Smartphones a year and counting – How is your CICS connected?
S108 - 1 Billion Smartphones a year and counting – How is your CICS connected?
 
S107 5 compelling reasons for using cics in the cloud
S107 5 compelling reasons for using cics in the cloudS107 5 compelling reasons for using cics in the cloud
S107 5 compelling reasons for using cics in the cloud
 
S106 using ibm urban code deploy to deliver your apps to cics
S106 using ibm urban code deploy to deliver your apps to cicsS106 using ibm urban code deploy to deliver your apps to cics
S106 using ibm urban code deploy to deliver your apps to cics
 
S105 performance
S105 performanceS105 performance
S105 performance
 
S104 twist and cloud
S104 twist and cloudS104 twist and cloud
S104 twist and cloud
 
S103 cics cloud and dev ops agility
S103 cics cloud and dev ops agilityS103 cics cloud and dev ops agility
S103 cics cloud and dev ops agility
 
S102 cics the future is closer abridged
S102 cics the future is closer abridgedS102 cics the future is closer abridged
S102 cics the future is closer abridged
 
S101 cics what's in it for you
S101   cics what's in it for you S101   cics what's in it for you
S101 cics what's in it for you
 
SHARE Seattle 2015 Taming the Beast – Best Practices for zFS with CICS
SHARE Seattle 2015 Taming the Beast – Best Practices for zFS with CICSSHARE Seattle 2015 Taming the Beast – Best Practices for zFS with CICS
SHARE Seattle 2015 Taming the Beast – Best Practices for zFS with CICS
 
Share seattle cics cloud
Share seattle cics cloudShare seattle cics cloud
Share seattle cics cloud
 
SHARE 2015 SeattleShare cics ts 52 technical overview
SHARE 2015 SeattleShare cics ts 52 technical overviewSHARE 2015 SeattleShare cics ts 52 technical overview
SHARE 2015 SeattleShare cics ts 52 technical overview
 
Share cics policy (2844)
Share cics policy (2844)Share cics policy (2844)
Share cics policy (2844)
 
Share multi versioning scenarios
Share  multi versioning scenariosShare  multi versioning scenarios
Share multi versioning scenarios
 
16370 cics project opening and project update f
16370  cics project opening and project update f16370  cics project opening and project update f
16370 cics project opening and project update f
 

3978 Why is Java so different... A Session for Cobol/PLI/Assembler Developers

  • 1. © 2015 IBM Corporation © IBM Corporation 2011 Why are you so different? Java for COBOL Developers Tobias Leicher | CICS Client Technical Professional | tobias.leicher@de.ibm.com
  • 2. © 2014 IBM Corporation IBM
  • 3. © 2014 IBM Corporation IBM Goal of this Session  After running around and shouting „Java is just another language running on the mainframe“, it is now time to show you some lies about my fact.  Understand differences and reasons for them  See the advantages of different languages and also understand that there is no single language that rules the world  Get a feeling why problems in Java are different and a Dump in classical sense often leads you nowhere  Give Java another chance, that guy is now grown up and in his twenties, probably the time in life where you have enough experience to solve the important problems in life
  • 4. © 2014 IBM Corporation IBM Before we compare, let us rethink what we know already  Today we will talk about COBOL, PLI or even Assembler (LE) and we will compare it to Java, as I am a CICS Person I will talk more about CICS than IMS or Batch  So how does a COBOL Program executes in zOS (only cover LE here): » The first thing that happens is a load of the program: ○ In CICS the LOADER will issue a BLDL or LLACOPY MACRO against MVS and the Program is loaded into the storage » If you then Call the Program a new LE Enclave is---------------- ○ Wait, what is this LE guy used for again?!
  • 5. © 2014 IBM Corporation IBM LE – The standardized Runtime Environment in zOS  Before LE all Languages brought their own Runtime Libraries  A Runtime library brings all the code that is provided by a language and not part of the user Program (Storage management, Math functions...)  A Runtime library has the advantage, that the code is always tied to the underlying hardware, without letting the compiler or the application do too much adaptions  Why now LE? » When all the languages brought their own runtime, they expected to be alone in the world » Customers had problems to run different languages side by side  Back to our Topic!
  • 6. © 2014 IBM Corporation IBM Before we compare, let us rethink what we know already  Today we will talk about COBOL, PLI or even Assembler (LE) and we will compare it to Java, as I am a CICS Person I will talk more about CICS than IMS or Batch  So how does a COBOL Program execute in zOS (only cover LE here): » The first thing that happens is a load of the program: ○ In CICS the LOADER will issue a BLDL or LLACOPY MACRO against MVS and the Program is loaded into the storage » If you then Call the Program a new LE Enclave is initialized ○ initial storage is obtained ○ condition handlers initialized ○ active member language specific run-time is initialized » Control is given to the application code » Once the application ends and 'returns' to LE ○ The LE environment is terminated ○ System resources obtained during initialization and throughout the execution of the application are cleaned up
  • 7. © 2014 IBM Corporation IBM How does that look like? = CICS Region = CICS initial transaction = Main Transaction Program or EC Linked Program
  • 8. © 2014 IBM Corporation IBM So what does the storage in LE look like?
  • 9. © 2014 IBM Corporation IBM CICS AS How is a program dispatched then in CICS (abstracted) zOS Dispatcher WEB SWUQ WEB WEB WEB Global SRB TCB ASCB CICS DFHSIP TCB OTE TCB OTE LE Enclave LE Enclave WEB TCB QR CICS Dispatcher LE Enclave LE Enclave RTRQ
  • 10. © 2014 IBM Corporation IBM So in CICS a Task has one or more LE Enclaves that are totally seperated from each other Task in the address space  What happened with this great concept?!
  • 11. © 2014 IBM Corporation IBM Once upon a time...
  • 12. © 2014 IBM Corporation IBM Everyone knew where to put their application, but suddenly things were different...
  • 13. © 2014 IBM Corporation IBM Soon the workload starts spreading...
  • 14. © 2014 IBM Corporation IBM Everyone was confused...
  • 15. © 2014 IBM Corporation IBM And the new and shiny PC world was different to the Mainframe!  Less Users  Bad code has far more resources on its own  Coding Style Changed a lot  No LE, not even a unified Operating System (And Yes I know we have VM, VSE, TPF and Linux on the mainframe as well)  Backward Compatibility was not given anymore  ...
  • 16. © 2014 IBM Corporation IBM History of programming languages 1954 1959 1964 1971 SmallTalk PL/I COBOL Fortran 1983 C C++ LISP Basic 1989 Perl 1995 OAK Java JavaScript
  • 17. © 2014 IBM Corporation17 March 6, 2015 IBM What is Java and what makes it different from what we have today Java is What makes Java different Java differes in some parts quite a lot from traditional languages like assembler, PL/I or COBOL  Java is NOT compiled to executable code, it is compiled to bytecode, that runs in a virtual machine  The virtual machine uses the just-in-time compiler (JIT) to execute the code  Java is not based on programs, it is based on classes  Java uses a garbage collector, that removes unused objects from the storage  Java development is often based on exiting programming patterns (Design Patterns)  Most of the build in funtionality of Java is based of class libraries, that are build in the Java Runtime (JRE)  Java contains a library for user interface development  Java has the ability to reflect about the runtime with several methods  Java has a type safe variable declaration  Uses JNI for native system calls and JDBC for database calls Java is  an object oriented,  platform independent,  broadly supported and prevalent  an state of the art language  [and an Island in Indonesia]  Something YOU should care about Java is not  something new and not reliable  an error-prone language  the only solution for good code  independent on it's own  something that the distributed world should care of  easy and/or out of the box  a composable workbox full of libraries
  • 18. © 2014 IBM Corporation18 March 6, 2015 IBM Java on Mainframes - what is different and why here?  IBM uses its own implementation of a JVM on mainframes that uses the underlying platform architecture  The Java workload can be offloaded to a zAAP processor  The Java logic can be a bridge between the mainframe and the distributed world  Java is a common language on many platforms that can help to find a dialog between the departments  Java is a language that is well known by many new professionals and so a good common ground, when they start to develop for mainframe IBM JDK for z/OS Standard JSE (JDK specification) zOS Extensions Just In Time Compiler (JIT) Exploitation of the Hardware Architecture z/OS Operating System and System z Hardware
  • 19. © 2014 IBM Corporation19 March 6, 2015 IBM Java packaging and class hierarchies  Java modularity: –Classes contain data and logic –Packages contain these classes and organize them • This is just a virtual form of organization –Jar files contain the classes and are the base for enterprise applications  Java visibility settings: –Private, protected, package private, public  At the runtime, there are just a lot of classes on a classpath jar file java packages class files There are some features missing: jar visibility, versioning, dependencies
  • 20. © 2014 IBM Corporation20 March 6, 2015 IBM The Classpath – What was called a load lib concatenation before Java VM log4j barcode4j axis batik commons derby fop ezmorph freemarker httpunit jakarta jcl json jdbm jdom jenks jpos18 jython looks lucene mail mx4j naming jetty poi resolver rome serializer servlets tomcat velocity ws-commons xalan wsdl4j xerces xmlgraphics xmlrpc xmlapis .. geronimo bsh bsf guiapp hhfacility manufact. marketing minerva accounting assetmaint base bi catalina common oagis order ebay content datafile ecommerce entity googlebase ofbiz widget minilang party pos. product workeffort workflow … sunjce_prov. plugin jsse jce rt dnsns .. … Class Not Found Exception BeginBegin HereHere
  • 21. © 2014 IBM Corporation IBM Specialty CP operation  Eligible work moves to specialty CP under control of z/OS  Provide more capacity for eligible workloads without a change in MSU  Provides more capacity for non-eligible workloads  Reduces software stack charges for non-eligible products on CEC Eligible work Eligible work Eligible work Eligible work Eligible work Eligible work GCP zIIPGCP
  • 22. © 2014 IBM Corporation IBM IBM System z Application Assist Processor (zAAP) Dedicated to execution of Java workloads under z/OS® – e.g. Websphere® , CICS, IMS, DB2®  Available on all IBM zEnterprise systems, System z9 and z10 and zSeries z990 and z890  Used by any workload with Java cycles  Executes java code without any changes to the applications  Also used for XML parsing Standard CP zAAP WebSphere Execute JAVA Code z/OS Dispatcher Suspend JVM task on z/OS standard logical processor WebSphere Java Application Code Executing on a zAAP logical processorz/OS Dispatcher JVM Switch to zAAP JVM JVMSwitch to z/OS Dispatcher JVM Dispatch JVM task on z/OS standard logical processor JVM z/OS Dispatcher logical processor z/OS Dispatcher Dispatch JVM task on z/OS zAAP logical processor JVM Switch to standard processor z/OS Dispatcher Suspend JVM task on z/OS standard logical processor
  • 23. © 2014 IBM Corporation IBM So now let us see what happens in Java  Everything in Java is executed within a virtual machine  Run Time Data Management is done by the virtual machine  The JVM will only stop if the last non-deamon thread finishes  Java is never compiled upfront, it is interpreted and compiled during runtime » Do you remember HPJ?  Java is platform independent, so everything in Java is abstracted (including Datatypes
  • 24. © 2014 IBM Corporation IBM Lets dive a bit deeper Source: http://www.artima.com/insidejvm/ed2/jvmP.html
  • 25. © 2014 IBM Corporation IBM How does a Java LE-Enclave look like C main procedure (JVM) LE Thread Native Stack LE Heap Storage Java Heap Java Stack Classes JIT Data
  • 26. © 2014 IBM Corporation IBM If we have a look at the LE Config for Java in CICS (DFHAXRO)  The LE Enclave is configured to always obtain new Heap Storage » Bare in Mind that the JVM Heap Size is managed by the JVM, so a JVM can run out of memory » initial 64-bit heap of 100MB » initial 31-bit heap of 4MB » Both areas allow incremental expansion to increase  The Files generated by the JVM are controlled by: » DC C'ENVAR("_EDC_UMASK_DFLT=nnn")'  The output that is produced by the RPTO and RPTS options is written to the CESE transient data queue
  • 27. © 2014 IBM Corporation IBM CICS AS So how is Java now executed in CICS (abstracted) zOS Dispatcher WEB SWUQ WEB WEB WEB Global SRB TCB ASCB CICS DFHSIP TCB OTE TCB OTE Java LE Enclave JVM Thread WEB TCB QR CICS Dispatcher LE Enclave LE Enclave RTRQ JVM Thread JVM Thread pThread pThread
  • 28. © 2014 IBM Corporation IBM What happens when a class got loaded
  • 29. © 2014 IBM Corporation IBM What happens in the different phases  Loading: A class is obtained from a file and loaded to the JVM memory.  Verifying: Check whether or not the read class is configured as described in the Java Language Specification and JVM specifications. This is the most complicated test process of the class load processes, and takes the longest time. Most cases of the JVM TCK test cases are to test whether or not a verification error occurs by loading wrong classes.  Preparing: Prepare a data structure that assigns the memory required by classes and indicates the fields, methods, and interfaces defined in the class.  Resolving: Change all symbolic references in the constant pool of the class to direct references.  Initializing: Initialize the class variables to proper values. Execute the static initializers and initialize the static fields to the configured values.
  • 30. © 2014 IBM Corporation IBM So what happens higher above in the Compiler  The Java Bytecode for the following method:  Compiles to (javap -c): public int sum(int a, int b) { int result = 0; result = a + b; return result; }  public int sum(int, int);     Code:          0: iconst_0                1: istore_3                2: iload_1                 3: iload_2                 4: iadd                    5: istore_3                6: iload_3                 7: ireturn    
  • 31. © 2014 IBM Corporation IBM Some more details (javap -v):   public int sum(int, int);     flags: ACC_PUBLIC     Code:       stack=2, locals=4, args_size=3          0: iconst_0                1: istore_3                2: iload_1                 3: iload_2                 4: iadd                    5: istore_3                6: iload_3                 7: ireturn              LineNumberTable:         line 12: 0         line 13: 2         line 14: 6       LocalVariableTable:          Start  Length  Slot   Name   Signature                0       8     0   this   Lorg/leicher/java/samples/HelloWorldSum;                0       8     1      a   I                0       8     2      b   I                2       6     3  result   I
  • 32. © 2014 IBM Corporation IBM What happens now with this bytecode?  The JVM constructs for each Thread an execution engine  In this engine the application now needs to be executed » Problem? ○ The JVM interpreting bytecodes can’t match the performance of native applications with machine code ○ Need to improve the performance of JVM startup (interpreting/compiling) and Java applications over the life of JVM » Solution! ○ A compiler that will allow JVM to start reasonably quickly ○ JIT code optimization processes ○ Improve overall Java applications performance  The JIT Frontend is common in all IBM JVM Implementations, the Backend is specific to system z
  • 33. © 2014 IBM Corporation IBM A Glance at JIT and the Interpreter Java Application JVM JIT Compiler J9 Interpreter
  • 34. © 2014 IBM Corporation IBM The Memory Management of the JVM Heap Method Area Native Area Young Generation Old Generation Virtual From Survivor0 To Survivor1 Eden Tenured Virtual Permanent Generation Runtime Constant Pool Field & Method Data Code Virtual Code Cache Native Compile Threads (1..N) Virtual PC Stack Native Stack -Xmx NrGCEvents
  • 35. © 2014 IBM Corporation IBM So where are now the data of an Object Heap ● Object HelloWorld ● Object SimpleDateFormat ● Object String ● Object LOGGER Method Area ● Class SimpleDateFormat ● … ● Class Logger ● … ● Class HelloWorld ● Method: sayHello() ● ... Native Area ● Parameter reference: “message” to String object ● Variable references ● “formatter” ● “today”
  • 36. © 2014 IBM Corporation37 IBM Compare Cobol to Java Develop a COBOL program  Cobol does not know complex DataTypes or Objects  Data Elements are usually shared, not hidden  The compile is usually done after coding (no online syntax checking)  Compiler perform less static tests  Debugging is done in Multiuser Environments Runtime Behaviour of Cobol  LE does not check wether the loaded program is corrupt  The runtime can not check whether the data is assigned correctly and Problems can arise  Handlers get control if something went wrong  Memory is defined upfront Develop a Java program  Data is structured in complex Objects  Variables are not shared, they are adressed by methods of the object  Compiles are executed everytime a class is saved (while ongoing syntax check is performed)  Compiler performs a lot of static testing  Debugging is usually done locally  Memory can NEVER be addressed directly Runtime Behaviour of Java  The JVM checks the bytecode after loading the class  Classes are checked during compilation and in Runtime data is only assigned if types match  Classes and methods can throw exceptions (also JNI) if a problem occurs  New Objects can be generated very dynamical
  • 37. © 2014 IBM Corporation38 IBM Update Behavior – “Java, why can't I just phase you in?” Update a COBOL Program in CICS  COBOL Program is compiled/linked into a PDSe that is concatinated into the RPL upfront the existing Load Library or replace the existing version  In CICS issue a NEWCOPY or PHASEIN to let CICS reload the Program from the Dataset  Use the new Program Update a Java Program in CICS  In Java you can't replace runtime code (except via JDWP)  Frameworks like OSGi enables the exchange of bundles  You need to decouple the application desing (using micro Services in OSGi or accept a small outage Problems with this Approach  Compatibility is a contract that is not checked until runtime  The connection is something the compiler is not aware of Problems with this Approach  The simple Phasein/Newcopy is not possible  A complex Build infrastructure is necessary  Only bundles/services, not classes can be “phased in”  A change in Application Development Architecture is necessary
  • 38. © 2014 IBM Corporation39 IBM Questions Tobias Leicher Client Technical Professional & zChampion – CICS & CICS Tools IBM Allee 1 D-71139 Ehningen Mobil: 0151 – 15 16 24 89 Mail: tobias.leicher@de.ibm.com Foto VIELEN DANK FÜR IHRE AUFMERKSAMKEIT.
  • 39. What’s next… More of my sessions #ASZ-3983: CICS Java Real-Life Projects, Featuring Datev #ASZ-3978: Why Is Java So Different?: A Session forCobol/PLI/AssemblerDevelopers #ASZ-5927: Meet the Experts of Generation z—Driving Innovation on the Mainframe More Cloud sessions #ASZ-2829: Liberté, Égalité, Fraternité—Viva the CICS and WebSphere Mini Revolution #ASZ-6481: Java and CICS—A Perfect Match #ASZ-1841: WebSphere Liberty Profile Support forJava Batch and the JSR-352 Specification, Featuring Sicoob Collect a z Passport stickerhere, and at… @IBM_CICS slideshare.net/IBM_CICSfacebook.com/IBMCICS ibm.com/cics WIN!
  • 40. Get a lightning start: Key InterConnect 2015 sessions #2829 Mon 2:00-3:00 Liberté, Égalité, Fraternité—Viva the CICS and WebSphere Mini Revolution #1670 Tue 3:30-4:30 IBM WebSphere Liberty z/OS Connect: A Technical Introduction #4032 Wed 9:30-10:30 Meet the Winners of IBM’s Mainframe Mobile App Throwdown 2014 #6482 Thu 11:00-11:50 What is the Mainframe Mobile App Throwdown and How Do I Register? Registernow at ibm.biz/mmathrowdown and submit yourapp by April 12th Mobilize yourmainframe in our fun app-building contest for z Systems clients & business partners! The Mainframe Mobile App Throwdown is back for 2015!
  • 41. Need expert help? 42 CICS Development Services, for worldwide services assistanceCICS Development Services, for worldwide services assistance Bringing CICS development expertise directly to your doorstep Email us CICSDTS@UK.IBM.COM Bringing CICS development expertise directly to your doorstep Email us CICSDTS@UK.IBM.COM Get a deep dive into your systems with a CICS health check Get a deep dive into your systems with a CICS health check Want to know more about CICS and Java? We offer tailored Java education Want to know more about CICS and Java? We offer tailored Java education Move forward with mobile with our customized mobile workshop Move forward with mobile with our customized mobile workshop Soar into the cloud with our tailored cloud workshop Soar into the cloud with our tailored cloud workshop Need to optimize your systems? Then ask about a performance optimization engagement Need to optimize your systems? Then ask about a performance optimization engagement Get the low down on performance with a CICS performance workshops Get the low down on performance with a CICS performance workshops Need to modernise your workload in CICS? Ask about a integration and connectivity engagement Need to modernise your workload in CICS? Ask about a integration and connectivity engagement Need some help upgrading to the latest release? Then ask about our upgrade workshop Need some help upgrading to the latest release? Then ask about our upgrade workshop Need to reduce cost by optimizing your systems? Then a performance optimization engagement may be for you Need to reduce cost by optimizing your systems? Then a performance optimization engagement may be for you Need something different? Then we can build a customized workshop, just for you! Need something different? Then we can build a customized workshop, just for you! Availability a concern? Then try our High Availability workshop Availability a concern? Then try our High Availability workshop Visit ibm.com/cics then click ‘Services’
  • 42. Thank You Your Feedback is Important! Access the InterConnect 2015 Conference CONNECT Attendee Portal to complete your session surveys from your smartphone, laptop or conference kiosk.
  • 43. Notices and Disclaimers Copyright © 2015 by International Business Machines Corporation (IBM). No part of this document may be reproduced or transmitted in any form without written permission from IBM. U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM. Information in these presentations (including information relating to products that have not yet been announced by IBM) has been reviewed for accuracy as of the date of initial publication and could include unintentional technical or typographical errors. IBM shall have no responsibility to update this information. THIS document is distributed "AS IS" without any warranty, either express or implied. In no event shall IBM be liable for any damage arising from the use of this information, including but not limited to, loss of data, business interruption, loss of profit or loss of opportunity. IBM products and services are warranted according to the terms and conditions of the agreements under which they are provided. Any statements regarding IBM's future direction, intent or product plans are subject to change or withdrawal without notice. Performance data contained herein was generally obtained in a controlled, isolated environments. Customer examples are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual performance, cost, savings or other results in other operating environments may vary. References in this document to IBM products, programs, or services does not imply that IBM intends to make such products, programs or services available in all countries in which IBM operates or does business. Workshops, sessions and associated materials may have been prepared by independent session speakers, and do not necessarily reflect the views of IBM. All materials and discussions are provided for informational purposes only, and are neither intended to, nor shall constitute legal or other guidance or advice to any individual participant or their specific situation. It is the customer’s responsibility to insure its own compliance with legal requirements and to obtain advice of competent legal counsel as to the identification and interpretation of any relevant laws and regulatory requirements that may affect the customer’s business and any actions the customer may need to take to comply with such laws. IBM does not provide legal advice or represent or warrant that its services or products will ensure that the customer is in compliance with any law.
  • 44. Notices and Disclaimers (con’t) Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products in connection with this publication and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products. IBM does not warrant the quality of any third-party products, or the ability of any such third-party products to interoperate with IBM’s products. IBM expressly disclaims all warranties, expressed or implied, including but not limited to, the implied warranties of merchantability and fitness for a particular purpose. The provision of the information contained herein is not intended to, and does not, grant any right or license under any IBM patents, copyrights, trademarks or other intellectual property right. • IBM, the IBM logo, ibm.com, Bluemix, Blueworks Live, CICS, Clearcase, DOORS®, Enterprise Document Management System™, Global Business Services ®, Global Technology Services ®, Information on Demand, ILOG, Maximo®, MQIntegrator®, MQSeries®, Netcool®, OMEGAMON, OpenPower, PureAnalytics™, PureApplication®, pureCluster™, PureCoverage®, PureData®, PureExperience®, PureFlex®, pureQuery®, pureScale®, PureSystems®, QRadar®, Rational®, Rhapsody®, SoDA, SPSS, StoredIQ, Tivoli®, Trusteer®, urban{code}®, Watson, WebSphere®, Worklight®, X-Force® and System z® Z/OS, are trademarks of International Business Machines Corporation, registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at: www.ibm.com/legal/copytrade.shtml.

Notas do Editor

  1. A class may be declared with the modifier public, in which case that class is visible to all classes everywhere. If a class has no modifier (the default, also known as package-private), it is visible only within its own package (packages are named groups of related classes — you will learn about them in a later lesson.) At the member level, you can also use the public modifier or no modifier (package-private) just as with top-level classes, and with the same meaning. For members, there are two additional access modifiers: private and protected. The private modifier specifies that the member can only be accessed in its own class. The protected modifier specifies that the member can only be accessed within its own package (as with package-private) and, in addition, by a subclass of its class in another package.
  2. Insert your twitter handle or email address at the top of this slide Input your other sessions (up to three) underneath the first title ‘more of my sessions’ Insert sessions of similar topic area under ‘More xxxx sessions’ use the agenda tool https://ibm.biz/BdECfA to find more sessions <number>
  3. <number> The Mainframe Mobile App Throwdown is back for 2015. Register at ibm.biz/mmathrowdown. Entries must be submitted by April 12th Get access to IBM zMobile experts and getting started product information for building mobile apps. No need to submit code. Just create a mobile app prototype and submit slides describing your entry and short video of the app in action. See the sessions at InterConnect 2015 that can help you get more info on the throwdown and get registered. Client and BP winners will be announced at Edge2015 (May 11 -15, in Las Vegas), and will receive IBM design time. Eligible clients can also win passes to Edge2015.
  4. <number>