ESB or BPM?

Reading Time: 4 minutes

Often I get the following question. Should we solve this integration problem using and ESB, using BPM or both?

There is no unique or simple answer to that question, because it depends on the use case. But there is definitively a place for ESB and a place for BPM and they can and should leverage each other. Let’s take a look at how to answer the question above.

At a high level, ESB and BPM are separate but interdependent.

In another words, ESB solves the problem of complex system integration (usually stateless, short-lived transactions), while BPM solves the problem of modeling and orchestrating business processes, integrating people and systems (usually stateful, long-running transactions).

You can think of SOA as a 3 layer architecture, the lowest being “service-enablement” or exposing existing systems as services, the middle being “service orchestration” allowing to create and compose coarse-grained “business services”, and the highest being “process orchestration” to create business processes.

Normally ESB is assigned to the middle layer — orchestrating low-level services into larger service units, which will be exposed to the business for use in processes — and BPMs in the top layer. Mule not only provides value on the middle layer, but it is also a container for component and services, providing “service-enablement” therefore adding value on the bottom layer as well.

Continue reading

Feed my inbox; reading RSS feeds with Mule ESB

Reading Time: 5 minutes

I read a couple of RSS feeds regularly. Unfortunately, I work across a couple of machines: my laptop, the machine in the office, my wife’s laptop. This rules out using a local RSS reader as I’d have to manage the redundant subscriptions let alone I’d have to remember which feed entries I have already read and which one not. Sure, I could use Google’s feed reader but being mostly eMail centric anyway I’d love to see RSS feed entries in my INBOX. But wait! Mule has RSS support and it can send emails … why not hack this together in Mule?

Polling the feed

Retrieving an RSS feed is easy using the tag that was introduced with Mule 3:

This config snippet polls the feed URL every 10 seconds.

Parsing the feed

The RSS module handles all the parsing and splitting. All we need is a feed splitter:

Continue reading

Mule Payment Services

Reading Time: 4 minutes

If you are selling a product or a service online, chances are you’ve had to integrate with any number of payment services available today. As any application developer will tell you, the integration with the payment system is only one step of an order process.

Mule Payment Services makes it easier to use payment services from different providers. We started with connectors to Authorize.Net and CyberSource (both companies owned by Visa). Authorize.net is a payment service which is popular with smaller merchants while CyberSource is more popular with medium to enterprise size customers. Between the two payment processors they serve well over 300,000 merchants. We are working on integration with a number of other payment services including PayPal.

Mule Payment Services uses Mule Cloud Connect so each payment provider can easily plugged into payment flows. For example to make a payment using Authorize.net:

Continue reading

Web Testing; Selenium

Reading Time: 12 minutes

I did Unit Testing, but the Customer is still not happy

sauron

I have this web project. Pretty complex one. The code coverage is over 90%. Awesome! I even have a Continuous Integration set up. My code is built, and my tests make sure that functionally works as expected.  I even have a well defined suite of UI tests using an internal renderer that is super fast.  But, ohhh… today a Customer filled in a complaint saying that the site is not working well. Buttons are not responding, images are missing and the like. Catastrophe!  This may be familiar to you? What am I missing here? I need  external, not controlled-by-us browser behavior testing! How do I solve this problem? Or at least have an early warning that Sauron is about to be awake?

Continue reading

Run Mule… run faster

Reading Time: 4 minutes

Opposite to men that with the years we get slower (at least that’s my case), the new version of Mule 3 showed an improvement in performance compared to previous Mule ESB versions. In general plenty of effort was put to profile and optimize Mule for high concurrency scenarios, which led to improve the way messages were handled in transports and transformers.

Mule 3.1 performance is in average 10% better than its predecessor version 2.2.7, performing better when the number of concurrent consumers gets bigger and much better when dealing with XSLT transformations (around 15% better).

The test cases and setup were similar as the ones used some time ago to benchmark Mule 2.0.2. For more details on these benchmarks please refer to Whitepaper Perf Test Results.

Setup

Continue reading

System Admins. R.I.P.?

Reading Time: 6 minutes

The advent of the cloud has brought a wave of changes in IT from the way we provision servers to the applications we use. At MuleSoft Google Apps provides email and office productivity services, Salesforce provide us with sales, support and product tracking, Marketo provides our marketing automation services and Atlassian gives us issue tracking and development productivity tools. All of these applications are hosted by our services providers, so what does our trusty sys admin do? Well, we will always need application infrastructure right…

Continue reading

Building Rich Browser-based Apps with Mule Cloud Connect

Reading Time: 3 minutes

We’ve seen a great response to Mule Cloud Connect from users and partners. Many folks want to see it in action so we thought it would be good to put together a webinar with a live demo.

One of the drivers for Mule Cloud Connect was that we are seeing that traditional three-tiered application architecture is outmoded – Web applications today require integrating multiple data-sources and services, both in the cloud and behind the firewall, and presenting rich data to the browser in real-time. Mule Cloud Connect enables developers to accomplish this quickly and easily without wrestling with complex APIs and writing tedious custom code. This webinar will show you how Mule Cloud Connect makes it dead-simple to create a modern AJAX-based WebApp that integrates cloud-based services.

Continue reading

New in Mule 3.1 Enterprise

Reading Time: 5 minutes

We recently released Mule 3.1 Community and Enterprise editions. In this post, I’d like to introduce Mule 3.1 Enterprise, the first Enterprise release of Mule 3.

Mule 3.1 Enterprise builds on all the great new features in Mule 3 and Mule 3.1 Community, adding a host of enterprise capabilities, including the Mule ESB Management Console (MMC), premium connectors, retry policies for self-healing connections, and out-of-the-box high availability (HA) and failover.

We introduced MMC early last year with the intention of doing something a bit different than other “management consoles” out there – we wanted to build something that was valuable not just for IT operations, but for developers as well. So for developers, we included features like service flow debugging, performance diagnostics and tuning, among others. For operations staff, we included things like monitoring, intelligent alerting, fine-grained ESB control, etc.

In this release, we took things even further, augmenting MMC with new capabilities inspired by the DevOps movement, including collaborative deployment, fine-grained access controls, and customizable dashboards. These features allow cross-functional IT teams to leverage the same web-based console to deploy, monitor and manage Mule applications, enabling more agile deployment processes and reducing the risk of change.

Let me give you a quick tour around some of the new capabilities that MMC offers:

New customizable dashboards let you monitor your entire system from a single customized screen. In addition, you can create your own metrics using a JMX browser to select custom metrics.

Continue reading

Tomcat 7 Voted Stable, Tomcat 6 No Longer the Latest Stable

Reading Time: 4 minutes

Tomcat 7.0.6 has just been voted the first Tomcat 7 stable release! This makes Tomcat 6.0.x only a supported stable release, not the latest stable as it had been for several years. A little more than a half a year ago we saw the first 7.0.0 beta release, which was exciting, but now the first stable release is ready to use.

A major branch stable Tomcat release is an infrequent event — it’s been four years since the last major branch, Tomcat 6, was voted stable in February of 2007, and six and a half years since Tomcat 5.5 was voted stable in November of 2004.

Continue reading

Go with the Flow with Mule 3.1!

Reading Time: 9 minutes

Mule 3 underwent some significant architectural improvements, I talked about this back when Mule 3.0 was released in my “Mule 3 Architecture: Back to Basics” blog post.  These improvements  enable a much simpler way of configuring Mule that is more powerful while at the same time much more intuitive.  As we release Mule 3.1 I really want to encourage everyone to “Go with the Flow!!”

In this post we’ll cover the basics of “Mule Flow”; what it is, when to use it and how to integrate with it.

Continue reading