JBoss Application Server 7

Ray Ploski
Ray PloskiProven Leader in Software Development, Marketing and Sales. at Red Hat
Ray Ploski
                                       Principal Solutions Architect
                                                   ray@redhat.com
                                                 twitter:@rayploski




                    JBoss Application Server 7




Sunday, June 19, 2011
JBoss AS Timeline
                                                                                     JavaEE 6 Web Profile, JDK6
                                                                                                                           JBoss AS 7.0


                                                                                                                  JBoss AS 6.0

                                           JavaEE 5 certification, JDK5 & 6
                                                                                                   JBoss AS 5.1


                  J2EE 1.4 certification                      JBoss AS 5: Alphas, Betas, CRs
                  JDK 1.4                                      and finally 5.0.0.GA, 5.0.1.GA
 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




Sunday, June 19, 2011
Motivations For AS7

                    • Improve Usability
                    • Increase Manageability
                    • Simplify Configurations
                    • Highly Performant - GO FAST!



Sunday, June 19, 2011
Key Features of AS7




Sunday, June 19, 2011
Key Features of AS7




Sunday, June 19, 2011
Key Features of AS7
           •       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


Sunday, June 19, 2011
Two Operational Modes




Sunday, June 19, 2011
Two Operational Modes
                    • Standalone
                     • Traditional JBoss single JVM server
                     • Management facilities IN-VM




Sunday, June 19, 2011
Two Operational Modes
                    • 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


Sunday, June 19, 2011
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


Sunday, June 19, 2011
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

Sunday, June 19, 2011
Domain Mode Processes




Sunday, June 19, 2011
Domain Mode Processes
                    • Process Controller
                        • Responsible for managing and starting /
                          restarting processes

                        • Extremely simple, not much that can go wrong




Sunday, June 19, 2011
Domain Mode Processes
                    • Process Controller
                        • Responsible for managing and starting /
                           restarting processes

                        • Extremely simple, not much that can go wrong
                    • Host Controller
                        • One host controller is the domain controller,
                           the rest are slaves

                        • Domain controller is responsible for pushing out
                           configuration changes over the domain



Sunday, June 19, 2011
Domain Mode




                             9
Sunday, June 19, 2011
My File’s Have Changed?




Sunday, June 19, 2011
My File’s Have Changed?



                    •Where are they?



Sunday, June 19, 2011
File Layout             File Layout
            !   jboss-7.0.0.Beta3
                    !  bin
                             !    standalone.conf      Standalone Mode JVM Parameters

                             !    standalone.sh        Standalone Mode

                             !    domain.sh            Domain Mode
                             !    jboss-admin.sh       Command Line Interface

                    !  modules         Static JBoss Module Definitions

                    !  standalone
                             !     configuration
                                       ! standalone.xml      Standalone Unified Configuration

                             !     deployments               File System Deployment

                             !     logs
                             !     data                      Internal Data (includes repository)




Sunday, June 19, 2011
File Layout - Domain
             File Layout (cont)

             !   jboss-7.0.0.Beta3
                        !  domain
                             !   configuration
                                    !      domain.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




Sunday, June 19, 2011
Architecture




Sunday, June 19, 2011
JBoss AS 7 Architecture
                                                      JBoss
                            MSC                                                          DMR                          Controller                               Threads
                                                     Modules


                                                                  Server Controller Service

                     Deployers                       VFS                      Jandex                      Reflect Cache                                     Repository

                                                                              Core Infrastructure




                                                                                                                           FS Scanner

                                                                                                                                        Transaction
                            Datasource




                                                                  Messaging
                Connector




                                                                                               Remoting



                                                                                                                Security




                                                                                                                                                                  JAX-RS
                                                                               Naming

                                                                                        OSGi
                                              EJB3

                                                     Weld




                                                                                                          SAR




                                                                                                                                                      Web




                                                                                                                                                                           JMX
                                                            JPA




                                                                                                                                                             WS
                                         EE




                                                                                    Subsystems




Sunday, June 19, 2011
Classloading
                          JBoss Modules




Sunday, June 19, 2011
Hierarchical CL




Sunday, June 19, 2011
Modular CL




Sunday, June 19, 2011
JBoss Modules




Sunday, June 19, 2011
JBoss Modules
      • Provides extremely fast modular class loading
            •      O(1) Dependency resolution

            •      Concurrent CL (lockless in most VMs)




Sunday, June 19, 2011
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!)




Sunday, June 19, 2011
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




Sunday, June 19, 2011
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




Sunday, June 19, 2011
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

Sunday, June 19, 2011
modules.xml




Sunday, June 19, 2011
User Deployments




Sunday, June 19, 2011
User Deployments
                    •User deployments are modules too




Sunday, June 19, 2011
User Deployments
                    •User deployments are modules too
                    •Sets up dependencies on some
                        modules automatically (e.g. JPA,
                        Hibernate, WebServices)




Sunday, June 19, 2011
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



Sunday, June 19, 2011
User Deployment Details




Sunday, June 19, 2011
User Deployment Details
                    • Each sub-deployment in an ear is it's own module




Sunday, June 19, 2011
User Deployment Details
                    • Each sub-deployment in an ear is it's own module
                    • Sub-deployments in an EAR do not have access
                        to other sub-deployments by defaUlt




Sunday, June 19, 2011
User Deployment Details
                    • Each sub-deployment in an ear is it's own module
                    • Sub-deployments in an EAR do not have access
                        to other sub-deployments by defaUlt

                    • Allows for individual ejb-jar's to have
                        dependencies on different versions of classes




Sunday, June 19, 2011
User Deployment Details
                    • Each sub-deployment in an ear is it's own module
                    • Sub-deployments in an EAR do not have access
                        to other sub-deployments by defaUlt

                    • Allows for individual ejb-jar's to have
                        dependencies on different versions of classes

                    • Also provide an relaxed isolation mode, which
                        automatically set up dependencies between all
                        the sub deployments in the ear




Sunday, June 19, 2011
User Deployment Details
                    • Each sub-deployment in an ear is it's own module
                    • Sub-deployments in an EAR do not have access
                        to other sub-deployments by defaUlt

                    • Allows for individual ejb-jar's to have
                        dependencies on different versions of classes

                    • Also provide an relaxed isolation mode, which
                        automatically set up dependencies between all
                        the sub deployments in the ear

                    • Dependencies can be set up using the manifest,
                        a custom deployment descriptor, or on a global
                        level


Sunday, June 19, 2011
JBoss Modular Service
                              Controller (MSC)




Sunday, June 19, 2011
Modular Service Container
          •Small, lightweight & efficient
          •Highly concurrent & scalable state machine
          •Only two non-                               Service Builder

                 error, non-                          Service Registry

                 transition states                    Service Controller
                 - stop & start
                                     Service   Deps         Value        Listeners   Injectors


                                                Concurrent Service Container




Sunday, June 19, 2011
Services




Sunday, June 19, 2011
Services
                    • In AS7 almost everything is a service




Sunday, June 19, 2011
Services
                    • In AS7 almost everything is a service
                    • Services are objects that can be started and
                        stopped




Sunday, June 19, 2011
Services
                    • In AS7 almost everything is a service
                    • Services are objects that can be started and
                        stopped

                    • Services can have dependencies on other services




Sunday, June 19, 2011
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




Sunday, June 19, 2011
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




Sunday, June 19, 2011
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


Sunday, June 19, 2011
Everything is a Service!




Sunday, June 19, 2011
Everything is a Service!
               •As mentioned previously almost
                        everything in AS7 is a service, including:
                        • EJB's (actually 2+ services)
                        • JNDI Bindings
                        • Servlets
                        • The deployment itself


Sunday, June 19, 2011
Everything is a Service!
               •As mentioned previously almost
                        everything in AS7 is a service, including:
                        • EJB's (actually 2+ services)
                        • JNDI Bindings
                        • Servlets
                        • The deployment itself
               •Individually shut down and restart, with
                        all dependencies being maintained

Sunday, June 19, 2011
JEE




Sunday, June 19, 2011
JEE
                    • Still using the same underlying projects, but
                        with completely new integration code.




Sunday, June 19, 2011
JEE
                    • Still using the same underlying projects, but
                        with completely new integration code.

                    • Boot process has been highly optimized




Sunday, June 19, 2011
JEE
                    • Still using the same underlying projects, but
                        with completely new integration code.

                    • Boot process has been highly optimized
                    • Annotation scanning is done by scanning
                        the deployments bytecode, preventing
                        expensive class loading unless it is absolutely
                        necessary




Sunday, June 19, 2011
JEE
                    • Still using the same underlying projects, but
                        with completely new integration code.

                    • Boot process has been highly optimized
                    • Annotation scanning is done by scanning
                        the deployments bytecode, preventing
                        expensive class loading unless it is absolutely
                        necessary

                    • Services start asynchronously where possible
                        (e.g. Weld and Hibernate can both be
                        starting at the same time)




Sunday, June 19, 2011
Dynamic Model
                        Representation
                             (DMR)




Sunday, June 19, 2011
Management - DMR




Sunday, June 19, 2011
Management - DMR
                • Central De-typed Management API
                        •   All management operations operate with/on DMR

                        •   Backwards compatible!




Sunday, June 19, 2011
Management - DMR
                • Central De-typed Management API
                        •   All management operations operate with/on DMR

                        •   Backwards compatible!

                • Can be used to control a single standalone server
                        or an entire domain




Sunday, June 19, 2011
Management - DMR
                • Central De-typed Management API
                        •   All management operations operate with/on DMR

                        •   Backwards compatible!

                • Can be used to control a single standalone server
                        or an entire domain

                • De-types (i.e. string based) API uses a small set of
                        Java classes




Sunday, June 19, 2011
Management - DMR
                • Central De-typed Management API
                        •   All management operations operate with/on DMR

                        •   Backwards compatible!

                • Can be used to control a single standalone server
                        or an entire domain

                • De-types (i.e. string based) API uses a small set of
                        Java classes

                • Various transports (Java Remoting, JSON over HTTP)


Sunday, June 19, 2011
Management - DMR
                • Central De-typed Management API
                        •   All management operations operate with/on DMR

                        •   Backwards compatible!

                • Can be used to control a single standalone server
                        or an entire domain

                • De-types (i.e. string based) API uses a small set of
                        Java classes

                • Various transports (Java Remoting, JSON over HTTP)
                • All management interfaces are based on this API

Sunday, June 19, 2011
Dynamic Model Representation (DMR)

           • Central De-typed Management API
                 • All management operations operate with/on DMR
                 • 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)
Sunday, June 19, 2011
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
Sunday, June 19, 2011
Management via Configuration
       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.jboss.managed.api.annotation.ManagementCompone
        nt(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>	




Sunday, June 19, 2011
Management via API




Sunday, June 19, 2011
Management via Command Line




Sunday, June 19, 2011
Management via Command Line

                    • Scriptable command line management tool




Sunday, June 19, 2011
Management via Command Line

                    • Scriptable command line management tool
                    • Uses the management API internally




Sunday, June 19, 2011
Management via Command Line

                    • Scriptable command line management tool
                    • Uses the management API internally
                    • Allows access to high level user friendly
                        commands:
                           create-jms-queue –-name testQueue




Sunday, June 19, 2011
Management via Command Line

                    • 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




Sunday, June 19, 2011
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.


Sunday, June 19, 2011
Sunday, June 19, 2011
Performance



Sunday, June 19, 2011
Boot Time Results




Sunday, June 19, 2011
Memory Comparison




Sunday, June 19, 2011
WHEN?
           • AS 7.0 currently in Beta3
            • 7.0 Final (EE Web Profile)
            • 7.1 Final (EE Full Profile)
     JBoss AS 7.1 will be the base for JBoss
      Enterprise Application Platform 6 (EAP)



Sunday, June 19, 2011
JBoss AS v EAP




Sunday, June 19, 2011
More Information
                    • Webinars: http://www.jboss.org/webinars
                    • This Deck: http://bit.ly/BABootcampAS7
                    • Homepage: http://www.jboss.org/jbossas
                    • Users Forum: http://community.jboss.org/
                        en/jbossas/as7_users

                    • Using Nightly Builds: http://
                        community.jboss.org/thread/167590


Sunday, June 19, 2011
Support Open Source!
      • We need You!
            • Subscribe
            • Contribute
             • Code
             • Features
             • Documentation
             • Testing
      • Let us continue our work that benefits so many.
Sunday, June 19, 2011
1 of 83

More Related Content

What's hot(20)

Viewers also liked(20)

JBoss AS 7JBoss AS 7
JBoss AS 7
C2B2 Consulting6.6K views
J bossJ boss
J boss
jrfx4485K views
JBoss AS / EAP and Java EE6JBoss AS / EAP and Java EE6
JBoss AS / EAP and Java EE6
Dimitris Andreadis10K views
JBoss started guideJBoss started guide
JBoss started guide
franarayah5.1K views
WAS vs JBoss, WebLogic, Tomcat (year 2015)WAS vs JBoss, WebLogic, Tomcat (year 2015)
WAS vs JBoss, WebLogic, Tomcat (year 2015)
Roman Kharkovski61.9K views
EAP6 performance TuningEAP6 performance Tuning
EAP6 performance Tuning
Praveen Adupa5K views
JBoss AS7 ReloadedJBoss AS7 Reloaded
JBoss AS7 Reloaded
Dimitris Andreadis7K views
Tomcat and apache httpd trainingTomcat and apache httpd training
Tomcat and apache httpd training
Franck SIMON28K views
JBoss AS7 OverviewJBoss AS7 Overview
JBoss AS7 Overview
JBug Italy2.1K views
JBoss EAP / WildFly, State of the UnionJBoss EAP / WildFly, State of the Union
JBoss EAP / WildFly, State of the Union
Dimitris Andreadis13.6K views
Weblogic   configuration & administrationWeblogic   configuration & administration
Weblogic configuration & administration
Muhammad Mansoor5.6K views
Frases ChiapanecasFrases Chiapanecas
Frases Chiapanecas
Amarantha Vázquez30.5K views
ChmodChmod
Chmod
Any Saula1.2K views
Linux Linux
Linux
Patruni Chidananda Sastry2.7K views

Similar to JBoss Application Server 7

AS7AS7
AS7JBug Italy
619 views26 slides
JBoss AS7JBoss AS7
JBoss AS7JBug Italy
770 views26 slides

Similar to JBoss Application Server 7(20)

WildFly AppServer - State of the UnionWildFly AppServer - State of the Union
WildFly AppServer - State of the Union
Dimitris Andreadis5K views
AS7AS7
AS7
JBug Italy619 views
Java EE6 OverviewJava EE6 Overview
Java EE6 Overview
Eduardo Pelegri-Llopart939 views
JBoss AS7JBoss AS7
JBoss AS7
JBug Italy770 views
Java EJava E
Java E
Arun Gupta1.3K views
JavaEE 6 and GlassFish v3 at SFJUGJavaEE 6 and GlassFish v3 at SFJUG
JavaEE 6 and GlassFish v3 at SFJUG
Marakana Inc.765 views
JBoss AS 7 따라잡기JBoss AS 7 따라잡기
JBoss AS 7 따라잡기
jbugkorea971 views
Joomla 2.5 Feature Joomla 2.5 Feature
Joomla 2.5 Feature
Akarawuth Tamrareang1.4K views
JBoss AS 7 from a user perspectiveJBoss AS 7 from a user perspective
JBoss AS 7 from a user perspective
Max Andersen978 views
Java EE 6 Aquarium ParisJava EE 6 Aquarium Paris
Java EE 6 Aquarium Paris
Alexis Moussine-Pouchkine431 views
Comparison Of Open Source App ServersComparison Of Open Source App Servers
Comparison Of Open Source App Servers
Rogue Wave Software 3K views
Java EE 6 & GlassFish 3Java EE 6 & GlassFish 3
Java EE 6 & GlassFish 3
Arun Gupta3.2K views

Recently uploaded(20)

Java Platform Approach 1.0 - Picnic MeetupJava Platform Approach 1.0 - Picnic Meetup
Java Platform Approach 1.0 - Picnic Meetup
Rick Ossendrijver23 views
[2023] Putting the R! in R&D.pdf[2023] Putting the R! in R&D.pdf
[2023] Putting the R! in R&D.pdf
Eleanor McHugh34 views
Web Dev - 1 PPT.pdfWeb Dev - 1 PPT.pdf
Web Dev - 1 PPT.pdf
gdsczhcet48 views

JBoss Application Server 7

  • 1. Ray Ploski Principal Solutions Architect ray@redhat.com twitter:@rayploski JBoss Application Server 7 Sunday, June 19, 2011
  • 2. JBoss AS Timeline JavaEE 6 Web Profile, JDK6 JBoss AS 7.0 JBoss AS 6.0 JavaEE 5 certification, JDK5 & 6 JBoss AS 5.1 J2EE 1.4 certification JBoss AS 5: Alphas, Betas, CRs JDK 1.4 and finally 5.0.0.GA, 5.0.1.GA 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 Sunday, June 19, 2011
  • 3. Motivations For AS7 • Improve Usability • Increase Manageability • Simplify Configurations • Highly Performant - GO FAST! Sunday, June 19, 2011
  • 4. Key Features of AS7 Sunday, June 19, 2011
  • 5. Key Features of AS7 Sunday, June 19, 2011
  • 6. Key Features of AS7 • 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 Sunday, June 19, 2011
  • 8. Two Operational Modes • Standalone • Traditional JBoss single JVM server • Management facilities IN-VM Sunday, June 19, 2011
  • 9. Two Operational Modes • 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 Sunday, June 19, 2011
  • 10. 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 Sunday, June 19, 2011
  • 11. 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 Sunday, June 19, 2011
  • 13. Domain Mode Processes • Process Controller • Responsible for managing and starting / restarting processes • Extremely simple, not much that can go wrong Sunday, June 19, 2011
  • 14. Domain Mode Processes • Process Controller • Responsible for managing and starting / restarting processes • Extremely simple, not much that can go wrong • Host Controller • One host controller is the domain controller, the rest are slaves • Domain controller is responsible for pushing out configuration changes over the domain Sunday, June 19, 2011
  • 15. Domain Mode 9 Sunday, June 19, 2011
  • 16. My File’s Have Changed? Sunday, June 19, 2011
  • 17. My File’s Have Changed? •Where are they? Sunday, June 19, 2011
  • 18. File Layout File Layout !   jboss-7.0.0.Beta3 !  bin ! standalone.conf Standalone Mode JVM Parameters ! standalone.sh Standalone Mode ! domain.sh Domain Mode ! jboss-admin.sh Command Line Interface !  modules Static JBoss Module Definitions !  standalone !   configuration ! standalone.xml Standalone Unified Configuration !   deployments File System Deployment !   logs !   data Internal Data (includes repository) Sunday, June 19, 2011
  • 19. File Layout - Domain File Layout (cont) !   jboss-7.0.0.Beta3 !  domain !   configuration ! domain.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 Sunday, June 19, 2011
  • 21. JBoss AS 7 Architecture JBoss MSC DMR Controller Threads Modules Server Controller Service Deployers VFS Jandex Reflect Cache Repository Core Infrastructure FS Scanner Transaction Datasource Messaging Connector Remoting Security JAX-RS Naming OSGi EJB3 Weld SAR Web JMX JPA WS EE Subsystems Sunday, June 19, 2011
  • 22. Classloading JBoss Modules Sunday, June 19, 2011
  • 26. JBoss Modules • Provides extremely fast modular class loading • O(1) Dependency resolution • Concurrent CL (lockless in most VMs) Sunday, June 19, 2011
  • 27. 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!) Sunday, June 19, 2011
  • 28. 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 Sunday, June 19, 2011
  • 29. 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 Sunday, June 19, 2011
  • 30. 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 Sunday, June 19, 2011
  • 33. User Deployments •User deployments are modules too Sunday, June 19, 2011
  • 34. User Deployments •User deployments are modules too •Sets up dependencies on some modules automatically (e.g. JPA, Hibernate, WebServices) Sunday, June 19, 2011
  • 35. 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 Sunday, June 19, 2011
  • 37. User Deployment Details • Each sub-deployment in an ear is it's own module Sunday, June 19, 2011
  • 38. User Deployment Details • Each sub-deployment in an ear is it's own module • Sub-deployments in an EAR do not have access to other sub-deployments by defaUlt Sunday, June 19, 2011
  • 39. User Deployment Details • Each sub-deployment in an ear is it's own module • Sub-deployments in an EAR do not have access to other sub-deployments by defaUlt • Allows for individual ejb-jar's to have dependencies on different versions of classes Sunday, June 19, 2011
  • 40. User Deployment Details • Each sub-deployment in an ear is it's own module • Sub-deployments in an EAR do not have access to other sub-deployments by defaUlt • Allows for individual ejb-jar's to have dependencies on different versions of classes • Also provide an relaxed isolation mode, which automatically set up dependencies between all the sub deployments in the ear Sunday, June 19, 2011
  • 41. User Deployment Details • Each sub-deployment in an ear is it's own module • Sub-deployments in an EAR do not have access to other sub-deployments by defaUlt • Allows for individual ejb-jar's to have dependencies on different versions of classes • Also provide an relaxed isolation mode, which automatically set up dependencies between all the sub deployments in the ear • Dependencies can be set up using the manifest, a custom deployment descriptor, or on a global level Sunday, June 19, 2011
  • 42. JBoss Modular Service Controller (MSC) Sunday, June 19, 2011
  • 43. Modular Service Container •Small, lightweight & efficient •Highly concurrent & scalable state machine •Only two non- Service Builder error, non- Service Registry transition states Service Controller - stop & start Service Deps Value Listeners Injectors Concurrent Service Container Sunday, June 19, 2011
  • 45. Services • In AS7 almost everything is a service Sunday, June 19, 2011
  • 46. Services • In AS7 almost everything is a service • Services are objects that can be started and stopped Sunday, June 19, 2011
  • 47. Services • In AS7 almost everything is a service • Services are objects that can be started and stopped • Services can have dependencies on other services Sunday, June 19, 2011
  • 48. 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 Sunday, June 19, 2011
  • 49. 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 Sunday, June 19, 2011
  • 50. 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 Sunday, June 19, 2011
  • 51. Everything is a Service! Sunday, June 19, 2011
  • 52. Everything is a Service! •As mentioned previously almost everything in AS7 is a service, including: • EJB's (actually 2+ services) • JNDI Bindings • Servlets • The deployment itself Sunday, June 19, 2011
  • 53. Everything is a Service! •As mentioned previously almost everything in AS7 is a service, including: • EJB's (actually 2+ services) • JNDI Bindings • Servlets • The deployment itself •Individually shut down and restart, with all dependencies being maintained Sunday, June 19, 2011
  • 55. JEE • Still using the same underlying projects, but with completely new integration code. Sunday, June 19, 2011
  • 56. JEE • Still using the same underlying projects, but with completely new integration code. • Boot process has been highly optimized Sunday, June 19, 2011
  • 57. JEE • Still using the same underlying projects, but with completely new integration code. • Boot process has been highly optimized • Annotation scanning is done by scanning the deployments bytecode, preventing expensive class loading unless it is absolutely necessary Sunday, June 19, 2011
  • 58. JEE • Still using the same underlying projects, but with completely new integration code. • Boot process has been highly optimized • Annotation scanning is done by scanning the deployments bytecode, preventing expensive class loading unless it is absolutely necessary • Services start asynchronously where possible (e.g. Weld and Hibernate can both be starting at the same time) Sunday, June 19, 2011
  • 59. Dynamic Model Representation (DMR) Sunday, June 19, 2011
  • 60. Management - DMR Sunday, June 19, 2011
  • 61. Management - DMR • Central De-typed Management API • All management operations operate with/on DMR • Backwards compatible! Sunday, June 19, 2011
  • 62. Management - DMR • Central De-typed Management API • All management operations operate with/on DMR • Backwards compatible! • Can be used to control a single standalone server or an entire domain Sunday, June 19, 2011
  • 63. Management - DMR • Central De-typed Management API • All management operations operate with/on DMR • Backwards compatible! • Can be used to control a single standalone server or an entire domain • De-types (i.e. string based) API uses a small set of Java classes Sunday, June 19, 2011
  • 64. Management - DMR • Central De-typed Management API • All management operations operate with/on DMR • Backwards compatible! • Can be used to control a single standalone server or an entire domain • De-types (i.e. string based) API uses a small set of Java classes • Various transports (Java Remoting, JSON over HTTP) Sunday, June 19, 2011
  • 65. Management - DMR • Central De-typed Management API • All management operations operate with/on DMR • Backwards compatible! • Can be used to control a single standalone server or an entire domain • De-types (i.e. string based) API uses a small set of Java classes • Various transports (Java Remoting, JSON over HTTP) • All management interfaces are based on this API Sunday, June 19, 2011
  • 66. Dynamic Model Representation (DMR) • Central De-typed Management API • All management operations operate with/on DMR • 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) Sunday, June 19, 2011
  • 67. 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 Sunday, June 19, 2011
  • 68. Management via Configuration 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.jboss.managed.api.annotation.ManagementCompone nt(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> Sunday, June 19, 2011
  • 69. Management via API Sunday, June 19, 2011
  • 70. Management via Command Line Sunday, June 19, 2011
  • 71. Management via Command Line • Scriptable command line management tool Sunday, June 19, 2011
  • 72. Management via Command Line • Scriptable command line management tool • Uses the management API internally Sunday, June 19, 2011
  • 73. Management via Command Line • Scriptable command line management tool • Uses the management API internally • Allows access to high level user friendly commands: create-jms-queue –-name testQueue Sunday, June 19, 2011
  • 74. Management via Command Line • 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 Sunday, June 19, 2011
  • 75. 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. Sunday, June 19, 2011
  • 78. Boot Time Results Sunday, June 19, 2011
  • 80. WHEN? • AS 7.0 currently in Beta3 • 7.0 Final (EE Web Profile) • 7.1 Final (EE Full Profile) JBoss AS 7.1 will be the base for JBoss Enterprise Application Platform 6 (EAP) Sunday, June 19, 2011
  • 81. JBoss AS v EAP Sunday, June 19, 2011
  • 82. More Information • Webinars: http://www.jboss.org/webinars • This Deck: http://bit.ly/BABootcampAS7 • Homepage: http://www.jboss.org/jbossas • Users Forum: http://community.jboss.org/ en/jbossas/as7_users • Using Nightly Builds: http:// community.jboss.org/thread/167590 Sunday, June 19, 2011
  • 83. Support Open Source! • We need You! • Subscribe • Contribute • Code • Features • Documentation • Testing • Let us continue our work that benefits so many. Sunday, June 19, 2011