SlideShare a Scribd company logo
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

More Related Content

PPTX
Jboss Tutorial Basics
PDF
Ansible - Introduction
PPTX
Presentation on samba server
PDF
IT Automation with Ansible
PPTX
Spring boot - an introduction
PPTX
Spring boot Introduction
PDF
Oracle Application Express 20.2 New Features
PPTX
SpringBoot with MyBatis, Flyway, QueryDSL
Jboss Tutorial Basics
Ansible - Introduction
Presentation on samba server
IT Automation with Ansible
Spring boot - an introduction
Spring boot Introduction
Oracle Application Express 20.2 New Features
SpringBoot with MyBatis, Flyway, QueryDSL

What's hot (20)

PDF
Zabbix Performance Tuning
PDF
Ansible Playbook
PDF
Enterprise JavaBeans(EJB)
PDF
DevOps with Ansible
PPTX
OpenNMS introduction
PPTX
Ansible presentation
PPTX
Ansible presentation
PPTX
Microsoft Active Directory.pptx
PPT
PPTX
Introduction to ansible
ODP
ansible why ?
PDF
OpenShift 4, the smarter Kubernetes platform
PPT
Ansible presentation
PDF
JBoss EAP / WildFly, State of the Union
PPTX
windows-server- 2019 installing and configuring
PPT
Virtualisation basics
PDF
MongoDB and Node.js
PPTX
Spring boot
PPTX
Spring Cloud Config
PPTX
Automating with Ansible
Zabbix Performance Tuning
Ansible Playbook
Enterprise JavaBeans(EJB)
DevOps with Ansible
OpenNMS introduction
Ansible presentation
Ansible presentation
Microsoft Active Directory.pptx
Introduction to ansible
ansible why ?
OpenShift 4, the smarter Kubernetes platform
Ansible presentation
JBoss EAP / WildFly, State of the Union
windows-server- 2019 installing and configuring
Virtualisation basics
MongoDB and Node.js
Spring boot
Spring Cloud Config
Automating with Ansible
Ad

Viewers also liked (20)

PPTX
JBoss AS 7
PPT
J boss
PDF
JBoss Enterprise Application Platform 6 Troubleshooting
PPTX
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)
PDF
JBoss AS / EAP and Java EE6
PDF
JBoss started guide
PPTX
WAS vs JBoss, WebLogic, Tomcat (year 2015)
PDF
EAP6 performance Tuning
PDF
JBoss AS7 Reloaded
PDF
Tomcat and apache httpd training
KEY
JBoss AS7 Overview
PPT
Oracle WebLogic Server Basic Concepts
PDF
AAI-4847 Full Disclosure on the Performance Characteristics of WebSphere Appl...
PPT
Weblogic configuration & administration
PDF
IBM Lotus Notes Domino Blog Template Update 8.01
PPS
Frases Chiapanecas
PDF
Chmod
PPTX
VaticHub - Vehicular Data Analytics
PDF
WebSphere Application Server JBoss TCO analysis
JBoss AS 7
J boss
JBoss Enterprise Application Platform 6 Troubleshooting
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)
JBoss AS / EAP and Java EE6
JBoss started guide
WAS vs JBoss, WebLogic, Tomcat (year 2015)
EAP6 performance Tuning
JBoss AS7 Reloaded
Tomcat and apache httpd training
JBoss AS7 Overview
Oracle WebLogic Server Basic Concepts
AAI-4847 Full Disclosure on the Performance Characteristics of WebSphere Appl...
Weblogic configuration & administration
IBM Lotus Notes Domino Blog Template Update 8.01
Frases Chiapanecas
Chmod
VaticHub - Vehicular Data Analytics
WebSphere Application Server JBoss TCO analysis
Ad

Similar to JBoss Application Server 7 (20)

PDF
JBoss AS 7 from a user perspective
PDF
What makes JBoss AS7 tick?
PDF
Server Day 2009: JBoss 5.0 by Alessio Soldano
PPT
JBoss Analyst tour Sept 2003
PPT
JBoss presentation 2003 11 for matrix
PDF
JavaEE6
PDF
One daytalk hbraun_oct2011
PDF
F428435966 odtug web-logic for developers
PDF
DevOps Introduction @Cegeka
PDF
JBoss Enterprise Overview by Quinten Laureijs
PDF
JBoss AS7 by Matt Brasier
PDF
Java EE Technical Keynote - JavaOne India 2011
PPTX
Sv jug - mar 2013 - sl
PDF
Governing services, data, rules, processes and more
PDF
JBPM Past Present Future
PDF
jboss.org-jboss.com
ODP
Business processes, business rules, complex event processing, the JBoss way
PPTX
Sccm 2012
PDF
Jfokus 2012 : The Java EE 7 Platform: Developing for the Cloud
PDF
soft-shake.ch - JBoss AS 7, la révolution
JBoss AS 7 from a user perspective
What makes JBoss AS7 tick?
Server Day 2009: JBoss 5.0 by Alessio Soldano
JBoss Analyst tour Sept 2003
JBoss presentation 2003 11 for matrix
JavaEE6
One daytalk hbraun_oct2011
F428435966 odtug web-logic for developers
DevOps Introduction @Cegeka
JBoss Enterprise Overview by Quinten Laureijs
JBoss AS7 by Matt Brasier
Java EE Technical Keynote - JavaOne India 2011
Sv jug - mar 2013 - sl
Governing services, data, rules, processes and more
JBPM Past Present Future
jboss.org-jboss.com
Business processes, business rules, complex event processing, the JBoss way
Sccm 2012
Jfokus 2012 : The Java EE 7 Platform: Developing for the Cloud
soft-shake.ch - JBoss AS 7, la révolution

Recently uploaded (20)

PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Approach and Philosophy of On baking technology
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
KodekX | Application Modernization Development
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Cloud computing and distributed systems.
PDF
cuic standard and advanced reporting.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Machine learning based COVID-19 study performance prediction
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Unlocking AI with Model Context Protocol (MCP)
Mobile App Security Testing_ A Comprehensive Guide.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Approach and Philosophy of On baking technology
CIFDAQ's Market Insight: SEC Turns Pro Crypto
KodekX | Application Modernization Development
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Review of recent advances in non-invasive hemoglobin estimation
Advanced methodologies resolving dimensionality complications for autism neur...
Digital-Transformation-Roadmap-for-Companies.pptx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
20250228 LYD VKU AI Blended-Learning.pptx
Understanding_Digital_Forensics_Presentation.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Cloud computing and distributed systems.
cuic standard and advanced reporting.pdf
MYSQL Presentation for SQL database connectivity
Machine learning based COVID-19 study performance prediction

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