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

Similar documents
GlassFish V3. Jerome Dochez. Sun Microsystems, Inc. hk2.dev.java.net, glassfish.dev.java.net. Session ID YOUR LOGO HERE

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

GlassFish Survival Guide. Alexis Moussine-Pouchkine GlassFish Team Sun Microsystems

One Pager: GlassFish v3 Monitoring

IBM WebSphere Application Server 8. Java EE 6 Feature Packs

Oracle Corporation

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

Welcome to GlassFish Day Jazoon Sun Microsystems

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

Java EE 6 - Update Harpreet Singh GlassFish Portfolio Product Manager

GlassFish : From the clustering to the cloud. Fabien LEROY

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

JVA-163. Enterprise JavaBeans

The Next Generation. Prabhat Jha Principal Engineer

OpenESB Keh-Yoe Ong FAST (Field Assistance Support Team)

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

GlassFish V3 Engineer's guide

Java EE 6: Develop Business Components with JMS & EJBs

Arun Gupta is a technology enthusiast, a passionate runner, and a community guy who works for Sun Microsystems. And this is his blog!

Open ESB v2, Open ESB.next and Project Fuji. Andreas Egloff Lead Architect SOA / Business Integration Sun Microsystems

GAVIN KING RED HAT CEYLON SWARM

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

1.2. Name(s) and address of Document Author(s)/Supplier: Sahoo: 1.3. Date of This Document: 12 July 2008

Roadmap to Cloud with Cloud Application Foundation

Developing Applications with Java EE 6 on WebLogic Server 12c

ΠΙΝΑΚΑΣ ΠΛΑΝΟΥ ΕΚΠΑΙΔΕΥΣΗΣ

Arun Gupta is a technology enthusiast, a passionate runner, and a community guy who works for Sun Microsystems. And this is his blog!

V3 EJB Test One Pager

GlassFish v3.1 EJB One Pager

Modular Java EE in the cloud

Inside WebSphere Application Server

<Insert Picture Here> Java Virtual Developer Day

11-15 DECEMBER ANTWERP BELGIUM

New Features in EJB 3.1

Java EE 7: Back-End Server Application Development

Database Binding Component User's Guide

ISV Technical Executive Forum 2011

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

Contents at a Glance

OSGi Application Development using GlassFish Server. Version 1.0

JVA-563. Developing RESTful Services in Java

Takes 2 to Tango: Java Web Services and.net Interoperability

CO Java EE 7: Back-End Server Application Development

Diagnostic & Audit system for Java EE applications

Hands-on Development of Web Applications with Java EE 6

Enterprise Development

Deccansoft Software Services. J2EE Syllabus

Courses For Event Java Advanced Summer Training 2018

Arquillian & ShrinkWrap

Exam Questions 1Z0-895

Rails powered by GlassFish & jmaki

Web Application Development Using JEE, Enterprise JavaBeans and JPA

Improve and Expand JavaServer Faces Technology with JBoss Seam

<Insert Picture Here> Future<JavaEE>

ORACLE DATA SHEET KEY FEATURES AND BENEFITS ORACLE WEBLOGIC SUITE

WebLogic Feature Timeline

Functional Specification for Deployment Author(s):

EclipseLink. Solutions Guide for EclipseLink Release 2.6. June Beta Draft

Red Hat JBoss Enterprise Application Platform 7.2

1 Markus Eisele, Insurance - Strategic IT-Architecture

open source community experience distilled

Server-Side JavaScript auf der JVM. Peter Doschkinow Senior Java Architect

Web Application Development Using JEE, Enterprise JavaBeans and JPA

Equinox OSGi: Pervasive Componentization

Eclipse Java Ejb 3.0 Tutorial For Beginners With Examples Pdf

Apache Felix. Richard S. Hall. A Standard Plugin Model for Apache. Atlanta, Georgia U.S.A. November 13th, 2007

OSGi in WebSphere : The Story so far

Java EE 6: Develop Web Applications with JSF

Building the Enterprise

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

NetBeans IDE Field Guide

ECLIPSE PERSISTENCE PLATFORM (ECLIPSELINK) FAQ

COPYRIGHTED MATERIAL

<Insert Picture Here> Productive JavaEE 5.0 Development

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

6/13/2012. Sneak Preview: Oracle JDeveloper 12c New Features. Frank Nimphius Senior Principal Product Manager Oracle Development Tools

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

presentation DAD Distributed Applications Development Cristian Toma

Carsten Ziegeler

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

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

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

Liberate your components with OSGi services

Sun Java Studio Creator. Ken Paulsen Staff Engineer Sun Microsystems, Incorporated (Slides by: Craig R. McClanahan)

Agenda. Why OSGi. What is OSGi. How OSGi Works. Apache projects related to OSGi Progress Software Corporation. All rights reserved.

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

JBPM Course Content. Module-1 JBPM overview, Drools overview

Java Programming Language

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

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

Active Endpoints. ActiveVOS Platform Architecture Active Endpoints

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

GlassFish High Availability Overview

CO Java EE 6: Develop Database Applications with JPA

J2EE Development with Apache Geronimo 1.1. Aaron Mulder CTO, Chariot Solutions Committer, Apache Geronimo

<Insert Picture Here> Upgrading from Oracle Application Server to Oracle WebLogic Server

Not just an App. Server

Java Training Center, Noida - Java Expert Program

Spring Dynamic Modules

Introducing Apache Geronimo 1.1. Aaron Mulder CTO, Chariot Solutions Committer, Apache Geronimo

Transcription:

Java Platform, Enterprise Edition 6 with Extensible GlassFish Application Server v3 Jerome Dochez Mahesh Kannan Sun Microsystems, Inc.

Agenda > Java EE 6 and GlassFish V3 > Modularity, Runtime > Service Based Architecture > Containers inside out > Demo > OSGi integration > Monitoring

GlassFish V3 > Java EE 6 Profiles Web-developer productivity > Modularity Grow from minimal (3mb) to full Java EE support and more... Based on OSGi > Embedded Start using Java EE 6 platform features in your Java SE application (JPA, local ejb...) API driven

GlassFish V3 product differentiation > Open for all JVM based technologies JRuby/Grails Native deployment (no war repackaging) > Extensible Extensive APIs to replace or extend features OSGi also provides extensions capabilities > Service based architecture services are defined by contracts and can be easily substituted lazy loading based on usage patterns

Agenda > Java EE 6 and GlassFish V3 > Modularity, Runtime > Service Based Architecture > Containers inside out > Demo > OSGi integration > Monitoring

Modularity > Based on OSGi > GlassFish v3 is delivered as 170 bundles Undoubtedly too many... Successfully maintained quick startup > Modules nomenclature Services they provide Lifecycle > Strong build tool is necessary, we used maven > Used to deliver Java EE profiles

Embedded API > Start and configure GlassFish using APIs // Create the Server ServerBuilder builder = ServerBuilder.get( sample ) Server server = builder.setlogfile( /tmp/foo.log ).create(); // Configure the web container server.add((server.getbuilder(webcontainerbuidler)).sethtt pport(server.createport(8080)); // Start the server server.start(); > Shortcuts possible : new WebContainer(8080).deploy(...);

Runtime > Kernel startup/shutdown sequences basic services (deployment) configuration reading > Services Cross containers functionalities Java EE 6 : Security, Naming Manager... Products : Admin Console > Containers handle user's applications independent of each others

Container Isolation (Java EE 6 Profiles) WEB EJB Persistence WebServices... Glue Glue Glue Glue Kernel, OSGi, basic services Optional Services

Application Container > Deployment Ability to add/remove/start/stop applications > Configuration Ability to have configuration stored in central configuration Automatic clustering support > Commands CLI, REST invocations > Monitoring (MBeans, Gmbal)

Agenda > Java EE 6 and GlassFish V3 > Modularity, Runtime > Service Based Architecture > Containers inside out > Demo > OSGi integration > Monitoring

Service Based Architecture > Modules are just packaging artifact > Capabilities and relationships are formed using services OSGi services HK2 services Abstraction to OSGi services Per thread/per request scopes Integrated lightweight dependency injection

HK2 Service > Interfaces are declared with @Contract > Implementations are declared with @Service > Build system will generate Metadata automatically @Contract public interface Startup {...} @Service public class ConfigService implements Startup {... }

Service Lookup > Dependency injection @Service Public class RandomService implements SomeCtr { @Inject Startup somestartupservice } > Automatic cascading > Name resolution : @Inject(name= foo ) > Can be API driven (no DI)

Agenda > Java EE 6 and GlassFish V3 > Modularity, Runtime > Service Based Architecture > Containers inside out > Demo > OSGi integration > Monitoring

Application Container Runtime C O N T A I N E R G l u e C o d e K e Kernel r n e l Deployment Configuration Grizzly Monitoring AdminGUI

Deployment > Sniffer : recognize applications Stigma : META-INF/ejb-jar.xml Any class annotated with @Stateless > Container (1 per container) Maintain container state Points to the deployer implementation > Deployer (1 per container) Deploy, undeploy > ApplicationContainer (1 per application) Start, stop, suspend, resume

Configuration > All configuration in v3 uses annotated interface public interface CtrConfig extends Container { @attribute String s1; @Element SubCtrConfig } > Will result in our central configuration <ctr-config s1= foo > <sub-ctr-config.../> </ctr-config>

Configuration (2) > Lands in our central config (domain.xml) Automatic clustering support Automatic MBeans generation Automatic REST interface Automatic transaction access to mutating data > Well integrated product, yet made of disparate bits and pieces. > All configuration interfaces are implemented by a single class we own, very lightweight.

REST > Use JAX-RS to provide REST interfaces to Configuration data Commands invocation (deploy, undeploy, etc..) Monitoring > Binding use annotations on @Configured configuration model, @Service command implementations to generate WADL. http://localhost:4848/rest-resources/domain > You can even use REST clients as an AdminGUI substitute

CLI > Administrative commands can be added with each container : Manipulates the container configuration @Service(name= change-random-ctr ) public class ChangeRandomCtr implements AdminCommand { @Param String s1; @Param String s2; } Available as : asadmin change-random-ctr s1 foo s2 bar

GlassFish v3 Architecture REST Web Services Scripting OpenMQ JMS WebSpace Server Portal OpenESB OpenSSO Web Container JSF Connection Pooling (JCA) Java Persistence Application Container EJB Container Web Services Interop Management Console Update Center Management CLI Naming Service Injection Grizzly Framework Config Manager Deploy Security Monitor Configuration Cluster Monitoring/ Serviceability/ Logging Transaction Service Security Service GlassFish V3 Core (Module Subsystem) Deployment Clustering OSGi Java SE 22

Agenda > Java EE 6 and GlassFish V3 > Modularity, Runtime > Service Based Architecture > Containers inside out > Demo > OSGi integration > Monitoring

Agenda > Java EE 6 and GlassFish V3 > Modularity, Runtime > Service Based Architecture > Containers inside out > Demo > OSGi integration > Monitoring

OSGi integration > No OSGi APIs are used in GlassFish v3 Hk2 provides isolation layer Mockup implementation of hk2 makes V3 capable of running without OSGi Embedded mode Static mode (single class loader) > All GlassFish modules are OSGi bundles > Completely portable to any OSGi R4 compliant runtime Felix is the default 25

OSGi services implemented in v3 > HTTP Service Simple dynamic servlet web server > OSGi Alliance RFC 98 Transactions in OSGi > OSGi Alliance RFC 66 OSGi-based web container

OSGi integration > Module management Add, remove, update installed modules > OSGi as a container! Treat OSGi just like any container, bundles are deployed to it. > Converged Applications Started investigating Java EE 6 + OSGi converged applications : Dependencies in OSGi Lifecycle still governed by Java EE.

OSGi Integration (2) > OSGi services Available to any Java EE application @Resource(mappedName= osginame ) SomeOSGiService injectedservice; JNDI lookup Portable, no OSGi dependencies in you Java EE application code > No bundle management access > All installed bundles exported APIs visible to Java EE Applications

OSGi bundle management > OSGi bundles can be deployed to GlassFish As a library As an extension to glassfish Managed like an application > Coupled with well-known OSGi extended pattern, can be used to extend Glassfish runtime > It's possible to extend GlassFish without using a single GlassFish APIs.

Agenda > Java EE 6 and GlassFish V3 > Modularity, Runtime > Service Based Architecture > Containers inside out > Demo > OSGi integration > Monitoring

Monitoring > Monitoring possible on all platforms > Probes are enabled dynamically No probe listener result in a no-op When listeners register, probe implementations are dynamically rewritten to start firing the probe events. > Lightweight > BTrace under the covers

Probe listeners public class WebRequestMonitor { AtomicInteger counter =...; @OnProbe("glassfish:web:request:started") public void webrequeststarted(string appname) { System.out.println("..."); } @OnProbe("glassfish:web:request:stopped") public void webrequeststopped(string appname) { counter.incrementandget(); } }

What about DTrace and Solaris > GlassFish is DTrace enabled Modules define probe points Open APIs, any module can define probe points > Features End to End Tracing and monitoring syscall=>webrequest=>ejbrequest=>jparequ est==>mysql Use scripting languages like JavaScript

DTrace example glassfish$1:web:request:started { trace(probename); } glassfish$1:web:request:stopped { trace(probename); } glassfish$1:jpa:query:beforeexecute { trace(copyintr(arg0)); //trace query string!! }

Demo > Demo: We will show GlassFish DTrace integration only > The demo application is a simple Web, JPA application that queries all rows in DEPARTMENT table > DEPARTMENT table contains only 20 rows > But the query will take 15 to 20 seconds!! > We will enable some of the GlassFish DTrace probes to examine whats going on...

GlassFish Community Open Source and Enterprise Ready GlassFish v3 Preview Available now! Java EE 6 reference implementation Modular OSGi architecture easy to develop & deploy Runs in-process and easy to extend Support for Ruby-on-Rails, Groovy and Grails, Python and Django GlassFish v2 Production Ready Best price/performance open source App server with Clustering, High Availability, Load Balancing Secure, Reliable, Transactional,.NET-interop Web svcs Support for Ajax and Comet GlassFish ESB SOA and Business Integration platform GlassFish Communications App Server SIP servlet technology for converged services 24x7 Enterprise and Mission Critical Support sun.com/appserver Tools Integration NetBeans and Eclipse Pavilion booth numbers: 550, 566, 567 Meet Java EE spec leads and experts at Ancillary Event & Booth glassfish.org