In the past, network-based applications were pretty simple. A networked server ran a monolithic application that users accessed via a basic GUI (graphical user interface). Today, organizations struggle to develop feature-rich, network-based applications while also facing business pressure to minimize timescales, maximize quality, and work with legacy systems hosted on different platforms.
To address these challenges and meet business needs, organizations are simplifying application development through reuse supported by Service-Oriented Architecture (SOA). SOA describes an architecture that provides access to, and reuses services transparently across a network. With SOA, services are developed once and accessed by future development via the network across what is known as an Enterprise Service Bus (ESB).
Reuse with SOA reduces cost, simplifies application development, increases business agility, and improves quality. For example, many different applications within an organization can access a central directory system through a single service, eliminating the effort of building point-to-point connections between every application and the directory back end. Over time, the services develop into a complex architecture of interconnected components working together to satisfy many different business needs.
While SOA has been realized in many ways, today Web services are the most compelling way to deploy applications. Web services are based upon open standards (so they are vendor-neutral) and are firewall friendly.
Some Brief History