SOA Made Simple: Service Classification

32
1 | 30 SOA Made Simple: Service Classification Ronald van Luttikhuizen 2-December-2013 | UKOUG Tech 2013

description

Classifying your services into different types is an important part of SOA governance. A common classification is based on granularity and the ability of services to be combined into larger ones. Combining components into larger objects is a natural way of thinking. Consider the assembly of car parts such as tires and engines from small components and the assembly of entire cars from these car parts. This is a natural way of differentiating between screws and bolts, cylinders, and an entire Volkswagen. This session explains service classification and how service types are mapped onto the various products in the Fusion Middleware stack. A reference architecture is presented to show how Fusion Middleware supports these different service types.

Transcript of SOA Made Simple: Service Classification

Page 1: SOA Made Simple: Service Classification

1 | 30

SOA Made Simple: Service Classification

Ronald van Luttikhuizen

2-December-2013 | UKOUG Tech 2013

Page 2: SOA Made Simple: Service Classification

2 | 30

Ronald van Luttikhuizen • Managing Partner at Vennster

• Oracle ACE Director for Fusion Middleware and SOA

• Author of different articles, co-author Oracle SOA Book 11g book

• Book SOA Made Simple

• Architect, consultant, trainer for Oracle, SOA, EDA, Java

• More than 10 years of software development and architecture

experience

• Contact: [email protected]

• Blog: blog.vennster.nl

• Twitter: rluttikhuizen

Page 3: SOA Made Simple: Service Classification

3 | 30

Agenda

1. Introduction

2. Service Identification

3. Service Classification

4. Classification & Oracle Fusion Middleware

5. Summary

Page 4: SOA Made Simple: Service Classification

4 | 30

Introduction

1. So why do we need SOA

2. The Solution

3. Service Design

4. Classification of Services

5. The Building Blocks of SOA

6. Solution Architectures

7. Creating a Roadmap

8. Lifecycle Management

9. Pick your Battles

10. Methodologies and SOA

http://www.slideshare.net/lonneked http://www.slideshare.net/rluttikhuizen

Page 5: SOA Made Simple: Service Classification

5 | 30

What is a Service ?

Roles

● Consumers

● Provider

● Owner

● Hosting provider

● Administrator

OrderService

Contract: Free to use, High availability (99,1%),

Response time < 5s, Owner

Interface: Web Service described by WSDL, WS-Security

UserName Token

Implementation: Java (JPA, JAX-WS)

Page 6: SOA Made Simple: Service Classification

6 | 30

What is a Service ? | example: SOAP Web Service

<wsdl:service name="OrderService">

<wsdl:operation name="orderProduct">

<wsdl:input message="order:OrderProductRequestMessage"/>

<wsdl:output message="order:OrderProductResponseMessage"/>

<wsdl:fault message="order:ProductNotInStockFaultMessage"

name="ProductNotInStockFault"/>

</wsdl:operation>

<wsdl:operation name="cancelOrder">

<wsdl:input message="order:CancelOrdeRequestMessage"/>

<wsdl:output message="order:CancelOrderResponseMessage"/>

<wsdl:fault message="order:UnknownOrderFaultMessage"

name="UnknownOrderFault"/>

</wsdl:operation>

</wsdl:service>

Types

● Business

● Information

● Technical

Example: SOAP WS

● Service

● Operation

● Input

● Output

● Fault

Page 7: SOA Made Simple: Service Classification

7 | 30

Agenda

1. Introduction

2. Service Identification

3. Service Classification

4. Classification & Oracle Fusion Middleware

5. Summary

“What services do we actually need based on

the requirements of our clients?”

Page 8: SOA Made Simple: Service Classification

8 | 30

Service Identification

Approaches

● Meet-in-the-middle

● Iterative

Scope

● In scope • Services

● Out of scope • Operations

• Input, output, faults

• Implementation

Governance

● Registry & repository

Gap-analysis

● Reuse, buy or make

Top-Down

Bottom-Up

OrderService

InvoiceService

DocumentService

PrintService

CustomerService

PaymentService

InventoryService

Page 9: SOA Made Simple: Service Classification

9 | 30

Agenda

1. Introduction

2. Service Identification

3. Service Classification

4. Classification & Oracle Fusion Middleware

5. Summary

Page 10: SOA Made Simple: Service Classification

10 | 30

Why classify your services?

It supports you being in control: Governance

● Focus on important aspects

● Importance of criteria differs per stakeholder

● Know your services, support decision-making processes

● What guidelines, best practices and technology to apply

Page 11: SOA Made Simple: Service Classification

11 | 30

What criteria to use?

OrderService

InvoiceService

DocumentService

PrintService

CustomerService

PaymentService

InventoryService FinanceService PlanningService

ClaimService

CaseDocumentService

ScheduleService

Granularity

Actor type

Channel

Security level

Organizational boundaries

Architectural layer

Functionality

Page 12: SOA Made Simple: Service Classification

12 | 30

Classification | Service Registry

Service Type Public (external) Public (internal) Private

Serv

ice

Do

mai

ns

Grid Services

Asset Management

Grid Operations

Transport Services

System Operations ScheduleService 0.1 IntradayNorNedService 0.1

PlanningService 0.1 IntradayItdService 0.1

DayAheadProcessService 0.1 IntradayLixService 0.1

Certification Services

Human Resources

Customer Relationship Management CustomerService 0.1

Finance

Information Technology ErrorHospitalService 0.1

B2BChannelService 0.1

ErrorMonitoringService 0.1

ReportingService 0.1

Page 13: SOA Made Simple: Service Classification

13 | 30

Example classification | for developers

Process services ● Longer running

● Span transactions

Composite services ● Single transaction

● Relatively short running

Elementary services ● Smallest possible

● Short running

Page 14: SOA Made Simple: Service Classification

14 | 30

Example classification | for developers

Page 15: SOA Made Simple: Service Classification

15 | 30

Example classification | for developers

Why this classification?

● Natural way of thinking for

developers

● Guidelines & implementation

differs

● Simplicity

Page 16: SOA Made Simple: Service Classification

16 | 30

Agenda

1. Introduction

2. Service Identification

3. Service Classification

4. Classification & Oracle Fusion Middleware

5. Summary

Page 17: SOA Made Simple: Service Classification

17 | 30

Oracle Fusion Middleware | what to use ?

“Many choices, what to use?”

Important for SOA ● Oracle Service Bus

● Oracle SOA Suite ● BPEL, Business Rules,

Mediator, Human Workflow, Spring

● Oracle BPM Suite ● BPMN, Case Management

Page 18: SOA Made Simple: Service Classification

18 | 30

Implementation | elementary services

Packaged Applications ● Oracle EBS

● Oracle Fusion Applications

● Salesforce.com

● …

Custom-built software ● Java/JEE

● PL/SQL

● Oracle Service Bus

● Oracle SOA Suite

● …

Page 19: SOA Made Simple: Service Classification

19 | 30

Elementary service | implementation in JAX-WS

@Stateless

@WebService(

serviceName = "CalculatorService",

targetNamespace = "http://www.vennster.nl/services/CalaculatorService")

public class CalculatorService implements ICalculator {

@WebMethod

public int sum(int number1, int number2) {

return number1 + number2;

}

@WebMethod

public int multiply(int number1, int number2) {

return number1 * number2;

}

}

Page 20: SOA Made Simple: Service Classification

20 | 30

Elementary service | implementation in OSB

Page 21: SOA Made Simple: Service Classification

21 | 30

Elementary service | implementation in SOA Suite

Page 22: SOA Made Simple: Service Classification

22 | 30

Dont’s

● Programming in BPEL and OSB

• Translating business rules to

process flow

• Calculations

● High-volume messages in BPEL

without tuning

● Long running transactions

Page 23: SOA Made Simple: Service Classification

23 | 30

Implementation | composite services

Aggregation versus

Orchestration

● Oracle Service Bus

● Oracle SOA Suite

• Mediator

• BPEL

Page 24: SOA Made Simple: Service Classification

24 | 30

Composite service | implementation in OSB

Page 25: SOA Made Simple: Service Classification

25 | 30

Composite service | implementation in SOA Suite

Page 26: SOA Made Simple: Service Classification

26 | 30

Dont’s

● Tight-coupling such as database

links

● Complex composition in OSB

● Composite services for very

specific cases

Page 27: SOA Made Simple: Service Classification

27 | 30

Implementation | process services

Process type and level of

detail

● Oracle SOA Suite (BPEL)

● Oracle BPM

• BPMN

• Case Management

Page 28: SOA Made Simple: Service Classification

28 | 30

Beware

● BPMN versus BPEL

• Type of audience

• Technicality

• Different notation

● BPMN versus Case

Management

• Unpredictability of

processes

Page 29: SOA Made Simple: Service Classification

29 | 30

Interface | all layers

One layer for accessing

services, logging, coping

with changes, etc.

● Oracle Service Bus

Page 30: SOA Made Simple: Service Classification

30 | 30

Agenda

1. Introduction

2. Service Design

3. Service Implementation

4. Services and Oracle

5. Summary

Page 31: SOA Made Simple: Service Classification

31 | 30

Summary

● Start using a

classification

● You can have more

than one

● Configure your

registry according

to a classification

for consumers

O

racl

e Se

rvic

e B

us

BPMN (Oracle BPM Suite)

Case Management (Oracle BPM Suite)

BPEL & HW & BR (Oracle SOA Suite)

BPEL & Mediator (Oracle SOA Suite)

Oracle Service Bus

Oracle Service Bus Applications, Java,

PL/SQL, etc. Oracle SOA Suite

Page 32: SOA Made Simple: Service Classification

32 | 30

Thank you!

Ronald van Luttikhuizen

[email protected]