1 | 30
SOA Made Simple: Service Classification
Ronald van Luttikhuizen
2-December-2013 | UKOUG Tech 2013
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
3 | 30
Agenda
1. Introduction
2. Service Identification
3. Service Classification
4. Classification & Oracle Fusion Middleware
5. Summary
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
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)
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
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?”
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
9 | 30
Agenda
1. Introduction
2. Service Identification
3. Service Classification
4. Classification & Oracle Fusion Middleware
5. Summary
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
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
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
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
14 | 30
Example classification | for developers
15 | 30
Example classification | for developers
Why this classification?
● Natural way of thinking for
developers
● Guidelines & implementation
differs
● Simplicity
16 | 30
Agenda
1. Introduction
2. Service Identification
3. Service Classification
4. Classification & Oracle Fusion Middleware
5. Summary
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
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
● …
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;
}
}
20 | 30
Elementary service | implementation in OSB
21 | 30
Elementary service | implementation in SOA Suite
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
23 | 30
Implementation | composite services
Aggregation versus
Orchestration
● Oracle Service Bus
● Oracle SOA Suite
• Mediator
• BPEL
24 | 30
Composite service | implementation in OSB
25 | 30
Composite service | implementation in SOA Suite
26 | 30
Dont’s
● Tight-coupling such as database
links
● Complex composition in OSB
● Composite services for very
specific cases
27 | 30
Implementation | process services
Process type and level of
detail
● Oracle SOA Suite (BPEL)
● Oracle BPM
• BPMN
• Case Management
28 | 30
Beware
● BPMN versus BPEL
• Type of audience
• Technicality
• Different notation
● BPMN versus Case
Management
• Unpredictability of
processes
29 | 30
Interface | all layers
One layer for accessing
services, logging, coping
with changes, etc.
● Oracle Service Bus
30 | 30
Agenda
1. Introduction
2. Service Design
3. Service Implementation
4. Services and Oracle
5. Summary
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
Top Related