0% found this document useful (0 votes)
64 views14 pages

SOA Principles Presentation CMSC441

The document discusses principles of service-oriented architecture (SOA) and design. It describes three types of services: orchestration services which target business processes, task services which target stakeholders and are entity-centric, and utility services which are highly reusable and business agnostic. It then outlines eight principles of service-oriented design: standardized contracts, loose coupling, abstraction, reusability, autonomy, statelessness, discovery, and composability. Finally, it discusses design patterns including layers for utility, orchestration, and task services.

Uploaded by

Jada
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
64 views14 pages

SOA Principles Presentation CMSC441

The document discusses principles of service-oriented architecture (SOA) and design. It describes three types of services: orchestration services which target business processes, task services which target stakeholders and are entity-centric, and utility services which are highly reusable and business agnostic. It then outlines eight principles of service-oriented design: standardized contracts, loose coupling, abstraction, reusability, autonomy, statelessness, discovery, and composability. Finally, it discusses design patterns including layers for utility, orchestration, and task services.

Uploaded by

Jada
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 14

Service Oriented Architecture

Principles
Course: CMSC 355
Instructor: Robert Dahlberg
Service Models
1. Orchestration Services
a) Service targeting business tasks (processes)
b) Orchestration functions (processes services)
c) Task centric – related to business processes
2. Task (Entity) Services
a) Services targeting Stakeholders
b) Functions related to entities
c) Entity centric business services
3. Utility Services
a) Highly reusable
b) Business agnostic
c) Application, infrastructure, or technology services
The 8 Principles of Service-Oriented Design
1. Standard Service Contract
2. Service Loose Coupling
3. Service Abstraction
4. Service Reusability
5. Service Autonomy
6. Service Statelessness
7. Service Discovery
8. Service Composability
The 8 Principles of Service-Oriented Design
1. Standard Service Contract
a. Describes the terms of engagement for the service
b. Technical description of the service
c. Description of the service (Short & Long) and how it is
implemented i.e. GUI, API (or set of APIs), etc.
d. Goals
e. Design Characteristics
f. Implementation Requirements
g. Region of Influence (expression of service, data
representation, policy, …)
The 8 Principles of Service-Oriented Design
2. Service Loose Coupling
a. Not hard coded, highly modifiable
b. Remove dependencies, e.g. ODBC, Brower vs
application
c. Multi directional dependency
d. Reduce coupling within or between services
e. Promotes adaptability
f. No dependence upon outside logic
g. Less configuration, technical and implementation
dependencies
The 8 Principles of Service-Oriented Design
3. Service Abstraction
a. Hid information about a program not required to run
efficiently
b. OOD concept
c. Simplifies usage of services
d. Use of meta data to describe:
i. Technical information
ii. Functional information
iii. Program logic
iv. Quality of Service information
The 8 Principles of Service-Oriented Design
4. Service Reusability
a. Can be used for more than one purpose
b. Multi-purpose services
c. Improves support
d. Improves standardization
e. Easy to add more features globally
f. Reduce complicated coding
g. Reduces redundant coding
h. Formalizes tool-maker function
i. Formalizes Orchestration and Utility layers
The 8 Principles of Service-Oriented Design
5. Service Autonomy
a. Improves reliability
b. Encourages self-governing units (coding independence)
c. Reduces programmer responsibility by creating groups
that take on responsibility of sections of code
d. Encourages specialization
e. Creates service contract between development groups
i. SLA – Service Level Agreement
ii. OLA – Operational Level Agreement
f. Creates easy to use coding services
The 8 Principles of Service-Oriented Design
6. Service Statelessness
a. Agnostic coding – Data or Object Driven
b. Maximum scalability
c. Streamline coding – simpler is better
i. Easier to maintain
ii. More efficient
iii. Can be used in ways not yet imagined
d. Types of state
i. Active vs. Passive
ii. Stateful vs. Stateless
iii. Session vs. Context vs. Business data
The 8 Principles of Service-Oriented Design
7. Service Discovery
a. Does a service exist or do we need to create it?
b. If it exists (or we need to create it)
i. What is its purpose
ii. What are its capabilities
iii. What are its limitations
c. Runtime discovery -- Restful API –
d. Meta Information -- Catalog vs CMDB (configuration
Management Data Base
The 8 Principles of Service-Oriented Design
8. Service Composability
a. Runtime aggregation of libraries and modules, via the
import or include statements
b. Focus on implementation of services
c. Determines composition instance. How much of service
is needed - flexibility
d. How are services initiated – are they lightweight?
e. Service complexity
i. Exception handling
ii. Special protocols
f. Services’ impact upon overall performance
Application Service Layer

Services that provide non-


functional support for the
application Services.

Services that provide functional


support for the application
Services.

Services that provide common


non-functional support for the
application Services.
Service Inventory
Design Patterns – Service Layers

Non-
Service Layer Business Utility Agnostic Agnostic
Logic Logic Logic
Logic
Utility Service X X
Orchestration X X
Service
Task Service X X
Service Patterns
Utility Layer
1. Event-Driven Messages
2. Service Messaging
3. Database Query
4. Report Writer
5. Security calls
6. Identity Mgmt
7. Service Monitoring

Orchestration Layer
1. Enterprise Service Bus
2. Service Broker
3. UI GUI Broker

You might also like