Your SlideShare is downloading. ×
Turn your SOA up to 11
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Turn your SOA up to 11

1,551

Published on

Learn the secrets of a successful Service Oriented Architecture from a seasoned veteran that has seen large scale implementations come and go with varying levels of success.

Learn the secrets of a successful Service Oriented Architecture from a seasoned veteran that has seen large scale implementations come and go with varying levels of success.

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

  • Be the first to like this

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

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Functional - Keep it simple
  • Functional - Limit scopeOne conceptDoes the capability belong here? Be honestDefine terminology
  • Context free
  • If you use the word "and" it's doing too much
  • API - Clear, consistent, and concise-void tight coupling (RMI, RPC)
  • API - REST - Resource as noun
  • API - REST - Access via verb (method)Post, put, get, deletePatch?
  • API - REST - Access via verb (method)Post, put, get, deletePatch?
  • API - REST - Access via verb (method)Post, put, get, deletePatch?
  • API - REST - Access via verb (method)Post, put, get, deletePatch?
  • API - REST - Access via verb (method)Post, put, get, deletePatch?
  • API - REST - Access via verb (method)Post, put, get, deletePatch?
  • API - SecurityCentralize AuthorityTrust no-one
  • Use permissions, not roles… pleasePermissions are granular and flexibleRoles are annoyingYou can grant Roles for administrative gains, but secure/check permissions (be specific)
  • API - Versioning Accept headerAccept: application/vnd.lampo.service-v2+jsonDon't put versions in your URL! That will break the API
  • API - Custom headers? We use some for tokens and error codes, need to do more evaluation
  • Technical – documentationFlow chart, class diagram, sequence diagram, data model
  • Simple flow chart top to bottom, left to right
  • Simple class diagram
  • Simple sequence diagram
  • Simple data model
  • Technical – ControllerKeep thin. Take call, respond to call. Separation of concerns
  • Technical – ControllerKeep thin. Take call, respond to call. Separation of concerns
  • Technical – ServiceIf using a thin model (cough, java) then have a thick serviceCross model orchestration.Heavy business logic if model is thin
  • Technical – ServiceIf using a thin model (cough, java) then have a thick serviceCross model orchestration.Heavy business logic if model is thin
  • Technical – ModelThin model (VO)Thick model (business) - works better in Ruby and other robust languages
  • Technical – ModelThin model (VO)Thick model (business) - works better in Ruby and other robust languages
  • Success is Fragile
  • Not everything is black and white – ask what’s working and what’s not working?
  • resources
  • Transcript

    • 1. 11
    • 2.  Jim Siegienski ~20 Years Experience Fortune 50 to Startups Enterprise Architect at Dave Ramsey (Lampo)
    • 3. THE FIRST RULE…
    • 4. ProcessGovernanceConflict
    • 5. PROCESS
    • 6. 3 KeySteps
    • 7. Functional
    • 8. ReviewFunctional
    • 9. Functional API
    • 10. ReviewFunctional API
    • 11. Functional API Technical
    • 12. ReviewFunctional API Technical
    • 13. Functional API Technical
    • 14. Implementation
    • 15. FUNCTIONAL
    • 16. SimplicityScopeContext
    • 17. keep itsimple
    • 18. User ServiceDescription: Represent a user in the system Create user Update user Get user Get current time Get favorite color
    • 19. Business UnitBusiness Unit ServiceBusiness UnitBusiness Unit
    • 20. API
    • 21. REST SecurityVersioning
    • 22. Method: GETURI: /users/{key}Response: 200Representation: { “first_name”: ”John”, “last_name”:”Doe” }Error: 400 Bad Request 401 Unauthorized 404 Not Found
    • 23. A Noun is aPerson, Plac e, or Thing.
    • 24. GETPOST PUTDELETEPATCH
    • 25. GET ReadPOST PUTDELETEPATCH
    • 26. GETPOST Create PUTDELETEPATCH
    • 27. GETPOST PUT UpdateDELETEPATCH
    • 28. GETPOST PUTDELETE DeletePATCH
    • 29. GETPOST PUTDELETEPATCH Partial Update
    • 30. Svc1App2 Svc2 Security App1 Svcn
    • 31. PermissionROLE Permission Permission Permission Permission
    • 32. Accept: application/vnd.lampo.service-v2+json
    • 33. Custom HTTP Headers?
    • 34. TECHNICAL
    • 35. Flow Chart Class DiagramSequence Diagram Data Model
    • 36. Start ProcessFlow Chart Done? No Yes Start
    • 37. Person FirstName LastName GetName()Class Diagram VIP User Username Importance Password GetImportance() Login()
    • 38. Controller Service ModelSequence Diagram
    • 39. Data Model person first_name last_name
    • 40. IMPLEMENTATION
    • 41. ControllerServiceModel
    • 42. Controller Service Model
    • 43. Controller Service Model
    • 44. •No Business Logic •Take the CallController •Format the Output Service Model
    • 45. ControllerService Model
    • 46. Controller •Business Logic •Model OrchestrationService •Heart of the System Model
    • 47. Controller ServiceModel
    • 48. Controller Service •Data Access •As Fat as PossibleModel
    • 49. Controller Service Model
    • 50. WhoWhat Why?How
    • 51. UI1 UI2 UI3 UIn App1 App2 AppnSvc1 Svc2 Svc3 Svc4 Svcn
    • 52. Glory isfleeting, but obscurity is forever. Napoleon Bonaparte
    • 53. Not Everything is black and white.
    • 54. THANK YOU!
    • 55. FURTHER READING
    • 56. Books: SOA Governance by Thomas Erl Design Patterns: Elements of Reusable Object Oriented Software by GoF Expert One-on-One J2EE Design and Development by Rod JohnsonLinks: http://bestoked.blogspot.com/2012/02/restful-resources-required-reading.html http://www.springsource.org/ http://www.lucidchart.com/Contact: jim.siegienski@gmail.com @JimSiegienski

    ×