<Insert Picture Here> Java EE 7: the New Cloud Platform



Similar documents
<Insert Picture Here> Java EE 7: the New Cloud Platform

<Insert Picture Here> Java EE 7. Linda DeMichiel Java EE Platform Lead

Java EE 7 and HTML5: Developing for the Cloud

JMS 2.0: Support for Multi-tenancy

Towards a cloud-enabled Java EE platform Rok Povše, prof. dr. Matjaž Branko Jurič

OpenShift is FanPaaStic For Java EE. By Shekhar Gulati Promo Code JUDCON.IN

The Java EE 7 Platform and Support for the PaaS Model

Oracle im Open Source Kontext Abgrenzung GlassFish vs. JBoss und wozu noch WebLogic?

The Java EE 6 Platform. Alexis Moussine-Pouchkine GlassFish Team

APAC WebLogic Suite Workshop Oracle Parcel Service Overview. Jeffrey West Application Grid Product Management

Java EE 6 development with Eclipse, Netbeans, IntelliJ and GlassFish. Ludovic Champenois Oracle Corporation

Introduction to Sun ONE Application Server 7

White Paper: 1) Architecture Objectives: The primary objective of this architecture is to meet the. 2) Architecture Explanation

How to Build an E-Commerce Application using J2EE. Carol McDonald Code Camp Engineer

This training is targeted at System Administrators and developers wanting to understand more about administering a WebLogic instance.

Oracle WebLogic Foundation of Oracle Fusion Middleware. Lawrence Manickam Toyork Systems Inc

Weblogic 12c: Mastering The Cloud Foundation. Patrick Dewael & Kristof Satory

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

Planning, Provisioning and Deploying Enterprise Clouds with Oracle Enterprise Manager 12c Kevin Patterson, Principal Sales Consultant, Enterprise

IBM Boston Technical Exploration Center 404 Wyman Street, Boston MA IBM Corporation

Oracle Reference Architecture and Oracle Cloud

Converting Java EE Applications into OSGi Applications

Oracle WebLogic Server 11g Administration

Java EE 6 Ce qui vous attends

JSR 375 (EE Security API) Review

<Insert Picture Here> GlassFish v3 - A Taste of a Next Generation Application Server

SUSE Cloud 2.0. Pete Chadwick. Douglas Jarvis. Senior Product Manager Product Marketing Manager

JBoss Enterprise App. Platforms Roadmap. Rich Sharples Director of Product Management, Red Hat 4th April 2011

The Oracle Fusion Development Platform

White Paper: Why Upgrade from WebSphere Application Server (WAS) v7 to v8.x?

Accelerated Java EE Open Source Development with Eclipse CON1905

Learning GlassFish for Tomcat Users

Operations and Monitoring with Spring

Java EE 7: Back-End Server Application Development

OUR COURSES 19 November All prices are per person in Swedish Krona. Solid Beans AB Kungsgatan Göteborg Sweden

CHAPTER 1 - JAVA EE OVERVIEW FOR ADMINISTRATORS

The Future of Java. Terrence Barr Senior Technologist, Oracle

MagDiSoft Web Solutions Office No. 102, Bramha Majestic, NIBM Road Kondhwa, Pune Tel: /

Code:1Z Titre: Oracle WebLogic. Version: Demo. Server 12c Essentials.

White Paper. Cloud Native Advantage: Multi-Tenant, Shared Container PaaS. Version 1.1 (June 19, 2012)

WebLogic Server 11g Administration Handbook

JBoss & Infinispan open source data grids for the cloud era

Client-Server Architecture & J2EE Platform Technologies Overview Ahmed K. Ezzat

<Insert Picture Here> Oracle Mobile Enterprise Application Platform Overview

Running and Testing Java EE Applications in Embedded Mode with JupEEter Framework

JBoss JEE5 with EJB3.0 on NonStop. JAVA SIG, San Jose

Glassfish Architecture.

Oracle WebLogic Server 11g: Administration Essentials

Oracle Communications WebRTC Session Controller: Basic Admin. Student Guide

The Virtualization Practice

Easy Deployment of Mission-Critical Applications to the Cloud

Scale Cloud Across the Enterprise

GlassFish v3. Building an ex tensible modular Java EE application server. Jerome Dochez and Ludovic Champenois Sun Microsystems, Inc.

WebSphere Server Administration Course

Why IBM WebSphere Application Server V8.0?

Oracle Database Cloud

WebLogic on Oracle Database Appliance: Combining High Availability and Simplicity

IBM WebSphere Server Administration

<Insert Picture Here> Building a Complex Web Application Using ADF and Siebel

This presentation will provide a brief introduction to Rational Application Developer V7.5.

STeP-IN SUMMIT June 18 21, 2013 at Bangalore, INDIA. Performance Testing of an IAAS Cloud Software (A CloudStack Use Case)

Cloud Computing. Adam Barker

ucosminexus Application Server and BPM/ESB Platform Terminology Guide Y99(E)

Enterprise Applications

Enterprise JavaBeans' Future: Getting Simpler, More Ubiquitous, but Not Dominant

WEBLOGIC ADMINISTRATION

<Insert Picture Here> Private Cloud with Fusion Middleware

Private Cloud or Bust: Oracle WebLogic Server and Oracle Enterprise Manager

9/26/2011. What is Virtualization? What are the different types of virtualization.

EclipseLink. Solutions Guide for EclipseLink Release 2.5

A Beginners Guide to Fusion Middleware

Chapter 4. Architecture. Table of Contents. J2EE Technology Application Servers. Application Models

applications. JBoss Enterprise Application Platform

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

Framework Adoption for Java Enterprise Application Development

Using SUSE Cloud to Orchestrate Multiple Hypervisors and Storage at ADP

<Insert Picture Here> Enterprise Cloud Computing: What, Why and How

OpenNebula An Innovative Open Source Toolkit for Building Cloud Solutions

WebSphere Application Server - Introduction, Monitoring Tools, & Administration

Managing Complexity in Mobile Application Deployment Using the OSGi Service Platform

Supporting Multi-tenancy Applications with Java EE

1Z Oracle Weblogic Server 11g: System Administration I. Version: Demo. Page <<1/7>>

Glassfish, JAVA EE, Servlets, JSP, EJB

A Brief Overview. Delivering Windows Azure Services on Windows Server. Enabling Service Providers

<Insert Picture Here> Cloud Computing Strategy

Introduction to WebSphere Administration

JSR-303 Bean Validation

Cloud Essentials for Architects using OpenStack

Manjrasoft Market Oriented Cloud Computing Platform

Oracle Database Cloud Service Rick Greenwald, Director, Product Management, Database Cloud

Configuring and Managing a Private Cloud with Enterprise Manager 12c

Transcription:

<Insert Picture Here> Java EE 7: the New Cloud Platform Peter Doschkinow Senior Java Architect

The following/preceding 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 Java EE 7 as PaaS Services Deployment Multi-tenancy Roles Demo Java EE 7 API and Status 3

Today s Cloud Offerings Are Vendor-Specific Infrastructure as a Service Platform as a Service Software as a Service 4

Java EE 7 Focus: PaaS Provide way for customers and users to leverage public, private, and hybrid clouds in a standard way PaaS support entails evolutionary change Next logical step for Java EE J2EE Java EE 6 : The Java EE Platform provides services Java EE 7 : The Java EE Platform IS a service 2010 Oracle Corporation Proprietary

Java EE 7 PaaS Roadmap Define new platform roles to accommodate PaaS model Add metadata For service provisioning and configuration For QoS, elasticity For sharing of applications and resources For (re)configurability and customization Add useful APIs for cloud environment JAX-RS client API, Caching API, State Management, JSON, Extend existing APIs with support for multitenancy 6

Java EE 7 Design Goals Multi-Tenancy Build on EE 6 Momentum JMS 2.0 Service Definition & Orchestration Elasticity Java EE 7 Caching API JSON API New Roles Broad Industry Participation Expanded CDI & REST Support 2010 Oracle Corporation Proprietary

Java EE 7 as PaaS Tenant applications consume services PaaS administrators host, configure, and manage application and infrastructure services Existing APIs in Java EE need to be updated to be serviceenabled and tenant-aware Example: pluggable services Tenant App Tenant App Tenant App Queuing Service Security Service Java EE Application Level Services Persistence Service Platform as a Service - Services Infrastructure as a Service Caching Service PaaS Infrastructure Services Ochestration Service Provisioning Service IaaS Infrastructure Services Virt VIP VLAN Volume LBR File Service 8

Java EE Services Cloud apps consume services Persistence, queueing, mail, caching, Service metadata facilitates ease of use when deploying into the cloud @DataSourceDefinition( ) name= java:app/jdbc/mydb, classname= oracle.jdbc.pool.oracledatasource, isolationlevel=transaction_repeatable_read, initialpoolsize=5 9

Java EE Services Cloud apps consume services Persistence, queueing, mail, caching, Service metadata facilitates ease of use when deploying into the cloud @JMSConnectionFactoryDefinition( name="java:app/myjmscf", classname="javax.jms.queueconnectionfactory", resourceadaptername="myjmsra") @JMSDestinationDefinition( name="java:app/myjmsqueue", classname="javax.jms.queue", destinationname="myqueue1") 10

Java EE Services Cloud apps consume services Persistence, queueing, mail, caching, Service metadata facilitates ease of use when deploying into the cloud @MailSessionDefinition( name="java:app/mail/mysession", host="somewhere.myco.com", from="some.body@myco.com") 11

Java EE Services Cloud apps consume services Persistence, queueing, mail, caching, Service metadata facilitates ease of use when deploying into the cloud @ConnectorResourceDefinition( name="java:app/mycustomconnector", classname="com.extraservices.customconnector") 12

Java EE 7 Service An entity that is created, provisioned, managed, and monitored by or for the PaaS runtime/infrastructure A significant software function that is needed to execute an application Types Provisioned - installed, configured, and managed by the platform; application scoped or shared External - already exist in the enterprise, platform is configured to know about them Shared - used by multiple environments (per-user, and persystem) Examples: LB, database, Java EE application service 13

Specification of Service Metadata Service Definition Metadata used to provision and configure a Service Service characteristics (functional and non-functional) specification Template matching Explicit Template specification Service Reference Represents an application component's dependency on a Service Explicit: User specified through Deployment Descriptors Implicit and Discovered: Information contained within the archive 14

Traditional Java EE App Deployment 15

Java EE 7 PaaS App Deployment 16

Java EE 7 Elasticity Java EE 7 Focus Elasticity Continuum Java EE Cluster Elastic Cluster Single Node Non-Elastic Java EE Multi-Node Multi-Instance Clustering Capacity on Demand Dynamic Self Adjusting SLA Driven Elasticity Cluster elasticity : Metrics provided by application Application Server metrics (response time, etc..) Virtual Machine information (CPU, Memory, Disk usages) Metrics sources JMX Mbeans, JVM Monitoring tools, native tools 17

PaaS and Multi-tenancy: Some Models 1 2 PaaS Platform on Demand New runtime stack for each tenant PaaS Multitenant Containers Isolated app partitions per tenant with shared runtime SaaS Multitenant Applications (SaaS-full) Shared app instances, with tenant-specific customization SaaS-limited Separate app instances, with tenant-specific customizations 1 2 1 2 1 2 18

Java EE 7 Multitenancy Limited form of SaaS Support for separate isolated instances of the same app for different tenants Multitenant apps are declared as such Tenants correspond to units of isolation One application instance per tenant Each instance customized and deployed for a single tenant Limited form of SaaS Mapping to tenant done by the container Tenant id available to application E.g., under java:comp/tenantid or by injection 19

Java EE 7 Roles Developer Application Submitter PaaS Provider PaaS Customer/ Tenant JVM JVM JVM Machine JVM JVM JVM JVM JVM JVM Machine JVM JVM JVM JVM JVM JVM Machine JVM JVM JVM PaaS Product Provider Deployer Machine Machine Machine Tenant 1 Tenant 2 Tenant 3 PaaS Account Manager Application Administrator End-User PaaS Administrator 20

GlassFish Server 4.0 Java EE 7 reference implementation Virtualization implementations Laptop mode Runs processes on the bare metal operating system. Local mode Locally installed hypervisor Best fidelity to deployment scenario Remote mode Connects to remote hypervisors Transparent development 21

GlassFish in the Cloud Service Discovery Orchestration Engine Elasticity Management Service Monitor deployed Applications Service Association Adjust cluster shape Service Provisioning Engine Hypervisor Abstraction Template matching Iaas Management Service Template Management Versioning Cloud Resources Configuration VirtualBox plugin OVM Plugin KVM Plugin 22

PaaSing a Java EE Application GlassFish 4.0 Demo at JavaOne: http://glassfish.org/javaone2011 <glassfish-services> <service-description init-type="lb" name="conferenceplanner-lb"> <template id="lbnative"/> <configurations> <configuration name="https-port" value="50443"/> <configuration name="ssl-enabled" value="false"/> <configuration name="http-port" value="50080"/> </configurations></service-description> <service-description init-type="javaee" name="conferenceplanner"> <characteristics> <characteristic name="service-type" value="javaee"/> </characteristics> <configurations> <configuration name="max.clustersize" value="4"/> <configuration name="min.clustersize" value="2"/> </configurations> </service-description>... </glassfish-services> 23

Demo Dynamic service provisioning Service dependencies are discovered from metadata and by application archive introspection Discovered services (Java EE, database, load balancer) are provisioned Highly available cluster With session failover Elasticity using auto-scaling The Java EE cluster is automatically resized to meet growing demands 24

Java EE 7 is not just Cloud-y Alignment of ManagedBeans across CDI, EJB, JSF, POJO ManagedBean Enterprise JavaBean Extension of container-managed transactions beyond EJB Further simplifications for ease-of-development JMS 2.0 focus on ease-of-development Expanded use of dependency injection Expanded service metadata; improved configuration Pruning EJB CMP and BMP, JAX-RPC, Deployment API Update to Web Profile 25

Java EE 7 JSRs CDI Extensions CDI 1.1 / Interceptors 1.1 / JSR 250 1.1 Managed Beans 1.0 EJB 3.2 JPA 2.1 Web Container Extensions JAX-RS 2.0 JSF 2.2 Servlet 3.1 JTA 1.1 JSP 2.2 EL 3.0 JMS 2.0 av nae B Jcache 1.0 (JSR 107) Concurrency Utilities 1.0 (JSR 236) State Management 1.0 (JSR 350 Batch Processing 1.0 (JSR 352) JSON 1.0 (JSR 353) WebSockets 1.0 (JSR 356) 1. 1 n iot a idl 26

Transparency Checklist http://jcp.org/en/resources/transparency Our Java EE 7 JSRs are run in the open on java.net http://javaee-spec.java.net One project per spec e.g., jpa-spec, jax-rs-spec, jms-spec, Publicly viewable Expert Group mail archive Users observer list gets copies of all Expert Group emails Publicly viewable download area Publicly viewable issue tracker Commitment to match JCP 2.8 Process 27

Java EE 7 Status and Schedule All JSRs up and running Early drafts available for: Java EE 7 (JSR 342) Expression Language 3.0 (JSR 341) Java Message Service 2.0 (JSR 343) Enterprise JavaBeans 3.2 (JSR 345) Contexts and Dependency Injection 1.1 (JSR 346) Bean Validation 1.1 (JSR 349) JavaServer Faces 2.2 (JSR 344) Java Persistence API 2.1 (JSR 338) Java API for RESTful Services 2.0 (JSR 339) Final release by Q2 2013 Date-driven release: anything not ready will be deferred 28

Java Message Service 2.0 Simplified API Less verbose Reduce the number of objects needed to send/receive message Allow resource injection Alternative, not replacement for standard API New mandatory API for integration of any JMS 2.0 provider with any Java EE server Connection, Session and other objects are AutoClosable 29

Java Message Service 2.0 sending a message the old way @Resource(lookup = "jms/connectionfactory ") ConnectionFactory connectionfactory; @Resource(lookup="jms/inboundQueue") Queue inboundqueue; public void sendmessageold (String payload) { Connection connection = null; try { connection = connectionfactory.createconnection(); Session session = connection.createsession(false, Session.AUTO_ACKNOWLEDGE); MessageProducer messageproducer = session.createproducer(inboundqueue); TextMessage textmessage = session.createtextmessage(payload); messageproducer.send(textmessage); } catch (JMSException e) { // do something } finally { try { if (connection!= null) connection.close(); } catch (JMSException e2) { // do something else }}} 30

Java Message Service 2.0 sending a message the new way @Resource(lookup = "jms/connectionfactory") ConnectionFactory connectionfactory; @Resource(lookup="jms/inboundQueue") Queue inboundqueue; public void sendmessagenew (String payload) { try (JMSContext context = connectionfactory.createcontext();){ context.send(inboundqueue,payload); } } 31

Links Java EE 7 java.net project Archives, documents, mailing lists, http://java.net/projects/javaee-spec Component projects http://java.net/projects/xxx-spec (where XXX = jpa, ejb, jms, servlet, jax-rs, jsf, ) GlassFish Java EE 7 reference implementation http://glassfish.org Feedback users@javaee-spec.java.net 32

<Insert Picture Here> Java EE 7: the new Cloud Platform Peter Doschkinow Senior Java Architect