Download - NRB - LUXEMBOURG MAINFRAME DAY 2017 - IBM Z
1 © 2015 IBM Corporation© 2017 IBM Corporation
Z
IBM Z and it’s place in an Innovative Journey
Frank van der Wal
[email protected] Transformation Specialist, IBM Europe
2 ©2017 IBMCorporation2 © 2017 IBM Corporation2 ©2017 IBMCorporation2 © 2017 IBM Corporation
2
The digital shift: consumerisation of IT; digital business and the API Economy
3 ©2017 IBMCorporation3 © 2017 IBM Corporation3 ©2017 IBMCorporation3 © 2017 IBM Corporation
The Hybrid Cloud Challenge… fueled by the API Economy
sources: programmableweb.com, venturescanner.com
Over18,401publicAPIsandGrowinghttps://www.programmableweb.com/category/all/apis
4 ©2017 IBMCorporation4 © 2017 IBM Corporation4 ©2017 IBMCorporation4 © 2017 IBM Corporation
The Hybrid Cloud Challenge… fueled by the API Economy
sources: programmableweb.com, venturescanner.com
Over18,401publicAPIsandGrowinghttps://www.programmableweb.com/category/all/apis
Flexibility and speed to market of new solutions
Monetization of existing back-end services
Reuse of existing applications
Novel, Innovative and Enhanced client experiences
Applications do not (necessarily) have to be re-written
5 ©2017 IBMCorporation5 © 2017 IBM Corporation5 ©2017 IBMCorporation5 © 2017 IBM Corporation
Building the solution for an API Economy
6 ©2017 IBMCorporation6 © 2017 IBM Corporation
Just to get in sync…
REST APIApplicationProgrammableInterface
Tointeract withITresources‘somewhereelse’
WeneedVERBs
7 ©2017 IBMCorporation7 © 2017 IBM Corporation
Just to get in sync…
REST APIhttps://maps.googleapis.com/maps/api/geocode/json?latlng= 49.6073558,6.1082088
transport server path query
Atypical requestforretrievingdatafromaremoteITresource
Atypical requestforcreatinganITresource
Atypical requestforupdatinganITresource
8 ©2017 IBMCorporation8 © 2017 IBM Corporation
Just to get in sync…
REST API
ToexchangedataRESTuses asaformat:
{"First_Name": "John","Last_Name" : "Smith","Address" : ”Downing Str","City" : "London","Sex" : "M", "ZIP" : "60601"
}
{ "results" : [ { "address_components" : [ { "long_name" : "2", "short_name" : "2", "adminstration” : "rooftop","types" : [ "street_number" ]
},...
9 ©2017 IBMCorporation9 © 2017 IBM Corporation
Just to get in sync…
REST APIhttps://maps.googleapis.com/maps/api/geocode/json?latlng=49.6073558,6.1082088
10 ©2017 IBMCorporation10 © 2017 IBM Corporation10 ©2017 IBMCorporation10 © 2017 IBM Corporation
Right … OK REST API and JSON. Got it… (I think). But I’ve got:
How to get to:
11 ©2017 IBMCorporation11 © 2017 IBM Corporation11 ©2017 IBMCorporation11 © 2017 IBM Corporation
IBM to the rescue à z/OS Connect Enterprise Edition
z/OS Connect!
12 ©2017 IBMCorporation12 © 2017 IBM Corporation12 ©2017 IBMCorporation12 © 2017 IBM Corporation
z/OS Connect’s purpose in life:
{"ca_return_code": 0"ca_response_message": "ORDER SUCCESSFULLY PLACED"
}
https://server.com/catalogManager/orders
CICS
IMS
DB2
MQ
IBMZ
DataConversion
DiscoveryFunction
AuditFunction
LoggingFunction
GranularAuthorization
CICS
IMS
DB2
Custom
REST client
RESTJSON
MQ
WAS z/OS
3rd Party
Service Provider
z/OS Connect EE V3 runtime
1. Liberty is provided as a runtime.
2. Backend connectivity is provided with "service provider" code.
3. ‘Interceptors" and provide function that is called for each request that arrives.
4. Both the "service provider" and "interceptor" interfaces are extensible.
1
3
2
4
Liberty z/OS Runtime
z/OS Connect EE V3
… all is done by configuring, not coding!
What about calling external APIs from my z/OS assets?
14
Use API requester to call external APIs from z/OS assets
15
APIs in the enterprise…
So, we have APIs into IBM Z resources…
16
EnterpriseApplications
EnterpriseData
Enterprise Transaction Processing
CICSIMS
BatchWAS
Systems of Record
• Expose them?
• Rate-limit them?
• Socialise them?
• Secure them?
• Monitize them?
• Integrate them?
• ...
Building the solution
An enterprise solution for Develop, Secure, Run and Manage APIs
An enterprise solution for securelyexposing IBM Z assets as REST APIs
An example
Banking Intelligent
Virtual Assistant
Interacts with
Customer on vacation
Cloud & Cognitve API Banking Industry
https://www.youtube.com/watch?v=bOc3rtq4UHo
Natural Language Classifier
Conversation Alchemy LanguageText to SpeechSpeech to Text
Input data
Output data
Region :
§ Virtual Banking Advisor defined by :
§ A Chatbot (for communicating)
§ A Cognitive Engine (for thinking and making decisions)
Implementation
Customer on Vacation
Interacts with CognitiveEnginechatbot
20 ©2017 IBMCorporation20 © 2017 IBM Corporation20 ©2017 IBMCorporation20 © 2017 IBM Corporation
The Hybrid Cloud: IBM Z as an equal contributor
Application
Application
Application
Application
Microservicesapplications
µService
µServiceµService
µService
Suite of Enterprise API services
Surfaced APIs
21 ©2017 IBMCorporation21 © 2017 IBM Corporation21 ©2017 IBMCorporation21 © 2017 IBM Corporation
The Hybrid Cloud: IBM Z as an equal contributor
Application
Application
Application
Application
Microservicesapplications
µService
µServiceµService
µService
Suite of Enterprise API services
Surfaced APIs
Internet of Things
22 ©2017 IBMCorporation22 © 2017 IBM Corporation22 ©2017 IBMCorporation22 © 2017 IBM Corporation
Give it a go!
http://ibm.biz/ibmztrial
23 ©2017 IBMCorporation23 © 2017 IBM Corporation23 ©2017 IBMCorporation23 © 2017 IBM Corporation
API ENABLE EXISTING APPS TO OPEN NEW BUSINESS OPPORTUNITIES
IBM Z Digital Transformation
IBM Z Digital Transformation Journey
z/OSConnectEE
CHOOSE THE RIGHT PLATFORM TO LEVERAGE THE RIGHT SKILLS
ApplicationPerformanceManagement
EMBRACE COGNITIVE DEV & OPS TO REDUCE COSTSAND IMPROVE RESILIENCY
IOAzCDP
z/OSMF
OPTIMIZE DEV & OPS TO IMPROVE BUSINESS
AGILITY
© Copyright IBM Corporation 2017. Technical University/Symposia materials may not be reproduced in whole or in part without the prior written permission of IBM.
IBM Systems Technical Events – ibm.com/training/events
© 2017 IBM Corporation
The Motivation for Modern Languages on IBM Z
25 ©2017 IBMCorporation25 © 2017 IBM Corporation25 ©2017 IBMCorporation25 © 2017 IBM Corporation
Modern Application Design
Public Cloud Services
On-prem Services
User-facing Client Apps
Things / Sensors
End Users
26 ©2017 IBMCorporation26 © 2017 IBM Corporation26 ©2017 IBMCorporation26 © 2017 IBM Corporation
Skills: Millions of Available Developers
Public Cloud Services
On-prem Services
User-facing Client Apps
Things / Sensors
End Users
Developer Experience
Java Node.js
Swift
JavaNode.js
Swift
JavaNode.js
Swift
27 ©2017 IBMCorporation27 © 2017 IBM Corporation27 ©2017 IBMCorporation27 © 2017 IBM Corporation
What is Node.js ?
• Server-side JavaScript platform
• Built on Google's V8 JavaScript engine
• Designed to build scalable network applications
• Lightweight and efficient
• Uses an event-driven, non-blocking I/O model
28 ©2017 IBMCorporation28 © 2017 IBM Corporation28 ©2017 IBMCorporation28 © 2017 IBM Corporation
What is Node.js ?
29 ©2017 IBMCorporation29 © 2017 IBM Corporation29 ©2017 IBMCorporation29 © 2017 IBM Corporation
What is Node.js ?
• Server-side JavaScript platform
• Built on Google's V8 JavaScript engine
• Designed to build scalable network applications
• Lightweight and efficient
• Uses an event-driven, non-blocking I/O model
• Module-driven, highly scalable approach to application design and development
• Emerging as the favoured choice for digital transformation
• Steadily establishing its place within enterprises
30 ©2017 IBMCorporation30 © 2017 IBM Corporation30 ©2017 IBMCorporation30 © 2017 IBM Corporation
Why Node.js?
• 510k modules and growing!
• NPM: Node Package Manager
• Repository of community contributed modules
(Sep. 2017 – modulecounts.com)
Productivity
• Event-driven, single-threaded model
• Enables organizations to efficiently deploy their development resources
Simplicity
• Node.js leverages the underlying async I/O support in z/OS
• Thousands of concurrent connections with minimal overhea
• Best suited for data-intensive (I/O bound) applications.
Scaleable
31 ©2017 IBMCorporation31 © 2017 IBM Corporation31 ©2017 IBMCorporation31 © 2017 IBM Corporation
Basic node.js code…
var http = require ("http");
var server = http.createServer( function (request, response) {
// Send the HTTP header // HTTP Status: 200 : OK
response.writeHead(200, {'Content-Type': 'text/plain'});
// Send the response body as "Hello World" response.end('Hello World\n');
});
server.listen( 8081);
// Console will print the message
console.log('Server running at http://127.0.0.1:8081/');
Require module “http” and assign it to variabele “http”http is an object with several methods
Make a new instance of http and call it “server”
The callback function is given a “request” and “response” variabele.
Comments
http header dictates which information will be sent back
Send info to client
Start server and listen to port 8081
Console log displays infor
32 ©2017 IBMCorporation32 © 2017 IBM Corporation32 ©2017 IBMCorporation32 © 2017 IBM Corporation
Usage Scenarios
Lift and Shift to take advantage of co-location of Node.js applications with critical assets on z/OS (i.e., applications and data)
• Significantly reduce response time for accessing data and increase transaction throughput
Orchestration• Manage MicroServices and APIs
Caching of Read-only transactions
Presentation Layer• Dashboard and Portals
Selectively offload CICS and IMS transactions• Use Node.js for serving content that does not require high performance• Easier and cheaper to develop
© Copyright IBM Corporation 2017. Technical University/Symposia materials may not be reproduced in whole or in part without the prior written permission of IBM.
IBM Systems Technical Events – ibm.com/training/events
© 2017 IBM Corporation
Swift
34 ©2017 IBMCorporation34 © 2017 IBM Corporation34 ©2017 IBMCorporation34 © 2017 IBM Corporation
Swift Ecosystem
34IBM Z / © 2017 IBM Corporation
WWDC 2014Apple releases a new
programming language called “Swift”
WWDC 2015Apple announces
to open source Swift
“Swift is growing faster than anything
else we track”
June 2014June 2015
July 2015
Nov. 2015
Apple releases Swift as Open Source.
Dec. 3, 2015
Jan. 2016Programming Language
Rankings Swift “meteoric rise” continues. “Swift moves up one spot from #18 to #17 Y/Y…and is within hailing distance of out
Tier 1 languages”.
Introducing the IBM Swift Sandbox
Feb 2016
IBM InterConnect 2016
IBM to bring Swift to the cloud to radically
simplifying end-to-end development of apps
Swift #2 “Most Loved”
Nov. 2016
Mar. 2016
Tokyo
Sep. 2016
NYC
IBM Bluemix Runtime for Swift
ü Industry backingü Developers acceptance
ü Tools & packagesü Conferences & meetups
35 ©2017 IBMCorporation35 © 2017 IBM Corporation35 ©2017 IBMCorporation35 © 2017 IBM Corporation
Why Swift?
Safe
Modern
4 4.3 15.8
134.2
020406080
100120140160
Dur
atio
n (s
)(lo
wer
is b
ette
r)
Performance: Fast
15
32.225.3
54.6
0102030405060
Mem
ory
Usa
ge (M
B)(lo
wer
is b
ette
r)
Performance: Low Memory
Type SafeAutomatic Initialization
36 ©2017 IBMCorporation36 © 2017 IBM Corporation36 ©2017 IBMCorporation36 © 2017 IBM Corporation
We have already started the journey
• IBM has been working with the open source community to improve Swift for
the server platform, with many changes already integrated into Swift 4.0 and
onward
• IBM has already enabled LinuxONE on IBM Swift Sandbox
• IBM has pushed all code for LinuxONE to github
• Swift 3.0 was open source released in September 2016 with full LinuxONE
support
• IBM is working to bring Swift to z/OS to modernize the whole z ecosystem
(contact us to join our beta program).
Wrap up
DigitalTransformationfueledbytheAPIEconomy
IBMZassetscanbesurfacedas,andcallRESTAPIs
IBMZisanequalcontributorintheHybridCloudspace
ModernizationonIBMZ-->newlanguages-->FullStackdevelopers