Modern Languages in the Enterprise - Joran Siu IBM Runtime Technologies zCouncil - Phoenix, AZ Feb 28, 2018 - IBM Z Customer ...
←
→
Page content transcription
If your browser does not render page correctly, please read the page content below
Modern Languages in the Enterprise Joran Siu IBM Runtime Technologies joransiu@ca.ibm.com zCouncil – Phoenix, AZ Feb 28, 2018
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
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
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
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
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
Rewrite Reuse Remember: Your existing code is a valuable asset! ? Get the best of the two strategies. 8
Why do we need modern languages on IBM Z? Leverage best fit CICS 2 language for digital transformation IMS WAS MQ DB2 9
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