Strategic Developer: Why SOA, VOIP will converge

19.10.2006
A dozen years ago, I wrote a Byte cover story on the subject of computer-telephony integration (http://www.infoworld.com/4602). CTI was "right around the corner" back then. Every time I revisit the subject I conclude that, regrettably, it still is.

Voice and data networking remain two different cultures that have so far failed spectacularly to come together. But I'm stubbornly optimistic that, sooner or later, they will. There are too many opportunities to ignore, and those opportunities multiply as service orientation takes hold.

Consider a business process that's been automated, SOA-style. A BPEL (Business Process Execution Language) script orchestrates the flow of XML payloads through a sequence of steps, untouched by human hands, until an exception occurs. In all such workflows, people are the exception handlers of last resort.

How does the process that raised the exception kick off a meeting between the requester of a purchase order and its approver? Today the most likely method would be to set up a call in a conference bridge and then e-mail invitations to the two parties. But although computers are supposed to be our intelligent assistants, an intelligent human assistant would set up the conference call between the parties.

According to Mark Ericson, director of SOA product strategy at BlueNote Networks (http://www.bluenotenetworks.com/), whom I interviewed for last week's podcast (http://www.infoworld.com/4609), setting up that call in response to a BPEL exception is exactly the kind of thing that BlueNote's SessionSuite SOA Edition is designed to do.

What's intriguing about this scenario is that, as with Amazon's Mechanical Turk (http://www.mturk.com/mturk/welcome), it enables a software-based service to call on the services of humans. In the case of MTurk, an application creates a HIT (human intelligence task) that a human worker accepts, performs, and submits. To the application, this just looks like an asynchronous request. It polls for a response or arranges to be notified in an event-driven manner, but in either case the service provided by the human looks no different to the application than would a service provided by another piece of software.