SlideShare une entreprise Scribd logo
1  sur  52
JBoss Application Server 7
Jasoct
AS Project Lead

Dimitris Andreadis
May 4, 2011
Engineering Manager
JBoss Application Server
2
About Me

JBoss AS, Engineering Manager                dandreadis.blogspot.com

  •2001, JBoss User
  •2003, JBoss Committer
  •2004, JBoss Full-time Core Developer
  •2006, JBoss AS Lead (v3.2.8+, v4.0.4+, v4.2.x, 5.0.x)
  •2009 - present, Manager of JBoss AS Core Team

And before JBoss?
 •7y experience in distributed systems (telcos, NMS/OSS)
 •BSc/MSc Computer Science (Athens/Dublin)
Agenda

• A Brief History of JBoss AS
 • the Path to Java EE6
• JBoss Application Server 7
 • Architecture
 • Modularity
 • Management
• Enterprise Application Platform 6 (EAP)
JBoss AS Timeline
                                                                                                   JavaEE 6 Web Profile, JDK6/JDK7
                                                                                                   Modular Service Container Architecture


                                                                                    JavaEE 6 Web Profile, JDK6
                                                                                                                           JBoss AS 7.0, 7.0.1, 7.0.2


                                                                                                                  JBoss AS 6.0, 6.1
                                           JavaEE 5 certification, JDK5 & 6
                                           MicroContainer Architecture
                                                                                                   JBoss AS 5.1


                  J2EE 1.4 certification                      JBoss AS 5: 5.0.0.GA, 5.0.1.GA
                  JDK 1.4
 JBoss Versions




                                                                        JBoss AS 4.2.0 – 4.2.3


                                       JBoss AS 4.0.0     – 4.0.5                JEE 5.0 compatible,
                                                                                 not certified (95% pass)
                                                                                 JDK5.0
                         JBoss AS 3.2.0     –     3.2.8
                                                                                                       Time

                  2003         2004             2005       2006         2007         2008          2009           2010        2011

                                    J2EE 1.3, JDK 1.3
                                    JMX MicroKernel Architecture
Andiamo



      Java EE 6
The path to Java EE6

• JBoss AS 6.0
  •   Deliver faster on Java EE6
  •   Baking time for EE subsystems
  •   Measure interest on EE profiles
  •   Stepping stone for AS7


• New Stuff
  •   HornetQ (Messaging)
  •   Infinispan (Caching)
  •   Apache CXF (Web Services)
  •   Embedded Jopr Console
  •   mod_cluster
The path to Java EE6 (cont.)

• JBoss AS 6.0/6.1
  • Java EE6 Web Profile++ (or EE6 Full--)
  • Based on the 5.x Microcontainer
  • More lightweight than AS5

• Gotchas
  • JBoss AS6 will *not* be productized!
  • Currently in community maintenance mode
…in the meantime
A hard look in the mirror

• Typical Pain Points
   •   Excess baggage (legacy subsystems and abstractions)
   •   Boot time & memory footprint
   •   Embeadability/testability
   •   Administration options
   •   Modularity


• It’s “free and it doesn’t suck”
  not enough anymore
Getting our Mojo back!

• Major Goals
  • Make it Smaller, Faster
  • Improve Manageability
  • Simplify Configuration

• Clean things up!
  • Remove abstraction layers
  • Remove legacy stuff
  • Modularize
Introducing

JBoss AS 7
        *A blazingly fast modular lightweight elegantly administrable
compliant application server with easy testing facilities – Carlo De Wolf, 2011
JBoss AS 7 releases

• AS 7.0 – released Jul/2011,
 • EE6 – Web Profile (+JCA, +JAX-RS) certified

    •   AS 7.0.1 – released Aug/2011
        •   MDB support, JSR-88, JPA w. older Hibernate 3


    •   AS 7.0.2 – released Sep/2011
        •   JSF 2.1, @Asynchronous, PicketLink SSO, etc.



• AS 7.1 – released Feb/2012
 • Full EE6, clustering, improved security, etc.

    •   AS 7.1.1 – released Mar/2012
        •   maintenance release
AS7 Key Features

• Fast and Lightweight
• Modular, OSGi enabled
• Unified, user focused configuration
• Multiple management interfaces
• Support for multi-node management
AS7 Architecture
                                         JBoss
               MSC                                                          DMR                          Controller                                Threads
                                        Modules


                                                     Server Controller Service

        Deployers                       VFS                      Jandex                      Reflect Cache                                      Repository

                                                                 Core Infrastructure




                                                                                                              FS Secanner

                                                                                                                            Transaction
               Datasource




                                                     Messaging
   Connector




                                                                                  Remoting



                                                                                                   Security




                                                                                                                                                       JAX-RS
                                                                  Naming

                                                                           OSGi
                                 EJB3

                                        Weld




                                                                                             SAR




                                                                                                                                          Web




                                                                                                                                                                JMX
                                               JPA




                                                                                                                                                  WS
                            EE




                                                                       Subsystems
JBoss Kernel Taxonomy

• JBoss AS 2.x, 3.x, 4.x
 • JBoss JMX MicroKernel

• JBoss AS 5.x, 6.x
 • JBoss MC - MicroContainer

• JBoss AS7.x
 • JBoss MSC - Modular Service Container
Key attributes of MSC

Small, lightweight, and efficient
Highly concurrent & scalable state machine
Services are primarily interface based
Only two states, Up & Down
Multiple startup modes
   •Active, Passive, On-Demand, Lazy, Never

                                                  Service Builder

                                                 Service Registry

                                                 Service Controller

                                Service   Deps         Value        Listeners   Injectors

                                          Concurrent Service Container
So What?
#@*%ing fast!




   http://community.jboss.org/wiki/AS7StartupTimeShowdown
Boot Time Results
Memory Comparison
How is it done?

• Concurrent startup/deployments
• Faster resource lookup/classloading
• Annotation indexing
• Caching of reflection metadata
• Lazy loading of (some) services
• StAX based descriptor parsing
• Starting from scratch 
Modularity*
    *The Class Path is Dead – Mark Reinhold, 2009
Hierarchical Class Loading

• Issues
 •   All jars always loaded, whether used or no
 •   Version conflicts, especially with servers libs
 •   Increased lookup/load time
 •   Hard to debug (big ball of mud)


• JBoss AS 5 introduced
  module-like capabilities
 • jboss-classloading.xml
Modular Class Loading
• A graph of Class Loaders, not a tree
 •   Modules delegate to one another as peers
 •   A module imports modules it directly uses
 •   Transitive dependencies are hidden, by default
 •   Different module versions may co-exist
JBoss Modules

Small, lightweight, and efficient
   •Highly concurrent class loading
   •Fast with O(1) dependency resolution

“Pure” modular class loading
   •Modules only see what they import
   •Including JDK classes

External module definitions
   •Don’t have to break open the JAR
modulesorghornetqmainmodule.xml
<module xmlns="urn:jboss:module:1.0" name="org.hornetq">
  <resources>
    <resource-root path="hornetq-core-2.2.10.Final.jar"/>
    <resource-root path="hornetq-jms-2.2.10.Final.jar"/>
  </resources>

  <dependencies>
    <module name="javax.api"/>
    <module name="javax.jms.api"/>
    <module name="javax.resource.api"/>
    <module name="org.jboss.jts"/>
    <module name="org.jboss.netty"/>
  </dependencies>
</module>
User Deployments

• Deployments are also modules (.ear, .war, etc.)

    deployment.foo.ear
    deployment.foo.ear.bar.war
    deployment.foo.ear.bar.jar



• Cannot access server implementation details,
  unless explicitly specified

    META-INF/MANIFEST.MF
    Dependencies: org.javassist, org.apache.velocity
Implicit Module Dependencies

Setup by the appserver/deployers automatically, e.g.

    META-INF/ejb-jar.xml, @Stateless,
    @Stateful, @MessageDriven
     import javaee.api module

    @PersistenceUnit, @PersistenceContext,
    <persistence-unit-ref>, <persistence-context-ref>
     import javaee.api module
     import org.jboss.as.jpa module
     import org.hibernate module
     import org.javaassist module
What about OSGi?
JBoss OSGi

• AS7 is fully compliant with OSGi v4.2 Core
• Implemented on top of JBoss MSC/Modules
• OSGi bundles become JBoss Modules
• Deploy your OSGi bundles, as usual
JBoss OSGi

• Out-of-the-box
 • OSGi Core 4.2, Config Admin, JNDI, JTA, JMX*

• Extras with installer
 • Web Apps, HTTP Service, Blueprint, Web Console




                                           *This may change
Management*
     *Keeping Administrators Happy
Two Operational Modes

Standalone
  •Traditional JBoss single JVM server
  •Management facilities IN-VM
  •No lifecycle management (only shutdown)
Domain
  •Multi-JVM, multi-server model
  •Management coordinated by Domain Controller Process
  •Multiple server instances (JVMs) per Host
  •Full lifecycle managed by Process Controller
Domain Mode Physical Topology
Filesystem Layout
  jboss-7.1.x
    bin
          standalone.conf        Standalone Mode JVM Parameters

          standalone.sh          Standalone Mode

          domain.sh              Domain Mode
          jboss-cli.sh           Command Line Interface

    bundles      OSGi Bundles

                 Static JBoss Module Definitions
    modules
    standalone
          configuration
                    standalone.xml     Standalone Unified Configuration
          deployments                  File System Deployment
          logs
          data                         Internal Data (includes repository)
Filesystem Layout (cont)

   jboss-7.1.x
     domain
           configuration
                     standalone.xml   Domain Wide Unified Configuration
                     host.xml         Host Controller Configuration

           servers
                     server-one       Server “One” JVM instance data
                              logs
                              data
                     server-two       Server “Two” JVM instance data
                              logs
                              data
User-focused Configuration
<bean name="TransactionManager" class="com.arjuna.ats.jbossatx.jta.TransactionManagerService">
    <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss:service=TransactionManager",
exposedInterface=com.arjuna.ats.jbossatx.jta.TransactionManagerServiceMBean.class, registerDirectly=true)</annotation>

<annotation>@org.jboss.managed.api.annotation.ManagementObject(name="TransactionManager",componentType=@org.jb
oss.managed.api.annotation.ManagementComponent(type = "MCBean", subtype =
"JTA"),targetInterface=com.arjuna.ats.jbossatx.jta.TransactionManagerServiceMBean.class)
     </annotation>

    <property name="transactionTimeout">300</property>
    <property name="objectStoreDir">${jboss.server.data.dir}/tx-object-store</property>




<subsystem xmlns="urn:jboss:domain:transactions:1.0">
             <recovery-environment socket-binding="txn-recovery-environment"
                            status-socket-binding="txn-status-manager"/>
             <core-environment socket-binding="txn-socket-process-id"/>
</subsystem>
Management APIs

• Command Line Interface (CLI)
• Remote Java API
• HTTP/JSON API
• GWT-based console
• JMX mapping
Dynamic Model Representation (DMR)

• Central Detyped Management API
   •All management operations operate with/on DMR
   •Strictly backwards compatible
• Represents simple and complex types
   •int, long, big int, double, big dec, boolean, string, bytes, list,
   object, property, expression
• Auto-converts like dynamic languages
• Self describing
• Convertible to/from JSON
• Also has a defined binary protocol (optionally b64)
Tx configuration snippet from standalone.xml
...
<subsystem
  xmlns="urn:jboss:domain:transactions:1.1">
  <core-environment>
    <process-id>
      <uuid/>
    </process-id>
  </core-environment>
  <recovery-environment socket-binding="txn-
  recovery-environment" status-socket-binding="txn-
  status-manager"/>
  <coordinator-environment default-timeout="300"/>
</subsystem>
...
…maps to Domain Model
...
 "transactions" : {
   "default-timeout" : 300,
   "enable-statistics" : false,
   "enable-tsm-status" : false,
   "jts" : false,
   "node-identifier" : "1",
   "object-store-path" : "tx-object-store",
   "object-store-relative-to" : "jboss.server.data.dir",
   "path" : "var",
   "process-id-socket-max-ports" : 10,
   "process-id-uuid" : true,
   "recovery-listener" : false,
   "relative-to" : "jboss.server.data.dir",
   "socket-binding" : "txn-recovery-environment",
   "status-socket-binding" : "txn-status-manager"
 },
Components*
       *First Class Only!
Roadmap

AS 7.0.2 – last version of 7.0 series
AS 7.1.1 – last version of 7.1 series


JBoss AS 7.1 is the base for JBoss
  Enterprise Application Platform 6 (EAP)


AS 7.2.x – feature enhancements
   •   Patching
   •   Graceful shutdown
   •   Audit logging
   •   …
JBoss EAP*
    *Professional Support from Professionals!
The Community JBoss Application Server (AS)
vs. the Enterprise Application Platform (EAP)


• Community Project (JBoss AS)
  - JBoss As We Know It
  - Sponsored by JBoss/Red Hat
  - Allow innovation at a faster pace



• Enterprise Application Platform (EAP)
  - Forks the community project at stable points
  - Integrates with JBoss Developer Studio / JBoss Operations Network
  - Rigorously tested (performance, scalability, SpecJ, etc.)
  - Certified on multiple OS, JVM, DBs combinations
  - Cumulative Patch cycles
  - Supported for 5 + 2 years.
JBoss AS vs JBoss EAP
Ευχαριστώ*




             *Thank You!
dimitris@redhat.com   dandreadis.blogspot.com

Contenu connexe

Tendances

Oracle Service Bus vs. Oracle Enterprise Service Bus vs. BPEL
Oracle Service Bus vs. Oracle Enterprise Service Bus vs. BPELOracle Service Bus vs. Oracle Enterprise Service Bus vs. BPEL
Oracle Service Bus vs. Oracle Enterprise Service Bus vs. BPEL
Guido Schmutz
 
EAP6 performance Tuning
EAP6 performance TuningEAP6 performance Tuning
EAP6 performance Tuning
Praveen Adupa
 

Tendances (20)

Oracle Service Bus 12c (12.2.1) What You Always Wanted to Know
Oracle Service Bus 12c (12.2.1) What You Always Wanted to KnowOracle Service Bus 12c (12.2.1) What You Always Wanted to Know
Oracle Service Bus 12c (12.2.1) What You Always Wanted to Know
 
Enterprise Java Beans - EJB
Enterprise Java Beans - EJBEnterprise Java Beans - EJB
Enterprise Java Beans - EJB
 
JBoss EAP / WildFly, State of the Union
JBoss EAP / WildFly, State of the UnionJBoss EAP / WildFly, State of the Union
JBoss EAP / WildFly, State of the Union
 
Spring framework Controllers and Annotations
Spring framework   Controllers and AnnotationsSpring framework   Controllers and Annotations
Spring framework Controllers and Annotations
 
Spring framework
Spring frameworkSpring framework
Spring framework
 
Java EE Introduction
Java EE IntroductionJava EE Introduction
Java EE Introduction
 
Spring - Part 1 - IoC, Di and Beans
Spring - Part 1 - IoC, Di and Beans Spring - Part 1 - IoC, Di and Beans
Spring - Part 1 - IoC, Di and Beans
 
Java EE vs Spring Framework
Java  EE vs Spring Framework Java  EE vs Spring Framework
Java EE vs Spring Framework
 
Manipulando JWT em apis Laravel
Manipulando JWT em apis LaravelManipulando JWT em apis Laravel
Manipulando JWT em apis Laravel
 
Lecture 8 Enterprise Java Beans (EJB)
Lecture 8  Enterprise Java Beans (EJB)Lecture 8  Enterprise Java Beans (EJB)
Lecture 8 Enterprise Java Beans (EJB)
 
Tomcat and apache httpd training
Tomcat and apache httpd trainingTomcat and apache httpd training
Tomcat and apache httpd training
 
oracle service bus
oracle service busoracle service bus
oracle service bus
 
Java J2EE
Java J2EEJava J2EE
Java J2EE
 
J2EE Introduction
J2EE IntroductionJ2EE Introduction
J2EE Introduction
 
[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning
 
HTTP/3 시대의 웹 성능 최적화 기술 이해하기
HTTP/3 시대의 웹 성능 최적화 기술 이해하기HTTP/3 시대의 웹 성능 최적화 기술 이해하기
HTTP/3 시대의 웹 성능 최적화 기술 이해하기
 
IBM JVM 소개 - Oracle JVM 과 비교
IBM JVM 소개 - Oracle JVM 과 비교IBM JVM 소개 - Oracle JVM 과 비교
IBM JVM 소개 - Oracle JVM 과 비교
 
Oracle Service Bus vs. Oracle Enterprise Service Bus vs. BPEL
Oracle Service Bus vs. Oracle Enterprise Service Bus vs. BPELOracle Service Bus vs. Oracle Enterprise Service Bus vs. BPEL
Oracle Service Bus vs. Oracle Enterprise Service Bus vs. BPEL
 
EAP6 performance Tuning
EAP6 performance TuningEAP6 performance Tuning
EAP6 performance Tuning
 
IBM WebSphere application server
IBM WebSphere application serverIBM WebSphere application server
IBM WebSphere application server
 

En vedette

JBoss AS7 Overview
JBoss AS7 OverviewJBoss AS7 Overview
JBoss AS7 Overview
JBug Italy
 
WebLogic JMX for DevOps
WebLogic JMX for DevOpsWebLogic JMX for DevOps
WebLogic JMX for DevOps
Frank Munz
 
Creating a Domain with Oracle WebLogic 11g
Creating a Domain with Oracle WebLogic 11gCreating a Domain with Oracle WebLogic 11g
Creating a Domain with Oracle WebLogic 11g
Luis Carlos Berrocal
 
Weblogic configuration & administration
Weblogic   configuration & administrationWeblogic   configuration & administration
Weblogic configuration & administration
Muhammad Mansoor
 
Oracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic ConceptsOracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic Concepts
James Bayer
 

En vedette (15)

WildFly AppServer - State of the Union
WildFly AppServer - State of the UnionWildFly AppServer - State of the Union
WildFly AppServer - State of the Union
 
JBoss AS7 Overview
JBoss AS7 OverviewJBoss AS7 Overview
JBoss AS7 Overview
 
Instruction on creating a cluster on jboss eap environment
Instruction on creating a cluster on jboss eap environmentInstruction on creating a cluster on jboss eap environment
Instruction on creating a cluster on jboss eap environment
 
Weblogic Application Server training-course-navi-mumbai-weblogic application ...
Weblogic Application Server training-course-navi-mumbai-weblogic application ...Weblogic Application Server training-course-navi-mumbai-weblogic application ...
Weblogic Application Server training-course-navi-mumbai-weblogic application ...
 
WebLogic JMX for DevOps
WebLogic JMX for DevOpsWebLogic JMX for DevOps
WebLogic JMX for DevOps
 
J boss
J bossJ boss
J boss
 
Creating a Domain with Oracle WebLogic 11g
Creating a Domain with Oracle WebLogic 11gCreating a Domain with Oracle WebLogic 11g
Creating a Domain with Oracle WebLogic 11g
 
Building WebLogic Domains With WLST
Building WebLogic Domains With WLSTBuilding WebLogic Domains With WLST
Building WebLogic Domains With WLST
 
Weblogic server administration
Weblogic server administrationWeblogic server administration
Weblogic server administration
 
WebLogic im Docker Container
WebLogic im Docker ContainerWebLogic im Docker Container
WebLogic im Docker Container
 
Weblogic configuration & administration
Weblogic   configuration & administrationWeblogic   configuration & administration
Weblogic configuration & administration
 
Weblogic 11g admin basic with screencast
Weblogic 11g admin basic with screencastWeblogic 11g admin basic with screencast
Weblogic 11g admin basic with screencast
 
Java WebApps und Services on Oracle Java Cloud Service
Java WebApps und Services on Oracle Java Cloud ServiceJava WebApps und Services on Oracle Java Cloud Service
Java WebApps und Services on Oracle Java Cloud Service
 
Administration von ADF Anwendungen
Administration von ADF AnwendungenAdministration von ADF Anwendungen
Administration von ADF Anwendungen
 
Oracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic ConceptsOracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic Concepts
 

Similaire à JBoss AS7 Reloaded

Java EE 6 Component Model Explained
Java EE 6 Component Model Explained Java EE 6 Component Model Explained
Java EE 6 Component Model Explained
Shreedhar Ganapathy
 
Understanding the nuts & bolts of Java EE 6
Understanding the nuts & bolts of Java EE 6Understanding the nuts & bolts of Java EE 6
Understanding the nuts & bolts of Java EE 6
Arun Gupta
 
Andrei Niculae - JavaEE6 - 24mai2011
Andrei Niculae - JavaEE6 - 24mai2011Andrei Niculae - JavaEE6 - 24mai2011
Andrei Niculae - JavaEE6 - 24mai2011
Agora Group
 

Similaire à JBoss AS7 Reloaded (20)

Server Day 2009: JBoss 5.0 by Alessio Soldano
Server Day 2009: JBoss 5.0 by Alessio SoldanoServer Day 2009: JBoss 5.0 by Alessio Soldano
Server Day 2009: JBoss 5.0 by Alessio Soldano
 
Java EE 6 Component Model Explained
Java EE 6 Component Model Explained Java EE 6 Component Model Explained
Java EE 6 Component Model Explained
 
Spark IT 2011 - Java EE 6 Workshop
Spark IT 2011 - Java EE 6 WorkshopSpark IT 2011 - Java EE 6 Workshop
Spark IT 2011 - Java EE 6 Workshop
 
Understanding the nuts & bolts of Java EE 6
Understanding the nuts & bolts of Java EE 6Understanding the nuts & bolts of Java EE 6
Understanding the nuts & bolts of Java EE 6
 
soft-shake.ch - JBoss AS 7, la révolution
soft-shake.ch - JBoss AS 7, la révolutionsoft-shake.ch - JBoss AS 7, la révolution
soft-shake.ch - JBoss AS 7, la révolution
 
JBoss AS 7, la révolution
JBoss AS 7, la révolutionJBoss AS 7, la révolution
JBoss AS 7, la révolution
 
JUG Darmstadt - Java EE 7 - Auf in die Wolken!
JUG Darmstadt - Java EE 7 - Auf in die Wolken!JUG Darmstadt - Java EE 7 - Auf in die Wolken!
JUG Darmstadt - Java EE 7 - Auf in die Wolken!
 
Java EE6 Overview
Java EE6 OverviewJava EE6 Overview
Java EE6 Overview
 
Andrei Niculae - JavaEE6 - 24mai2011
Andrei Niculae - JavaEE6 - 24mai2011Andrei Niculae - JavaEE6 - 24mai2011
Andrei Niculae - JavaEE6 - 24mai2011
 
JavaEE 6 and GlassFish v3 at SFJUG
JavaEE 6 and GlassFish v3 at SFJUGJavaEE 6 and GlassFish v3 at SFJUG
JavaEE 6 and GlassFish v3 at SFJUG
 
Java EE 6 & GlassFish v3: Paving the path for the future - Spark IT 2010
Java EE 6 & GlassFish v3: Paving the path for the future - Spark IT 2010Java EE 6 & GlassFish v3: Paving the path for the future - Spark IT 2010
Java EE 6 & GlassFish v3: Paving the path for the future - Spark IT 2010
 
Java EE 6 Aquarium Paris
Java EE 6 Aquarium ParisJava EE 6 Aquarium Paris
Java EE 6 Aquarium Paris
 
Java EE 6 & GlassFish 3
Java EE 6 & GlassFish 3Java EE 6 & GlassFish 3
Java EE 6 & GlassFish 3
 
The Java Ee 6 Platform Normandy Jug
The Java Ee 6 Platform Normandy JugThe Java Ee 6 Platform Normandy Jug
The Java Ee 6 Platform Normandy Jug
 
Java EE 7 - Into the Cloud
Java EE 7 - Into the CloudJava EE 7 - Into the Cloud
Java EE 7 - Into the Cloud
 
Glass Fishv3 March2010
Glass Fishv3 March2010Glass Fishv3 March2010
Glass Fishv3 March2010
 
Java EE 6
Java EE 6Java EE 6
Java EE 6
 
Jboss
JbossJboss
Jboss
 
Java EE 6 & GlassFish v3 @ DevNexus
Java EE 6 & GlassFish v3 @ DevNexusJava EE 6 & GlassFish v3 @ DevNexus
Java EE 6 & GlassFish v3 @ DevNexus
 
Java EE 6 : Paving The Path For The Future
Java EE 6 : Paving The Path For The FutureJava EE 6 : Paving The Path For The Future
Java EE 6 : Paving The Path For The Future
 

Plus de Dimitris Andreadis

Plus de Dimitris Andreadis (10)

Turn you Java EE Monoliths into Microservices with WildFly Swarm
Turn you Java EE Monoliths into Microservices with WildFly SwarmTurn you Java EE Monoliths into Microservices with WildFly Swarm
Turn you Java EE Monoliths into Microservices with WildFly Swarm
 
WildFly & WildFly Swarm
WildFly & WildFly SwarmWildFly & WildFly Swarm
WildFly & WildFly Swarm
 
WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015.
WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015.WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015.
WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015.
 
Secrets of Successful OpenSource Developers, Ignite Session @ Devoxx 2014
Secrets of Successful OpenSource Developers, Ignite Session @ Devoxx 2014Secrets of Successful OpenSource Developers, Ignite Session @ Devoxx 2014
Secrets of Successful OpenSource Developers, Ignite Session @ Devoxx 2014
 
WildFly BOF and V9 update @ Devoxx 2014
WildFly BOF and V9 update @ Devoxx 2014WildFly BOF and V9 update @ Devoxx 2014
WildFly BOF and V9 update @ Devoxx 2014
 
Introduction to Role Based Administration in WildFly 8
Introduction to Role Based Administration in WildFly 8Introduction to Role Based Administration in WildFly 8
Introduction to Role Based Administration in WildFly 8
 
Devoxx 2013, WildFly BOF
Devoxx 2013, WildFly BOFDevoxx 2013, WildFly BOF
Devoxx 2013, WildFly BOF
 
2012 Devoxx - JBossAS BOF
2012 Devoxx - JBossAS BOF2012 Devoxx - JBossAS BOF
2012 Devoxx - JBossAS BOF
 
jboss.org-jboss.com
jboss.org-jboss.comjboss.org-jboss.com
jboss.org-jboss.com
 
7 secrets of successful opensource developers
7 secrets of successful opensource developers7 secrets of successful opensource developers
7 secrets of successful opensource developers
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Dernier (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

JBoss AS7 Reloaded

  • 1. JBoss Application Server 7 Jasoct AS Project Lead Dimitris Andreadis May 4, 2011 Engineering Manager JBoss Application Server
  • 2. 2
  • 3. About Me JBoss AS, Engineering Manager dandreadis.blogspot.com •2001, JBoss User •2003, JBoss Committer •2004, JBoss Full-time Core Developer •2006, JBoss AS Lead (v3.2.8+, v4.0.4+, v4.2.x, 5.0.x) •2009 - present, Manager of JBoss AS Core Team And before JBoss? •7y experience in distributed systems (telcos, NMS/OSS) •BSc/MSc Computer Science (Athens/Dublin)
  • 4. Agenda • A Brief History of JBoss AS • the Path to Java EE6 • JBoss Application Server 7 • Architecture • Modularity • Management • Enterprise Application Platform 6 (EAP)
  • 5. JBoss AS Timeline JavaEE 6 Web Profile, JDK6/JDK7 Modular Service Container Architecture JavaEE 6 Web Profile, JDK6 JBoss AS 7.0, 7.0.1, 7.0.2 JBoss AS 6.0, 6.1 JavaEE 5 certification, JDK5 & 6 MicroContainer Architecture JBoss AS 5.1 J2EE 1.4 certification JBoss AS 5: 5.0.0.GA, 5.0.1.GA JDK 1.4 JBoss Versions JBoss AS 4.2.0 – 4.2.3 JBoss AS 4.0.0 – 4.0.5 JEE 5.0 compatible, not certified (95% pass) JDK5.0 JBoss AS 3.2.0 – 3.2.8 Time 2003 2004 2005 2006 2007 2008 2009 2010 2011 J2EE 1.3, JDK 1.3 JMX MicroKernel Architecture
  • 6. Andiamo Java EE 6
  • 7. The path to Java EE6 • JBoss AS 6.0 • Deliver faster on Java EE6 • Baking time for EE subsystems • Measure interest on EE profiles • Stepping stone for AS7 • New Stuff • HornetQ (Messaging) • Infinispan (Caching) • Apache CXF (Web Services) • Embedded Jopr Console • mod_cluster
  • 8. The path to Java EE6 (cont.) • JBoss AS 6.0/6.1 • Java EE6 Web Profile++ (or EE6 Full--) • Based on the 5.x Microcontainer • More lightweight than AS5 • Gotchas • JBoss AS6 will *not* be productized! • Currently in community maintenance mode
  • 10. A hard look in the mirror • Typical Pain Points • Excess baggage (legacy subsystems and abstractions) • Boot time & memory footprint • Embeadability/testability • Administration options • Modularity • It’s “free and it doesn’t suck” not enough anymore
  • 11. Getting our Mojo back! • Major Goals • Make it Smaller, Faster • Improve Manageability • Simplify Configuration • Clean things up! • Remove abstraction layers • Remove legacy stuff • Modularize
  • 12.
  • 13.
  • 14. Introducing JBoss AS 7 *A blazingly fast modular lightweight elegantly administrable compliant application server with easy testing facilities – Carlo De Wolf, 2011
  • 15. JBoss AS 7 releases • AS 7.0 – released Jul/2011, • EE6 – Web Profile (+JCA, +JAX-RS) certified • AS 7.0.1 – released Aug/2011 • MDB support, JSR-88, JPA w. older Hibernate 3 • AS 7.0.2 – released Sep/2011 • JSF 2.1, @Asynchronous, PicketLink SSO, etc. • AS 7.1 – released Feb/2012 • Full EE6, clustering, improved security, etc. • AS 7.1.1 – released Mar/2012 • maintenance release
  • 16. AS7 Key Features • Fast and Lightweight • Modular, OSGi enabled • Unified, user focused configuration • Multiple management interfaces • Support for multi-node management
  • 17. AS7 Architecture JBoss MSC DMR Controller Threads Modules Server Controller Service Deployers VFS Jandex Reflect Cache Repository Core Infrastructure FS Secanner Transaction Datasource Messaging Connector Remoting Security JAX-RS Naming OSGi EJB3 Weld SAR Web JMX JPA WS EE Subsystems
  • 18. JBoss Kernel Taxonomy • JBoss AS 2.x, 3.x, 4.x • JBoss JMX MicroKernel • JBoss AS 5.x, 6.x • JBoss MC - MicroContainer • JBoss AS7.x • JBoss MSC - Modular Service Container
  • 19. Key attributes of MSC Small, lightweight, and efficient Highly concurrent & scalable state machine Services are primarily interface based Only two states, Up & Down Multiple startup modes •Active, Passive, On-Demand, Lazy, Never Service Builder Service Registry Service Controller Service Deps Value Listeners Injectors Concurrent Service Container
  • 21. #@*%ing fast! http://community.jboss.org/wiki/AS7StartupTimeShowdown
  • 24. How is it done? • Concurrent startup/deployments • Faster resource lookup/classloading • Annotation indexing • Caching of reflection metadata • Lazy loading of (some) services • StAX based descriptor parsing • Starting from scratch 
  • 25. Modularity* *The Class Path is Dead – Mark Reinhold, 2009
  • 26. Hierarchical Class Loading • Issues • All jars always loaded, whether used or no • Version conflicts, especially with servers libs • Increased lookup/load time • Hard to debug (big ball of mud) • JBoss AS 5 introduced module-like capabilities • jboss-classloading.xml
  • 27. Modular Class Loading • A graph of Class Loaders, not a tree • Modules delegate to one another as peers • A module imports modules it directly uses • Transitive dependencies are hidden, by default • Different module versions may co-exist
  • 28. JBoss Modules Small, lightweight, and efficient •Highly concurrent class loading •Fast with O(1) dependency resolution “Pure” modular class loading •Modules only see what they import •Including JDK classes External module definitions •Don’t have to break open the JAR
  • 29. modulesorghornetqmainmodule.xml <module xmlns="urn:jboss:module:1.0" name="org.hornetq"> <resources> <resource-root path="hornetq-core-2.2.10.Final.jar"/> <resource-root path="hornetq-jms-2.2.10.Final.jar"/> </resources> <dependencies> <module name="javax.api"/> <module name="javax.jms.api"/> <module name="javax.resource.api"/> <module name="org.jboss.jts"/> <module name="org.jboss.netty"/> </dependencies> </module>
  • 30. User Deployments • Deployments are also modules (.ear, .war, etc.) deployment.foo.ear deployment.foo.ear.bar.war deployment.foo.ear.bar.jar • Cannot access server implementation details, unless explicitly specified META-INF/MANIFEST.MF Dependencies: org.javassist, org.apache.velocity
  • 31. Implicit Module Dependencies Setup by the appserver/deployers automatically, e.g. META-INF/ejb-jar.xml, @Stateless, @Stateful, @MessageDriven  import javaee.api module @PersistenceUnit, @PersistenceContext, <persistence-unit-ref>, <persistence-context-ref>  import javaee.api module  import org.jboss.as.jpa module  import org.hibernate module  import org.javaassist module
  • 33. JBoss OSGi • AS7 is fully compliant with OSGi v4.2 Core • Implemented on top of JBoss MSC/Modules • OSGi bundles become JBoss Modules • Deploy your OSGi bundles, as usual
  • 34. JBoss OSGi • Out-of-the-box • OSGi Core 4.2, Config Admin, JNDI, JTA, JMX* • Extras with installer • Web Apps, HTTP Service, Blueprint, Web Console *This may change
  • 35. Management* *Keeping Administrators Happy
  • 36. Two Operational Modes Standalone •Traditional JBoss single JVM server •Management facilities IN-VM •No lifecycle management (only shutdown) Domain •Multi-JVM, multi-server model •Management coordinated by Domain Controller Process •Multiple server instances (JVMs) per Host •Full lifecycle managed by Process Controller
  • 38. Filesystem Layout jboss-7.1.x bin standalone.conf Standalone Mode JVM Parameters standalone.sh Standalone Mode domain.sh Domain Mode jboss-cli.sh Command Line Interface bundles OSGi Bundles Static JBoss Module Definitions modules standalone configuration standalone.xml Standalone Unified Configuration deployments File System Deployment logs data Internal Data (includes repository)
  • 39. Filesystem Layout (cont) jboss-7.1.x domain configuration standalone.xml Domain Wide Unified Configuration host.xml Host Controller Configuration servers server-one Server “One” JVM instance data logs data server-two Server “Two” JVM instance data logs data
  • 40. User-focused Configuration <bean name="TransactionManager" class="com.arjuna.ats.jbossatx.jta.TransactionManagerService"> <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss:service=TransactionManager", exposedInterface=com.arjuna.ats.jbossatx.jta.TransactionManagerServiceMBean.class, registerDirectly=true)</annotation> <annotation>@org.jboss.managed.api.annotation.ManagementObject(name="TransactionManager",componentType=@org.jb oss.managed.api.annotation.ManagementComponent(type = "MCBean", subtype = "JTA"),targetInterface=com.arjuna.ats.jbossatx.jta.TransactionManagerServiceMBean.class) </annotation> <property name="transactionTimeout">300</property> <property name="objectStoreDir">${jboss.server.data.dir}/tx-object-store</property> <subsystem xmlns="urn:jboss:domain:transactions:1.0"> <recovery-environment socket-binding="txn-recovery-environment" status-socket-binding="txn-status-manager"/> <core-environment socket-binding="txn-socket-process-id"/> </subsystem>
  • 41. Management APIs • Command Line Interface (CLI) • Remote Java API • HTTP/JSON API • GWT-based console • JMX mapping
  • 42. Dynamic Model Representation (DMR) • Central Detyped Management API •All management operations operate with/on DMR •Strictly backwards compatible • Represents simple and complex types •int, long, big int, double, big dec, boolean, string, bytes, list, object, property, expression • Auto-converts like dynamic languages • Self describing • Convertible to/from JSON • Also has a defined binary protocol (optionally b64)
  • 43. Tx configuration snippet from standalone.xml ... <subsystem xmlns="urn:jboss:domain:transactions:1.1"> <core-environment> <process-id> <uuid/> </process-id> </core-environment> <recovery-environment socket-binding="txn- recovery-environment" status-socket-binding="txn- status-manager"/> <coordinator-environment default-timeout="300"/> </subsystem> ...
  • 44. …maps to Domain Model ... "transactions" : { "default-timeout" : 300, "enable-statistics" : false, "enable-tsm-status" : false, "jts" : false, "node-identifier" : "1", "object-store-path" : "tx-object-store", "object-store-relative-to" : "jboss.server.data.dir", "path" : "var", "process-id-socket-max-ports" : 10, "process-id-uuid" : true, "recovery-listener" : false, "relative-to" : "jboss.server.data.dir", "socket-binding" : "txn-recovery-environment", "status-socket-binding" : "txn-status-manager" },
  • 45. Components* *First Class Only!
  • 46.
  • 47. Roadmap AS 7.0.2 – last version of 7.0 series AS 7.1.1 – last version of 7.1 series JBoss AS 7.1 is the base for JBoss Enterprise Application Platform 6 (EAP) AS 7.2.x – feature enhancements • Patching • Graceful shutdown • Audit logging • …
  • 48. JBoss EAP* *Professional Support from Professionals!
  • 49. The Community JBoss Application Server (AS) vs. the Enterprise Application Platform (EAP) • Community Project (JBoss AS) - JBoss As We Know It - Sponsored by JBoss/Red Hat - Allow innovation at a faster pace • Enterprise Application Platform (EAP) - Forks the community project at stable points - Integrates with JBoss Developer Studio / JBoss Operations Network - Rigorously tested (performance, scalability, SpecJ, etc.) - Certified on multiple OS, JVM, DBs combinations - Cumulative Patch cycles - Supported for 5 + 2 years.
  • 50. JBoss AS vs JBoss EAP
  • 51. Ευχαριστώ* *Thank You!
  • 52. dimitris@redhat.com dandreadis.blogspot.com