turn your soa up to 11
DESCRIPTION
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.TRANSCRIPT
11
Jim Siegienski ~20 Years Experience Fortune 50 to Startups Enterprise Architect at
Dave Ramsey (Lampo)
THE FIRST RULE…
ProcessGovernanceConflict
PROCESS
3 KeySteps
Functional
Functional
Review
Functional
API
APIFunctional
Review
APIFunctional
Technical
API TechnicalFunctional
Review
API TechnicalFunctional
ImplementationCode goes here!
FUNCTIONAL
SimplicityScopeContext
keep itsimple
User ServiceDescription: Represent a user in the system Create user Update user Get user Get current time Get favorite color
Really!?
Probably Not
Busi
ness
Uni
t
Busi
ness
Uni
t
Busi
ness
Uni
t
Busi
ness
Uni
t
Serv
ice
AND
API
RESTSecurity
Versioning
Method: GETURI: /users/{key}Response: 200Representation:
{ “first_name”: ”John”, “last_name”:”Doe” }Error:
400 Bad Request401 Unauthorized404 Not Found
A Noun is a Person,
Place, or Thing.
GET
POST
PUT
PATCH
DELETE
GET
POST
PUT
PATCH
DELETE
Read
GET
POST
PUT
PATCH
DELETE
Create
GET
POST
PUT
PATCH
DELETE
Update
GET
POST
PUT
PATCH
DELETE Delete
GET
POST
PUT
PATCH
DELETE
Partial Update
Still A Proposal:
http://www.ietf.org/rfc/rfc5789.txt
Security
Svc1
Svc2
SvcnApp1
App2
ROLE
Permission
Permission
Permission
Permission
Permission
Grant
Check
Accept: application/vnd.lampo.service-v2+json
Custom HTTP Headers?
TECHNICAL
Flow ChartClass Diagram
Sequence DiagramData Model
Start
Done?
Start
Process
No
Yes
Flow
Cha
rt
Person
FirstNameLastName
GetName()
User
UsernamePassword
Login()
VIP
Importance
GetImportance()
Clas
s D
iagr
am
Controller Service Model
Sequ
ence
Dia
gram
person
first_namelast_name
Dat
a M
odel
IMPLEMENTATION
ControllerServiceModel
Model
Service
Controller
Model
Service
Controller
Model
Service
Controller•No Business Logic•Take the Call•Format the Output
Model
Controller
Service
Model
Controller
Service•Business Logic•Model Orchestration•Heart of the System
Service
Controller
Model
Service
Controller
Model•Data Access•As Fat as Possible
Model
Service
Controller
Who
What
How
Why?
Svc1 Svc2 Svc3 Svc4 Svcn
UI1 UI2 UI3 UIn
App1 App2 Appn
Glory is fleeting, but obscurity is
forever.Napoleon Bonaparte
Not Everything is black and white.
THANK YOU!
FURTHER READING
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 Johnson
Links: http://bestoked.blogspot.com/2012/02/restful-resources-required-reading.html http://www.springsource.org/ http://www.lucidchart.com/
Contact: [email protected] @JimSiegienski