170 likes | 177 Views
This document from the UPMS Submission Team in March 2007 discusses the use of Service-Oriented Architecture (SOA) in matching needs and capabilities, combining capabilities to address needs, and the importance of compatible service ports in connecting consumers and providers.
E N D
Service Contract Perspectives UPMS Submission team March 2007
SOA provides a framework for matching needs and capabilities and for combining capabilities to address needs • Consumer defines the needs or service requirements • Provider defines the capabilities or services • Matching needs and capabilities means connecting compatible consumers and providers • Provider provides capabilities and how to use them • Consumer has requirements that can be fulfilled by provider capabilities • Connected consumers and providers enter into an agreed upon contract for meeting needs with capabilities
Combining Capabilities to address needs requires an assembly • Consumers and/or providers may be defined independently and may have no common ownership • Does provider meet consumer’s needs? • That is, is it legal to connect: • the provider’s provided service to • the consumer’s consumed service? • To answer this, we need to determine if the service ports are compatible
Consumer defines the needs or service requirements • The type of the consumed service port defines the consumer’s requirements through that port • Behaviors of the consumer warrant that they will interact through the consumed service port in a manner that is compatible with the port’s type
Provider defines the capabilities or services ? • The type of the provided service port defines the provider’s capabilities through that port • Behaviors of the provider warrant that they will interact through the provided service port in a manner that is compatible with that port’s type • Matching consumer needs with provider capabilities is determining if the connected service ports are compatible
Service Interfaces define the needs and requirements • Service interfaces are used to type service ports • Service interfaces can be given from a number of perspectives • Consumer: consumer-centered • Provider: provider-centered • Both, or the interaction between Consumer and Provider: interaction-centered
consumer-centric • Describes the service from the perspective of the consumer’s requirements • Any number of providers may be used as long as the meet the consumer’s requirements • Service Interface is used to type the consumer’s service port • Providers’ types are any types compatible with the consumer’s requirements
Consumer-centric service interface • The Provider can be any type that conforms to the consumer requirements • Provider is the simplest conformant service interface • Provider could realize or use other interfaces as well or extend the required and provided interfaces with additional capabilities not used by the consumer
provider-centric • Describes the service from the perspective the provided functional capabilities • Typical of SOA publish/find/bind • Any number of consumers may participate as long as they meet the provider’s service protocol • Service interface is used to type the provider’s service port • Consumer’s type is any type compatible with the provider’s protocol
Provider-centric Service Interface • Consumer can be any type that conforms to the provided service • Consumer may not use all of the provider capabilities • But must use the ones it does according to the protocol
Same Service Interface using an Activity • The activity partitions represent the roles in the Provider • They specify what part the operations are invoked on • That is, they specify the target input pins
Interaction-centric • Neither the consumer or provider is the central focus • Instead it’s the interaction between them • Service contract describes roles, responsibilities and interactions on consumers and providers • Service consumer is typed by consumer role type • Service provider is typed by provider role type
Service participants that provide and consume the service Note: The required interfaces don’t show up in the picture but they should
Notice the similarity • All three solutions show the same assembly of components • The protocol is only defined once in all cases • All three have exactly the same semantics • In all cases, the connected consumer and provider ports must be compatible and follow the protocol • All three use collaborations to specify requirements for choreographing services to accomplish some end • All three could be specified at the same time and simply need to be conformant