seng 5861 software architecture n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
SEng 5861: Software Architecture PowerPoint Presentation
Download Presentation
SEng 5861: Software Architecture

Loading in 2 Seconds...

play fullscreen
1 / 63

SEng 5861: Software Architecture - PowerPoint PPT Presentation


  • 104 Views
  • Uploaded on

SEng 5861: Software Architecture. Lecture 8 Dr. Michael Whalen Fall 2010. Topics for Today. Questions / Comments from Last Week Midterm Recap Complete Functional View Exercise Deployment View Operational View Concurrency View Performance Perspective. Updates.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'SEng 5861: Software Architecture' - bunme


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
seng 5861 software architecture

SEng 5861: Software Architecture

Lecture 8

Dr. Michael Whalen

Fall 2010

SEng 5861 - Mike Whalen

topics for today
Topics for Today
  • Questions / Comments from Last Week
  • Midterm Recap
  • Complete Functional View Exercise
  • Deployment View
  • Operational View
  • Concurrency View
  • Performance Perspective

SEng 5861 - Mike Whalen

updates
Updates
  • Guest lecture next week on product families
    • Jeff Thompson: PhD 2001 on product families and reuse
    • Applied some of this work to products at Boston Scientific
    • Domain specific “patterns” for creating systems

SEng 5861 - Mike Whalen

updates project phase iii
Updates: Project Phase III
  • Not grading on identifying styles and patterns
    • We will cover that in more depth starting next week
  • Need to choose 2 systems within the architecture
    • One should be “top level” system
    • One should be an interesting subsystem
    • For each system, describe 2 viewpoints
      • One must be functional viewpoint
      • One is of your choosing

SEng 5861 - Mike Whalen

updates project phase iii1
Updates: Project Phase III

Do this

1.Version History

2.Table of Contents

3.Introduction

4.1Purpose and Scope

4.2Audience

4.3Status

4.4Architectural Design Approach

5.Glossary

6.System Context

6.1System Environment

6.2Overview of Requirements

6.3System Scenarios

7.Architectural Forces

7.1Goals

7.2Constraints

7.3Architectural Principles

8. Architectural Views for Top-Level System

  • Pick Two views

9. Architectural Views for Subsystem

  • Pick Two Views

10.Appendices

10.1Appendix: Decisions and Alternatives

10.3Appendix: References

Do this

Refer to

Phase II

Do this

Optional

Refer to

Phase II

Do this

SEng 5861 - Mike Whalen

airport parking controller
Airport Parking Controller
  • You are asked to build the automated parking system at MSP airport
  • Support ePark:
  • Also support ticketed parking: user receives a ticket and pays either by credit card or cash

Simply insert your credit or debit card into the card reader at the ramp entrance. This will record the time you entered airport parking. Use the same credit or debit card to pay at an ePark® exit lane. The system is fully automated; there is no waiting in line for a cashier.

SEng 5861 - Mike Whalen

airport parking controller1
Airport Parking Controller
  • Basic functionality: users should be able to:
    • Enter the parking lot if space is available
      • Either via ticket or credit card
    • Exit the parking lot at any time
      • Pay either via cash or credit card
  • But there is much more to it!
    • What if user uses different credit card to enter/exit?
    • What if there are insufficient funds?
    • What if I am unable to reach VISA server?
    • Etc. etc. etc.

SEng 5861 - Mike Whalen

some use cases
Some Use Cases

SEng 5861 - Mike Whalen

airport controller
Airport Controller
  • Create the top-level component model
    • Use a UML diagram model
    • First describe components
    • Then describe interfaces
  • Does this app need to be distributed?
    • If so, would you use MOM, RPC, or both?

SEng 5861 - Mike Whalen

examples
Examples

SEng 5861 - Mike Whalen

general architectural principles
General Architectural Principles
  • Encapsulate components that are likely to change
    • Often, this is hardware
  • Define services that individually and collectively have value
    • High Coherence
    • Low Coupling

SEng 5861 - Mike Whalen

common artifacts
Common Artifacts

Is there just one? One per gate? One per street entrance/exit?

  • Entry Manager
  • Exit Manager
  • Credit Card Billing
  • Lot Manager
  • Accounting Interface
  • Kiosk Interface
  • …and some differences

Wide discrepencies in amount of functionality

SEng 5861 - Mike Whalen

let s focus on pricing
Let’s focus on pricing
  • Many different price rates / policies
  • Single use / payment
    • Short term vs. extended parking
    • Event parking
    • Pay as you go in vs. pay as you go out
  • Contracts
    • Term: monthly / yearly / other
    • Flat fee
    • Billed by usage
    • Mechanism: parking pass? Credit card?

SEng 5861 - Mike Whalen

what do you have to track
What do you have to track?
  • Upon entry?
  • Upon exit?
    • Where to store “completed” transactions
      • In system?
      • Via interface to accounting system?
  • For pricing?
  • When performing manual overrides?
    • Who can perform them?
    • How do you log them?

SEng 5861 - Mike Whalen

what do you need to control
What do you need to control?
  • Physical gates for entry / exit
  • Entry kiosks
    • Credit card reader
    • Parking card dispenser
  • Exit kiosks
    • Automated: credit card / parking card reader
      • Optional: cash input
    • Attendant kiosks
      • Point of sale device: in or out of system?
      • Allow manual override of charges?

SEng 5861 - Mike Whalen

how do you want to report
How do you want to report?
  • Revenue?
    • Partitioned by pricing type?
    • Current? Over time?
  • Card stock levels per entry kiosk?
  • Mechanical failures?
  • Ramp usage? Utilization over time?

SEng 5861 - Mike Whalen

so let s build it
So, Let’s Build It

SEng 5861 - Mike Whalen

my version
My Version

SEng 5861 - Mike Whalen

deployment view
Deployment view

http://www.youtube.com/watch?v=T2PdyxMtiYM

SEng 5861 - Mike Whalen

but it worked during test
…But it worked during test!?!
  • Having deployment documentation is key (but often overlooked) to a successful product rollout

SEng 5861 - Mike Whalen

when do i need it
When Do I Need It?
  • When system has:
    • Complex runtime dependencies (software)
    • Complex runtime environments (hardware)
    • Dependencies on unfamiliar HW/SW
  • When system will be deployed
    • in wildly varying software environments
      • E.g., consumer shrink-wrap software
    • in varying physical environments
      • Enterprise software, military software

SEng 5861 - Mike Whalen

concerns hardware
Concerns: Hardware
  • Type of hardware required
    • CPU
    • Storage
    • Network
  • Quantity of hardware required
    • How many machines?
    • How much storage?

SEng 5861 - Mike Whalen

concerns 3 rd party software
Concerns: 3rd Party Software
  • Third-party software requirements
    • OS
    • Drivers
    • Libraries
    • Internet Services
    • Messaging Systems
    • Application Servers
    • Middleware
    • Databases
    • Web servers
    • ..and more!

SEng 5861 - Mike Whalen

concerns 3 rd party software1
Concerns: : 3rd Party Software
  • Versioning
    • Can all components agree on versions of common dependencies?
    • Examples: C++ standard library, DLLs, OS revisions
    • These incompatibilities tend to be found during integration when it is expensive.
  • Hardware requirements for 3rd party software

SEng 5861 - Mike Whalen

concerns networking
Concerns: Networking
  • How much network capacity is required?
  • What kind of traffic is sent?
  • Is encryption required?
  • What is the required reliability of the network?

SEng 5861 - Mike Whalen

runtime platform models
Runtime Platform Models

SEng 5861 - Mike Whalen

runtime platform models1

Offline storage

Runtime Platform Models

Online storage

Specialized hardware

Processing node

Element to node mapping

Network

links

Client node

SEng 5861 - Mike Whalen

process
Process

{model = SL3000

mfr = StorageTek}

{model = StorEdge450

mfr = Sun

capacity=2TB}

Estimate Hardware Requirements

- What is current load on servers?- What are reqs for processing power, memory, disk, bandwidth?

{memory = 1GB,

model = V880

CPU 2 x 750MHz,

mfr = Sun}

{memory = 1GB,

model = E420R

CPU 2 x 450MHz,

mfr = Sun}

Map software to hardware

- is capacity sufficient?

- must services be colocated?

- must services be separated?

Conduct technical evaluation of deployment:

- prototyping,

- benchmarks,

- compatibility tests

Then assess constraints

Design deployment environment

- identify key servers

- identify network connections

- elaborate with storage, specialized hardware

{memory = 1GB,

model = V880

CPU 4 x 1.1GHz,

mfr = Sun}

{memory = 128MB,

CPU 750 MHz}

{memory = 512MB,

CPU 1.2 GHz}

SEng 5861 - Mike Whalen

network model
Network Model

SEng 5861 - Mike Whalen

network model components
Network Model Components

Processing Nodes

Network Connections with Constraints

Network Nodes

SEng 5861 - Mike Whalen

capturing software dependencies
Capturing Software Dependencies
  • Use tables to capture dependencies for each system
  • Use database to “roll up” all dependencies for a module
    • This step can check for inconsistencies

SEng 5861 - Mike Whalen

pitfalls
Pitfalls
  • Missing dependencies
  • Unproven technology
    • Use stuff you are familiar with, when possible
    • Allocate additional testing time for new HW
  • Lack of specialist technical knowledge
  • Late consideration of deployment environment

SEng 5861 - Mike Whalen

operations view
Operations view

SEng 5861 - Mike Whalen

what does it mean when the swap file is full
What does it mean when the swap file is full?
  • Operational aspects of systems are often ignored during design
  • This is a significant contributor to unexpected system down time

Apr 7 21:42:18 aga253distp209 genunix: [ID 470503 kern.warning] WARNING: Sorry, no swap space to grow stack for pid 18718 (httpd)Apr 7 21:42:18 aga253distp209 last message repeated 1 timeApr 8 07:54:28 aga253distp209 tmpfs: [ID 518458 kern.warning] WARNING: /zonas/sitesoutros/root/etc/svc/volatile: File system full, swap space limit exceededApr 8 07:54:28 aga253distp209 last message repeated 1 timeApr 8 07:59:28 aga253distp209 tmpfs: [ID 518458 kern.warning] WARNING: /zonas/sitesoutros/root/etc/svc/volatile: File system full, swap space limit exceededApr 8 07:59:28 aga253distp209 last message repeated 1 timeApr 8 08:04:28 aga253distp209 tmpfs: [ID 518458 kern.warning] WARNING: /zonas/sitesoutros/root/etc/svc/volatile: File system full, swap

SEng 5861 - Mike Whalen

when do i need it1
When do I need it?
  • Any time the system must be maintained after it is installed.
    • Procedures for long term data storage
    • Procedures for how to manage the system under heavy load
    • Procedures for graceful system load / shutdown
    • Data migration procedures

SEng 5861 - Mike Whalen

operations activities
Operations Activities
  • Installation and Migration
  • Configuration Management
  • System Administration
  • System Support

SEng 5861 - Mike Whalen

installation
Installation
  • [Insert your horror story here]
  • Functional migration
    • Big bang:immediate switchover (often during offpeak times like weekends)
    • Parallel Run: new and old systems run side by side until confidence is gained
    • Staged Migration: parts of a process or system are swapped out over a period of time to minimize risk of failure
  • How do you back out if migration fails?

SEng 5861 - Mike Whalen

data migration
Data Migration
  • System transition may involve changing format of GBs or TBs of data
    • May not match new format exactly
    • May require conversion in parallel with live updates
      • Zeno’s conversion…
  • Extraction, Transformation, and Load (ETL) tools are designed to aid this conversion

Courtesy of Merle and Kelly Cunningham

SEng 5861 - Mike Whalen

slide on etl tools
Slide on ETL tools
  • TBD

SEng 5861 - Mike Whalen

documenting installation and migration
Documenting Installation and Migration
  • No standard modeling notation for describing functional and data migration
    • It may be best presented in prose with tables
  • Functional migration documentation should:
    • describe installation groups
    • describe dependencies
    • describe constraints: autocoding, autoconfig
    • describe backout approach

SEng 5861 - Mike Whalen

example installation docs
Example Installation Docs
  • Good example from R&W on page 334
  • But, how should (do?) you test backout procedure?

SEng 5861 - Mike Whalen

data migration1
Data Migration

SEng 5861 - Mike Whalen

data migration2
Data Migration
  • Determine amount of data and format differences for migration
  • Define procedure for data transformation (if required) between old and new system
  • Define information synchronization procedure (if required) between old and new system
  • Define procedure for backout
    • May be difficult to reverse the data transformation when migrating

SEng 5861 - Mike Whalen

system administration document
System Administration Document
  • Routine maintenance procedures
  • Likely error conditions
  • Logging facilities and use
  • Custom utilities necessary for administration
  • Key performance scenarios and how to monitor performance
  • Monitoring facilities to be provided to track system during runtime

SEng 5861 - Mike Whalen

system administration example
System Administration Example
  • R&W Page 342

SEng 5861 - Mike Whalen

do not use operations documentation as an excuse for bad software
Do not use operations documentation as an excuse for bad software!
  • Examples:
    • Los Angeles air traffic control
    • Patriot missle system
    • Therac 25
    • Infusion pumps
  • Operations documents can become a CYA for bad software

SEng 5861 - Mike Whalen

support model documentation
Support Model Documentation
  • Image showing support

SEng 5861 - Mike Whalen

support model documentation1
Support Model Documentation
  • Groups needing support
    • How to support: User groups? E-mail? Telephone? On-Site?
  • Classes of incidents
    • Characteristics of incidents: what is the impact?
    • Where does the buck stop?
  • Support providers and responsibilities
  • Escalation process
    • How do we make sure that incidents are resolved in a timely and correct manner?

SEng 5861 - Mike Whalen

pitfalls1
Pitfalls
  • Lack of engagement with Operations staff
  • Lack of backout planning
  • Lack of migration planning
    • Potentially twice the data!
  • Insufficient migration window
  • Missing management tools
  • Lack of integration into the production environment
    • Doesn’t play well with existing systems

SEng 5861 - Mike Whalen

starting from my version
Starting from My Version

SEng 5861 - Mike Whalen

create airport parking system system administration document
Create Airport Parking System System Administration Document
  • Routine maintenance procedures
  • Likely error conditions
  • Logging facilities and use
  • Custom utilities necessary for administration
  • Key performance scenarios and how to monitor performance
  • Monitoring facilities to be provided to track system during runtime

SEng 5861 - Mike Whalen

go make it so
Go make it so!

SEng 5861 - Mike Whalen

concurrency management
Concurrency Management
  • Moore’s law is making computers with more cores rather than faster cores
  • Business systems are becoming more focused on real-time response
  • Control systems are inherently concurrent
    • Environment updates in parallel with controller
    • Availability requirements necessitate redundant systems
  • Hence, architects must describe and manage concurrency

SEng 5861 - Mike Whalen

concurrency management1
Concurrency Management
  • Task structure
  • InterprocessCommunication
  • State management
  • Synchronization and Integrity
  • Startup and Shutdown
  • Task Failure
  • Re-entrancy

SEng 5861 - Mike Whalen

concurrency models process
Concurrency Models: Process

SEng 5861 - Mike Whalen

Slide from: Eoin Woods, Viewpoints and Perspectives, SATURN 2008 (www.eoinwoods.info)

concurrency models thread
Concurrency Models: Thread

SEng 5861 - Mike Whalen

concurrency activities
Concurrency Activities
  • Map elements to processes
  • Determine the threading design
  • Consider the approach to shared resources
  • Assign priorities to threads and processes
  • Analyze deadlocks / race conditions
  • Analyze contention

SEng 5861 - Mike Whalen

what have we learned
What have we learned
  • Importance of deployment and operations
  • A little bit about concurrency
    • Not even enough to be dangerous
    • Many benefits, but also many pitfalls with concurrency
    • We will look at this further over the next few weeks when talking about patterns

SEng 5861 - Mike Whalen