Upload
doankhue
View
232
Download
0
Embed Size (px)
Citation preview
Avancier
Training at http://avancier.website
UML & ArchiMate (a comparison)
After Gerben Wierda’s paper
http://eapj.org/on-slippery-ice-20150201
(The link will break if the EAP journal move the paper.)
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
Avancier
ESB
ESB
ESB
ETL
*[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
Avancier Classic client-maintained cache (drawn to match ArchiMate diagram)
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
Avancier Original design (no cache) (drawn to match ArchiMate diagram)
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)
Avancier Classic client-maintained cache (drawn to match ArchiMate diagram)
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
Avancier
*[for each update]
Server-updated cache (drawn to match ArchiMate diagram)
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
Avancier
*[for > 1,000 employees]
Server-owned cache (drawn to match ArchiMate diagram)
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
How does the cache solve the
problem?
Avancier How does the cache solve the problem?
► The diagram doesn’t say, and if you’re not sure where the
bottleneck is, you might not solve the problem
► Problem: ESB
■ Move cache closer to point of use, bypass the ESB
► Problem: Network hops
■ Move cache closer to point of use, cut out slow network hops
► Problem: IMP data structure not designed for fast access
■ Optimise the data structure for client access
■ Stored cache using a technology that is faster than discs.
Training at http://avancier.website
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
► (Bar one service name refinement)
Classic client-maintained cache
Server-updated cache
Server-owned cache
Avancier Classic client-maintained cache
1) Browser looks first in cache
2) Page retrieved
3) Page cached
Training at http://avancier.website
Avancier Original design (no cache)
► Receive-Insurance-Premium system (RIP) requests Policy data from
► Insurance-Member-Policy system (IMP)
Training at http://avancier.website
Avancier Classic client-maintained cache
► 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
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.
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