broker: adventure through architecture pattern
TRANSCRIPT
![Page 1: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/1.jpg)
BrokerAdventure through architecture patterns
![Page 2: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/2.jpg)
by Oleksiy KurnenkovCore Infra Lead @ OnApp
![Page 3: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/3.jpg)
Local VS Distributedsystems
![Page 4: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/4.jpg)
System without a Broker
Local Services
![Page 5: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/5.jpg)
Direct connection.
Clients feel happy
![Page 6: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/6.jpg)
Direct connection.
![Page 7: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/7.jpg)
System without a Broker
Distributed Services
![Page 8: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/8.jpg)
No Broker. Direct connection. Service OK
Clients feel happy
![Page 9: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/9.jpg)
No Broker. Direct connection. Service OK
![Page 10: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/10.jpg)
No Broker. Direct connection. Service not OK
Service is Unavailable
Clients get broken
![Page 11: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/11.jpg)
No Broker. Direct connection. Service not OK
![Page 12: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/12.jpg)
No Broker. Direct connection. Service not OK
Service API has been changed
Clients get broken
![Page 13: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/13.jpg)
No Broker. Direct connection. Service not OK
![Page 14: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/14.jpg)
No Broker. Direct connection. Service not OK
Service has been rewritten in Java
Ruby Clients get confused
![Page 15: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/15.jpg)
No Broker. Direct connection. Service not OK
![Page 16: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/16.jpg)
No Broker. Direct connection. Service not OK
Service has been moved
Clients feel really bad
![Page 17: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/17.jpg)
No Broker. Direct connection. Service not OK
![Page 18: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/18.jpg)
What is a Broker ?
![Page 19: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/19.jpg)
What is a Broker ?
A Mediator
![Page 20: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/20.jpg)
Why using Broker ?
![Page 21: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/21.jpg)
Why using Broker ?
you might not …
![Page 22: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/22.jpg)
Remember about clients?
![Page 23: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/23.jpg)
But You want them to use your system
![Page 24: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/24.jpg)
OK. So:
Why using Broker ?
Reliability
![Page 25: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/25.jpg)
OK. So:
Why using Broker ?
ReliabilityAvailability
![Page 26: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/26.jpg)
OK. So:
Why using Broker ?
ReliabilityAvailabilityMaintainability
![Page 27: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/27.jpg)
OK. So:
Why using Broker ?
ReliabilityAvailabilityMaintainabilityScalability
![Page 28: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/28.jpg)
OK. So:
Why using Broker ?
ReliabilityAvailabilityMaintainabilityScalabilityModifiability
![Page 29: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/29.jpg)
Components Decoupling
Broker’s Objectives
![Page 30: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/30.jpg)
Components DecouplingService Registration
Broker’s Objectives
![Page 31: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/31.jpg)
Components DecouplingService RegistrationService Discovery
Broker’s Objectives
![Page 32: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/32.jpg)
System with a Broker
Distributed Services
![Page 33: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/33.jpg)
Brokerconstituent parts:
![Page 34: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/34.jpg)
Brokerconstituent parts:
Client Side Broker
![Page 35: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/35.jpg)
Brokerconstituent parts:
Client Side Broker
Broker Core
![Page 36: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/36.jpg)
Brokerconstituent parts:
Client Side Broker
Broker Core
Server Side Broker
![Page 37: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/37.jpg)
Indirect connection.
![Page 38: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/38.jpg)
Client Side Broker
![Page 39: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/39.jpg)
Client Side Broker
constituent parts:
![Page 40: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/40.jpg)
Client Side Broker
constituent parts:
Client Proxy
![Page 41: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/41.jpg)
Client Side BrokerClient Proxy
Uses Lookup: locates service
loads API
![Page 42: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/42.jpg)
Client Side BrokerClient Proxy
Uses Lookup: locates service
loads API
Uses Requestor: calls API
![Page 43: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/43.jpg)
![Page 44: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/44.jpg)
Client Side Broker
constituent parts:
Client Proxy
![Page 45: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/45.jpg)
Client Side Broker
constituent parts:
Client Proxy
Service Lookup
![Page 46: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/46.jpg)
Client Side Broker
Service Lookup
Uses Repository Services location
Services’ API
![Page 47: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/47.jpg)
Client Side Broker
constituent parts:
Client Proxy
Service Lookup
![Page 48: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/48.jpg)
Client Side Broker
constituent parts:
Client Proxy
Service Lookup
Requestor
![Page 49: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/49.jpg)
Client Side BrokerRequestor
Uses Strategies to determineClient Request Handler
Modifies Request
![Page 50: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/50.jpg)
![Page 51: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/51.jpg)
Client Side Broker
constituent parts:
Client Proxy
Service Lookup
Requestor
![Page 52: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/52.jpg)
Brokerconstituent parts:
Client Side Broker
Broker Core
![Page 53: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/53.jpg)
Broker Core
![Page 54: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/54.jpg)
BrokerCore
constituent parts:
![Page 55: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/55.jpg)
BrokerCore
constituent parts:
Client Request Handler
![Page 56: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/56.jpg)
BrokerCore
constituent parts:
Client Request Handler
Middleware
![Page 57: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/57.jpg)
BrokerCore
constituent parts:
Client Request Handler
Middleware
Server Request Handler
![Page 58: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/58.jpg)
![Page 59: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/59.jpg)
BrokerCore
constituent parts:
Client Request Handler
![Page 60: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/60.jpg)
BrokerCore
Client Request Handler
Uses Marshaller
![Page 61: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/61.jpg)
BrokerCore
Client Request Handler
Uses Marshaller Uses Interceptor
![Page 62: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/62.jpg)
BrokerCore
Client Request Handler
Uses Marshaller Uses Interceptor
Uses Middleware
![Page 63: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/63.jpg)
![Page 64: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/64.jpg)
BrokerCore
constituent parts:
Client Request Handler
![Page 65: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/65.jpg)
BrokerCore
constituent parts:
Client Request Handler
Middleware
![Page 66: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/66.jpg)
BrokerCore
Middleware
Uses:other Brokernetworking
messaging
![Page 67: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/67.jpg)
BrokerCore
constituent parts:
Client Request Handler
Middleware
![Page 68: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/68.jpg)
BrokerCore
constituent parts:
Client Request Handler
Middleware
Server Request Handler
![Page 69: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/69.jpg)
BrokerCore
Server Request Handler
Uses Middleware
![Page 70: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/70.jpg)
BrokerCore
Server Request Handler
Uses Middleware
Uses Unmarshaller
![Page 71: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/71.jpg)
BrokerCore
Server Request Handler
Uses Middleware
Uses Unmarshaller Uses Interceptor
![Page 72: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/72.jpg)
![Page 73: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/73.jpg)
BrokerCore
constituent parts:
Client Request Handler
Middleware
Server Request Handler
![Page 74: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/74.jpg)
Brokerconstituent parts:
Client Side Broker
Broker Core
![Page 75: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/75.jpg)
Brokerconstituent parts:
Client Side Broker
Broker Core
Server Side Broker
![Page 76: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/76.jpg)
Server Side Broker
![Page 77: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/77.jpg)
Server Side
Brokerconstituent parts:
![Page 78: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/78.jpg)
Server Side
Brokerconstituent parts:
Invoker
![Page 79: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/79.jpg)
Server Side
Brokerconstituent parts:
Invoker
Lookup
![Page 80: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/80.jpg)
Server Side
Brokerconstituent parts:
Invoker
Lookup
Server Proxy
![Page 81: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/81.jpg)
Server Side Broker
Invoker
Uses Lookup: locates service
Uses Server Proxy: calls real API
![Page 82: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/82.jpg)
Server Side
Brokerconstituent parts:
Invoker
Lookup
![Page 83: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/83.jpg)
Server Side Broker
Lookup
Uses Local Repository: locates service
![Page 84: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/84.jpg)
Server Side
Brokerconstituent parts:
Invoker
Lookup
Server Proxy
![Page 85: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/85.jpg)
Server Side Broker
Server Proxy
Uses Bound Object: utilizes real Service
![Page 86: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/86.jpg)
Server Side
Brokerconstituent parts:
Invoker
Lookup
Server Proxy
![Page 87: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/87.jpg)
![Page 88: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/88.jpg)
The Big Picture
![Page 89: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/89.jpg)
![Page 90: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/90.jpg)
![Page 91: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/91.jpg)
![Page 92: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/92.jpg)
![Page 93: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/93.jpg)
Live Coding
![Page 94: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/94.jpg)
Facade. Proxy. Lookup. Repository.
Business Delegate. Requestor. Request Handler.
Marshaller. Interceptor. Unmarshaller.
Invoker. Bound Object.
Broker. List of Patterns.
![Page 95: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/95.jpg)
CORBA https://en.wikipedia.org/wiki/Common_Object_Request_Broker_Architecture
Pattern Oriented Software Architecture https://www.dre.vanderbilt.edu/~schmidt/POSA/ Software Architecture In Practice
Useful Links
![Page 96: Broker: adventure through architecture pattern](https://reader035.vdocuments.net/reader035/viewer/2022062904/58854d071a28abb5368b738d/html5/thumbnails/96.jpg)
Thank youQA ?