Helping You “Do it Right” With FME Server
About a week ago, I came across a great article from Tim Bray, Sun’s Director of Web Technologies, on the state of corporate IT, “Doing it Wrong”. Essentially Bray describes his opinion that enterprise IT could benefit from borrowing ideas off of tech startups in terms of fast, iterative development, rather than long development times for a single release. Bray’s post, along with the dozens of excellent comments both for and against his ideas, got me thinking about where Safe Software fits into this.
On the FME Server support team, we are finding that it is becoming fairly common to use FME Server as a platform to write applications on top of, rather than only using it out of the box. One of the new capabilities in FME Server 2010 that may not have received quite as much attention as others is an enhanced FME Server Web Services API.
Hidden away in the FME Server installation directory (under Server/sdk/services/apidoc for those following along at home) there is some new documentation covering how to control many aspects of FME Server entirely through HTTP requests and get responses back in HTML, XML, or JSON.
This new documentation, along with the new XML and JSON response options should make these features much easier for customers use. This opens FME Server up to being used as a back-end in pretty much any environment. We still have the .Net, Java, C++, and SOAP APIs, but now you can easily pull FME Server’s functionality into applications written for any platform that has an HTTP library (which is pretty much everything).
For example, a common use case for writing a custom application with FME Server is a self service data download portal. Our Data Download service will run a workspace, zip up the results, and serve back the zip file. Previously writing a custom application that piggy-backed on this service was quite difficult, requiring a developer to navigate fairly complicated C++, .Net, Java, or SOAP APIs that were really designed for far more complex things that writing a front-end to our data download service just to get the URL of that zip file and give it to the user. It was technically possible to get the URL without using an official API, but it would have required manually parsing an HTML response, which is generally not a good thing. Now you can simply append “opt_responseformat=json” to an HTTP request and get a simple, easy to work with JSON response with all of the information your custom application would need.
We’re really looking forward to seeing the applications people build on top of FME Server with this new easier to use API. We’re hoping we have given our users the tools to “Do it Right” as Tim Bray would put it, and I think this will enable some amazing new applications.