Sponsors and Partners Strategic Sponsors Gold Sponsors Silver

  • Slides: 25
Download presentation
Sponsors and Partners Strategic Sponsors Gold Sponsors Silver Sponsors

Sponsors and Partners Strategic Sponsors Gold Sponsors Silver Sponsors

Why Service Oriented Architecture? Sean Farmar @farmar

Why Service Oriented Architecture? Sean Farmar @farmar

The Evolution • Small monolith • Success == growth == features ++ • Scaling

The Evolution • Small monolith • Success == growth == features ++ • Scaling • Maintenance nightmare == high risk • So we end up with …

Big Ball of Mud

Big Ball of Mud

So I went to my master

So I went to my master

Solve the problem you want? • Coupling your problem is… • Hmmmm • SOA

Solve the problem you want? • Coupling your problem is… • Hmmmm • SOA your solution will be

Why SOA? • SOA's tenets are about reducing coupling.

Why SOA? • SOA's tenets are about reducing coupling.

Coupling • Afferent (dependents) • Efferent (depend on) • Temporal (time, synchronous communication) •

Coupling • Afferent (dependents) • Efferent (depend on) • Temporal (time, synchronous communication) • Spatial (deployment, endpoint address) • Platform (protocols, . Net Remoting)

Coupling: Afferent & Efferent • Afferent (dependents) • Efferent (depend on) Afferent & Efferent

Coupling: Afferent & Efferent • Afferent (dependents) • Efferent (depend on) Afferent & Efferent solutions: • Attempt to minimize • Zero coupling is not possible

Coupling: Temporal (time, synchronous communication) Temporal solutions: • Asynchronous messaging • Publish Subscribe

Coupling: Temporal (time, synchronous communication) Temporal solutions: • Asynchronous messaging • Publish Subscribe

Coupling: Spatial (deployment, endpoint address) Spatial solutions: • Delegate service location to the infrastructure,

Coupling: Spatial (deployment, endpoint address) Spatial solutions: • Delegate service location to the infrastructure, not in application code

Coupling: Platform AKA Interoperability (protocols, . Net Remoting) Platform solutions: • XML on the

Coupling: Platform 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”

Fallacies of Distributed Computing 1. The network is reliable. (Bill Joy and Tom Lyon)

Fallacies of Distributed Computing 1. The network is reliable. (Bill Joy and Tom Lyon) 2. Latency is zero. (Bill Joy and Tom Lyon) 3. Bandwidth is infinite. (Bill Joy and Tom Lyon) 4. The network is secure. (Bill Joy and Tom Lyon) 5. Topology doesn’t change. (Peter Deutsch) 6. There is one administrator. (Peter Deutsch) 7. Transport cost is zero. (Peter Deutsch) 8. The network is homogeneous. (James Gosling)

Fallacies of Distributed Computing Three more. . . • The system is atomic/monolithic •

Fallacies of Distributed Computing Three more. . . • The system is atomic/monolithic • The system is finished • Business logic can and should be centralized • Ted Neward’s blog: http: //blogs. tedneward. com/post/enterprisecomputing-fallacies/

The Fallacies EBook • Go to: http: //go. particular. net/developerdays 16

The Fallacies EBook • Go to: http: //go. particular. net/developerdays 16

In practice

In practice

In practice • • Business domain decomposition (entity fields) Vertical Slicing Using asynchronous messaging

In practice • • Business domain decomposition (entity fields) Vertical Slicing Using asynchronous messaging for state changing operation Publish subscribe Explicit intentions [naming, context] Single Responsibility Command Query Separation “Clean Code” (Uncle Bob)

Monolith Tight Coupling Loose Coupling UI BL DAL DB

Monolith Tight Coupling Loose Coupling UI BL DAL DB

Vertical Slicing Tight Coupling Loose Coupling UI BL Sales Conten t Ops CRM DAL

Vertical Slicing Tight Coupling Loose Coupling UI BL Sales Conten t Ops CRM DAL DB Referential Integrity Re-introduces Coupling

Publish Subscribe [pub/sub]

Publish Subscribe [pub/sub]

Publish Subscribe [pub/sub]

Publish Subscribe [pub/sub]

Place Order Sales Save status locally Save pricing locally Subscribe to Product Pricing Updated

Place Order Sales Save status locally Save pricing locally Subscribe to Product Pricing Updated Subscribe to Customer Status Updated Publish Product Pricing Updated Publish Customer Care Customer Status Updated Publish Order Accepted Marketing

Summary • SOA/Microservices not a cookie cutter • Be Pragmatic, sometimes a monolith is

Summary • SOA/Microservices not a cookie cutter • Be Pragmatic, sometimes a monolith is a great solution • Avoid all aspects of coupling • NService. Bus • Particular. net • Just do it

Q&A Thank You! Sean Farmar twitter: @farmar Particular. net

Q&A Thank You! Sean Farmar twitter: @farmar Particular. net

Sponsors and Partners Strategic Sponsors Gold Sponsors Silver Sponsors

Sponsors and Partners Strategic Sponsors Gold Sponsors Silver Sponsors