Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

SOA in the API World - Facades, Transactions, Stateless Services


Published on

Published in: Technology, Business

SOA in the API World - Facades, Transactions, Stateless Services

  1. 1. SOA in the API World –Facades, Transactions, Stateless Services . . .Apigee@apigeeBrian Pagano@brianpaganoGreg Brail@gbrail
  2. 2.
  3. 3.
  4. 4.
  5. 5. @brianpaganoBrian Pagano@gbrailGreg Brail
  6. 6. SOA’s Adventures in API-Land - RecapServices? I’ve got services! (Designing a Façade)Layers: Separation of Responsibility (which Transactions?)Do I make my services stateless?How to design internal APIs?Overview
  7. 7. Previously onSOA’s Adventures inAPI-Land…
  8. 8. Let’s make sure we’re all talking about the same thing.And let’s only talk about the core principles of SOA, notthe cruft that vendors have added on.Some product features have started to be thought of asnecessary for SOA.SOA recap
  9. 9. But SOA is about Service Oriented Architecture.Services are good.This taps into the deeper philosophy of breakingdown problems into components.Components are good.
  10. 10. A service oriented architecture might include,but does not require:• Heavyweight contracts• Service registries• Dynamic discoveryThese are product “features”.
  11. 11. Services? I’ve GotServices
  12. 12. You’ve got servicesNow you need to design a Facade
  13. 13. Avoid the forklift anti-pattern
  14. 14. What are your service consumers using?(Customers, partners, …)
  15. 15. What are your company goals for this API?revenue, reach, holding market share, re-using existing assets
  16. 16. Design a single, RESTful façade that looksoutside-inDon’t expose implementation complexity
  17. 17. Transformation OnboardingProtocol MediationBigSystemDBContentManagement SOAP JDBCAppAppDeveloperXMLRouting Authentication Traffic Mgmt Caching MonitoringAPI Facade
  18. 18. Be consistent
  19. 19. Do what developers are expecting.
  20. 20. Layers:Separation of Responsibility
  21. 21. What types of things should a proxy do?
  22. 22. What types of things would you not wantto do in a proxy?
  23. 23. Do I Make My ServicesStateless?
  24. 24. Yes. Make your services stateless.Unless you have a good reason not to.
  25. 25. But, what do we mean by “stateless”?State can be either data entity state or session/activitystate.
  26. 26. A stateless service never holds data or business domainstate.A stateless service minimizes holding any activity orprocessing state information. (Session data is especiallybad)
  27. 27. Consider a shopping cart:A. The client maintains the state and sends the whole thingback and forth every timeor:B. The server maintains the cart in memory via a temporary“session ID”, and the server empties the cart after someinactivityor:B. The server maintains the cart in a database via a permanent“shopping cart ID”
  28. 28. Plan A: Requiring the client to maintain all state – isimpracticalPlan C : Storing the state in a database – gives thedeveloper what they expect, and gives businessbenefits tooButPlan B: A “session” – was popular in the Web 1.0 erabut is unnecessary in today’s world of scalable andavailable databases
  29. 29. How To DesignInternal APIs
  30. 30. NoAre Internal APIs Just SOA?
  31. 31. Internal APIs are APIs which are not exposed tothe outside world.SOA is SOALet’s keep these things straight.
  32. 32. Design internal APIs with the same level ofconsumability as you would an externally-facing API.
  33. 33. Why should you use APIs rather than SOA as themodel for your internal services? You will want to use the same services for both mobile appsand your web apps You don’t know what kinds of device technology your API willneed to support in the future You don’t know what kinds of web app technology yourdevelopers will want to use in the future You do know that it will all change and you will have to adaptquickly
  34. 34. Down the road, who knows . . .What does “internal” mean anyway?Besides, you might use them again for adifferent audience.
  35. 35. In SumSOA still has uses in the API worldAn API layer is critical to meet today’s businessdemandsSometimes they work well togetherExpose functionality, not systems orimplementation complexity
  36. 36. Questions
  37. 37.
  38. 38. THANK YOUQuestions and ideas