SOA Made Simple: Service DesignRonald van Luttikhuizen18-April-2013 | OUGN 2013                              1 | 23
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....
Introduction1. So why do we need SOA2. The Solution3. Service Design4. Classification of Services5. The Building Blocks of...
What is a Service ?   “Something useful a                         provider does for a                             consumer...
What is a Service ?    Roles    ● Consumers    ● Provider    ● Owner    ● Hosting providerOrderServiceContract: Free to us...
Agenda                    “What services do we                              actually need based on1.   Introduction       ...
Service IdentificationApproaches                                Top-Down● Meet-in-the-middle● IterativeScope● In scope    ...
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 create and buy usable services.Build: Improve and speed-up imp...
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                                            • PrintServic...
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                      20 | 23
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                                      23 | 23
Upcoming SlideShare
Loading in...5
×

OUGN 2013 - SOA Made Simple: Service Design

1,162

Published on

This presentation provides a summary of the Service Design chapter of the 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.

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

No Downloads
Views
Total Views
1,162
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

OUGN 2013 - SOA Made Simple: Service Design

  1. 1. SOA Made Simple: Service DesignRonald van Luttikhuizen18-April-2013 | OUGN 2013 1 | 23
  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 | 23
  3. 3. Agenda1. Introduction2. Service Identification3. Service Design4. Service Implementation5. Services and Oracle6. Summary 3 | 23
  4. 4. Introduction1. 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 Battles10. Methodologies and SOA slideshare.net/lonneked slideshare.net/rluttikhuizen 4 | 23
  5. 5. What is a Service ? “Something useful a provider does for a consumer”Parts of a service● Contract● Interface● Implementation 5 | 23
  6. 6. What is a Service ? Roles ● Consumers ● Provider ● Owner ● Hosting providerOrderServiceContract: Free to use, High availability (99,1%), Response time < 5s, OwnerInterface: Web Service described by WSDL, WS-Security UserName TokenImplementation: Java (JPA, JAX-WS) 6 | 23
  7. 7. 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 7 | 23
  8. 8. 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● Buy or make Bottom-Up 8 | 23
  9. 9. Agenda Business Case1. Introduction “I have identified the2. Service Identification services that I need,3. Service Design now what?”4. Service Implementation Real Project5. Services and Oracle with Real6. Summary Customers 9 | 23
  10. 10. 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 10 | 23
  11. 11. Service Design | what’s important?Design Guidelines: How to create and buy usable services.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 11 | 23
  12. 12. 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 12 | 23 http://geekandpoke.typepad.com/
  13. 13. 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(cluster) 13 | 23
  14. 14. 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 14 | 23
  15. 15. 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 15 | 23
  16. 16. 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 16 | 23
  17. 17. Agenda1. Introduction2. Service Identification3. Service Design4. Service Implementation5. Services and Oracle6. Summary 17 | 23
  18. 18. 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 18 | 23
  19. 19. Agenda1. Introduction2. Service Identification3. Service Design4. Service Implementation5. Services and Oracle6. Summary 19 | 23
  20. 20. Services and Oracle 20 | 23
  21. 21. Agenda1. Introduction2. Service Design3. Service Implementation4. Services and Oracle5. Summary 21 | 23
  22. 22. 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 … 22 | 23
  23. 23. Thank you!Ronald van Luttikhuizenronald.van.luttikhuizen@vennster.nl 23 | 23

×