SOA Made Simple: Service Classification

1,595 views

Published on

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.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,595
On SlideShare
0
From Embeds
0
Number of Embeds
56
Actions
Shares
0
Downloads
47
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

SOA Made Simple: Service Classification

  1. 1. SOA Made Simple: Service Classification Ronald van Luttikhuizen 2-December-2013 | UKOUG Tech 2013 1 | 30
  2. 2. 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: ronald.van.luttikhuizen@vennster.nl • Blog: blog.vennster.nl • Twitter: rluttikhuizen 2 | 30
  3. 3. Agenda 1. 2. 3. 4. 5. Introduction Service Identification Service Classification Classification & Oracle Fusion Middleware Summary 3 | 30
  4. 4. 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 4 | 30
  5. 5. 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) 5 | 30
  6. 6. What is a Service ? | example: SOAP Web Service Types ● Business ● Information ● Technical Example: SOAP WS ● Service ● Operation ● Input ● Output ● Fault <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> 6 | 30
  7. 7. Agenda 1. 2. 3. 4. 5. “What services do we actually need based on the requirements of our clients?” Introduction Service Identification Service Classification Classification & Oracle Fusion Middleware Summary 7 | 30
  8. 8. Service Identification Approaches ● Meet-in-the-middle ● Iterative Scope ● In scope • ● Services Out of scope • • • Operations Input, output, faults Implementation Top-Down InventoryService OrderService CustomerService DocumentService InvoiceService PaymentService Governance ● Registry & repository Gap-analysis ● Reuse, buy or make PrintService Bottom-Up 8 | 30
  9. 9. Agenda 1. 2. 3. 4. 5. Introduction Service Identification Service Classification Classification & Oracle Fusion Middleware Summary 9 | 30
  10. 10. 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 10 | 30
  11. 11. What criteria to use? Functionality Security level PlanningService Granularity InventoryService FinanceService OrderService CustomerService DocumentService Organizational boundaries ScheduleService ClaimService PaymentService PrintService InvoiceService CaseDocumentService Channel Architectural layer Actor type 11 | 30
  12. 12. Classification | Service Registry Service Type Public (external) Service Domains Grid Services Asset Management Grid Operations Transport Services System Operations Public (internal) Private ScheduleService 0.1 IntradayNorNedService 0.1 PlanningService 0.1 IntradayItdService 0.1 DayAheadProcessService 0.1 Certification Services Human Resources Customer Relationship Management IntradayLixService 0.1 CustomerService 0.1 Finance Information Technology ErrorHospitalService 0.1 B2BChannelService 0.1 ErrorMonitoringService 0.1 ReportingService 0.1 12 | 30
  13. 13. Example classification | for developers Process services ● Longer running ● Span transactions Composite services ● Single transaction ● Relatively short running Elementary services ● Smallest possible ● Short running 13 | 30
  14. 14. Example classification | for developers 14 | 30
  15. 15. Example classification | for developers Why this classification? ● Natural way of thinking for developers ● Guidelines & implementation differs ● Simplicity 15 | 30
  16. 16. Agenda 1. 2. 3. 4. 5. Introduction Service Identification Service Classification Classification & Oracle Fusion Middleware Summary 16 | 30
  17. 17. 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 17 | 30
  18. 18. 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 … 18 | 30
  19. 19. 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; } } 19 | 30
  20. 20. Elementary service | implementation in OSB 20 | 30
  21. 21. Elementary service | implementation in SOA Suite 21 | 30
  22. 22. Dont’s ● Programming in BPEL and OSB • Translating business rules to process flow • Calculations ● High-volume messages in BPEL without tuning ● Long running transactions 22 | 30
  23. 23. Implementation | composite services Aggregation versus Orchestration ● Oracle Service Bus ● Oracle SOA Suite • Mediator • BPEL 23 | 30
  24. 24. Composite service | implementation in OSB 24 | 30
  25. 25. Composite service | implementation in SOA Suite 25 | 30
  26. 26. Dont’s ● Tight-coupling such as database links ● Complex composition in OSB ● Composite services for very specific cases 26 | 30
  27. 27. Implementation | process services Process type and level of detail ● Oracle SOA Suite (BPEL) ● Oracle BPM • BPMN • Case Management 27 | 30
  28. 28. Beware ● BPMN versus BPEL • Type of audience • Technicality • Different notation ● BPMN versus Case Management • Unpredictability of processes 28 | 30
  29. 29. Interface | all layers One layer for accessing services, logging, coping with changes, etc. ● Oracle Service Bus 29 | 30
  30. 30. Agenda 1. 2. 3. 4. 5. Introduction Service Design Service Implementation Services and Oracle Summary 30 | 30
  31. 31. Summary Case Management (Oracle BPM Suite) Oracle Service Bus ● Start using a classification ● You can have more than one ● Configure your registry according to a classification for consumers BPMN (Oracle BPM Suite) BPEL & Mediator (Oracle SOA Suite) Applications, Java, PL/SQL, etc. BPEL & HW & BR (Oracle SOA Suite) Oracle Service Bus Oracle Service Bus Oracle SOA Suite 31 | 30
  32. 32. Thank you! Ronald van Luttikhuizen ronald.van.luttikhuizen@vennster.nl 32 | 30

×