We've had Application Programming Interfaces for quite a while in the industry. The challenge of an API is finding the development resources needed to program the integration. It's not easy. Utilizing any modern programming language, you usually are required to post variables to a service and then retrieve the results utilizing XML (eXtensible Markup Language).
In 2000, I was working for a Database Marketing Consultancy in Denver, Colorado and we had a tool called Sagent Solutions. Sagent was eventually purchased by Group1. Group1 is well known in the database marketing scene for building some fantastic applications. I'm not sure what happened to the Sagent products that I used to use, but they were incredible. On the left side of your screen you had ‘transforms' and you could drag them into a workflow. All the inputs and outputs of each transform would automatically tie to the next transform.
So, I could build a workflow to import a file, map the fields into a database, transform the values of the fields, cleanse the addresses, geocode the addresses, export the completed file, etc. I could even split the workflow and do multiple processes with the same data. In reviewing the ‘back-end' of a workflow, Sagent actually stored the plan utilizing XML. That basically means that you could dynamically build and execute a workflow if you wanted to. The solution was a 6 digit solution, but building a plan to manipulate a data warehouse took minutes instead of days.
With the advent of APIs, Web Services, SOAP, Flex, Ajax, etc… I'm curious why no one has yet to build a web-based Application Programming User Interface. In other words, a drag and drop interface for API calls. With SOAP, companies store a WSDL (Web Service Definition Language) that is basically a programmatic encyclopedia for how to consume the web service. In five years no one has been able to develop a solution for interpreting an API or Web Service to visually build a workflow? Is anyone working on that?
Here's my $1 Billion idea for the day. If someone could build a Flex interface that can read a WSDL and visually represent the calls, then you could drag and drop the interactions between the calls. It's the missing link of the web… making the web accessible to anyone to ‘program' their own solution without having to understand any languages.