Service-oriented architecture (SOA), Web-oriented architecture (WOA), Web services, Web application programming interfaces (APIs)–why are we so concerned with these things? Why do we keep defining new ways to describe interoperability between disparate and like computing systems? Why do we need to create standards bodies such as the W3S or ACORD? The simple answer is because we need to ensure systems can interact in a reasonable and predictable manner. But the underlying reason they don’t play together nicely is information systems have become too complex. That complexity seems to be increasing exponentially and soon may reach a point where only very large organizations with very large IT budgets and substantial staffs can even hope to cope with that complexity.
Complexity has increased at the application level, administration level, infrastructure level, and programming level. As business applications become more feature rich, they also become more difficult to use. Windows Vista and Office 2007 have frustrated and disappointed thousands of users. Many organizations have yet to upgrade to these–now no longer new–software products.