The Next Generation. Prabhat Jha Principal Engineer

Similar documents
Java EE 6 - Update Harpreet Singh GlassFish Portfolio Product Manager

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

1 Markus Eisele, Insurance - Strategic IT-Architecture

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

Oracle Corporation

CO Java EE 7: Back-End Server Application Development

Deccansoft Software Services. J2EE Syllabus

Java EE 7: Back-End Server Application Development

Java EE 6: Develop Business Components with JMS & EJBs

Migrating traditional Java EE applications to mobile

APPLICATION SECURITY ENHANCEMENTS IN JAVA EE 6

Hands-on Development of Web Applications with Java EE 6

Developing Applications with Java EE 6 on WebLogic Server 12c

Contents at a Glance

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

Red Hat JBoss Enterprise Application Platform 7.2

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

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

IBM WebSphere Application Server 8. Java EE 6 Feature Packs

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

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

open source community experience distilled

Leverage Rational Application Developer v8 to develop Java EE6 application and test with WebSphere Application Server v8

JBoss Enterprise Application Platform 6.3

"Charting the Course... Mastering EJB 3.0 Applications. Course Summary

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

JVA-163. Enterprise JavaBeans

Web Application Development Using JEE, Enterprise JavaBeans and JPA

Web Application Development Using JEE, Enterprise JavaBeans and JPA

Devoxx 2008 in a breeze

JBoss Enterprise Application Platform 6

Enterprise JavaBeans, Version 3 (EJB3) Programming

New Features in EJB 3.1

Java Training Center, Noida - Java Expert Program

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

INTRODUCTION TO COMPONENT DESIGN IN JAVA EE COMPONENT VS. OBJECT, JAVA EE JAVA EE DEMO. Tomas Cerny, Software Engineering, FEE, CTU in Prague,

Java EE 6 & GlassFish v3 Paving the path for future. Arun Gupta Sun Microsystems, Inc.

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

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP

V3 EJB Test One Pager

JVA-563. Developing RESTful Services in Java

Enterprise JavaBeans 3.1

Oracle Corporation

@jbossdeveloper. explained

Java EE 6: Develop Web Applications with JSF

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

Implementing a Web Service p. 110 Implementing a Web Service Client p. 114 Summary p. 117 Introduction to Entity Beans p. 119 Persistence Concepts p.

Type of Classes Nested Classes Inner Classes Local and Anonymous Inner Classes

Fast Track to EJB 3.0 and the JPA Using JBoss

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

Architect Exam Guide. OCM EE 6 Enterprise. (Exams IZO-807,1ZO-865 & IZO-866) Oracle Press ORACLG. Paul R* Allen and Joseph J.

Eclipse Java Ejb 3.0 Tutorial For Beginners With Examples Pdf

JBoss SOAP Web Services User Guide. Version: M5

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

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

<Insert Picture Here> Future<JavaEE>

JBoss Enterprise Application Platform 6.2

Specialized - Mastering JEE 7 Web Application Development

Improve and Expand JavaServer Faces Technology with JBoss Seam

JBoss Enterprise Application Platform 6.1

ISV Technical Executive Forum 2011

Developing Enterprise JavaBeans for Oracle WebLogic Server 12c (12.2.1)

QUALITY SUPPORT FROM THE SOURCE.

Introduction. Enterprise Java Instructor: Please introduce yourself Name Experience in Java Enterprise Edition Goals you hope to achieve

"Web Age Speaks!" Webinar Series

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

Courses For Event Java Advanced Summer Training 2018

Java SE7 Fundamentals

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

Techniques for Building J2EE Applications

Red Hat JBoss Enterprise Application Platform 7.0

Chapter 1: First steps with JAX-WS Web Services

<Insert Picture Here> Productive JavaEE 5.0 Development

OCP JavaEE 6 EJB Developer Study Notes

Enterprise Development

Enterprise Java Development using JPA, Hibernate and Spring. Srini Penchikala Detroit JUG Developer Day Conference November 14, 2009

2017, IBM Corporation Liberty z/os Good Practices. WebSphere Liberty z/os Applications and Application Deployment

Deployment. See Packaging and deployment processes

Open Source. in the Corporate World. JBoss. Application Server. State of the Art: Aaron Mulder

Wild(Fly) far and away

Java Enterprise Edition

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

1Z Oracle. Java Enterprise Edition 5 Enterprise Architect Certified Master

Java J Course Outline

Deploying the JBoss Portfolio to the Cloud

Course Content for Java J2EE

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

Chapter 1 Introducing EJB 1. What is Java EE Introduction to EJB...5 Need of EJB...6 Types of Enterprise Beans...7

GAVIN KING RED HAT CEYLON SWARM

MicroProfile - New and Noteworthy

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

J2EE Development. Course Detail: Audience. Duration. Course Abstract. Course Objectives. Course Topics. Class Format.

Java SE 8 Fundamentals

WebSphere Foundation Update and Technical Direction

Red Hat JBoss Enterprise Application Platform 7.1

Overview p. 1 Server-side Component Architectures p. 3 The Need for a Server-Side Component Architecture p. 4 Server-Side Component Architecture

Web Application Development Using Spring, Hibernate and JPA

Java EE 6 Community Roundtable. Reza Rahman Independent Consultant Author, EJB 3 in Action

Active Endpoints. ActiveVOS Platform Architecture Active Endpoints

Red Hat Developer Studio 12.0

Transcription:

The Next Generation Prabhat Jha Principal Engineer

What do you wish you had in an Open Source JEE Application Server?

Faster Startup Time?

Lighter Memory Footprint?

Easier Administration?

7 Reasons To Love AS7...

7 Reasons To Love AS7... Blazing fast startup time

7 Reasons To Love AS7... Blazing fast startup time Lightweight

7 Reasons To Love AS7... Blazing fast startup time Lightweight Modular core

7 Reasons To Love AS7... Blazing fast startup time Lightweight Modular core Hot, parallel deployment

7 Reasons To Love AS7... Blazing fast startup time Lightweight Modular core Hot, parallel deployment Elegant administration

7 Reasons To Love AS7... Blazing fast startup time Lightweight Modular core Hot, parallel deployment Elegant administration Domain management

7 Reasons To Love AS7... Blazing fast startup time Lightweight Modular core Hot, parallel deployment Elegant administration Domain management First class components

Bonus for Austin JUG Testable by design :-)

Details

Blazing Fast Startup Time

Lightweight Footprint

New Possibilities Execute an entire Java EE container in a unit test! Use an appserver VM per application Run in constrained environments (light cloud, plug computers, mobile devices) Develop faster than you ever have before. Run multiple staging servers on your laptop.

JBoss AS7 Architecture

Modular Core Isolated Classes vs. One Size Fits All!

JBoss Modules Provides extremely fast modular class loading O(1) Dependency resolution Concurrent CL (lockless in most VMs) Pure modular class loading Modules only see what they import (includes JDK classes!) External module definitions Don t have to break open the JAR Dynamic Modules can be redefined Extensible JBoss OSGi implemented on modules

OLD: Hierarchical Classloading NEW: Modular Classloading

User Deployments User deployments are modules too Sets up dependencies on some modules automatically (e.g. JPA, Hibernate, WebServices) The user can also set up their own dependencies on app server modules

Hot, Parallel Deployment Services Load Concurrently!

Services In AS7 almost everything is a service Services are objects that can be started and stopped Services can have dependencies on other services When all a services dependencies are satisfied it will attempt to start If a dependency going to be stopped, then MSC will stop all dependent services first Services can inject dependent services

Elegant Administration

First Class Components Infinispan CDI/Weld HornetQ Hibernate JSF OSGI PicketBox

EAP 6 Test Drive Now!

Key Features Fast and Lightweight Supports domain (multi-node) management Multiple consistent management interfaces CLI, Java API, HTTP API, Console Unified, user-focused configuration Modular Only APIs, no AS implementation exposure True isolation

Two Operational Models Standalone Traditional JBoss single JVM server Management facilities IN-VM Domain Multi-JVM, multi-server model Management coordinated by Domain Controller Process Multiple server instances (JVMs) per Host Full lifecycle managed by Process Controller

Standalone Mode Standalone is a single AS process for use in development, where the additional management functionality is not required Provides a similar development experience to previous versions of the AS, allowing for a deployment to be dropped in the deployments folder and automatically deployed Can still be managed by the same tools and API's as domain mode

Standalone Mode Demo

Domain Mode Easy management of multiple AS instances Managed from a single point, all have access to the same domain configuration Allows for management and configuration updates to be pushed out to all servers Domain Mode has three separate processes: Process Controller Host Controller Server Instance

Domain Mode Architecture

Domain Mode.. Multi-server management as a core part of AS 7 /EAP 6 itself Start/quiesce/stop servers Rolling deployment to a set of servers Roll a config change out of a set of servers Roll back changes

Domain Model Concepts Subsystem : a particular set of capabilities that extend the app server core WebServer, Transaction Manager, EJB3 Profile: the set of subsystem a server or a group of server runs Change your profile to expand or narrow the capabilities of your servers

Management ONE configuration file standalone.xml / domain.xml Management API that allows for persistent changes to the configuration Management API can manage all servers in the domain Management console to provide user friendly management in a web browser Command line tool for use in scripts

Management via Configuration

Management via API

Management via CLI Scriptable command line management tool Uses the management API internally Allows access to high level user friendly commands: create-jms-queue -name testqueue Also allows direct access to the domain model, giving access to the full functionality of the management API

Testing with Arquillian AS7 supports easy testing with ArquillIan Arquillian is used both in the internal test suite and by end users to test their applications Combined with the fast startup speed of AS7 testing in the container is just as easy as running normal JUnit tests.

A simple API for constructing archives as Java objects: WebArchive archive = ShrinkWrap.create(WebArchive.class, archive.war ).addclasses(myclass.class,myotherclass.class, WecomeServlet.class).addAsResource("mystuff.properties"); myserver.deploy(archive); // And done. High Octane Development Automated Testing for Java EE6 Andrew Lee Rubinger

Java EE 6 Intro Extensibility Profiles Subsets of full EE platform Web Profile Pruning CMP, JAX-RPC, JAXR, JSR-88 are pruned in EE6 New Technology & Improvements to Existing Dependency Injection, CDI, Servlet 3, JPA 2, JSF 2, JAX-RS, Bean Validation

Servlet 3 Ease of Development Annotations Zero configuration in XML for the most part. Web framework pluggability Programmatic access to web.xml Dynamic changes to configuration of webapp Async and Commet support Non blocking input and output Delay request handing Delay response close

Servlet 3 @WebServlet @WebServlet("/report") public class ReportServlet extends HttpServlet @WebFilter @WebFilter(filterName = "TimeOfDayFilter", urlpatterns = {"/*"}, initparams = { @WebInitParam(name = "report", value = "dev")}) public class TimeOfDayFilter implements Filter { @HttpConstraint @HttpMethodConstraint @MultipartConfig @ServletSecurity @WebInitParam @WebListener

JSF 2 Ajax Easy component creation Bookmarkable URLs Templating (think Facelets)

JPA 2 O/R mapping enhancements Embedded objects, collections, ordered lists Query and Entity Manager Enhancements First result, max results, typed results Criteria API 2nd Level Caching Pessimistic Locking

JPA 2...

JAX-RS Web services through REST instead of SOAP REST counterpart of JAX-WS Annotations from ground up Integration with CDI and EJB @Path("users/{username: [a-za-z][a-za-z_0-9]}") public class HelloWorldResource { @GET @Produces("text/xml") public String getmessage(@pathparam("username") String username) { return "Hi + username +!! Howz JBoss AS 7??"; }

EJB 3.1 ( Lite) Removal of the requirement for a separate local business interface. Support for direct use of EJBs in the servlet container, including simplified packaging options. Singleton beans with different locking options. Support for asynchronous session bean invocation. Application-level callback notifications, including for container initialization and shutdown. EJB Timer Service enhancements to support cron-like scheduling, deploymenttime timer creation, and stateful session bean timed objects. Lite: Local Session Bean, Annotation, Security, Interceptors. MDB, Timer, Web Services End Point, RMI-IIOP

EJB 3.1 ( Lite)... @javax.ejb.stateless public class CarHotelAndAirLineBookingServiceBean { @javax.ejb.asynchronous public Future<BookingConfirmation> bookcarhotelandairline( Car rental, Hotel hotel, AirLine airline) {...} }//end async service //-------------------------In your JSF bean, you can then do-----------------------------public String makerequest() { confirmation = bookingservice.bookcarhotelandairline(...); return "showconfirmationpending"; } public Future<BookingConfirmation> getconfirmation(){ /*... */ }

EJB 3.1 ( Lite) Removal of the requirement for a separate local business interface. Support for direct use of EJBs in the servlet container, including simplified packaging options. Singleton beans with different locking options. Support for asynchronous session bean invocation. Application-level callback notifications, including for container initialization and shutdown. EJB Timer Service enhancements to support cron-like scheduling, deploymenttime timer creation, and stateful session bean timed objects. Lite: Local Session Bean, Annotation, Security, Interceptors. MDB, Timer, Web Services End Point, RMI-IIOP

Bean Validation Specify constraints only once across application layers @NotNull @Size(min = 1, max = 25) @Pattern(regexp = "[A-Za-z ]*", message = "must contain only letters and spaces") private String name; @NotNull @Size(min = 10, max = 12) @Digits(fraction = 0, integer = 12) private String phonenumber;

CDI Makes Java EE development more productive.!! Provides a declarative way to manage the scope, state and life-cycle of components bound to contexts. Provides a standardised, annotation-driven, type-safe dependency injection framework for the platform. Provides a Service Provider Interface (SPI) for developing portable extensions for the Java EE platform What is CDI aka JSR-299's relationship with respect to JSR330, Dependency Injection?

Community or Enterprise?

Community or Enterprise?

Demo Administration Console Domain Model Quickstart with maven archetype Deployments mvn archetype:generate \ mvn archetype:generate \ OpenShift -DarchetypeArtifactId=jboss-javaee6-webapp \ -DarchetypeArtifactId=jboss-javaee6-webapp \ -DarchetypeGroupId=org.jboss.spec.archetypes \ -DarchetypeGroupId=org.jboss.spec.archetypes \ -DarchetypeVersion=7.0.0.CR1 \ -DarchetypeVersion=7.0.0.CR1 \ -DarchetypeRepository=repository.jboss.org/ -DarchetypeRepository=repository.jboss.org/ nexus/content/groups/public nexus/content/groups/public

OpenShift EE6 In the Cloud!