Consumer Centric Service Oriented Architecture-A New Approach

This paper extends the current Service-Oriented Architecture (SOA) to introduce a Consumer-Centric Service-Oriented Architecture (CCSOA) paradigm. The current SOA is producer-centric, because the basic idea is that service providers publish services that they produce and let the consumers to search available services to compose their applications. CCSOA focuses on consumers’ publishing the services they need and even the applications they need. The service providers must produce services that are in need. This new paradigm extends the design and code sharing, and thus further improves the software productivity. This paper presents the concepts, architecture, enabling techniques, and illustrative examples.

Service-Oriented Computing (SOC) including service-oriented architecture (SOA) and Web Services (WS) emerges as a new computing paradigm. Major computing corporations and government agencies are adopting this technology. The idea that a program as a service that can be discovered, matched, composed, executed, verified, and monitored at runtime forms the new paradigm. In SOA, service providers register the services in a service broker and the service consumers (application builders) search and discover required services by the broker. Once a required service is found, the service consumer can bind the service into its application. Service collaboration is essential in SOA because a complex service can compose of several other services. Consumer-Centric SOA (CCSOA) is a new architecture designed to support collaboration-oriented service composition. In addition to publishing service specifications in SOA, CCSOA also publishes application collaboration specifications for discovery, matching, and subscription. The CCSOA is different from the conventional SOA framework as presented in [3][12]. In conventional SOA, service providers develop and publish their services, and consumers are responsible to discover the right service published as well as use the service in their applications. This is really a producer-centric approach of SOA. Even though SOA needs all three parties: service providers, consumers, and brokers, the focus is on the producers. Specifically, the majority of support is for producers, e.g., the broker will list registered services, the specification techniques and standards are designed so that producers may produce the right software for a given specification. There is no corresponding broker for consumers, nor is the corresponding application specification published. In CCSOA, consumers publish their application requirements together with associated service specifications including the workflow. Once these are published as application templates, any service providers can submit their software or services to meet the application requirements. This way of computing is consumer-centric because now the service providers will look for application needs. Furthermore, a CCSOA platform can be developed on top of an SOA platform, and both can be implemented and run concurrently without conflict with each other. When a consumer publishes an application, the followings will be published to ensure successful application development:
• The entire application workflow;
• Service description of participating services;
• Acceptance criteria for each service;
• Acceptance criteria for integration and collaboration within the application; and
• Acceptance criteria may include both functional and nonfunctional acceptance criteria.

Free download research paper