SlideShare a Scribd company logo
1 of 38
Download to read offline
PZS-5155:
How Bankwest Delivers Business Value through Modern
RESTful APIs with Java in CICS Liberty
Rob Crowley
API Technical Product Owner
Bankwest
IBM InterConnect 2016 Conference
InterConnect 2016
Page 2
Goals for the session
 Share Bankwest’s journey as one of the first companies worldwide to
leverage Java and Liberty on the mainframe to deliver modern RESTful
APIs.
 Provide insights into how a continuous delivery pipeline can be
implemented for these APIs.
 Empower you with new ideas for modernising your organisation’s
investment in mainframe technologies.
 Outline business outcomes achieved to date.
Page 3
about:bankwest
Page 4
about:bankwest
4.5m
1.1m
Page 5
about:me
5 YEARS
0 YEARS
12 YEARS
Page 6
Business Context: Why we chose RESTful APIs with Java in CICS Liberty
“It is not necessary to change. Survival is not mandatory.”
- W. Edwards Deming
Page 7
Current Architecture: Core Banking System & PRIME
Middle Tier Middle TierPRIME PRIME
Core Banking
System (CBS)
Page 8
Application Architecture Evolution
PRIME2
Page 9
High Levels Goals for PRIME 2™
 Modern API delivering a world class developer experience.
 No major upfront upskilling of existing developer group required.
 Facilitate incremental modernisation of our core banking system.
 Enable delivery at speed.
 Evolvable.
Page 10
PRIME 2™ Web App
DB2
CBS
BPR
RACF
JAX-RS
App
Filters
-
TAI
JCICSHTTP GET /
LIBERTY PROFILE
CICS TS 5.2 CICS TS 5.1
RESTful APIs 101
Page 12
RESTful APIs 101 - Resources
 HTTP as protocol (generally the case but doesn’t have to be)
 Model entities as Resources
 Assign each resource a Uniform Resource Identifier
Client Server
GET
/accounts/1
{ … }
Page 13
RESTful APIs 101 - Actions
GET read
POST create
PUT replace
PATCH partial update
DELETE delete
Map actions to HTTP methods
Client Server
GET
/accounts/1
{ … }
Page 14
RESTful APIs 101 - Hypermedia
“It seems we’ve got a mental block when it comes to hypermedia
in web APIs. This is a big problem, because hypermedia is the
feature that makes a web API capable of handling changes
gracefully.”
- Leonard Richardson, author of RESTful Web APIs
Page 15
RESTful APIs 101 – Hypermedia
Hypermedia Controls
Page 16
RESTful APIs 101 - Hypermedia
Drive client transitions through
conditional links (and forms)
Client follows provided links (it
should not construct it’s own)
Continuous Delivery Pipeline
Page 18
Continuous Delivery Pipeline – How we ship code
Model
Resource
Continuous
Integration
Code
Generation
Migrate
Resource
Page 19
JSON as the format for resource definition
 Human readable / machine understandable
 Bullet proof JSON parsers and tooling available for the JVM
 Browsable in source control system
RESTful Resource
Definition
1 .. * 1CICS Copybook
CICS Copybook
CICS Copybook
Model
Resource
Continuous
Integration
Code
Generation
Migrate
Resource
We chose JSON
for this
Resource
Modelling
Page 20
Built using PL/1 with green screen user interface.
 Leverage core skill set of developers with knowledge of existing
mainframe programs and CICS Copybook structures.
 Initial consumers were other CICS developers so provides a familiar user
experience.
 Smallest upfront effort required to prove viability of approach.
Mapping Engine
Model
Resource
Continuous
Integration
Code
Generation
Migrate
Resource
Page 21
 Impedance mismatch between legacy and RESTful interfaces.
 Volatility of data affects the cacheability of entire representation.
 Include capability for defining cache strategy in resource definition. This
is vital to harnessing the power of HTTP.
Design for cacheability
Model
Resource
Continuous
Integration
Code
Generation
Migrate
Resource
Client Server
Browser Cache Caching ProxyEdge Proxy
Page 22
“There are only two hard things in Computer Science:
cache invalidation and naming things"
- Phil Karlton
Model
Resource
Continuous
Integration
Code
Generation
Migrate
Resource
Page 23
Include capability for aliasing fields in the mapping engine.
 Ensure barrier of entry for API is low (pit of success).
 Technical governance process can help.
 Keep consumers of API front of mind (internal vs external).
 Leverage existing vocabularies i.e. Schema.org and Dublin Core®
Consistent naming is key
Model
Resource
Continuous
Integration
Code
Generation
Migrate
Resource
Page 24
 When dealing with legacy programs it’s not always possible to get
optimal outcome through mapping alone.
 Determine what an acceptable level of compromise is and when a re-
write is required.
Model
Resource
Continuous
Integration
Code
Generation
Migrate
Resource
Define how much compromise is acceptable
Page 25
Continuous Integration Build
CI Server
JGIT
Team City
Version Control
System
Master
z/OS
FTP
Pulls
cies
Artifact Repository
Resolve
Nexus
Code Generation
Model
Resource
Continuous
Integration
Code
Generation
Migrate
Resource
Resolve / Publish /
Page 26
 We generate a number of outputs for each resource bundle
› Java classes
› Documentation / API Descriptions
› Manifests
 Code generation tooling should be scalable and robust. We chose Xtend
a component of the Xtext Eclipse project.
 Generated code still needs to be debugged occasionally. Focus on
producing idiomatic Java code.
 Don’t generate everything. Be pragmatic and avoid putting complex
business logic in templates.
Model
Resource
Continuous
Integration
Code
Generation
Migrate
Resource
Page 27
Abstract consumers from legacy data through thin data transformations
 Leverage standard formats for values to keep barrier for consuming data
low.
 Use ISO8601 for dates. We massage these values quite extensively.
 For monetary amounts we use currency base unit as String plus ISO4217
currency code.
Protect consumers from legacy data inconsistencies
Model
Resource
Continuous
Integration
Code
Generation
Migrate
Resource
Page 28
Ensure your APIs are easily accessible to consumers.
 Provide a service catalogue detailing root URI for each API.
 We leverage Open API Initiative (f.k.a. Swagger) for API descriptions.
› UI module provides listing of endpoints available in each environment
and test harness to invoke them.
› Extensive tooling around the standard (i.e. AsciiDocs, IBM DataPower).
› Version 2.0 is not a perfect fit for hypermedia APIs.
Discoverability and Description
Model
Resource
Continuous
Integration
Code
Generation
Migrate
Resource
Page 29
Model
Resource
Continuous
Integration
Code
Generation
Migrate
Resource
 The resource bundle is associated with corresponding PL/1 programs
and promoted as an atomic unit.
 Dependency mapping ensures that Copybook and corresponding Java
resources remain in sync.
 CICS bundles installed using direct JCL commands. DFHDPLOY offers
support for this ‘out of the box’.
Liberty Profile
Page 31
Liberty Profile
 Lightweight dynamic profile of WebSphere
Application Server (WAS).
 Modular architecture based on OSGi.
 Fast start up. ~5 seconds fully configured.
 Strong RACF Integration.
 Regular release cycles.
 Great development tools and integration with
Eclipse.
 Sensible default configuration.
Where to next?
Page 33
The Road To Production
Feb 2015:
Project Kick-off
July 2015: Liberty deployed
to Production with 1 bundle
September 2015:
1st App/System Consumer
October – Dec 2015:
Weekly bundle releases
Jan 2016:
15 bundles deployed
20 RESTful operations
CORE DEVELOPMENT TEAM:
JAVA PL/1 SYS PROG
March 2015:
Dual version
CICSPlex
March 2016:
28 bundles deployed
52 RESTful operations
Page 34
Where to next - Scaling Horizontally
PRIME2
Document
Database Customer
Relationships
Graph Database
Customer
Search
Customer
Reporting
Denormalised
Relational Schema
READS WRITES
Page 35
Thank you
rob.crowley@bankwest.com.au
robdcrowley
@robdcrowley
Appendices
Page 37
JSON is the lingua franca for modern web APIs
http://www.google.com/trends/explore?q=xml+api#q=xml%20api%2C%20json%20api&cmpt=q
JSONXML
Page 38
HTTP Cache Headers

More Related Content

What's hot

API Management For Building Software Applications Powerpoint Presentation Slides
API Management For Building Software Applications Powerpoint Presentation SlidesAPI Management For Building Software Applications Powerpoint Presentation Slides
API Management For Building Software Applications Powerpoint Presentation SlidesSlideTeam
 
List of Top Local Databases used for react native app developement in 2022
List of Top Local Databases used for react native app developement in 2022					List of Top Local Databases used for react native app developement in 2022
List of Top Local Databases used for react native app developement in 2022 Shelly Megan
 
JCommerce – success stories
JCommerce – success storiesJCommerce – success stories
JCommerce – success storiesJCommerce
 
Model-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical SoftwareModel-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical Softwaregjuljo
 
Technology Focus before investing on Multiscreen content delivery
Technology Focus before investing on Multiscreen content deliveryTechnology Focus before investing on Multiscreen content delivery
Technology Focus before investing on Multiscreen content deliverymachau123
 
What's New in API Connect & DataPower Gateway in 1H 2018
What's New in API Connect & DataPower Gateway in 1H 2018What's New in API Connect & DataPower Gateway in 1H 2018
What's New in API Connect & DataPower Gateway in 1H 2018IBM API Connect
 
Designing API Platforms that Developers Love - New York Life Build Blue May 2017
Designing API Platforms that Developers Love - New York Life Build Blue May 2017Designing API Platforms that Developers Love - New York Life Build Blue May 2017
Designing API Platforms that Developers Love - New York Life Build Blue May 2017Deepak Nadig
 
Leveraging CA Technologies Application Development Solutions to Rapidly Deliv...
Leveraging CA Technologies Application Development Solutions to Rapidly Deliv...Leveraging CA Technologies Application Development Solutions to Rapidly Deliv...
Leveraging CA Technologies Application Development Solutions to Rapidly Deliv...CA Technologies
 
RDZ for Cobol Programmers slides 7 14 Debugger deep dive final2
RDZ for Cobol Programmers slides 7 14 Debugger deep dive final2RDZ for Cobol Programmers slides 7 14 Debugger deep dive final2
RDZ for Cobol Programmers slides 7 14 Debugger deep dive final2Susan Yoskin
 
How to Migrate Applications Off a Mainframe
How to Migrate Applications Off a MainframeHow to Migrate Applications Off a Mainframe
How to Migrate Applications Off a MainframeVMware Tanzu
 
RichardChauvetShortResume2015
RichardChauvetShortResume2015RichardChauvetShortResume2015
RichardChauvetShortResume2015Richard Chauvet
 
Microservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesMicroservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesAraf Karsh Hamid
 
StrongLoop DevOps Overview
StrongLoop DevOps OverviewStrongLoop DevOps Overview
StrongLoop DevOps Overviewjguerrero999
 
SAP Integration with Red Hat JBoss Technologies
SAP Integration with Red Hat JBoss TechnologiesSAP Integration with Red Hat JBoss Technologies
SAP Integration with Red Hat JBoss Technologieshwilming
 

What's hot (20)

API Management For Building Software Applications Powerpoint Presentation Slides
API Management For Building Software Applications Powerpoint Presentation SlidesAPI Management For Building Software Applications Powerpoint Presentation Slides
API Management For Building Software Applications Powerpoint Presentation Slides
 
List of Top Local Databases used for react native app developement in 2022
List of Top Local Databases used for react native app developement in 2022					List of Top Local Databases used for react native app developement in 2022
List of Top Local Databases used for react native app developement in 2022
 
JCommerce – success stories
JCommerce – success storiesJCommerce – success stories
JCommerce – success stories
 
Model-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical SoftwareModel-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical Software
 
Mohsin hakim
Mohsin hakimMohsin hakim
Mohsin hakim
 
Domain Driven Design
Domain Driven Design Domain Driven Design
Domain Driven Design
 
Technology Focus before investing on Multiscreen content delivery
Technology Focus before investing on Multiscreen content deliveryTechnology Focus before investing on Multiscreen content delivery
Technology Focus before investing on Multiscreen content delivery
 
SSE_5Yrs_Shivangi-1
SSE_5Yrs_Shivangi-1SSE_5Yrs_Shivangi-1
SSE_5Yrs_Shivangi-1
 
What's New in API Connect & DataPower Gateway in 1H 2018
What's New in API Connect & DataPower Gateway in 1H 2018What's New in API Connect & DataPower Gateway in 1H 2018
What's New in API Connect & DataPower Gateway in 1H 2018
 
Designing API Platforms that Developers Love - New York Life Build Blue May 2017
Designing API Platforms that Developers Love - New York Life Build Blue May 2017Designing API Platforms that Developers Love - New York Life Build Blue May 2017
Designing API Platforms that Developers Love - New York Life Build Blue May 2017
 
resume
resumeresume
resume
 
JavaCro'15 - GP GUI form generators - Daniel Strmečki
JavaCro'15 - GP GUI form generators - Daniel StrmečkiJavaCro'15 - GP GUI form generators - Daniel Strmečki
JavaCro'15 - GP GUI form generators - Daniel Strmečki
 
Leveraging CA Technologies Application Development Solutions to Rapidly Deliv...
Leveraging CA Technologies Application Development Solutions to Rapidly Deliv...Leveraging CA Technologies Application Development Solutions to Rapidly Deliv...
Leveraging CA Technologies Application Development Solutions to Rapidly Deliv...
 
RDZ for Cobol Programmers slides 7 14 Debugger deep dive final2
RDZ for Cobol Programmers slides 7 14 Debugger deep dive final2RDZ for Cobol Programmers slides 7 14 Debugger deep dive final2
RDZ for Cobol Programmers slides 7 14 Debugger deep dive final2
 
How to Migrate Applications Off a Mainframe
How to Migrate Applications Off a MainframeHow to Migrate Applications Off a Mainframe
How to Migrate Applications Off a Mainframe
 
RichardChauvetShortResume2015
RichardChauvetShortResume2015RichardChauvetShortResume2015
RichardChauvetShortResume2015
 
Microservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesMicroservices Architecture & Testing Strategies
Microservices Architecture & Testing Strategies
 
StrongLoop DevOps Overview
StrongLoop DevOps OverviewStrongLoop DevOps Overview
StrongLoop DevOps Overview
 
SAP Integration with Red Hat JBoss Technologies
SAP Integration with Red Hat JBoss TechnologiesSAP Integration with Red Hat JBoss Technologies
SAP Integration with Red Hat JBoss Technologies
 
The Decoupled CMS in Financial Services
The Decoupled CMS in Financial ServicesThe Decoupled CMS in Financial Services
The Decoupled CMS in Financial Services
 

Similar to How Bankwest delivers business value through modern RESTful APIs with Java in CICS Liberty (IBM Interconnect 2016)

Role of integration in Digital Transformation
Role of integration in Digital TransformationRole of integration in Digital Transformation
Role of integration in Digital TransformationWSO2
 
Building enterprise depth APIs with the IBM hybrid integration portfolio
Building enterprise depth APIs with the IBM hybrid integration portfolioBuilding enterprise depth APIs with the IBM hybrid integration portfolio
Building enterprise depth APIs with the IBM hybrid integration portfolioKim Clark
 
ALM iStack - Application Lifecycle Management using Linked Data
ALM iStack - Application Lifecycle Management using Linked Data ALM iStack - Application Lifecycle Management using Linked Data
ALM iStack - Application Lifecycle Management using Linked Data Nandana Mihindukulasooriya
 
Node: The Integration Fabric of the Future
Node: The Integration Fabric of the FutureNode: The Integration Fabric of the Future
Node: The Integration Fabric of the FutureAlbert Tsang
 
Technical Compentency Document
Technical Compentency DocumentTechnical Compentency Document
Technical Compentency Documentamitdesai
 
z/OS Connect - Overview at the "z Systems Agile Enterprise Development Confer...
z/OS Connect - Overview at the "z Systems Agile Enterprise Development Confer...z/OS Connect - Overview at the "z Systems Agile Enterprise Development Confer...
z/OS Connect - Overview at the "z Systems Agile Enterprise Development Confer...DevOps for Enterprise Systems
 
Cloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyondCloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyondUgo Landini
 
What's New in Confluent Platform 5.5
What's New in Confluent Platform 5.5What's New in Confluent Platform 5.5
What's New in Confluent Platform 5.5confluent
 
Building Streaming Data Pipelines with Google Cloud Dataflow and Confluent Cl...
Building Streaming Data Pipelines with Google Cloud Dataflow and Confluent Cl...Building Streaming Data Pipelines with Google Cloud Dataflow and Confluent Cl...
Building Streaming Data Pipelines with Google Cloud Dataflow and Confluent Cl...HostedbyConfluent
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...ghodgkinson
 
MyMobileWeb Certification Part I
MyMobileWeb Certification Part IMyMobileWeb Certification Part I
MyMobileWeb Certification Part Icrdlc
 
Top 12 Backend Frameworks for Web Development in 2023.pdf
Top 12 Backend Frameworks for Web Development in 2023.pdfTop 12 Backend Frameworks for Web Development in 2023.pdf
Top 12 Backend Frameworks for Web Development in 2023.pdfEkta Patel
 
App Modernization: From 0 to Hero
App Modernization: From 0 to HeroApp Modernization: From 0 to Hero
App Modernization: From 0 to HeroLorenzo Barbieri
 
AMIS Oracle OpenWorld & CodeOne Review - Pillar 2 - Custom Application Develo...
AMIS Oracle OpenWorld & CodeOne Review - Pillar 2 - Custom Application Develo...AMIS Oracle OpenWorld & CodeOne Review - Pillar 2 - Custom Application Develo...
AMIS Oracle OpenWorld & CodeOne Review - Pillar 2 - Custom Application Develo...Lucas Jellema
 
Node Summit 2016: Web App Architectures
Node Summit 2016:  Web App ArchitecturesNode Summit 2016:  Web App Architectures
Node Summit 2016: Web App ArchitecturesChris Bailey
 
William-Timpany-2016-03-09-v4-Resume
William-Timpany-2016-03-09-v4-ResumeWilliam-Timpany-2016-03-09-v4-Resume
William-Timpany-2016-03-09-v4-ResumeWilliam Timpany
 
Using PaaS to run APIs and Microservices in Production
Using PaaS to run APIs and Microservices in ProductionUsing PaaS to run APIs and Microservices in Production
Using PaaS to run APIs and Microservices in ProductionApigee | Google Cloud
 

Similar to How Bankwest delivers business value through modern RESTful APIs with Java in CICS Liberty (IBM Interconnect 2016) (20)

Role of integration in Digital Transformation
Role of integration in Digital TransformationRole of integration in Digital Transformation
Role of integration in Digital Transformation
 
Building enterprise depth APIs with the IBM hybrid integration portfolio
Building enterprise depth APIs with the IBM hybrid integration portfolioBuilding enterprise depth APIs with the IBM hybrid integration portfolio
Building enterprise depth APIs with the IBM hybrid integration portfolio
 
ALM iStack - Application Lifecycle Management using Linked Data
ALM iStack - Application Lifecycle Management using Linked Data ALM iStack - Application Lifecycle Management using Linked Data
ALM iStack - Application Lifecycle Management using Linked Data
 
sMash_for_zOS-users
sMash_for_zOS-userssMash_for_zOS-users
sMash_for_zOS-users
 
Node: The Integration Fabric of the Future
Node: The Integration Fabric of the FutureNode: The Integration Fabric of the Future
Node: The Integration Fabric of the Future
 
Technical Compentency Document
Technical Compentency DocumentTechnical Compentency Document
Technical Compentency Document
 
z/OS Connect - Overview at the "z Systems Agile Enterprise Development Confer...
z/OS Connect - Overview at the "z Systems Agile Enterprise Development Confer...z/OS Connect - Overview at the "z Systems Agile Enterprise Development Confer...
z/OS Connect - Overview at the "z Systems Agile Enterprise Development Confer...
 
Cloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyondCloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyond
 
What's New in Confluent Platform 5.5
What's New in Confluent Platform 5.5What's New in Confluent Platform 5.5
What's New in Confluent Platform 5.5
 
Building Streaming Data Pipelines with Google Cloud Dataflow and Confluent Cl...
Building Streaming Data Pipelines with Google Cloud Dataflow and Confluent Cl...Building Streaming Data Pipelines with Google Cloud Dataflow and Confluent Cl...
Building Streaming Data Pipelines with Google Cloud Dataflow and Confluent Cl...
 
Smarter Retail
Smarter RetailSmarter Retail
Smarter Retail
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
 
MyMobileWeb Certification Part I
MyMobileWeb Certification Part IMyMobileWeb Certification Part I
MyMobileWeb Certification Part I
 
Top 12 Backend Frameworks for Web Development in 2023.pdf
Top 12 Backend Frameworks for Web Development in 2023.pdfTop 12 Backend Frameworks for Web Development in 2023.pdf
Top 12 Backend Frameworks for Web Development in 2023.pdf
 
App Modernization: From 0 to Hero
App Modernization: From 0 to HeroApp Modernization: From 0 to Hero
App Modernization: From 0 to Hero
 
AMIS Oracle OpenWorld en Code One Review 2018 - Pillar 2: Custom Application ...
AMIS Oracle OpenWorld en Code One Review 2018 - Pillar 2: Custom Application ...AMIS Oracle OpenWorld en Code One Review 2018 - Pillar 2: Custom Application ...
AMIS Oracle OpenWorld en Code One Review 2018 - Pillar 2: Custom Application ...
 
AMIS Oracle OpenWorld & CodeOne Review - Pillar 2 - Custom Application Develo...
AMIS Oracle OpenWorld & CodeOne Review - Pillar 2 - Custom Application Develo...AMIS Oracle OpenWorld & CodeOne Review - Pillar 2 - Custom Application Develo...
AMIS Oracle OpenWorld & CodeOne Review - Pillar 2 - Custom Application Develo...
 
Node Summit 2016: Web App Architectures
Node Summit 2016:  Web App ArchitecturesNode Summit 2016:  Web App Architectures
Node Summit 2016: Web App Architectures
 
William-Timpany-2016-03-09-v4-Resume
William-Timpany-2016-03-09-v4-ResumeWilliam-Timpany-2016-03-09-v4-Resume
William-Timpany-2016-03-09-v4-Resume
 
Using PaaS to run APIs and Microservices in Production
Using PaaS to run APIs and Microservices in ProductionUsing PaaS to run APIs and Microservices in Production
Using PaaS to run APIs and Microservices in Production
 

Recently uploaded

Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 

Recently uploaded (20)

Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

How Bankwest delivers business value through modern RESTful APIs with Java in CICS Liberty (IBM Interconnect 2016)

  • 1. PZS-5155: How Bankwest Delivers Business Value through Modern RESTful APIs with Java in CICS Liberty Rob Crowley API Technical Product Owner Bankwest IBM InterConnect 2016 Conference InterConnect 2016
  • 2. Page 2 Goals for the session  Share Bankwest’s journey as one of the first companies worldwide to leverage Java and Liberty on the mainframe to deliver modern RESTful APIs.  Provide insights into how a continuous delivery pipeline can be implemented for these APIs.  Empower you with new ideas for modernising your organisation’s investment in mainframe technologies.  Outline business outcomes achieved to date.
  • 5. Page 5 about:me 5 YEARS 0 YEARS 12 YEARS
  • 6. Page 6 Business Context: Why we chose RESTful APIs with Java in CICS Liberty “It is not necessary to change. Survival is not mandatory.” - W. Edwards Deming
  • 7. Page 7 Current Architecture: Core Banking System & PRIME Middle Tier Middle TierPRIME PRIME Core Banking System (CBS)
  • 9. Page 9 High Levels Goals for PRIME 2™  Modern API delivering a world class developer experience.  No major upfront upskilling of existing developer group required.  Facilitate incremental modernisation of our core banking system.  Enable delivery at speed.  Evolvable.
  • 10. Page 10 PRIME 2™ Web App DB2 CBS BPR RACF JAX-RS App Filters - TAI JCICSHTTP GET / LIBERTY PROFILE CICS TS 5.2 CICS TS 5.1
  • 12. Page 12 RESTful APIs 101 - Resources  HTTP as protocol (generally the case but doesn’t have to be)  Model entities as Resources  Assign each resource a Uniform Resource Identifier Client Server GET /accounts/1 { … }
  • 13. Page 13 RESTful APIs 101 - Actions GET read POST create PUT replace PATCH partial update DELETE delete Map actions to HTTP methods Client Server GET /accounts/1 { … }
  • 14. Page 14 RESTful APIs 101 - Hypermedia “It seems we’ve got a mental block when it comes to hypermedia in web APIs. This is a big problem, because hypermedia is the feature that makes a web API capable of handling changes gracefully.” - Leonard Richardson, author of RESTful Web APIs
  • 15. Page 15 RESTful APIs 101 – Hypermedia Hypermedia Controls
  • 16. Page 16 RESTful APIs 101 - Hypermedia Drive client transitions through conditional links (and forms) Client follows provided links (it should not construct it’s own)
  • 18. Page 18 Continuous Delivery Pipeline – How we ship code Model Resource Continuous Integration Code Generation Migrate Resource
  • 19. Page 19 JSON as the format for resource definition  Human readable / machine understandable  Bullet proof JSON parsers and tooling available for the JVM  Browsable in source control system RESTful Resource Definition 1 .. * 1CICS Copybook CICS Copybook CICS Copybook Model Resource Continuous Integration Code Generation Migrate Resource We chose JSON for this Resource Modelling
  • 20. Page 20 Built using PL/1 with green screen user interface.  Leverage core skill set of developers with knowledge of existing mainframe programs and CICS Copybook structures.  Initial consumers were other CICS developers so provides a familiar user experience.  Smallest upfront effort required to prove viability of approach. Mapping Engine Model Resource Continuous Integration Code Generation Migrate Resource
  • 21. Page 21  Impedance mismatch between legacy and RESTful interfaces.  Volatility of data affects the cacheability of entire representation.  Include capability for defining cache strategy in resource definition. This is vital to harnessing the power of HTTP. Design for cacheability Model Resource Continuous Integration Code Generation Migrate Resource Client Server Browser Cache Caching ProxyEdge Proxy
  • 22. Page 22 “There are only two hard things in Computer Science: cache invalidation and naming things" - Phil Karlton Model Resource Continuous Integration Code Generation Migrate Resource
  • 23. Page 23 Include capability for aliasing fields in the mapping engine.  Ensure barrier of entry for API is low (pit of success).  Technical governance process can help.  Keep consumers of API front of mind (internal vs external).  Leverage existing vocabularies i.e. Schema.org and Dublin Core® Consistent naming is key Model Resource Continuous Integration Code Generation Migrate Resource
  • 24. Page 24  When dealing with legacy programs it’s not always possible to get optimal outcome through mapping alone.  Determine what an acceptable level of compromise is and when a re- write is required. Model Resource Continuous Integration Code Generation Migrate Resource Define how much compromise is acceptable
  • 25. Page 25 Continuous Integration Build CI Server JGIT Team City Version Control System Master z/OS FTP Pulls cies Artifact Repository Resolve Nexus Code Generation Model Resource Continuous Integration Code Generation Migrate Resource Resolve / Publish /
  • 26. Page 26  We generate a number of outputs for each resource bundle › Java classes › Documentation / API Descriptions › Manifests  Code generation tooling should be scalable and robust. We chose Xtend a component of the Xtext Eclipse project.  Generated code still needs to be debugged occasionally. Focus on producing idiomatic Java code.  Don’t generate everything. Be pragmatic and avoid putting complex business logic in templates. Model Resource Continuous Integration Code Generation Migrate Resource
  • 27. Page 27 Abstract consumers from legacy data through thin data transformations  Leverage standard formats for values to keep barrier for consuming data low.  Use ISO8601 for dates. We massage these values quite extensively.  For monetary amounts we use currency base unit as String plus ISO4217 currency code. Protect consumers from legacy data inconsistencies Model Resource Continuous Integration Code Generation Migrate Resource
  • 28. Page 28 Ensure your APIs are easily accessible to consumers.  Provide a service catalogue detailing root URI for each API.  We leverage Open API Initiative (f.k.a. Swagger) for API descriptions. › UI module provides listing of endpoints available in each environment and test harness to invoke them. › Extensive tooling around the standard (i.e. AsciiDocs, IBM DataPower). › Version 2.0 is not a perfect fit for hypermedia APIs. Discoverability and Description Model Resource Continuous Integration Code Generation Migrate Resource
  • 29. Page 29 Model Resource Continuous Integration Code Generation Migrate Resource  The resource bundle is associated with corresponding PL/1 programs and promoted as an atomic unit.  Dependency mapping ensures that Copybook and corresponding Java resources remain in sync.  CICS bundles installed using direct JCL commands. DFHDPLOY offers support for this ‘out of the box’.
  • 31. Page 31 Liberty Profile  Lightweight dynamic profile of WebSphere Application Server (WAS).  Modular architecture based on OSGi.  Fast start up. ~5 seconds fully configured.  Strong RACF Integration.  Regular release cycles.  Great development tools and integration with Eclipse.  Sensible default configuration.
  • 33. Page 33 The Road To Production Feb 2015: Project Kick-off July 2015: Liberty deployed to Production with 1 bundle September 2015: 1st App/System Consumer October – Dec 2015: Weekly bundle releases Jan 2016: 15 bundles deployed 20 RESTful operations CORE DEVELOPMENT TEAM: JAVA PL/1 SYS PROG March 2015: Dual version CICSPlex March 2016: 28 bundles deployed 52 RESTful operations
  • 34. Page 34 Where to next - Scaling Horizontally PRIME2 Document Database Customer Relationships Graph Database Customer Search Customer Reporting Denormalised Relational Schema READS WRITES
  • 37. Page 37 JSON is the lingua franca for modern web APIs http://www.google.com/trends/explore?q=xml+api#q=xml%20api%2C%20json%20api&cmpt=q JSONXML