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



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

Kohsuke Kawaguchi Sun Microsystems, Inc. hk2.dev.java.net, glassfish.dev.java.net. Session ID

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

Operations and Monitoring with Spring

Learning GlassFish for Tomcat Users

FUSE-ESB4 An open-source OSGi based platform for EAI and SOA

Project SailFin: Building and Hosting Your Own Communication Server.

Java in Web 2.0. Alexis Roos Principal Field Technologist, CTO Office OEM SW Sales Sun Microsystems, Inc.

Building a Modular Server Platform with OSGi. Dileepa Jayakody Software Engineer SSWSO2 Inc.

Glassfish Architecture.

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

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

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

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

Ruby on Rails in GlassFish Sun Microsystems

Server-side OSGi with Apache Sling. Felix Meschberger Day Management AG 124

Converting Java EE Applications into OSGi Applications

Introduction to Sun ONE Application Server 7

WEBLOGIC ADMINISTRATION

Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB

WebSphere Server Administration Course

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

An Oracle White Paper May Ready for Business: Oracle GlassFish Server

NetBeans IDE Field Guide

Oracle WebLogic Server

WebLogic Server 11g Administration Handbook

CHAPTER 1 - JAVA EE OVERVIEW FOR ADMINISTRATORS

Glassfish, JAVA EE, Servlets, JSP, EJB

GlassFish Security. open source community experience distilled. security measures. Secure your GlassFish installation, Web applications,

WebSphere Application Server - Introduction, Monitoring Tools, & Administration

ITG Software Engineering

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

PEtALS Quick Start. PEtALS Team Roland NAUDIN - February

Course Description. Course Audience. Course Outline. Course Page - Page 1 of 5

IBM WebSphere Server Administration

Workshop for WebLogic introduces new tools in support of Java EE 5.0 standards. The support for Java EE5 includes the following technologies:

A Beginners Guide to Fusion Middleware

SW5706 Application deployment problems

Coherence Managed Servers

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

Architectural Overview

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

Oracle WebLogic Server 11g Administration

Developing modular Java applications

Rapid Application Development. and Application Generation Tools. Walter Knesel

EclipseLink. Solutions Guide for EclipseLink Release 2.5

Apache Karaf in real life ApacheCon NA 2014

Tuning Your GlassFish Performance Tips. Deep Singh Enterprise Java Performance Team Sun Microsystems, Inc.

Oracle Identity Analytics Architecture. An Oracle White Paper July 2010

Migrating Applications From IBM WebSphere to Apache Tomcat

<Insert Picture Here> Java, the language for the future

Introduction to OSGi and Modularity. InfoSphere MDM, Version 11.x Dany Drouin, Senior Software Engineer MDM

Apache Sling A REST-based Web Application Framework Carsten Ziegeler cziegeler@apache.org ApacheCon NA 2014

Working with WebSphere 4.0

Scaling Web Applications in a Cloud Environment. Emil Ong Caucho Technology 8621

Netbeans 6.0. José Maria Silveira Neto. Sun Campus Ambassador

ARM-BASED PERFORMANCE MONITORING FOR THE ECLIPSE PLATFORM

Rational Application Developer Performance Tips Introduction

Equinox Framework: A Happier OSGi R6 Implementation

G-Cloud Framework. Service Definition. Oracle Fusion Middleware Design and Implementation

WEBAPP PATTERN FOR APACHE TOMCAT - USER GUIDE

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

KillTest. 半 年 免 费 更 新 服 务

Enterprise Applications

WebLogic Server Administration

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

JRuby Now and Future Charles Oliver Nutter JRuby Guy Sun Microsystems

Basic TCP/IP networking knowledge of client/server concepts Basic Linux commands and desktop navigation (if don't know we will cover it )

JBS-102: Jboss Application Server Administration. Course Length: 4 days

InfoSphere Master Data Management operational server v11.x OSGi best practices and troubleshooting guide

Robert Honeyman

Build management & Continuous integration. with Maven & Hudson

Oracle Exam 1z0-599 Oracle WebLogic Server 12c Essentials Version: 6.4 [ Total Questions: 91 ]

Eclipse 4 RCP application Development COURSE OUTLINE

PHP vs. Java. In this paper, I am not discussing following two issues since each is currently hotly debated in various communities:

An Oracle White Paper May Learning Oracle GlassFish Server for Tomcat Users

INTRODUCTION TO JAVA PROGRAMMING LANGUAGE

As you learned about in Chapter 1, WebSphere Application Server V6 supports the

Top Weblogic Tasks You can Automate Now

OSGi Application Development using GlassFish Server. Version 1.5. By: Sanjeeb Sahoo

SUBSYSTEMS IN THE WILD

Tomcat 5 New Features

Dr. Dimitar Valtchev. 24 June 2010, Stuttgart, Eclipse Embedded Day

Install guide for Websphere 7.0

Web Application Architecture (based J2EE 1.4 Tutorial)

Aplicações empresariais de elevada performance com Oracle WebLogic e Coherence. Alexandre Vieira Middleware Solutions Team Leader

Oracle Communications WebRTC Session Controller: Basic Admin. Student Guide

WebSphere Training Outline

IBM WebSphere Process Server V7.0 Deployment Exam.

Profiling and Testing with Test and Performance Tools Platform (TPTP)

WebSphere v5 Administration, Network Deployment Edition

No.1 IT Online training institute from Hyderabad URL: sriramtechnologies.com

IRF2000 IWL3000 SRC1000 Application Note - Develop your own Apps with OSGi - getting started

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

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

Glassbox: Open Source and Automated Application Troubleshooting. Ron Bodkin Glassbox Project Leader

G Cloud 6 CDG Service Definition for Forgerock Software Services

GlassFish. Developing an Application Server in Open Source

Enterprise Application Development In Java with AJAX and ORM

Transcription:

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

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

GlassFish V3 Java EE 6 (and previous releases) 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 Ex tensive APIs to replace or ex tend 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 OSGi integration

Why modularity can be important to you Just an Implementation detail? Java EE Profiles requires it Uses cases can leverage modularity Disgruntled joe programmer Fat web app. Service based architecture Integration of disparate technologies (OSGi) Your own extensions or container!

Disgruntled joe programmer Only use part of the Java EE stack Cannot unit test his applications as part of the build Tired of slow startup and slow deployments Would like to experiment new technologies without updating the entire stack

Fat Web Application > 30Mb web applications Co- bundle libraries Co- bundle services Three tier application in one huge application Iterative development is hell Updating one service requires re- deployment of the entire application

Service Based Architecture EJB, Spring, WebBeans all require co- bundling unless CORBA is used. One service update should be transparent to the system Adding/ removing services implementation should be possible. Java EE 6 not entirely providing a solution either.

Your own extensions/ container Plugins to administer your application configuration AdminGUI CLI Command Modifying an existing container (e.g. Spring) requires in place modification as you cannot plugin the deployment backend Adding new types of application, container can be a simple solution to in- house components with specific lifecycle/ invocations requirements

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

GlassFish Developer Features Integration with NetBeans, Eclipse, IntelliJ Fast startup, restart in debug mode Exploded directory deployment Fast Deploy on save Preserve Session across redeployment Application runner: Java - jar glassfish.jar mywebapplication Maven/ ANT Integration Award winning UI console Active community and Forums

Demo 1

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 OSGi integration

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 } Autom atic cascading Nam e resolution : @Inject(nam e= foo ) Can be API driven (no DI)

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

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

Configuration Configuration is defined by annotated POJIs 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/ restresources/ 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

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

27 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

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. Can leverage OSGi to extend Glassfish 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 your Java EE application code No bundle management access All installed bundles exported APIs visible to Java EE Applications

Jerome Dochez jerome.dochez@sun.com Sun Microsystems, Inc.