Your SlideShare is downloading. ×
JBoss EAP / WildFly, State of the Union
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

JBoss EAP / WildFly, State of the Union

7,810

Published on

JBoss EAP / WildFly, State of the Union @ Lausanne JUG, Sept/2013.

JBoss EAP / WildFly, State of the Union @ Lausanne JUG, Sept/2013.

Published in: Technology
2 Comments
6 Likes
Statistics
Notes
  • I was looking for best latest JBOSS community release for production and found this article. can you guide me which is latest opensource for production?
    I read in an article that JBOSS EAP Alpha will be latest AS. link is below
    http://www.openlogic.com/blog/bid/283299/Where-is-JBoss-7-2-0-Final
    it means right now EAP 6.3.0 Alpha is latest community AS 7.4 release?
    please clear this confusion. Target is moving from jboss 4.2 to latest
    we are using Tree Cache , now planning to shift on latest technologies i.e JPA 2.1, EJB 3.1, Hornet Queue we are currently using
    what about 'EAP 6.3.0 Beta' can it be used as production ?
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Very Precise presentation on JBoss AS 7.x and prior AS 6.x feature comparison to understand , what is new improved in JBoss AS 7.x and how it is achieved. Secondly Redhat JBoss EAP V6.x.x (which is based on community JBoss AS 7.x ) offers more over free community JBoss AS 7.x and short description of components.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
7,810
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
2
Likes
6
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Jasoct AS Project Lead May 4, 2011 JBoss EAP / WildFly State of the Union Dimitris Andreadis Engineering Manager JBoss EAP/WildFly
  • 2. About Me JBoss AS Fan(atic) •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, JBoss AS Engineering Manager •2013, JBoss EAP/WildFly Engineering Manager And before JBoss? •7y experience in distributed systems (telcos, NMS/OSS) •BSc/MSc Computer Science (Athens/Dublin) dandreadis.blogspot.com
  • 3. Agenda • JBoss History • The Path to EE6 • JBoss AS 7 • The Big Rename • WildFly 8 and EE7 • JBoss EAP 6
  • 4. JBoss AS Timeline 20072006200520042003 JBossVersions Time JBoss AS 4.0.0 – 4.0.5 JBoss AS 4.2.0 – 4.2.3 JBoss AS 5: 5.0.0.GA, 5.0.1.GA JBoss AS 3.2.0 – 3.2.8 JBoss AS 5.1 20092008 J2EE 1.3, JDK 1.3 JMX MicroKernel Architecture J2EE 1.4 certification JTS, JDK 1.4 JEE 5.0 compatible, not certified (95% pass) JDK5.0, EAP 4.2 basis JavaEE 5 certification, JDK5 & 6 MicroContainer Architecture 2010 2011 JBoss AS 6.0, 6.1 JBoss AS 7.0, 7.0.1, 7.0.2 JavaEE 6 Web Profile, JDK6 JavaEE 6 Web Profile, JDK6/JDK7 Modular Service Container Architecture 2012 JBoss AS 7.1, 7.1.1 JavaEE 6 Full Profile, JDK6/JDK7 Complete Clustering Support, EAP6 basis JSF-Based Console, EAP5 basis
  • 5. Andiamo Java EE 6
  • 6. The Path to EE6 •JBoss AS 6.0 • Deliver faster on Java EE6 • Baking time for EE subsystems • Measure interest in EE profiles • Stepping stone for AS7 •New Stuff • HornetQ (Messaging) • Infinispan (Caching) • Apache CXF (Web Services) • Embedded Jopr Console • mod_cluster
  • 7. A hard look at the mirror • Typical Pain Points • Excess baggage (legacy subsystems and abstractions) • Boot time & memory footprint • Embeadability/testability • Administration options • Modularity • It’s “free and it doesn’t suck” not enough anymore
  • 8. Getting our Mojo back! • Major Goals • Make it Smaller, Faster • Improve Manageability • Simplify Configuration • Clean things up! • Remove abstraction layers • Remove legacy stuff • Modularize
  • 9. *A blazingly fast modular lightweight elegantly administrable compliant application server with easy testing facilities – Carlo De Wolf, 2011 JBoss AS 7
  • 10. JBoss AS 7 releases • AS 7.0 – released Jul/2011 • EE6 – Web Profile (+JCA, +JAX-RS) certified • 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. • AS 7.1 – released Feb/2012 • Full EE6, Clustering, etc. • AS 7.1.1 – released Mar/2012
  • 11. AS7 Key Features • Fast and Lightweight • Modular, OSGi enabled • Unified, user focused configuration • Multiple management interfaces • Support for multi-node management
  • 12. AS7 Architecture MSC JBoss Modules DMR Controller Threads Core Infrastructure Server Controller Service Deployers VFS Jandex Reflect Cache Repository Subsystems Connector Datasource EE EJB3 JMX JPA Messaging Naming OSGi Remoting SAR Security FSSecanner Transaction Web WS Weld JAX-RS
  • 13. JBoss Kernel Taxonomy • JBoss AS 2.x, 3.x, 4.x • JBoss JMX MicroKernel • JBoss AS 5.x, 6.x • JBoss MC - MicroContainer • JBoss AS7.x • JBoss MSC - Modular Service Container
  • 14. Key attributes of MSC Small, lightweight, and efficient Highly concurrent & scalable state machine Services are primarily interface based Only two states, Up & Down Multiple startup modes •Active, Passive, On-Demand, Lazy, Never Concurrent Service Container Service Controller Service Registry Service Builder Service Deps Value Listeners Injectors
  • 15. So What?
  • 16. #@*%ing fast! http://community.jboss.org/wiki/AS7StartupTimeShowdown
  • 17. Boot Time Results
  • 18. Memory Comparison
  • 19. How is it done? • Concurrent startup/deployments • Faster resource lookup/classloading • Annotation indexing • Caching of reflection metadata • Lazy loading of (some) services • StAX based descriptor parsing • Starting from scratch 
  • 20. Modularity* *The Class Path is Dead – Mark Reinhold, 2009
  • 21. • Issues • All jars always loaded, whether used or no • Version conflicts, especially with servers libs • Increased lookup/load time • Hard to debug (big ball of mud) • JBoss AS 5 introduced module-like capabilities • jboss-classloading.xml Hierarchical Class Loading
  • 22. Modular Class Loading • A graph of Class Loaders, not a tree • Modules delegate to one another as peers • A module imports modules it directly uses • Transitive dependencies are hidden, by default • Different module versions may co-exist
  • 23. JBoss Modules Small, lightweight, and efficient •Highly concurrent class loading •Fast with O(1) dependency resolution “Pure” modular class loading •Modules only see what they import •Including JDK classes External module definitions •Don’t have to break open the JAR
  • 24. modulesorghornetqmainmodule.xml <module xmlns="urn:jboss:module:1.0" name="org.hornetq"> <resources> <resource-root path="hornetq-core-2.2.11.Final.jar"/> <resource-root path="hornetq-jms-2.2.11.Final.jar"/> </resources> <dependencies> <module name="javax.api"/> <module name="javax.jms.api"/> <module name="javax.resource.api"/> <module name="org.jboss.jts"/> <module name="org.jboss.netty"/> </dependencies> </module>
  • 25. User Deployments • Deployments are also modules (.ear, .war, etc.) deployment.foo.ear deployment.foo.ear.bar.war deployment.foo.ear.bar.jar • Cannot access server implementation details, unless explicitly specified META-INF/MANIFEST.MF Dependencies: org.javassist, org.apache.velocity
  • 26. Implicit Module Dependencies Setup by the appserver/deployers automatically, e.g. META-INF/ejb-jar.xml, @Stateless, @Stateful, @MessageDriven  import javaee.api module @PersistenceUnit, @PersistenceContext, <persistence-unit-ref>, <persistence-context-ref>  import javaee.api module  import org.jboss.as.jpa module  import org.hibernate module  import org.javaassist module
  • 27. Management* *Keeping Administrators Happy
  • 28. Two Operational Modes Standalone •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
  • 29. Domain Mode Physical Topology
  • 30. Filesystem Layout jboss-7.1.x bin standalone.conf standalone.sh domain.sh jboss-admin.sh bundles modules standalone configuration standalone.xml deployments logs data Standalone Mode Domain Mode Command Line Interface Standalone Mode JVM Parameters OSGi Bundles Standalone Unified Configuration File System Deployment Internal Data (includes repository) Static JBoss Module Definitions
  • 31. Filesystem Layout (cont) jboss-7.1.x domain configuration standalone.xml host.xml servers server-one logs data server-two logs data Domain Wide Unified Configuration Server “One” JVM instance data Host Controller Configuration Server “Two” JVM instance data
  • 32. 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.jb oss.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>
  • 33. Management APIs • Command Line Interface (CLI) • Remote Java API • HTTP/JSON API • GWT-based console • JMX mapping
  • 34. 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)
  • 35. Tx configuration snippet from standalone.xml ... <subsystem xmlns="urn:jboss:domain:transactions:1.1"> <core-environment> <process-id> <uuid/> </process-id> </core-environment> <recovery-environment socket-binding="txn- recovery-environment" status-socket-binding="txn- status-manager"/> <coordinator-environment default-timeout="300"/> </subsystem> ...
  • 36. …maps to Domain Model ... "transactions" : { "default-timeout" : 300, "enable-statistics" : false, "enable-tsm-status" : false, "jts" : false, "node-identifier" : "1", "object-store-path" : "tx-object-store", "object-store-relative-to" : "jboss.server.data.dir", "path" : "var", "process-id-socket-max-ports" : 10, "process-id-uuid" : true, "recovery-listener" : false, "relative-to" : "jboss.server.data.dir", "socket-binding" : "txn-recovery-environment", "status-socket-binding" : "txn-status-manager" },
  • 37. http://wildscribe.github.io/JBoss AS7/7.1.1/subsystem/logging/index.html
  • 38. Components* *First Class Only!
  • 39. JBoss AS 7.1 Final • 2 certified profiles (+ha variants +domain mode) • Web++ (EE6 Web Profile + JCA + JAX-RS + JAX-WS + Javamail + Remote Connectivity) • Full Java EE6 • Server Secured, by default • Enhanced management capabilities • Enhanced Remote connectivity (+distributed tx) • Better Clustering support, web and EJB replication, (+experimental CDI replication)
  • 40. The “Rename”
  • 41. • JBoss Application Server (the project) • JBoss Company (jboss.com) • JBoss Community (jboss.org) • JBoss Projects (e.g. JBoss Cache) • JBoss Product Line (EAP, SOA-P, etc.) JBoss Name Overload
  • 42. Renamed Projects • JBoss Cache → Infinispan • JBoss Messaging → HornetQ • JBoss Transactions (Arjuna) → Narayana • JBoss JCA → IronJacamar • JBoss ESB → SwitchYard • JBoss Portal + eXo→ GateIn • JBoss Security → PicketBox • …
  • 43. JBoss AS Rename Timeline • Oct/2012 – Rename Announced • Name submission deadline Oct/14th • Nov/2012 – Candidate Names & voting start (Devoxx ‘12) • BaseJump, WildFly, jBeret, Petasos, Jocron • Apr/2013 – New name announced (JUDCon ‘13 Brazil)
  • 44. V8 Update
  • 45. WildFly 8 Goals • Java EE7 • Single Instance Patching • Role Based Access Control (RBAC) • New Web Container (Undertow) • Runtime Performance Improvements
  • 46. Java EE7 Support • JIRA Tracker • https://issues.jboss.org/browse/WFLY-469 • 31 out of 33 EE7 updates complete • Pending • JSR-353 Batch Application API support • JSR-196 Auth. API for Containers (JASPIC 1.1) support
  • 47. EE7 Highlights – New Technologies JSR-352 Batch Applications for the Java Platform •Runtime & Artifact API, XML-based Job specification lang. JSR-236 Concurrency Utilities for JavaEE •Executor, Scheduled Executor, Thread Factory, Context JSR-353 Java API for JSON Processing (JSON-P) •Parse, transform and query JSON data JSR-356 Web Sockets support •Annotation driven endpoints and lifecycle callbacks
  • 48. EE7 Highlights – Spec. Updates JSR-345 EJB 3.2, plus Interceptors 1.2, Annotations 1.2 •Misc. improvements JSR-340 Servlet 3.1 •Non-blocking I/O, HTTP upgrade, etc. JSR-342 JMS 2.0 •Shared topic subs, delayed delivery, async send, etc. JSR-344 JSF 2.2 •HTML 5, FaceFlows, Stateless Views, Resource lib contracts JSR-322 JCA 1.7 •Activation name for msg endpoints (WTF?)
  • 49. EE7 Highlights – Optional Technologies Removed in WildFly 8 •EJB 2.1 Entity Beans (CMP/BMP) •JAX-RPC (API for XML-based RPC) •JAXR (API for XML Registries) •JSR-88 (Deployment API)
  • 50. Single Instance Patching – Work in Progress • WildFly/EAP is used on its own or as the base for other projects/products (e.g. SwitchYard/SOA-P) • Patching allows updating of libraries and configuration files in an installation (a.k.a. identity) • Patches come in the form of .zip bundles containing updates and metadata. • Multiple one-off patches can be applied but are invalidated by the next point/CP release. • Rollbacks are possible.
  • 51. Administrative Access Control (RBAC) • Administrative users can be mapped to Roles • Role = set of Permissions • Permission: • Action (access, read/write config, read/write runtime) • Set of Constraints (target) • Sensitive resource type, attribute or operation • Sensitive data • Audit Resource • Application Resource
  • 52. Roles Monitor – reads non sensitive configuration and state Operator – Monitor + start/stop server & queues Maintainer – Operator + deploy Apps & Queues Deployer – Maintainer + config Apps Administrator – Maintainer + system config - audit logging Auditor – Monitor + audit logging config SuperUser - Everything
  • 53. Administrative Audit Logging • Logging of connection / authentication events • Logging of management operations • Log Message as JSON Records • Audit Logging Handlers • Local file • Syslog (UDP / TCP / TLS)
  • 54. New WebServer - Undertow • Blocking / non-blocking NIO based APIs • Composition/handler based architecture • Lightweight & fully embeddable • Supports Servlet 3.1 & HTTP upgrade
  • 55. Simple non-blocking handler Undertow server = Undertow.builder() .addListener(8080, "localhost") .setHandler(new HttpHandler() { @Override public void handleRequest(final HttpServerExchange exchange) throws Exception { exchange.getResponseHeaders() .put(Headers.CONTENT_TYPE,"text/plain"); exchange.getResponseSender().send("Hello World"); } }).build(); server.start();
  • 56. Alpha1 – May/2013 Alpha2 – June/2013 Alpha3 – July/2013 Alpha4 – Aug/2013 Beta1 – Sep/2013  We are Here • Feature Complete CR1 – Oct/2013 • TCK 100% Final – Nov/2013 • Yuppie! WildFly V8 – Release Roadmap
  • 57. JBoss EAP* *Professional Support from Professionals!
  • 58. The Community JBoss AS (now WildFly) vs. the Enterprise Application Platform (EAP) • Community Project (WildFly) - What used to be JBoss AS - 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.
  • 59. JBoss AS/WildFly vs JBoss EAP
  • 60. 6.0.0 – Jun/2012 6.0.1 – Dec/2012 6.1.0 – May/2013 6.1.1 – Sep/2013  We are Here 6.2.0 – Q1/2014 Alternate between Minor & Micro releases every 3-4 months EAP 6 – Release Roadmap
  • 61. Merci!
  • 62. dimitris@redhat.com dandreadis.blogspot.com

×