SlideShare a Scribd company logo
1 of 79
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 0
S424. Mainframe Service
Architecture and Enablement
Best and Worst Practices
• Michael Erichsen,
Chief Consultant, CSC
• Stockholm, 8 June 2011
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 1
Main points
• Why are we doing this?
– We have done integration projects in decades
– Service orientation can be a qualitative improvement
– The new aspect is open, standardized, loosely coupled interfaces
• Best practices are mostly found in the technicalities of service
enablement
– Case studies of seven different ways of doing it
• Best and worst practices are found in the service modelling and in the
implementation of models and architectures
– Some principles and patterns based on best practices
– Worst practices illustrated by ”anti-patterns” and research in what can go wrong
and how
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 2
A Conceptual, Technical View of Service Enablement
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 3
A Conceptual, Modelling View of Service Enablement
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 4
To Begin with the
Conclusion
SOA Mainframe Practices – Best and Worst
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 5
Why are we doing this?
Which problems are we trying to solve?
• The world is fast and messy
• Businesses and authorities need to
adapt very quickly to survive
• IT systems are generally
heterogeneous
• It is a mess - and it will remain so
• Service interfaces hope to remove
some of the mess – but also
introduce new kinds of mess
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 6
Reuse?
Oh no, not again!
• Software reuse is the process of
creating software systems from
existing software rather than
building software systems from
scratch
• First proposed in 1968
• Four dimensions:
– Abstraction
– Selection
• Classification
• Retrieval
• Exposition
– Specialization
– Integration
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 7
Reuse?
Promises, promises, promises…
• Over time
– Component Libraries with automated
customization
– Cut and paste of COBOL code
– Application Generators
– Object orientation
– Frameworks
– Service interfaces
• Reuse is not a technology, but a
culture
– Why not reward for reuse and
reusability?
• Otherwise a vendor might earn more
money by not reusing
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 8
Overarchitecting and Overengineering
• You need an enterprise
architecture, an enterprise data
model and good business process
descriptions to get the full business
and economic advantage of such a
project
• Reuse depends on a higher level
of abstraction
– But too many levels of abstraction
could mean that you can’t use it at all
in the first place
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 9
Extending or replacing Mainframe systems?
• The mainframe platform is
continuously under siege
– IBM's monopoly makes it difficult to
forge alliances
– The only practical solution to the age
problems seems to be offshoring
– The best way to protect the big
investments in mainframe systems is
to open them as equal partners in
modern architectures
• Not COBOL or Java/.Net, but strategy
and interfaces
– Using zSeries for SOA Infrastructure
interesting, but not unproblematic
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 10
The real economy of zIIP’s and zAAP's
• MIPS come cheaper, but they are
certainly not free
– Processor costs
– Other operation costs
• Investment in real storage
– Much more expensive than other
memory hardware
– Java Virtual Machines need very
large heap sizes for many
applications, including SOA
infrastructure like ESB’s and
BPMS’es
– Memory overcommit perhaps only
1,5 on new workloads?
• Calculate economy very carefully
to compare with other platforms
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 11
Lewis et al, SEI-CMM:
SMART: The Service-
Oriented Migration and
Reuse Technique
SOA Mainframe Practices – Best and Worst
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 12
SMART: Defining a service
• A service is a coarse-grained, discoverable, and self-contained
software entity that interacts with applications and other services through
a loosely coupled, often asynchronous, message-based communication
model
– Quoted from Brown et al, Rational: Using Service-Oriented Architecture and
Component-Based Development to Build Web Service Applications
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 13
SMART: Defining a SOA
– A SOA is a collection of services with well-defined interfaces and a shared
communications model. A system or application is designed and implemented
to make use of these services
• 1. Service interfaces are added to existing enterprise information systems for
applications to use, while these systems remain unchanged for internal users
• 2. Service-specific code is written to provide functionality for applications to use
• 3. Services written by third parties and deployed elsewhere are used within applications.
– SOAs also offer the promise of enabling existing legacy systems to
expose their functionality as services, without making significant changes
to the legacy systems themselves
• This is one of the most attractive features of SOA to many organizations that do
not wish – and cannot afford – to walk away from their investment in legacy
systems or redevelop the same capabilities as services from scratch
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 14
Technical Best Practices:
Seven Case Studies
SOA Mainframe Practices – Best and Worst
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 15
Seven Case Studies
1. A Tactical Service Enablement
2. A Tactical Service Enablement Evolving into Strategy
3. COBOL IMS in a large Scale SOA Environment
4. International, multilateral, heterogeneous and data replicating
5. XML Services over MQ
6. WebSphere ESB on z
7. Service Enablement of a Legacy Application Generator System
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 16
Case #1: A Tactical Service Enablement
• Back end system
– VSE, CICS, a 4GL and a non-relational data base
• The business need
– Update requests from business partners used in nightly batch runs
• No requirement for online updates of the mainframe system
• Web Services a mandatory protocol for communication
– Security required using TLS and X.509 certificates
– Not a general interface to the entire system, but a tactical solution for a single
demand
• Technical challenges
• VSE native SOAP and XML features did not really work for us
• No cryptographic hardware on the VSE box
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 17
Case #1: The Solution
The easiest solution was to
use a WebSphere
Application Server on
Windows
Daily updating Web Service
requests from partners
Weekly master data extracts
from mainframe for each
partner
Quarterly and semi-annually
control data extracted by
mainframe
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 18
Case #2: A Tactical Service Enablement
Evolving into a Strategic Solution after a successful
Proof-of-Concept
• Back end system
– An ”i-Case” tool generating COBOL in CICS at the back end and a fat Java
client at the front end with required runtimes and a proprietary communication
layer
– A generic callable interface to the application was already in place
• The business need
– Online updates from business partners’ own systems
– Web Services a mandatory protocol
• Technical challenges
– Operation and field names had to be mediated between existing WSDL-
standard and COBOL restrictions
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 19
Case #2: Technical
Solution
CICS Web Support (now superseded
by Web Services for CICS)
An existing COBOL adapter to the
case tool generated code had to be
modified to a dynamic wrapper
Mapping definitions hand crafted
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 20
Case #2: A Proof of Concept
• A Proof of Concept was designed to explore possible problems like how
does
– Complexity and verbosity of the mandatory XML dialect fit with the tools
available?
– Internal security fit with this channel of connections?
– Digital certificates work in real life in this configuration?
– Service Enablement tools fit with exiting interfaces?
– Data from different parts of the back end system match to build a meaningful
response?
• The customer provided the XSD-definitions
• CSC built the adapter modules based on these and on the existing
structures in the legacy system
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 21
Case #2: Interface Design
• Discrepancies between XML data concepts and COBOL data concepts
had to be solved
• In real life it seems that no interface contract is perfect
• Data was defined in DB2, in COBOL, and in XML
• Optional and Variable Fields (0..1) (0..n) (0..*)
• Strings
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 22
Case #2: COBOL and XML Definitions
Type COBOL XML
String PIC X() String
Float COMP-1 Float
Double COMP-2 Double
Packed decimal COMP-3 Decimal
Binary COMP-4 Long, short, int
Date PIC X(10) in the application,
Content: 20061016
2000-01-12
2000-01-12T12:13:14Z
2000-03-04T23:00:00+03:00
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 23
Case #2: COBOL and XML Field Examples
Field COBOL XML
a 9(8) Date
b S9(5) unsignedInt totalDigits value="5"
c S9(11) COMP-3 Decimal totalDigits value="11"
fractionDigits value="2"
d S9(10) Double maxInclusive value="9999999999"
e x(30) String maxLength value="30"
f S9(8) unsignedInt totalDigits value="8"
g S9(4) String pattern value="[0-9]{4}"
h S9(10) Double maxInclusive value="9999999999"
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 24
Case #2 Version 2:
Back End Modernized,
Interface Simplified
Ongoing project to migrate case
tool to runtime-free COBOL and
Java to be maintained in Rational
Developer for z (RDz)
Back end web service interface
created bottom-up from
generated COBOL code using
RDz
Proprietary client communication
code changed to Web Services
for CICS
Front end client communication
using Web Services over HTTPS
with generated communication
code adapted to the WS4C
format
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 25
Case #3: COBOL IMS in a large scale
SOA Environment
– Back end system
• Large IMS COBOL system
– The business need
• Modernizing the entire heterogeneous enterprise portfolio based on SOA integration and
supporting a large number of protocols and formats
• Service enabling IMS systems with DB2 data bases
– Technical challenges
• Reusing existing web enablement skills and technology
• The new enterprise architecture regards all components on all platforms as both service
providers and service providers
– Must support both ingoing and outgoing Web Services requests
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 26
Case #3: The Solution
Simple interface to IMS
applications
Reusing large application
”motors”
OTMA (Open Transaction
Manager Access)
IMS Connect
WebSphere Application
Server with the AXIS
framework
Also coding new, outgoing
Web Services requests from
IMS COBOL applications
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 27
Case #3: The challenges
– There are limits on the protocol of 400.000-500.000 bytes
– Legacy applications used screen oriented logic
• Handled by adding new logic on top of legacy applications
– Existing web enablement coded in Visual Age for Java using the now obsolete
Record Framework
– Advantages
• The continuing existence of many skilled programmers and designers with deep
business knowledge
• Experience from an existing, well performing, and very successful web interface to the
IMS and DB2 systems
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 28
Case #4: International, Multilateral,
Heterogeneous and Data Replicating
• Back end system
– An IMS DB2 MQ system
• The business need
– International, multilateral exchange of data, going from data base replication to
a service oriented architecture
• Technical challenges
– Many different data types with big variances
– Large binary data items
– Consistency checking between central and national data bases
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 29
Case #4: The Original
Solution
A Web Services Gateway
implemented as a simple
servlet on WebSphere
Application Server on z
MQ communication with IMS
COBOL programs handling
XML and Unicode, storing
data in DB2
Consistency checks became
too complicated and too
difficult to make well
performing
Local data base solution
superseded by direct service
requests to the central
system
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 30
Case #4: Taming the CPU Hog
• Technical Challenges
– IMS COBOL XML Unicode program was originally coded only for functionality
using XML PARSE, not for performance
– They used vast amounts of CPU
– A code review did not show anything unsound
– Transactions were profiled using Compuware STROBE to split CPU-usage into
handling of MQ, XML, Unicode and DB2
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 31
Case #4: Untuned system
0.50 CPU-second per transaction
MODULE
NAME
SECTION
NAME PROCEDURE/FUNCTION NAME CPU TIME Interpretation
.LELIB CEEBINIT CEEVGTSI GET A STACK INCREMENT 51.91
Runtime Storage
allocation
.COBLIB IGZCPAC
IGZCHXP COBOL LIBRARY
SUBROUTIN 31.69 XML
.LELIB CEEBINIT
CEEVOGTS XTND USR STK/DSA
OPLINK 7.10
Runtime Storage
allocation
CUNMUNI 1.64 Unicode
.SVC SVC 228 USER SVC 1.64 IMS
.LELIB CEEBINIT
CEEVOGSX XTND USR STK/DSA
OPLINK 1.09
Runtime Storage
allocation
RPS000 .55 The Program
RPS000 .55 The Program
.SVC SVC 120 GETMAIN/FREEMAIN .55
System Storage
allocation
.SVC SVC 013 TERMINATION .55 System
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 32
Case #4: COBOL Working Storage Reduced
1M to 100K
0.06 CPU-second per transaction
MODULE
NAME
SECTION
NAME PROCEDURE/FUNCTION NAME
CPU
TIME Interpretation
.LELIB CEEBINIT
CEEVGTSI GET A STACK
INCREMENT 36.17
Runtime Storage
allocation
.COBLIB IGZCPAC
IGZCHXP COBOL LIBRARY
SUBROUTINE 31.91 XML
.LELIB CEEBINIT
CEEVOGTS XTND USR STK/DSA
OPLINK 10.64
Runtime Storage
allocation
.XES IXLR1ALR ALTER W/RECORD REQUEST 4.26 SysPlex Services (DB2)
.SVC SVC 120 GETMAIN/FREEMAIN 4.26
System Storage
allocation
.SVC SVC 013 TERMINATION 2.13 System
.NUCLEUS CSVEXPR CONTENTS SUPERVISION 2.13 System
.LELIB CEEBINIT
CEEVOGSX XTND USR STK/DSA
OPLINK 2.13
Runtime Storage
allocation
.DB2 DSNIDM DATA MANAGEMENT DRIVER 2.13 DB2
.COBLIB IGZCPAC IGZCVMO VARIABLE LENGTH MOVE 2.13 COBOL Move
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 33
Case #4: Further tuning of LE/370
Measurements from the LE/370 Storage Report
Before After
Initial stack size: 131072 1048576
Increment stack size: 131072 102400
Largest used by any thread: 1010896 1007944
Number of segments
allocated: 3 1
Initial heap size: 32768 921600
Increment heap size: 32768 131072
Total heap storage used
(sugg. initial size): 818184 818152
Number of segments
allocated: 2 1
Initial anyheap size: 16384 32768
Increment anyheap size: 8192 8192
Total heap storage used
(sugg. initial size): 25648 26456
Number of segments
allocated: 2 1
• The important parameter is
“Number of segments allocated:”,
which should be 0 or 1
• Used parameters after tuning:
•ALL31=(ON),
STACK=(1M,100K,ANYWHERE,
KEEP,512K,128K),
HEAP=(900K,128K,ANYWHERE,
KEEP,512K,128K),
ANYHEAP=(32K,8K,ANYWHERE,
KEEP),
STORAGE=(NONE,NONE,NONE,
0K)
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 34
Case #4: Language Environment Parameters Tuned
0,03 CPU-second per transaction
MODULE
NAME
SECTION
NAME PROCEDURE/FUNCTION NAME CPU TIME Interpretation
.COBLIB IGZCPAC
IGZCHXP COBOL LIBRARY
SUBROUTINE 46.15 XML
.COMMON .COMMONX EXTENDED COMMON AREA 7.69 System
RPS000 .MQSRIES
CSQQSTUB QUIESCE AFT SYS LOG
ERR 5.13 MQ
CUNMUNI 00D1C0 5.13 Unicode
.SVC SVC 013 TERMINATION 5.13 System
.DB2 DSNXGRDS RDS ACCESS MODULE GENER 5.13 DB2
.DB2 DSNIDM DATA MANAGEMENT DRIVER 5.13 DB2
.DB2 DSNGEDM DATA MGT DBD/SKCT RTNS 5.13 DB2
RPS000 RPS000 00B380 2.56 The Program
.SVC SVC 228 USER SVC 2.56 System
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 35
Case #5: XML services over MQ
• Back end system
– A merger has created a heterogeneous environment with CICS systems, IMS
systems and Wintel systems
• The business need
– A very big SOA program aims at having a new midrange industry system as the
front end and gradually replacing the legacy systems
– Service enabling CICS systems
• Technical challenges
– Generic callable interfaces to CICS and IMS systems are already in place
– MQ has been the integration channel for CICS and IMS for a number of years
– The enterprise service bus is implemented as Microsoft Biztalk
• Tools do not support SOAP over MQ, but SOAP over HTTP and XML over MQ
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 36
Case #5: The Solution
A modified Web Services for
CICS implementation
Reuse existing Biztalk tooling
Use RDz tooling to generate
WSBIND files for the existing
callable interface
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 37
Case #5: Pipeline Config File
<?xml version="1.0" encoding="EBCDIC-CP-DK"?>
<provider_pipeline xmlns="http://www.ibm.com/software/htp/cics/pipeline"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.ibm.com/software/htp/cics/pipeline
provider.xsd ">
<service>
<service_handler_list>
<handler>
<program>CSCHDL01</program>
<handler_parameter_list />
</handler>
</service_handler_list>
<terminal_handler>
<cics_soap_1.1_handler/>
</terminal_handler>
</service>
<apphandler>DFHPITP</apphandler>
</provider_pipeline>
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 38
Case #5: Dummy SOAP Header Handler Program
GET CONTAINER(PI-DFHFUNCTION)
IF PI-RECEIVE-REQUEST THEN
GET CONTAINER(PI-DFHREQUEST)
Remove existing <?XML tag
Add a dummy SOAP envelope around the payload
PUT CONTAINER(PI-DFHREQUEST)
DELETE CONTAINER(PI-DFHRESPONSE)
ELSE IF PI-SEND-RESPONSE THEN
GET CONTAINER(PI-DFHRESPONSE)
add <?XML tag
Test each tag in Response-Data to find if it starts with <soap or
</soap and then remove
PUT CONTAINER(PI-DFHRESPONSE)
Move "text/xml" to MEDIATYPE-DATA
PUT CONTAINER('DFHMEDIATYPE')
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 39
Case #6: WebSphere ESB on z
• Back end system
– An IMS COBOL MQ system
• The business need
– Integration between applications on z, Oracle/Unix and Wintel using Web
Services and MQ
• Technical challenges
– The need for real storage is much larger for JVM’s than for traditional workload
– Recycling JVM’s costs hundreds of MIPS in quite extended periods
• Even though most of it is offloaded to z**P processors
• Z**P processors are not free either
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 40
Case #6: WebSphere
ESB on z Challenges
After a long quiet night the
first transactions in the
morning could take minutes
causing client timeouts
Difficult to monitor –
compared to CICS, IMS, MQ
etc.
Workload Manager policies
quite complicated
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 41
Case #7: Service Enablement of a Legacy
Application Generator System
• Back end system
– CICS, DB2, originally coded in the 4GL CSP
• The business need
– A 20 year old legacy application still represents the core of the business and a
long-term investment
– Back office and staff can use web and cloud applications, which need access to
the core system and its data, both inquiries and updates
• Technical challenges
– The application was coded in CSP and still has a 3270 user interface
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 42
Case #7: The Solution
Web Services for CICS
developed using EGL tooling
in Rational Business
Developer (RBD) and RDz
The first service was used by
a web form
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 43
Case #7: The Solution
Web Services for CICS
developed using EGL tooling
in Rational Business
Developer (RBD) and RDz
The first service was used by
a web form
The second service was
used by a Salesforce cloud
application
The integration from
Salesforce was done using
a Cast Iron SOA appliance
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 44
Case #7: The Solution
• The first service with a single operation just updated a single field in the
core data base
– The front end is a simple web form, which calls a web service
– Very easy to implement – took 20 minutes to code and generate
• The second service with half a dozen operations ran into all kinds of
technical problems
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 45
Case #7: Modelling the Service
• Describe the existing user interaction with the 3270 application
• Model this as a business process
• Describe the operations needed in the new service to support this
process
• Define the programs needed to implement the operations and the
interface as message structures
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 46
Case #7: Restrictions when developing
Web Services for CICS
• If you need to have a structure as a response from an EGL Web Service
for CICS the request must be the same structure (Input == output)
• A configuration file called the “deployment descriptor” must not have the
same name as any EGL program
– RBD will quietly generate a COBOL program with the name of the deployment
descriptor to overwrite the legitimate program just in case you also wanted to
have an outgoing web services request
• The predecessors to EGL were COBOL-like in their structures and
culture, while EGL is java-like in its structures and culture
– This difference can lead to great difficulties when service enabling legacy
programs
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 47
Case #7: Restrictions when developing
Web Services for CICS
• Do you have arrays in the externally exposed structure definition in the
service programs?
– Then the structure needs to be an unstructured record to have arrays generated
correctly into the WSDL document
– The field definitions must not be preceded by level numbers
• Otherwise the array will be “flattened” with all occurrences of each subfield
• {a1 a2 a3 b1 b2 b3 c1 c2 c3} in stead of {a1 b1 c1 a2 b2 c2 a3 b3 c3}
– Note that unstructured records are dynamic
• If you do not allocate them yourself they will be empty or even null
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 48
Case #7: Restrictions when developing
Web Services for CICS
• A static array like this:
01 MYARRAY ARRAYRECORD[10];
Is allocated in storage like a COBOL program would
• A dynamic array, distinguished by not having level numbers:
myArray arrayRecord[10];
Is not allocated, but must be explicitly defined to avoid null pointers
• EGL generation for COBOL does not support multidimensional, dynamic
arrays
• All this is not considered an error, but a design, by IBM, even
though it is deeply unintuitive for a legacy programmer
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 49
Summing up the case studies
• Mainframe service enablement is probably our most important area of
mainframe application development in recent years
• There are many ways to service enable an existing application
• Use your existing skills, tools and methodologies where you can
• Make the service interface completely hide what is behind it
• Remember:
– To be reusable it has to usable in the first place!
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 50
Best and Worst Practices
in Service Modelling and
Architecture
SOA Mainframe Practices – Best and Worst
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 51
Best and Worst
Practices
•Mark Skilton, CSC: Three simple
rules for definition what is a Service
are
•Forrester: North American SOA
Systems Integrators
•Gartner: The 13 least wanted
•Ang, Cherbakov & Ibrahim, IBM:
SOA Antipatterns
•Tarak Modi, Unisys: SOA
Antipatterns
•IBM on SOA Governance
Nice to have research to quote
Rather than admitting your own
mistakes
"The secret to creativity is knowing
how to hide your sources.“
(Albert Einstein)
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 52
Mark Skilton, CSC:
Service Oriented
Architecture
SOA Mainframe Practices – Best and Worst
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 53
Mark Skilton, CSC: Service Oriented Architecture
• Three simple rules for definition
what a Service is
• Five key areas to consider when
looking at the granularity of
business and IT services
• Three key operating principles of
SOA/POA underpin these choices
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 54
Mark Skilton, CSC:
Three simple rules for definition what a Service is
• It is strategic
– The capability is critical to your organisation
• Composable
– The service can be run in its own and be combined with other services to build
new services not originally specified
• Rule of Three
– If an interface and/or message is used in more than three systems
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 55
Mark Skilton, CSC:
Five key areas to Consider when looking at the
Granularity of Business and IT Services
• Performance and size
– Neither too big nor too small
• Transactionality and state
– This audience should know all about
that!
• Business suitability
– One operation for one business step
• Safe operations
– Read only or reentrant
• Idempotency of operations
– Can be called again without
changing the result
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 56
Mark Skilton, CSC:
Three key operating principles of SOA/POA
underpin these choices
• Process Integrity
– Active
– Safe
– Idempotent
• Data Integrity
– Transactionality and states
– Data Synchronisation
– Logic
• Security Integrity
– Security policies, processes and
technologies
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 57
Forrester:
North American SOA
Systems Integrators
SOA Mainframe Practices – Best and Worst
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 58
Forrester: North American SOA Systems Integrators
• In a typical project that uses SOA strategically, there are typically five
steps that organizations need to follow to successfully complete the
project
1. Develop a future state for the business to evolve toward
2. Map existing business services to current business processes
3. Map business services to IT solutions
4. Map IT assets to IT solutions
5. Design SOA governance and infrastructure
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 59
Gartner:
The 13 Least Wanted
SOA Mainframe Practices – Best and Worst
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 60
Gartner: The Thirteen Least Wanted
1. Starting too big
2. Starting in the wrong place
3. Leaving SOA to the "techies“
4. Underestimating the technical
(and infrastructure) issues
5. Assuming that everyone thinks
like you
6. Selling SOA before you're ready
7. Choosing anarchy or
dictatorship as leadership styles
8. Excessive centralization
9. Irrational SOA exuberance
10. Forgetting to consider the data
11. "Not invented here" syndrome
12. Allowing nonshareable services
to proliferate
13. "I already have 200 services,
now what?”
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 61
Ang, Cherbakov &
Ibrahim, IBM:
SOA Antipatterns
SOA Mainframe Practices – Best and Worst
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 62
Patterns and Anti-Patterns
• Patterns are a popular way of
illustrating best practices
– SOA Patterns are used very much in
discussions and literature
• Anti-patterns are being used more
and more to slow down the hype
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 63
Ang, Cherbakov & Ibrahim, IBM:
SOA Antipatterns (1)
• Adoption
– Technology Bandwagon
– So, What’s New?
– The Big Bang
• Design
– Blob
– Poltergeists
• Structure
– Spaghetti code
– Stovepipe systems
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 64
Ang, Cherbakov & Ibrahim, IBM:
SOA Antipatterns (2)
• Technology
– Wolf ticket
– Continuous obsolescence
• Reuse
– Cut-and-paste
– Golden hammer
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 65
Ang, Cherbakov & Ibrahim, IBM:
SOA Antipatterns (3)
• Identification & Design
– Web service = SOA
– The Silo Approach
– Misbehaving Registries
• Realization
– Chatty Services
– Point-to-point Services
– Component-less Services
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 66
Tarak Modi, Unisys:
SOA Antipatterns
SOA Mainframe Practices – Best and Worst
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 67
Tarak Modi, Unisys: SOA Antipatterns (1)
• The "Same Old, Same Old"
Phenomenon
• The "Big Bang" Approach
• Service Fiefdoms
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 68
Tarak Modi, Unisys: SOA Antipatterns (2)
• Technophilia
• Bloated Services
• Anorexic Services
• Hyper Brokerage
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 69
IBM on SOA Governance
SOA Mainframe Practices – Best and Worst
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 70
IBM on SOA Governance
• "Wild West" or “Rogue” Services
– Extremely difficult to gain control over
• "Duplicated” Services
– Superficially effective but limited real
savings
• "Shelfware” Services
– A waste of resource, won’t deliver
benefits
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 71
IBM on SOA Governance
• Unsecure Services
– Limits service use and business
opportunities
• Rigid Services
– Roadblock to agile, flexible business
processes
• Ineffective Service Management
– Services must be managed as
resources
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 72
A few more Issues
SOA Mainframe Practices – Best and Worst
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 73
Carsten Svensson, EEI: The Cost of SOA
• Cost of SOA =
(Cost of Data Complexity +
Cost of Service Complexity +
Cost of Process Complexity +
Enabling Technology Solution)
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 74
Performance
0
500
1000
1500
2000
2500
1 3 5 7 9 11 13 15 17 19 21 23
Online
Self-service
Online & Batch
The daily CPU consumption pattern
will change
If you only run an online workload
If you run online and a lot of batch
If you run in a service enabled
environment, where services are
used by a self service web application
If you rely on a batch window it might
collide with the self service window
after dinner, when the kids are in bed
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 75
The culture clash between Java and COBOL
• COBOL was born to optimize
administrative computing
– Java and XML was born for dynamic
interfaces
– It takes a lot of sweat to reconcile
them
• Data in COBOL working storage
allocated implicitly by the compiler
– Data in Java must be allocated
explicitly by the programmer
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 76
To Summarize
• There are many ways to integrate mainframe systems into service
oriented architectures
– A lot of best practices are to be found in the technical solutions
• You need a close cooperation between business stakeholders, architects,
developers and technologists to make it work
– The worst practices are found when application, design and architecture on one
hand does not take the requirements of the technologies and the infrastructure
seriously
• All the mistakes have already been made and are extensively
documented
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 77
THANK YOU
SOA Mainframe Practices – Best and Worst
CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 78

More Related Content

Viewers also liked

Java is a new language on the mainframe
Java is a new language on the mainframeJava is a new language on the mainframe
Java is a new language on the mainframeMichael Erichsen
 
Computer concept by tonmoy
Computer concept by tonmoyComputer concept by tonmoy
Computer concept by tonmoytonmoyts
 
Evalotta lamm
Evalotta lammEvalotta lamm
Evalotta lammClayTrain
 
Wealth-club Training
Wealth-club TrainingWealth-club Training
Wealth-club TrainingWealth Club
 
C V Mr. Chandra Prakash Arela
C V Mr. Chandra Prakash Arela C V Mr. Chandra Prakash Arela
C V Mr. Chandra Prakash Arela chandra arela
 
Pulso de Mercado de Activotrade - 13 de diciembre
Pulso de Mercado de Activotrade - 13 de diciembrePulso de Mercado de Activotrade - 13 de diciembre
Pulso de Mercado de Activotrade - 13 de diciembreSalainversion
 
¿Cómo partir un emprendimiento web sin $ ni programador?
¿Cómo partir un emprendimiento web sin $ ni programador?¿Cómo partir un emprendimiento web sin $ ni programador?
¿Cómo partir un emprendimiento web sin $ ni programador?Tadashi Takaoka Caqueo
 
Tecnologia del concreto
Tecnologia del concretoTecnologia del concreto
Tecnologia del concretoestructura
 
Une Balade à Vélo communiqué de presse 2014
Une Balade à Vélo communiqué de presse 2014Une Balade à Vélo communiqué de presse 2014
Une Balade à Vélo communiqué de presse 2014034479El
 
Analyse d'un WebShell trouvé sur un serveur Web
Analyse d'un WebShell trouvé sur un serveur WebAnalyse d'un WebShell trouvé sur un serveur Web
Analyse d'un WebShell trouvé sur un serveur WebBa-Consultants
 
Jugement appel TA Marseille Vitrolles
Jugement appel TA Marseille VitrollesJugement appel TA Marseille Vitrolles
Jugement appel TA Marseille VitrollesNicolas Botte
 
www.iguassubrasil.com
www.iguassubrasil.comwww.iguassubrasil.com
www.iguassubrasil.comguestea7511c
 
Des colonies aux Etats indépendants
Des colonies aux Etats indépendantsDes colonies aux Etats indépendants
Des colonies aux Etats indépendantsmlaugel
 
DescripcióN General De La Tierra
DescripcióN General De La TierraDescripcióN General De La Tierra
DescripcióN General De La Tierraguest11f915
 
Mutualité en chiffres 2012
Mutualité en chiffres 2012Mutualité en chiffres 2012
Mutualité en chiffres 2012Philippe Rémond
 

Viewers also liked (20)

Java is a new language on the mainframe
Java is a new language on the mainframeJava is a new language on the mainframe
Java is a new language on the mainframe
 
A002 200 yearsofit
A002 200 yearsofitA002 200 yearsofit
A002 200 yearsofit
 
Computer concept by tonmoy
Computer concept by tonmoyComputer concept by tonmoy
Computer concept by tonmoy
 
Final ppp
Final pppFinal ppp
Final ppp
 
Evalotta lamm
Evalotta lammEvalotta lamm
Evalotta lamm
 
Wealth-club Training
Wealth-club TrainingWealth-club Training
Wealth-club Training
 
C V Mr. Chandra Prakash Arela
C V Mr. Chandra Prakash Arela C V Mr. Chandra Prakash Arela
C V Mr. Chandra Prakash Arela
 
Sepsis Guidelines 2016-2017
Sepsis Guidelines 2016-2017Sepsis Guidelines 2016-2017
Sepsis Guidelines 2016-2017
 
Pulso de Mercado de Activotrade - 13 de diciembre
Pulso de Mercado de Activotrade - 13 de diciembrePulso de Mercado de Activotrade - 13 de diciembre
Pulso de Mercado de Activotrade - 13 de diciembre
 
¿Cómo partir un emprendimiento web sin $ ni programador?
¿Cómo partir un emprendimiento web sin $ ni programador?¿Cómo partir un emprendimiento web sin $ ni programador?
¿Cómo partir un emprendimiento web sin $ ni programador?
 
Tecnologia del concreto
Tecnologia del concretoTecnologia del concreto
Tecnologia del concreto
 
Une Balade à Vélo communiqué de presse 2014
Une Balade à Vélo communiqué de presse 2014Une Balade à Vélo communiqué de presse 2014
Une Balade à Vélo communiqué de presse 2014
 
Analyse d'un WebShell trouvé sur un serveur Web
Analyse d'un WebShell trouvé sur un serveur WebAnalyse d'un WebShell trouvé sur un serveur Web
Analyse d'un WebShell trouvé sur un serveur Web
 
Jugement appel TA Marseille Vitrolles
Jugement appel TA Marseille VitrollesJugement appel TA Marseille Vitrolles
Jugement appel TA Marseille Vitrolles
 
AF-PAK: El arco de la crisis
AF-PAK: El arco de la crisisAF-PAK: El arco de la crisis
AF-PAK: El arco de la crisis
 
www.iguassubrasil.com
www.iguassubrasil.comwww.iguassubrasil.com
www.iguassubrasil.com
 
Des colonies aux Etats indépendants
Des colonies aux Etats indépendantsDes colonies aux Etats indépendants
Des colonies aux Etats indépendants
 
CAN
CANCAN
CAN
 
DescripcióN General De La Tierra
DescripcióN General De La TierraDescripcióN General De La Tierra
DescripcióN General De La Tierra
 
Mutualité en chiffres 2012
Mutualité en chiffres 2012Mutualité en chiffres 2012
Mutualité en chiffres 2012
 

Similar to SOA Mainframe Service Architecture and Enablement Practices Best and Worst Practices

Better application architecture with #microservices and #BPM (as APaaS)
Better application architecture with #microservices and #BPM (as APaaS)Better application architecture with #microservices and #BPM (as APaaS)
Better application architecture with #microservices and #BPM (as APaaS)Alexander SAMARIN
 
170215 msa intro
170215 msa intro170215 msa intro
170215 msa introSonic leigh
 
MuleSoft Manchester Meetup #4 slides 11th February 2021
MuleSoft Manchester Meetup #4 slides 11th February 2021MuleSoft Manchester Meetup #4 slides 11th February 2021
MuleSoft Manchester Meetup #4 slides 11th February 2021Ieva Navickaite
 
WebSphere Message Broker Application Development Training
WebSphere Message Broker Application Development TrainingWebSphere Message Broker Application Development Training
WebSphere Message Broker Application Development TrainingVijaya Raghava Vuligundam
 
Confluent Partner Tech Talk with QLIK
Confluent Partner Tech Talk with QLIKConfluent Partner Tech Talk with QLIK
Confluent Partner Tech Talk with QLIKconfluent
 
API-driven Legacy Migration: Results from Project Winterfell
API-driven Legacy Migration: Results from Project WinterfellAPI-driven Legacy Migration: Results from Project Winterfell
API-driven Legacy Migration: Results from Project WinterfellKeith McFarlane
 
Software Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableSoftware Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableComsysto Reply GmbH
 
Extending and improving bps romania 30th of nov 2010
Extending and improving bps   romania 30th of nov 2010Extending and improving bps   romania 30th of nov 2010
Extending and improving bps romania 30th of nov 2010Doina Draganescu
 
[WSO2Con EU 2017] Building Next Generation Banking Middleware at ING: The Rol...
[WSO2Con EU 2017] Building Next Generation Banking Middleware at ING: The Rol...[WSO2Con EU 2017] Building Next Generation Banking Middleware at ING: The Rol...
[WSO2Con EU 2017] Building Next Generation Banking Middleware at ING: The Rol...WSO2
 
Do I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptxDo I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptxPINGXIONG3
 
Toyota Financial Services Digital Transformation - Think 2019
Toyota Financial Services Digital Transformation - Think 2019Toyota Financial Services Digital Transformation - Think 2019
Toyota Financial Services Digital Transformation - Think 2019Slobodan Sipcic
 
Creating a Centralized Consumer Profile Management Service with WebSphere Dat...
Creating a Centralized Consumer Profile Management Service with WebSphere Dat...Creating a Centralized Consumer Profile Management Service with WebSphere Dat...
Creating a Centralized Consumer Profile Management Service with WebSphere Dat...Prolifics
 
Confluent Partner Tech Talk with SVA
Confluent Partner Tech Talk with SVAConfluent Partner Tech Talk with SVA
Confluent Partner Tech Talk with SVAconfluent
 
Mass Scale Networking
Mass Scale NetworkingMass Scale Networking
Mass Scale NetworkingSteve Iatrou
 
Implementation of OSS/BSS Solution in IoT Ecosystem
Implementation of OSS/BSS Solution in IoT EcosystemImplementation of OSS/BSS Solution in IoT Ecosystem
Implementation of OSS/BSS Solution in IoT EcosystemVishal Kumar
 
Chapter 10 System Architecture.Information Technology Project Management pptx
Chapter 10 System Architecture.Information Technology Project Management pptxChapter 10 System Architecture.Information Technology Project Management pptx
Chapter 10 System Architecture.Information Technology Project Management pptxAxmedMaxamuudYoonis
 

Similar to SOA Mainframe Service Architecture and Enablement Practices Best and Worst Practices (20)

Better application architecture with #microservices and #BPM (as APaaS)
Better application architecture with #microservices and #BPM (as APaaS)Better application architecture with #microservices and #BPM (as APaaS)
Better application architecture with #microservices and #BPM (as APaaS)
 
170215 msa intro
170215 msa intro170215 msa intro
170215 msa intro
 
MuleSoft Manchester Meetup #4 slides 11th February 2021
MuleSoft Manchester Meetup #4 slides 11th February 2021MuleSoft Manchester Meetup #4 slides 11th February 2021
MuleSoft Manchester Meetup #4 slides 11th February 2021
 
WebSphere Message Broker Application Development Training
WebSphere Message Broker Application Development TrainingWebSphere Message Broker Application Development Training
WebSphere Message Broker Application Development Training
 
ESP POC Findings
ESP POC FindingsESP POC Findings
ESP POC Findings
 
Confluent Partner Tech Talk with QLIK
Confluent Partner Tech Talk with QLIKConfluent Partner Tech Talk with QLIK
Confluent Partner Tech Talk with QLIK
 
API-driven Legacy Migration: Results from Project Winterfell
API-driven Legacy Migration: Results from Project WinterfellAPI-driven Legacy Migration: Results from Project Winterfell
API-driven Legacy Migration: Results from Project Winterfell
 
Software Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableSoftware Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuable
 
Extending and improving bps romania 30th of nov 2010
Extending and improving bps   romania 30th of nov 2010Extending and improving bps   romania 30th of nov 2010
Extending and improving bps romania 30th of nov 2010
 
Colt inter-provider SDN NNIs and APIs
Colt inter-provider SDN NNIs and APIsColt inter-provider SDN NNIs and APIs
Colt inter-provider SDN NNIs and APIs
 
[WSO2Con EU 2017] Building Next Generation Banking Middleware at ING: The Rol...
[WSO2Con EU 2017] Building Next Generation Banking Middleware at ING: The Rol...[WSO2Con EU 2017] Building Next Generation Banking Middleware at ING: The Rol...
[WSO2Con EU 2017] Building Next Generation Banking Middleware at ING: The Rol...
 
Do I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptxDo I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptx
 
Toyota Financial Services Digital Transformation - Think 2019
Toyota Financial Services Digital Transformation - Think 2019Toyota Financial Services Digital Transformation - Think 2019
Toyota Financial Services Digital Transformation - Think 2019
 
Microservices.pdf
Microservices.pdfMicroservices.pdf
Microservices.pdf
 
Creating a Centralized Consumer Profile Management Service with WebSphere Dat...
Creating a Centralized Consumer Profile Management Service with WebSphere Dat...Creating a Centralized Consumer Profile Management Service with WebSphere Dat...
Creating a Centralized Consumer Profile Management Service with WebSphere Dat...
 
Confluent Partner Tech Talk with SVA
Confluent Partner Tech Talk with SVAConfluent Partner Tech Talk with SVA
Confluent Partner Tech Talk with SVA
 
Mass Scale Networking
Mass Scale NetworkingMass Scale Networking
Mass Scale Networking
 
Clean sw 3_architecture
Clean sw 3_architectureClean sw 3_architecture
Clean sw 3_architecture
 
Implementation of OSS/BSS Solution in IoT Ecosystem
Implementation of OSS/BSS Solution in IoT EcosystemImplementation of OSS/BSS Solution in IoT Ecosystem
Implementation of OSS/BSS Solution in IoT Ecosystem
 
Chapter 10 System Architecture.Information Technology Project Management pptx
Chapter 10 System Architecture.Information Technology Project Management pptxChapter 10 System Architecture.Information Technology Project Management pptx
Chapter 10 System Architecture.Information Technology Project Management pptx
 

More from Michael Erichsen

How to test a Mainframe Application
How to test a Mainframe ApplicationHow to test a Mainframe Application
How to test a Mainframe ApplicationMichael Erichsen
 
Websphere on z/OS and RACF security
Websphere on z/OS and RACF securityWebsphere on z/OS and RACF security
Websphere on z/OS and RACF securityMichael Erichsen
 
A Natural Web Front End using CICS Transaction Gateway
A Natural Web Front End using CICS Transaction GatewayA Natural Web Front End using CICS Transaction Gateway
A Natural Web Front End using CICS Transaction GatewayMichael Erichsen
 
Automating the Donut Donation
Automating the Donut DonationAutomating the Donut Donation
Automating the Donut DonationMichael Erichsen
 
Through CICS OS/2 with 50 Million Peas an Hour
Through CICS OS/2 with 50 Million Peas an HourThrough CICS OS/2 with 50 Million Peas an Hour
Through CICS OS/2 with 50 Million Peas an HourMichael Erichsen
 
z13: New Opportunities – if you dare!
z13: New Opportunities – if you dare!z13: New Opportunities – if you dare!
z13: New Opportunities – if you dare!Michael Erichsen
 

More from Michael Erichsen (13)

ZCX Hybrid Application
ZCX Hybrid ApplicationZCX Hybrid Application
ZCX Hybrid Application
 
SMP/What?
SMP/What?SMP/What?
SMP/What?
 
ZD&T Survival Kit
ZD&T Survival KitZD&T Survival Kit
ZD&T Survival Kit
 
How to test a Mainframe Application
How to test a Mainframe ApplicationHow to test a Mainframe Application
How to test a Mainframe Application
 
Gradueret adgang til EPJ
Gradueret adgang til EPJGradueret adgang til EPJ
Gradueret adgang til EPJ
 
Websphere on z/OS and RACF security
Websphere on z/OS and RACF securityWebsphere on z/OS and RACF security
Websphere on z/OS and RACF security
 
A Natural Web Front End using CICS Transaction Gateway
A Natural Web Front End using CICS Transaction GatewayA Natural Web Front End using CICS Transaction Gateway
A Natural Web Front End using CICS Transaction Gateway
 
Automating the Donut Donation
Automating the Donut DonationAutomating the Donut Donation
Automating the Donut Donation
 
Trends but No Directions
Trends but No DirectionsTrends but No Directions
Trends but No Directions
 
Java on the Mainframe
Java on the MainframeJava on the Mainframe
Java on the Mainframe
 
Through CICS OS/2 with 50 Million Peas an Hour
Through CICS OS/2 with 50 Million Peas an HourThrough CICS OS/2 with 50 Million Peas an Hour
Through CICS OS/2 with 50 Million Peas an Hour
 
z13: New Opportunities – if you dare!
z13: New Opportunities – if you dare!z13: New Opportunities – if you dare!
z13: New Opportunities – if you dare!
 
Cobol 5 presentation
Cobol 5 presentationCobol 5 presentation
Cobol 5 presentation
 

Recently uploaded

Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfYashikaSharma391629
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 

Recently uploaded (20)

Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 

SOA Mainframe Service Architecture and Enablement Practices Best and Worst Practices

  • 1. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 0 S424. Mainframe Service Architecture and Enablement Best and Worst Practices • Michael Erichsen, Chief Consultant, CSC • Stockholm, 8 June 2011
  • 2. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 1 Main points • Why are we doing this? – We have done integration projects in decades – Service orientation can be a qualitative improvement – The new aspect is open, standardized, loosely coupled interfaces • Best practices are mostly found in the technicalities of service enablement – Case studies of seven different ways of doing it • Best and worst practices are found in the service modelling and in the implementation of models and architectures – Some principles and patterns based on best practices – Worst practices illustrated by ”anti-patterns” and research in what can go wrong and how
  • 3. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 2 A Conceptual, Technical View of Service Enablement
  • 4. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 3 A Conceptual, Modelling View of Service Enablement
  • 5. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 4 To Begin with the Conclusion SOA Mainframe Practices – Best and Worst
  • 6. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 5 Why are we doing this? Which problems are we trying to solve? • The world is fast and messy • Businesses and authorities need to adapt very quickly to survive • IT systems are generally heterogeneous • It is a mess - and it will remain so • Service interfaces hope to remove some of the mess – but also introduce new kinds of mess
  • 7. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 6 Reuse? Oh no, not again! • Software reuse is the process of creating software systems from existing software rather than building software systems from scratch • First proposed in 1968 • Four dimensions: – Abstraction – Selection • Classification • Retrieval • Exposition – Specialization – Integration
  • 8. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 7 Reuse? Promises, promises, promises… • Over time – Component Libraries with automated customization – Cut and paste of COBOL code – Application Generators – Object orientation – Frameworks – Service interfaces • Reuse is not a technology, but a culture – Why not reward for reuse and reusability? • Otherwise a vendor might earn more money by not reusing
  • 9. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 8 Overarchitecting and Overengineering • You need an enterprise architecture, an enterprise data model and good business process descriptions to get the full business and economic advantage of such a project • Reuse depends on a higher level of abstraction – But too many levels of abstraction could mean that you can’t use it at all in the first place
  • 10. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 9 Extending or replacing Mainframe systems? • The mainframe platform is continuously under siege – IBM's monopoly makes it difficult to forge alliances – The only practical solution to the age problems seems to be offshoring – The best way to protect the big investments in mainframe systems is to open them as equal partners in modern architectures • Not COBOL or Java/.Net, but strategy and interfaces – Using zSeries for SOA Infrastructure interesting, but not unproblematic
  • 11. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 10 The real economy of zIIP’s and zAAP's • MIPS come cheaper, but they are certainly not free – Processor costs – Other operation costs • Investment in real storage – Much more expensive than other memory hardware – Java Virtual Machines need very large heap sizes for many applications, including SOA infrastructure like ESB’s and BPMS’es – Memory overcommit perhaps only 1,5 on new workloads? • Calculate economy very carefully to compare with other platforms
  • 12. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 11 Lewis et al, SEI-CMM: SMART: The Service- Oriented Migration and Reuse Technique SOA Mainframe Practices – Best and Worst
  • 13. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 12 SMART: Defining a service • A service is a coarse-grained, discoverable, and self-contained software entity that interacts with applications and other services through a loosely coupled, often asynchronous, message-based communication model – Quoted from Brown et al, Rational: Using Service-Oriented Architecture and Component-Based Development to Build Web Service Applications
  • 14. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 13 SMART: Defining a SOA – A SOA is a collection of services with well-defined interfaces and a shared communications model. A system or application is designed and implemented to make use of these services • 1. Service interfaces are added to existing enterprise information systems for applications to use, while these systems remain unchanged for internal users • 2. Service-specific code is written to provide functionality for applications to use • 3. Services written by third parties and deployed elsewhere are used within applications. – SOAs also offer the promise of enabling existing legacy systems to expose their functionality as services, without making significant changes to the legacy systems themselves • This is one of the most attractive features of SOA to many organizations that do not wish – and cannot afford – to walk away from their investment in legacy systems or redevelop the same capabilities as services from scratch
  • 15. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 14 Technical Best Practices: Seven Case Studies SOA Mainframe Practices – Best and Worst
  • 16. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 15 Seven Case Studies 1. A Tactical Service Enablement 2. A Tactical Service Enablement Evolving into Strategy 3. COBOL IMS in a large Scale SOA Environment 4. International, multilateral, heterogeneous and data replicating 5. XML Services over MQ 6. WebSphere ESB on z 7. Service Enablement of a Legacy Application Generator System
  • 17. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 16 Case #1: A Tactical Service Enablement • Back end system – VSE, CICS, a 4GL and a non-relational data base • The business need – Update requests from business partners used in nightly batch runs • No requirement for online updates of the mainframe system • Web Services a mandatory protocol for communication – Security required using TLS and X.509 certificates – Not a general interface to the entire system, but a tactical solution for a single demand • Technical challenges • VSE native SOAP and XML features did not really work for us • No cryptographic hardware on the VSE box
  • 18. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 17 Case #1: The Solution The easiest solution was to use a WebSphere Application Server on Windows Daily updating Web Service requests from partners Weekly master data extracts from mainframe for each partner Quarterly and semi-annually control data extracted by mainframe
  • 19. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 18 Case #2: A Tactical Service Enablement Evolving into a Strategic Solution after a successful Proof-of-Concept • Back end system – An ”i-Case” tool generating COBOL in CICS at the back end and a fat Java client at the front end with required runtimes and a proprietary communication layer – A generic callable interface to the application was already in place • The business need – Online updates from business partners’ own systems – Web Services a mandatory protocol • Technical challenges – Operation and field names had to be mediated between existing WSDL- standard and COBOL restrictions
  • 20. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 19 Case #2: Technical Solution CICS Web Support (now superseded by Web Services for CICS) An existing COBOL adapter to the case tool generated code had to be modified to a dynamic wrapper Mapping definitions hand crafted
  • 21. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 20 Case #2: A Proof of Concept • A Proof of Concept was designed to explore possible problems like how does – Complexity and verbosity of the mandatory XML dialect fit with the tools available? – Internal security fit with this channel of connections? – Digital certificates work in real life in this configuration? – Service Enablement tools fit with exiting interfaces? – Data from different parts of the back end system match to build a meaningful response? • The customer provided the XSD-definitions • CSC built the adapter modules based on these and on the existing structures in the legacy system
  • 22. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 21 Case #2: Interface Design • Discrepancies between XML data concepts and COBOL data concepts had to be solved • In real life it seems that no interface contract is perfect • Data was defined in DB2, in COBOL, and in XML • Optional and Variable Fields (0..1) (0..n) (0..*) • Strings
  • 23. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 22 Case #2: COBOL and XML Definitions Type COBOL XML String PIC X() String Float COMP-1 Float Double COMP-2 Double Packed decimal COMP-3 Decimal Binary COMP-4 Long, short, int Date PIC X(10) in the application, Content: 20061016 2000-01-12 2000-01-12T12:13:14Z 2000-03-04T23:00:00+03:00
  • 24. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 23 Case #2: COBOL and XML Field Examples Field COBOL XML a 9(8) Date b S9(5) unsignedInt totalDigits value="5" c S9(11) COMP-3 Decimal totalDigits value="11" fractionDigits value="2" d S9(10) Double maxInclusive value="9999999999" e x(30) String maxLength value="30" f S9(8) unsignedInt totalDigits value="8" g S9(4) String pattern value="[0-9]{4}" h S9(10) Double maxInclusive value="9999999999"
  • 25. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 24 Case #2 Version 2: Back End Modernized, Interface Simplified Ongoing project to migrate case tool to runtime-free COBOL and Java to be maintained in Rational Developer for z (RDz) Back end web service interface created bottom-up from generated COBOL code using RDz Proprietary client communication code changed to Web Services for CICS Front end client communication using Web Services over HTTPS with generated communication code adapted to the WS4C format
  • 26. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 25 Case #3: COBOL IMS in a large scale SOA Environment – Back end system • Large IMS COBOL system – The business need • Modernizing the entire heterogeneous enterprise portfolio based on SOA integration and supporting a large number of protocols and formats • Service enabling IMS systems with DB2 data bases – Technical challenges • Reusing existing web enablement skills and technology • The new enterprise architecture regards all components on all platforms as both service providers and service providers – Must support both ingoing and outgoing Web Services requests
  • 27. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 26 Case #3: The Solution Simple interface to IMS applications Reusing large application ”motors” OTMA (Open Transaction Manager Access) IMS Connect WebSphere Application Server with the AXIS framework Also coding new, outgoing Web Services requests from IMS COBOL applications
  • 28. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 27 Case #3: The challenges – There are limits on the protocol of 400.000-500.000 bytes – Legacy applications used screen oriented logic • Handled by adding new logic on top of legacy applications – Existing web enablement coded in Visual Age for Java using the now obsolete Record Framework – Advantages • The continuing existence of many skilled programmers and designers with deep business knowledge • Experience from an existing, well performing, and very successful web interface to the IMS and DB2 systems
  • 29. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 28 Case #4: International, Multilateral, Heterogeneous and Data Replicating • Back end system – An IMS DB2 MQ system • The business need – International, multilateral exchange of data, going from data base replication to a service oriented architecture • Technical challenges – Many different data types with big variances – Large binary data items – Consistency checking between central and national data bases
  • 30. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 29 Case #4: The Original Solution A Web Services Gateway implemented as a simple servlet on WebSphere Application Server on z MQ communication with IMS COBOL programs handling XML and Unicode, storing data in DB2 Consistency checks became too complicated and too difficult to make well performing Local data base solution superseded by direct service requests to the central system
  • 31. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 30 Case #4: Taming the CPU Hog • Technical Challenges – IMS COBOL XML Unicode program was originally coded only for functionality using XML PARSE, not for performance – They used vast amounts of CPU – A code review did not show anything unsound – Transactions were profiled using Compuware STROBE to split CPU-usage into handling of MQ, XML, Unicode and DB2
  • 32. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 31 Case #4: Untuned system 0.50 CPU-second per transaction MODULE NAME SECTION NAME PROCEDURE/FUNCTION NAME CPU TIME Interpretation .LELIB CEEBINIT CEEVGTSI GET A STACK INCREMENT 51.91 Runtime Storage allocation .COBLIB IGZCPAC IGZCHXP COBOL LIBRARY SUBROUTIN 31.69 XML .LELIB CEEBINIT CEEVOGTS XTND USR STK/DSA OPLINK 7.10 Runtime Storage allocation CUNMUNI 1.64 Unicode .SVC SVC 228 USER SVC 1.64 IMS .LELIB CEEBINIT CEEVOGSX XTND USR STK/DSA OPLINK 1.09 Runtime Storage allocation RPS000 .55 The Program RPS000 .55 The Program .SVC SVC 120 GETMAIN/FREEMAIN .55 System Storage allocation .SVC SVC 013 TERMINATION .55 System
  • 33. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 32 Case #4: COBOL Working Storage Reduced 1M to 100K 0.06 CPU-second per transaction MODULE NAME SECTION NAME PROCEDURE/FUNCTION NAME CPU TIME Interpretation .LELIB CEEBINIT CEEVGTSI GET A STACK INCREMENT 36.17 Runtime Storage allocation .COBLIB IGZCPAC IGZCHXP COBOL LIBRARY SUBROUTINE 31.91 XML .LELIB CEEBINIT CEEVOGTS XTND USR STK/DSA OPLINK 10.64 Runtime Storage allocation .XES IXLR1ALR ALTER W/RECORD REQUEST 4.26 SysPlex Services (DB2) .SVC SVC 120 GETMAIN/FREEMAIN 4.26 System Storage allocation .SVC SVC 013 TERMINATION 2.13 System .NUCLEUS CSVEXPR CONTENTS SUPERVISION 2.13 System .LELIB CEEBINIT CEEVOGSX XTND USR STK/DSA OPLINK 2.13 Runtime Storage allocation .DB2 DSNIDM DATA MANAGEMENT DRIVER 2.13 DB2 .COBLIB IGZCPAC IGZCVMO VARIABLE LENGTH MOVE 2.13 COBOL Move
  • 34. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 33 Case #4: Further tuning of LE/370 Measurements from the LE/370 Storage Report Before After Initial stack size: 131072 1048576 Increment stack size: 131072 102400 Largest used by any thread: 1010896 1007944 Number of segments allocated: 3 1 Initial heap size: 32768 921600 Increment heap size: 32768 131072 Total heap storage used (sugg. initial size): 818184 818152 Number of segments allocated: 2 1 Initial anyheap size: 16384 32768 Increment anyheap size: 8192 8192 Total heap storage used (sugg. initial size): 25648 26456 Number of segments allocated: 2 1 • The important parameter is “Number of segments allocated:”, which should be 0 or 1 • Used parameters after tuning: •ALL31=(ON), STACK=(1M,100K,ANYWHERE, KEEP,512K,128K), HEAP=(900K,128K,ANYWHERE, KEEP,512K,128K), ANYHEAP=(32K,8K,ANYWHERE, KEEP), STORAGE=(NONE,NONE,NONE, 0K)
  • 35. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 34 Case #4: Language Environment Parameters Tuned 0,03 CPU-second per transaction MODULE NAME SECTION NAME PROCEDURE/FUNCTION NAME CPU TIME Interpretation .COBLIB IGZCPAC IGZCHXP COBOL LIBRARY SUBROUTINE 46.15 XML .COMMON .COMMONX EXTENDED COMMON AREA 7.69 System RPS000 .MQSRIES CSQQSTUB QUIESCE AFT SYS LOG ERR 5.13 MQ CUNMUNI 00D1C0 5.13 Unicode .SVC SVC 013 TERMINATION 5.13 System .DB2 DSNXGRDS RDS ACCESS MODULE GENER 5.13 DB2 .DB2 DSNIDM DATA MANAGEMENT DRIVER 5.13 DB2 .DB2 DSNGEDM DATA MGT DBD/SKCT RTNS 5.13 DB2 RPS000 RPS000 00B380 2.56 The Program .SVC SVC 228 USER SVC 2.56 System
  • 36. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 35 Case #5: XML services over MQ • Back end system – A merger has created a heterogeneous environment with CICS systems, IMS systems and Wintel systems • The business need – A very big SOA program aims at having a new midrange industry system as the front end and gradually replacing the legacy systems – Service enabling CICS systems • Technical challenges – Generic callable interfaces to CICS and IMS systems are already in place – MQ has been the integration channel for CICS and IMS for a number of years – The enterprise service bus is implemented as Microsoft Biztalk • Tools do not support SOAP over MQ, but SOAP over HTTP and XML over MQ
  • 37. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 36 Case #5: The Solution A modified Web Services for CICS implementation Reuse existing Biztalk tooling Use RDz tooling to generate WSBIND files for the existing callable interface
  • 38. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 37 Case #5: Pipeline Config File <?xml version="1.0" encoding="EBCDIC-CP-DK"?> <provider_pipeline xmlns="http://www.ibm.com/software/htp/cics/pipeline" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ibm.com/software/htp/cics/pipeline provider.xsd "> <service> <service_handler_list> <handler> <program>CSCHDL01</program> <handler_parameter_list /> </handler> </service_handler_list> <terminal_handler> <cics_soap_1.1_handler/> </terminal_handler> </service> <apphandler>DFHPITP</apphandler> </provider_pipeline>
  • 39. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 38 Case #5: Dummy SOAP Header Handler Program GET CONTAINER(PI-DFHFUNCTION) IF PI-RECEIVE-REQUEST THEN GET CONTAINER(PI-DFHREQUEST) Remove existing <?XML tag Add a dummy SOAP envelope around the payload PUT CONTAINER(PI-DFHREQUEST) DELETE CONTAINER(PI-DFHRESPONSE) ELSE IF PI-SEND-RESPONSE THEN GET CONTAINER(PI-DFHRESPONSE) add <?XML tag Test each tag in Response-Data to find if it starts with <soap or </soap and then remove PUT CONTAINER(PI-DFHRESPONSE) Move "text/xml" to MEDIATYPE-DATA PUT CONTAINER('DFHMEDIATYPE')
  • 40. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 39 Case #6: WebSphere ESB on z • Back end system – An IMS COBOL MQ system • The business need – Integration between applications on z, Oracle/Unix and Wintel using Web Services and MQ • Technical challenges – The need for real storage is much larger for JVM’s than for traditional workload – Recycling JVM’s costs hundreds of MIPS in quite extended periods • Even though most of it is offloaded to z**P processors • Z**P processors are not free either
  • 41. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 40 Case #6: WebSphere ESB on z Challenges After a long quiet night the first transactions in the morning could take minutes causing client timeouts Difficult to monitor – compared to CICS, IMS, MQ etc. Workload Manager policies quite complicated
  • 42. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 41 Case #7: Service Enablement of a Legacy Application Generator System • Back end system – CICS, DB2, originally coded in the 4GL CSP • The business need – A 20 year old legacy application still represents the core of the business and a long-term investment – Back office and staff can use web and cloud applications, which need access to the core system and its data, both inquiries and updates • Technical challenges – The application was coded in CSP and still has a 3270 user interface
  • 43. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 42 Case #7: The Solution Web Services for CICS developed using EGL tooling in Rational Business Developer (RBD) and RDz The first service was used by a web form
  • 44. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 43 Case #7: The Solution Web Services for CICS developed using EGL tooling in Rational Business Developer (RBD) and RDz The first service was used by a web form The second service was used by a Salesforce cloud application The integration from Salesforce was done using a Cast Iron SOA appliance
  • 45. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 44 Case #7: The Solution • The first service with a single operation just updated a single field in the core data base – The front end is a simple web form, which calls a web service – Very easy to implement – took 20 minutes to code and generate • The second service with half a dozen operations ran into all kinds of technical problems
  • 46. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 45 Case #7: Modelling the Service • Describe the existing user interaction with the 3270 application • Model this as a business process • Describe the operations needed in the new service to support this process • Define the programs needed to implement the operations and the interface as message structures
  • 47. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 46 Case #7: Restrictions when developing Web Services for CICS • If you need to have a structure as a response from an EGL Web Service for CICS the request must be the same structure (Input == output) • A configuration file called the “deployment descriptor” must not have the same name as any EGL program – RBD will quietly generate a COBOL program with the name of the deployment descriptor to overwrite the legitimate program just in case you also wanted to have an outgoing web services request • The predecessors to EGL were COBOL-like in their structures and culture, while EGL is java-like in its structures and culture – This difference can lead to great difficulties when service enabling legacy programs
  • 48. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 47 Case #7: Restrictions when developing Web Services for CICS • Do you have arrays in the externally exposed structure definition in the service programs? – Then the structure needs to be an unstructured record to have arrays generated correctly into the WSDL document – The field definitions must not be preceded by level numbers • Otherwise the array will be “flattened” with all occurrences of each subfield • {a1 a2 a3 b1 b2 b3 c1 c2 c3} in stead of {a1 b1 c1 a2 b2 c2 a3 b3 c3} – Note that unstructured records are dynamic • If you do not allocate them yourself they will be empty or even null
  • 49. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 48 Case #7: Restrictions when developing Web Services for CICS • A static array like this: 01 MYARRAY ARRAYRECORD[10]; Is allocated in storage like a COBOL program would • A dynamic array, distinguished by not having level numbers: myArray arrayRecord[10]; Is not allocated, but must be explicitly defined to avoid null pointers • EGL generation for COBOL does not support multidimensional, dynamic arrays • All this is not considered an error, but a design, by IBM, even though it is deeply unintuitive for a legacy programmer
  • 50. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 49 Summing up the case studies • Mainframe service enablement is probably our most important area of mainframe application development in recent years • There are many ways to service enable an existing application • Use your existing skills, tools and methodologies where you can • Make the service interface completely hide what is behind it • Remember: – To be reusable it has to usable in the first place!
  • 51. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 50 Best and Worst Practices in Service Modelling and Architecture SOA Mainframe Practices – Best and Worst
  • 52. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 51 Best and Worst Practices •Mark Skilton, CSC: Three simple rules for definition what is a Service are •Forrester: North American SOA Systems Integrators •Gartner: The 13 least wanted •Ang, Cherbakov & Ibrahim, IBM: SOA Antipatterns •Tarak Modi, Unisys: SOA Antipatterns •IBM on SOA Governance Nice to have research to quote Rather than admitting your own mistakes "The secret to creativity is knowing how to hide your sources.“ (Albert Einstein)
  • 53. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 52 Mark Skilton, CSC: Service Oriented Architecture SOA Mainframe Practices – Best and Worst
  • 54. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 53 Mark Skilton, CSC: Service Oriented Architecture • Three simple rules for definition what a Service is • Five key areas to consider when looking at the granularity of business and IT services • Three key operating principles of SOA/POA underpin these choices
  • 55. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 54 Mark Skilton, CSC: Three simple rules for definition what a Service is • It is strategic – The capability is critical to your organisation • Composable – The service can be run in its own and be combined with other services to build new services not originally specified • Rule of Three – If an interface and/or message is used in more than three systems
  • 56. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 55 Mark Skilton, CSC: Five key areas to Consider when looking at the Granularity of Business and IT Services • Performance and size – Neither too big nor too small • Transactionality and state – This audience should know all about that! • Business suitability – One operation for one business step • Safe operations – Read only or reentrant • Idempotency of operations – Can be called again without changing the result
  • 57. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 56 Mark Skilton, CSC: Three key operating principles of SOA/POA underpin these choices • Process Integrity – Active – Safe – Idempotent • Data Integrity – Transactionality and states – Data Synchronisation – Logic • Security Integrity – Security policies, processes and technologies
  • 58. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 57 Forrester: North American SOA Systems Integrators SOA Mainframe Practices – Best and Worst
  • 59. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 58 Forrester: North American SOA Systems Integrators • In a typical project that uses SOA strategically, there are typically five steps that organizations need to follow to successfully complete the project 1. Develop a future state for the business to evolve toward 2. Map existing business services to current business processes 3. Map business services to IT solutions 4. Map IT assets to IT solutions 5. Design SOA governance and infrastructure
  • 60. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 59 Gartner: The 13 Least Wanted SOA Mainframe Practices – Best and Worst
  • 61. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 60 Gartner: The Thirteen Least Wanted 1. Starting too big 2. Starting in the wrong place 3. Leaving SOA to the "techies“ 4. Underestimating the technical (and infrastructure) issues 5. Assuming that everyone thinks like you 6. Selling SOA before you're ready 7. Choosing anarchy or dictatorship as leadership styles 8. Excessive centralization 9. Irrational SOA exuberance 10. Forgetting to consider the data 11. "Not invented here" syndrome 12. Allowing nonshareable services to proliferate 13. "I already have 200 services, now what?”
  • 62. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 61 Ang, Cherbakov & Ibrahim, IBM: SOA Antipatterns SOA Mainframe Practices – Best and Worst
  • 63. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 62 Patterns and Anti-Patterns • Patterns are a popular way of illustrating best practices – SOA Patterns are used very much in discussions and literature • Anti-patterns are being used more and more to slow down the hype
  • 64. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 63 Ang, Cherbakov & Ibrahim, IBM: SOA Antipatterns (1) • Adoption – Technology Bandwagon – So, What’s New? – The Big Bang • Design – Blob – Poltergeists • Structure – Spaghetti code – Stovepipe systems
  • 65. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 64 Ang, Cherbakov & Ibrahim, IBM: SOA Antipatterns (2) • Technology – Wolf ticket – Continuous obsolescence • Reuse – Cut-and-paste – Golden hammer
  • 66. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 65 Ang, Cherbakov & Ibrahim, IBM: SOA Antipatterns (3) • Identification & Design – Web service = SOA – The Silo Approach – Misbehaving Registries • Realization – Chatty Services – Point-to-point Services – Component-less Services
  • 67. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 66 Tarak Modi, Unisys: SOA Antipatterns SOA Mainframe Practices – Best and Worst
  • 68. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 67 Tarak Modi, Unisys: SOA Antipatterns (1) • The "Same Old, Same Old" Phenomenon • The "Big Bang" Approach • Service Fiefdoms
  • 69. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 68 Tarak Modi, Unisys: SOA Antipatterns (2) • Technophilia • Bloated Services • Anorexic Services • Hyper Brokerage
  • 70. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 69 IBM on SOA Governance SOA Mainframe Practices – Best and Worst
  • 71. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 70 IBM on SOA Governance • "Wild West" or “Rogue” Services – Extremely difficult to gain control over • "Duplicated” Services – Superficially effective but limited real savings • "Shelfware” Services – A waste of resource, won’t deliver benefits
  • 72. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 71 IBM on SOA Governance • Unsecure Services – Limits service use and business opportunities • Rigid Services – Roadblock to agile, flexible business processes • Ineffective Service Management – Services must be managed as resources
  • 73. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 72 A few more Issues SOA Mainframe Practices – Best and Worst
  • 74. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 73 Carsten Svensson, EEI: The Cost of SOA • Cost of SOA = (Cost of Data Complexity + Cost of Service Complexity + Cost of Process Complexity + Enabling Technology Solution)
  • 75. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 74 Performance 0 500 1000 1500 2000 2500 1 3 5 7 9 11 13 15 17 19 21 23 Online Self-service Online & Batch The daily CPU consumption pattern will change If you only run an online workload If you run online and a lot of batch If you run in a service enabled environment, where services are used by a self service web application If you rely on a batch window it might collide with the self service window after dinner, when the kids are in bed
  • 76. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 75 The culture clash between Java and COBOL • COBOL was born to optimize administrative computing – Java and XML was born for dynamic interfaces – It takes a lot of sweat to reconcile them • Data in COBOL working storage allocated implicitly by the compiler – Data in Java must be allocated explicitly by the programmer
  • 77. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 76 To Summarize • There are many ways to integrate mainframe systems into service oriented architectures – A lot of best practices are to be found in the technical solutions • You need a close cooperation between business stakeholders, architects, developers and technologists to make it work – The worst practices are found when application, design and architecture on one hand does not take the requirements of the technologies and the infrastructure seriously • All the mistakes have already been made and are extensively documented
  • 78. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 77 THANK YOU SOA Mainframe Practices – Best and Worst
  • 79. CSC Proprietary and Confidential 1/20/2016 10:03 AM PPT 2003_Toolkit_FMT.ppt 78