In business, agility is everything. Mergers and acquisitions, new regulations and heightened customer expectations mean your company must become more responsive to changing demands. Mega-applications such as enterprise resource planning (ERP) and customer relationship management (CRM) have enhanced efficiency, but they have also created new IT stovepipes that reduce a company's ability to cope with change. You must coordinate, automate and optimize the activities of users and diverse business systems scattered across the enterprise in continually changing business processes. In short, you need business process management (BPM).
But to achieve agility without breaking the bank, you can't simply rip and replace. You must break down legacy stovepipes into modular components that can be reused in multiple business processes. That's precisely the promise of a new style of software development called service-oriented architecture. With SOA, applications are no longer built as monoliths. Instead, they're composed by assembling modular services. Think of a service as a single software function, such as GetAccountBalance or CancelOrder, that can be executed on request by any system, regardless of its operating system platform, programming language or geographic location.
SOA isn't new conceptually, but its current implementation in the form of Web services is revolutionizing software development. While previous generations of distributed software architecture promised agility and component reuse, there was always a catch: To allow integration, all components had to use a common object model or programming language. Web services remove these requirements and interoperate across barriers separating Microsoft from Unix or .Net from J2EE. Just as Web page retrieval works the same on any platform, program-to-program interactions can be platform-independent if Web services leverage universal standards.