JBoss EAP 7 Beta – Open Source Pioneer

There are a few Open Source technologies and products that have spearheaded the drive of Open Source  into the enterprise and managed to overcome historical objections  – Linux, Apache Web Server, MySQL, Postgres, WordPress, Hadoop, to name some of the better known technologies. Those technologies paved the way for the open source revolution of the last decade; every enterprise vendor and every organization has adopted open source to some degree. Open Source has won; get over it.

I think Red Hat’s JBoss EAP  (upstream WildFly , previously JBoss AS) is one of those pioneering technologies. It’s hasn’t merely broken through into the enterprise but broken into a strategically important segment that was previously dominated by tech. giants such as Oracle and IBM. It was a segment serviced by Mainframes, Transaction Processing Monitors, Object Request Brokers and highly proprietary 4GLs. As a side note – those same companies are still peddling proprietary products and technologies to solve those same problems.

Building on the early success of Java SE, Java EE was introduced back in 1999 as a collaboration between Sun Microsystems, Oracle and IBM. It was designed as an Open Standard platform for creating complex business applications. At the time, the unlikely collaborators all had a common enemy – Microsoft  – who had spent the last 15 years dominating the desktop with their brand of proprietary technology and were starting to make inroads into the data center. How times have changed.

The excitement around Java, the Open collaboration (through the JCP) and the large ecosystem of vendors supporting the standard helped Java EE dislodge previous generations of technology and contained Microsoft’s advances (.NET and it’s precursor DCOM) on it’s own Microsoft only island.

For the last fifteen years, Java EE has been  technology of choice for enterprises building scalable, reliable, sophisticated, typically business-critical applications and services. It’s proven to be one of the most important and long-lasting computing standards in our industry’s history – it’s hard (and a little painful) to imagine where we would be without it.

JBoss EAP (even before the Red Hat acquisition) was a market leader (as defined by industry analysts such as Gartner) and even today has continued its leadership position into new segments. It has lead many of the trends such as the original highly modular micro-kernel design (EAP 4 & 5), cloud-deployment, extensible module system, programmable management APIs, and first-class support for modern development tools like Maven and Git (EAP 6). That focus on bleeding-edge design has ensured that  JBoss EAP has always been ready to adapt to new architectures, deployment models and development practices. That is no less true today than it was ten years ago.

Today, IT organizations face many challenges – not least is the expectation that they can maintain large complex, intertwined application portfolios yet operate with the speed, efficiency and agility of web companies like Amazon, Netflix and Google. Unfortunately, few companies have the luxury of abandoning their existing applications to rewrite them as cloud-native micro-services using the latest functional, reactive framework.

I interact with enterprise customers on a regular basis and well understand the investment they’ve made in their Java EE applications and know well that those applications will be in active development and delivering value for years and decades to come. The owners of those applications – whether they are running on JBoss, Websphere or WebLogic need to know that their investment is safe yet they are able to adopt contemporary software delivery practices and new architectures.

Even as we achieve another major milestone in this product’s history (with the EAP 7 Beta) – we’re already looking ahead to understand how Enterprise Java will need to evolve to take advantages of the latest advances in cloud computing and enterprise architecture. But we do so without losing sight of the huge investment customers have made in Java EE to date. We’re pretty excited about the prospects of Java EE 8 but at the same time already experimenting with new ideas in projects like WildFly Swarm and vert.x. Customers want to embrace future advances in technology but have to be able to get the most from their application investment.

 

 

Fear Uncertainty and Cluelessness

I’m generally impressed with the quality of our competitors FUD and anti-JBoss marketing. Our competitors may not be super-smart but they generally make up for it in raw man-power (or girl power) and can usually produce reasonably well researched; well articulated arguments. But this latest piece from Oracle is way, way below their usual standards. It contains a multitude of blatantly incorrect statements – most seemingly not through malice but more likely through pure ignorance and laziness.

The only conclusion I was able to draw from the blog post (and it’s not easy to draw any conculsion) is that Oracle answer to pretty much anything is “we can make anything better with Engineered Systems”. If that’s Oracle strategy then they probably need to salvage the hardware business they’ve managed to run into the ground.

By and large, the blog post is of such poor quality that it barely deserves a response but Shane produced one anyway – I guess it presents such an easy opportunity to make Oracle look clueless.

Come on Oracle – get your act together !

EASE INTO THE CLOUD : Red Hat Virtual Event

RH_EAP6_banner_468x60_9405757_0512_it.png

Join our online virtual event next Wednesday (June 20th) at 11am ET and hear us talk about some exciting new JBoss products – JBoss EAP 6 and JBoss Data Grid. We have separate developer and operations tracks with speakers from the product teams and customers ready to share their experience of these exciting new technologies. Sign up for free here.

The death of bloated, heavyweight, monolothic enterprise Java …

… and the rise of the lightweight, agile, dynamic, modular Enterprise Java.

Java EE has long had the perception of being slow, bloated and monolithic. While the Java EE specification doesn’t prescribe a lightweight, modular implementation; neither does it preclude one. So the negative perception of Java EE is more to do with certain implementations than the standard itself. The two dominant commercial vendors of (Oracle and IBM) have, over the last 10 years, done a lot to re-enforce the perception that Java EE has to be complex, bloated and expensive. While at JBoss we’ve been pushing in a different direction for many years. Each of the last major release of JBoss AS has incrementally pushed modularity closer to an ideal where you only pay for what you need (in memory, complexity, CPU).

junk in the trunkPhoto Credit : “Junk in The Trunk”, zappowbang (CC, some rights reserved)

The latest version (JBoss AS 7) – which is also the underlying technology for Red Hat’s commercially supported product (JBoss EAP 6) has pushed the lightweight theme as far as to completely erode the difference between lightweight web containers (like Tomcat) and “heavyweight EE servers”. As far back as 2008 (through the advances in mobile devices and JBoss miniaturization) it’s been possible to run a full Java EE server on something as small as a smartphone; last year at Red Hat summit we ran the entire JBoss keynote demo (starts about 35min) on a cluster of cheap plug-top computers (far less powerful than today’s smartphone).

So it’s great to see IBM following our lead and pulling their own miniaturization stunt – Websphere running on a Rasberry Pi – very cool. Great to see IBM joining us to help change the perception of Java EE.

JBoss EAP 6 BETA Q&A

Here follows answers to the the majority of the questions we had during the BETA webinars last week. I’ll add the remaining answers in he next few days. There were lots of questions so I’ve grouped them into categories – if you have additional questions or require more clarity, please leave a comment.

Note any mentions of specific features, component versions and dates in these answer are subject to change.

I’ll post the results of the EE 6 Poll in a separate post.

Finally some links referenced in the Webinars for you convenience :

The Webinar replay (will be available in a week or so)

Red Hat’s PaaS – OpenShift

EAP 6 BETA Download

EAP 6 BETA Documentation

The Q&A

Developer Tools

Q: the current JBDS 5 beta does not include EAP 6, when will it include EAP 6?

A: A brief time after EAP6’s GA date – JBDS will GA prior to EAP6 GA – so post EAP6 GA will be the first time for us to get them sync’d up. Between now and then, simply download both, it is easy to add EAP6 to JBDS5.

Q: Will Zip file with Maven artifacts be provided in EAP 6 distribution or it will be a separate deliverable?

A: It’s a separate download on the Support Portal.

Cloud

Q: does the openshift flex support postgresql database?

A: yes it does.

Migration

Q: What about the migration from EAP 5 to EAP 6, is it transparent, or is it different?

A. There are definitely some major differences in configuration and management but applications should be largely portable from EAP 4 / 5 to EAP 6. We have created a migration guide and we also offer migration services.

Q: Would you please spend a few word regarding the migration path for Seam applications that currently target the EAP 5 release?

A: We have documentation for how to make Seam 2.2 applications run on EAP6. Furthermore, we will be delivering Seam 2.3 which will maintain the Seam 2.2 programming model but allow you to take advantage of JSF2.

Q: Being already partners, is there a path or redhat offer to help poc’ing the migration from EAP 5 to EAP 6 ? Thanks

A: Red Hat Consulting have a full set of migration services.

General

Q: will you publish the questions/answers ?

A: Yes.

Q: When EAP 6 GA will be available?

A : Subject to the outcome of the BETA, performance and quality – we plan to release within the next 4 months.

Q: You said you wanted to make sure you don’t do a vendor lock in, but how do you make sure that other vendors won’t lock you in?

A: Avoid proprietary technologies (languages, frameworks, tools) that are only available from a single vendor. Choose open standards and open source. Ask yourself this question about your technology stack – if the (single source) vendor goes out of business or pushes their prices up significantly what is your contingency plan ?

Q: Any idea when the beta’s will become stable?

A: EAP 6 GA is planned within the next 4 months but we may distribute a second BETA release before that.

Q: Will the support Lifecycle of Jboss EAP 4.3 be extended because of the late release of Jboss EAP 6?

A : We have a an extended lifecyle program for EAP – contact your local Red Hat representative for more details.

Q: Pros-Cons Domain Architecture versus standalone Architecture : will you better support the first mode ?

A : They will both be fully supported. Domain mode if you want to run multiple instances for HA or scale-out and don’t have other management tools. Standalone mode if you’re developing or don’t want our management wiring to get in the way of other management tools you use or have developed.

Q: What are technical differences between EAP 6 and AS 7.1 ? ( management tools, fixes, deploy tools, etc ? )

A : At the point of the BETA the difference between AS 7.1.Final and EAP 6 BETA are pretty limited – some branding and some critical bug fixes. As we progress through the BETA and our testing we EAP 6 will start to diverge from the last available AS release and that divergence will continue as we start the maintenance stream for EAP 6. More information on our model here.

Q: when will the Jboss Training courses start covering EAP 6, most spefically, the JBoss Application Administration course (JB336)?

A: JB366 (JBoss EAP 6 Admin.) will be available at GA – in fact you’ll be ale to take the course at Red Hat Summit / JBoss World in June. We’re also developing a new core developer course for EAP 6 that will be available at GA.

Messaging

Q: Have you enable data replication to hornetQ in EAP 6

A: It’s being worked on upstream but not planned for EAP 6.0 GA. It is on the wish-list for EAP 6.1

Q: When will HornetQ implement AMQP?

A : There are no plans for HornetQ to implement AMQP. Red Hat has a separate messaging product (Red Hat Messaging) that does support AMQP – Red Hat Messaging can be used as an alternate JMS provider for EAP.


Core App Server

Q: Will EAP5 bootstrap be updated to be compatible with Java 7? Or do we need to upgrade to EAP6 in order move forward in Java?

A : The plan is to certify EAP 5 with Java SE 7 after the GA release of EAP 6 – so within the next 3-6 months.

Q: Does EAP 6 contain tomcat 7.

A : EAP 6 embeds a modified version of Tomcat 6 with support for many Tomcat 7 features.

Q: When is EWS expected to uptake Tomcat 7 ?

A : JBoss EWS 2.0 will support Tomcat 7 and will be available later this year.

Q: Is there any EJB 2.1 support?

A: Yes but definitely in maintenance mode – you should consider moving to EJB 3.1

Q: Downloaded beta 1, can’t seem to find a way to “install it as a service” for Windows. Is this going to be introduced later?

A : The Windows Service Wrapper didn’t make the BETA – it will be in the GA and in BETA 2 (if we do one).

Clustering / Caching

Q: Why do not integrate The full Infinispan product in EAP 6 (not only for 2nd level cache or session replication)?

A: A number of reasons. The cache instance used for Query caching and session replication is tuned for a specific use-case, enabling it for general purpose use would likely impact both session replication and query caching. We have decided to offer a separate product (JBoss Data Grid) that is specifically for use a a general purpose, in-memory key value store. It can be run in embedded mode and also standalone and satisfies a broader range of deployment topologies and designs.

Q: Is JBoss Data Grid announced for end-March derived from Infinispan project ? Or any other relation between them ?

A : Yes JBoss Data Grid is based on Infinispan.

Modules / Class-loading

Q: Can we replace class on demand on working instance, without redeploying?

A: Possibly. Not out of the box. You’d need something like JRebel or Stuart’s Fakereplace to make it work. And of course there are limits to what kinds of changes can be made with that sort of mechanism.

Q: Will you support to access a Java module inside of an EAR via JNLP?

A: Sounds like a cool idea, though you can probably do this already using simple servlets.

Q: Can we point to application classloader what jar version should it use when we have many version of the same jar?

A: It depends. If you have more than one version deployed as deployments, or your JARs are installed as modules (either with different names, or with the same names but different versions) then yes, you can choose which one to link to simply by using the right Class-Path or Dependency entry, or their jboss-deployment-structure.xml equivalents. We do not support more than one version of a JAR within the same EAR’s lib/ directory or within the same deployment, and each deployment can only refer to one version of a JAR. You can however have an EAR with two subdeployments in it, with each sub-deployment linking against a different version of the same JAR (as long as the conflicting dependencies are never brought into contact with each other).


Security

Q: What is the status of PicketLink in EAP6?

A : PicketLink is included and fully supported.

Q: Is there any internal API to confirm x.509 certificate validity.


We do not provide any internal API to perform the x509 validation. You can use the standard JDK Classes for that. Usage of X509 depends on the subsystem:

If you are using JSSE via the JDK, then you can install your own Trust Manager

For the Web subsystem, you can use CLIENT-CERT and use any of the x509 based login modules.

Management Questions

Q: Can the domain controller be started from the command-line interface (CLI) as well?

A: No – you have to start it manually (or run as a daemon / service)

Q: What kind of scripting tool will be available in EAP6 ? Can all the tasks can be performed via the scripting interface ?

A: JBoss CLI was cover in the BETA Webinar, there are some more details in the docs.

Q: Is JON 3 packaged with EAP6 then? or still separate?

A: All JBoss Enterprise Platforms have a managed option that include entitlement for JBoss ON; though the products have their own distribution / installation.

Q: Will EAP6.0 contain more streamlined patches/fixes and will there be a better way to apply patches instead of copying jar files at different locations ?

A : Local patching is scheduled for EAP 6.1

Q: Does EAP 6 CLI able to deploy a web app on many instances at once ?

A: Yes – the CLI is fully domain aware.

Q: Can we see/configure all application servers under domain controller from the admin console of “domain controller” ?

A : Yes there is a physical view of running instances within the domain.

Q: Where web console keeps our modification? Does it change the XML files or what?

A: Yes. Any config. modification made through the management APIs are persisted in the underlying confg. files.

Q: Would twiddle still be supported?

A: No – we no longer support Twiddle but you can use something like JConsole to get at the underlying JMX MBeans or use jboss-cli.

Q: Does jboss-cli compatible with previous Jboss EAP releases?

A: There was no equivalent to jboss-cli in previous release of JBoss EAP.

Q: Will Domain Controller introduce a single point of failure (either at runtime for applications or for management operations) ?

A: No it isn’t involved in application request flow. In fact it’s quite common to disable the management infrastructure in secure production environments. We chose not to encumber the Domain Controller with an overly complex HA design, when the simple solution is to re-start it if it fails – or run it as a daemon / service so it is auto-started.

Q: is it possible to use JON3 to make automated deployments of jboss applications?

A: Yes., more info. in the JBoss ON 3 Documntation.

Q: If we can change configuration of other instances remotly, can it be done in transactional way – I mean all of the node confirm the change, or none of them in case of some failure

By default, if you make an administrative change that affects multiple servers, the Domain Controller will apply it on all affected servers and will roll it back on all affected servers if it fails on any of them. This constraint can be relaxed when using the CLI by adding an additional header to the operation request that specifies a “rollout-plan”. Among other things, rollout plan can specify that a certain number or percentage of servers in a server group can fail to accept the change without triggering an overall rollback. (See “Operations with a Rollout Plan” on for some conceptual information about rollout plans.

JBoss EAP 6 BETA Webinar

ease-into-the-cloud.png

Join me next Wednesday 3/14 – I’ll be talking about how to get involved in the JBoss EAP 6 BETA program. World-wide-friendly times :

  • Wednesday, March 14, 2012 | 14:00 UTC / 9am (New York) / 2pm (Paris) / 6:30pm (Mumbai)
  • Wednesday, March 14, 2012 | 19:00 UTC / 2pm (New York) / 7pm (Paris) / 11:30am (Mumbai)
  • Thursday, March 15, 2012 | 01:00 UTC / 6:30am (Mumbai) / 9am (Singapore) / 12 noon (Sydney)

Sign-up for the free Webinar here.

With all the enthusiasm of cleaning up a dog turd …

… Heroku finally got around to supporting Java. But they couldn’t do it without first piling on some hate.

Why then, if Java is such a miserable platform to develop on would Heroku bother ?

Here are a couple of thoughts :

1. Huge Developer Base

201108261621.jpg

2. Massive Adoption

Screen Shot 2011-08-26 at 4.22.48 PM.png

3. Large, Active Ecosystem

Only Java gives developers such a broad range of tools, technologies and APIs – both commercial and open source. Only Java gives you Open Standard enterprisey features like Transactions, Object Persistence, Messaging, Security, Integration, scalability and high availability for when you need them.

Basically, most professional developers use Java (if they aren’t beholden to Microsoft that is) and they, to a degree, decide how to spend money on deployment and long-term care and feeding of applications. And Heroku, like any other company wants to make money.

But why would a professional Java developer choose Heroku given their very out of date and poorly informed opinion of Java ?

Surely – Red Hat’s OpenShift is a better choice ? Instead of whining about Java’s shortcomings over the years – Red Hat / JBoss has put a huge amount of energy in fixing Java’s shortcomings – and doing it in an open and collaborative way so the entire ecosystem can benefit. Red Hat has a deep understanding of Java technology and open collaboration – more than anyone else in the industry. OpenShift’s support for Java EE 6 is a recent example of this – we didn’t sit around complaining that Java EE didn’t fit with the new deployment paradigm that PaaS represents – we simply did what we had to do to make it work. And you can try it for free.

Finally, as Isaac makes clear, it’s time for the folks at Heroku to wise up about Java and maybe trade in their 2004 copy of “Beginning J2EE 1.4: From Novice to Professional” and have a look at some of the advancements in Enterprise Java over the last decade. Hey – Adam – leave a comment and I’ll buy you a new book 🙂

Rethinking Enterprise Java

JBoss AS 7 has been out for a week or so – probably not enough time for opinions to be formed but the feedback I’ve seen so far has been overwhelmingly positive. But that isn’t the subject of this post.

You probably didn’t see Red Hat’s press release as those things are typically only read by the press so I wanted to draw to you attention a single paragraph :

“JBoss Application Server 7 represents a major milestone in the evolution of Java application servers from complex and monolithic to more lightweight, modular and agile. This release will enable developers to re-think how they develop and deploy enterprise Java applications.”

I wrote that and I meant it. Over the last 5 years there has been a significant difference between the Java EE servers like JBoss, Weblogic and Websphere and Apache Tomcat. Tomcat has been the poster-child for the lightweight container movement (but we shouldn’t forget Jetty and Resin – both very capable servers) and has established itself as probably the most popular Java run-time.

But I think we’re at the point where there is no-longer a lightweight division between Java EE servers and Tomcat (and other Web Containers) – some good blog posts here and here that discuss typical developer requirements like startup time and deployment speed (make sure you read the comments). When we’re at the the point where we’re discussing sub-second differences between startup or deployment times then I think we have convergence. I think we’re at a point where you can no longer paint Java EE servers into the big, slow and heavy corner and Tomcat into the lean and fast corner.

Developers have more choice today than ever before – they can choose a lightweight container but no longer have to make a tradeoff between footprint and features. Or start with a basic server like Tomcat and incrementally build a full featured application server from the ground up as more features like caching, persistence, transactions, messaging, view layer are required.

OK before the Glassfish fanboys chime in – yes Glassfish did a great job of addressing light-weight needs for Java EE some time ago but by any available measure Glassfish still doesn’t represent a mainstream choice like Tomcat, JBoss, Weblogic or Websphere.

Not all free advice is good advice

Mike Gualtieri at Forrester has a rather sensationalist post with a rather sensationalist title “Stop Wasting Money On WebLogic, WebSphere, And JBoss Application Servers”. I agree with some of what Mike says and have been giving the same advice to developers, customer and users for at least the last decade. Specifically – choose the run-time that best suits your needs. If all you require is a Servlet container then Tomcat is very likely the way to go; very likely the least complexity you need. If your application has greater needs – Transaction coordination, caching, clustering, ORM / Persistence, messaging, a modern UI framework then you probably need to look at one of the commercial or open source Java EE Application Servers (Weblogic, Websphere, JBoss, Glassfish).

The mistake that people make (Mike included) is that vanilla Tomcat addresses the full spectrum of enterprise web / app platforms. It simply doesn’t. There is only a small class of applications that need nothing more than a servlet container. The vast majority of Tomcat deployments require a whole bunch of additional technology – the de-facto Tomcat stack is Tomcat + some view layer tech. (eg. Spring MVC) + some persistence / ORM (eg. Hibernate). That is the basis for the alternative to Java EE. Most people end up adding a lot more stuff than that and find themselves somewhat accidentally maintaining a full featured application server. I know of customers who have been very successful doing this; they’ve invested in very knowledgeable people to manage the stack; I’ve also seen customers fail or simply decide that they aren’t willing to become an app. server vendor.

Finally, full disclosure – I do work for one of the vendors Mike mentions – specifically Red Hat and we would be delighted to sell you a subscription to a full featured Java EE Application Server (and a broad range of middleware) but if you have chosen Tomcat – we can help you with that too – we provide a distribution of Tomcat and even certify and test other elements of the Tomcat stack like Hibernate and Spring. Or as most customers actually demand – we can help you with both.

JBoss AS 6 Released !

Screen shot 2011-01-05 at 10.12.59 PM.png

So after a fast sprint JBoss AS 6 was released at the end of the year and it passes the Java EE 6 (Web Profile) TCK. It’s great to see the culmination of efforts from fellow Red Hatters that went into this release. But Red Hat’s involvement in the future of Enteprise Java goes way beyond this release – many of the technologies delivered in AS 6 as part of Java EE 6 were driven through the JCP by people like Gavin King, Emmanuelle Bernard, Pete Muir and Jason Greene to name a few. Work on these specifications started several years ago so for some this has been anything but a sprint.

It’s great to see the release cadence of JBoss AS pick up – AS 6 had a number of milestone releases over the year’s development and I think this has gone down pretty well judging from the download rate (about 200k even before GA).

While AS 6 has been going through the last stages in the development and certification cycle, the next major release – AS 7 has already released an early alpha to demonstrate it’s “lean by default” services architecture – the feedback so far seems to be very positive.

You can read more about AS 6 from Stan, Gavin, Shelley, Jaikiran and Dimitris as well as J-Development,  InfoQ and NetworkWorld.