Tucked away at the back of a fun press release about the Amazon S3 online storage service, which Richard MacManus covered last week, was an even more significant item of news about Amazon SQS (Simple Queue Service), which it seems is now directly supported by Windows Communication Foundation, the web services plumbing built into Windows Vista (and also supported on XP).
I've been keeping a watchful eye on Amazon SQS ever since its launch 18 months ago. It finally emerged from beta last week (which, incidentally, means it now has a charging plan, something else I like to watch very closely). The production release has an all-new API with support for SOAP, REST, and HTTP Query, a new domain, and a maximum message size 256k (up from 4k during the beta).
Also new was the revelation that Microsoft has developed an add-in that makes Amazon SQS part of the messaging subsystem natively available to developers when they write WCF applications. According to the release:
"This makes it easy for WCF applications to pass messages to other systems that are not in their network, such as remote browser-based applications and systems run by their business partners."
What this means is that a developer can write an application that runs on a Windows desktop or server and use Amazon SQS as the messaging infrastructure to exchange information with systems and applications located anywhere else in the Web. The code will shortly be available here.
Anyone wondering what the post-Java EE world might look like has their answer right here. Forget expensive middleware infrastructure. Just pay by the drink for your application-to-application messaging needs, however sporadic they may be. Amazon SQS charges $0.10 per 1000 messages and $0.20 per GB of data, with no minimum fee and no setup cost.
I think SQS has the potential to open up some very powerful mashup capabilities, especially tied in with WCF, which embeds native web services support right inside your Windows desktop, making it possible, for example, to connect directly into enterprise applications using SOAP web services. This allows SQS to becomes the Web-based catalyst for some potentially awesome enterprise mashups. The examples in Amazon's press release of how customers have been using the S3 storage service demonstrate the leveling power of shared infrastructure services like these. Customers talk of drastically reduced expenses and the benefits of not having to worry about reliability, scalability and capacity planning as they ramp up usage. And that's just for storage. Imagine what could be achieved with messaging services.
I asked Amazon for some example use cases. Here's how the provider sees developers initially using the WCF add-in:
- A developer who has an existing WCF application with a non-SQS channel and needs it to communicate through a firewall can switch its configuration to work on an SQS channel and get cross-firewall communication without changing any code.
- SQS developers can use WCF to add layers that perform in-order delivery and other enhancements to SQS.
- Anyone interested in understanding WCF and Amazon Web Services can examine the source code of a WCF channel built around SQS.
I think those are just for starters. Anyone who wants to do secure, authenticated asynchronous integration between multiple applications or data sources over the Internet but hasn't previously had access to reliable messaging infrastructure is now empowered to go ahead using Amazon SQS. Oh, and of course you're not restricted to Windows. If you're prepared to do a bit of coding, you can just as easily do this in AJAX (Openfount Queue Service, as described on the Amazon Web Services Blog, uses S3 as a back-end but illustrates the principle).