Modern Languages in the Enterprise - Joran Siu IBM Runtime Technologies zCouncil - Phoenix, AZ Feb 28, 2018 - IBM Z Customer ...

Page created by Ruby Morris
 
CONTINUE READING
Modern Languages in the Enterprise - Joran Siu IBM Runtime Technologies zCouncil - Phoenix, AZ Feb 28, 2018 - IBM Z Customer ...
Modern Languages in the
Enterprise

Joran Siu
IBM Runtime Technologies
joransiu@ca.ibm.com

zCouncil – Phoenix, AZ
Feb 28, 2018
Modern Languages in the Enterprise - Joran Siu IBM Runtime Technologies zCouncil - Phoenix, AZ Feb 28, 2018 - IBM Z Customer ...
Please note
              IBM’s statements regarding its plans, directions, and intent are subject to change
              or withdrawal without notice and at IBM’s sole discretion.

              Information regarding potential future products is intended to outline our general
              product direction and it should not be relied on in making a purchasing decision.

              The information mentioned regarding potential future products is not a commitment,
              promise, or legal obligation to deliver any material, code or functionality. Information about
              potential future products may not be incorporated into any contract.

              The development, release, and timing of any future features or functionality described for
              our products remains at our sole discretion.

              Performance is based on measurements and projections using standard IBM benchmarks
              in a controlled environment. The actual throughput or performance that any user will
              experience will vary depending upon many factors, including considerations such as the
              amount of multiprogramming in the user’s job stream, the I/O configuration, the storage
              configuration, and the workload processed. Therefore, no assurance can be given that an
              individual user will achieve results similar to those stated here.

                                                                                                               2
Modern Languages in the Enterprise - Joran Siu IBM Runtime Technologies zCouncil - Phoenix, AZ Feb 28, 2018 - IBM Z Customer ...
Notices and disclaimers

© 2018 International Business Machines Corporation. No part of this       Performance data contained herein was generally obtained in a
document may be reproduced or transmitted in any form without             controlled, isolated environments. Customer examples are presented as
written permission from IBM.                                              illustrations of how those
U.S. Government Users Restricted Rights — use, duplication or             customers have used IBM products and the results they may have
disclosure restricted by GSA ADP Schedule Contract with IBM.              achieved. Actual performance, cost, savings or other results in other
Information in these presentations (including information relating to     operating environments may vary.
products that have not yet been announced by IBM) has been reviewed       References in this document to IBM products, programs, or services
for accuracy as of the date of initial publication and could include      does not imply that IBM intends to make such products, programs or
unintentional technical or typographical errors. IBM shall have no        services available in all countries in which IBM operates or does
responsibility to update this information. This document is distributed   business.
“as is” without any warranty, either express or implied. In no event,     Workshops, sessions and associated materials may have been prepared
shall IBM be liable for any damage arising from the use of this           by independent session speakers, and do not necessarily reflect the
information, including but not limited to, loss of data, business         views of IBM. All materials and discussions are provided for
interruption, loss of profit or loss of opportunity. IBM products and     informational purposes only, and are neither intended to, nor shall
services are warranted per the terms and conditions of the agreements     constitute legal or other guidance or advice to any individual participant
under which they are provided.                                            or their specific situation.
IBM products are manufactured from new parts or new and used parts.       It is the customer’s responsibility to insure its own compliance
In some cases, a product may not be new and may have been previously      with legal requirements and to obtain advice of competent legal counsel
installed. Regardless, our warranty terms apply.”                         as to the identification and interpretation of any relevant laws and
Any statements regarding IBM's future direction, intent or product        regulatory requirements that may affect the customer’s business and
plans are subject to change or withdrawal without notice.                 any actions the customer may need to take to comply with such
                                                                          laws. IBM does not provide legal advice or represent or warrant that its
                                                                          services or products will ensure that the customer follows any law.

                                                                                                                                                   3
Modern Languages in the Enterprise - Joran Siu IBM Runtime Technologies zCouncil - Phoenix, AZ Feb 28, 2018 - IBM Z Customer ...
Notices and disclaimers
continued
Information concerning non-IBM products was obtained from the                 IBM, the IBM logo, ibm.com and [names of other referenced IBM
suppliers of those products, their published announcements or other           products and services used in the presentation] are trademarks of
publicly available sources. IBM has not tested those products about this      International Business Machines Corporation, registered in many
publication and cannot confirm the accuracy of performance,                   jurisdictions worldwide. Other product and service names might
compatibility or any other claims related to non-IBM                          be trademarks of IBM or other companies. A current list of IBM
products. Questions on the capabilities of non-IBM products should be         trademarks is available on the Web at "Copyright and trademark
addressed to the suppliers of those products. IBM does not warrant the        information" at: www.ibm.com/legal/copytrade.shtml.
quality of any third-party products, or the ability of any such third-party   .
products to interoperate with IBM’s products. IBM expressly disclaims
all warranties, expressed or implied, including but not limited to, the
implied warranties of merchantability and fitness for a purpose.
The provision of the information contained herein is not intended to, and
does not, grant any right or license under any IBM patents, copyrights,
trademarks or other intellectual property right.

                                                                                                                                                  4
Modern Languages in the Enterprise - Joran Siu IBM Runtime Technologies zCouncil - Phoenix, AZ Feb 28, 2018 - IBM Z Customer ...
Number of Java developers worldwide is:                                                 Most Used Programming Languages

14M
                                                                                              Increase from previous year

                                                                                              Same as previous year

                                                                                              Decrease from previous year

Source: Global Developer Population and Demographics Survey: Volume I,   Source: Stack OverFllow Developer Survey January 12th to February 6th 2017
© 2016 Evans Data Corp.                                                                                                                               5
Modern Languages in the Enterprise - Joran Siu IBM Runtime Technologies zCouncil - Phoenix, AZ Feb 28, 2018 - IBM Z Customer ...
Why do we need
modern
languages on
IBM Z?
                 6
Modern Languages in the Enterprise - Joran Siu IBM Runtime Technologies zCouncil - Phoenix, AZ Feb 28, 2018 - IBM Z Customer ...
Why do we need modern languages on IBM Z?

                                                                                 Skills: Millions of
More than                                                                  1 Available Developers

14M
developers are using Java, JavaScript, and
Swift, worldwide.

Source: Global Developer Population and Demographics Survey: Volume I, ©
2016 Evans Data Corp.
                                                                                                                       7
Modern Languages in the Enterprise - Joran Siu IBM Runtime Technologies zCouncil - Phoenix, AZ Feb 28, 2018 - IBM Z Customer ...
Rewrite       Reuse

Remember:
Your existing
code is a
valuable
asset!                          ?
                Get the best of the two strategies.
                                                      8
Modern Languages in the Enterprise - Joran Siu IBM Runtime Technologies zCouncil - Phoenix, AZ Feb 28, 2018 - IBM Z Customer ...
Why do we need modern languages on IBM Z?

                Leverage best fit
       CICS
              2 language for digital
                transformation
 IMS

WAS

 MQ

       DB2
                                                          9
Modern Languages in the Enterprise - Joran Siu IBM Runtime Technologies zCouncil - Phoenix, AZ Feb 28, 2018 - IBM Z Customer ...
Why do we need modern languages on IBM Z?

       CICS
                    Put your back-end closer
              3 to your data
 IMS

WAS

 MQ

       DB2

                                                          10
Java

       11
Why Java?

Two
pervasive
                There are
                                                 80%
technologies…
                14 million                     of the world’s corporate data
                                              resides on or originates on the
                            Java developers
                                                mainframe

…combined for
powerful
performance…
Java Road Map

                                                               Java 7

                                                                                                    Java 8
                    Java 6

                                                                                                                                                   Java 9
           EE 5

                                                 EE 6

                                                                                         EE 7

                                                                                                                                          EE 8
    2005          2006       2007       2008   2009     2010            2011      2012   2013            2014             2015     2016          2017           2018

                                                                                                                                                    SDK 8.0.5
                                                                        SDK 7.0

                                                                                          SDK 7.1

                                                                                                                SDK 8.0
                              SDK 6.0

IBM Java 6.0                  IBM Java 6.0.1/Java 7       IBM Java 7 SR3 + 7.1              IBM Java 8                           IBM Java 8 SR5
• z10™ Exploitation       • z196™ Exploitation           • zEC12™ Exploitation          • z13™ Exploitation     • z14™ Exploitation
     • DFP for BigDecimal      • OOO Pipeline                 • Transactional Execution      • SIMD                  • Pause-Less GC
     • Large Pages             • 70+ New Instructions         • 1MB(p), 2GB large            • SMT                   • Crypto accel.
     • New ISA features   • Improvements in                     pages                        • Crypto accel.         • True Random Number
• Improvements                 • Performance                                            • Improvements in              Gen.
                                                              • Hints/traps
• XML parser Improvements      • GC Technology                                               • Performance, RAS      • DAA PackedDecimal
                                                              • zEDC for zip accel.
• Improvements in         • JZOS / Security Enhancements      • Runtime                      • Monitoring              accel.
     • Performance                                              Instrumentation                                 • Improvements in
     • RAS, Class Sharing                                • Improvements in                                           • Performance
                                                              • Performance                                          • RAS
                                                              • RAS, Monitoring
                                                         • Data Access Accelerator

                                                                                                                                                                       13
Community Java Road Map
                                                        LTS

                                              Java 10

                                                        Java 11

                                                                  Java 12

                                                                            Java 13
   Java 8

                                     Java 9
                                                                                      …

  2014       2015      2016      2017              2018                2019           2020   …

• Proposed release cadence every 6 months
   • Faster innovation and introduction of features!
• Java 9 EOS Mar. 2018, Java 10 EOS Sep. 2018
• Java 11 (18.9) is a long term support (LTS) release (Sep. 2018)
• Recommendation for enterprise adoption è LTS releases
   • IBM JDK focus will be on LTS releases moving forward
                                                                                                 14
Aggregate Hardware, Java SDK and WAS/Liberty
Software for DayTrader Benchmark on Linux on z
                                     10                                                                                                            +5%
                                           Hardware Improvement                                                                        +7%               8.9
    Aggregate Performance Estimate

                                      9                                                                     +65%          +7%                8.5
                                                                                                                                8.0
                                      8    Software Improvement                                +10%                7.4
                                                                                    +35%
                                      7                                   +26%
                                                                +22%
                                      6               +19%
                                             +67%                                                     4.5
                                      5                                                     4.1
                                      4                                            3.0
                                      3                                 2.4
                                                     1.7       2.0
                                      2     1.0
                                      1     Java
                                                     Java     Java      Java      Java      Java      Java         Java         Java       Java       Java
                                                       5        6         6       6.0.1     6.0.1       7            7           7.1       8.0.5      8.0.5
                                      0       5

                                           Version Version   Version   Version   Version   Version   Version     Version     Version     Version     Version
                                          6.1 on z9 6.1 on   7.0 on    7.0 on    8.5 on    8.5 on    8.5 on      8.5 on      8.5 on      8.5 on      8.5 on
                                                     z10      z10       z196      z196     zEC12     zEC12        z13         z13         z13         z14
                                                                                                                 w/SMT       w/SMT       w/SMT       w/SMT
§                               8.9x aggregate incremental hardware + software improvements
                                                                                                             (Controlled measurement environment, results may vary)

                                                                                                                                                                      15
IBM z14 – Optimized for Java
                                                  New 5.2 GHz 10-core Processor Chip
Pause-Less Garbage Collection                     672 MB L4 cache: Optimized for data serving
 • Guarded Storage Facility                       Improved SMT-2 performance (zIIP + IFLs)
Cryptographic Function (CPACF)
 • Improved performance of crypto co-processors
 • GCM, SHA-3 hardware acceleration
 • True Random Number Generator
Single Instruction Multiple Data (SIMD)
 • Improved performance
 • 32-bit floating point enhancements
 • Packed Decimals support
New Instructions
 • Hot cache line hints
 • Arithmetic half-word operations
IBM z14 – Pause-Less Garbage Collection

• Allows Java GC to run concurrently with
  applications
   • More predictable response-times
   • High-performance transaction processing
     at scale

• Java GC-tuning made easy
   • Enable with single option:
     -Xgc:concurrentScavenge

• IBM Java 8 SR5 + IBM z14
   •   z/OS 2.3 or z/OS 2.2 + APAR OA51643
                                               17
Java Store Inventory and Point of Sale Application

• High scavenge pause times
  made this application a
  candidate of Pause-Less GC

• Up to 3.4x better throughput for
  response-time constrained
  Service Level Agreements (SLAs)

• Up to 10x better average GC
  pause-times                        (Controlled measurement environment, results may vary)

                                                                                       18
Node.js

          19
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, single-threaded, non-blocking I/O model
– Best suited for data-intensive (i.e. I/O bound) applications
Provides a module-driven, highly scalable approach to application design and development
that encourages agile practices

 Emerging as the favored choice for digital transformation - Steadily establishing its
                             place within enterprises                                      20
Node.js Ecosystem

Largest repository of modules:
– NPM: Node Package Manager
  • Repository of community contributed modules
  • 590k modules and growing!

  • 3x growth rate vs other runtimes

Enterprise clients can easily augment
existing IBM Z applications to provide timely
response to customer requirements driven
by digital transformation
                                                  Feb 2018 – modulecounts.com

                                                                                21
IBM SDK for Node.js – z/OS, V6
Ann: July 17, 2017; GA: Sept 8, 2017                                                Enterprise Offering
                                                                                    – OTC + S&S

                                                                                    Single PID (5655-SDK)
§ Based on Node.js V6                                                               consisting of Node.js and new
§ Runs on z196, zEC12, z13 and z14 (z/OS v2.2 and v2.3)                             C/C++ compiler
                                                                                    – C++11 compliant, 64 bit &
                                                                                       USS
                                                                                    – For NPM and compute
                                                                                       intensive portion of
 Node.js                                                                               application
               Node Libraries                                                       Single Install with SMP/E
                          Node Binding Layer                             C/C++      2 year support model
                                                           Other:        Compiler
                       libuv
                                       OpenSSL

                                                 Crypto    ICU                      Container Pricing
                                                           Cares
 JavaScript Engine                               library   Zlib                     – Workload not eligible for zIIP
                       Asynchronou
                       s I/O library
                                                           http_parser                offload
                                                           …
                                 z/OS v2.2 or z/OS v2.3

                                                                                                                       22
Container pricing – 3 supported solutions announced with z14

  The Application Development and Test Solution will provide highly competitive stand-alone pricing for
  z/OS based development and test workloads. Modern DevOps tooling can be optionally added at
  uniquely discounted prices.

  The New Application Solution will provide a highly competitive stand-alone priced offering for new z/OS
  applications, such as CICS TS or WebSphere applications, that are not currently running on any Z
  platform server. This is the strategic replacement for the current zCAP and IWP priced offerings.

  The Payments Solution will provide a ‘per payment’ pricing option for IBM Financial Transaction
  Manager for z/OS deployments. This new offering directly ties operational cost to business value by
  basing the price on the number of payments processed, rather than capacity used to process them.

                                                                                                            23
IBM SDK for Node.js – z/OS: Value to Enterprises

Take advantage of the enormously popular and growing
technology on IBM Z to power digital transformation.

Access a vast pool of 11+ million JavaScript developers

Develop business logic using Node.js on z/OS or take
advantage of its great cross-platform support and deploy
Node.js applications written on x86 to Z

Take advantage of co-location of Node.js applications with
critical assets (i.e. applications and data) on z/OS
– Reduce response time and increase throughput

                                                             24
IBM SDK for Node.js – z/OS: Value to Development Organizations
 Use a common language (i.e. JavaScript) to develop
 applications throughout the application stack (i.e. client
 & server).

 Increases efficiency, simplifies build process, and
 quickens time to market.

 Leverage over 590k “good-to-go” NPM packages that
 can be used instantly in applications

 Use module-driven, highly scalable approach to
 application design, development, and deployment

 Encourages Agile practices

                                                              25
Node.js z/OS Development at IBM Z

 – Open source via GitHub pull requests

     - V8:      github.com/ibmruntimes/v8z         (Branch: 5.1-zos)

     - Node: github.com/ibmruntimes/node      (Branch: v6.x.zos)

     - libuv:   github.com/libuv/libuv        (Branch: v1.11 or newer)

 – Matches and extends community version - shares 99% of code!

     - Security Fixes, License + Code scans

 – Build and contribute npm modules

 – Join our community: ibm.biz/nodejs-community
                                                                         26
Connecting to z/OS assets
z/OS Connect EE
– Access z/OS assets that are exposed through IBM z/OS Connect EE
– zosconnect-node: https://github.com/zosconnect/zosconnect-
   node
– loopback connector for z/OS Connect EE:
   https://github.com/strongloop/loopback-connector-zosconnectee
                                                                            z/OS Connect
DB2                                                                                                    Db2
– npm module to provide direct access to DB2 on z/OS (soon!)
   https://github.com/ibmdb/node-ibm_db
                                                                                           CICS    COBOL
CICS                                                                  Db2        IMS                PL/I
                                                                                                    Apps
– A sample of Node.js application interacting with existing CICS                           COBOL

   asset on z/OS via EXCI https://ibm.co/2vG1KTb
VSAM connector                                                                                             z/OS
– npm module to interact with z/OS VSAM datasets and records
   https://www.npmjs.com/package/vsam.js
 z/OS Node Accessor
– Module to interact with z/OS MVS dataset and USS files and simple
   JCL operations: https://github.com/IBM/zos-node-accessor
More to come…
                                                                                                             27
AcmeAir: Superior Performance on LinuxONE
                         3
                                                                          2.5
  Relative Throughput
                        2.5

                         2

                        1.5

                         1

                        0.5

                         0
                              x86 Alternative                   Linux on IBM z14
                                                RHEL 7.1 – IBM SDK for Node.js 6.9.0
                                                (Controlled measurement environment, results may vary)

                                                                                                         28
Node.js V6 Octane Performance z13 Vs z14 on z/OS 1

                           1.4

                           1.2                                 15%
  Relative Geomean Score

                            1

                           0.8

                           0.6

                           0.4

                           0.2

                            0
                                             V6 - z13          V6 - z14

  1     Controlled measurement environment, results may vary
                                                                          29
Node.js – z/OS Developer Journey
Credit Card Rewards Program Case-Study:
– Node.js application based on LoopBack framework

– Exposes Rewards APIs while keeping all customer and credit-card
  data secure

               https://developer.ibm.com/code/2018/02/13/create-and-deploy-a-node-js-application-on-zos/
                                                                                                           30
Sample Scenario:
Orchestrating Microservices                           Microservice API   CICS

                                                                                IMS
•   Often, there exists a mismatch between
    granularity of APIs of individual services, and
    data a microservice needs to provide.
                                                                                 WAS
•   Data flow requires multiple services to
    interact in some manner

•   Leverage the consistency models of z/OS                                     MQ
    data stores

•   Leverage the colocation to z/OS transactions
    and assets for better response time and
                                                                         DB2
    security

                                                                                      31
Usage Scenarios on z/OS

  Move existing Node.js applications to take advantage of co-location with critical assets on
  z/OS (i.e. applications and data)
  • Significantly reduce response time for accessing data and increase transaction
     throughput

  API Orchestration/Microservices management
  • Co-ordinate APIs from multiple sources that need to be called, coordinated, merged
    or routed in the background
  • Create and Manage Micro-services

  Manage Caching of Read-only transactions
  • Reduce CPU

  Presentation Layer
  • Dashboard and Portals

                                                                                                32
Trials

Trial version of IBM SDK Node.js - z/OS now available on
Shop z
– 90 days – no Charge
– Evaluation License
– ibm.biz/nodejs-zos-trial

Customers can continue to use IBM SDK Node.js - z/OS
Trial from DeveloperWorks for evaluation
– Refreshed with GA version
– Download from ibm.biz/nodejs-zos-trial-pax

                                                           33
Swift

        34
2014                         1/2015            6/2015                                  1/2016       6/2016           1/2017           6/2017

                                      1 JavaScript      1 JavaScript                 1 JavaScript             1 JavaScript     1 JavaScript     1 JavaScript
“Swift is                             2 Java            2 Java                       2 Java                   2 Java           2 Java           2 Java

growing                               3 PHP             3 PHP                        3 PHP                    3 PHP            3 Python         3 Python

                                                                          Swift became open source
                                      4 Python          4 Python                     4 Python                 4 Python         4 PHP            4 PHP

faster                                5 C#
                                      5 C++
                                                        5 C#
                                                        5 C++
                                                                                     5 C#
                                                                                     5 C++
                                                                                                              5 C#
                                                                                                              5 C++
                                                                                                                               5 C#
                                                                                                                               5 C++
                                                                                                                                                5 C#
                                                                                                                                                6 C++
than            Swift is introduced
                                      5 Ruby            5 Ruby                       5 Ruby                   5 Ruby           7 CSS            7 CSS
                                      8 CSS             8 CSS                        8 CSS                    8 CSS            7 Ruby           8 Ruby
anything                              9C                9C                           9C                       9C               9C               9C

else we                               10 Objective-C
                                      11 Perl
                                                        10 Objective-C
                                                        11 Perl
                                                                                     10 Objective-C
                                                                                     11 Shell
                                                                                                              10 Objective-C
                                                                                                              11 Shell
                                                                                                                               10 Objective-C
                                                                                                                               11 Scala
                                                                                                                                                10 Objective-C
                                                                                                                                                11 Swift
track”                                11 Shell
                                      13 R
                                                        11 Shell
                                                        13 R
                                                                                     12 Perl
                                                                                     13 R
                                                                                                              12 R
                                                                                                              13 Perl
                                                                                                                               11 Shell
                                                                                                                               11 Swift
                                                                                                                                                12 Shell
                                                                                                                                                12 Scala
                                      14 Scala          14 Scala                     14 Scala                 14 Scala         14 R             14 R
July 2015                             15 Haskell        15 Go                        15 Go                    15 Go
                                      16 Matlab         15 Haskell                   15 Haskell               16 Haskell
                                      17 Go             17 Matlab                    17 Swift                 17 Swift
                                      17 Visual Basic   18 Swift                     18 Matlab
                                      19 Clojure        19 Clojure                   19 Clojure
                                      19 Groovy         19 Groovy                    19 Groovy
                                                        19 Visual Basic              19 Visual Basic
                                      22 Swift                                                                                    RedMonk Programming
            46 Swift                                                                                                           Language Ranking 2014-201735
Why Swift?

                      Safe

             Modern

                        Performance

                                      36
Why Swift? Performance

                       Performance: Fast                                            Performance: Low Memory
                     160                                                                        60                      54.6
                                                    134.2
                     140
                                                                                                50

                                                                           Memory Usage (MB)
                     120
 (lower is better)

                                                                            (lower is better)
                                                                                                40
    Duration (s)

                     100                                                                                  32.2
                     80                                                                         30               25.3
                     60
                                                                                                20   15
                     40
                                            15.8                                                10
                     20      4       4.3
                      0                                                                         0

                           Source: benchmarksgame.alioth.debian.org/u64q/performance.php?test=spectralnorm

                                                                                                                               37
Why Swift? Modern

        Easy to learn   Strong foundation on LLVM

        Simple to use

                                                    38
Why Swift? Safe

• Type safe
    • Helps developers refactor,
      extend, iterate on solutions.
    • Error detection at compile time
• Automatic initialization
    • Variables are automatically
      initialized
    • Memory is automatically
      allocated and managed.

                                        39
IBM Toolkit for Swift – Linux on z Systems

• Core tools to develop in Swift:

      • Compiler
      • Swift Runtime
      • Libraries
      • Debugger (lldb)
      • Web framework (Kitura)
      • Package Manager

                                              https://www.ibm.com/marketplace/swift-compiler
  Community Edition      Enterprise Edition
   (free of charge)     (service & support)
                                                                                               40
Swift on z/OS – Beta

• Continuous delivery (every 1-2
  months)
• Latest packages included:
    •   Swift 4.0
    •   Swift Foundation Library
    •   Grand Central Dispatch
    •   Kitura
    •   LLBuild
• Interoperability with C, PL/I,
  assembly, VSAM, and DB2.
                                   41
Sample Scenario:
End-to-end Swift application

                              Back-end
                              ü Reuse Swift code between
                                 front-end and back-end
                              ü Easy access to current Z
                                 assets on the most secure
                                 platform
Front-end                     ü Free open source web
ü Appealing animations and       server from IBM (Kitura)
   user feedback provide
   state of the art user
   experience
                                                             Db2
ü Cross-platform (Andriod &
   iOS)

                                                                   42
Sample Scenario:
Extend COBOL business logic                                          CICS
using Swift
                                                                            IMS
•   High performance language for your core
    business applications.

•   Statically compiled language that can easily                             WAS
    fit the current DevOps process for COBOL.

•   Conforms to tight audit controls required by
    many financial institutions.                                            MQ
                                                             JSON
                                       New/additional
                                       business logic                DB2

                                                             COBOL
                                               Current
                                            business logic
                                                                                  43
Sample Scenario:                                       // Swift Program
  Call PL/I directly from Swift                          import PLITest // Import module
                                                         writepair() // C PL/I routine

 Swift supports interlanguage calls to PL/I
                                                            // Module Map
 Requirements:                                              module PLITest [system]
                                                            {
     1.   PL/I procedures compiled as 64-bit (-qlp=64)        header ”interface.h" export *
                                                            }
     2.   Swift Module Map to expose PL/I library
     3.   C bridging header to expose PL/I routines         // C Bridging header to expose PL/I functions
                                                            int writepair(void);

                                                         // PL/I procedure
                                                         write: procedure ext("writepair")
The same scenario applies for C,                                   Put List( 'Hello world' );
        C++, and PL/I                                    End write;
                                                                                                            44
You can impact the future
• We are looking for innovators and early adopters

   • For both Swift & Node.js
   • Validate user scenarios and get early
     access to the latest drivers.

• If interested, contact:

   • Joran Siu: joransiu@ca.ibm.com

   • Shereen Ghobrial: shereen@ca.ibm.com

   • Roland Koo: rkoo@ca.ibm.com

                                                     45
Thank you

Joran Siu
IBM Runtime Technologies
joransiu@ca.ibm.com

                           46
Notices and disclaimers
© 2018 International Business Machines Corporation. No part of this       Performance data contained herein was generally obtained in a controlled,
document may be reproduced or transmitted in any form without             isolated environments. Customer examples are presented as illustrations of
written permission from IBM.                                              how those

U.S. Government Users Restricted Rights — use, duplication or             customers have used IBM products and the results they may have
disclosure restricted by GSA ADP Schedule Contract with IBM.              achieved. Actual performance, cost, savings or other results in other
                                                                          operating environments may vary.
Information in these presentations (including information relating to
products that have not yet been announced by IBM) has been reviewed       References in this document to IBM products, programs, or services does
for accuracy as of the date of initial publication and could include      not imply that IBM intends to make such products, programs or services
unintentional technical or typographical errors. IBM shall have no        available in all countries in which IBM operates or does business.
responsibility to update this information. This document is distributed
“as is” without any warranty, either express or implied. In no event,     Workshops, sessions and associated materials may have been prepared by
shall IBM be liable for any damage arising from the use of this           independent session speakers, and do not necessarily reflect the views of
information, including but not limited to, loss of data, business         IBM. All materials and discussions are provided for informational purposes
interruption, loss of profit or loss of opportunity. IBM products and     only, and are neither intended to, nor shall constitute legal or other
services are warranted per the terms and conditions of the agreements     guidance or advice to any individual participant or their specific situation.
under which they are provided.
                                                                          It is the customer’s responsibility to insure its own compliance with legal
IBM products are manufactured from new parts or new and used parts.       requirements and to obtain advice of competent legal counsel as to
In some cases, a product may not be new and may have been previously      the identification and interpretation of any relevant laws and regulatory
installed. Regardless, our warranty terms apply.”                         requirements that may affect the customer’s business and any actions the
                                                                          customer may need to take to comply with such laws. IBM does not provide
Any statements regarding IBM's future direction, intent or product        legal advice or represent or warrant that its services or products will ensure
plans are subject to change or withdrawal without notice.                 that the customer follows any law.

                                                                                                                                                      47
Notices and disclaimers
continued
Information concerning non-IBM products was obtained from the                 IBM, the IBM logo, ibm.com and Aspera®, Bluemix, Blueworks Live,
suppliers of those products, their published announcements or other           CICS, Clearcase, Cognos®, DOORS®, Emptoris®, Enterprise Document
publicly available sources. IBM has not tested those products about this      Management System™, FASP®, FileNet®, Global Business Services®,
publication and cannot confirm the accuracy of performance,                   Global Technology Services®, IBM ExperienceOne™, IBM SmartCloud®,
compatibility or any other claims related to non-IBM                          IBM Social Business®, Information on Demand, ILOG, Maximo®,
products. Questions on the capabilities of non-IBM products should be         MQIntegrator®, MQSeries®, Netcool®, OMEGAMON, OpenPower,
addressed to the suppliers of those products. IBM does not warrant the        PureAnalytics™, PureApplication®, pureCluster™, PureCoverage®,
quality of any third-party products, or the ability of any such third-party   PureData®, PureExperience®, PureFlex®, pureQuery®, pureScale®,
products to interoperate with IBM’s products. IBM expressly disclaims         PureSystems®, QRadar®, Rational®, Rhapsody®, Smarter Commerce®,
all warranties, expressed or implied, including but not limited to, the       SoDA, SPSS, Sterling Commerce®, StoredIQ, Tealeaf®, Tivoli® Trusteer®,
implied warranties of merchantability and fitness for a purpose.              Unica®, urban{code}®, Watson, WebSphere®, Worklight®, X-Force® and
                                                                              System z® Z/OS are trademarks of International Business Machines
The provision of the information contained herein is not intended to, and     Corporation, registered in many jurisdictions worldwide. Other product
does not, grant any right or license under any IBM patents, copyrights,       and service names might be trademarks of IBM or other companies. A
trademarks or other intellectual property right.                              current list of IBM trademarks is available on the Web at "Copyright and
                                                                              trademark information" at: www.ibm.com/legal/copytrade.shtml.

                                                                              .

                                                                                                                                                     48
Trademarks
The following are trademarks of the International Business       The following are trademarks or registered trademarks of non-IBM companies:
Machines Corporation in the United States, other countries, or   Adobe, the Adobe logo, PostScript, and the PostScript logo are either registered
both.                                                            trademarks or trademarks of Adobe Systems Incorporated in the United States,
                                                                 and/or other countries.
Not all common law marks used by IBM are listed on this page.    Cell Broadband Engine is a trademark of Sony Computer Entertainment, Inc. in the
Failure of a mark to appear does not mean that IBM does not      United States, other countries, or both and is used under license therefrom.
use the mark nor does it mean that the product is not actively   Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the
marketed or is not significant within its relevant market.       United States, other countries, or both.
                                                                 Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft
Those trademarks followed by ® are registered trademarks of      Corporation in the United States, other countries, or both.
IBM in the United States; all others are trademarks or common    Intel, Intel logo, Intel Inside, Intel Inside logo, Intel Centrino, Intel Centrino logo,
law marks of IBM in the United States.                           Celeron, Intel Xeon, Intel SpeedStep, Itanium, and Pentium are trademarks or
                                                                 registered trademarks of Intel Corporation or its subsidiaries in the United States and
For a more complete list of IBM Trademarks, see                  other countries.
www.ibm.com/legal/copytrade.shtml:                               UNIX is a registered trademark of The Open Group in the United States and other
                                                                 countries.
*BladeCenter®, CICS®, DataPower®, DB2®, e business(logo)®,       Linux is a registered trademark of Linus Torvalds in the United States, other countries,
ESCON, eServer, FICON®, IBM®, IBM (logo)®, IMS, MVS,             or both.
OS/390®, POWER6®, POWER6+, POWER7®, Power                        ITIL is a registered trademark, and a registered community trademark of the Office of
Architecture®, PowerVM®, PureFlex, PureSystems, S/390®,          Government Commerce, and is registered in the U.S. Patent and Trademark Office.
ServerProven®, Sysplex Timer®, System p®, System p5, System      IT Infrastructure Library is a registered trademark of the Central Computer and
x®, z Systems®, System z9®, System z10®, WebSphere®, X-          Telecommunications Agency, which is now part of the Office of Government
Architecture®, z13™, z Systems™, z9®, z10, z/Architecture®,      Commerce.
z/OS®, z/VM®, z/VSE®, zEnterprise®, zSeries®                     Apple and Swift are trademarks of Apple Inc.
                                                                 Node.js is an official trademark of Joyent. IBM SDK for Node.js is not formally related
                                                                 to or endorsed by the official Joyent Node.js open source or commercial project.
                                                                                                                                                       49
50
You can also read