system thinking and problem solving for IT solutions

profilelauren II
lm_5_-_deployment_view.pptx

1

Lesson 5.3

UML Deployment Diagrams

Lesson 5.2

Distributed Systems Architecture (DSA) for Deployment

Lesson 5.1

Basic Vocabulary of the Deployment View

1

2

3

4

5

Learning Module Table of Contents

Reference

Rozanski, N. and Woods, E. (2012) Software systems architecture (2nd Edition). Chapters 21 and 20.

Lesson 5.4 (time permitting)

Using Deployment Diagrams to Illustrate the Development View

1

2

Lesson 5.3

UML Deployment Diagrams

Lesson 5.2

Distributed Systems Architecture (DSA) for Deployment

Lesson 5.1

Basic Vocabulary of the Deployment View

1

2

3

4

5

Let’s get started with the first lesson of the module

Reference

Rozanski, N. and Woods, E. (2012) Software systems architecture (2nd Edition). Chapters 21 and 20.

Lesson 5.4

Using Deployment Diagrams to Illustrate the Development View

2

System Architecture Views (using the ISO/IEC 42010 standard)

3

REF: ISO Software Architecture Standard as described by Rozanski and Woods

CONTEXT Views

FUNCTIONAL View

DATA View

TIMING View

DEVELOPMENT View

DELPOYMENT View

(we are here)

OPERATIONAL View

Not a new idea in systems design

Other architectural standards

Kruchten’s 4 + 1 architecture (IBM)

IEEE Standard 1471 that is the basis for your textbook

Zachman’s Framework for Information Systems Architecture

3

4

The Deployment View focuses on how hardware and software elements of your new system will be distributed or assigned across a network.

The deployment view includes both technical and non–technical sub-views.

The deployment view shows how various implementation components will be distributed to specific ”nodes” on the network.

The deployment view shows the communication lines (wired and wireless) between processing nodes

What is the Deployment View of a System’s Design?

Overview of the Deployment View

Characteristics Explanation
Definition Describes the processing and storage environment of your IT system/solution, and the potential points of failure for which you may need a service disruption and business continuity plan.
Concerns All hardware, software, and storage nodes required for your system Commercial (third party components) that must be purchased Software components that must be built and where each will be executed (run-time environment) Data storage components, capacity, and recovery Network requirements and capacities Points of failure
Architectural Descriptions Run-time models Network models Technology dependency Models
Possible Problems Unclear or inaccurate dependencies between required nodes in the network Unproven technology choices, or obsolete technology choices Missing or poorly developed service level agreements with user community Lack of necessary technical knowledge or expertise Deployment becoming an after thought – compromising design and construction already completed Poor or no capacity planning analysis No service disruption business continuity plan, or disaster recovery plan and environment

5

REF: Adapted from Rozanski and Woods (2012)

UML Deployment Diagrams

5

Overview of the Deployment View (continued)

Characteristics Explanation
Applicable Stakeholders System owners System users System designers System builders System sustainers Technology partner
Applicability All but the simplest systems

6

6

Deployment is all about Nodes and Connections

Nodes are physical or virtual computers (at locations; usually data centers) to which you will assign system components that you either purchase, or design/build.

Client nodes

Server nodes

Storage nodes (where the data is actually stored)

Other device nodes

Middleware nodes (many types)

Nodes are connected in a network

7

7

Preview Deployment Diagram (from UML)

8

FIGURE 21.1 in Rozanski and Woods (2011)

Diagram will usually require extensive use of stereotypes and tags

Frequently supplemented by textual narratives and tabular specifications as needed to communicate essential design prerequisites for system builders

This sample will be walked through later

Steps to build the Deployment View for your system

Identify all nodes required in your production environment

Some will come from your context diagrams

But many were hidden in the black box on your context diagrams

Must determine a “pattern” for your processing nodes

Identify all components and their Make versus BUY versus RE-USE (previously built or bought) decisions (not done exclusively by systems analyst in isolation; you need help from IT infrastructure staff, technology vendors, technology specialists, and consultants)

Record all communications paths between nodes.

Assign components to nodes

A checklist is provided for completeness and quality of your chosen architecture and its Deployment Diagram

9

Step 2 Checklist

Have you mapped all of the system’s functional elements to a type of element in your runtime platform?

Have you mapped them to specific hardware devices if appropriate?

Is the role of each piece of your runtime platform fully understood? Is the specified hardware or service suitable for the role?

Have you established detailed specifications for the system’s hardware devices or the hosted services that you require? Do you know exactly how many of each device or how much of each service is required?

Do you have service-level agreements for the elements of the runtime environment that are supplied by third parties?

Are the guarantees in the agreements suitable for your system? Can you test whether the guarantees are credible or not?

10

REF: Rozanski and Woods (2012) Chapter

INSTRUCTOR SUGGESTION: Convert these questions to a word document to formally use as a checklist whenever you implement a new IT system or solution

Step 2 Checklist

Have you identified all third-party software and documented all the dependencies between system elements and third-party software?

Are the network topology and services required by the system understood and documented?

Have you estimated and validated the required network capacity? Can the proposed network topology be built to support this capacity?

Have network specialists validated that the required network can be built?

Have you performed compatibility testing when evaluating your architectural options to ensure that the elements of the proposed deployment environment can be combined as desired?

Have you used enough prototypes, benchmarks, and other practical tests when evaluating your architectural options to validate the critical aspects of the proposed deployment environment?

11

REF: Rozanski and Woods (2012) Chapter

INSTRUCTION SUGGESTION: Convert these questions to a word document to formally use as a checklist whenever you implement a new IT system or solution

Step 2 Checklist

Can you create a realistic test environment that is representative of the proposed deployment environment?

Are you confident that the deployment environment will work as designed? Have you obtained external review to validate this opinion?

Are the assessors satisfied that the deployment environment meets their requirements in terms of standards, risks, and costs?

Have you checked that the physical constraints (such as floor space, power, cooling, and so on) implied by your required deployment environment can be met?

Do your hardware and service specifications include an appropriate amount of headroom?

Does your Deployment view include a specification of a disaster recovery environment, if required?

12

REF: Rozanski and Woods (2012) Chapter

INSTRUCTION SUGGESTION: Convert these questions to a word document to formally use as a checklist whenever you implement a new IT system or solution

12

13

Lesson 5.3

UML Deployment Diagrams

Lesson 5.2

Distributed Systems Architecture (DSA) for Deployment

Lesson 5.1

Basic Vocabulary of the Deployment & Development Views

1

2

3

4

5

Let’s get started with the first lesson of the module

Reference

Rozanski, N. and Woods, E. (2012) Software systems architecture (2nd Edition). Chapters 21 and 20.

Lesson 5.4

Using Deployment Diagrams to Illustrate the Development View

13

Distributed Systems Architecture (DSA)?

A distributed systems architecture (DSA) communicates to various stakeholders (usually with an illustration) how all system components (purchased, built, or used as-is) will be distributed across a network architecture for your system.

“Today, the computer is the network” Scott McNealy, founder and former CEO, Sun Computing

14

Scope of Distributed Systems Architecture (DSA)

Identification of relevant business locations (including possible mobile and external locations)

Identification of points of interaction between your system and existing systems and computing devices (NOTE: “computing devices” includes computers of all shapes and sizes, as well as any other device or machines into which a dedicate computer is embedded)

An architectural pattern for organizing your computing devices and how they will communicate with one another

Most common pattern today is multi-tiered client/server

Second most common pattern is peer-to-peer

Many other patterns existing in the literature (see next slide for great references)

Patterns can be combined

FUTURE IMPROVEMENT: Create a map between quality properties and DATA domain.

Page 15

Good Books on Reusable Patterns for Your Future Systems

16

Reminder: Deployment is all about Nodes

“Non-shared” Client nodes

“Shared” Server nodes

“Shared” Storage nodes (where the data is actually stored)

Other “shared” device nodes

“Transparent” Middleware nodes (many types)

17

17

Types of Client Nodes in a DSA

Personal computers (desktop and laptop)

Mobile devices

Smartphones

Tablets

Smartwatches

Smart wearables

Terminals

Infotainment systems in vehicles

Automated Teller Machines

Point of Sale cash registers

“Embedded” machines and devices

18

Types of Server Nodes in a DSA

Web Servers: serve up web pages and process messages to and from pages

Application Servers: execute business logic associated with an application

Database Servers: Execute database commands and stored procedures

Mail or Instant Messaging Servers: provide email services to an applications

Groupware/Collaboration Servers: provide work group and work flow services

Fax Servers: provide facsimile services to information system applications

Print Servers: provide shared printing services to information system applications

Terminal Servers: allow client computers to emulate other clients

Identity Servers: provide shared security services to an application.

Portal Servers: consolidate access to multiple systems (e.g. myPurdue)

And many more …

19

Other “nodes” in a DSA

SHARED STORAGE NODES

Example, SAN = Storage Area Network

A place to store data (not just alphanumeric data; but also documents, images, messages, etc. needed by your system and applications)

Does not include executable database code (e.g., SQL and PL-SQL). Such code is executed on a database server

OTHER SHARED NODES

Example - workload balancers

Route messages to duplicated servers to balance workload and provide failover

Example - Hardware Firewalls

“Hides” servers to protect them from external intrusion

Authorized users get dedicated “punch throughs” for legitimate connections

MIDDLEWARE NODES

Sits between clients and servers, or servers and other servers, to solve specific availability and integration problems

Uses of Middleware

Provide a more functional and reusable set of application programming interfaces to allow systems to:

Increase reliability and availability across networks

Mitigate differences in technology across systems

For example, enable database interoperability and synchronization despite use of very different database structures and technology that evolve over time

Locate various software components transparently across a network, thus providing interaction with other services and applications

Glue together components with reusable services

Standardize security across distributed networked applications

Usually run on their own computers; simple (meaning dedicated to one or few of the above uses)

Usually purchased (no need to constantly reinvent the wheel)

21

Middleware Technologies

22

Conceived as a layer of software that sits in between processing nodes in your system

Different experts consider different technologies as middleware

Middleware usually resides its own simple, dedicated servers (one per type)

OTHER SYSTEMS

YOUR SYSTEM

Business Process Orchestrators

Transports

Message Brokers (between servers)

Queues and shared services

MIDDLEWARE

22

Types of Middleware

Transport … moves messages, instructions and data between different processing nodes, accounting for the possibility of conflicting technologies and disruption

Queues and shared services ... provides a run-time environment for multiple users of a business logic component of a system

Message brokers … provide shared services, including management of services that might become temporarily unavailable

Business Process Orchestrators ... coordinate activities of a single transaction across multiple computers, including “rollback” (meaning un-doing) if a transaction fails/cancels at some point

23

24

Lesson 5.3

UML Deployment Diagrams

Lesson 5.2

Distributed Systems Architecture (DSA) for Deployment

Lesson 5.1

Basic Vocabulary of the Deployment & Development Views

1

2

3

4

5

Let’s get started with the first lesson of the module

Reference

Rozanski, N. and Woods, E. (2012) Software systems architecture (2nd Edition). Chapters 21 and 20.

Lesson 5.4

Using Deployment Diagrams to Illustrate the Development View

24

25

Is there a systems analysis and design tool that specifically communicates a system’s distributed systems architecture to those who will have to implement and sustain it?

Question of the day is …

UML Deployment Diagram

26

FIGURE 21.1 in Rozanski and Woods (2011)

This is an open, standard tool in the UML. It is not a profile.

Diagram will usually require extensive use of stereotypes and tags

Some shapes linked to other diagrams to provide details needed by SYSTEM BUILDERS

NOTE: This deployment diagrams does not conform to this course’s class standards

26

27

UML Deployment Diagrams (DD)

Basic constructs of Deployment Diagrams

Nodes … a physical location OR a physical computational resource

Examples: A location, specific server(s), or class of clients, or physical device, or appliance

Components … A representation of implemented (or to be implemented) software and database components to an assigned node

Examples: A database assigned to a server, or a software program or services assigned to a client or server

Communication Paths … between nodes

A data flow or network connection that allows messages and data to be exchanged

As always, universal UML constructs are also used

Examples: stereotypes, tags, multiplicity, packages, frames, notes/comments

28

Full Set of Shapes for Deployment Diagram

29

Basic Shapes and Constructs for Deployment Diagram

INSTRUCTOR NOTE: In ConceptDraw I had to use an Association line instead of a Communication Path line to add the multiplicity notations

INSTRUCTOR NOTE: For the assignment, use these shapes, connections, and font styles. Instructor recognizes that not all drawing tools support boldfacing.

Representative stereotypes for nodes (use these for assignment)

31

For the device nodes

<< ________ client>>

Examples (not a full list) <<desktop/laptop client>> <<smartphone client>> <<device>> or <<machine>> <<anywhere>>

<< ________ server>> Examples (not a full list) <<physical ______ server>> <<virtual _______ server>>

<<________ device>> Examples (not a full list) <<san>> <<middleware>> <<firewall>>

<<execution environment>> within a process node

For components inside the nodes

<<legacy app>>

<<legacy commercial app>>

<<legacy homegrown app>>

<<to build>>

<<to acquire>> or <<to buy>>

Some drawing tools default to <<component>> but that has no communication value. I change the default stereotype for component shapes to the above.

Other stereotypes may be approved on an organization-by-organization basis.

31

Appropriate Tags for nodes and components

Specific hardware product names, possibly including models and numbers

Specific software operating systems and/or utilities, possibly including minimum version numbers {Windows > 10.1+}

Specific software components to be developed or reused, possibly including version numbers {Purdue Supplier Catalog, SAP Financials 9+}

Specific database server technologies, possibly including minimum version numbers {Oracle 10.1+}

Specific web browser or technologies, possibly including minimum version numbers {Firefox >10} {XHTML}

Specific programming languages to be used to construct components, possibly including version numbers {Microsoft Visual C#}

Notice the use of mixed “mixed case” fonts for all tags

32

Representative tags for connections (not exhaustive)

Location names (general or specific as needed) {West Lafayette Campus} {KNOY Hall} {Indianapolis Data Center}

Network protocols to be used {Ethernet} or {cellular} or {wi-fi} or {bluetooth}

Internet formats to be used pass data {HTML} or {Flash} or {XML}

Other data formats to be used to pass data {DB2 SQL} or {ODBC} or {JDBC} or {comma delimited}

Transmission protocols to be used {RPC} or {RMI} … see Ch 21 in your book

Hardware protocols to be used {USB-C} or {Lightning}

33

Notice the use of mixed uppercase and lowercase fonts for all stereotypes

33

Two types of Deployment Diagrams

Business Geography – illustrates geographic locations for the system

Uses arrows with names to show primary data flows needed between locations

Uses tags to indicate general or specific locations of interest to the intended readers

No stereotypes

Technical Architecture – illustrates distributed systems architecture (DSA) consisting of processing nodes, communication paths, and assignment of components to nodes.

34

35

The following slide is an example of using a Deployment Diagram to illustrate Business Geography (as defined on previous slide)

36

37

The remaining slides are examples of using Deployment Diagrams to illustrate Technical Architecture

The first example is intentionally incomplete and intended only to demonstrate a simple and basic client/server pattern.

The second example is more complete and realistic because it extends a basic client/server pattern to include middleware

38

This Deployment Diagram depicts a multi-tiered client/server pattern, but only the basic tiers. To be completed, you would need to add middleware and any SAN.

39

Like the prior slide, this Deployment Diagram depicts a multi-tiered client/server pattern, but it add middleware components for completeness

40

YOUR TURN!

41

Lesson 5.3

UML Deployment Diagrams

Lesson 5.2

Distributed Systems Architecture (DSA) for Deployment

Lesson 5.1

Basic Vocabulary of the Deployment & Development Views

1

2

3

4

5

Let’s get started with the first lesson of the module

Reference

Rozanski, N. and Woods, E. (2012) Software systems architecture (2nd Edition). Chapters 21 and 20.

Lesson 5.4

Using Deployment Diagrams to Illustrate the Development View

41

Our design views are based on ISO/IEC Standard 42010

42

REF: ISO Software Architecture Standard as described by Rozanski and Woods

CONTEXT Views

FUNCTIONAL View

DATA View

TIMING View

DEVELOPMENT View

DELPOYMENT View

(we are here)

OPERATIONAL View

Not a new idea in systems design

Other architectural standards

Kruchten’s 4 + 1 architecture (IBM)

IEEE Standard 1471 that is the basis for your textbook

Zachman’s Framework for Information Systems Architecture

42

43

The Development View describes the architecture that supports the systems and software construction process (that follows system design)

The deployment view is about the physical, meaning technical environment

Includes physical system elements (e.g., software, databases, etc. to hardware elements (processing nodes in the network)

Describes how versions of the software are staged in production

Establishes standards for system and software development

Frequently required by auditors who seek to secure data even before the system goes operational

What is the Deployment View of a System’s Design?

44

The Development View of an Architectural Description

REF: Rozanski and Woods, Chapter 20

44

Stakeholder Concerns for the Development View

Modular organization of components and dependencies

System and software coding standards

Standardization of testing

Code line organization = configuration and version management

Security and privacy of test data (wasn’t in book; but is driven by configuration management)

45

Architecture Required to Support System Development

46

At any given time, you may have multiple components and versions of the same system in existence.

How do you coordinate construction so as to NOT overwrite one another’s development work?

System Planning

System Analysis

System Design

System Construction

System Operation

Possible instances of systems that may need to co-exist

PRODUCTION INSTANCES

Production instance for the current operational version

Training instance for the current operational version

---------------------------------------------------------------------------------------

NON-PRODUCTION INSTANCES

Development instance(s) for constructing and unit testing a future version

Testing instance for final testing of next operational version before it replaces the current production instance

47

Each “instance” (last slide) typically includes

Its own web server

Its own application servers

Its own database servers

and may use selected some production servers such as

Mail and messaging

Print and fax

Identity management

Unless one of the above presents a risk of crashing those servers. If so, then the instance needs its own.

But usually does not include its own client computers

48

Typical System Development Life Cycle Instances

49

Instance Name Abbreviations Notes
PRODUCTION (1 or more) PROD Runs the currently operational version of the solution. Has to be configured large enough to handle the business workload.
PRODUCTION Disaster Recovery DR or PROD 2 Not always affordable. Must run on the same hardware models and configuration as PROD. Must run the same operating system software as PROD. Usually configured large enough to handle the business workload.
NON-PRODUCTION SANDBOX/SEED (optional) SBX or SEED For “playing with” new technology or developing “proofs of concept”. Does NOT typically have to run the one the same hardware or OS software as PROD.
NON-PRODUCTION DEVELOPMENT DEV For system development, unit testing. Should use the same hardware models as PROD, but configured much smaller. Should use the same operating system software as PROD.
NON-PRODUCTION TESTING/QUALITY ASSURANCE TEST or QA For system and integration testing. Should use the same hardware models as PROD, but configured larger than DEV, and smaller than PROD. Should use same operating systems software as PROD. Could double as DR if you can’t afford a separate DR instance, but can only do testing or DR at any given time.
NON-PRODUCTION” TRAINING TRAIN or TRN For end user training (including training development) Should use same hardware models as PROD, but configured very small. Should use same operating systems software as PROD. Could double as TEST if configured large enough, but can only do one thing at a time.

Together, all instances are said to define the system’s life cycle LANDSCAPE

49

Sample System Life Cycle Landscape (for a large ERP)

50

50

Every system should have a Life Cycle Landscape

51

The life cycle landscape is called a Development View

See next slide to look inside these UML frames

Each Instance is its own Deployment Diagram

52

52