What is Service Orientation
It is a shift from client server based communication model to messages based communication model in which message is first class citizen. A great video on topic is "Channel 9: Service Oriented Thinking". Fundamentally it is a asynchronous distributed communication in which business coordinate by speaking a common language of understanding.
What is Service Oriented Architecture (SOA)
SOA is a form of technology architecture that adheres to the principles of service-orientation. When realized through the Web services technology platform, SOA establishes the potential to support and promote these principles throughout the business process and automation domains of an enterprise.
Service-oriented architecture (SOA) actually set of principles and guide lines that encourages individual units of logic to exist autonomously yet not isolated from each other. Units of logic are still required to conform to a set of principles that allow them to evolve independently, while still maintaining a sufficient amount of commonality and standardization. Within SOA, these units of logic are known as services.
What is Primitive SOA
it is a SOA model that is mainly explains how to build web services and how to allow them to talk with each other. Core focus is on functionality and doesn't covers advance topic like security etc. This model present set of guidelines called service orientation principles that should be taken care while designing services and applications.
What are the core Services Orientation Principles
Loose coupling Services maintain a relationship that minimizes dependencies and only requires that they retain an awareness of each other.
Service contract Services adhere to a communications agreement, as defined collectively by one or more service descriptions and related documents.
Autonomy Services have control over the logic they encapsulate.
Abstraction Beyond what is described in the service contract, services hide logic from the outside world.
Reusability Logic is divided into services with the intention of promoting reuse.
Composability Collections of services can be coordinated and assembled to form composite services.
Statelessness Services minimize retaining information specific to an activity.
Discoverability Services are designed to be outwardly descriptive so that they can be found and assessed via available discovery mechanisms.
What is Service Oriented Solution
Any solution in which individual logic units (key business process) works as service and confirms to core service oriented principles is called service oriented solutions.
What Problem Services Orientation Principles Address
Service oriented principle mainly address following design level queries.
How services (business process) should be designed
How to define relation between different services.
How service message should be defined
How to designed service descriptions.
What is contemporary SOA
Contemporary SOA extends primitive SOA model by leveraging industry and technology advancements to further its original ideals, it is an an open, agile, extensible, federated, composable architecture comprised of autonomous, QoS-capable, vendor diverse, interoperable, discoverable, and potentially reusable services, implemented as Web services
Contemporary SOA can establish an abstraction of business logic and technology that may introduce changes to business process modeling and technical architecture, resulting in a loose coupling between these models.
Contemporary SOA is an evolution of past platforms, preserving successful characteristics of traditional architectures, and bringing with it distinct principles that foster service-orientation in support of a service-oriented enterprise.
Contemporary SOA is ideally standardized throughout an enterprise, but achieving this state requires a planned transition and the support of a still evolving technology set.
Key Characteristics of contemporary SOA
Contemporary SOA is at the core of the service-oriented computing platform.
Contemporary SOA increases quality of service.
Contemporary SOA is fundamentally autonomous.
Contemporary SOA is based on open standards.
Contemporary SOA supports vendor diversity.
Contemporary SOA fosters intrinsic interoperability.
Contemporary SOA promotes discovery.
Contemporary SOA promotes federation.
Contemporary SOA promotes architectural composability.
Contemporary SOA fosters inherent reusability.
Contemporary SOA emphasizes extensibility.
Contemporary SOA supports a service-oriented business modeling paradigm.
Contemporary SOA implements layers of abstraction.
Contemporary SOA promotes loose coupling throughout the enterprise.
Contemporary SOA promotes organizational agility.
Contemporary SOA is a building block.
Contemporary SOA is an evolution.
Contemporary SOA is still maturing.
Contemporary SOA is an achievable ideal.
Common problems while adapting SOA
Proliferation of RPC-style service descriptions (leading to increased volumes of fine-grained message exchanges).
Inhibiting the adoption of features provided by WS-* specifications.
Improper partitioning of functional boundaries within services.
Creation of non-composable (or semi-composable) services.
Further entrenchment of synchronous communication patterns.
Creation of hybrid or non-standardized services.
Key problem with SOA is that an organization can go quite far in terms of integrating the Web services technology set before realizing that they've been heading down the wrong path.
Document Style Vs RPC Style SOAP Web Services
http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/c018da90-0201-0010-ed85-d714ff7b7019
http://oracled.wordpress.com/2008/09/12/rpc-style-vs-document-style-web-service/
What are different types of Service Roles
Service Roles and temporary classifications and each service may opt different role in different part of business cycles. Key service roles are described below
Service Provider Role also called server role
Service Requester Role :A Web service is always a service provider but also can act as a service requester and Any unit of processing logic capable of issuing a request message that can be understood by the service provider is classified as a service requester.
Intermediaries : Web services and service agents that route and process a message after it is initially sent and before it arrives at its ultimate destination are referred to as intermediaries or intermediary services. Because an intermediary receives and submits messages, it always transitions through service provider and service requestor roles.There are two types of intermediaries.
Passive intermediary, is typically responsible for routing messages to a subsequent location. It may use information in the SOAP message header to determine the routing path, or it may employ native routing logic to achieve some level of load balancing. Either way, what makes this type of intermediary passive is that it does not modify the message.
Active intermediaries also route messages to a forwarding destination. Prior to transmitting a message, however, these services actively process and alter the message contents (Figure 5.7). Typically, active intermediaries will look for particular SOAP header blocks and perform some action in response to the information they find there.
Initial senders are simply service requestors that initiate the transmission of a message. Therefore, the initial sender is always the first Web service in a message path.Intermediary services can never be initial senders or ultimate receivers within the scope of a service activity.
Ultimate Receiver: The counterpart to Initial Sender role is the ultimate receiver. This label identifies service providers that exist as the last Web service along a message's path.
Composition Service (service assemblies) : Is intended to combine two or more services in a single interface. Service compositions also are referred to as service assemblies.Typically, Web services need to be designed with service composition in mind to be effective composition members.
What are different types of Service Models
Service model is a Permanent classifications, key classification are listed below.
Utility service model
Any generic Web service or service agent designed for potential reuse can be classified as a utility service. The key to achieving this classification is that the reusable functionality be completely generic and non-application specific in nature.
When working with the service abstraction layers a utility service is most commonly associated with the application service layer. As a result, a utility service can be referred to as a utility application service.
Controller service model
Service compositions are comprised of a set of independent services that each contribute to the execution of the overall business task. The assembly and coordination of these services is often a task in itself and one that can be assigned as the primary function of a dedicated service or as the secondary function of a service that is fully capable of executing a business task independently. The controller service fulfills this role, acting as the parent service to service composition members.
Note that controller services themselves can become subordinate service composition members. In this case the composition coordinated by a controller is, in its entirety, composed into a larger composition. In this situation there may be a master controller service that acts as the parent to the entire service composition, as well as a sub-controller, responsible for coordinating a portion of the composition.
Service provider entity Vs Service provider agent
The term "service provider" also is used to identify the organization (or individual) responsible for actually providing the Web service. To help distinguish the service role from the service's actual provider, the following, more qualified terms are sometimes used:
service provider entity (the organization or individual providing the Web service)
service provider agent (the Web service itself, acting as an agent on behalf of its owner)
Service provider agent Vs Service Agent
A service provider agent is different from a service agent, which is a small runtime program used to perform generic processing tasks in support of Web services. Service agents are explained in
Service Requestor Entity Vs Service Requestor Agent
A service requestor also called Service Consumer can represent both the Web service itself as well as the Web service owner. Therefore, the following extended terms are available (but not really used that often):
service requestor entity (the organization or individual requesting the Web service)
service requestor agent (the Web service itself, acting as an agent on behalf of its owner)