JBoss AS / EAP and Java EE6


Published on

JBoss Application Server /
Enterprise Application Platform (EAP)
and Java EE6

presented at Profict Java Summer Camp 2011

Published in: Technology
1 Comment
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

JBoss AS / EAP and Java EE6

  1. 1. JBoss Application Server /Enterprise Application PlatformJasoctAS Project Lead…and Java EE 6May 4, 2011Dimitris AndreadisSoftware Engineering ManagerJBoss Application Server
  2. 2. Agenda• A Brief History of JBoss AS• The Path to Java EE6 • JBoss AS6 • JBoss AS7• Enterprise Application Platform 6 (EAP)• Beyond Java EE6
  3. 3. About MeJBoss AS, Engineering Manager dandreadis.blogspot.com •2001, JBoss User •2003, JBoss Committer •2004, JBoss Full-time Core Developer •2006, JBoss AS Lead (v3.2.8+, v4.0.4+, v4.2.x, 5.0.x) •2009 - present, Manager of JBoss AS Core TeamAnd before JBoss? •7y experience in distributed systems (telcos, NMS/OSS) •BSc/MSc Computer Science (Athens/Dublin)
  4. 4. Agenda• A Brief History of JBoss AS• The Path to Java EE6 • JBoss AS6 • JBoss AS7• Enterprise Application Platform 6 (EAP)• Beyond Java EE6
  5. 5. JBoss AS Timeline JavaEE 6 Web Profile, JDK6 Modular Service Container Architecture JavaEE 6 Web Profile, JDK6 JBoss AS 7.0, 7.0.1, 7.0.2 JBoss AS 6.0, 6.1 JavaEE 5 certification, JDK5 & 6 MicroContainer Architecture JBoss AS 5.1 J2EE 1.4 certification JBoss AS 5: 5.0.0.GA, 5.0.1.GA JDK 1.4 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 JMX MicroKernel Architecture
  6. 6. Agenda• A Brief History of JBoss AS• The Path to Java EE6 • JBoss AS6 • JBoss AS7• Enterprise Application Platform 6 (EAP)• Beyond Java EE6
  7. 7. JBoss AS 6.0/6.1 – Java EE6• JBoss AS 6.0/6.1 • Java EE6 Web Profile++ (or EE6 Full--) • Based on the 5.x Microcontainer • More lightweight than AS5• New Stuff • HornetQ (Messaging) • Infinispan (Caching) • Apache CXF (Web Services) • mod_cluster • …
  8. 8. JBoss AS 6.0/6.1 – Java EE6 (cont.)• JBoss AS 6.0/6.1 • Deliver faster on Java EE6 • Stepping stone for AS7/EAP6 • Baking time for EE subsystems • Measure interest on EE profiles• Gotchas • JBoss AS6 will *not* be productized! • Currently in community maintenance mode
  9. 9. Planning for AS 7.0• A hard look at the mirror • Excess baggage (legacy subsystems and abstractions) • Boot time & memory footprint • Embeadability/testability • Administration options• It’s “free” and it doesn’t suck not enough anymore • Give me my Mojo back!
  10. 10. Planning for AS 7.0 (cont.)• Major Goals • Make it Smaller, Faster, Sexier • Improve Manageability • Simplify Configuration• Clean things up! • Remove abstraction layers • Remove legacy stuff • Modularize
  11. 11. Agenda• A Brief History of JBoss AS• The Path to Java EE6 • JBoss AS6 • JBoss AS7• Enterprise Application Platform 6 (EAP)• Beyond Java EE6
  12. 12. Introducing JBoss AS 7*!• AS 7.0 – released Jul/2011 • EE6 – Web Profile (+JCA, +JAX-RS) certified • EE6 “everything” distro• AS 7.0.1 – released Aug/2011 • MDB support, JSR-88, JPA w. older Hibernate 3• AS 7.0.2 – released Sep/2011 • JSF 2.1, @Asynchronous, PicketLink SSO, etc. *A blazingly fast modular lightweight elegantly administrable compliant application server with easy testing facilities!
  13. 13. AS7 Key Features• Fast and Lightweight• Modular, OSGi enabled• Unified, user focused configuration• Multiple management interfaces• Support for multi-node management
  14. 14. AS7 Architecture JBoss MSC DMR Controller Threads Modules Server Controller Service Deployers VFS Jandex Reflect Cache Repository Core Infrastructure FS Secanner Transaction Datasource Messaging Connector Remoting Security JAX-RS Naming OSGi EJB3 Weld SAR Web JMX JPA WS EE Subsystems
  15. 15. MSC Architecture Service Builder Service Registry Service Controller Service Deps Value Listeners Injectors Concurrent Service Container
  16. 16. Key attributes of MSCSmall, lightweight, and efficient •216K JAR, Tiny memory overheadHighly concurrent & scalable state machine •State transitions are “tasks”Services are primarily interface based •No reflection or XML required!Only two non-error, non-transition states •UP & DOWNMultiple startup modes •Active, Passive, On-Demand, Lazy, Never
  17. 17. #@*%ing fast! http://community.jboss.org/wiki/AS7StartupTimeShowdown
  18. 18. Boot Time Results
  19. 19. Memory Comparison
  20. 20. How is it done?• Concurrent startup/deployments• Faster resource lookup/classloading• Annotation indexing• Caching reflection metadata• Lazy loading of (some) services• StAX based descriptor parsing• Starting from scratch 
  21. 21. Modularity
  22. 22. Modularity - JBoss ModulesSmall, lightweight, and efficient •O(1) Dep resolution •Concurrent class loading (lockless on most VMs) •207k JAR“Pure” modular class loading •Modules only see what they import (includes JDK classes!)External module definitions •Don’t have to break open the JARDynamic •Modules can be redefinedExtensible •JBoss OSGi implemented on modules
  23. 23. modulesorghornetqmainmodule.xml<module xmlns="urn:jboss:module:1.0" name="org.hornetq"> <resources> <resource-root path="hornetq-core-2.2.7.Final.jar"/> <resource-root path="hornetq-jms-2.2.7.Final.jar"/></resources> <dependencies> <module name="javax.api"/> <module name="javax.jms.api" /> <module name="org.jboss.jts"/> <module name="org.jboss.netty"/> </dependencies></module>
  24. 24. Two Operational ModesStandalone •Traditional JBoss single JVM server •Management facilities IN-VM •No lifecycle management (only shutdown)Domain •Multi-JVM, multi-server model •Management coordinated by Domain Controller Process •Multiple server instances (JVMs) per Host •Full lifecycle managed by Process Controller
  25. 25. Domain Mode Physical Topology
  26. 26. Filesystem Layout jboss-7.1.x bin standalone.conf Standalone Mode JVM Parameters standalone.sh Standalone Mode domain.sh Domain Mode jboss-admin.sh Command Line Interface bundles OSGi Bundles Static JBoss Module Definitions modules standalone configuration standalone.xml Standalone Unified Configuration deployments File System Deployment logs data Internal Data (includes repository)
  27. 27. Filesystem Layout (cont) jboss-7.1.x domain configuration standalone.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
  28. 28. 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.ManagementComponent(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>
  29. 29. Management APIs• Command Line Interface (CLI)• Remote Java API• HTTP/JSON API• GWT-based console
  30. 30. Dynamic Model Representation (DMR)• Central Detyped Management API •All management operations operate with/on DMR •Strictly 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)
  31. 31. RoadmapAS 7.0.2 last version of 7.0 seriesAS 7.1 – Targeting EE 6 Full Profile • 7.1 Alpha, really soon • 7.1 Beta, Oct/2011 • 7.1 CR/Final, end of 2011JBoss AS 7.1 will be the base for JBoss Enterprise Application Platform 6 (EAP)
  32. 32. Agenda• A Brief History of JBoss AS• The Path to Java EE6 • JBoss AS6 • JBoss AS7• Enterprise Application Platform 6 (EAP)• Beyond Java EE6
  33. 33. The Community JBoss Application Server (AS)vs. the Enterprise Application Platform (EAP)• Community Project (JBoss AS) •- JBoss As We Know It •- Sponsored by JBoss/Red Hat •- Allow innovation at a faster pace• Enterprise Application Platform (EAP) •- Forks the community project at stable points •- Integrates with JBoss Developer Studio / JBoss Operations Network •- Rigorously tested (performance, scalability, SpecJ, etc.) •- Certified on multiple OS, JVM, DBs combinations •- Cumulative Patch cycles •- Supported for 5 + 2 years.
  34. 34. JBoss AS vs JBoss EAP
  35. 35. Agenda• A Brief History of JBoss AS• The Path to Java EE6 • JBoss AS6 • JBoss AS7• Enterprise Application Platform 6 (EAP)• Beyond Java EE6
  36. 36. AS7 PaaS - www.jboss.org/openshift.html
  37. 37. dimitris.andreadis@redhat.com http://dandreadis.blogspot.com