SOA Made Simple: Service DesignRonald van Luttikhuizen21-November-2012 | DOAG 2012                               1|x
Ronald van Luttikhuizen• Managing Partner at Vennster• Oracle ACE Director for Fusion Middleware and SOA• Author of differ...
Agenda1.   Introduction2.   Service Identification3.   Service Design4.   Service Implementation5.   Services and Oracle6....
Introduction                     Approach to SOA                                Oracle OpenWorld 2011                     ...
What is a Service ?   “Something useful a                         provider does for a                             consumer...
What is a Service ?                            [OASIS]      “A service is a mechanism to enable access to one or     more ...
What is a Service ? | example: SOAP Web Service                   <wsdl:service name="OrderService">Types● Business       ...
What is a Service ?    Roles    ● Consumers    ● Provider    ● Owner    ● Hosting provider    ● AdministratorOrderServiceC...
Agenda                    “What services do we                              actually need based on1.   Introduction       ...
Service IdentificationApproaches                                Top-Down● Meet-in-the-middle● IterativeScope● In scope    ...
Service Identification                         11 | x
Agenda                   Business Case1.   Introduction                             “I have identified the2.   Service Ide...
Service Design | what to do?● Define the functionality it offers● Design the interface   •   Operations   •   Effect, inpu...
Service Design | what’s important?Design Guidelines: How to build or buy usable service. Guidelines can be both technical ...
Design Guideline | trustworthinessNo trust, no use…● Contract● Testing● Security  •   Automated security mechanisms  •   I...
Design Guideline | idempotency                                            Example: SalaryServiceInvoking a service more th...
Design Guideline | isolation             Example: PrintService                                         • PrintService.prin...
Design Consideration | granularity                                    How granular should a serviceServices are of differe...
Service Consideration | reusabilitya service is used by more than oneconsumer or is meant to be usedby more than one consu...
Agenda1.   Introduction2.   Service Identification3.   Service Design4.   Service Implementation5.   Services and Oracle6....
Service Implementation | approaches     Bottom-Up              Top-Down (Contract-First)                               Mee...
Agenda1.   Introduction2.   Service Identification3.   Service Design4.   Service Implementation5.   Services and Oracle6....
Services and Oracle                      23 | x
Agenda1.   Introduction2.   Service Design3.   Service Implementation4.   Services and Oracle5.   Summary                 ...
Summary● Design guidelines help you to build and buy useable  services● Don’t design before you have an actual consumer  I...
Thank you!Ronald van Luttikhuizenronald.van.luttikhuizen@vennster.nl                                      26 | x
Upcoming SlideShare
Loading in …5
×

DOAG 2012 - SOA Made Simple: Service Design

840 views

Published on

This presentation provides a summary of the Service Design chapter of the upcoming SOA Made Simple book. Services are key a key aspect of any SOA. Once you have identified what services your clients require, you can start designing these services by designing their operations, and the input and output of these operations. Service design principles indicate what qualities a service needs to have in order to be a usable building block in the architecture you are trying to achieve. When services are poorly designed or poorly implemented, your solution architecture will probably have little value for the business as well. What we need are sound design principles that help us as a service provider to create (re)useable services, and help us as service consumer to judge if the services that we use (or want to use) are well designed ones. This presentation includes several service design principles and quality-of-service aspects that can be used as checklist when creating, buying, or reviewing services. Such design principles include isolation and idempotency. Most important is that services need to be easy to use, must provide value, and that they can be trusted by (future) consumers.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
840
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

DOAG 2012 - SOA Made Simple: Service Design

  1. 1. SOA Made Simple: Service DesignRonald van Luttikhuizen21-November-2012 | DOAG 2012 1|x
  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• Upcoming 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|x
  3. 3. Agenda1. Introduction2. Service Identification3. Service Design4. Service Implementation5. Services and Oracle6. Summary 3|x
  4. 4. Introduction Approach to SOA Oracle OpenWorld 2011 slideshare.net/lonneked1. So why do we need SOA2. The Solution3. Service Design4. Classification of Services5. The Building Blocks of SOA6. Solution Architectures7. Creating a Roadmap8. Lifecycle Management9. Pick your Battles Lonneke Dikmans10. Methodologies and SOA 22-Nov-2012 | 13-14h 4|x
  5. 5. What is a Service ? “Something useful a provider does for a consumer”Parts of a service● Contract● Interface● Implementation 5|x
  6. 6. What is a Service ? [OASIS] “A service is a mechanism to enable access to one or more capabilities, where the access is provided using a prescribed interface and is exercised consistent with constraints and policies as specified by the service description.” 6|x
  7. 7. What is a Service ? | example: SOAP Web Service <wsdl:service name="OrderService">Types● Business <wsdl:operation name="orderProduct">● Information <wsdl:input message="order:OrderProductRequestMessage"/>● Technical <wsdl:output message="order:OrderProductResponseMessage"/> <wsdl:fault message="order:ProductNotInStockFaultMessage" name="ProductNotInStockFault"/>Example: SOAP WS </wsdl:operation>● Service <wsdl:operation name="cancelOrder">● Operation <wsdl:input message="order:CancelOrdeRequestMessage"/>● Input <wsdl:output message="order:CancelOrderResponseMessage"/>● Output <wsdl:fault message="order:UnknownOrderFaultMessage"● Fault name="UnknownOrderFault"/> </wsdl:operation> </wsdl:service> 7|x
  8. 8. What is a Service ? Roles ● Consumers ● Provider ● Owner ● Hosting provider ● AdministratorOrderServiceContract: Free to use, High availability (99,1%), Response time < 5s, OwnerInterface: Web Service described by WSDL, WS-Security UserName TokenImplementation: Java (JPA, JAX-WS) 8|x
  9. 9. Agenda “What services do we actually need based on1. Introduction the requirements of2. Service Identification our clients?”3. Service Design4. Service Implementation5. Services and Oracle6. Summary 9|x
  10. 10. Service IdentificationApproaches Top-Down● Meet-in-the-middle● IterativeScope● In scope • Services InventoryService● Out of scope OrderService CustomerService • Operations DocumentService • Input, output, faults • Implementation InvoiceService PaymentService PrintServiceGovernance● Registry & repositoryGap-analysis● Reuse, buy or make Bottom-Up 10 | x
  11. 11. Service Identification 11 | x
  12. 12. Agenda Business Case1. Introduction “I have identified the2. Service Identification services that I need,3. Service Design now what?”4. Service Implementation5. Services and Oracle Real Project with Real6. Summary Customers 12 | x
  13. 13. Service Design | what to do?● Define the functionality it offers● Design the interface • Operations • Effect, input and output (incl. faults) • Test cases● Design the contract • Owner, cost, other contractual information • Quality-of-Service (QoS): availability, load, security, and so on● Design the implementation • Tools, languages • Components • Tools for testing 13 | x
  14. 14. Service Design | what’s important?Design Guidelines: How to build or buy usable service. Guidelines can be both technical and non-technical.Build: Improve and speed-up implementation (supply), validate conformity and (re)usability (demand)Buy: Compare offerings, validate conformity and usabilityGuidelines Guidelines Considerations● Provide value ● Trustworthy ● Granularity● Meaningful ● Idempotent ● Reusability● Hide implementation ● Isolated● Interoperable 14 | x
  15. 15. Design Guideline | trustworthinessNo trust, no use…● Contract● Testing● Security • Automated security mechanisms • Interoperable security measures • Include in contract • Transport- vs message-level security● Fault prevention and handling • Differentiate: business, user interaction, technical/software • Include business faults in interface • Exception shielding http://geekandpoke.typepad.com/ 15 | x
  16. 16. Design Guideline | idempotency Example: SalaryServiceInvoking a service more than once should • SalaryService.increaseSalaryyield the same result: • SalaryService.setSalary● Robust and predictable services● Perception of trustIdempotency and state 16 | x
  17. 17. Design Guideline | isolation Example: PrintService • PrintService.printService operations need to be self- • PrintService.setProfilesufficient:● Ease of use (only invoke one operation)● Flexibility (no cascading changes)Also known as autonomy, loose-couplingor decoupling 17 | x
  18. 18. Design Consideration | granularity How granular should a serviceServices are of different and its operations be?importance based on the degree of orvalue they add: How big should my lasagna be?● Big enough to provide value on its own● Small enough to be able to change it● Derive granularity from functionality● Hand in hand with transaction boundariesNeed for a classification 18 | x
  19. 19. Service Consideration | reusabilitya service is used by more than oneconsumer or is meant to be usedby more than one consumer in thefuture:● Not a goal on its own● Save money and time vs loss in flexibility● Impact of changes on other consumersAdded value vs generic/specific vsreusability 19 | x
  20. 20. Agenda1. Introduction2. Service Identification3. Service Design4. Service Implementation5. Services and Oracle6. Summary 20 | x
  21. 21. Service Implementation | approaches Bottom-Up Top-Down (Contract-First) Meet-in-the-Middle Example: Greenfield Examples: Combining Mediator and Examples: Exposing DB Adapter, JAX-WS andusing Adapter, Generating JPA WS for Java class 21 | x
  22. 22. Agenda1. Introduction2. Service Identification3. Service Design4. Service Implementation5. Services and Oracle6. Summary 22 | x
  23. 23. Services and Oracle 23 | x
  24. 24. Agenda1. Introduction2. Service Design3. Service Implementation4. Services and Oracle5. Summary 24 | x
  25. 25. Summary● Design guidelines help you to build and buy useable services● Don’t design before you have an actual consumer Important guidelines • Provide value, meaningful, hide implementation, interoperable, isolated, trustworthy, and idempotent● Important considerations: • Granularity, reusability● If you want to know more about services and SOA … 25 | x
  26. 26. Thank you!Ronald van Luttikhuizenronald.van.luttikhuizen@vennster.nl 26 | x

×