Why Service Oriented Architecture DDD North 20151024
-
Upload
sean-farmar -
Category
Software
-
view
353 -
download
2
Transcript of Why Service Oriented Architecture DDD North 20151024
![Page 1: Why Service Oriented Architecture DDD North 20151024](https://reader036.fdocuments.in/reader036/viewer/2022062900/58ec99721a28ab223b8b46c7/html5/thumbnails/1.jpg)
Why Service Oriented
Architecture? Sean Farmar
@farmar
![Page 2: Why Service Oriented Architecture DDD North 20151024](https://reader036.fdocuments.in/reader036/viewer/2022062900/58ec99721a28ab223b8b46c7/html5/thumbnails/2.jpg)
The Evolution•Small monolith•Success == growth == features ++•Team Scaling•Maintenance nightmare == high
risk•So we end up with …
![Page 3: Why Service Oriented Architecture DDD North 20151024](https://reader036.fdocuments.in/reader036/viewer/2022062900/58ec99721a28ab223b8b46c7/html5/thumbnails/3.jpg)
Big Ball of Mud
![Page 4: Why Service Oriented Architecture DDD North 20151024](https://reader036.fdocuments.in/reader036/viewer/2022062900/58ec99721a28ab223b8b46c7/html5/thumbnails/4.jpg)
So I went to my master
![Page 5: Why Service Oriented Architecture DDD North 20151024](https://reader036.fdocuments.in/reader036/viewer/2022062900/58ec99721a28ab223b8b46c7/html5/thumbnails/5.jpg)
Solve the problem you want?
•Coupling your problem is…•Hmmmm•SOA your solution will be
![Page 6: Why Service Oriented Architecture DDD North 20151024](https://reader036.fdocuments.in/reader036/viewer/2022062900/58ec99721a28ab223b8b46c7/html5/thumbnails/6.jpg)
Why SOA?•SOA's tenets are about reducing
coupling.
![Page 7: Why Service Oriented Architecture DDD North 20151024](https://reader036.fdocuments.in/reader036/viewer/2022062900/58ec99721a28ab223b8b46c7/html5/thumbnails/7.jpg)
•Afferent (dependents)•Efferent (depend on)•Temporal (time, RPC)•Spatial (deployment, endpoint
address)•Platform (protocols, .Net
Remoting)
Coupling
![Page 8: Why Service Oriented Architecture DDD North 20151024](https://reader036.fdocuments.in/reader036/viewer/2022062900/58ec99721a28ab223b8b46c7/html5/thumbnails/8.jpg)
Coupling: Afferent & Efferent
•Afferent (dependents)•Efferent (depend on)
Afferent & Efferent solutions:•Attempt to minimize•Zero coupling is not possible
![Page 9: Why Service Oriented Architecture DDD North 20151024](https://reader036.fdocuments.in/reader036/viewer/2022062900/58ec99721a28ab223b8b46c7/html5/thumbnails/9.jpg)
Coupling: TemporalTemporal (time, RPC)
Temporal solutions:•Asynchronous messaging•Publish Subscribe
![Page 10: Why Service Oriented Architecture DDD North 20151024](https://reader036.fdocuments.in/reader036/viewer/2022062900/58ec99721a28ab223b8b46c7/html5/thumbnails/10.jpg)
Coupling: Spatial Spatial (deployment, endpoint address)
Spatial solutions:•Delegate the endpoint/service location to the infrastructure, not in application code
![Page 11: Why Service Oriented Architecture DDD North 20151024](https://reader036.fdocuments.in/reader036/viewer/2022062900/58ec99721a28ab223b8b46c7/html5/thumbnails/11.jpg)
Coupling: PlatformPlatform AKA Interoperability (protocols, .Net Remoting)Platform solutions:•XML on the wire.•Use standards based transfer protocol like http•“Share contract and schema, not class or type”
![Page 12: Why Service Oriented Architecture DDD North 20151024](https://reader036.fdocuments.in/reader036/viewer/2022062900/58ec99721a28ab223b8b46c7/html5/thumbnails/12.jpg)
Fallacies of Distributed Computing•The administrator will know what to
do•The network is reliable•Latency isn’t a problem•Bandwidth isn’t a problem•The network is secure•Topology won’t change
![Page 13: Why Service Oriented Architecture DDD North 20151024](https://reader036.fdocuments.in/reader036/viewer/2022062900/58ec99721a28ab223b8b46c7/html5/thumbnails/13.jpg)
Fallacies of Distributed Computing•Transport cost isn’t a problem
•The network is homogeneous•The system is atomic/monolithic•The system is finished•Business logic can and should be
centralized
![Page 14: Why Service Oriented Architecture DDD North 20151024](https://reader036.fdocuments.in/reader036/viewer/2022062900/58ec99721a28ab223b8b46c7/html5/thumbnails/14.jpg)
In practice
![Page 15: Why Service Oriented Architecture DDD North 20151024](https://reader036.fdocuments.in/reader036/viewer/2022062900/58ec99721a28ab223b8b46c7/html5/thumbnails/15.jpg)
In practice• Vertical Slicing•Using asynchronous messaging •Using publish subscribe • Business domain decomposition• Explicit intentions [naming, context]• Single Responsibility• Command Query Separation• “Clean Code” (Uncle Bob)
![Page 16: Why Service Oriented Architecture DDD North 20151024](https://reader036.fdocuments.in/reader036/viewer/2022062900/58ec99721a28ab223b8b46c7/html5/thumbnails/16.jpg)
Monolith
UI
BL
DAL
DB
Tight CouplingLoose Coupling
![Page 17: Why Service Oriented Architecture DDD North 20151024](https://reader036.fdocuments.in/reader036/viewer/2022062900/58ec99721a28ab223b8b46c7/html5/thumbnails/17.jpg)
Vertical Slicing
UI
BL
DAL
DB Referential Integrity
Tight CouplingLoose Coupling
Re-introduces Coupling
SalesConte
ntCRMOps
![Page 18: Why Service Oriented Architecture DDD North 20151024](https://reader036.fdocuments.in/reader036/viewer/2022062900/58ec99721a28ab223b8b46c7/html5/thumbnails/18.jpg)
Publish Subscribe [pub/sub]
![Page 19: Why Service Oriented Architecture DDD North 20151024](https://reader036.fdocuments.in/reader036/viewer/2022062900/58ec99721a28ab223b8b46c7/html5/thumbnails/19.jpg)
Publish Subscribe [pub/sub]
![Page 20: Why Service Oriented Architecture DDD North 20151024](https://reader036.fdocuments.in/reader036/viewer/2022062900/58ec99721a28ab223b8b46c7/html5/thumbnails/20.jpg)
Subscribe to Customer Status
Updated
PublishCustomer Status Updated
Save status locally
Subscribe to Product Product Pricing UpdatedPricing Updated
PublishProduct Pricing Updated
Save pricing locally
Place Order
Publish Order Accepted
Sales
Marketing
Customer Care
![Page 21: Why Service Oriented Architecture DDD North 20151024](https://reader036.fdocuments.in/reader036/viewer/2022062900/58ec99721a28ab223b8b46c7/html5/thumbnails/21.jpg)
Summary
•SOA•NServiceBus•Particular.net•You can do it
![Page 22: Why Service Oriented Architecture DDD North 20151024](https://reader036.fdocuments.in/reader036/viewer/2022062900/58ec99721a28ab223b8b46c7/html5/thumbnails/22.jpg)
Learn to design better systems
Get access to 2 full days of Udi Dahan's Advanced
Distributed Systems Design video course.
Sign up here:http://go.particular.net/
DDDNorthAccess code : DNORT
Expiration date: Nov 16th
![Page 23: Why Service Oriented Architecture DDD North 20151024](https://reader036.fdocuments.in/reader036/viewer/2022062900/58ec99721a28ab223b8b46c7/html5/thumbnails/23.jpg)
Q&A
Thank You!Sean Farmartwitter: @farmarParticular.net