broker: adventure through architecture pattern

96
Broker Adventure through architecture patterns

Upload: pivorak-meetup

Post on 14-Apr-2017

202 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Broker: adventure through architecture pattern

BrokerAdventure through architecture patterns

Page 2: Broker: adventure through architecture pattern

by Oleksiy KurnenkovCore Infra Lead @ OnApp

Page 3: Broker: adventure through architecture pattern

Local VS Distributedsystems

Page 4: Broker: adventure through architecture pattern

System without a Broker

Local Services

Page 5: Broker: adventure through architecture pattern

Direct connection.

Clients feel happy

Page 6: Broker: adventure through architecture pattern

Direct connection.

Page 7: Broker: adventure through architecture pattern

System without a Broker

Distributed Services

Page 8: Broker: adventure through architecture pattern

No Broker. Direct connection. Service OK

Clients feel happy

Page 9: Broker: adventure through architecture pattern

No Broker. Direct connection. Service OK

Page 10: Broker: adventure through architecture pattern

No Broker. Direct connection. Service not OK

Service is Unavailable

Clients get broken

Page 11: Broker: adventure through architecture pattern

No Broker. Direct connection. Service not OK

Page 12: Broker: adventure through architecture pattern

No Broker. Direct connection. Service not OK

Service API has been changed

Clients get broken

Page 13: Broker: adventure through architecture pattern

No Broker. Direct connection. Service not OK

Page 14: Broker: adventure through architecture pattern

No Broker. Direct connection. Service not OK

Service has been rewritten in Java

Ruby Clients get confused

Page 15: Broker: adventure through architecture pattern

No Broker. Direct connection. Service not OK

Page 16: Broker: adventure through architecture pattern

No Broker. Direct connection. Service not OK

Service has been moved

Clients feel really bad

Page 17: Broker: adventure through architecture pattern

No Broker. Direct connection. Service not OK

Page 18: Broker: adventure through architecture pattern

What is a Broker ?

Page 19: Broker: adventure through architecture pattern

What is a Broker ?

A Mediator

Page 20: Broker: adventure through architecture pattern

Why using Broker ?

Page 21: Broker: adventure through architecture pattern

Why using Broker ?

you might not …

Page 22: Broker: adventure through architecture pattern

Remember about clients?

Page 23: Broker: adventure through architecture pattern

But You want them to use your system

Page 24: Broker: adventure through architecture pattern

OK. So:

Why using Broker ?

Reliability

Page 25: Broker: adventure through architecture pattern

OK. So:

Why using Broker ?

ReliabilityAvailability

Page 26: Broker: adventure through architecture pattern

OK. So:

Why using Broker ?

ReliabilityAvailabilityMaintainability

Page 27: Broker: adventure through architecture pattern

OK. So:

Why using Broker ?

ReliabilityAvailabilityMaintainabilityScalability

Page 28: Broker: adventure through architecture pattern

OK. So:

Why using Broker ?

ReliabilityAvailabilityMaintainabilityScalabilityModifiability

Page 29: Broker: adventure through architecture pattern

Components Decoupling

Broker’s Objectives

Page 30: Broker: adventure through architecture pattern

Components DecouplingService Registration

Broker’s Objectives

Page 31: Broker: adventure through architecture pattern

Components DecouplingService RegistrationService Discovery

Broker’s Objectives

Page 32: Broker: adventure through architecture pattern

System with a Broker

Distributed Services

Page 33: Broker: adventure through architecture pattern

Brokerconstituent parts:

Page 34: Broker: adventure through architecture pattern

Brokerconstituent parts:

Client Side Broker

Page 35: Broker: adventure through architecture pattern

Brokerconstituent parts:

Client Side Broker

Broker Core

Page 36: Broker: adventure through architecture pattern

Brokerconstituent parts:

Client Side Broker

Broker Core

Server Side Broker

Page 37: Broker: adventure through architecture pattern

Indirect connection.

Page 38: Broker: adventure through architecture pattern

Client Side Broker

Page 39: Broker: adventure through architecture pattern

Client Side Broker

constituent parts:

Page 40: Broker: adventure through architecture pattern

Client Side Broker

constituent parts:

Client Proxy

Page 41: Broker: adventure through architecture pattern

Client Side BrokerClient Proxy

Uses Lookup: locates service

loads API

Page 42: Broker: adventure through architecture pattern

Client Side BrokerClient Proxy

Uses Lookup: locates service

loads API

Uses Requestor: calls API

Page 43: Broker: adventure through architecture pattern
Page 44: Broker: adventure through architecture pattern

Client Side Broker

constituent parts:

Client Proxy

Page 45: Broker: adventure through architecture pattern

Client Side Broker

constituent parts:

Client Proxy

Service Lookup

Page 46: Broker: adventure through architecture pattern

Client Side Broker

Service Lookup

Uses Repository Services location

Services’ API

Page 47: Broker: adventure through architecture pattern

Client Side Broker

constituent parts:

Client Proxy

Service Lookup

Page 48: Broker: adventure through architecture pattern

Client Side Broker

constituent parts:

Client Proxy

Service Lookup

Requestor

Page 49: Broker: adventure through architecture pattern

Client Side BrokerRequestor

Uses Strategies to determineClient Request Handler

Modifies Request

Page 50: Broker: adventure through architecture pattern
Page 51: Broker: adventure through architecture pattern

Client Side Broker

constituent parts:

Client Proxy

Service Lookup

Requestor

Page 52: Broker: adventure through architecture pattern

Brokerconstituent parts:

Client Side Broker

Broker Core

Page 53: Broker: adventure through architecture pattern

Broker Core

Page 54: Broker: adventure through architecture pattern

BrokerCore

constituent parts:

Page 55: Broker: adventure through architecture pattern

BrokerCore

constituent parts:

Client Request Handler

Page 56: Broker: adventure through architecture pattern

BrokerCore

constituent parts:

Client Request Handler

Middleware

Page 57: Broker: adventure through architecture pattern

BrokerCore

constituent parts:

Client Request Handler

Middleware

Server Request Handler

Page 58: Broker: adventure through architecture pattern
Page 59: Broker: adventure through architecture pattern

BrokerCore

constituent parts:

Client Request Handler

Page 60: Broker: adventure through architecture pattern

BrokerCore

Client Request Handler

Uses Marshaller

Page 61: Broker: adventure through architecture pattern

BrokerCore

Client Request Handler

Uses Marshaller Uses Interceptor

Page 62: Broker: adventure through architecture pattern

BrokerCore

Client Request Handler

Uses Marshaller Uses Interceptor

Uses Middleware

Page 63: Broker: adventure through architecture pattern
Page 64: Broker: adventure through architecture pattern

BrokerCore

constituent parts:

Client Request Handler

Page 65: Broker: adventure through architecture pattern

BrokerCore

constituent parts:

Client Request Handler

Middleware

Page 66: Broker: adventure through architecture pattern

BrokerCore

Middleware

Uses:other Brokernetworking

messaging

Page 67: Broker: adventure through architecture pattern

BrokerCore

constituent parts:

Client Request Handler

Middleware

Page 68: Broker: adventure through architecture pattern

BrokerCore

constituent parts:

Client Request Handler

Middleware

Server Request Handler

Page 69: Broker: adventure through architecture pattern

BrokerCore

Server Request Handler

Uses Middleware

Page 70: Broker: adventure through architecture pattern

BrokerCore

Server Request Handler

Uses Middleware

Uses Unmarshaller

Page 71: Broker: adventure through architecture pattern

BrokerCore

Server Request Handler

Uses Middleware

Uses Unmarshaller Uses Interceptor

Page 72: Broker: adventure through architecture pattern
Page 73: Broker: adventure through architecture pattern

BrokerCore

constituent parts:

Client Request Handler

Middleware

Server Request Handler

Page 74: Broker: adventure through architecture pattern

Brokerconstituent parts:

Client Side Broker

Broker Core

Page 75: Broker: adventure through architecture pattern

Brokerconstituent parts:

Client Side Broker

Broker Core

Server Side Broker

Page 76: Broker: adventure through architecture pattern

Server Side Broker

Page 77: Broker: adventure through architecture pattern

Server Side

Brokerconstituent parts:

Page 78: Broker: adventure through architecture pattern

Server Side

Brokerconstituent parts:

Invoker

Page 79: Broker: adventure through architecture pattern

Server Side

Brokerconstituent parts:

Invoker

Lookup

Page 80: Broker: adventure through architecture pattern

Server Side

Brokerconstituent parts:

Invoker

Lookup

Server Proxy

Page 81: Broker: adventure through architecture pattern

Server Side Broker

Invoker

Uses Lookup: locates service

Uses Server Proxy: calls real API

Page 82: Broker: adventure through architecture pattern

Server Side

Brokerconstituent parts:

Invoker

Lookup

Page 83: Broker: adventure through architecture pattern

Server Side Broker

Lookup

Uses Local Repository: locates service

Page 84: Broker: adventure through architecture pattern

Server Side

Brokerconstituent parts:

Invoker

Lookup

Server Proxy

Page 85: Broker: adventure through architecture pattern

Server Side Broker

Server Proxy

Uses Bound Object: utilizes real Service

Page 86: Broker: adventure through architecture pattern

Server Side

Brokerconstituent parts:

Invoker

Lookup

Server Proxy

Page 87: Broker: adventure through architecture pattern
Page 88: Broker: adventure through architecture pattern

The Big Picture

Page 89: Broker: adventure through architecture pattern
Page 90: Broker: adventure through architecture pattern
Page 91: Broker: adventure through architecture pattern
Page 92: Broker: adventure through architecture pattern
Page 93: Broker: adventure through architecture pattern

Live Coding

Page 94: Broker: adventure through architecture pattern

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

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

Thank youQA ?