Accelerating Sequential Consistency for Java with Speculative Compilation

Total Page:16

File Type:pdf, Size:1020Kb

Accelerating Sequential Consistency for Java with Speculative Compilation Accelerating Sequential Consistency for Java with Speculative Compilation Lun Liu Todd Millstein Madanlal Musuvathi University of California, Los Angeles University of California, Los Angeles Microsoft Research, Redmond USA USA USA [email protected] [email protected] [email protected] Abstract be compiled without fences. If an object is ever accessed A memory consistency model (or simply a memory model) by a second thread, any speculatively compiled code for specifies the granularity and the order in which memory the object is removed, and future JITed code for the object accesses by one thread become visible to other threads in will include the necessary fences in order to ensure SC. We the program. We previously proposed the volatile-by-default demonstrate that this technique is effective, reducing the (VBD) memory model as a natural form of sequential con- overhead of enforcing VBD by one-third on average, and ad- sistency (SC) for Java. VBD is significantly stronger than ditional experiments validate the thread-locality hypothesis the Java memory model (JMM) and incurs relatively modest that underlies the approach. overheads in a modified HotSpot JVM running on Intel x86 CCS Concepts · Software and its engineering → Con- hardware. However, the x86 memory model is already quite current programming languages; Just-in-time compil- close to SC. It is expected that the cost of VBD will be much ers; Runtime environments. higher on the other widely used hardware platform today, namely ARM, whose memory model is very weak. Keywords memory consistency models, volatile by default, In this paper, we quantify this expectation by building sequential consistency, Java virtual machine, speculative and evaluating a baseline volatile-by-default JVM for ARM compilation called VBDA-HotSpot, using the same technique previously ACM Reference Format: used for x86. Through this baseline we report, to the best Lun Liu, Todd Millstein, and Madanlal Musuvathi. 2019. Accelerat- of our knowledge, the first comprehensive study of the cost ing Sequential Consistency for Java with Speculative Compilation. of providing language-level SC for a production compiler In Proceedings of the 40th ACM SIGPLAN Conference on Program- on ARM. VBDA-HotSpot indeed incurs a considerable per- ming Language Design and Implementation (PLDI ’19), June 22ś formance penalty on ARM, with average overheads on the 26, 2019, Phoenix, AZ, USA. ACM, New York, NY, USA, 15 pages. DaCapo benchmarks on two ARM servers of 57% and 73% https://doi.org/10.1145/3314221.3314611 respectively. Motivated by these experimental results, we then present 1 Introduction a novel speculative technique to optimize language-level SC. A memory consistency model (or simply a memory model) While several prior works have shown how to optimize SC specifies the granularity and the order in which memory in the context of an offline, whole-program compiler, to our accesses by one thread become visible to other threads in the knowledge this is the first optimization approach that is com- program. We recently proposed a strong memory model for patible with modern implementation technology, including Java called volatile-by-default [20]. In this semantics, all vari- dynamic class loading and just-in-time (JIT) compilation. ables are treated as if they were declared volatile, thereby The basic idea is to modify the JIT compiler to treat each providing sequential consistency (SC) at the level of Java object as thread-local initially, so accesses to its fields can bytecode. Specifically, all programs are guaranteed to obey the per-thread program order, and accesses to individual Permission to make digital or hard copies of all or part of this work for memory locations (including doubles and longs) are always personal or classroom use is granted without fee provided that copies atomic. In contrast, the Java memory model (JMM) [22] only are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights provides these guarantees for programs that are data-race- for components of this work owned by others than the author(s) must free, and it has a weak and complex semantics for programs be honored. Abstracting with credit is permitted. To copy otherwise, or that contain data races. republish, to post on servers or to redistribute to lists, requires prior specific The cost of the strong volatile-by-default semantics is a permission and/or a fee. Request permissions from [email protected]. loss of performance versus the JMM Ð the compiler must re- PLDI ’19, June 22ś26, 2019, Phoenix, AZ, USA strict its optimizations to avoid reordering accesses to shared © 2019 Copyright held by the owner/author(s). Publication rights licensed to ACM. memory, and it must also insert fence instructions in the gen- ACM ISBN 978-1-4503-6712-7/19/06...$15.00 erated code to prevent the hardware from performing such https://doi.org/10.1145/3314221.3314611 reorderings. This cost is relatively modest for a modified 16 PLDI ’19, June 22ś26, 2019, Phoenix, AZ, USA Lun Liu, Todd Millstein, and Madanlal Musuvathi version of Oracle’s HotSpot JVM running on Intel x86 hard- virtual-machine technology, where classes are loaded dynam- ware [20], but the x86 memory model is already quite close ically and code is optimized and compiled during execution. to SC. In particular, volatile reads do not require any hard- Indeed, the HotSpot JVM already includes an escape analysis, ware fences in x86. As reads tend to far outnumber writes and VBDA-HotSpot does not insert fences for field accesses in programs, it is reasonable to expect the overhead of the of non-escaping objects, but the constraints of the JVM re- volatile-by-default semantics to be much higher on weaker quire this analysis to be fast and intraprocedural, thereby memory models such as ARM and PowerPC, which require limiting its effectiveness. fences for both volatile reads and writes. We propose a new optimization technique that, to the best In this paper, we quantify this expectation by building and of our knowledge, is the first optimization for language-level evaluating a baseline volatile-by-default JVM for ARM using SC that is compatible with modern language features such the same implementation technique as previously used for as JIT compilation and dynamic class loading. Like other x86 [20]. This new JVM, which we call VBDA-HotSpot, is JIT-based optimizations, it is speculative. The basic idea is to a modification of the ARM port of the HotSpot JVMfrom modify the JIT compiler to treat each object as safe initially, OpenJDK8u1. Through this baseline we report, to the best meaning that accesses to its fields can be compiled without of our knowledge, the first comprehensive study of the cost fences. If an object ever becomes unsafe during execution, of providing language-level SC for a production compiler any speculatively compiled code for the object is removed, on ARM. Motivated by these experimental results, we then and future JITed code for the object will include the necessary present a novel speculative technique to optimize language- fences in order to ensure SC. level SC and demonstrate its effectiveness in reducing the It is challenging to turn this high-level idea into an ef- overhead of VBDA-HotSpot. While several prior works have fective optimization. First, dynamic concurrency analyses shown how to optimize SC in the context of an offline, whole- for Java are very expensive, so a direct application of these program compiler [17, 35, 38], to our knowledge this is the analyses to track whether an object is safe would defeat the first optimization approach that is compatible with modern purpose. For example, dynamic data-race detection would implementation technology, including dynamic class loading provide the most precise notion of safe, but such analyses and just-in-time (JIT) compilation. The implementations of for Java have average overheads of 8× or more [40]. VBDA-HotSpot and the optimized version, called S-VBD, Instead our approach treats an object as safe if it is thread- are available on our GitHub repository: https://github.com/ local, i.e. accessed only by the thread that created it. While Lun-Liu/schotspot-aarch64. this approach unnecessarily inserts fences on objects that are shared but data-race-free, we hypothesize that many ob- Baseline Overhead. Experiments on our baseline imple- jects are thread-local, thereby allowing us to remove a large mentation, VBDA-HotSpot, show that the volatile-by-default percentage of fences. Our experimental evaluation shows semantics incurs a considerable performance penalty on that this hypothesis is well founded. Further, we leverage ARM, as expected. However, we observe that the perfor- this approximate notion of safe to optimize its enforcement, mance overhead crucially depends on the specific fences and in particular we develop an intraprocedural analysis volatile used to implement the semantics. With the de- to remove many per-access thread-locality checks that are volatile fault fences that HotSpot employs to implement provably redundant. loads and stores on ARM, VBDA-HotSpot incurs average Second, our technique must properly account for memory and maximum overheads of 195% and 429% (!) on the Da- accesses that come from interpreted code as well as those Capo benchmarks [7] for a modern 8-core ARM server. But from JITed native code. We have chosen to always insert employing an alternative choice of ARM fences reduces the fence instructions for memory accesses in interpreted code. average and maximum overheads on that machine respec- This approach trades some performance for implementation tively to 73% and 129%. We also find similar results ona simplicity, but since łhotž code will eventually get compiled 96-core ARM server, with VBDA-HotSpot incurring an av- we expect the performance loss to be minimal.
Recommended publications
  • Hibernate ORM Query Simplication Using Hibernate
    2016 3rd National Foundation for Science and Technology Development Conference on Information and Computer Science Hibernate ORM Query Simplication Using Hibernate Criteria Extension (HCE) Kisman Sani M. Isa Master of Information Technology Master in Computer Science Bina Nusantara University Bina Nusantara University Jl. Kebon Jeruk Raya No. 27, Jakarta Barat, DKI Jl. Kebon Jeruk Raya No. 27, Jakarta Barat, DKI Jakarta, Indonesia 11530 Jakarta, Indonesia 11530 [email protected] [email protected] Abstract— Software development time is a critical issue interfaced by a query. The software engineer will make in software development process, hibernate has been the query specified to database used. Each database widely used to increase development speed. It is used in vendor has their Structured Query Language (SQL). As database manipulation layer. This research develops a the development of software technology and most of library to simplify hibernate criteria. The library that is programming languages are object oriented, some called as Hibernate Criteria Extension (HCE) provides API functions to simplify code and easily to be used. Query engineer or software institutions try to simplify the associations can be defined by using dot. The library will query process. They try to bind object in application to automatically detect the join association(s) based on database. This approach is called as Object Relational mapping in entity class. It can also be used in restriction Mapping (ORM). ORM is a translation mechanism from and order. HCE is a hibernate wrapper library. The object to relational data, vice versa. ORM has “dialect” configuration is based on hibernate configuration.
    [Show full text]
  • 2019 Stateof the Software Supply Chain
    2019 State of the Software Supply Chain The 5th annual report on global open source software development presented by in partnership with supported by Table of Contents Introduction................................................................................. 3 CHAPTER 4: Exemplary Dev Teams .................................26 4.1 The Enterprise Continues to Accelerate ...........................27 Infographic .................................................................................. 4 4.2 Analysis of 12,000 Large Enterprises ................................27 CHAPTER 1: Global Supply of Open Source .................5 4.3 Component Releases Make Up 85% of a Modern Application......................................... 28 1.1 Supply of Open Source is Massive ...........................................6 4.4 Characteristics of Exemplary 1.2 Supply of Open Source is Expanding Rapidly ..................7 Development Teams ................................................................... 29 1.3 Suppliers, Components and Releases ..................................7 4.5 Rewards for Exemplary Development Teams ..............34 CHAPTER 2: Global Demand for Open Source ..........8 CHAPTER 5: The Changing Landscape .......................35 2.1 Accelerating Demand for 5.1 Deming Emphasizes Building Quality In ...........................36 Open Source Libraries .....................................................................9 5.2 Tracing Vulnerable Component Release 2.2 Automated Pipelines and Downloads Across Software Supply Chains
    [Show full text]
  • Anembeddedquerylanguage in Scala
    Master Thesis An Embedded Query Language in Scala Amir Shaikhha Professor Martin Odersky Supervisors Vojin Jovanovic, Eugene Burmako Expert Stefan Zeiger, Typesafe Semester Spring 2013 An Embedded Query Language in Scala, p. 1 Abstract In this thesis we address the problem of integrating general purpose programming languages with relational databases. An approach to solving this problem is using raw strings to represent SQL statements. This approach leads to run-time errors and security vulnerabilities like SQL injection. The second approach is integrating the query in a host language. The most well-known example of the second approach is LINQ. This approach provides static checking of types and syntax during compilation. This thesis presents an embedded query language in Scala, namely Shadow Embedding in Slick. Shadow Embedding provides even stronger compile-time guarantees than LINQ and similar sys- tems in Scala. The experimental results show that the performance of our approach is very similar to the case of using raw Strings, thanks to static code analysis and clever code caching. An Embedded Query Language in Scala, p. 2 Acknowledgement First, I would like to thank Prof. Martin Odersky for giving me the opportunity to do my master thesis in Typesafe and LAMP. Vojin Jovanovic helped me tremendously during the whole period of my thesis. Thank you to Stefan Zeiger for believing in me and providing me with the opportunity to work on the Slick project. I would like to thank Eugene Burmako for all his support, Christopher Vogt for the great discussions, and everybody at Typesafe and the LAMP team. I can never thank my parents enough for believing in me and supporting me through all periods of my life.
    [Show full text]
  • Curriculum Vitae: Tom Eugelink
    Curriculum Vitae: Tom Eugelink Personalia Woonplaats Aalten Geboortedatum 25 juni 1970 Functie Senior software engineer / solution architect Email [email protected] Telefoon +31-647938592 Blog http://tbeernot.wordpress.com Hobbies Basketbal, Stijldansen, Sportschool, Gaming Talen Nederlands vloeiend (moedertaal), Engels en Duits vloeiend Opleiding Opleidingen VWO (CSA Aalten, 1989) Hogere Informatica (HIO Enschede, 1993, cum laude) Cursus hoger management TOGAF & archimate certified architect Boeken Patterns, Principles and Practices of DDD, Functional and Reactive Domain Modeling, Implementing Domain Driven Design, Building modular cloud apps with OSGi, Risk Driven Software Architecture, Effective Unit Testing, Spring 3 in Practice, Gradle in Action, UML distilled, The Cucumber for Java book Werkverleden Mei 1994 – Aug 2002 OVSoftware (developer) Sept 2002 – Oct 2005 Knowledgeplaza B.V. (senior software engineer) Nov 2005 – heden SoftWorks B.V. (senior software engineer / architect) Over Mijn eerste computerprogramma schreef ik in 1983 op een NewBrain, een veredelde broodtrommel met zo’n lang nagloeiend groen scherm. Maar die eerste keer was een bijna magische ervaring. Computers waren toen nog zeldzaam, maar op dat moment werd duidelijk wat ik later zou worden en dat maakte veel keuzes makkelijker. Behalve die tussen HBO en universiteit, in 1989 was de IT anders dan nu; de universiteit was vooral bezig met de wetenschappelijke en wiskundige kant, maar ik wilde juist software maken die mensen ondersteunde in hun dagelijkse leven. En daar sloot het HBO beter bij aan. Die insteek is tegenwoordig belangrijker dan ooit; software is nu overal, maar wordt nog steeds gemaakt voor mensen, maar vooral ook door mensen. En met alle technische keuzes en mogelijkheden die je als ontwikkelaar of architect hebt, is ‘the human factor’ vaak veel bepalender.
    [Show full text]
  • A Test Suite Generator for Struts Based Applications Gregory M
    UNF Digital Commons UNF Graduate Theses and Dissertations Student Scholarship 2004 A Test Suite Generator For Struts Based Applications Gregory M. Jackson University of North Florida Suggested Citation Jackson, Gregory M., "A Test Suite Generator For Struts Based Applications" (2004). UNF Graduate Theses and Dissertations. 294. https://digitalcommons.unf.edu/etd/294 This Master's Thesis is brought to you for free and open access by the Student Scholarship at UNF Digital Commons. It has been accepted for inclusion in UNF Graduate Theses and Dissertations by an authorized administrator of UNF Digital Commons. For more information, please contact Digital Projects. © 2004 All Rights Reserved A TEST SUITE GENERATOR FOR STRUTS BASED APPLICATIONS By Gregory M. Jackson A project submitted to the Department of Computer and Information Sciences in partial fulfillment of the requirement for the degree of Master of Science in Computer and Information Sciences UNIVERSITY OF NORTH FLORIDA DEPARTMENT OF COMPUTER AND INFORMATION SCIENCES April2004 Copyright(©) 2004 by Gregory M. Jackson All rights reserved. Reproduction in whole or in part in any form requires the prior written permission of Gregory M. Jackson or designated representatives. 11 APPROVAL BY THE PROJECT COMMITTEE The project "A Test Suite Generator for Struts Based Applications" submitted by Gregory M. Jackson in partial fulfillment of the requirements for the degree of Master of Science in Computer and Information Sciences has been approved by the Project Committee: Sentence Deleted Arturo Sanch , Ph.D. Project Director Sentence Deleted Sentence Deleted Charles Winton, Ph.D. Graduate Director 111 ACKNOWLEDGEMENTS This project is dedicated to my father, Marshall Jackson, who always pushed me to work hard on everything I do and showed me that if I put my mind to it, anything is possible.
    [Show full text]
  • Copyright by Ali Hussein Ibrahim 2009 the Dissertation Committee for Ali Hussein Ibrahim Certifies That This Is the Approved Version of the Following Dissertation
    Copyright by Ali Hussein Ibrahim 2009 The Dissertation Committee for Ali Hussein Ibrahim certifies that this is the approved version of the following dissertation: Practical Transparent Persistence Committee: William R. Cook, Supervisor Don Batory Antony Hosking Daniel Miranker Keshav Pingali Practical Transparent Persistence by Ali Hussein Ibrahim, B.S., M.Eng DISSERTATION Presented to the Faculty of the Graduate School of The University of Texas at Austin in Partial Fulfillment of the Requirements for the Degree of DOCTOR OF PHILOSOPHY THE UNIVERSITY OF TEXAS AT AUSTIN August 2009 Dedicated to my parents, Dr. Hussein Ibrahim and Dr. Nihal Nounou. Acknowledgments Many people have contributed to the work in this thesis. I owe a lot of thanks to my advisor, William Cook, who mentored and supported me while I worked on my research. I would also like to thank Ben Wiedermann with whom I collaborated with on several projects related to my thesis. Finally, I would like to thank my thesis committee, Don Batory, Daniel Miranker, Keshav Pingali, and Tony Hosking, for their advice and guidance. On the personal side, I would have been lost without my wife, Som- mayah, who supported and encouraged me during the entire Ph.D process. And of course, none of this would have been possible without my parents. v Practical Transparent Persistence Publication No. Ali Hussein Ibrahim, Ph.D. The University of Texas at Austin, 2009 Supervisor: William R. Cook Many enterprise applications persist data beyond their lifetimes, usu- ally in a database management system. Orthogonal persistence provides a clean programming model for communicating with databases.
    [Show full text]
  • A Process Engine Independent Architecture Enabling Robust Execution of Mobile Tasks in Business Processes Master Thesis at the University of Ulm
    University of Ulm | 89069 Ulm | Germany Faculty of Engineering and Computer Science Institute of Databases and Information Systems A Process Engine Independent Architecture Enabling Robust Execution of Mobile Tasks in Business Processes Master Thesis at the University of Ulm Submitted by: Steffen Musiol [email protected] Reviewers: Prof. Dr. Manfred Reichert Prof. Dr. Thomas Bauer Adviser: Rüdiger Pryss 2014 Copy April 15, 2014 c 2014 Steffen Musiol This work is licensed under the Creative Commons. Attribution-NonCommercial-ShareAlike 3.0 License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/de/ or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA. Composition: PDF-LATEX 2ε Abstract With the fast improvements of mobile technology in the last century, the importance of mobile and pervasive computing has increased in all disciplines of computer sci- ence. The new technologies have set the stage for a whole set of new applications (e.g., medical- [8][3] and business-applications). Since Business Process Management Systems (BPMSs) are an established and widely used technique in various businesses and industries to manage recurring workflows and to support people in performing their tasks efficiently, the integration of mobile support into a business process environment is desirable. In prior research work, a framework to foster the execution of business processes on mobile devices was introduced. It describes a life cycle for mobile tasks based on an automated delegation mechanism and a backup operation for escalation handling. In this work, the framework will be extended to cope with crucial shortcomings such as the execution of mobile tasks in an unreliable network.
    [Show full text]
  • Access Point Administration Guide Domibus
    EUROPEAN COMMISSION DIGIT Connecting Europe Facility Access Point Administration Guide Domibus 3.3 RC1 Version [0.03] Status [Validated] Date: 18/07/2017 Domibus 3.3 RC1 Administration Guide Document Approver(s): Approver Name Role Adrien FERIAL CEF Technical Office Document Reviewers: Reviewer Name Role Yves ADAM CEF Technical Office Summary of Changes: Version Date Created by Short Description of Changes 0.01 30/05/2017 Yves ADAM Initial Document 0.02 26/06/2017 Chaouki BERRAH Draft (Merged Documents) Ioana DRAGUSANU Thomas DUSSART Tiago MIGUEL Cosmin BACIU 0.03 06/07/2017 Chaouki BERRAH Mysql Schema line added for Tomcat Page 2 / 128 Domibus 3.3 RC1 Administration Guide Table of Contents 1. INTRODUCTION ................................................................................................................. 6 1.1. Purpose ...................................................................................................................................... 6 1.2. References ................................................................................................................................. 6 2. CONVENTIONS ................................................................................................................... 8 2.1. Example 1: Sample Oracle Statement ....................................................................................... 8 2.2. Example 2: Sample Configuration file ....................................................................................... 8 3. PREREQUISITES .................................................................................................................
    [Show full text]
  • Ebean V2.6.0 User Guide May 2010 1 Contents Introduction
    Ebean v2.6.0 User Guide May 2010 1 Contents Introduction Features Overview Mapping Query Transactions Data Types Field access and Property access Property Access Field Access Enhancement and Subclass generation Subclass Generation Enhancement 2 Introduction 2.1 Ebean Ebean is an open source Object Relational Mapping tool. It's goal is to provide a simpler alternative to JPA (Java Persistence API) implementations such as Hibernate and Eclipselink. It does this by providing a “sessionless” API and a simpler query language. That means: – No Session Object (or UnitOfWork or EntityManager) – No Attached or Detached Beans – No merge(), persist(), flush(), or clear(). Instead Ebean has save() and delete() I have found (so far) that this is a bit hard for many people familiar with JPA / Hibernate / Eclipselink etc to get their head around. The short answer is that Ebean, just like JPA has a Persistence Context but has some architectural differences to allow it to have a different approach to the entity bean lifecycle and removing the need to manage EntityManagers. 2.2 Why Ebean? ... why different from JPA? Ebean uses the JPA Mapping annotations and will follow those very closely. However, Ebean has been architected and built from a different perspective than JPA. The Architectural and Query language differences are reasonably fundamental to both Ebean and JPA so its hard to see these differences going away anytime soon. It becomes a question of whether this different approach taken by Ebean has technical merit and has made Ebean an easier ORM to understand and use. 2.2.1 Architecture: Session / UnitOfWork / EntityManager JPA is architected to use an “EntityManager” which closely matches a Hibernate “Session” and a Toplink “UnitOfWork”.
    [Show full text]
  • JSP Syntax Reference
    APPENDIX A JSP Syntax Reference THISAPPENDIX DESCRIBES the syntax for JavaServer Pages (JSP) 2.0. Dur intention is to provide you with a reference that's complete and useful but more compact than the specification. (The JSP 2.0 specification weighs in at 478 pages!) NOTE j5P specifica tions front version 2.0 011 are avai/able by visiting http://java .sun .com/products/jsp/. This appendix looks in turn at the following: • Various preliminary details: The notation we use, how you specify uniform resource locators (URLs) in JSP code, and the various types ofcommenting you can use. • The JSP directives: The page, taglib, and include directives. • JSP scripting elements: Declarations, scriptlets, and expressions. • JSP standard actions: The <jsp :useBean>, <jsp :setProperty>, <jsp :getProperty>, <jsp :include>, and <jsp :forward> actions. • Tag libraries: A briefreview ofthe syntax for using tag libraries. • Implicit objects: The implicit objects that are available within a JSP page such as request, response, session, and application. Appendix B covers these in more detail. • Attributes:Various predefined request and application attributes that you may find useful. 363 AppendixA Preliminaries Before getting stuck in the details, the following sections make a few miscelIa­ neous observations. Notation This appendix uses the following notation: • ltalics show what you'll have to specify. • Bold shows the default value of an attribute. Attributes with default values are optional ifyou're using the default; sometimes, where the default value is a little complicated, we use default to indicate that the default is described in the following text. • When an attribute has a set of possible values, those are delimited by I: import="package .dass, package .
    [Show full text]
  • Guide De L'open Source
    GUIDE DE L'OPEN SOURCE I .T IS OPE N PREAMBULE SMILE Smile est une société d’ingénieurs experts dans la mise en œuvre de solutions open source et l’intégration de systèmes appuyés sur l’open source. Smile est membre de l’APRIL, l’association pour la promotion et la défense du logiciel libre, du PLOSS – le réseau des entreprises du Logiciel Libre en Ile-de-France et du CNLL – le conseil national du logiciel libre. Smile compte plus de 1200 collaborateurs dans le monde ce qui en fait le premier intégrateur français et européen de solutions open source. Depuis 2000, environ, Smile mène une action active de veille technologique qui lui permet de découvrir les produits les plus prometteurs de l’open source, de les qualifier et de les évaluer, de manière à proposer à ses clients les produits les plus aboutis, les plus robustes et les plus pérennes. Cette démarche a donné lieu à toute une gamme de livres blancs couvrant différents domaines d’application. La gestion de contenus (2004), les portails (2005), la business intelligence (2006), la virtualisation (2007), la gestion électronique de documents (2008), les PGIs/ERPs (2008), les VPN open source (2009), les Firewall et Contrôle de flux (2009), les Middleware orientés messages (2009), l’ecommerce et les Réseaux Sociaux d'Entreprise (2010), le Guide de l’open source et NoSQL (2011), Mobile et Recensement et audit (2012), et plus récemment Big Data et ERP open source pour l’e-commerce (2014). Chacun de ces ouvrages présente une sélection des meilleures solutions open source dans le domaine considéré, leurs qualités respectives, ainsi que des retours d’expérience opérationnels.
    [Show full text]
  • Java Magazine Is Provided on an “As Is” Basis
    //table of contents / 05 28 66 COMMUNITY FROM SMART JAVA ME 8 AND GRIDS TO THE INTERNET JAVA 8: JAVA MICROBREWS OF THINGS V2COM uses Java to Top features of EXPLORE THE connect millions of Java ME 8 POSSIBILITIES intelligent devices. JAVA IN ACTION From embedded to the cloud, get there with Java 8. Java 8 Is Here JAVA TECH New theme icon. See how it works. COMMUNITY JAVA TECH 50 62 03 33 Java Architect Embedded From the Editor New to Java Processing Data with JavaFX and Near 15 How to Become an Java SE 8 Streams Field Communication Java Nation Embedded Developer Use stream operations to on the Raspberry Pi ABOUT US News, people, books, in Minutes express sophisticated data Use your Java skills to create and events Jump into programming processing queries. end-to-end applications that the next big thing using 56 span card readers on embedded 23 embedded Java. devices to back-end systems. JCP Executive Series Java Architect Q&A with Goldman Sachs 41 JSR 308 Explained: 69 John Weir and Donald Raab New to Java Java Type Annotations Polyglot discuss the impact of Three Hundred Sixty– The benefits of type annotations Take Time to Play lambda expressions. Degree Exploration and example use cases Learn how to take advantage of Java EE 7 of the client tier. Part 3 in our series 75 on Java EE 7 Fix This blog Take our concurrency code challenge! COVER ART BY I-HUA CHEN 01 ORACLE.COM/JAVAMAGAZINE ////////////////////////////////////////// MARCH/APRIL 2014 EDITORIAL PUBLISHING Editor in Chief Vice President Caroline Kvitka Jeff Spicer COMMUNITY Community
    [Show full text]