broker: adventure through architecture pattern

Post on 14-Apr-2017

205 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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 ?

top related