It’s hard to believe that MuleSoft’s Fall 2013 Summit series is less than a month away. Summit is one of the most rewarding things I do all year. For me, it’s an opportunity to talk to many of our customers, partners and prospects about the integration challenges they face and the innovative ways they’re using our solutions to address them. Summit is a great opportunity to share best practices, lessons learned, and network with other like-minded members of the MuleSoft community.
You probably heard we have been moving into a faster release cadence with the new mountain ranges releases in this post and this one. For many Product Managers or Business Owners releasing faster could be the difference between success and failure. Being able to shorten the cycle between an idea and valuable user feedback enables new companies to understand better market needs and improve based on it. Releasing valuable software earlier is the sweet spot for Agile and Lean methodologies.
Mule is already running on premise and in the cloud and is soon bound to run virtually everywhere thanks to a new project called Anypoint Edge. This initiative not only focuses on allowing Mule to run on lightweight platforms, like the Raspberry Pi, but also to support protocols and devices relevant to the embedded world, like MQTT and Zigbee. The “Internet of things” had its rabbit, it’s now going to have its Mule!
If you follow this blog, you may remember that we’ve already discussed MQTT before. We’ve introduced the Mule connector for this lightweight publish/subscribe protocol with an example where MQTT was used in the context of conference booth QR Code scanners. In this post, we’re circling back to this example but we add a new twist to it: we’re taking it to the Edge!
In the original architecture, Mule was running on a laptop, using its webcam to scan QR Codes but now that Mule is able to run on the Raspberry Pi, we will revisit the example to run on this tiny device. We will also use the brand new blink(1) connector, which will allow us to use this smart USB RGB LED to flash a visual confirmation when the scan correctly happened.
So let’s start by reviewing our architecture diagram and let’s unroll the example from there.
Nginx (pronounced ‘engine x’) is an HTTP and reverse proxy server. It is well known for its high performance and stability. It is pretty feature rich and very simple to configure. Nginx hosts nearly 12.18% (22.2M) of active sites across all domains. Nginx uses event-driven architecture to handle requests. When compared to a thread-per-request model, event-driven is highly scalable with a low and predicatble memory footprint.
Ever since Devkit made its first entry into the Mule family, a big variety of OAuth enabled Cloud Connectors were made available. Salesforce, Facebook, Twitter, Dropbox, LinkedIn and Google Apps suite are just some examples of the APIs we’ve connected to using that support.
When we started thinking about the August 2013 release we decided to take it one step forward and make it easier than ever. And now that Mule 3.5-andes is available on CloudHub, you’ll be able to leverage all these improvements into your integrations. On Premise users will also be able to use when the final version of Mule 3.5.0 is released as GA.
Just when you thought it couldn’t get any better, it got better. Dataloader.io, the most popular Salesforce data loading solution on the Salesforce AppExchange now supports importing and exporting of files to and from Dropbox!
Data loading aficionados can now quickly and easily import or export data directly to and from their Dropbox account. By simply entering your Dropbox credentials, users can make Dropbox their source for CSV files. Similarly, exporting to Dropbox is as easy as choosing Dropbox as your connection and destination folder from a tab. Then, by following the standard steps to import and export data with dataloader.io, you’ll be up and running in no time – it’s that simple!
In his “To ESB or not to ESB” series of post, Ross Mason has identified four common architectures for which Mule is a great fit: ESB, Hub’n'Spoke, API/Service Layer and Grid Processing. In this post we are going to detail an example for the latter architecture. We will use Mule to build a scalable image resizing service.
Here is the overall architecture of what we intend to build:
As you can see, we allow end users to upload images to a set of load balanced Mule instances. Behind the scene, we rely on Amazon S3 for storing images waiting to be resized and Amazon SQS as the queuing mechanism for the pending resizing jobs. We integrate with any SMTP server for sending the resized image back to the end user’s email box. As the number of users will grow, we will grow the processing grid simply by adding more and more Mule instances: indeed, each instance is configured exactly the same way so the solution can easily be scaled horizontally.
Read on to discover how easy Mule makes the construction of such a processing grid…
In the Internet of things no device is an island. And while Raspberry Pi devices are pretty cool on their own adding an API makes them a lot more interesting. We have been playing around with Raspberry for a while now and have a small distribution of Mule, called ‘Anypoint Edge’ that happily runs on small embeddable devices like the Raspberry Pi. These ARM-based devices are taking the world by storm since they are lower powered, low cost and can be embedded into small hubs to control other things like lightbulbs, or be used inside anything from PoS kiosks to gas pumps to cars to medical devices.
I just read yet another amazing achievement in the world of 3D printing: directly printing sand-grain-sized rechargeable batteries. It’s not that manufacturing things at that scale is revolutionary any more, it’s that we can see the path to mass accessibility: anyone will soon be able to do this. Just like desktop publishing, and later the web, and later any of a slew of self-expression and DIY-distribution possibilities like Facebook and YouTube and Twitter, that accessibility and enablement will surely create Yet Another Revolution (TM). No doubt.