When I think about it, there are many, many ways to run an FME workspace.

I could run it through Workbench, or I could run it through the FME Universal Translator. I could run it from the command line, or through a batch file. I could run it through FME Objects (particularly with the new for 2010, IFMEWorkspaceRunner method), or I could run it through FME Server.

In a way it’s strange to think that FME Server is really just another tool for running a workspace.

But what a tool it is! Web services, job queuing, failover, fault tolerance, security, and much more. Far from basic, it is truly an enterprise level solution for Spatial ETL. For opening up spatial data distribution to a wider audience, I really don’t think there’s anything to touch it.

So saying FME Server is good for running a workspace is like saying an ocean is good for sailing on: absolutely true but nowhere near a full picture of the true potential.

So, this post is all about the updates that make the 2010 version an even better place for launching a voyage of FME discovery!

Workbench Improvements
To show how important it is for FME Desktop and FME Server to be well integrated, there is a whole section of Workbench updates either specifically for the benefit of Server users, or with definite advantages to Server.

These are:

The FileCopy writer is very intriguing. Features which enter this writer don’t write new datasets, but instead define an existing file/dataset which is to be moved or copied to a new location. In Desktop use you would likely use it to move source data – say from a “ToBeProcessed” folder to a “HasBeenProcessed” folder.

However, with Server – and its ability to stream output – the FileCopy writer lets you deliver all sorts of non-spatial data via the web; for example, Word documents, or movie files.

Below (Click to Enlarge): When adding a FileCopy writer to your workspace, be sure to set the MIME type:

Below: In this example workspace I simply create a feature containing the name of the file to stream in an attribute called filecopy_source_dataset

Below: …and when I’ve published the workspace and press the all-important run button in FME Server

Below: The file that is copied (in this case an MP4 video file) is streamed straight to my browser:

…and of course for the server ‘Run Button’ you could substitute any way of visiting a URL; a customized web page or form, a click in an email, a hyperlinked feature in a PDF file, etc, etc

FME Server Security
Probably the biggest – and most vital – improvement to FME Server for 2010 is the enhanced security. Specifically the key components now include:

As a user and workspace author – rather than system administrator – this isn’t a tool I would likely use that often. However, I can certainly see the benefits of being able to define different security levels for different users, and different roles, and to be able to do all of this inside a graphic interface.

Below: Here in the admin pages for FME Server, is the security tab. This shows a list of users and what roles they have. Note the account called Anonymous.

Below: Here we define the different roles available. Notice how anonymous is assigned to the fmeuser role.

Incidentally, these roles are totally customisable; they could be called ‘Planning’, and ‘Engineering’ just as easily as ‘fmeuser’ and ‘fmeauthor’

Below: Here is the resources tab. Each resource is configured on a role-by-role basis.

Notice that the ‘fmeuser’ role has access to most of the available Services and Components, but none of the applications apart from the FME Server user interface. This would be typical for an end-user (like ‘anonymous’) but again, this is totally customisable.

Updated Services
For the uninitiated, a Service is a tool for communicating between Client and Server. Perhaps a good analogy (or perhaps not) is a cookery recipe, which defines how ingredients will be handled and in what form they will be presented.

FME Server comes with a default set of services which cover the most obvious uses; data downloads, data uploads, data streaming, delivery as WMS/WFS, and KML Network Links. And above all that you can even create your own services.

So, services are key to much of the great functionality which FME Server enjoys, and so – recognizing this fact – we’ve implemented a number of useful updates for FME2010. These are:

Setting service parameters – for example update interval on a KML network link – is important because it lets the workspace author configure this parameter (using the publishing wizard), rather than relying on the end-user to know to set a value when they use the output.

The web service response is a new parameter I’ll talk about below (under API)

Here I’m just going to copy big chunks from Michael Weisman’s recent post on It’s All About Data.

“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.

So, in other words, authors are creating workspaces and then running them on FME Server through a dedicated API (programming interface). When you do this your application has to decipher FME Server’s response, to figure out the translation status, result, JobID, etc. That can be quite complex, as Michael notes:

“…it would require 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.'”

In fact you can use “?opt_responseformat=xxxx” where xxxx can be one of HTML, XML, or JSON to get a response in a different format.

General Improvements
Besides all of these main areas, there are many other smaller improvements. Some of the key ones are:

I know that the fail-over setup has been key for a couple of FME Server customers. Failover is the ability to automatically switch to a different server/network when the existing one fails. The new failovers for FME Server 2010 are as follows:

And of course, FME2009 already had Engine fault-tolerance, so that failed engines will automatically be restarted, and any lost jobs automatically resubmitted.

Along with a proper distributed environment (server and engines are separate), and with a production database with its own failover systems, this goes a long way to minimising any downtime on your FME Server setup.

See the FME Server Administrator’s Guide for more info on how to set up failover for FME Server.

I hope this post is of use to both existing FME Server users and potential new ones.

Happy FME-ing,

PS: Regional FME User Meetings: 2010: An FME Odyssey
Safe Software would like you to Join us in a city near you as we blast off on a 10-city tour across North America. These complimentary events will help you get all the highlights on FME 2010, gain new insights from user presentations and discover best practices for solving your spatial data access challenges. Register today at: http://www.safe.com/aboutus/events/2010-An-FME-Odyssey/overview.php

About FME Data Distribution Data Transformation FME Server JSON Oracle Parameters Security

Mark Ireland

Mark, aka iMark, is the FME Evangelist (est. 2004) and has a passion for FME Training. He likes being able to help people understand and use technology in new and interesting ways. One of his other passions is football (aka. Soccer). He likes both technology and soccer so much that he wrote an article about the two together! Who would’ve thought? (Answer: iMark)


Comments are closed.

Related Posts