A Look Into The Labs: CallHelix Webservices API
March 17, 2005
Late in 2004 the CallHelix team discovered that communications between OS 9 and OS X machines over remote AppleEvents (“eppc://” protocol) were flakey at best. They would work fine for me in the testing lab in the office, but would fail sporadically at one client’s install. Earlier this year I was installing a script at a client’s location, we ran across the same issue. We decided to try the following script and see if that worked:`
tell application “Finder” of machine “eppc://111.111.111.111” beep end tell
`
(IP address changed to protect the innocent)
To our amazement, this simple script failed: it timed out without finding the machine, and the targeted machine would eventually crash after some time had passed.
Now, seeing remote AppleEvents fail at one install is an oddity, twice is a pattern. Obviously I can’t saddle my clients with a solution that’s not reliable and expect them to use it to build important systems (websites, automated tasks) with. At least, not with a product like CallHelix.
I also started thinking about providing other languages the ability to use CallHelix. Right now, if you want your app to interact with data inside of Helix, you have to implement the entire protocol yourself - a non-trivial task. What if you could call CallHelix from any language?
So I started writing a XML-RPC interface, taking information from the XML-RPC request, feeding it through the back-end of CallHelix.
What does this provide?
- multiple language support
- Multiple platform support - write a .NET program that runs on Windows to extract data from Helix, for example.
- Easy, reliable, inter-machine communications (in those situations where the native communications support is broken or unimplemented)
- Less overhead - you don’t need a Window Manager connection like you do with AppleEvents under OS X.
The API will feel very familiar to current users of CallHelix.
The CallHelix WebServices (server) will run on the same machine as the Helix Server itself, and will come in both OS 9 and OS X varieties.
This is pretty high up on my priority list, as it “fixes” a reproducable bug with no work around and no planned vendor support (OS 9 is dead). We haven’t thought about pricing information, but we may give a deal to current CallHelix owners.
If you’re interested in testing this application, or even just reading the documentation (when it’s done), contact me or leave a comment here.