Enterprise Java in 2012 and Beyond From Java EE 6 To Cloud Computing

Similar documents
Lessons learned from real-world deployments of Java EE 7. Arun Gupta, Red

1 Markus Eisele, Insurance - Strategic IT-Architecture

<Insert Picture Here> Java Virtual Developer Day

Seam 3. Pete Muir JBoss, a Division of Red Hat

Migrating traditional Java EE applications to mobile

Developing Applications with Java EE 6 on WebLogic Server 12c

Red Hat JBoss Enterprise Application Platform 7.2

Oracle Corporation

Oracle - Developing Applications for the Java EE 7 Platform Ed 1 (Training On Demand)

ORACLE DATA SHEET KEY FEATURES AND BENEFITS ORACLE WEBLOGIC SUITE

Agenda Time (PT) 8:45 a.m. Event Platform Opening 9:00 a.m. Keynote - Java: Present and Future Java EE 7 Java SE 8 Java Embedded

EJB ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY. EJB Enterprise Java

Spring Framework 5.0 Themes & Trends

What is it? What does it do?

The Next Generation. Prabhat Jha Principal Engineer

Enterprise Architectures

Spring Framework 2.5: New and Notable. Ben Alex, Principal Software Engineer, SpringSource

Roadmap to Cloud with Cloud Application Foundation

PaaS Cloud mit Java. Eberhard Wolff, Principal Technologist, SpringSource A division of VMware VMware Inc. All rights reserved

JavaEE.Next(): Java EE 7, 8, and Beyond

Spring Framework 5.0 on JDK 8 & 9

Hands-on Development of Web Applications with Java EE 6

Contents at a Glance

Courses For Event Java Advanced Summer Training 2018

Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX

IBM. IBM WebSphere Application Server Migration Toolkit. WebSphere Application Server. Version 9.0 Release

Java EE 7: Back-End Server Application Development

EMEA/Africa/Middle East - Tuesday June 25th, :00:00 a.m. - 1:00pm BST / 10:00:00 a.m. - 2:00 p.m.cest /

Java- EE Web Application Development with Enterprise JavaBeans and Web Services

CO Java EE 7: Back-End Server Application Development

JVA-163. Enterprise JavaBeans

Java EE und WebLogic Roadmap die nächsten Schritte

MicroProfile - New and Noteworthy

JVA-563. Developing RESTful Services in Java

Optimizing Enterprise Java for a Microservices Architecture Otávio

@jbossdeveloper. explained

Spoilt for Choice Which Integration Framework to choose? Mule ESB. Integration. Kai Wähner

Eclipse MicroProfile: Accelerating the adoption of Java Microservices

WebSphere 4.0 General Introduction

Microservices mit Java, Spring Boot & Spring Cloud. Eberhard Wolff

presentation DAD Distributed Applications Development Cristian Toma

Java EE 6 & Spring: A Lover s Quarrel. Derrick Kittler Mauricio Maltron Leal Vamsi Chemitiganti

Webservices In Java Tutorial For Beginners Using Netbeans Pdf

Struts: Struts 1.x. Introduction. Enterprise Application

CMP 436/774. Introduction to Java Enterprise Edition. Java Enterprise Edition

Java EE Architecture, Part Two. Java EE architecture, part two 1

Java EE Application Assembly & Deployment Packaging Applications, Java EE modules. Model View Controller (MVC)2 Architecture & Packaging EJB Module

OSGi on the Server. Martin Lippert (it-agile GmbH)

Oracle Corporation

Java EE 6 - Update Harpreet Singh GlassFish Portfolio Product Manager

Making The Future Java

Spring & Hibernate. Knowledge of database. And basic Knowledge of web application development. Module 1: Spring Basics

Java EE 6: Develop Business Components with JMS & EJBs

J2EE - Version: 25. Developing Enterprise Applications with J2EE Enterprise Technologies

ISV Technical Executive Forum 2011

Eclipse Java Ejb 3.0 Tutorial For Beginners With Examples Pdf

Spring 2.5 on the Way to 3.0

Distributed Systems. Messaging and JMS Distributed Systems 1. Master of Information System Management

Java EE 6 Web Profile Leader 2011 Roadmap

JSR 365 (CDI 2.0) Review

V3 EJB Test One Pager

Oracle EXAM - 1Z Java EE 6 Enterprise JavaBeans Developer Certified Expert Exam. Buy Full Product.

Meet. Brian Stansberry Principal Software Engineer, Red Hat, Inc. June 10, Friday, June 14, 13

Vision of J2EE. Why J2EE? Need for. J2EE Suite. J2EE Based Distributed Application Architecture Overview. Umair Javed 1

Enterprise Java Unit 1-Chapter 2 Prof. Sujata Rizal Java EE 6 Architecture, Server and Containers

An Oracle White Paper July Oracle WebLogic Suite 12c (12.1.2) Technical White Paper

Adobe ColdFusion 11 Enterprise Edition

ECLIPSE PERSISTENCE PLATFORM (ECLIPSELINK) FAQ

Modular Java Applications with Spring, dm Server and OSGi

JakartaEE and the road ahead An ASF View. Mark Struberg, RISE GmbH, Apache Software Foundation, INSO TU Wien

PDF SIMPLE JAVA WEB SERVICE EXAMPLE

Introduction To Cloud Computing

Adopt-a-JSR Panel for 16 October 2014

Soap Based Web Services In Java Tutorial Eclipse Jboss

Liberty Right Fit for MicroProfile

Building the Enterprise

Wednesday, January 25, 12

Java EE 7 is ready What to do next? Peter Doschkinow Senior Java Architect

DOC // JAVA TOMCAT WEB SERVICES TUTORIAL EBOOK

Java Training Center, Noida - Java Expert Program

Multitiered Architectures & Cloud Services. Benoît Garbinato

Java Platform, Enterprise Edition 6 with Extensible GlassFish Application Server v3

New Features in EJB 3.1

IBM Rational Application Developer for WebSphere Software, Version 7.0

Copyright 2014, Oracle and/or its affiliates. All rights reserved.

Specialized - Mastering JEE 7 Web Application Development

Java EE 6: Develop Web Applications with JSF

Inside WebSphere Application Server

IBM WebSphere Application Server 8. Java EE 6 Feature Packs

com Spring + Spring-MVC + Spring-Boot + Design Pattern + XML + JMS Hibernate + Struts + Web Services = 8000/-

Java Connector Architecture Building Enterprise Adaptors Atul Apte

Red Hat Developer Studio 12.0

From Java EE to Jakarta EE. A user experience

Java EE 7 Recipes for Concurrency. Presented By: Josh Juneau Author and Application Developer

Web Application Development Using JEE, Enterprise JavaBeans and JPA

Multi Client Development with Spring

Programowanie w chmurze na platformie Java EE Wykład 1 - dr inż. Piotr Zając

Web Application Development Using JEE, Enterprise JavaBeans and JPA

Market leading web application server product

COURSE DETAILS: CORE AND ADVANCE JAVA Core Java

Transcription:

Enterprise Java in 2012 and Beyond From Java EE 6 To Cloud Computing Jürgen Höller, Principal Engineer, SpringSource 2012 SpringSource, A division of VMware. All rights reserved

Deployment Platforms: Becoming More Diverse Application Application Application Frameworks + Libs Frameworks + Libs Frameworks + Libs Java EE Server Tomcat Cloud Platform 2

The State of Deployment Platforms in 2011/2012 Java EE servers having moved on to Java EE 6 GlassFish 3 JBoss 7 WebSphere 8 Apache Tomcat having moved on to Tomcat 7 Servlet 3.0 based (Java EE 6 level) Cloud platforms becoming a serious option for regular Java web application deployment Google App Engine: Jetty++ Amazon Elastic Beanstalk: Tomcat++ VMware's CloudFoundry: Tomcat++ 3

Cloud Platforms a.k.a. Platform as a Service (PaaS) public cloud : available through a shared, public host private cloud : virtualization platform inside a corporate data center Typically: a pre-installed web container with additional services datastores (not necessarily a relational database!) messaging, clustered sessions, clustered cache, etc The aforementioned Google App Engine and Amazon Elastic Beanstalk are good reference examples common ground: WAR deployment, Servlet API, JPA ignoring Java EE? several further offerings to show their promise in the course of 2012 4

CloudFoundry: VMware's Open Cloud Platform 5

Wide Variety of Data and Datastores Not all data resides in relational databases cloud environments often suggest alternatives for scalability reasons HBase, Redis, Mongo, Neo4j, etc Distributed caches add challenges as well not least of it all in terms of application-level access patterns GemFire, Coherence, Infinispan, etc Hardly any standardization available JSR-107 for caching did not make progress for a long, long time finally getting picked up in Java EE 7, but again only for caching alternative datastore space is too diverse for standardization 6

Wide Variety of Web Clients More and more client-side web technologies HTML 5 as a next-generation standard for desktop and mobile browsers native Android and ios clients on smartphones and tablets Server-side state to be minimized or even removed completely in particular: no server-side user interface state strictly controlled user session state JSF's state-centric approach not a great fit anymore except for special kinds of applications (which it remains very useful for) web application backends and web services based on JAX-RS / MVC style nevertheless: JSF keeps evolving JSF 2.2 coming up in 2012 7

HTML 5 on Mobile Devices See mobilehtml5.org 8

Java SE 7: Concurrent Programming A challenge: concurrent programming in a multi-core world user-level APIs and recommended programming styles? Servers with more cores than concurrent requests how to actually use your processor power in such a scenario? Java SE 7: java.util.concurrent.forkjoinpool specialized ForkJoinPools to be locally embedded within the application different kind of pool, separate from regular Runnable-oriented Executors Oracle's OpenJDK 7 released in summer 2011 IBM JDK 7 followed surprisingly soon after 9

Scala & Akka: Concurrent Programming Revisited Scala as a next-generation language on the JVM combines object orientation with functional programming particularly well suited for concurrent programming integrates reasonably well with existing Java APIs Akka as an actor-based framework for Scala and Java event-driven architectures strong architectural impact (if you fully go for it) different approach towards concurrent programming raises the concurrency abstraction level (but not too much) provides Scala and Java APIs however, being most convenient with Scala message passing 10

Concurrent Programming: Then and Now The classic one Higher-level patterns for 2012 and beyond 11

Java EE 6 Revisited How relevant is Java EE 6 in the context of recent trends? as usual, Java EE 6 tends to solve yesterday's problems... the fate of specifications with a multi-year expert group process even worse, EE server vendors take years to implement a full platform release Some recent trends change this industry quite rapidly and radically cloud platforms challenge the notion of dedicated servers alternative datastores challenge relational databases and their access APIs concurrent programming trends do not match traditional EE assumptions Java EE 7 to the rescue in 2012? Let's see... 12

A Quick Preview: Java EE 7 A broad set of expected updates JCache (JSR-107) JAX-RS 2.0 JMS 2.0 JPA 2.1 EJB 3.2 CDI 1.1 Bean Validation 1.1 Servlet 3.1 JSF 2.2 Key theme: multi-tenancy for cloud environments 13

Application Portability: Platform Generations? SAME Application SAME Application SAME Application Frameworks + Libs Frameworks + Libs Frameworks + Libs Java EE 5 Java EE 6 Java EE 7 14

Java EE 7 Timeline Java EE 7 is certainly going to deliver key foundational updates the key question is: when, and how well adopted by major vendors? Umbrella specification scheduled to go final in Q4 2012 more realistically, most individual specifications going final in late 2012 with the full EE 7 umbrella specification not being ready before 2013 Individual implementations for JCache, JMS 2.0, JPA 2.1 etc to be available in late 2012, for immediate use on Tomcat etc embedded into the application's deployment unit hard to use on top of existing EE servers due to API version conflicts 15

Java EE in Cloud Environments Java EE 6 in mainstream cloud environments? Red Hat's OpenShift is based on JBoss AS 7 now nearly two years after the Java EE 6 specification release however, Oracle's cloud offering is just about to become fully Java EE 6 compatible in early 2012 more than two years after the Java EE 6 specification release Key problem: major cloud vendors not adopting Java EE at all but rather a more minimal selection of Java platform services typically Java SE + Servlet + JPA + custom cloud service APIs reconsider Google App Engine and Amazon Elastic BeansTalk also Cloud Foundry, Heroku, etc 16

Key Elements of Spring: Ready for 2012 & Beyond Dependency Injection Simple Objects AOP Portable Service Abstractions More important than ever! 17

Environment Abstraction Grouping bean definitions for activation in specific environments e.g. different stages: development, testing, production e.g. different deployment environments: Tomcat, EE server, Cloud Foundry resolution of placeholders from environment-specific property sources Environment association of specific bean definitions XML 'profile' attribute on <beans> element @Profile annotation on configuration classes @Profile annotation on individual component classes Ideally: no need to touch the deployment unit across different stages/environments 18

Cache Abstraction CacheManager and Cache abstraction in org.springframework.cache which up until 3.0 just contained EhCache support particularly important with the rise of distributed caching not least of it all: in cloud environments Backend adapters for EhCache, GemFire, Coherence, etc EhCache adapter shipping with Spring core plugging in custom adapters if necessary Specific cache setup per environment profile? potentially adapting to a runtime-provided cloud caching service 19

Spring Web Applications on Servlet 3.0 /** * Automatically detected and invoked on startup by Spring's ServletContainerInitializer. May register listeners, filters, servlets etc against the given Servlet 3.0 ServletContext. */ public class MyWebAppInitializer implements WebApplicationInitializer { public void onstartup(servletcontext sc) throws ServletException { // Create the 'root' Spring application context AnnotationConfigWebApplicationContext root = new AnnotationConfigWebApplicationContext(); root.scan("com.mycompany.myapp"); root.register(furtherconfig.class); } } // Manages the lifecycle of the root application context sc.addlistener(new ContextLoaderListener(root));... 20

Support for Java SE 7 & Java EE 7 Java SE 7 is an important driver for Spring 3.x making best possible use of JRE 7 at runtime support for JDBC 4.1 in Spring 3.1 as of Spring 3.2, building the framework against Java 7 while preserving runtime compatibility with Java 5 and 6 Early support for Java EE 7 related specifications coming in this year's Spring 3.2 generation as well JCache JMS 2.0 JPA 2.1 JSF 2.2 Bean Validation 1.1 21

Forward Compatibility with Java SE 8 Java 8's language enhancements in mind already preparing Spring APIs for Java 8 lambda expressions a.k.a. Java 8 closures Single Abstract Method (SAM) types interfaces with one method common in Spring already ResultSetExtractor RowMapper MessageCreator TransactionCallback Java 8 enhancements will work with existing versions of Spring once JDK 8 is released 22

Beyond Spring Framework: Recent Key Projects Spring Data support for many alternative datastores GemFire, Hadoop, Redis, Mongo, Neo4j Spring AMQP messaging beyond JMS, e.g. for RabbitMQ Spring Mobile & Spring Android conveniences for mobile app development Spring Social programmatic access to social networks 23

Summary Disruptive forces approaching the Enterprise Java space deployment to cloud platforms access to alternative datastores HTML 5 based web architectures concurrent programming challenges Common ground in deployment platforms is once again unclear selected specifications (Java SE, Servlet, JPA) as one key ingredient 'proprietary' APIs and embedded frameworks as another key ingredient Either way, there are exciting times ahead of us. Let's embrace them! 24