32
Scott Whitmire CITA-P, Iasa Fellow Enterprise Architect, Nordstrom, Inc. JUST WHAT IS “ARCHITECTURE,” ANYWAY? COPYRIGHT © 2012 BY SCOTT A. WHITMIRE. 1

Scott Whitmire - Just What is Architecture Anyway

Embed Size (px)

DESCRIPTION

An understanding of the fundamentals of architecture: What it is, what it comprises, and how it comes about, are crucial to further developing our practice.

Citation preview

Page 1: Scott Whitmire - Just What is Architecture Anyway

Scott Whitmire

CITA-P, Iasa Fellow

Enterprise Architect, Nordstrom, Inc.

JUST WHAT IS “ARCHITECTURE,” ANYWAY?

COPYRIGHT © 2012 BY SCOTT A. WHITMIRE. 1

Page 2: Scott Whitmire - Just What is Architecture Anyway

WHY ARE WE STILL ASKING THIS QUESTION?

COPYRIGHT © 2012 BY SCOTT A. WHITMIRE. 2

• The Agile Manifesto (www.agilemanifesto.org) says this:

• The best architectures, requirements, and designs emerge

from self-organizing teams

• This implies that:

• An architecture is fluid, that it evolves over time

• The development team has considerable choice in the

matter

• Any up-front architectural work is bad and should be avoided

• None of this is true

Page 3: Scott Whitmire - Just What is Architecture Anyway

WHAT IS ARCHITECTURE?

COPYRIGHT © 2012 BY SCOTT A. WHITMIRE. 3

• Rosanski and Woods:

• The architecture of a system is the set of fundamental

concepts or properties of the system in its environment,

embodied in its elements, relationships, and the principles of

its design and evolution.

Rozanski, N., & Woods, E. (2011). Software Systems Architecture, 2ed. Upper Saddle River, NJ, USA: Addison-Wesley.

Page 4: Scott Whitmire - Just What is Architecture Anyway

WHAT IS ARCHITECTURE?

COPYRIGHT © 2012 BY SCOTT A. WHITMIRE. 4

• Software Engineering Institute:

• The software architecture of a program or computing system

is the structure or structures of the system, which comprise

software elements, the externally visible properties of those

elements, and the relationships among them.

Bass, L., Clements, P., & Kazman, R. (2003). Software Architecture in Practice, 2ed. Upper Saddle River, NJ, USA:

Addison-Wesley.

Page 5: Scott Whitmire - Just What is Architecture Anyway

WHAT IS ARCHITECTURE?

COPYRIGHT © 2012 BY SCOTT A. WHITMIRE. 5

• IEEE/ISO (ISO/ICE 42010:2011):

• The fundamental organization of a system embodied in its

components, their relationships to each other, and to the

environment, and the principles guiding its design and

evolution

IEEE. (2000). IEEE Std 1471-2000. Piscataway, NJ, USA: IEEE.

Page 6: Scott Whitmire - Just What is Architecture Anyway

WHAT IS ARCHITECTURE?

COPYRIGHT © 2012 BY SCOTT A. WHITMIRE. 6

• Roy Fielding:

• (Dynamic) A software architecture is an abstraction of the

run-time elements of a software system during some phase

of its operation. A system may be composed of many levels

of abstraction and many phases of operation, each with its

own software architecture.

• (Static) A software architecture is defined by a configuration

of architectural elements – components, connectors, and

data – constrained in their relationships in order to achieve a

desired set of architectural properties.

Fielding, R. (2000). Architectural Styles and the Design of Network-based Software Architectures (Dissertation).

University of California, Irvine, Information and Computer Science. Irvine: University of California, Irvine.

Page 7: Scott Whitmire - Just What is Architecture Anyway

NOTICE THE PATTERN? WE DID

COPYRIGHT © 2012 BY SCOTT A. WHITMIRE. 7

• Iasa Software Architecture:

• A software architecture describes the dominant structure

formed by the software components of a system and their

elements, their functional and non-functional properties, and

the connections between them.

IASA Board of Education. (2008). Software Architecture Course Curriculum. IASA Board of Education. Austin: IASA.

Page 8: Scott Whitmire - Just What is Architecture Anyway

WHERE DOES ARCHITECTURE ORIGINATE?

COPYRIGHT © 2012 BY SCOTT A. WHITMIRE. 8

• The short answer:

• The problem domain

• In most cases related to systems, the architecture is there to be

discovered, not created

• Architects face constrained choices, not a clean slate

• The practice of architecture is mostly about navigating

constraints

Page 9: Scott Whitmire - Just What is Architecture Anyway

CONSIDER BRIDGE DESIGN

COPYRIGHT © 2012 BY SCOTT A. WHITMIRE. 9

• Type of bridge is largely determined by

• Length of central span

• Condition of anchor points

• Condition of bottom

• Customer’s budget

• As central span gets longer, architecture options get more constrained

• For spans of 1000’ or more, there are only two options

• Anchor points determine which of these two you can use

Page 10: Scott Whitmire - Just What is Architecture Anyway

WHAT DOES THAT MEAN FOR SOFTWARE?

• Wikipedia’s entry on non-functional requirements

includes this:

• The plan for implementing functional requirements is

detailed in the system design.

• The plan for implementing non-functional

requirements is detailed in the system architecture.

• Architecture is mainly about non-functional

requirements

COPYRIGHT © 2012 BY SCOTT A. WHITMIRE. 10

Page 11: Scott Whitmire - Just What is Architecture Anyway

SO, WHAT DOES THAT MEAN?

COPYRIGHT © 2012 BY SCOTT A. WHITMIRE. 11

• Architecture of a software system is driven by context and non-

functional requirements

• The problem being solved has far more influence than the

architect

• You don’t need to know much about functional requirements to

define an architecture

• Architecture does not “evolve” in the sense that a design can

Page 12: Scott Whitmire - Just What is Architecture Anyway

WHAT DO WE NEED TO KNOW?

COPYRIGHT © 2012 BY SCOTT A. WHITMIRE. 12

• Context is the environment that surrounds the system

• The type of problem being solved

• Business application vs. functional vs. real-time process control

• User community size and distribution

• Data creation and consumption patterns

• Scale and scalability

• Availability

• Performance

• Security

• Variability and volatility

Page 13: Scott Whitmire - Just What is Architecture Anyway

PROBLEM TYPE

COPYRIGHT © 2012 BY SCOTT A. WHITMIRE. 13

• Data-strong – Typical business application

• Models data about things

• Example: Customer Relationship Management

• Function-strong – Typical mathematical or scientific application

• Models behavior of things

• Example: Weather model

• Control-strong – Typical real-time control system

• Interacts with real world to do real work

• Example: Brewery control system

Page 14: Scott Whitmire - Just What is Architecture Anyway

USER COMMUNITY

COPYRIGHT © 2012 BY SCOTT A. WHITMIRE. 14

• How many users are there?

• How many time zones do they cover?

• For a global application, including most web apps, it is always

first shift

• Large user communities require different approaches than small

communities

• Geographically dispersed user communities require different

approaches than co-located communities

Page 15: Scott Whitmire - Just What is Architecture Anyway

DATA CREATION AND CONSUMPTION

COPYRIGHT © 2012 BY SCOTT A. WHITMIRE. 15

• Data is always created locally

• How is it consumed?

• Shared globally – eg: Web-based eCommerce site

• Used locally – eg: Distributed warehouse management

• Local data usage lends itself to partitioned or distributed databases

• Global data requires central database (or the appearance of)

• Large user community + central database = big problem (one that we

still haven’t solved completely)

• Facebook and Twitter are hybrids

Page 16: Scott Whitmire - Just What is Architecture Anyway

SCALE AND SCALABILITY

COPYRIGHT © 2012 BY SCOTT A. WHITMIRE. 16

• Scale is the typical size

• 10k transactions per day vs. 100M transactions per day

• Scalability is the requirement for scale to change

• Adapt to changing loads – up or down

• Large scale requires different approaches than small scale

• Large changes in scale require interesting operations

techniques (but are easily solved)

Page 17: Scott Whitmire - Just What is Architecture Anyway

AVAILABILITY

COPYRIGHT © 2012 BY SCOTT A. WHITMIRE. 17

• Measured as up-time

• Classes of “nines”

• 3 nines (99.9%)

• 4 nines (99.99%)

• 5 nines (99.999%) => ~5 minutes of downtime per year

• Each additional 9 is about 10x in cost

• Going from 4 nines to 5 nines requires architectural changes

• Infrastructure – high-availability components and geographic redundancy

• Application – active-active instances and components – and databases

Page 18: Scott Whitmire - Just What is Architecture Anyway

PERFORMANCE

COPYRIGHT © 2012 BY SCOTT A. WHITMIRE. 18

• Four “real” performance classes

• Eye-blink – it happens immediately

• Delay – long enough to be annoying, too quick to do something else

• Wait – long enough to do something else and come back

• Overnight – anything longer than wait

• Are there hard limits imposed by the problem?

• Latency accumulates as you add layers and decoupling

• High-performance across layers requires architecture work

Page 19: Scott Whitmire - Just What is Architecture Anyway

SECURITY

COPYRIGHT © 2012 BY SCOTT A. WHITMIRE. 19

• Security is inherent in the architecture (or not)

• Threat model must be considered early

• An story: A medical monitoring application

Page 20: Scott Whitmire - Just What is Architecture Anyway

VARIABILITY AND VOLATILITY

COPYRIGHT © 2012 BY SCOTT A. WHITMIRE. 20

• What can change and how often?

• Isolate volatile components from others and from each other

• Loose coupling is the goal, there are many techniques

Page 21: Scott Whitmire - Just What is Architecture Anyway

LET’S LOOK AT AN EXAMPLE

COPYRIGHT © 2012 BY SCOTT A. WHITMIRE. 21

• Operating models are problem domain patterns

• Two (unified and coordinated) require customer and product

data to be shared across business units and processes

• Most companies are one of these two patterns

• It took the introduction of Master Data Management to finally(!)

consolidate our view of customer and product data

Page 22: Scott Whitmire - Just What is Architecture Anyway

LOOK FAMILIAR?

COPYRIGHT © 2012 BY SCOTT A. WHITMIRE. 22

Page 23: Scott Whitmire - Just What is Architecture Anyway

IS THIS A DIFFERENT PATTERN?

COPYRIGHT © 2012 BY SCOTT A. WHITMIRE. 23

Page 24: Scott Whitmire - Just What is Architecture Anyway

STILL LOOK FAMILIAR?

COPYRIGHT © 2012 BY SCOTT A. WHITMIRE. 24

Page 25: Scott Whitmire - Just What is Architecture Anyway

HERE’S ANOTHER VIEW

COPYRIGHT © 2012 BY SCOTT A. WHITMIRE. 25

Page 26: Scott Whitmire - Just What is Architecture Anyway

THE PICTURES ARE ALL THE SAME

COPYRIGHT © 2012 BY SCOTT A. WHITMIRE. 26

• The dominant structure is shared data

• We call it the Blackboard1 pattern

• Layers is a structural pattern to show separation of concerns

• N-Tier is a deployment pattern

• Maybe 90% of business applications are Blackboard – if you dig

deep enough

1Buschmann, F., Munier, R., Rohnert, H., Sommerlad, P., & Stal, M. (1996). Pattern-Oriented Software Architecture

Volume 1: A System of Patterns (Vol. 1). New York, NY, USA: John Wiley & Sons.

Page 27: Scott Whitmire - Just What is Architecture Anyway

OTHER PATTERNS

COPYRIGHT © 2012 BY SCOTT A. WHITMIRE. 27

• Pipes-and-Filters

• Video games

• Mathematical and scientific applications

• Microkernel

• Real-time control systems, including embedded systems

• There are others, but these are most common

Page 28: Scott Whitmire - Just What is Architecture Anyway

PIPES-AND-FILTERS – IMAGE PROCESSING

COPYRIGHT © 2012 BY SCOTT A. WHITMIRE. 28

Noise Filtering

Edge Detection

Movement Detection

Page 29: Scott Whitmire - Just What is Architecture Anyway

MICROKERNEL – DEVICE CONTROL

COPYRIGHT © 2012 BY SCOTT A. WHITMIRE. 29

Controller

Analog Sensor

Automatic Valve

Event Processing

Engine Machine(s)

Digital Sensor

Page 30: Scott Whitmire - Just What is Architecture Anyway

WHY DOES IT MATTER?

COPYRIGHT © 2012 BY SCOTT A. WHITMIRE. 30

• Most system failures are caused by a mismatch between the

dominate pattern in the problem domain and the dominant

pattern in the solution

• At the very least, use, operation, and maintenance is painful

• Some examples:

• Customer credit account

• Database keys

• Inventory balance

Page 31: Scott Whitmire - Just What is Architecture Anyway

CONCLUSION

COPYRIGHT © 2012 BY SCOTT A. WHITMIRE. 31

• Architecture (as a verb) is about matching the solution pattern to the pattern of your problem – the problem drives the solution

• Architecture (as a noun) is that pattern

• The art is recognizing the problem’s pattern in the first place

• The science is applying knowledge and experience to create a matching solution

• The problem’s pattern isn’t likely to evolve, and the team doesn’t get to decide

• We have lots of tools

• Past practice

• Patterns

• Abstraction

• Encapsulation

Page 32: Scott Whitmire - Just What is Architecture Anyway

COPYRIGHT © 2012 BY SCOTT A. WHITMIRE. 32

Thank you!

ARCHITECTURE ≠ DESIGN