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

Post on 26-Jan-2015

4.389 views 0 download

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...

Clearly Defining“What is a Business Service?” SOA

ConceptsAkiva MarksSenior SOA Architect

http:// MakingSOAwork.blogspot.com

The Great SOA Hope…

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

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

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

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.

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. 

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

“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

Possible Standard Entities

Insured

Policy

Claim

Doctor

Standard Entity Actions

− Insert− Update

− Details− List

Publish

Retrieve

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

“Calculate Pension Amount”Service

A Business Logic Service – Example #1

CalculatePension

Regular

Member of Parliament

Government Employee

ServiceInterface

“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

“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

“Determine Disability Eligibility” Service

A Process Service

Determine

EligibilityCitizen

ServiceInterfac

e

Workflow –Doctor Review

Workflow –Medical

Committee

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

Composite Services

• Services may relyupon other services.

• Services may operateat different levels ofgranularity (detail).

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.

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.

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.

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).

Methodology: Business Services

BusinessUnit

BusinessCapabilities

BusinessProcesses

BusinessServices

Methodology: Business to IT Services

BusinessUnit

BusinessCapabilities

BusinessProcesses

BusinessServices

ITSOA Service

ITBPM Workflow

Business IT

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

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)

Thank You