Monday, October 11, 2010

JUDCon on reflection

So, here we are three days after the event that was JUDCon Berlin. And what an event it was!

For myself, I attended some extremely interesting presentations on RHQ, Wise, Infinispan, a whole host of cloud related ones (including an impromptu BoxGrinder one), HornetQ and more.

As is usual for a JUDCon, the quality of the presenters was very high. I have to give particular kudos to the community presenters who were (at least in every talk that I attended) very interesting and able to give some quite unique perspectives.

Thanks to everyone who attended my BlackTie presentation, the slides are due to be uploaded to the JUDCon Berlin page soon.


Friday, September 24, 2010

BlackTie 2.0.0.Final Released!

The team is very proud to announce the availability of BlackTie 2! It has been almost a year since version 1 and things have certainly moved on considerably since then. The major features we have provided in this release are:
1. Full XATMI compatibility
2. Full TX compatibility
3. Administration with RHQ
4. Support for true asynchronous service invocation
5. Full suite of examples
6. Fully tested (coverage, leaks, compliance)
7. Simplified configuration

I would like to thank all the team for their considerable effort in getting this released and to everyone who provided feedback on our blog and forum.

Of course, we wont be resting on our laurels and work is already underway on version 3, which will provide the following major pieces of functionality:
1. XATMI wire protocol interoperability
2. An XML buffer format to assist users migrating from other XATMI implementations

If you are interested in getting started with BlackTie, take a look at our 2 minute quickstart or head straight to the download page and you will be ready to go!


Thursday, September 23, 2010

JUDCon Abstract: Migrating to JBoss from Oracle Tuxedo using the BlackTie project

Hi guys,

Here is a reprint of the abstract to my presentation on the 7th October at JUDCon Berlin:

"The presentation takes a look at the overall steps that a user would need to take in order to migrate their applications from Oracle Tuxedo to JBoss AS using the newly released BlackTie 2 project. It will discuss some of the difficulties involved and walk through examples of how these may be addressed using BlackTie today and some of the features that are being worked on for BlacktTie 3. A comparison of the features offered by Tuxedo and those provided by JBoss AS with BlackTie will also be provided."

To find out what others will be speaking about, take a look at the agenda.


BlackTie returns to JUDCon this October!

We just received great news that BlackTie will be presenting at JUDCon Berlin on the 7th October! We are going to be discussing how to go about migrating from another XATMI implementation to BlackTie and JBoss, so it should prove to be a useful introduction for those about to take the plunge and upgrade to JBoss.

We will also be making using of the 2.0.0.Final version of BlackTie for this presentation - a little hint to another blog post I will be making over the next few days ;)

I am really looking forward to seeing some of you there on the Thursday!


Friday, September 10, 2010

BlackTie 2.0.0.CR2 released!

Hello BlackTie fans,

Well, its a Friday so that must mean its time to serve you up the latest CR of BlackTie!

We havent had to alter too much for this release so if you have been using CR1 there isn't much changed beyond a slight re-organization of the extracted distribution, plus we have the Jars in the maven repo this time

As always you can download the release from:

Thanks to all our avid followers for downloading it!


Tuesday, August 31, 2010

BlackTie CR1 Released!

Hi guys,

For those of you who don't monitor our forums over on ( then you may have missed the news that on Friday we released CR1 of BlackTie 2!

This release has been refined to XATMI perfection and is available for download from the usual place:

For anyone who is interested, we would certainly love to hear back from you after you kick the tyres of this release either here, on the forum or over in Jira (

Stay tuned for more updates on the GA release coming soon....


Friday, July 30, 2010

RHQ administration video added to the BlackTie Vimeo channel


If you haven't checked out our Vimeo channel yet ( now is a great time to do so. Alongside videos of how to build and deploy the project we have just uploaded our latest exposé on you can administer the BlackTie domain using our RHQ plugin.


BlackTie Graphical Administration from Tom Jenkinson on Vimeo.

Wednesday, July 7, 2010

Watch BlackTie content on Vimeo


Just to let you know that we now have a Vimeo channel for all BlackTie related content for you to watch!

You can access this from the following url:

Hope you like it,

PS If anyone knows how to make a channel URL more legible (e.g., please comment so I can do this!

Tuesday, July 6, 2010

BlackTie@JUDCon the debrief

Hi guys,

We just wanted to say a big thankyou to the hosts and organizers of the JUDCon event in Boston late last month. It was an incredible opportunity to meet with fellow community members and to discuss a variety of subjects.

For those who were unable to attend or who would just like to see the slides again, you can download all the JUDCon presentations here:

The BlackTie presentation has also been uploaded to Vimeo, you can check out the (hour long!) session here: Or just skip to the demo at 27:50

Hope you like the content!

PS Thanks for the five-star feedback from those who attended :D

Friday, June 11, 2010

BlackTie 2.0.0.M4 Released

Hello BlackTie fans,

We are very excited to let you know that we have now finished QA on the latest release and its uploaded and available from here:

In terms of what's new with the release, well if you take a look at you can see the full list, but we basically tightened up some of the XATMI behaviour, added a few new administration capabilities and some more documentation to our wiki.

One of the cool things that we have done is finally managed to get our artifacts into the maven repository hosted at

If you are developing pure Java XATMI applications this will be especially interesting for you as you shouldn't actually need to download the whole distribution and can just configure your maven settings and update your poms to reference the new version - however, you would need to download and deploy the latest blacktie admin services from here. You'll also need an updated btconfig.xml from here.

Actually, that does lead me onto another change with this release, we are now packaging the admin services as a real EAR, rather than the Jar, so the file that you deploy to JBOSS_HOME/server/all/deploy is slightly different - this is all explained here.

Hope that you enjoy the release!


PS - Just over one week to JUDCon...

Tuesday, June 8, 2010

Chatting to BlackTie developers on IRC

Dear BlackTie fans,

If you're only subscribed to the BlackTie blog RSS feed or monitoring our forum, you're missing out on the most direct way to get involved in our community. If you have some questions about BlackTie that you want to ask us without posting on the forum - such as, how can I contribute ;) - then feel free to follow these instructions:

You can either use the great freenode web interface ( so you don't need to install anything, or, you can choose a client and configure it to connect to (check out for an ample list). If you are using a client, you'll probably want to register your nickname (and a backup nickname, usually your main nickname with a "_" attached to the end). See for information on how (and why!) to do so.

There are tonnes of JBoss IRC channels on freenode, but the one that the BlackTie team is always on is: #blacktie

Hope to "see" you online soon!


PS Thanks to DML for some of the template content for this post :)

Wednesday, June 2, 2010

Building Quality Software

Hi Guys,

Todays blog entry will focus on showing you why you can trust the code that we are developing on BlackTie to be of the high quality that you expect from JBoss projects.

To start us off, here's how you benefit in terms of the way we develop the project:
  • Continuous Integration - Provided by hudson, builds run regularly throughout the day on non-developer hardware
  • Unit Tests - Provided by both cppunit and Junit, we have an exhaustative set of unit tests across both Java and C testing every aspect of the XATMI API, ran during every build
  • Code Coverage Testing - Provided by emma and run on our Java code during the regular builds, this ensures we keep track of the coverage of the code based during testing
  • Memory Leak and Error Detection - Provided by valgrind and run on all of our C code during each test run, this ensures we are fully aware of any memory issues that may arise.
  • Transparent Agile Change Control - Our Jira instance can be accessed by anyone and bugs can be enterred and voted for so you can see just what is coming in any release
  • Clear Version Control - Our fisheye and subversion repositories are again easy to access
At runtime, you benefit from the fact that all our code has been structured to take advantage of:
  • Logging - We employ the fine grained and configurable logging frameworks of log4j and log4cxx, allowing the deployer access to detailed debug information in case of error
  • Re-use of 3rd party best of breed software - BlackTie is an adapter framework integrating with well understood and documented frameworks such as the number one Java application server, JBoss AS. As a thin layer it collates these technologies into something much greater than the sum of its parts
  • Modular Maven Project Structure - All our code is loosely coupled and our usage of Maven ensures that even in the C libraries, our code is highly modular and open for re-use in using the standard Maven dependency mechanism. This also helps to prevent cyclic dependencies in our codebase.
  • Portability - We use the ACE and APR frameworks to abstract the operating system ensuring that we never need to code directly against operating system header files in our C or C++ classes/routines.
  • Maven Plugin for C++ - We have developed our own C/C++ plugin for maven ensuring consistent and clear execution of the compiler.
Now, the final and perhaps most significant feature of our project that ensures the project is of the very highest quality is the fact that we are truly an open source project which means that not only are we able to foster input from the best in the industry, we also have the most stringent eyes in the world checking our work - yours! You are clearly able to see and the results and contribute to our design, code and tests for BlackTie.

Hopefully this entry has helped to explain some of the advantages in build quality that BlackTie has over other XATMI implementations, we will follow up in the future either here or on the wiki with more details of each of the aspects involved. If there is anything in particular you would like explaining in more detail, please comment here on on our forum.

All the best,
The BlackTie Team

Tuesday, June 1, 2010

Arriving Earlier: Asynchronous XATMI

A benefit of our utilising our underlying stomp and JMS transport is that our service invocations have always been loosely coupled and asynchronous.

One way we are going to be emphasizing this in M4 is to allow the underlying queues to be always available (as long as JBoss is alive) even if the XATMI server is taken down for maintenance or similar. You can monitor our progress here.

For services of this type, no code changes are required, but as tpacall acts just like a distributed enqueue operation, it is advisable to use tpacall/tpgetrply to allow your code the maximum flexibility.

Coming Soon: Pubsub model for XATMI programming

A new feature that we are working on that we are very excited about is the addition of the pubsub communication model for XATMI services. You can track our work on this here.

What this will mean is that user code will be able to send a single notification to multiple services using the standard XATMI API.

For example:

"ServiceA" is advertised on Server 1
"ServiceA" is also advertised on Server 2

When the client sends the request to "ServiceA", this would typically be handled by a single instance of the service, however, if, ServiceA is configured with a type="topic" attribute in the servers btconfig.xml, that same message would be received by all instances! An example of where this is useful would be for event notification such as for stock ticker symbols or more trivially/importantly (depending on your point of view), a chat room.

Significantly, this will all be achieved using the standard XATMI API with the only caveat being that all requests are sent with the tpacall method and TPNOREPLY set as the client cannot receive multiple responses to the same invocation.

This issue is currently scheduled in for M1 of the 3.0.0 release so please do comment on the Jira or in our forums if you have any further suggestions for us in this area...

Thursday, May 27, 2010

BlackTie@JUDCon 2010

Hi guys,

Just a reminder that we will be presenting on the AS6 track at the free JUDCon this year, June 21st.

Our presentation will be focussed on the integration opportunities available by adopting BlackTie. For example, we will present a tutorial on how to integrate C based clients into an existing webapp deployed on JBoss and how to use RHQ for the consistent management and monitoring of the entire application.

Anyway, this was just a brief reminder in case you still needed to register.

More details on the presentation to follow....

Developer Insight 1: Integrating C clients with EJBs


A little known feature of BlackTie is that it provides the developer with the ability to easily integrate C/C++ based clients or VB based applications with JBoss.

Essentially, the client is able to utilise a standard API (XATMI) to asynchronously invoke services deployed in the application server. The fist service invoked in the application server must be a user-defined XATMI service (a specialised standard MDB), after this however EJBs may be invoked from there as normal.

We intend to explain a few of these examples in our wiki and on the blog, but here are a few examples to get started with:

1. There already exists a Java back office application deployed onto JBoss and an existing VB application currently running in isolation, perhaps submitting jobs via ftp as a batch overnight. Here the VB application can load our dlls and invoke the application via the XATMI service intermediary.

2. Currently an application is deployed entirely using the C API XATMI of an alternative vendor such as Tuxedo. As the business evolves, it is determined that a migration to Java for the backend systems would be a more suitable match however the client terminals that currently submit jobs for service do not have a JVM available. BlackTie is an ideal replacement here as the terminal clients would ideally just need relinking against the BlackTie libraries, while the backend can be developed in Java at will.

As I mentioned earlier, we will be providing more examples of this hopefully over the coming weeks...

All the best,

Coming soon! BlackTie 2.0.0.M4

Hi All,

We just wanted to announce that M4 is due to release on the 14th June. This release is intended to be the penultimate release in the 2-zero timeframe and after a short release cycle we hope to release the GA version around JUDCon with further work on the wiki.

In this release we have made a few tweaks to the API where we noticed some inconsistencies between the XATMI specification and our interpretation of it.

We have also added a few more administration GUI capabilities, such as the ability to monitor your services to see the frequency of the failure and error conditions to spot badly-behaved software.

Alongside this we have resolved a couple of other bugs and features in Jira:

Moving forward with version 3, this is where we look to introduce interoperability with other XATMI implementations such as Tuxedo. If anyone is interested in helping us with this endeavour, please get in touch!

All the best,

Thursday, April 1, 2010

BlackTie 2.0.0.M3 Released

Greeting BlackTie-fans,

It is with great pleasure that the team can formally announce the availability of the BlackTie 2.0.0.M3 release of the project. This release has focussed primarily on usability aids such as:

  1. The new btadmin command line tool

  2. Renaming Environment.xml files to btconfig.xml to make them more recognisable when deployed in JBoss

  3. More metrics added to our administration gui

  4. Supports reconnect to the application server if the application server is killed

  5. Allows security configuration to be specified at the service level

As always, you can check the full release notes here.

Definitely one of the coolest features we added is the btadmin command line tool. Although the article is a placeholder at the moment you can check out the documentation here.

If you are new to the project you may want to head to our quickstart guide on deploying blacktie in under 2 minutes. Within that two minutes you should also have been able to run all the samples!

Hope you enjoy this release, any problems please feel free to comment on our forums:


Tuesday, March 16, 2010

Discover BlackTie at the first JUDCon


Just wanted to let you know we are really excited to be able to host a discussion at the first JUDCon event.

It will be your opportunity to meet some of the team plus to see hands on how BlackTie can be used to help with integration between Java and C and how you can benefit from some of JBoss core services such as the message broker and transaction manager within your XATMI applications.

One of the really great things about JUDCon is that it will be free to register so you can discover all this at no cost!

If you want to find out more about what is happening on the day, you can check out the schedule. If you ctrl-F for "Blacktie" you can see a preview of what we will be talking about from the BlackTie perspective.

Hope to see you there!

Monday, March 8, 2010

Deployed and running in under 2 minutes...

Greetings BlackTie fans,

We just wanted to let you know one of the projects main focus at the moment is to work on ease of use and managements. To that end we have reworked our Deploying BlackTie article over on the wiki with a challenge of sorts :D

The idea is that given a suitable baseline machine (say Fedora or Windows) and a few pre-requisites (Java, Maven and Ant, nothing too adventurous) then it should be possible to get BlackTie installed and running in only two minutes. When we say running, we mean having ran all the example programs too!

How is this possible you might ask? Have we removed most of the examples? No! What we have done is provided a small script that will automatically run all of the samples that we ship! Call it an aide memoire of sorts so you don't need to recall and type all of the build commands from the off.

Hope it is of help to you all!

Wednesday, February 3, 2010

BlackTie 2.0 MR2 Released!

Greetings BlackTie fans,

As I am sure you will know, it is that time again when we release the latest and greatest version of BlackTie!

This time we focussed on the following:
1. Adding support for IBM DB2
2. Increasing the monitoring statistics available to BlackTie administrators
3. Altering the build to allow the native artifacts to be separated by a platform/architecture classifier.
4. Upgrading to the latest release of ACE and log4cxx

Another couple of more minor changes we have made are to; include the libstomp source code into atmibroker-hybrid so that we can add some more debug to it - hopefully we will put back these changes in the future, add the maven repository so no need to import the jboss dependencies by hand, plus, we have had to make another slight change to one of the apr headers for compatibility with ACE+TAO.

These changes mean:
1. Its definitely going to be best to build from clean (mvn clean)
2. You now need to use a platform-architecture qualifier (-Dbpa=...) when building any of the C/C++ modules (see the build notes for more details:
3. You will need to download the latest version of log4cxx, and ACE as per the build instructions
4. You will need to edit apr.h as specified in the build instructions
5. You will need to reimport the third party dependencies

If you don't mind rebuilding everything from scratch, I would suggest that you remove your ~/.m2 folders before importing the new third party dependencies and building BlackTie.

In terms of the remaining features for 2.0, these are still focussed around enhancing our administrative capabilities (including reconnect code for the XATMI application servers and clients). You can check our progress at the following link: (login required)

Here's the usual link to download the release:

The release notes are at:

As always, if you have any questions about the release or BlackTie in general, please feel free to ask them over in our forum on

All the best,