Java Magazine 2 2019
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
It's Always Sunny with Openj9
It’s always sunny with OpenJ9 Dan Heidinga, Eclipse OpenJ9 Project Lead VM Architect, IBM Runtimes @danheidinga DanHeidinga 2 https://upload.wikimedia.org/wikipedia/commons/9/98/Storm_clouds.jpg cjohnson7 from Rochester, Minnesota / CC BY (https://creativecommons.org/licenses/by/2.0) My Day Job http://docs.oracle.com/javase/8/docs/index.html Eclipse OpenJ9 Created Sept 2017 http://www.eclipse.org/openj9 https://github.com/eclipse/openj9 Dual License: Eclipse Public License v2.0 Apache 2.0 Users and contributors very welcome https://github.com/eclipse/openj9/blob/master/CO NTRIBUTING.md 6 A JVM for the cloud 7 Built with the Class Libraries you know and love JDK JDK JDK JDK 8 11 14 next Single source stream at OpenJ9 No (LTS) JDK left behind! 8 Right, the cloud 9 Cloud requirements on Java ▪ Fast startup –Faster scaling for increased demand ▪ Small footprint –Improves density on servers –Improves cost for applications ▪ Quick / immediate rampup –GB/hr is key, if you run for less time you pay less money 10 OpenJ9 helps… … containers out of the box 11 Automatically detect if running in a container ▪ Based on the container limits: – Tune the GC Heap – Limit GC & active JIT threads – Constrain Runtime.availableProcessors() to cgroup quotas – Out of the box idle tuning 12 Avoid rebuilding containers just to adjust heap size ▪ -XX:InitialRAMPercentage=N – Set initial heap size as a percentage of total memory ▪ -XX:MaxRAMPercentage=N – Set maximum heap size as a percentage of total memory ▪ Running in containers with set memory limits? – OpenJ9 -
Oracle Utilities Testing Accelerator Licensing Information User Manual Release 6.0.0.3.0 F35952-01
Oracle Utilities Testing Accelerator Licensing Information User Manual Release 6.0.0.3.0 F35952-01 June 2021 Oracle Utilities Testing Accelerator Licensing Information User Manual, Release 6.0.0.3.0 Copyright © 2019, 2021 Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs (including any operating system, integrated software, any programs embedded, installed or activated on delivered hardware, and modifications of such programs) and Oracle computer documentation or other Oracle data delivered to or accessed by U.S. Government end users are "commercial computer software" or "commercial computer software documentation" -
Current State of EA and Its Uses in The
Jfokus 2020 Current state of EA and Charlie Gracie Java Engineering Group at Microsoft its uses in the JVM Overview • Escape Analysis and Consuming Optimizations • Current State of Escape Analysis in JVM JITs • Escape Analysis and Allocation Elimination in Practice • Stack allocation 2 Escape Analysis and Consuming Optimizations 3 What is Escape Analysis? • Escape Analysis is a method for determining the dynamic scope of objects -- where in the program an object can be accessed. • Escape Analysis determines all the places where an object can be stored and whether the lifetime of the object can be proven to be restricted only to the current method and/or thread. 4 https://en.wikipedia.org/wiki/Escape_analysis Partial Escape Analysis • A variant of Escape Analysis which tracks object lifetime along different control flow paths of a method. • An object can be marked as not escaping along one path even though it escapes along a different path. 5 https://en.wikipedia.org/wiki/Escape_analysis EA Consuming Optimizations 1. Monitor elision • If an object does not escape the current method or thread, then operations can be performed on this object without synchronization 2. Stack allocation • If an object does not escape the current method, it may be allocated in stack memory instead of heap memory 3. Scalar replacement • Improvement to (2) by breaking an object up into its scalar parts which are just stored as locals 6 Current State of Escape Analysis in JVM JITs 7 HotSpot C2 EA and optimizations • Flow-insensitive1 implementation based on the -
Analysis of Boundary Resources in B2B Software Platforms Maximilian Schreieck, Robert Finke, Manuel Wiesche, Helmut Krcmar EWSECO 2017, Darmstadt November 23, 2017
Sandbox vs. Toolbox – Analysis of Boundary Resources in B2B Software Platforms Maximilian Schreieck, Robert Finke, Manuel Wiesche, Helmut Krcmar EWSECO 2017, Darmstadt November 23, 2017 Informatics 17 - Chair for Information SystemsTUM Faculty of Informatics Technische Universität München www.i17.in.tum.de Agenda 1 Motivation 2 Background & Method 3 Results & Interpretation © Prof. Dr. Helmut Krcmar 2 © Prof. Dr. Helmut Krcmar 3 Motivation Challenge • The interplay of boundary resources and value co-creation is not fully understood • Research is limited to B2C platforms although B2B platforms gain importance Goal • Identify concepts of boundary resources applied in practice by analyzing the use of boundary resources by IBM Bluemix and Salesforce • Improve our understanding of the influence of boundary resources on value co-creation © Prof. Dr. Helmut Krcmar 4 Research questions What boundary resources can be identified in literature and practice? How does the design of boundary resources impact value co- creation in B2B software platforms? © Prof. Dr. Helmut Krcmar 5 Agenda 1 Motivation 2 Background & Method 3 Results & Interpretation © Prof. Dr. Helmut Krcmar 6 Software platforms Complementor Complementor Complementor 1 2 3 Complement 1 Complement 2 Complement 3 Platform Complement 1 End User 1 Owner Complement 2 Complement 3 End User 2 Definition • Multisided (market and/or development) platform • Higher innovation rates and higher competitiveness than traditional business models • Ecosystem of third-party developers is leveraged Sources: -
Powering an App with Swift Microservices
Powering an App with Swift Microservices ~ Who: Jarrod Parkes What: Swift Cloud Workshop 2 When: Sept 30th, 2017 @ 2:10-2:40 PM CST Where: Amazon Inc, Austin, TX, USA Why: We Swift! Hey, I'm Jarrod I build iOS/Swift courses at Udacity I've been working on a "Server-Side Swift" course Course features "Game Night!" An iOS app powered by Swift microservices Talk Outline Developing Game Night! The ups and downs Future development Where It Started Course v1 launched @ IBM InterConnect 2017 Swift on Linux Swift Package Manager IBM Cloud Tools, ToDo app Built with Kitura We Can Do More! Course v1 was "ok", but missing a spark Let's build something compelling! Activities Microservice Student's first microservice from scratch CRUD microservice Uses MySQL client https://github.com/nicholasjackson/swift-mysql Supports pagination, transactions, and stored procedures Imperative style, easy to test MySQL Client: Init // Create connection pool var pool = MySQLConnectionPool( connectionString: connectionString, poolSize: 10, defaultCharset: "utf8mb4") // Create data accessor var dataAccessor = ActivityMySQLDataAccessor(pool: pool) MySQL Client: Querying // In data accessor... do { // Get connection let connection = try pool.getConnection() defer { pool.releaseConnection(connection!) } // Execute query let result = try connection!.execute(builder: query) let activities = result.toActivities() // Return results... } catch { /* Error */ } Activities: Data public struct Activity { public var id: Int? public var name: String? public var emoji: String? public -
Master Your Java Applications in Kubernetes
Master your Java applications in 03.2019 Kubernetes Andy Moncsek 1 Ó Adcubum AG About me § Andy Moncsek à Architect § Creator or… see my Github § Likes coffee & HiFi & cameras § Twitter: @AndyAHCP 2 Ó Adcubum AG Agenda § Choose your (Java) Runtime § Build & execute your applications § Create your image § Run your applications in Kubernetes § Final thoughts 3 Ó Adcubum AG Typical issues You plan to move to Kubernetes? § How to integrate? § Slow startup? § No more capacity? 4 Ó Adcubum AG Choose your (Java) Runtime 5 Ó Adcubum AG Choose your (Java) Runtime § Support? § License & LTS? § Container aware? § since Java SE 8u131 & JDK 9 § changes in JDK 8u191 & JDK 10 6 Ó Adcubum AG Many (possible) options, out there Choose your (Java) Runtime + Substrate VM Hotspot + C1 & C2 Jit + Hotspot 7 Ó Adcubum AG OpenJ9 Choose your (Java) Runtime § Contributed by IBM to the Eclipse Foundation in 2017 § It replaces HotSpot JVM in the OpenJDK build § Small memory footprint & fast startup § Optimization for virtualized environments 8 Ó Adcubum AG GraalVM Choose your (Java) Runtime § Universal VM running various languages § Removes isolation & enables interoperability between programming languages § Can be integrated in various native & managed env. (OpenJDK, Node.js, OracleDB, MySQL,…) § The Graal compiler § as JIT compiler since Java 10 § as AOT compiler since Java 9 9 Ó Adcubum AG Relation to Containers / Kubernetes? Choose your (Java) Runtime § JVM needs to be aware of containers (CPU & memory) § Small memory/image footprint (run & deploy many containers) -
Guiding Inlining Decisions Using Post-Inlining Transformations Erick
Guiding Inlining Decisions Using Post-Inlining Transformations by Erick Eduardo Ochoa A thesis submitted in partial fulfillment of the requirements for the degree of Master of Science Department of Computing Science University of Alberta c Erick Eduardo Ochoa, 2019 Abstract Inlining strategies in just-in-time (JIT) compilers have relied on a mixture of heuristics and frequency information to discriminate between inlining candi- dates. Even though nested inlining is the norm in JIT compilers, modeling inlining as a variation of the greedy knapsack algorithm provides sub-optimal solutions. Recent advancements by Craik et al. [16] allow for solutions for the nested inlining problem, however, they require grading inlining candidates based on an abstract notion of \benefit". In this thesis, we define this abstract notion of \benefit” through the use of static analysis and frequency information. The choice of using static analysis instead of heuristics has consequences on the guarantees that an inlining strategy provides and on the compilation time incurred by the compiler. We show that our proposed static analysis is compa- rable to heuristics in terms of compilation time, memory resources used during compilation, and impact on run time. While our proposed inlining strategy increased run time by 4% compared to the default inlining strategies found in the OpenJ9 Java Virtual Machine (JVM), our inlining strategy allows compiler engineers to fine tune the abstract notion of \benefit” and provides human readable reports that show why inlining decisions were taken. The number of proposed inlining plans that differ between the heuristics and the static analyses is small, however, it provides a lower bound for how more powerful static analyses may improve inlining in the future. -
15 Ways to Optimize Spring Boot for the Cloud ☁️
15 Ways to Optimize Spring Boot for the Cloud ☁️ Billy Korando - @BillyKorando Developer Advocate - IBM 17 Ways to Optimize Spring Boot for the Cloud ☁️ Billy Korando - @BillyKorando Developer Advocate - IBM Keep Current http://ibm.biz/javanewsletter https://cloud.ibm.com/docs/java ️ ️️ ️ ️ Optimization Factors ️ Observability Improvement ️ ️ Resiliency EfficiencyEfficiency ️️ ️ ️️ Scalability Security ️ Sources/Additional Reading 1. You Don’t Have to Do Microservices to be on the Cloud ORDERS ADDRESSES FULFILLMENT ITEMS ORDER USER HISTORY The Distributed Monolith 1. You Don’t Have to Do Microservices to be on the Cloud Challenges with Microservices: Distributed Systems Have Emerging Problems Require Organizational Change Deep Understanding of DDD and Your Domain 1. You Don’t Have to Do Microservices to be on the Cloud With Monoliths You Can: Use Spring Boot Can be CI/CD 2. Use the Services Provided by Your Cloud Platform ☁️ 2. Use the Services Provided by Your Cloud Platform ☁️ 3. Spring Cloud Sleuth for Request Tracing and Correlation 3. Spring Cloud Sleuth for Request Tracing and Correlation <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-sleuth</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> </dependency> 3. Spring Cloud Sleuth for Request Tracing and Correlation Trace ID Span ID service1,2485ec27856c56f4,2485ec27856c56f4 service2,2485ec27856c56f4,9aa10ee6fbde75fa service3,2485ec27856c56f4,1210be13194bfe5 service2,2485ec27856c56f4,9aa10ee6fbde75fa service4,2485ec27856c56f4,1b1845262ffba49d service2,2485ec27856c56f4,9aa10ee6fbde75fa service1,2485ec27856c56f4,2485ec27856c56f4 3. Spring Cloud Sleuth for Request Tracing and Correlation Time well spent Time poorly spent Project Dapper 4. -
Red Hat Single Sign-On 7.4 Red Hat Single Sign-On for Openshift on Eclipse Openj9
Red Hat Single Sign-On 7.4 Red Hat Single Sign-On for OpenShift on Eclipse OpenJ9 For use with Red Hat Single Sign-On 7.4 Last Updated: 2021-09-09 Red Hat Single Sign-On 7.4 Red Hat Single Sign-On for OpenShift on Eclipse OpenJ9 For use with Red Hat Single Sign-On 7.4 Legal Notice Copyright © 2021 Red Hat, Inc. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/ . In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. Linux ® is the registered trademark of Linus Torvalds in the United States and other countries. Java ® is a registered trademark of Oracle and/or its affiliates. XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and other countries. -
Copyrighted Material
Contents Introduction . xxiii 1 Swift.org, the Open Source Project . 1 What’s Included . 1 Source Code Repositories . 2 How to Get Involved . 5 Mailing Lists . 7 Bug Tracking . 8 Swift Evolution and Roadmap . 12 Priorities for the Swift 4.0 Major Release . 14 Binary Downloads . 14 MacOS Binaries . 15 Linux Binaries . 16 Swiftenv, Swift Version Manager . 17 Summary . 17 2 A Swift Sandbox in the Cloud . 19 The IBM Cloud Platform . 19 Getting Started . 26 Sign Me Up!. 26 Saving and Sharing Code Samples . 28 Selecting Swift Versions and More . 30 Have You RunCOPYRIGHTED on a Mainframe Lately? . .MATERIAL . 30 IBM Swift Package Catalog and Sandbox . 32 Summary . 33 xviii Contents 3 A Basic Introduction to Swift . 35 Background . 35 Let’s Get Coding! . 35 Swift Standard Library . 35 Swift Foundation Library . 37 C Library Interoperability . 39 Concurrency Library . 41 Memory Management . 43 The Language Landscape . 48 Language Groupings . 48 Language Timeline . 50 Summary . 51 4 The IBM Bluemix Buildpack for Swift . 53 Cloud Foundry Buildpacks . 53 Buildpack Phases . 54 Working with the IBM Bluemix Buildpack for Swift . 55 Where Is the Source Code Hosted? . 55 What Version of the Buildpack Is Currently Installed? . 56 File Artifacts Required for Provisioning Your Application on Bluemix . .58 Installing Additional System-Level Dependencies . 61 Downloading Closed Source Dependencies . 68 Examples of Using the IBM Bluemix Buildpack for Swift . 69 Swift HelloWorld . 69 Kitura Starterr . 74 BluePic . 77 Using the Latest Code of the IBM Bluemix Buildpack for Swift . 87 Summary . 88 ftoc.indd 07/25/17 Page xviii Contents xix 5 Using Containers on Bluemix to Run Swift Code . -
Ibm Cloud Service Agreement Diasend
Ibm Cloud Service Agreement Loopy Stillman resiles or criminate some lineation pithy, however synonymical Scotty hoe possessively or strafing. Marathi and runed Tait spree her burplibertinism some swingingironers practically. torridly or resurfacing post-free, is Wilmar barelegged? Arizonian and balked Derby advertized her spruce popularise while Jephthah Manager that provides the ibm cloud service description number of service Programmers to cloud agreement with ibm cloud platform for build steps in a cloud solutions offered via the right to modernize your language. Amounts of cloud service agreement reduces duplication for build artifacts and portals have any right or discontinue features of the language. Helper chat is ibm cloud out of tones from vendor to cloud assets and maintaining system for which the preview cloud service is an easy it. Making claims against you: suitable for cloud infrastructure for resellers where prohibited, and medium businesses and to. Partners to run, service credits will treat such as paragraphs, it is the google cloud service, immediately cease using the eclipse orion web applications. Match any time a cloud service agreement, the business and licenses granted under the usage term in violation of text, along the software services or any particular purpose. License fees for either procure for open service credits will not to run your agreement, the public cloud? Governmental regulation or modify or the service or grants data for failure to build on a region go or applications. Students to help software service agreement to build your next go or implied, they can be added on the expectations. Obd error free operation of a global corporations use of binary resources as they will now! Science tools for service includes user is a real time to add a private instances. -
Openj9 a Lean, Mean Java Virtual Machine
OpenJ9 a Lean, Mean Java Virtual Machine Billy Korando Developer Advocate - IBM @BillyKorando [email protected] https://billykorando.com/category/openj9/ https://github.com/wkorando/openj9-batch-processor @BillyKorando Subscribe to the Java Newsletter https://developer.ibm.com/newsletters/java/ For your Spring & JakartaEE needs https://cloud.ibm.com/docs/java @BillyKorando Ideal Demand Demand Capacity Time @BillyKorando Real World Demand Demand Capacity Time @BillyKorando Evolution of Running Applications Increasing flexibility and granularity Bare Metal @BillyKorandoTime Meeting Demand - Bare Metal Demand Capacity Time @BillyKorando Evolution of Running Applications VM VM VM Virtual Machines Increasing flexibility and granularity Bare Metal @BillyKorandoTime Meeting Demand - VMs Demand Capacity Time @BillyKorando Evolution of Running Applications VM VM Containers Managed on Cloud VM Virtual Machines Increasing flexibility and granularity Bare Metal @BillyKorandoTime Meeting Demand - Containers/Cloud Demand Capacity Time @BillyKorando Benefits of Running in the Cloud ● Rapidly expand/reduce capacity in response to demand ● Reduced capital costs ● Reduced operations costs @BillyKorando The Cloud Gives Us Compute on Demand @BillyKorando The Demand Is Metered @BillyKorando -Xmx = @BillyKorando Traditional Profile Lag Peak Resource use Throughput Capacity Time @BillyKorando Meeting Demand - Containers/Cloud Demand Capacity @BillyKorandoTime Demands of Running in the Cloud ● Fast startup ● Minimal memory footprint ● Minimal CPU usage ● Small