Date post: | 14-Apr-2017 |
Category: |
Software |
Upload: | pivorak-meetup |
View: | 202 times |
Download: | 1 times |
BrokerAdventure through architecture patterns
by Oleksiy KurnenkovCore Infra Lead @ OnApp
Local VS Distributedsystems
System without a Broker
Local Services
Direct connection.
Clients feel happy
Direct connection.
System without a Broker
Distributed Services
No Broker. Direct connection. Service OK
Clients feel happy
No Broker. Direct connection. Service OK
No Broker. Direct connection. Service not OK
Service is Unavailable
Clients get broken
No Broker. Direct connection. Service not OK
No Broker. Direct connection. Service not OK
Service API has been changed
Clients get broken
No Broker. Direct connection. Service not OK
No Broker. Direct connection. Service not OK
Service has been rewritten in Java
Ruby Clients get confused
No Broker. Direct connection. Service not OK
No Broker. Direct connection. Service not OK
Service has been moved
Clients feel really bad
No Broker. Direct connection. Service not OK
What is a Broker ?
What is a Broker ?
A Mediator
Why using Broker ?
Why using Broker ?
you might not …
Remember about clients?
But You want them to use your system
OK. So:
Why using Broker ?
Reliability
OK. So:
Why using Broker ?
ReliabilityAvailability
OK. So:
Why using Broker ?
ReliabilityAvailabilityMaintainability
OK. So:
Why using Broker ?
ReliabilityAvailabilityMaintainabilityScalability
OK. So:
Why using Broker ?
ReliabilityAvailabilityMaintainabilityScalabilityModifiability
Components Decoupling
Broker’s Objectives
Components DecouplingService Registration
Broker’s Objectives
Components DecouplingService RegistrationService Discovery
Broker’s Objectives
System with a Broker
Distributed Services
Brokerconstituent parts:
Brokerconstituent parts:
Client Side Broker
Brokerconstituent parts:
Client Side Broker
Broker Core
Brokerconstituent parts:
Client Side Broker
Broker Core
Server Side Broker
Indirect connection.
Client Side Broker
Client Side Broker
constituent parts:
Client Side Broker
constituent parts:
Client Proxy
Client Side BrokerClient Proxy
Uses Lookup: locates service
loads API
Client Side BrokerClient Proxy
Uses Lookup: locates service
loads API
Uses Requestor: calls API
Client Side Broker
constituent parts:
Client Proxy
Client Side Broker
constituent parts:
Client Proxy
Service Lookup
Client Side Broker
Service Lookup
Uses Repository Services location
Services’ API
Client Side Broker
constituent parts:
Client Proxy
Service Lookup
Client Side Broker
constituent parts:
Client Proxy
Service Lookup
Requestor
Client Side BrokerRequestor
Uses Strategies to determineClient Request Handler
Modifies Request
Client Side Broker
constituent parts:
Client Proxy
Service Lookup
Requestor
Brokerconstituent parts:
Client Side Broker
Broker Core
Broker Core
BrokerCore
constituent parts:
BrokerCore
constituent parts:
Client Request Handler
BrokerCore
constituent parts:
Client Request Handler
Middleware
BrokerCore
constituent parts:
Client Request Handler
Middleware
Server Request Handler
BrokerCore
constituent parts:
Client Request Handler
BrokerCore
Client Request Handler
Uses Marshaller
BrokerCore
Client Request Handler
Uses Marshaller Uses Interceptor
BrokerCore
Client Request Handler
Uses Marshaller Uses Interceptor
Uses Middleware
BrokerCore
constituent parts:
Client Request Handler
BrokerCore
constituent parts:
Client Request Handler
Middleware
BrokerCore
Middleware
Uses:other Brokernetworking
messaging
BrokerCore
constituent parts:
Client Request Handler
Middleware
BrokerCore
constituent parts:
Client Request Handler
Middleware
Server Request Handler
BrokerCore
Server Request Handler
Uses Middleware
BrokerCore
Server Request Handler
Uses Middleware
Uses Unmarshaller
BrokerCore
Server Request Handler
Uses Middleware
Uses Unmarshaller Uses Interceptor
BrokerCore
constituent parts:
Client Request Handler
Middleware
Server Request Handler
Brokerconstituent parts:
Client Side Broker
Broker Core
Brokerconstituent parts:
Client Side Broker
Broker Core
Server Side Broker
Server Side Broker
Server Side
Brokerconstituent parts:
Server Side
Brokerconstituent parts:
Invoker
Server Side
Brokerconstituent parts:
Invoker
Lookup
Server Side
Brokerconstituent parts:
Invoker
Lookup
Server Proxy
Server Side Broker
Invoker
Uses Lookup: locates service
Uses Server Proxy: calls real API
Server Side
Brokerconstituent parts:
Invoker
Lookup
Server Side Broker
Lookup
Uses Local Repository: locates service
Server Side
Brokerconstituent parts:
Invoker
Lookup
Server Proxy
Server Side Broker
Server Proxy
Uses Bound Object: utilizes real Service
Server Side
Brokerconstituent parts:
Invoker
Lookup
Server Proxy
The Big Picture
Live Coding
Facade. Proxy. Lookup. Repository.
Business Delegate. Requestor. Request Handler.
Marshaller. Interceptor. Unmarshaller.
Invoker. Bound Object.
Broker. List of Patterns.
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
Thank youQA ?