What is a SOA Service - from the Business Perspective? How detailed, what level of functionality...

27
Clearly Defining “What is a Business Service?” SOA Concepts Akiva Marks Senior SOA Architect http:// MakingSOAwork. blogspot.com

description

This presentation discusses a tricky SOA question that few address - what should a SOA service do? What level of business work or process steps or granularity should a SOA service contain? Or, in laymans terms, what is a service (what should a service do or be?)

Transcript of What is a SOA Service - from the Business Perspective? How detailed, what level of functionality...

Page 1: What is a SOA Service - from the Business Perspective?  How detailed, what level of functionality does it expose?

Clearly Defining“What is a Business Service?” SOA

ConceptsAkiva MarksSenior SOA Architect

http:// MakingSOAwork.blogspot.com

Page 2: What is a SOA Service - from the Business Perspective?  How detailed, what level of functionality does it expose?

The Great SOA Hope…

Page 3: What is a SOA Service - from the Business Perspective?  How detailed, what level of functionality does it expose?

So, What’s a Service?

−Defining "services" is a bit like defining “curses" -- it's hard to explain, but you know it when you hear it. 

Lorraine LawsonIT Business EdgeIntegration Blog

Page 4: What is a SOA Service - from the Business Perspective?  How detailed, what level of functionality does it expose?

So, What’s a Service? #2

−When to promote a service to a Business Service is very hard to tell and it depends on the company’s specific business.

Aristo TogliattiSymbian Developers JournalSOA & WOA

Page 5: What is a SOA Service - from the Business Perspective?  How detailed, what level of functionality does it expose?

Events Action

s

Events Action

s

A Service is…

• Actions and Events associated with an

Entity or Process

• Function – I.T. ‘code’ implementing an action or event.

Entity Process

Page 6: What is a SOA Service - from the Business Perspective?  How detailed, what level of functionality does it expose?

Some Service Goals

• Reusable

− The next time the business needs the same functionality, it’s already there and available for use.

• Single Instance

− A business process has corresponding I.T. “code” that only has to be maintained and changed in one place.

Page 7: What is a SOA Service - from the Business Perspective?  How detailed, what level of functionality does it expose?

Different Kinds of Services

• An I.T. service is a unit of code providing an open interface that is abstracted from its implementation.

− Process Services - Encapsulation of business flow and application composition. BPM workflows.

− Business Logic Services - Encapsulation of functions.

− Data Services – Interaction with Entities, management of data access and persistence.

− Infrastructure Services - Common utility functions such as monitoring, logging, and security. 

Page 8: What is a SOA Service - from the Business Perspective?  How detailed, what level of functionality does it expose?

Data Services

• A Service that encapsulates an Entity.

• The logical view of the entity…− Database fields.− Simple Calculated fields like age.− Decoding (city code plus city name).

• Simple actions upon the entity…− Insert, Update, Delete− Query (Summary, Detailed)

Entity

Page 9: What is a SOA Service - from the Business Perspective?  How detailed, what level of functionality does it expose?

“Simple Customer Interaction”Entity/Data Service

An Entity – A Data Service

- Create- Update- Delete

- Everything

- Basic- Age

Customer

- Status Change

Business Actions

ServiceInterfaceQuery Functions

Data Functions

Page 10: What is a SOA Service - from the Business Perspective?  How detailed, what level of functionality does it expose?

Possible Standard Entities

Insured

Policy

Claim

Doctor

Page 11: What is a SOA Service - from the Business Perspective?  How detailed, what level of functionality does it expose?

Standard Entity Actions

− Insert− Update

− Details− List

Publish

Retrieve

Page 12: What is a SOA Service - from the Business Perspective?  How detailed, what level of functionality does it expose?

Business Logic Services

• A ‘simple process’ that calculates or transforms information and produces an output.

• Usually a single block of code.

• A function. An algorithm.

Process

Page 13: What is a SOA Service - from the Business Perspective?  How detailed, what level of functionality does it expose?

“Calculate Pension Amount”Service

A Business Logic Service – Example #1

CalculatePension

Regular

Member of Parliament

Government Employee

ServiceInterface

Page 14: What is a SOA Service - from the Business Perspective?  How detailed, what level of functionality does it expose?

“Calculate Salary” Service

A Business Logic Service – Example #2

Service Interfac

e

(internal function)

Basic Salary(internal function)

Salary Tax(internal function)

Health Tax(internal function)

Add Benefits

CalculateSalary Bonus

Regular

DetermineVacation

CheckSick Days

Page 15: What is a SOA Service - from the Business Perspective?  How detailed, what level of functionality does it expose?

“Process Services”

• A BPM workflow.• A set of tasks that transforms information and

produces an output. Some activities may be conditional, or alternatives, or run in parallel, it is seldom a simple chain.

Process

Page 16: What is a SOA Service - from the Business Perspective?  How detailed, what level of functionality does it expose?

“Determine Disability Eligibility” Service

A Process Service

Determine

EligibilityCitizen

ServiceInterfac

e

Workflow –Doctor Review

Workflow –Medical

Committee

Page 17: What is a SOA Service - from the Business Perspective?  How detailed, what level of functionality does it expose?

Infrastructure Services

• Services that provide I.T. functionality, such as logging, monitoring, security, printing, document processing, scanning, etc.

• Often vendor provided tools or components.

I.T.Process

“Central Logging” Service

Logging

Security Errors

Application Errors

Service Errors

ServiceInterface

Page 18: What is a SOA Service - from the Business Perspective?  How detailed, what level of functionality does it expose?

Composite Services

• Services may relyupon other services.

• Services may operateat different levels ofgranularity (detail).

Page 19: What is a SOA Service - from the Business Perspective?  How detailed, what level of functionality does it expose?

BPM Workflows Use Servicesand Are Services

• BPM Workflows can use services to activate and fulfill process steps.

• BPM Workflows can be encapsulated by services and exposed as services.

• Workflows can use other workflows as process steps.

• Services can activate workflows or use workflows as part of a composite service.

Page 20: What is a SOA Service - from the Business Perspective?  How detailed, what level of functionality does it expose?

Methodology: Services and Analysis• Determine High Level Entities

• Determine High Level Actions− and mid-level actions against Entities

• Determine High and Mid Level Business Processes

• Consider whether you can compose workflows and processes with the resulting services.

Page 21: What is a SOA Service - from the Business Perspective?  How detailed, what level of functionality does it expose?

Methodology: How Much To Expose?• Completely expose the Entity!

• Why?− More exposed, more chance of reuse.− Less exposed, need for changes later = bad.

− Changes cost a lot of money… (project, management, testing, deployment, etc.)

− Hardware to handle overhead is cheap (compared to the cost of programmers and change projects).

− Processing time is not significant compared to the service overhead.

− Arguments why not…overhead (network, disk, CPU – now cheap), security (let the security layer handle it), extra work (one day now, many days later).

• Example, Customer Entity includes Address, City Code plus City Name, Date of Birth plus Age, and all customer details available.

Page 22: What is a SOA Service - from the Business Perspective?  How detailed, what level of functionality does it expose?

Methodology: How Much Functionality?• Expose the Process and it’s first level of detail.

• Let calling systems manipulate the process at the level of capability the code allows manipulation.

• Let the process act as a black-box engine, all switches and controls exposed for maximum flexibility.

• Handle complexity with default or standard settings with overrides.

• Acting as a transaction engine means the service only needs to be changed if the business process changes.

• Why? Someone always needs “a little more” of what the process does exposed up until the full process options are exposed. And change costs significant money (time / effort).

Page 23: What is a SOA Service - from the Business Perspective?  How detailed, what level of functionality does it expose?

Methodology: Business Services

BusinessUnit

BusinessCapabilities

BusinessProcesses

BusinessServices

Page 24: What is a SOA Service - from the Business Perspective?  How detailed, what level of functionality does it expose?

Methodology: Business to IT Services

BusinessUnit

BusinessCapabilities

BusinessProcesses

BusinessServices

ITSOA Service

ITBPM Workflow

Business IT

Page 25: What is a SOA Service - from the Business Perspective?  How detailed, what level of functionality does it expose?

Methodology: Service Analysis

BusinessUnit

BusinessCapabilities

BusinessProcesses

BusinessServices

ITSOA Service

ITBPM Workflow

High Level Use Case + UML Use Case or

Flowchart

Detailed Use Case + UML Sequence

Diagram

Business IT DevelopmentAnalysis

Page 26: What is a SOA Service - from the Business Perspective?  How detailed, what level of functionality does it expose?

Service Metadata

• Service Overview (e.g. name, description)   • Lifecycle Attributes (e.g. version, version relationships, lifecycle

status)• Classification (e.g. basic, composite, infrastructure, business)• Endpoint Deployment Attributes (e.g. protocols, location, WS-*

specifications)• Data Model (e.g. XML Schema, WSDL, version, semantics,

validation)• Service Level Requirements and Policies (e.g. availability,

capacity, responsiveness, security, transaction rate)• Mediation (e.g. routing, queuing, caching, transformation)• Service Dependency Attributes (e.g. services, databases,

directories, frameworks)   • Physical Instance Dependencies (e.g. application platform,

security, management)• Business Process Model (e.g. UML diagram, business

classification)• Contract information (e.g. consumers, providers, utilization)• Usage Guidelines (e.g. time of day, availability, # of users.

throughput)

Page 27: What is a SOA Service - from the Business Perspective?  How detailed, what level of functionality does it expose?

Thank You