Archive for the 'Mule' Category

Integration with Mule RESTpack Webinar

Wednesday, April 16th, 2008

I’m doing a webinar next week Tuesday (April 22) on Mule and REST. I’ll be giving an overview of the concepts of REST, how things like scalability/evolvability emerge from the constraints of REST, and how you can build RESTful applications with Mule.

If you’re interested in attending, the signup is here. Hope you can make it!

Mule 2.0.0 final and the new transformation engine

Thursday, April 10th, 2008

After quite a wait, Mule 2.0 final is out. Its a pretty big step for us, our users, and our customers. Check out the Whats New page for a rundown of everything. Its a significantly improved release - its much cleaner and easier to use.

Since its Friday and I can’t stare at my IDE any longer, I want to give a quick rundown of the transformation engine which was the primary thing I worked on.

Having implemented two web services frameworks (two more than anyone should ever write), I was getting quite familiar with some of the problems around dealing with XML efficiently. We have many many different representations: DOM, SAX, StAX, bytes[], streams. Applications may work with a variety of these formats as inputs/outputs. Finding the most appropriate match is a difficult one.

A good example of this is where you have one component which can output SAX, DOM, and StAX and another which receives only DOM. When the first component is sending a message, how does it know what to send?

The key was to implement an on demand payload request mechanism. The API is actually similar to what I did with CXF (surprise), but it goes one step further and hooks in the Mule transformation engine. Here’s an example of what the second component would look like.

MuleMessage inputMsg = ...;
Document doc = (Document) inputMsg.getPayload(Document.class);

Quite simple - we’re simply requesting the payload as a Document type. Mule allows you to actually delay any decisions about how to serialize it until getPayload is called. Or you can go down the more traditional route of just choosing some format to send and then have a transformation. i.e. send a SAX stream and convert it to a Document on demand.

As an added benefit, transformations are now automatic - no more manually specifying transformers unless you want to. Mule will use its internal registry of transformers to determine how to best match two components together.

And this concludes our adventure in the world of messaging! If you read this blog entry, you’re probably either sick or are a competitor ;-)

Mule RESTpack

Monday, March 31st, 2008

I’m sitting here at MuleCon in San Francisco today. Its pretty cool to see 200+ people here to learn about whats going on with Mule and to connect with many friends from accross the world.

One of the things that we’re launching today is a product I’ve been hacking on for the last couple months - the Mule RESTpack. What is it? Its really two components:

1. Documentation geared at helping Mule developers build RESTful architectures with Mule. (I still recommend that you go find the RESTful web services book!). This is still being expanded - if you see a missing topic, please let me know.

2. A series of connectors to help developers implement RESTful services. Included currently are connectors for Abdera, Jersey, and Restlet.

I think this is quite important offering for us. Many developers are struggling to figure out how to do RESTful integration. It is now significantly easier for people to do so via these connectors. It also says we’re committed to REST and helping people build RESTful services. I believe we’re the first ESB vendor to really do this.

We’ve pushed out the first set of milestones for Mule 2.0.0-RC3. Now that Mule 2.0.0 final is out (more on that later), we’ll be pushing out 1.0 releases of the connectors later this week.

Check it out and let us know your feedback!

MuleCon 2008

Monday, February 25th, 2008

If you’re a Mule user, we’re putting together MuleCon 2008 right now. Come and discuss all things Mule, best practices, Mule product roadmaps, etc. I’ll be giving two talks, one on approaches to RESTful integration and another which will be an introduction to Galaxy & Governance.

If you mention this blog you’ll get an extra $50 discount. Just email mulecon2008@mulesource.com or call +1-415-229-2065!