The current buzz in application development has certainly been around the developments in service oriented architecture or SOA. Simply put, SOA has taken the notion of reusable code to a whole new level by specifying a platform by which the enterprise can create a set of reusable business services that can be rapidly assembled to build business applications.
SOA proposes a platform-independent architecture such that a service can exist on any hardware or OS platform and can be accessed by any heterogeneous application environment throughout the enterprise. The idea is that by breaking down the business functions of an organization into service-level objects that both the maintenance costs for existing applications and the development costs and time of new applications are drastically reduced.
Additionally, point-to-point application interfaces can be eliminated as application clients can access business services directly. While those organizations that have strong centralized governance and highly coordinated application development organizations will reap the benefits of SOA, the rest of us who decide to put our toes in the water of the SOA pool must carefully understand how our application development paradigm changes. Adopting an SOA application platform requires a new degree of coordination throughout the enterprise, one that requires discipline and