I was fortunate enough to be invited back to speak at JUDCon in Boston this year and once my talk was over get the chance to spend the week attending the rest of the conference. If you want to look at this slides and code then you can find the information here.
The Middlware Keynote was hosted by Craig Muzzila and Mark Little and the theme was "Open Hybrid Cloud", Redhat's buzzword for the future of middleware.
They took some time to explain the concept but it appears to be a meaningless collection of marketing terms to me. So we have public, private and on-site infrastructure, opensource projects and lots of languages... great, I think we all knew that anyway. Much of the focus here is on Redhat's participation in the OpenStack project and cloud in general was a key theme to the conference as a whole.
Redhat's pitch, and this was echoed in the main Keynote from Jim Whitehouse is that they are the best placed vendor to deliver and support this infrastructure. Closed projects and infrastructure from their competitors only offer lock-ins and a lack of innovation.
The remainder of the Middleware Keynote showcased an addition to the JBoss Developer Framework (JDF) Ticketmonster application, a mobile enabled auction site which the audience could bid for pop memorabilia. The interesting part was the technologies used - vert.x, camel, torquebox and immutant - and not a sniff of the application server and two community projects neither owned by Redhat!
The main keynote added another theme, "Connect" - this carried on from last years presentation where Jim Whitehouse emphasised the importance of collaboration with the community and how this and only this will deliver real innovation. Can't disagree, social coding, crowd sourcing, call it what you want, has completely changed the landscape for ever.
Jim also had the biggest screens and the coolest presentation, well he is the boss.
RHQ / JBoss Operations Network
Stephan Negrea and John Sanda presented the new Cassandra storage feature for metric data in the forthcoming RHQ 4.8 release. Existing RHQ users will be familiar with the automatic aggregation of metric data which reduces the granularity of historical information over time.
The new Cassandra storage is dedicated to hold only metric data and will allow for increased metric collection and throughput coupled with the retention of fine grained metrics over extended time periods. The existing Oracle or Postgres database storage is be retained for configuration only.
This was the first Redhat Summit since the acquisition of Fuse Source and as a result there were quite a few sessions focusing on the Fuse stack, ActiveMQ, CXF and Camel. James Strachan presented a number of sessions on the Fuse IDE and the graphical UI to build Camel routes or "rowts", this is the USA after all. We can expect to see this integrated into the JBoss Developer Studio in the near future.
I attended a power training session on the JBoss Application Server Command Line Interface, just to see if I could pick up some new tips. Like most of these sessions, the target audience is at the entry level to the technology, they are a good refresher but there is no substitute for testing it out yourself and experimenting. The CLI is a dramatic improvement on the non-existent capabilities in this area of previous JBoss releases but it still lacks the finesse of its competitors tooling in this domain, for example WebLogic's WLST.
Emmanuel Bernard gave a number of presentations on Hibernate, these were some of the few more technical sessions available this year. He covered areas such as Hibernate search including geolocation and faceted searching and built these into the JDF Ticket Monster application as part of a live demo.
GroupOn gave a presentation on a high-availability real-world HornetQ messaging infrastructure. Rather than using the built-in HornetQ clustering they are running all brokers in non-clustered mode with a bespoke layer 4 load-balancing architecture. This, we were told was for performance reasons and the presenter showed some benchmark metrics which indicated an approximate 100% improvement in throughput. GroupOn are intending to opensource this code available so it might be interesting to take a look at this if and when this happens.
This was a JUDCon session covering the basics of JBoss Enterpise Data Grid and explaining the difference in library (embedded) and client-server (hotrod, REST and memcached) implementations. As we have discussed on this blog in the past, at numerous workshops and our own talks the advantages of client-server architectures when dealing with large data sets represents the only viable solution. Unfortunately JDG does not provide all functionality in client-server mode, for example MapReduce, Events and Query are not available in client-server and this impacts what can be achieved in this area.
The speaker promised to enlighten us on how we might, for example run a MapReduce job in client server mode. Unfortunately there was no secret solution, in the example provided the client-server interaction was replaced with an EJB facade to handle the MapReduce requests, effectively meaning you ended up running JDG embedded in an EJB container.
The lack of complete out-of-the-box functionality in client-server mode impacts JDG's ability to compete with its competitors in this area. Hopefully the 6.x community releases of Infinispan will see this functionality delivered. You can track the progress in these areas here:
ISPN-1094 Map Reduce
Mark Proctor presented a number of Drools sessions and talked about the imminent release of Drools 6.0. Commonality between Drools and JBPM libraries has been refactored into a new "Knowledge is Everything" library or "Kie" for short. There is also a new workbench sitting above the old Guvnor console known as "Uberfire", this makes heavy use of the JBoss GWT Errai implementation and looks very impressive. The Apache Jackrabbit Content Repository has been replaced with a GIT repo and rulebase's now adopt a standardised maven versioning system.
Middleware Platforms for Application Development: A Product Comparison
Well I couldn't find anything I really wanted to see for this session so I plumped for this comparison of a selection of Redhat supported products vs "The Competion" for an unbiased view on the best of class middleware products in the Web Container, Application Server and Data Grid categories.
Unsurprisingly we were told that Redhat is cheaper in all the comparisons but also, and quite honestly that in some cases that this comes with perhaps less vendor specific add-on features when comparing, say EAP against WebLogic Enterprise Edition.
The JBoss Data Grid comparison against Oracle Coherence is available, like all the feature comparisons, at redhat.com, have a look here for this one. As I've already discussed some of the critical client-server functionality that Coherence provides is still to be implemented in JBoss Data Grid so you'll want to look closely at how you intend to architect and use any solution developed with the Redhat product to ensure everything you need is provided out of the box.
And of course if you're looking for a truly independent view on which vendor's product is right for your use-case then you should ask us!
A good, technical talk from Robert Davies covering message basics through to protocols, including MQTT, AMQP, STOMP. He wrapped up with a live demo using an Arduino device and attached microphone to send MQTT messages in response to noise into a A-MQ broker network using AQMP demonstrating the in-built capability of A-MQ to switch protocols transparently. The next Redhat A-MQ release will contain a new persistence provider based on the Google project LevelDB. Performance with this new implementation is much improved in comparison to the current default file system store, KahaDB. Redhat A-MQ comes bundled inside an Apache Karaf OSGI Container and contains core Camel functionality to permit routing between destinations within the broker.
Richard also presented some good use cases for distributed messaging systems including store and forward between remote destinations, something we see regularly during engagements with our customers. For example card payment devices in taxis, which might not always be connected to a message broker, store transaction information locally and forward when they are able to reconnect.
Cross Site Replication for JBoss Data Grid.
Another good technical talk this time from JGroups lead, Bela Ban. Bela ran through the configuration options for replicating Data Grid information over wide area networks between a variety of potential site topologies.
The talk also included a live demo where he simulated failure scenarios between 3 data centres in Boston, San Francisco and London; well actually the sites were all on laptops in the lecture theatre, so not that disparate after all.
There are going to be some enhancements in the next Data Grid release including parallel replication between sites. JBoss use an approach similar to the cross site replication mechanism used by Gemfire and this parallel approach to replication was also provided as part of the 7.x Gemfire release, see here for more information.