Principles of Service Oriented Architecture: Wael Alnemer Senior System Consultant
Principles of Service Oriented Architecture: Wael Alnemer Senior System Consultant
Agenda
Motivation for Service Oriented Architecture (SOA) SOA Defined SOA Principles Applying SOA
source:IBM
SOA Defined
SOA is a software architecture model
in which business functionality are logically grouped and encapsulated into
self contained, distinct and reusable units called services that represent a high level business concept can be distributed over a network can be reused to create new business applications contain contract with specification of the purpose, functionality, interfaces (coarse grained), constraints, usage
Services are autonomous, discrete and reusable units of business functionality exposing its capabilities in a form of contracts. Services can be independently evolved, moved, scaled even in runtime.
type
type
type
2.
3. 4. 5. 6.
Reuse.
Functional standardization in lower levels Customization in higher layers Separation of Concerns. Policies may vary by Layer
Underlying API Basic Services Composed Services
Encapsulate data behavior and data model and ensures data consistency (only on one backend).
Basic services are stateless services with high degree of reusability. Represent fundamental SOA maturity level and usually are build on top existing legacy API (underlying services)
Composed Services :
expose harmonized access to inconsistent basic services technology (gateways, adapters, faades, and functionality-adding services). Encapsulate business specific workflows or orchestrated services.
SOA Principles
Standardized Service Contracts Loose Coupling Abstraction Reusability
Autonomy
Statelessness Discoverability Composability
Policy
Loose Coupling
Service contracts impose low consumer coupling requirements and are themselves decoupled from their surrounding environment." Create specific types of relationships within and outside of service boundaries with a constant emphasis on reducing (loosening) dependencies between
Service contract Service implementation
Service consumers
Abstraction
Service contracts only contain essential information and information about services is limited to what is published in service contracts
Reusability
Services contain and express agnostic logic and can be positioned as reusable enterprise resources."
Autonomy
"Services exercise a high level of control over their underlying runtime execution environment."
Represents the ability of a service to carry out its logic independently of outside influences
To achieve this, services must be more isolated
Primary benefits
Increased reliability Behavioral predictability
Statelessness
"Services minimize resource consumption by deferring the management of state information when necessary."
Discoverability
"Services are supplemented with communicative meta data by which they can be effectively discovered and interpreted." Service contracts contain appropriate meta data for discovery which also communicates purpose and capabilities to humans Store meta data in a service registry or profile documents
Composability
"Services are effective composition participants, regardless of the size and complexity of the composition." Ensures services are able to participate in multiple compositions to solve multiple larger problems
Goal: Establish SOA organization governance (SOA Board) that governs SOA efforts and breaks down capabilities into non-overlapping services
Must address all stages of the service lifecycle (technology selection, design, development practices, configuration management, release management, runtime management, etc.)
Processes
Enforce policies System-driven processes (code check-in, code builds, unit tests) Human-driven process (requests, design reviews, code reviews, threat assessment, test case review, release engineering, service registration, etc.)
Metrics
Measurements of service reuse, compliancy with policy, etc.
Organization Governance program should be run by SOA Board, which should have crossfunctional representatives
Requires governance
Requires executive management buy-in Requires commitment with resources (people and $$)
Thank You