Successfully reported this slideshow.

JBoss Application Server 7

65

Share

Upcoming SlideShare
JBoss AS7 Reloaded
JBoss AS7 Reloaded
Loading in …3
×
1 of 83
1 of 83

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Related Audiobooks

Free with a 14 day trial from Scribd

See all

JBoss Application Server 7

  1. 1. Ray Ploski Principal Solutions Architect ray@redhat.com twitter:@rayploski JBoss Application Server 7 Sunday, 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.3 Sunday, 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 AS7 Sunday, June 19, 2011
  5. 5. Key Features of AS7 Sunday, 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 isolation Sunday, June 19, 2011
  7. 7. Two Operational Modes Sunday, June 19, 2011
  8. 8. Two Operational Modes • Standalone • Traditional JBoss single JVM server • Management facilities IN-VM Sunday, 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 Controller Sunday, 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 API's as domain mode Sunday, 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 Instance Sunday, June 19, 2011
  12. 12. Domain Mode Processes Sunday, June 19, 2011
  13. 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. 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. 15. Domain Mode 9 Sunday, 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 !  data Sunday, June 19, 2011
  20. 20. Architecture Sunday, 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 Subsystems Sunday, June 19, 2011
  22. 22. Classloading JBoss Modules Sunday, June 19, 2011
  23. 23. Hierarchical CL Sunday, June 19, 2011
  24. 24. Modular CL Sunday, June 19, 2011
  25. 25. JBoss Modules Sunday, 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 JAR Sunday, 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 redefined Sunday, 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 modules Sunday, June 19, 2011
  31. 31. modules.xml Sunday, June 19, 2011
  32. 32. User Deployments Sunday, June 19, 2011
  33. 33. User Deployments •User deployments are modules too Sunday, 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 modules Sunday, June 19, 2011
  36. 36. User Deployment Details Sunday, June 19, 2011
  37. 37. User Deployment Details • Each sub-deployment in an ear is it's own module Sunday, June 19, 2011
  38. 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. 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. 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. 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. 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 Container Sunday, June 19, 2011
  44. 44. Services Sunday, June 19, 2011
  45. 45. Services • In AS7 almost everything is a service Sunday, June 19, 2011
  46. 46. Services • In AS7 almost everything is a service • Services are objects that can be started and stopped Sunday, 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 services Sunday, 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 start Sunday, 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 first Sunday, 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 services Sunday, 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: • EJB's (actually 2+ services) • JNDI Bindings • Servlets • The deployment itself Sunday, June 19, 2011
  53. 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
  54. 54. JEE Sunday, 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 optimized Sunday, 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 necessary Sunday, 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 - DMR Sunday, 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 domain Sunday, 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 classes Sunday, 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 API Sunday, 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 scripts Sunday, 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 API Sunday, June 19, 2011
  70. 70. Management via Command Line Sunday, June 19, 2011
  71. 71. Management via Command Line • Scriptable command line management tool Sunday, June 19, 2011
  72. 72. Management via Command Line • Scriptable command line management tool • Uses the management API internally Sunday, 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 testQueue Sunday, 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 API Sunday, 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. Performance Sunday, June 19, 2011
  78. 78. Boot Time Results Sunday, June 19, 2011
  79. 79. Memory Comparison Sunday, 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 EAP Sunday, 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/167590 Sunday, 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

×