A Bioinformatics Web Service with Mac OS X
Using Objective-C and Mac OS X's Core Web Services to Construct an OmniGene Analysis Engine Client
by Brian Gilman
02/04/2003
Introduction to OmniGene
Releasing algorithms to the biological community (or any research
environment) is typically a painstaking and error prone process. This
stems from the fact that bioinformaticians do not usually write their programs with a user interface
in mind and, instead, depend on a command line interface.
Typically, command line interfaces satisfy only a subset of so-called
power users in an organization, leaving others in the dark in terms of
input parameters, file formats, and output generated from these
programs. READMEs and other documentation are usually left unread, forcing
the developer of the program to answer the same questions time and time
again.
Worse still, once a command line program becomes popular to the not so
tech savvy biologist, the bioinformatician is left running their program
each and every time data is ripe for analysis. One common solution to this
problem is to set up a web interface for the popular program and let the
biologist run it for themselves. This works well for a single program but
becomes quite cumbersome when there are hundreds.
The OmniGene Analysis Engine (OAE) solves this problem by providing a
runtime engine that interfaces with any command line driven program by
exposing these programs as web services using a single common interface
and a little glue code. The algorithm developer writes a single client
application in their favorite programming language and makes this
available to their biologist counterpart. After the interface has been
produced the algorithm developer is freed from having to run their
programs for the biologist. The bioinformatician can then concentrate on
writing programs that solve the next set of interesting biological
problems.
In this series of articles I will be describing the use of Objective-C,
the CoreServices web services framework, and the WSMakeStubs application
to produce a trivial OAE Mac OS X Aqua client application. This
demonstration application is by no means complete: many features are
missing, like robust error checking.
Specifically, I will be describing:
- Web Services
- CoreServices webservice framework
- Interface Builder
- Project Builder
- OmniGene's Analysis Service Framework
- The WSMakeStubs application
- Connecting to OmniGene through WebServicesCore API
This article presupposes that you have a basic understanding of Cocoa
programming, Objective-C and the developer tools that are bundled with Mac
OS X 10.2. You must install the developer tools off the bundled CD to
build the applications describe in this article. If you are not acquainted
with these tools or languages please refer to the resources section at the
end of this article.
The Web Services Revolution
Microsoft, IBM, HP and other large application server and software
vendors are investing a lot of time, energy and money in web services. In
fact, Microsoft has released .NET, a suite of frameworks and programming
tools to produce web service applications. IBM has released the Web Services
Tool Kit (WSTK) as well as many other web services frameworks that build
on the WebSphere application server. In this article we'll be using the
Apache Axis web services framework, an open source web services toolkit,
and OS X's WebServicesCore API to build an OmniGene Analysis Engine client
that inspects and executes OmniGene analysis tasks.
You might expect Microsoft, IBM, and the other major proponents of web
services to be offering a wide variety of web service applications as part
of their core offerings and operating systems. Unfortunately this is just
not the case. Windows XP does allow users to look up applications that
may handle certain file extensions it does not recognize using web
services. Other than this example, the landscape is quite barren in terms
of applications bundled with the OS that leverage web services. This is
certainly not the case for applications built outside or not bundled with
the major vendors OSes. A quick search on x-methods shows a significant number of web
services that have been produced for experimentation. I encourage readers
to explore the services that have been built and exposed on the x-methods
web site.
Unsurprising to Mac users, Apple has been producing web service
frameworks and applications which seamlessly integrate into the core OS
for quite some time now. Apple has even bundled web service applications
free for end users to use on an everyday basis. Apple has allowed users to
use web services to search the Internet, find items on eBay, and even get
answers to common computer related questions through the Sherlock
application for a few years now. Apple's new release of Sherlock, version
3, allows users to plug other web services into this application and
aggregate data from a wide variety of sources all over the Internet.
Apple provides a wide range of APIs to ease the integration of web
services into native OS X applications using their CoreServices
frameworks. We will be exploring these frameworks in the next few
sections, and we'll build a simple tool to explore the OmniGene Analysis
Engine. OAE is a middleware component that allows bioinformatics tools to
be exposed as web services without having to change the underlying
code. So, strap in, get comfy, grab a cup of your favorite caffeinated
beverage, and read on to learn what can be done with Apple's web services
APIs.
[1] [2] [3] Next