What Makes JBoss AS7 Tick?
  Marius Bogoevici
 Senior Software Engineer,
 JBoss by Red Hat
                  What makes JBoss tick?
                         Marius Bogoevici




@mariusbogoevici
Friday, 23 March, 12
About me
                  •    Senior Software Engineer, JBoss by Red Hat

                  •    Snowdrop Lead (Spring extensions for JBoss AS)

                  •    Contributor to Weld, JSR-299 RI

                  •    Contributor to JBoss AS6, JBoss AS7

                  •    Interest in enterprise integration

                       •   committer Spring Integration

                       •   author “Spring Integration in Action” (Manning,
                           2012)


Friday, 23 March, 12
Friday, 23 March, 12
Timeline

     Spring               July      August September February       March
      2010               2011        2011     2011     2012         2012
                          7.0        7.0.1    7.0.2      7.1        7.1.1
                        Java EE 6       Fixes and      Java EE 6
                       Web profile     enhancements    Full profile
                        certified                       certified

                                 http://www.jboss.org/jbossas/
Friday, 23 March, 12
What makes JBoss AS7
                               tick?

                                  or:

                       Understanding JBoss AS7’s
                         features through its
                             architecture




Friday, 23 March, 12
Fast

Friday, 23 March, 12
Friday, 23 March, 12
Friday, 23 March, 12
Friday, 23 March, 12
Friday, 23 March, 12
It’s	 the	 law!
Friday, 23 March, 12
Moore’s Law

                       The number of transistors
                       which can be inexpensively
                        placed on a chip doubles
                            every two years.




Friday, 23 March, 12
1960-2000s: Faster




        Since mid-2000s: more cores,
              energy efficiency,
                 not faster

Friday, 23 March, 12
Amdahl’s Law

     The speedup of a
     program using
     multiple processors          Oh, ok.
     in parallel
     computing is limited
     by the time needed
     for the sequential
     fraction of the
     program.



Friday, 23 March, 12
first-class components


                       improved architecture




Friday, 23 March, 12
Modular
                       architecture
Friday, 23 March, 12
Mi
                                                  cr
                                                    oc
                                Microcontainer on
                       Microkernel           JB
                                           JB os       ta
                                             os s        in
                        JBoss AS 3              s   AS      er
                           Microkernel
                        JBoss AS 4                AS 5
                                                     6
             New architecture

             Requirements:
               Highly concurrent
               Low Memory consumption
               Avoid reflection
               On demand
Friday, 23 March, 12
JBoss AS architecture




Friday, 23 March, 12
Subsystems are extensions
     <server xmlns="urn:jboss:domain:1.2">                   pluggable
              <extensions>                                   extension
                  <extension module="org.jboss.as.web"/>
              </extensions>
                               set of subsystems
         <profile>
             <subsystem xmlns="urn:jboss:domain:web:1.1"
                      default-virtual-server="default-host" native="false">
                 <connector name="http" protocol="HTTP/1.1" scheme="http"
                                                              socket-
     binding="http"/>
                 <virtual-server name="default-host" enable-welcome-root="true">
                      <alias name="localhost"/>
                      <alias name="example.com"/>
                 </virtual-server>                              materialized
             </subsystem>                                        extension
         </profile>

     </server>




Friday, 23 March, 12
Modular service container

                Every deployable entity is a service
                Deployment coordinated by subsystems
                Concurrent service startup
                Parallel dependency resolution
                Lazy loading of expensive services
                STAX parser
                Annotation & reflection indexing
Friday, 23 March, 12
Hierarchical classloading
                                         System CL


                                         Server CL      Hibernate 4


                       Deployment CL                 Deployment CL

                       Hibernate 3.6.x


Friday, 23 March, 12
Friday, 23 March, 12
Friday, 23 March, 12
Modular classloading
                              101
                         Module A      Module B



                        Module C v1   Module C v2




Friday, 23 March, 12
JBoss Modules
                       Modular classloader system
                       Concurrent classloading
                       Pure modularity (deps added on request)
                       Simple dependency rules
                        Extremely fast dependency resolution
                       Deployments are modules themselves
                        Own exclusions/inclusions

Friday, 23 March, 12
And OSGi ?

                                       JBoss OSGi

                       JBoss Modules   Modular Service Container




                         Yes. JBoss AS7 is an OSGi runtime

Friday, 23 March, 12
Exceptionally
                        lightweight
Friday, 23 March, 12
GuruPlug
                                               512M RAM
                                               1.2 GHz
                                               512M NAND Flash




                   More at: http://www.jboss.org/jbw2011keynote
Friday, 23 March, 12
Better control



Friday, 23 March, 12
Wide management options
Friday, 23 March, 12
Standalone mode
                       •   Single server instance

                       •   ‘Classic’ approach

                       •   Managed individually

                           •   configuration file

                           •   web interface

                       •   Best for development



Friday, 23 March, 12
Domain mode
            •      Centralized management

            •      Centralized deployment

            •      Group configuration
                   policy

            •      Suitable for production,
                   large number of servers

            •      Easy vertical scaling

            •      Easy vertical/horizontal
                   clustering


Friday, 23 March, 12
Secure by default
Friday, 23 March, 12
Cloud-ready

Friday, 23 March, 12
https://openshift.redhat.com/
Friday, 23 March, 12
A versatile server




Friday, 23 March, 12
...and a platform



Friday, 23 March, 12
http://jboss.org/switchyard



Friday, 23 March, 12
http://jboss.org/snowdrop



Friday, 23 March, 12
http://torquebox.org

Friday, 23 March, 12
http://jboss.org/immutant



Friday, 23 March, 12
http://jboss.org/capedwarf



Friday, 23 March, 12
Tools


Friday, 23 March, 12
Be a craftsman.




         http://www.jboss.org/tools
Friday, 23 March, 12
Be a craftsman. Faster.




                            http://jboss.org/forge



Friday, 23 March, 12
Learn to trust your code.




             http://jboss.org/arquillian
Friday, 23 March, 12
A community effort ...


Friday, 23 March, 12
Friday, 23 March, 12
... with enterprise support
Friday, 23 March, 12
Friday, 23 March, 12
Questions?



Friday, 23 March, 12
http://jboss.org/jbossas              #jbossas7




                       THANKS!

@mariusbogoevici             mariusb@redhat.com
Friday, 23 March, 12

What makes JBoss AS7 tick?