Ray Ploski                                       Principal Solutions Architect                                            ...
JBoss AS Timeline                                                                                     JavaEE 6 Web Profile...
Motivations For AS7                    • Improve Usability                    • Increase Manageability                    ...
Key Features of AS7Sunday, June 19, 2011
Key Features of AS7Sunday, June 19, 2011
Key Features of AS7           •       Fast and Lightweight           •       Supports domain (multi-node) management      ...
Two Operational ModesSunday, June 19, 2011
Two Operational Modes                    • Standalone                     • Traditional JBoss single JVM server           ...
Two Operational Modes                    • Standalone                     • Traditional JBoss single JVM server           ...
Standalone Mode                  • Standalone is a single AS process for use                        in development, where ...
Domain Mode                    • Easy management of multiple AS instances                    • Managed from a single point...
Domain Mode ProcessesSunday, June 19, 2011
Domain Mode Processes                    • Process Controller                        • Responsible for managing and starti...
Domain Mode Processes                    • Process Controller                        • Responsible for managing and starti...
Domain Mode                             9Sunday, 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                            ...
File Layout - Domain             File Layout (cont)             !   jboss-7.0.0.Beta3                        !  domain    ...
ArchitectureSunday, June 19, 2011
JBoss AS 7 Architecture                                                      JBoss                            MSC         ...
Classloading                          JBoss ModulesSunday, June 19, 2011
Hierarchical CLSunday, June 19, 2011
Modular CLSunday, June 19, 2011
JBoss ModulesSunday, June 19, 2011
JBoss Modules      • Provides extremely fast modular class loading            •      O(1) Dependency resolution           ...
JBoss Modules      • Provides extremely fast modular class loading            •      O(1) Dependency resolution           ...
JBoss Modules      • Provides extremely fast modular class loading            •      O(1) Dependency resolution           ...
JBoss Modules      • Provides extremely fast modular class loading            •      O(1) Dependency resolution           ...
JBoss Modules      • Provides extremely fast modular class loading            •      O(1) Dependency resolution           ...
modules.xmlSunday, June 19, 2011
User DeploymentsSunday, June 19, 2011
User Deployments                    •User deployments are modules tooSunday, June 19, 2011
User Deployments                    •User deployments are modules too                    •Sets up dependencies on some    ...
User Deployments                    •User deployments are modules too                    •Sets up dependencies on some    ...
User Deployment DetailsSunday, June 19, 2011
User Deployment Details                    • Each sub-deployment in an ear is its own moduleSunday, June 19, 2011
User Deployment Details                    • Each sub-deployment in an ear is its own module                    • Sub-depl...
User Deployment Details                    • Each sub-deployment in an ear is its own module                    • Sub-depl...
User Deployment Details                    • Each sub-deployment in an ear is its own module                    • Sub-depl...
User Deployment Details                    • Each sub-deployment in an ear is its own module                    • Sub-depl...
JBoss Modular Service                              Controller (MSC)Sunday, June 19, 2011
Modular Service Container          •Small, lightweight & efficient          •Highly concurrent & scalable state machine   ...
ServicesSunday, June 19, 2011
Services                    • In AS7 almost everything is a serviceSunday, June 19, 2011
Services                    • In AS7 almost everything is a service                    • Services are objects that can be ...
Services                    • In AS7 almost everything is a service                    • Services are objects that can be ...
Services                    • In AS7 almost everything is a service                    • Services are objects that can be ...
Services                    • In AS7 almost everything is a service                    • Services are objects that can be ...
Services                    • In AS7 almost everything is a service                    • Services are objects that can be ...
Everything is a Service!Sunday, June 19, 2011
Everything is a Service!               •As mentioned previously almost                        everything in AS7 is a servi...
Everything is a Service!               •As mentioned previously almost                        everything in AS7 is a servi...
JEESunday, June 19, 2011
JEE                    • Still using the same underlying projects, but                        with completely new integrat...
JEE                    • Still using the same underlying projects, but                        with completely new integrat...
JEE                    • Still using the same underlying projects, but                        with completely new integrat...
JEE                    • Still using the same underlying projects, but                        with completely new integrat...
Dynamic Model                        Representation                             (DMR)Sunday, June 19, 2011
Management - DMRSunday, June 19, 2011
Management - DMR                • Central De-typed Management API                        •   All management operations ope...
Management - DMR                • Central De-typed Management API                        •   All management operations ope...
Management - DMR                • Central De-typed Management API                        •   All management operations ope...
Management - DMR                • Central De-typed Management API                        •   All management operations ope...
Management - DMR                • Central De-typed Management API                        •   All management operations ope...
Dynamic Model Representation (DMR)           • Central De-typed Management API                 • All management operations...
Management               •ONE configuration file                    • standalone.xml     / domain.xml               • Mana...
Management via Configuration       User-focused Configuration        <bean name="TransactionManager"        class="com.arj...
Management via APISunday, June 19, 2011
Management via Command LineSunday, June 19, 2011
Management via Command Line                    • Scriptable command line management toolSunday, June 19, 2011
Management via Command Line                    • Scriptable command line management tool                    • Uses the man...
Management via Command Line                    • Scriptable command line management tool                    • Uses the man...
Management via Command Line                    • Scriptable command line management tool                    • Uses the man...
Testing with Arquillian           •AS7 supports easy testing with ArquillIan           •Arquillian is used both in the int...
Sunday, June 19, 2011
PerformanceSunday, June 19, 2011
Boot Time ResultsSunday, June 19, 2011
Memory ComparisonSunday, June 19, 2011
WHEN?           • AS 7.0 currently in Beta3            • 7.0 Final (EE Web Profile)            • 7.1 Final (EE Full Profil...
JBoss AS v EAPSunday, June 19, 2011
More Information                    • Webinars: http://www.jboss.org/webinars                    • This Deck: http://bit.l...
Support Open Source!      • We need You!            • Subscribe            • Contribute             • Code             • F...
Upcoming SlideShare
Loading in...5
×

JBoss Application Server 7

18,478

Published on

Presentation given in Buenos Aires on June 17, 2011 by Ray Ploski

Published in: Technology
6 Comments
40 Likes
Statistics
Notes
No Downloads
Views
Total Views
18,478
On Slideshare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
0
Comments
6
Likes
40
Embeds 0
No embeds

No notes for slide

JBoss Application Server 7

  1. 1. Ray Ploski Principal Solutions Architect ray@redhat.com twitter:@rayploski JBoss Application Server 7Sunday, June 19, 2011
  2. 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.3Sunday, June 19, 2011
  3. 3. Motivations For AS7 • Improve Usability • Increase Manageability • Simplify Configurations • Highly Performant - GO FAST!Sunday, June 19, 2011
  4. 4. Key Features of AS7Sunday, June 19, 2011
  5. 5. Key Features of AS7Sunday, June 19, 2011
  6. 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 isolationSunday, June 19, 2011
  7. 7. Two Operational ModesSunday, June 19, 2011
  8. 8. Two Operational Modes • Standalone • Traditional JBoss single JVM server • Management facilities IN-VMSunday, June 19, 2011
  9. 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 ControllerSunday, June 19, 2011
  10. 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 APIs as domain modeSunday, June 19, 2011
  11. 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 InstanceSunday, June 19, 2011
  12. 12. Domain Mode ProcessesSunday, June 19, 2011
  13. 13. Domain Mode Processes • Process Controller • Responsible for managing and starting / restarting processes • Extremely simple, not much that can go wrongSunday, June 19, 2011
  14. 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 domainSunday, June 19, 2011
  15. 15. Domain Mode 9Sunday, June 19, 2011
  16. 16. My File’s Have Changed?Sunday, June 19, 2011
  17. 17. My File’s Have Changed? •Where are they?Sunday, June 19, 2011
  18. 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. 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 !  dataSunday, June 19, 2011
  20. 20. ArchitectureSunday, June 19, 2011
  21. 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 SubsystemsSunday, June 19, 2011
  22. 22. Classloading JBoss ModulesSunday, June 19, 2011
  23. 23. Hierarchical CLSunday, June 19, 2011
  24. 24. Modular CLSunday, June 19, 2011
  25. 25. JBoss ModulesSunday, June 19, 2011
  26. 26. JBoss Modules • Provides extremely fast modular class loading • O(1) Dependency resolution • Concurrent CL (lockless in most VMs)Sunday, June 19, 2011
  27. 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. 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 JARSunday, June 19, 2011
  29. 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 redefinedSunday, June 19, 2011
  30. 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 modulesSunday, June 19, 2011
  31. 31. modules.xmlSunday, June 19, 2011
  32. 32. User DeploymentsSunday, June 19, 2011
  33. 33. User Deployments •User deployments are modules tooSunday, June 19, 2011
  34. 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. 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 modulesSunday, June 19, 2011
  36. 36. User Deployment DetailsSunday, June 19, 2011
  37. 37. User Deployment Details • Each sub-deployment in an ear is its own moduleSunday, June 19, 2011
  38. 38. User Deployment Details • Each sub-deployment in an ear is its own module • Sub-deployments in an EAR do not have access to other sub-deployments by defaUltSunday, June 19, 2011
  39. 39. User Deployment Details • Each sub-deployment in an ear is its own module • Sub-deployments in an EAR do not have access to other sub-deployments by defaUlt • Allows for individual ejb-jars to have dependencies on different versions of classesSunday, June 19, 2011
  40. 40. User Deployment Details • Each sub-deployment in an ear is its own module • Sub-deployments in an EAR do not have access to other sub-deployments by defaUlt • Allows for individual ejb-jars 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 earSunday, June 19, 2011
  41. 41. User Deployment Details • Each sub-deployment in an ear is its own module • Sub-deployments in an EAR do not have access to other sub-deployments by defaUlt • Allows for individual ejb-jars 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 levelSunday, June 19, 2011
  42. 42. JBoss Modular Service Controller (MSC)Sunday, June 19, 2011
  43. 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 ContainerSunday, June 19, 2011
  44. 44. ServicesSunday, June 19, 2011
  45. 45. Services • In AS7 almost everything is a serviceSunday, June 19, 2011
  46. 46. Services • In AS7 almost everything is a service • Services are objects that can be started and stoppedSunday, June 19, 2011
  47. 47. Services • In AS7 almost everything is a service • Services are objects that can be started and stopped • Services can have dependencies on other servicesSunday, June 19, 2011
  48. 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 startSunday, June 19, 2011
  49. 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 firstSunday, June 19, 2011
  50. 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 servicesSunday, June 19, 2011
  51. 51. Everything is a Service!Sunday, June 19, 2011
  52. 52. Everything is a Service! •As mentioned previously almost everything in AS7 is a service, including: • EJBs (actually 2+ services) • JNDI Bindings • Servlets • The deployment itselfSunday, June 19, 2011
  53. 53. Everything is a Service! •As mentioned previously almost everything in AS7 is a service, including: • EJBs (actually 2+ services) • JNDI Bindings • Servlets • The deployment itself •Individually shut down and restart, with all dependencies being maintainedSunday, June 19, 2011
  54. 54. JEESunday, June 19, 2011
  55. 55. JEE • Still using the same underlying projects, but with completely new integration code.Sunday, June 19, 2011
  56. 56. JEE • Still using the same underlying projects, but with completely new integration code. • Boot process has been highly optimizedSunday, June 19, 2011
  57. 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 necessarySunday, June 19, 2011
  58. 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. 59. Dynamic Model Representation (DMR)Sunday, June 19, 2011
  60. 60. Management - DMRSunday, June 19, 2011
  61. 61. Management - DMR • Central De-typed Management API • All management operations operate with/on DMR • Backwards compatible!Sunday, June 19, 2011
  62. 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 domainSunday, June 19, 2011
  63. 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 classesSunday, June 19, 2011
  64. 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. 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 APISunday, June 19, 2011
  66. 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. 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 scriptsSunday, June 19, 2011
  68. 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. 69. Management via APISunday, June 19, 2011
  70. 70. Management via Command LineSunday, June 19, 2011
  71. 71. Management via Command Line • Scriptable command line management toolSunday, June 19, 2011
  72. 72. Management via Command Line • Scriptable command line management tool • Uses the management API internallySunday, June 19, 2011
  73. 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 testQueueSunday, June 19, 2011
  74. 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 APISunday, June 19, 2011
  75. 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
  76. 76. Sunday, June 19, 2011
  77. 77. PerformanceSunday, June 19, 2011
  78. 78. Boot Time ResultsSunday, June 19, 2011
  79. 79. Memory ComparisonSunday, June 19, 2011
  80. 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. 81. JBoss AS v EAPSunday, June 19, 2011
  82. 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/167590Sunday, June 19, 2011
  83. 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

×