ISEB Certificates in enterprise and Solution architecture ...grahamberrisford.com/AM 2 Methods...

19
Avancier Training at http://avancier.website Flexibility v Performance (caching options in UML and ArchiMate diagrams) After Gerben Wierda’s paper http://eapj.org/on-slippery-ice-20150201 (The link will break if the EAP journal move the paper.)

Transcript of ISEB Certificates in enterprise and Solution architecture ...grahamberrisford.com/AM 2 Methods...

Page 1: ISEB Certificates in enterprise and Solution architecture ...grahamberrisford.com/AM 2 Methods support/02DesignConcernsAn… · Distributed programming and OO design patterns have

Avancier

Training at http://avancier.website

Flexibility v Performance (caching options in UML and ArchiMate diagrams)

After Gerben Wierda’s paper

http://eapj.org/on-slippery-ice-20150201

(The link will break if the EAP journal move the paper.)

Page 2: ISEB Certificates in enterprise and Solution architecture ...grahamberrisford.com/AM 2 Methods support/02DesignConcernsAn… · Distributed programming and OO design patterns have

Avancier Flexibility v performance trade off

► “Alas, such models are no silver bullets.

► Projects get into serious trouble because of them.

► Three main reasons:

■ brittleness of loosely-coupled spaghetti

■ maintainability

■ performance.”

Gerben Wierda

Training at http://avancier.website

The company’s enterprise architecture principles

1. presentation layer is separated from application layer

2. data is owned by one business function and served to others

3. data is mastered in one application (single source of truth)

4. systems are connected via an ESB for loose-coupling

5. rules are applied by business rule engines so systems can be adapted to

different policy types and different clients.

Designed for On-line transaction use cases Flexibility w many customer

and/or product variations

Page 3: ISEB Certificates in enterprise and Solution architecture ...grahamberrisford.com/AM 2 Methods support/02DesignConcernsAn… · Distributed programming and OO design patterns have

Avancier

ESB

ESB

ESB

ESB

*[for 1,000 employers]

*[for > 1,000 employees]

Inefficient solution design to company principles

Training at http://avancier.website

Check Premium

Total receivable

Get Policy Data

Premiums file

Premium errors file

Big performance problem handling millions of

premiums after month end

Slow DB access

Employer

Receive

Insurance

Premiums

Insurance

Member

Policy

Accounting

Business

Rules

Engine Policies Rules Acc’ts

Message queue

Page 4: ISEB Certificates in enterprise and Solution architecture ...grahamberrisford.com/AM 2 Methods support/02DesignConcernsAn… · Distributed programming and OO design patterns have

Avancier What to do?

► Performance (when processing millions of premiums in a the

first few days of a month) was unacceptable.

■ Bandwidth not the problem

■ The duration of processing steps was the problem

► Gerben explores three caching options – to follow

► What else could be done?

► More generally, how to prevent problems created by

■ naïve implementation by software architects of

■ naïve EA principles?

Training at http://avancier.website

Page 5: ISEB Certificates in enterprise and Solution architecture ...grahamberrisford.com/AM 2 Methods support/02DesignConcernsAn… · Distributed programming and OO design patterns have

Avancier “Classic client-maintained cache ” (see appendix for ArchiMate version)

1. Browser looks

first in cache

2. Page retrieved

3. Page cached

Training at http://avancier.website

Browser

Remote

HTTP

Server Cache

Get

page

If the page is in the cache and not stale

Else

2 Deliver web page Deliver

page

2 Refreshed or initial page

Page 6: ISEB Certificates in enterprise and Solution architecture ...grahamberrisford.com/AM 2 Methods support/02DesignConcernsAn… · Distributed programming and OO design patterns have

Avancier “Original design (no cache) ” (see appendix for ArchiMate version)

Training at http://avancier.website

*[for > 1,000 employees]

RIP IMP

Policies

Use

IMP data

Answer request for data Distribute

update

IMP Update

Receive-Insurance-Premium system (RIP)

requests Policy data from Insurance-

Member-Policy system (IMP)

Page 7: ISEB Certificates in enterprise and Solution architecture ...grahamberrisford.com/AM 2 Methods support/02DesignConcernsAn… · Distributed programming and OO design patterns have

Avancier “Classic client-maintained cache ” (see appendix for ArchiMate version)

Training at http://avancier.website

RIP first looks in the cache for data that is not marked out-of-date. If the data needs to be refreshed, RIP uses the service from IMP and receives the data The problem is that we might be using data that is out of date.

*[for > 1,000 employees]

RIP IMP

IMP Data

Cache

Policies

Use

IMP data

If the policy data is in the cache and not stale

Else

Answer request for data Distribute

update

IMP Update

Page 8: ISEB Certificates in enterprise and Solution architecture ...grahamberrisford.com/AM 2 Methods support/02DesignConcernsAn… · Distributed programming and OO design patterns have

Avancier

*[for each update]

“Server-updated cache ” (see appendix for ArchiMate version)

Training at http://avancier.website

RIP uses only the

local cache which is

kept up to date by

IMP.

Every time IMP

updates data, it uses

a service from RIP

and sends it the

updated data. RIP

immediately stores it

in the cache.

*[for > 1,000 employees]

RIP IMP

IMP Data

Cache

Policies

Use

IMP data

IMP Update

Receive IMP Data Update Keep

RIP cache

up to date

Distribute

update

“The often forgotten half of SOA: you not only offer services to provide data, sometimes you

provide services to receive it.” GW

Page 9: ISEB Certificates in enterprise and Solution architecture ...grahamberrisford.com/AM 2 Methods support/02DesignConcernsAn… · Distributed programming and OO design patterns have

Avancier

EDA via Pub/Sub

*[for each update]

Server-updated cache via ESB

Training at http://avancier.website

RIP IMP

IMP Data

Cache

Policies

Keep

RIP cache

up to date

Distribute

update

ESB

Middleware

RIP uses only the

local cache which is

kept up to date by

IMP.

IMP publishes

changes on the ESB.

RIP subscribes to

them, storing them

locally and using them

as needed.

Publish change

Subscribe to change

*[for > 1,000 employees]

Use

IMP data

IMP Update

Receive IMP Data Update

Page 10: ISEB Certificates in enterprise and Solution architecture ...grahamberrisford.com/AM 2 Methods support/02DesignConcernsAn… · Distributed programming and OO design patterns have

Avancier

EDA via shared data store

*[for > 1,000 employees]

“Server-owned cache” (see appendix for ArchiMate version)

3rd app manages the

cache made available

to RIP via API

It runs on the

environment where

the cache must be

maintained

Training at http://avancier.website

*[for each update]

RIP IMP

Policies

Distribute

update

IMP

Cache

Agent

Receive IMP Data Upd.

Use

IMP data

IMP Update

Serve IMP data

IMP Data

Cache

Manage

IMP data

Manage

IMP data

Page 11: ISEB Certificates in enterprise and Solution architecture ...grahamberrisford.com/AM 2 Methods support/02DesignConcernsAn… · Distributed programming and OO design patterns have

Avancier There is no silver bullet

► Distributed programming and OO design patterns

■ have created far more complex programs than earlier.

► Naïve interpretations of SOA

■ have created more complex application landscapes

■ what Gerben Wierda calls “loosely-coupled spaghetti”

► EA principles tend to favour

■ flexibility over simplicity and performance

► And tend to gloss over the clash between

■ loose coupling and integrity

Training at http://avancier.website

Page 12: ISEB Certificates in enterprise and Solution architecture ...grahamberrisford.com/AM 2 Methods support/02DesignConcernsAn… · Distributed programming and OO design patterns have

Avancier The need for proper Solution Architects

► An enterprise needs Solution Architects to work between

Enterprise Architects and Software Architects

► Solution architects must

■ Analyse critical use cases looking at

● Performance – response/cycle time and throughput

● Availability

● Recoverability

● Integrity

● Security

● Scalability

● Maintainability

● Etc.

■ Design up-front to meet NFRS

■ Present for approval to authorities

Training at http://avancier.website

Page 13: ISEB Certificates in enterprise and Solution architecture ...grahamberrisford.com/AM 2 Methods support/02DesignConcernsAn… · Distributed programming and OO design patterns have

Avancier

Training at http://avancier.website

Some principles for solution architecture

1. KISS

2. There is no single way to design systems

3. There are always trade offs

4. Vendors, fashion and principles may push one design pattern,

but an architect must be mindful of the opposite

5. Don’t overcomplicate the design to meet fanciful throughput and

concurrency numbers that stakeholders agree are very unlikely

in the next 5 years (YAGNI and the money will follow)

6. Beware the design of data processing has affects business

processes in the wider human activity system (e.g. data store

separation impacts integrity)

7. An architect must understand design patterns, trade offs and

their impacts on the wider business system.

Page 14: ISEB Certificates in enterprise and Solution architecture ...grahamberrisford.com/AM 2 Methods support/02DesignConcernsAn… · Distributed programming and OO design patterns have

Avancier

Training at http://avancier.website

APPENDIX: Gerben’s ArchiMate diagrams of the same options

► The content of the earlier UML-style sequence diagrams is

copied from the ArchiMate diagrams on the following slides

► Including all application, function and service names

“Classic client-maintained cache”

“Server-updated cache”

“Server-owned cache”

Page 15: ISEB Certificates in enterprise and Solution architecture ...grahamberrisford.com/AM 2 Methods support/02DesignConcernsAn… · Distributed programming and OO design patterns have

Avancier Classic client-maintained cache

1) Browser looks first in cache

2) Page retrieved

3) Page cached

Training at http://avancier.website

Page 16: ISEB Certificates in enterprise and Solution architecture ...grahamberrisford.com/AM 2 Methods support/02DesignConcernsAn… · Distributed programming and OO design patterns have

Avancier Original design (no cache)

► Receive-Insurance-Premium system (RIP) requests Policy data from

► Insurance-Member-Policy system (IMP)

Training at http://avancier.website

Page 17: ISEB Certificates in enterprise and Solution architecture ...grahamberrisford.com/AM 2 Methods support/02DesignConcernsAn… · Distributed programming and OO design patterns have

Avancier Classic client-maintained cache solution

► RIP first looks in the cache for data that is not marked out-of-date.

► If data needs to be refreshed, RIP uses the service from IMP and receives the data

► The problem is that we might be using data that is out of date.

Training at http://avancier.website

Page 18: ISEB Certificates in enterprise and Solution architecture ...grahamberrisford.com/AM 2 Methods support/02DesignConcernsAn… · Distributed programming and OO design patterns have

Avancier Server-updated cache

Training at http://avancier.website

RIP uses only the local cache which is kept up to date by IMP

Every time IMP updates data, it uses a service from RIP and sends it the updated data.

RIP immediately stores it in the cache.

Page 19: ISEB Certificates in enterprise and Solution architecture ...grahamberrisford.com/AM 2 Methods support/02DesignConcernsAn… · Distributed programming and OO design patterns have

Avancier Server-owned cache

► 3rd application manages the cache made available to RIP via API

► It runs on the environment where the cache must be maintained

Training at http://avancier.website