Data Considerations for SOAs
Shared data services can enable SOA success.
by Chris Keene
December 1, 2004
While most experts agree on the functional benefits of service-oriented architecture (SOA) implementation, their visions of how to achieve it differ widely. Some suggest leveraging existing applications by wrapping them with a common application program interface (API). Others advocate building a completely new architecture with functional modules that expose services to end-user applications. Still others espouse a hybrid approach.
Regardless of the vision, data access logic consumes a high percentage of development resources and plays a significant role in the success or failure of an SOA initiative. Ultimately, data access logic can even determine whether the resulting systems meet performance and scalability requirements.
Our experience with SOAs in demanding enterprise environments has produced useful insights regarding the data access challenges common to SOAs. These challenges include the need to:
- Increase developer productivity by allowing developers to focus more on business-critical logic.
- Maintain data integrity when migrating existing data and application silos to enterprise services.
- Ensure the performance and scalability of the deployed system.
This article discusses the advantages of implementing shared data services to deliver on the true promise of an SOArapid application development through reusable components without sacrificing fast, accurate enterprise data access. By designing a shared data layer into an SOA, companies can avoid integrity, performance, scalability, and availability issues that might otherwise occur.
I include a case study of a financial services company that adopted a shared data services approach for a realtime trading platform. It was able to double developer productivity and achieve high performance and scalability while maintaining data integrity.
Defining an SOA
An SOA provides a flexible, reusable framework for building and integrating multiple applications and application components. An SOA allows an enterprise to share application services to quickly construct new applications and provide greater value to the enterprise.
The commonly cited benefits of an SOA are:
- Flexibility to enable developers to quickly build new applications.
- Reusability to leverage investments across multiple applications.
- Loose coupling to avoid the brittleness of monolithic applications.
Web services are often mentioned in discussions of SOAs. Web services generally wrap existing applications and related data and expose a consistent API for business-level services, such as credit card authorization. Web services are frequently used to integrate packaged applications. In this respect, Web services offer some of the benefits of an SOA without requiring significant rewriting or re-architecting of existing applications.
Back to top