Archive for the ‘Uncategorized’ Category

ExtremeTransactions 3.6.1: JAX-WS Transactions Illustrated…

Tuesday, April 7th, 2009

We now have our 3.6.1 release of ExtremeTransactions ready and online. This release includes a new and working JAX-WS demo performing a distributed transaction (where the commit scope reaches across web service calls) as well as several bug fixes. This release also includes a new version of the core: TransactionsEssentials 3.5.4

Feel free to check it out, all feedback is welcome!

Transactions, SOA and Loose Coupling

Saturday, April 4th, 2009

Atomikos ExtremeTransactions supports web service transactions and also compensation-based TCC (Try-Confirm/Cancel) so your application/service is in control of what rollback or commit means.

According to more than one analyst we spoke to, web service transactions are supposedly incompatible with the loose coupling desired by SOA (Service Oriented Architecture), with the following being cited as the main reasons (read: problems):

  • Any ‘hidden’ interactions (like out-of-band two-phase commit) are mistakenly perceived as a violation of the loose coupling and contract-based SOA design principles.
  • As a result, a common problem is that a transactional service calls other services that are not transactional - and this going unnoticed. This becomes a problem when the desired outcome is rollback because those non-transactional services will commit their work right-away.

With Atomikos, these are all non-issues for the following reasons:

  • Both the sender and receiver in a transactional (web) service interaction can specify (and enforce) their transaction preferences/assumptions by means of our intermediaries (’handlers’ in JAX-WS terminology).
  • For instance, if a service (’A') expects another service (’B') to be transactional then it suffices to add our outgoing handler to the call chain at A. Thanks to the nature of our protocols, the calls to B will then carry the transaction context of A, and moreover the resulting SOAP return message from B will also indicate whether or not it has taken part in that transaction. If not, then the handler at A (inspecting the return message) will throw an exception to indicate the contract breach. So this guarantees the transaction contract being respected from A’s point of view.
  • How about B? There the solution is similar: if B wants incoming calls to be transactional, it suffices to add a handler to the incoming call chain at B. This handler can be configured with similar transaction demarcation preferences as in JEE (REQUIRED, REQUIRES_NEW, …).

So it is really simple to enforce a transactional contract among services in a SOA, thanks to Atomikos. Compare this to the popular alternative of modelling rollback in the service workflow (which at least doubles the workflow complexity and makes the whole SOA initiative more brittle and less agile) and it becomes clear why we say: use Atomikos and focus on the happy path! (TM)

If you would like to try this out in practice, just check out ExtremeTransactions for yourself.

Making JEE & SCRUM work with Atomikos

Saturday, March 28th, 2009

Sure you’ve heard about JEE… And if you know SCRUM then you probably also think that JEE is often counter-productive because of application-server issues.

Well, it doesn’t have to be like that: with Atomikos products and in combination with Spring and Hibernate, you can essentially ditch the application server and do everything inside a regular Java (JSE) virtual machine. The advantage: you can test what you deploy (nothing else is generated, nothing else is to be configured in XML files or anything). This actually redefines the meaning of test coverage: instead of testing your application classes, you can now also test most of the entire runtime as well, including the runtime jars. Add to that the tremendous improvement in turn-around time that Atomikos gives you, and you will never want to do agile in a different way again…

ExtremeTransactions 3.6: JAX-WS SOAP support

Friday, March 20th, 2009

Exciting news for all those who have been waiting for this: we finally got our 3.6 release of ExtremeTransactions ready, including JAX-WS and SOAP support so that transactions can span multiple web services.

While we had support for web services in the past, this new release now incorporates JAX-WS support - meaning that you don’t have to resort to the older JAX-RPC any more.

In addition, we have made the web service support independent of the SOAP stack (any JAX-WS implementation should do).

Release 3.5.1 of ExtremeTransactions

Friday, March 13th, 2009

We have just released 3.5.1 of ExtremeTransactions. This is an important maintenance update that basically includes the important fixes of TransactionsEssentials 3.5.3 (see prior announcement).

This upgrade is recommended for all subscribers.

Release 3.5.3 of TransactionsEssentials

Friday, March 13th, 2009

We have a new release out: 3.5.3 of TransactionsEssentials with major bug fixes in the connection pooling as the main focus. This release is recommended for everybody.

New website live!

Friday, March 13th, 2009

If you have been here recently then you will know already: our new site is finally online, live for everyone!

The intent was to revamp our site into a place that perfectly aligns with both our community and our business goals, and I think we have succeeded at doing so - but I will let you be the judge of that.

Thanks to everybody in the team for making this possible. To all our visitors I would say: enjoy!

Creating a website, the open source way

Saturday, February 28th, 2009

It has been taking months since we started it, but our new website will be online very soon now. We are currently doing the last bits of work to get it ready…

What makes our new site interesting is our geographically dispersed team that has been working on it:

  • The content and PDF goodies were written in Canada
  • The overall site design was done in Belgium
  • The content management support - a wiki platform - was (and still is) being done in Germany

From the inception to the finish, this has been a great deal of fun (and work!) and it is a very exciting way of doing things! This is yet another example of how far you can get with a work tracker (like fogbugz), a wiki and skype;-)

Greetings from Devoxx 2008

Wednesday, December 10th, 2008

I was at Devoxx (formerly Javapolis) today. Besides wandering around in the lobby (I prefer to talk to people there rather than listening to talks), the only presentation I attended was on the SpringSource dm Server. Joris Kuipers did a nice job on explaining how the OSGi modules work (I think I got it - more or less;-)

Tomorrow (Thursday) I will be there too - so if you are around just make sure to say hi!

Atomikos for XTP: Transactions for Nothing and Failover for Free

Friday, November 28th, 2008

A lot of the hype in “Extreme Transaction Processing (XTP)” is fail-over. When Oracle bought Coherence (a Tangosol product), they essentially got an XTP solution for database access.

As Cameron Purdy notes here, this now allows Oracle to provide a degree of XTP failover.

Now guess what: with Atomikos TransactionsEssentials you get:

  • Transactional robustness for nothing, and
  • failover for free

How? Just do the following:

  1. queue requests in JMS
  2. process them by a cluster of competing consumer processes
  3. use Atomikos TransactionsEssentials to ensure that each message is processed exactly once, without duplicates or message loss

By the semantics of queues, this architecture will give you failover. By the semantics of transactions, this will give you exactly once. Since the requests can be queued by any source, this is multichannel. Everything is commodity infrastructure. This is very easy to scale: just add another process.

In summary, this is XTP of the highest degree:-)