wftk and cURL

[ wftk documentation home ] [ wftk interface descriptions ]
The cURL and libcurl (http://curl.haxx.se) toolset is a mature library-based retrieval mechanism for data via HTTP, FTP, and a few other interesting protocols. After about a year's planning, I've finally completed the first adaptor using libcurl, the ACTION_http adaptor. This HTTP adaptor could work fine with HTTPS, of course (if compiled with SSLeay), and could probably simply be extended to work with FTP as well, but I think it probably makes more sense to write a separate FTP action adaptor instead.

At any rate, the HTTP adaptor was the first step towards SOAP integration. The SOAP adaptor simply builds an appropriate HTTP action object and invokes the HTTP adaptor.

Timeline/contents for ACTION_soap adaptor:
August 18, 2003: It works!


It works! (August 18, 2003)
After several forays into the libcurl documentation, I finally took the time to sit down and design an action spec (you can see it in the code documentation for the adaptor), and wrote the initial version of the adaptor. Libcurl really is easy to work with; I spent more time tinkering with makefiles than actually figuring out how to write libcurl calls, and once the adaptor was actually built, it worked on the first try. I wish everything were as well-designed and clean as libcurl.

In order to get just the minimum working to support SOAP, then, I spent about a day. I left a lot undone which would make sense for a real live HTTP adaptor, such as code to build proper POST requests, anything to work with results, and so forth. But I also spent some time debugging the whole action process, building the "keep" logic which inserts action results into the enactment history for a workflow, and putting together a test platform for action-based workflow.

Next time I spend time here, an HTML parser might be an interesting thing to think about. Certainly cookie handling is very needed, and I left out all the header logic as well. There's really no shortage of things to be done. But -- it works, and retrieved a page into a workflow enactment like a champ.





Copyright (c) 2003
Vivtek. Please see the licensing terms for more information.