xml schema, service oriented architecture, contract first | 29 Jan 2008 7:48 AM | |
Contract-First Service Design by kvandersluis |
Enterprises have complex information structures as a result of evolving applications and databases deployed through the years. For these companies, SOA is a logical strategy to repurpose existing application functionality across the enterprise. Done properly, SOA also brings agility, the ability to rapidly adapt existing capabilities to new business process needs, without the traditional 6, 12,or 18 month delivery timeline required using traditional development methods.
The premise of SOA is that processing capabilities are built into callable chunks that roughly align with business operations such as "get auto policy", "process order", or "verify credit limit". Then, processes and applications are constructed by "orchestrating" these services into the required business processes. Creating services aligned with business process steps in this manner forces a degree of discipline as service contracts must be created first. The business analyst who is an expert in a domain, such as order processing, determines the data elements required to "process order". In terms of SOA technologies, this means the order is modeled in XML Schema, and becomes the subject of services related to order processing.
Services designed in this contract-first, XML Schema-driven manner constitute a data abstraction layer. Data abstraction is the ability to leverage physical data, no matter how it's structured, as new, logical schemas that exist only in middleware - creating a common data layer that architects can restructure as needed, rather than making costly changes to the physical database or core services.
Contract-first service design has an additional advantage to the large company with complex data structures. The data abstraction layer also simplifies the disparate data sources on the back end, greatly simplifying data access for processes and applications. Gartner claims up to 70% of application development time is spent on data access in these complex environments, so savings in this area translates to significant savings in application development.
To conclude, using a contract-first implementation strategy maximizes the benefits of an SOA. Once an interface is defined, many tools and technologies, both commercial and open source, are available to assist in building, testing, and managing the services. Selection criteria generally focuses on ease of use, design time metadata management, and runtime management support. Certainly, XAware is among the candidate technologies, as it is optimized for contract-first service development for the complex data environment found in most companies.
del.icio.us · digg this · spurl · reddit · furl this
