Introduction to Glassfish Peter Doschkinow Senior Java Architect

Total Page:16

File Type:pdf, Size:1020Kb

Introduction to Glassfish Peter Doschkinow Senior Java Architect <Insert Picture Here> Introduction to GlassFish Peter Doschkinow Senior Java Architect Agenda • GlassFish Overview – History – Adoption • GlassFish Details – GlassFish v2 and v3 architecture – GlassFish v3 differentiators 2 Project Glassfish • Java EE RI – Java EE 5.0, Java EE 6.0 – Included in Java EE SDK • Strong Developer Adoption • Production Quality • Open Source • Strong Community – Sources, bug DBs, discussions at Java.Net – Roadmaps, Architecture Documents GlassFish History © 2010 Oracle Corporation – Proprietary GlassFish Adoption Y/Y Download Growth 12,000,000 Over 24M Downloads since '06 10,000,000 8,000,000 Downloads 6,000,000 4,000,000 2,000,000 0 FY 06 FY 07 FY 08 FY 09 © 2010 Oracle Corporation – Proprietary GlassFish Deployment blogs.sun.com/stories GlassFish Available Today • GlassFish Server Open Source Edition 3.0.1 – The Java EE 6 Reference Implementation • Oracle GlassFish Server 3.0.1 – Based on the Java EE 6 Reference Implementation – Includes enhancements for Enterprise Users – Certified on JRockit – Support by Oracle • GlassFish Server Open Source Edition 2.1.1 • Oracle GlassFish Server 2.1.1 – Includes enhancements for Enterprise Users – Support by Oracle © 2010 Oracle Corporation – Proprietary GlassFish v2 Architecture Admin Client Admin (UI, CLI, JMX) EJB JBI Console Container Container Web Client Web Container Web Server Plugin Grizzly HTTP ORB JMS Other Clients (IIOP, JMS) Admin Infrastructure Java SE 5 or 6 MBean Server • implements Java EE 5 8 GlassFish v2 Profiles • Developer Profile – Single client JVM for Apps, Admin, JMS – No clustering, HA – Faster startup, less resources needed • Enterprise Profile – Distributed Domain Architecture • Domain Administration Server, Node Agents, Instances – Support for clustering and HA – Session replication and Load Balancing – Server JVM, separate JMS broker per instance – Cluster vs. HADB 9 GlassFish v2 Administration Architecture Your RESTfulAMX/JMX AdminAPI Client 10 GlassFish v3 Administration Architecture Your HTTP RESTfulRESTful AdminAPI Client Your RESTfulAMX/JMX AdminAPI Client 11 GlassFish v3 Java EE 6 Themes GlassFish v3 Flexibility Flexible Extensibility Extensible Productivity Productive … … High Developer Productivity Bleeding Edge Technologies Enterprise Quality 12 GlassFish v3 Features • Java EE 6 reference implementation • Beyond Java EE 6 – Developer productivity – Modular – Extensible – Embeddable – Observable – Hot technologies • Metro (Web Services) • Update Center • Scripting 13 GlassFish v3 Architecture Services Container Hundred Kilobyte Kernel 14 Developer Productivity • Getting Started – Small download – Fast startup time – Admin console with intuitive user interface • Using GlassFish – Lightweight – Low resource utilization – Command Line Interface – Maven support – Rapid iterative development – Extensive IDE support 15 GlassFish v3 Tooling • As usual, vi/emacs are Java EE 6 certified – Simpler to use: less code to type, less XML, less Interfaces to synchronized, more default values,... • NetBeans 6.9 Java EE 6 ready • Eclipse GlassFish Plugin 1.50 and above • GlassFish Tools Bundle for Eclipse 1.2 • Oracle Enterprise Pack for Eclipse 11g • IntelliJ IDEA 9 • Build your own: using GlassFish REST Admin APIs 16 Deploying Applications and Components Tools and Options • GlassFish Server Administration Console (web GUI) • asadmin • ant • IDE Plugins • Java Webstart (to deploy Java EE application client SW to client systems) • Automatic deployment • Dynamic Reloading (great during development) © 2010 Oracle Corporation – Proprietary Session Retention • Deployment option to maintain stateful sessions across re-deployments • asadmin redeploy –properties keepSessions=true myapp.war • Greatly simplifies the development paradigm • Integrated in tools 18 GlassFish v3 Modularization and Extensibility • Based on OSGi • Extensible – Extensive APIs to replace or extend features – OSGi also provides extensions capabilities • SOA based architecture – Services implement different types of interfaces • Java SE style with a META-INF/services file • OSGi style • HK2 style – Lazy loading based on usage patterns • Makes it easier to provide support for new container types 19 GlassFish and OSGi • OSGi services can be used in any Java EE application @Resource(mappedName=”checkOsgiService”) CheckService checkService; – Client code portable, does not use any OSGi specific API • Converged applications possible – Dependencies in OSGi – Lifecycle still governed by Java EE • OSGi visibility extended from GlassFish developers to GlassFish users 20 Extending GlassFish v3 with OSGi http://blogs.sun.com/dochez/entry/glassfish_v3_extensions_part_4 • Extend GlassFish with an unmodified Spring dm container • Simple Spring bean implementing the service • Invoke the service from a servlet using standard @Resource injection • Still no use of a GlassFish API • Single runtime for both Spring and full Java EE 21 GlassFish v3 Extensibility – Plugable Console Additional functionality appears when EJB (full) package is installed on top of EJB Lite 22 GlassFish v3 Extensibility – Adding Scripting Frameworks JSF Grails ... Rails Merb ... Django ... Servlet Spec Rack WSGI Web JRuby Jython Container Container Container V3 Kernel Grizzly JVM Key GlassFish v3 Modules Java Framework Python Framework Web Framework Ruby Framework Interface 23 Embedded Glassfish • Start GlassFish inside your Java Application – API for life-cycle, configuration and deployment • Use cases – In Unit Tests (without a GlassFish installation) – As a plugin for Maven 2 project • glassfish-embedded goals: run, start, stop, deploy, ... – As a “custom” app server • Distribution – Standalone jars for web and full profile without a GF installation – Standalone jar for an existing GF installation – Maven plugin: http//download.java.net/maven/glassfish/ 24 Embedded Glassfish @BeforeClass public static void initContainer() { Server.Builder builder = new Server.Builder(); Server server = builder.build(); ContainerBuilder b = server.createConfig(ContainerBuilder.Type.web); server.addContainer(b); File archive = new File("hello.war"); server.getDeployer().deploy(archive); } @Test public static void pingApplication() { ... } 25 RESTful Administration Ready for the Cloud • JAX-RS/Jersey offers REST-Interface to – Runtime configuration (via GET, POST, DELETE) – admin command execution (restart, stop, deploy, etc..) – Monitoring (GET only) • Start at – http://localhost:4848/management/domain http://localhost:4848/monitoring/domain • Use of REST-Clients instead of Admin-GUI – build on your preferred scripting language or tool • Data format as XML, HTML or JSON • Extensible 26 GlassFish v3 Monitoring – based on probes, similar to DTrace – new: client-side scrtipting, REST and DTrace monitoring support 27 Update Center 28 What is Metro? • SOAP Web services stack • Part of GlassFish™ project community • Open Source of production-quality • Built into Glassfish, OpenESB, OpenSSO • Works with any servlet 2.5 compliant web container – WebLogic, WebSphere, JBoss, Tomcat, … • Advanced Interoperability with .Net 3.x/4.0 platform 29 Metro Main Features • JAX-WS 2.2 (new version) • Atomic Transactions – autogen JAXB beans (new) • Centralized config (new) • Security • Monitoring (new) – password derived keys (new) • NetBeans support • Identity • Eclipse support (new) – SSO for services (new) Extensible – Identity delegation (new) • • Reliable Messaging • Standards-based – persistent (new) – addressing metadata (new) – WS-MakeConnection (new) 30 Metro Interoperability Metro .NET 3.x/4.0 Client Client Endpoint Endpoint 31 Metro SOAP Web Services Stack JAX-WS Tooling, NetBeans & Studio Support Software Security Reliability Transactions Metadata Secure Conv. Reliable- Atomic- WSDL Trust Messaging Transactions MEX XWSS Coordination Policy SOAP Based Messaging (WSA, MTOM) JAXB Based XML Data Binding (XSD, XPATH) HTTP TCP SMTP 32 Creating a Web Service package foo; import javax.jws.WebService; @WebService() public class MyService { public String echo(final String x) { return "echo: " + x; } } 33 Adding Security Using NetBeans 34 Metro Interoperability via Standards • Basic Web Services – JCP: JAX-WS 2.2 & JAXB 2.2 – W3C: SOAP 1.1/1.2, WSDL 1.1, WS-Addressing, MTOM – WS-I: Basic Profile 1.x, 2.0, SSBP 1.0, AP 1.0, BSP 1.0 • Enterprise Web Services – Oasis: WS-Security, WS-SecureConversation, WS-Trust, WS-SecurityPolicy, WS-ReliableMessaging, WS-MakeConnection, WS-AtomicTransactions, WS-Coordintation – W3C: WS-Addressing, WS-Policy, WS-Transfer – WS-MetadataExchange • Same specs implemented by MS .NET 35 Why Scripting • Growing popularity of scripting technologies like JRuby, Groovy, Jython, Scala • Reasons – Easy and fast development – Short learning curve – Powerful frameworks – Quick and good enough architectures are often preferred – Focus on specific domain 36 Why Scripting Frameworks on GlassFish • Easier Installation through GF Update Center • Run in native scripting container without overhead • Reuse the high scalability of GF – JDBC connection pooling – Thread pooling – Special benefits for JRuby/RoR • Deploy multiple RoR apps on a single GF instance • Handling of multiple reQuests possible • Reuse the management and monitoring capabilities of GF and GF scripting container • Reuse GF security 37 GlassFish and Groovy/Grails http://wiki.glassfish.java.net/Wiki.jsp?page=GrailsGettingStarted • Installation – Select Grails package from Glassfish Update Center 38 GlassFish and Groovy/Grails • Development of a Grails application – Use Groovy/Grails
Recommended publications
  • Thin Server Architecture
    HTML5 Application Development with Java Peter Doschkinow Senior Java Architect The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. Agenda . Motivation . HTML5 Overview – Related Java Technologies . Thin Server Architecture . Demo Motivation . Need for clarification Gartner’s 2012 Emerging Technologies Hype Cycle – What is behind the hype . Architectural consequences of new trends . What offers the Java platform to meet the new challenges . Building of common understanding Web Technology History . 1991 HTML . 1995 JavaScript @ Netscape . 1994 HTML2 . 1996 ECMAScript 1.0, 1.1 . 1996 CSS1 . 1997 ECMAScript 1.2 . 1997 HTML4 . 1998 ECMAScript 1.3 . 1998 CSS2 . 2000 ECMAScript 3 . 2000 XHTML1 . 2010 ECMAScript 5 . 2002 Tableless Web Design . Next: ECMAScript 6 Harmony . 2005 AJAX . 2009 HTML5: as of Dec 2012 W3C CR HTML5 Features W3C / Web Hypertext Application Technology Working Group(WHATWG) . Markup – Semantic markup replacing common usages of generic <span>, <div> . <nav>, <footer>,<audio>, <video>, ... API – Canvas 2D (for immidate mode 2D drawing),Timed media playback – Offline Web Applications, Local Srorage and Filesystem, Web Storage – Geolocation, Web Storage, IndexedDB – File API, Drag-and-Drop, Browser History – ... HTML5 Features Offloaded to other specs, originally part of HTML5 . WebSocket API, Server-Sent Events(SSE), Web Messaging, Web Workers, Web Storage (Web Apps WG ) .
    [Show full text]
  • Sun Glassfish Enterprise Server V3 Scripting Framework Guide
    Sun GlassFish Enterprise Server v3 Scripting Framework Guide Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054 U.S.A. Part No: 820–7697–11 December 2009 Copyright 2009 Sun Microsystems, Inc. 4150 Network Circle, Santa Clara, CA 95054 U.S.A. All rights reserved. Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is described in this document. In particular, and without limitation, these intellectual property rights may include one or more U.S. patents or pending patent applications in the U.S. and in other countries. U.S. Government Rights – Commercial software. Government users are subject to the Sun Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its supplements. This distribution may include materials developed by third parties. Parts of the product may be derived from Berkeley BSD systems, licensed from the University of California. UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. Sun, Sun Microsystems, the Sun logo, the Solaris logo, the Java Coffee Cup logo, docs.sun.com, Enterprise JavaBeans, EJB, GlassFish, J2EE, J2SE, Java Naming and Directory Interface, JavaBeans, Javadoc, JDBC, JDK, JavaScript, JavaServer, JavaServer Pages, JMX, JRE, JSP,JVM, MySQL, NetBeans, OpenSolaris, SunSolve, Sun GlassFish, ZFS, Java, and Solaris are trademarks or registered trademarks of Sun Microsystems, Inc. or its subsidiaries in the U.S. and other countries. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries.
    [Show full text]
  • (Cont'd) Current Trends
    Scripting vs Systems Programming Languages (cont’d) Designed for gluing Designed for building Does application implement complex algorithms and data applications : flexibility applications : efficiency structures? Does application process large data sets (>10,000 items)? Interpreted Compiled Are application functions well-defined, fixed? Dynamic variable creation Variable declaration If yes, consider a system programming language. Data and code integrated : Data and code separated : meta-programming cannot create/run code on Is the main task to connect components, legacy apps? supported the fly Does the application manipulate a variety of things? Does the application have a GUI? Dynamic typing (typeless) Static typing Are the application's functions evolving rapidly? Examples: PERL, Tcl, Examples: PL/1, Ada, Must the application be extensible? Python, Ruby, Scheme, Java, C/C++, C#, etc Does the application do a lot of string manipulation? Visual Basic, etc If yes, consider a scripting language. cs480 (Prasad) LSysVsScipt 1 cs480 (Prasad) LSysVsScipt 2 Current Trends Jython (for convenient access to Java APIs) Hybrid Languages : Scripting + Systems Programming I:\tkprasad\cs480>jython – Recent JVM-based Scripting Languages Jython 2.1 on java1.4.1_02 (JIT: null) Type "copyright", "credits" or "license" for more information. »Jython : Python dialect >>> import javax.swing as swing >>> win = swing.JFrame("Welcome to Jython") »Clojure : LISP dialect >>> win.size = (200, 200) »Scala : OOP +Functional Hybrid >>> win.show()
    [Show full text]
  • [1 ] Glassfish Server Open Source Edition
    GlassFish[1] Server Open Source Edition Installation Guide Release 5.0 September 2017 This book contains instructions for installing and uninstalling GlassFish Server Open Source Edition software. GlassFish Server Open Source Edition Installation Guide, Release 5.0 Copyright © 2010, 2017 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 installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.
    [Show full text]
  • Amazon Codeguru Profiler
    Amazon CodeGuru Profiler User Guide Amazon CodeGuru Profiler User Guide Amazon CodeGuru Profiler: User Guide Copyright © Amazon Web Services, Inc. and/or its affiliates. All rights reserved. Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's, in any manner that is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored by Amazon. Amazon CodeGuru Profiler User Guide Table of Contents What is Amazon CodeGuru Profiler? ..................................................................................................... 1 What can I do with CodeGuru Profiler? ......................................................................................... 1 What languages are supported by CodeGuru Profiler? ..................................................................... 1 How do I get started with CodeGuru Profiler? ................................................................................ 1 Setting up ......................................................................................................................................... 3 Set up in the Lambda console ..................................................................................................... 3 Step 1: Sign up for AWS ....................................................................................................
    [Show full text]
  • Sun Glassfish Enterprise Server V3 Preludetroubleshooting Guide
    Sun GlassFish Enterprise Server v3 PreludeTroubleshooting Guide Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054 U.S.A. Part No: 820–6823–10 November 2008 Copyright 2008 Sun Microsystems, Inc. 4150 Network Circle, Santa Clara, CA 95054 U.S.A. All rights reserved. Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is described in this document. In particular, and without limitation, these intellectual property rights may include one or more U.S. patents or pending patent applications in the U.S. and in other countries. U.S. Government Rights – Commercial software. Government users are subject to the Sun Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its supplements. This distribution may include materials developed by third parties. Parts of the product may be derived from Berkeley BSD systems, licensed from the University of California. UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. Sun, Sun Microsystems, the Sun logo, the Solaris logo, the Java Coffee Cup logo, docs.sun.com, Enterprise JavaBeans, EJB, GlassFish, J2EE, J2SE, Java Naming and Directory Interface, JavaBeans, Javadoc, JDBC, JDK, JavaScript, JavaServer, JavaServer Pages, JMX, JSP,JVM, MySQL, NetBeans, OpenSolaris, SunSolve, Sun GlassFish, Java, and Solaris are trademarks or registered trademarks of Sun Microsystems, Inc. or its subsidiaries in the U.S. and other countries. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. Products bearing SPARC trademarks are based upon an architecture developed by Sun Microsystems, Inc.
    [Show full text]
  • E-Mail: [email protected] , Phone: +61 (412) 421-925
    Joshua M. Clulow E-mail: [email protected] , Phone: +61 (412) 421-925 TECHNICAL Software Development: SKILLS • Proficient in many high-level programming languages including Javascript (node.js), C, Java, Korn Shell (ksh), awk, etc. • Web application development with particular focus on delegated administration tools • System programming with particular focus on distributed job control and au- tomation • Kernel-level development and debugging of Illumos with mdb(1) and DTrace, with recent focus on porting support for the AMD-V instruction set extensions from Linux to Illumos KVM See: https://github.com/jclulow/illumos-kvm • Kernel-level development and debugging of OpenBSD with ddb and gdb, most recently due to my final year engineering project to create a single-system image cluster of OpenBSD machines See: https://jmc.sysmgr.org/~leftwing/files/fyp.pdf System Administration: • A range of operating systems including Illumos, Solaris, BSD, Linux, Mac OS and Windows • Web servers including Apache and Sun Web Server • Web proxies including Squid and Sun Proxy Server • Java application servers including Glassfish and Tomcat • Networking concepts including DHCP, DNS, IP networks (subnetting and rout- ing) and Firewalls • Solaris-specific technologies including Zones, SMF, ZFS and DTrace • Sun Cluster for highly available and load balanced systems • F5 BIG-IP Load Balancers • Sun 7000-series Unified Storage Systems • Entry-level and mid-range Sun x86 and SPARC hardware • Discrete servers and Blade systems EMPLOYMENT UNIX System Administrator (Manager)
    [Show full text]
  • Oracle Glassfish Server Application Development Guide Release 3.1.2 E24930-01
    Oracle GlassFish Server Application Development Guide Release 3.1.2 E24930-01 February 2012 This Application Development Guide describes how to create and run Java Platform, Enterprise Edition (Java EE platform) applications that follow the open Java standards model for Java EE components and APIs in the Oracle GlassFish Server environment. Topics include developer tools, security, and debugging. This book is intended for use by software developers who create, assemble, and deploy Java EE applications using Oracle servers and software. Oracle GlassFish Server Application Development Guide, Release 3.1.2 E24930-01 Copyright © 2012, 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, the following notice is applicable: U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.
    [Show full text]
  • Openjdk – the Future of Open Source Java on GNU/Linux
    OpenJDK – The Future of Open Source Java on GNU/Linux Dalibor Topić Java F/OSS Ambassador Blog aggregated on http://planetjdk.org Java Implementations Become Open Source Java ME, Java SE, and Java EE 2 Why now? Maturity Java is everywhere Adoption F/OSS growing globally Innovation Faster progress through participation 3 Why GNU/Linux? Values Freedom as a core value Stack Free Software above and below the JVM Demand Increasing demand for Java integration 4 Who profits? Developers New markets, new possibilities Customers More innovations, reduced risk Sun Mindshare, anchoring Java in GNU/Linux 5 License + Classpath GPL v2 Exception • No proprietary forks (for SE, EE) • Popular & trusted • Programs can have license any license • Compatible with • Improvements GNU/Linux remain in the community • Fostering adoption • FSFs license for GNU Classpath 6 A Little Bit Of History Jun 1996: Work on gcj starts Nov 1996: Work on Kaffe starts Feb 1998: First GNU Classpath Release Mar 2000: GNU Classpath and libgcj merge Dec 2002: Eclipse runs on gcj/Classpath Oct 2003: Kaffe switches to GNU Classpath Feb 2004: First FOSDEM Java Libre track Apr 2004: Richard Stallman on the 'Java Trap' Jan 2005: OpenOffice.org runs on gcj Mai 2005: Work on Harmony starts 7 Sun & Open Source Java RIs Juni 2005: Java EE RI Glassfish goes Open Source Mai 2006: First Glassfish release Mai 2006: Java announced to go Open Source November 2006: Java ME RI PhoneME goes Open Source November 2006: Java SE RI Hotspot und Javac go Open Source Mai 2007: The rest of Java SE follows suit 8 Status: JavaOne, Mai 2007 OpenJDK can be fully built from source, 'mostly' Open Source 25,169 Source code files 894 (4%) Binary files (“plugs”) 1,885 (8%) Open Source, though not GPLv2 The rest is GPLv2 (+ CP exception) Sun couldn't release the 4% back then as free software.
    [Show full text]
  • Characteristics of Dynamic JVM Languages
    Characteristics of Dynamic JVM Languages Aibek Sarimbekov Andrej Podzimek Lubomir Bulej University of Lugano Charles University in Prague University of Lugano fi[email protected] [email protected]ff.cuni.cz fi[email protected] Yudi Zheng Nathan Ricci Walter Binder University of Lugano Tufts University University of Lugano fi[email protected] [email protected][email protected] Abstract However, since the JVM was originally conceived for The Java Virtual Machine (JVM) has become an execution a statically-typed language, the performance of the JVM platform targeted by many programming languages. How- and its JIT compiler with dynamically-typed languages is ever, unlike with Java, a statically-typed language, the per- often lacking, lagging behind purpose-built language-specific formance of the JVM and its Just-In-Time (JIT) compiler JIT compilers. Making the JVM perform well with various with dynamically-typed languages lags behind purpose-built statically- and dynamically-typed languages clearly requires language-specific JIT compilers. In this paper, we aim to significant effort, not only in optimizing the JVM itself, but contribute to the understanding of the workloads imposed on also, more importantly, in optimizing the bytecode-emitting the JVM by dynamic languages. We use various metrics to language compiler, instead of just relying on the original JIT characterize the dynamic behavior of a variety of programs to gain performance [8]. This in turn requires that developers written in three dynamic languages (Clojure, Python, and of both the language compilers and the JVM understand the Ruby) executing on the JVM. We identify the differences characteristics of the JVM workloads produced by various with respect to Java, and briefly discuss their implications.
    [Show full text]
  • Debian Java Insights and Challenges
    Debian Java Insights and challenges Markus Koschany FOSDEM 19 Brussels / Belgium February, 3rd 2019 Markus Koschany Debian Java: Insights and challenges FOSDEM 19 1/7 The importance of Java Source / binary packages maintained by the Java team: 1033 / 1644 (+10,84 % since Debian 9) Source lines of code (Rank 3) : 90,744,884 Popcon value OpenJDK-8 (installed): 78104 / 199604 Popular libraries: apache-commons-*, javamail, xerces2, bouncycastle Popular applications: libreoffice, netbeans, pdfsam, sweethome3d, freeplane, freecol Frequently used for scientific research, medical care and bioinformatics. Markus Koschany Debian Java: Insights and challenges FOSDEM 19 2/7 What is new in Buster? OpenJDK 11 transition completed. (required more than 400! package updates) Build tools: Ant and Maven are up-to-date. Gradle is stuck at the last pre-Kotlin version. SBT is still being worked on. JVM languages: Groovy 2.14, Scala 2.11.12 (2.12 requires SBT), Clojure 1.9, Jython 1.7.1, JRuby 9.1.13 (?), Kotlin is wanted but hard to bootstrap. IDE: Eclipse is gone (lack of maintainers) but there is Netbeans 10 now. Server: Jetty 9.4 and Tomcat 9 fully up-to-date with systemd integration. Reproducibility rate is at 85% (was 75%) https://reproducible-builds.org Markus Koschany Debian Java: Insights and challenges FOSDEM 19 3/7 Packaging challenges “None of the packages in the main archive area require software outside of that area to function” Internet downloads at build time are not allowed No prebuilt jar or class files! Java is version-centric. Every developer has to update every dependency themself in this model.
    [Show full text]
  • Reading the Runes for Java Runtimes the Latest IBM Java Sdks
    Java Technology Centre Reading the runes for Java runtimes The latest IBM Java SDKs ... and beyond Tim Ellison [email protected] © 2009 IBM Corporation Java Technology Centre Goals . IBM and Java . Explore the changing landscape of hardware and software influences . Discuss the impact to Java runtime technology due to these changes . Show how IBM is leading the way with these changes 2 Mar 9, 2009 © 2009 IBM Corporation Java Technology Centre IBM and Java . Java is critically important to IBM – Provides fundamental infrastructure to IBM software portfolio – Delivers standard development environment – Enables cost effective multi platform support – Delivered to Independent Software Vendors supporting IBM server platforms . IBM is investing strategically in virtual machine technology – Since Java 5.0, a single Java platform technology supports ME, SE and EE – Technology base on which to delivery improved performance, reliability and serviceability • Some IBM owned code (Virtual machine, JIT compiler, ...) • Some open source code (Apache XML parser, Apache Core libraries, Zlib, ...) • Some Sun licensed code (class libraries, tools, ...) . Looking to engender accelerated and open innovation in runtime technologies – Support for Eclipse, Apache (Harmony, XML, Derby, Geronimo, Tuscany) – Broad participation of relevant standards bodies such as JCP and OSGi 3 Mar 9, 2009 © 2009 IBM Corporation Java Technology Centre IBM Java – 2009 key initiatives . Consumability – Deliver value without complexity. – Ensure that problems with our products can be addressed quickly, allowing customers to keep focus on their own business issues. – Deliver a consistent model for solving customer problems. “Scaling Up” - Emerging hardware and applications – Provide a Java implementation that can scale to the most demanding application needs.
    [Show full text]