Just thought of sharing my thought process that I had when I started with SOA...
SOA, Service Oriented Architecture. But before knowing what the SO called Architecture Is??, I wanted to know what is service oriented computing.
The definition of Service Oriented Computing can be devised as:- Service oriented computing represents a new generation distributed computing platform. It encompasses many things, including its own design paradigm and design principles, design pattern catalogs, pattern languages, a distinct architectural model, and related concepts technologies and frameworks.
And the elements of SOC are,
- Service - Oriented Architecture
- Service - Orientation
- Service Oriented Solution Logic
- Service Composition
- Service Inventory
Now if we define start looking at SOA, it can be said as,
- An architecture that relies on “service-orientation” as its fundamental design principle.
- Allows for easier management of business processes through the use of flexible IT connections within a well defined, standards-based interface.
- An architectural style that emphasizes implementation of components as modular services that can be discovered and used by clients.
- SOA is a design for linking business and computational resources (principally organizations, applications and data) on demand to achieve the desired results for service consumers (which can be end users or other services).
- SOA establishes an architectural mode that aims to enhance the efficiency, agility, and productivity of an enterprise by positioning services as the primary means through which solution logic is represented in support of the realization of the strategic goals associated with Service Oriented Computing.
- As a form of technology architecture, SOA implementation can consist of a combination of technologies, products, APIs, supporting infrastructure extensions and various other parts.
OASIS (Organization for the Advancement of Structured Information Standards) defines SOA as:- A paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownership domains. It provides a uniform means to offer, discover, interact with and use capabilities to produce desired effects consistent with measurable preconditions and expectations.
Services and Service-orientation
- Service-orientation is a design paradigm comprised of a specific set of design principles.
- Service-orientation describes an architecture that uses loosely coupled services to support the requirements of business process and users.
- Resources in a network in an SOA environment are made available as independent services that can be accessed without knowledge of their underlying platform implementation.
- Is a distinct design paradigm that, when applied, facilitates the creation of service-oriented automation logic in the form of services.
- Provides a distinct means of achieving a separation of concerns.
- Is the core to the design of services regardless of what underlying technology is used to implement them.
- Services exist as physically independent software programs with specific design characteristics that support the attainment of the strategic goals associated with service-oriented computing.
- Each service is assigned its own distinct functional context and is comprised of a set of capabilities related to its context. Those capabilities suitable for invocation by external consumer programs are commonly expressed via a published service contract.
A service composition is a coordinated aggregate of services. A composition of services is comparable to a traditional application in that its functional scope is usually associated with the automation of a parent business process. The ability for a service to be naturally and repeatedly composable is fundamental to attaining several of the strategic goals of service-oriented computing.
A service inventory is an independently standardized and governed collection of complementary services within a boundary that represents an enterprise or a meaningful segment of enterprise.
Larger initiatives may result in an enterprise environment that contains multiple service inventories, each of which can be individually standardized, governed, and supported by its own service-oriented technology architecture. The service inventory grows as projects deliver new services. Plus, opportunities to reuse existing services increase with each subsequent project.
A conceptual view of Service Oriented Computing
A physical view of Service Oriented Computing
Now summarizing the definition towards the SOA paradigm,
Service-oriented architecture represents a distinct form of technology architecture designed in support of service-oriented solution logic which is comprised of services and service compositions shaped by and designed in accordance with service-orientation.
Service-orientation is a design paradigm comprise of service-orientation design principles. When applied to units of solution logic, these principles create services with distinct design characteristics that support the overall goals and vision of service-oriented computing.
Service-oriented computing represents a new generation computing platform that encompasses the service-orientation paradigm and service-oriented architecture with ultimate goal of creating and assembling one or more service inventories.
Did I make the paradigm shift??