Your SlideShare is downloading. ×
0
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
Turn your SOA up to 11
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,560

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,560
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
5
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

    ×