1 / 43

Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy.

shaman
Download Presentation

Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java EE 7: Developing for the CloudArun Gupta, Java EE & GlassFish Guy

  2. 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.

  3. Java EE 6 Platform December 10, 2009

  4. Top Ten Features in Java EE 6 • EJB packaging in a WAR • Servlet and CDI extension points • Optional web.xml • Type-safe dependency injection • CDI Events • JSF standardizing on Facelets • EJBContainer API • @Schedule • EJB No Interface View • Web Profile

  5. Java EE 6 Implementations • Fastest implementations of a Java EE release ever!

  6. Today’s Cloud Offerings are all Proprietary Infrastructure as a Service Platform as a Service Software as a Service

  7. Java EE 7 We’re moving Java EE into the Cloud !

  8. Java EE 7 Focus: Platform as a Service • 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 • PaaS support entails evolutionary change • Provide way for customers and users to leverage public, private, and hybrid clouds

  9. 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 multi-tenancy

  10. Cloud Services, Not Just APIs • 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 service-enabled and tenant-aware • Example: pluggable services Tenant App Tenant App Tenant App Java EE Application Level Services Queuing Service PersistenceService CachingService … PaaS Infrastructure Services Security Service Provisioning Service File Service … Platform as a Service - Services IaaS Infrastructure Services Virt VIP VLAN Volume LBR … Infrastructure as a Service

  11. Roles Developer PaaS Provider PaaS Customer/ Tenant PaaS Product Provider Machine Machine Machine Machine Machine Machine JVM JVM JVM JVM JVM JVM JVM JVM JVM JVM JVM JVM JVM JVM JVM JVM JVM JVM Deployer PaaS Account Manager Tenant 1 Tenant 2 Tenant 3 Application Submitter PaaS Administrator Application Administrator

  12. Existing Java EE model Configure Java EE resources – JDBC, JMS etc Deploy Application EAR Database Service 1 LDAPService Provision and Initialize 2 Messaging Service 3 Application Container Provision and Initialize 4 Deploy Application (EAR/GAR/SAR …) 5 Provision and Initialize Provision and Initialize

  13. Java EE 7 Model: Auto-Provision Services from Application Dependencies Provision and deploy application resources (e.g. LDAP stripe, data source instantiation and connection …) Extensible Deployment Models Supporting Multiple Frameworks Spring, Seam, Play … Cloud Administration Service 1 Provision and Initialize Database Service 2 LDAPService 3 Provision and Initialize Messaging Service 4 Application Container Deploy Application (EAR/GAR/SAR …) 5 Provision and Initialize Provision and Initialize

  14. 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 )

  15. Services • Cloud apps consume services • Persistence, queueing, mail, caching, … • Service metadata facilitates ease of use when deploying into the cloud @JMSConnectionFactory ( name=“java:app/myJMSConnectionFactory”, resourceType=“javax.jms.QueueConnectionFactory”) @JMSDestination( name=“java:app/myQueue”, resourceType=“javax.jms.Queue”)

  16. Services • Cloud apps consume services • Persistence, queueing, mail, caching, … • Service metadata facilitates ease of use when deploying into the cloud @MailSession ( name=“java:app/mailSession”, from=“MyService@ExtraServices.com” )

  17. Services • Cloud apps consume services • Persistence, queueing, mail, caching, … • Service metadata facilitates ease of use when deploying into the cloud @ConnectorService ( name=“java:app/myCustomConnector”, type=“com.extraServices.customConnector.class”, properties = {…} )

  18. Elasticity Java EE 7 Focus:Move the Bar Right • Service Levels • Minimum and Maximum Instances • Futures – Self Adjustment, Capacity On Demand Elasticity Continuum Java EE Cluster Elastic Cluster Elastic Cluster Capacityon Demand Ca Single node Non-Elastic Java EE Multi-Node Multi-Instance Clustering Dynamic Self AdjustingSLA Driven Elasticity

  19. Example Scenario “A software company writes an application, submits it to a PaaS provider, then any number of tenants sign up for the application, deploy it, their end users access it”

  20. Walkthrough (1) SimplyCRM DiabloCloud

  21. Walkthrough (2) SimplyCRM DiabloCloud Application Developer Writes App

  22. Walkthrough (3) SimplyCRM DiabloCloud Signs up as a customer PaaSAccountManager PaaSCustomer

  23. Walkthrough (4) SimplyCRM DiabloCloud Submits the application Application Submitter System Administrator App

  24. Walkthrough (5) ExtraServices DiabloCloud Discovers App

  25. Walkthrough (6) ExtraServices DiabloCloud Signs up as a customer PaaSCustomer PaaSAccountManager App

  26. Walkthrough (7) ExtraServices DiabloCloud Deployer System Administrator Customizes and deploys the application App

  27. Walkthrough (8) ExtraServices DiabloCloud Deployer System Administrator Provisions on Cloud infrastructure App

  28. Walkthrough (9) ExtraServices DiabloCloud Deployer System Administrator Provisioned and Deployed App

  29. Walkthrough (10) ExtraServices DiabloCloud Provisioned and Deployed App Access the application End-Users

  30. Walkthrough (11) ExtraServices DiabloCloud End-Users Access the application Provisioned and Deployed App Administrator Administers the application

  31. Walkthrough (12) ExtraServices DiabloCloud System Administrator Monitors End-Users Access the application Provisioned and Deployed App Administrator Administers the application

  32. Demo PaaSing a Java EE Application in the Cloud

  33. Conference Planning in the Cloud Java EE Application JSF JPA EJB Deploy Services Metadata <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> http://glassfish.org/javaone2011

  34. Service Provisioning Load Balancer . . . Java EE Java EE Java EE Database

  35. Multi-tenancy in Java EE 7 • Support for separate isolated instances of the same app for different tenants • One application instance per tenant • Tenants correspond to units of isolation • Multitenant apps are declared as such • 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

  36. 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 • JAX-RS 2.0 Client API, hypermedia, bean validation, … • 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

  37. Java EE 7 – Candidate JSRs CDI Extensions Bean Validation 1.1 Jcache 1.0(JSR 107) WebContainerExtensions JAX-RS 2.0 JSP 2.2EL 3.0 JSF 2.2 Servlet 3.1 Concurrency Utilities 1.0 StateManagement 1.0 CDI 1.1 / Interceptors 1.1 / JSR 250 1.1 Managed Beans 1.0 EJB 3.2 Batch Processing 1.0 JTA 1.1 JSON 1.0 JPA 2.1 JMS 2.0

  38. Transparency • Oracle’s 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 update to JCP 2.8 Process

  39. Status and Schedule • All JSRs up and running • Early Drafts: JSF 2.2, JAX-RS 2.0, JPA 2.1, CDI 1.1 • Final release target: Q3 2012 • Date-driven release: Anything not ready will be deferred to Java EE 8

  40. GlassFish Roadmap • GlassFish Server 3.1 • Centralized administration • Clustering / HA • GlassFish Server Control • GlassFish Server 3.1.2 • Bug Fixes • Incremental features • GlassFish v3 • Java EE 6 support • Single instance • GlassFish Enterprise Mgr 2012 2011 2009 2010 • GlassFish Server 3.0.1 • Oracle branding • Oracle platform support • Oracle interoperability • GlassFish Server 3.1.1 • Bug fixes • Updated components • Incremental features • GlassFish Server 4 • Java EE 7 • Multitenancy • PaaS-enablement

  41. Call to Action • Java EE 7 Expert Group Project • http://javaee-spec.java.net • Java EE 7 Reference Implementation • http://glassfish.org • The Aquarium • http://blogs.oracle.com/theaquarium

  42. Java EE 7: Developing for the CloudArun Gupta, Java EE & GlassFish Guyblogs.oracle.com/arungupta, @arungupta,arun.p.gupta@oracle.com

More Related