Article
ColdFusion 9 at Your Service: Image Manipulation with AIR
Earlier this month, Adobe released the latest version of ColdFusion at the MAX conference in Los Angeles. Back in July I gave an overview of ColdFusion 9, covering some of the new features with the benefit of Kay Smoljak’s examples. This article is about one juicy new feature that we omitted in that article: ColdFusion as a service (CFaaS).
CFaaS is a new way of accessing some of ColdFusion’s functionalities
as remote or local services. For example, <CFIMAGE> and <CFDOCUMENT>, which were previously only
available as CFML tags and could therefore only be used in
.cfm documents running on your server. With CFaaS, your
client-side code can access these ColdFusion functionalities with web
service calls.
With the current trend towards richer applications based on Flash, Flex, AIR, or AJAX on the client side, it made sense for Adobe to give ColdFusion 9 a service layer. This allows RIA developers to leverage some of ColdFusion’s rapid application development functionality in their work.
To illustrate how you can take advantage of this new service layer, I’ll show you how to build a simple AIR application that will act as a front end for image processing tasks taking place on the server side. We want to be able to drag and drop an image into the application, upload it to a ColdFusion server, perform some CFaaS functionality to modify the image, then retrieve the image to be displayed in our application. Finally, users will be able to drag and drop the modified image back into their file system as a JPEG file.
Before we start, here’s what you’ll need:
ColdFusion 9 from Adobe. Download and install the free developer edition.
Flash Builder 4 beta 2 from Adobe Labs, which we’ll use to build our AIR app. We’ll be using the Flex 3.4 SDK, so you could in theory use Flex Builder 3 for most of what we’ll be doing, but Flash Builder 4 will simplify a few key tasks.
The sample code, which is available here. The archive includes both an
.fxpproject that you can import into Flash Builder, and the raw source files in case you want to look at them on their own.
Once you’re done reading the article, head over and test your new skills in our Article Quiz!
Before we start working through the example, let’s have a look at some basic CFaaS features and how we can make use of them. In ColdFusion 9, the following tags and their functionality are available as SOAP/WSDL-based web services:
<cfchart><cfdocument><cfimage><cfmail><cfpop><cfpdf>
The WDSL URLs for these services follow the format:
http://<servername>:<port>/CFIDE/services/<servicename>.cfc?wsdl.
So, if you installed ColdFusion 9 on your local machine using its built-in
HTTP server, the WSDL URL to access the image service will be:
http://localhost:8500/CFIDE/services/image.cfc?wsdl. All the
examples and sample code will be using this format, so if you’re using a
different server name or port, you’ll need to adjust the URLs
accordingly.
The WSDL URL of a service essentially exposes the entire service
API, and this can pose a significant security risk. Because of this, the
CFaaS engine is disabled by default, so you (or your ColdFusion server
administrator) will need to set up a user account for the CFaaS layer and
provide that user with appropriate access to the individual services.
You’ll also need to provide a list or range of IP addresses that are
permitted to access exposed services. For the purpose of this exercise
we’ll just be accessing the service from our local machine, so you’ll only
need to add 127.0.0.1 to that list.
To add the user for our service, we’ll first log in to the
ColdFusion server administration area, located at
http://localhost:8500/CFIDE/administrator/index.cfm. The two
screens we’ll need are both found in the Security
section: User Manager and Allowed IP
Addresses.
First, in the User Manager screen, create a user, specifying a username and password. At the bottom of the screen, move Image Service from the list of prohibited services to the list of exposed services.
Nevermind the other sections of this form, you can leave them alone for the purposes of this application. Make sure to remember the username and password you set for your new user, as you’ll need them to permit your AIR app to access the image service.
Kai is a New Zealand-based Solutions Architect. Originally from Germany, he is the co-founder of Ventego
Creative, a web consultancy specializing in Adobe technologies. Kai posts regularly to his blog, 
