33
Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

Embed Size (px)

Citation preview

Page 1: Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

Global Analysis and Distributed Systems

Software Architecture Lecture # 5-6

Page 2: Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

2

Page 3: Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

3

Global analysis Identify the external influencing factors

and critical requirements that could affect the architecture.

Analyze them to come up with strategies for designing the architecture

If all cannot be satisfied, decide which has priority, renegotiate a requirement, or change some external factor to come up with workable strategies.

Page 4: Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

4

Global analysis con’t Influencing factors

Organizational factors Development schedule, budget Organizational attitudes, software process

Technological factors Available hardware and software technology

Product factors Performance, dependability, cost May be different in future versions

Page 5: Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

5

Page 6: Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

6

Page 7: Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

7

Page 8: Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

8

Global analysis con’t Occurs throughout the design

New factors, issues or strategies can arise at any time

Requirements and risk analyses might give the analyzed factors Then develop strategies to the design

G.A provides a systematic way of identifying, accommodating and describing the affecting factors

Page 9: Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

9

Page 10: Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

10

Why Global Analysis Influencing factor always involve a change. Successful project prepares for a change

by; Noting the flexibility of influencing factor and

their likelihood of change. Characterizing how factors interact and their

impact. Selecting cost-effective design plan and project

plan to reduce the impact of change.

Page 11: Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

11

Page 12: Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

12

Global analysis con’t Analyzing factors

Take as input the organizational, technological and product factors

Three (3) step procedure Step 1: Identify and describe the factors Step 2: Characterize the flexibility or the changeability

of the factors Step3: Analyze the impact of the factors

Page 13: Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

13

Step 1: Identify and describe the factors Can the factor’s influence be localized to one

component or not? During which stages of development is the

factor important? Does the factor require any new expertise or

skills?

Page 14: Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

14

Step 2: Characterize the flexibility or the changeability of the factors

Flexibility Is it possible to control the factor so that it

makes your task of architecture development easier?

In what way can you control it? To what extent can you control it?

Changeability In what way could the factor change? How likely will it change during or after

development? How often will it change? Will the factor be affected by changes in the

other factors?

Page 15: Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

15

Step3: Analyse the impact of the factors If a factor was to change, which of the

following would be affected and how: Other factors Components Modes of operation of the system Other design decisions

Page 16: Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

16

Page 17: Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

17

Page 18: Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

18

Page 19: Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

19

Global analysis con’t Develop strategies

Three (3) steps procedure Step 1: Identify issues and influencing factors Step 2: Develop solutions and specific strategies Step 3: Identify related strategies

Page 20: Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

20

Step 1: Identify issues and influencing factors Identify a important issues that are

influenced by the factor and their changeability Limitations or constraints imposed by factors

Aggressive development schedule Difficulty in satisfying product factors

High throughput req. may overload CPU A common solution to global requirements

Error handling and recovery

Page 21: Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

21

Page 22: Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

22

Page 23: Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

23

Step 2: Develop solutions and specific strategies For each issue, develop strategies that

address the issue and ensure the implementation, for changeability of the architecture design Reduce or localize the factor’s influence Reduce the impact of the factor’s changeability

on the design and other factors Reduce or localize required area of expertise or

skills Reduce overall time and effort

Page 24: Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

24

Page 25: Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

25

Step 3: Identify related strategies When a strategy belongs with more than one

issue, don’t repeat the strategy.

Page 26: Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

26

Page 27: Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

27

Page 28: Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

28

What Is A Distributed System?

A collection of independent computers that appears to its users as a single coherent system.

Features: No shared memory – message-based

communication Each runs its own local OS Heterogeneity

Ideal: to present a single-system image: The distributed system “looks like” a single

computer rather than a collection of separate computers.

Page 29: Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

29

Distributed System Characteristics

To present a single-system image: Hide internal organization, communication details Provide uniform interface

Easily expandable Adding new computers is hidden from users

Continuous availability Failures in one component can be covered by other

components Supported by middleware

Page 30: Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

30

Definition of a Distributed System

Figure 1-1. A distributed system organized as middleware. The middleware layer runs on all machines, and offers a uniform interface to the system

Page 31: Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

31

What is Middleware?

Middleware is the software between the application programs and the operating System and base networking

Integration Fabric that knits together applications, devices, systems software, data

an operating system is “the software that makes the hardware usable”

similarly, a middleware system makes the distributed system programmable and manageable

Page 32: Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

32

Role of Middleware (MW) In some early research systems: MW tried

to provide the illusion that a collection of separate machines was a single computer. E.g. NOW project: GLUNIX middleware

Today: clustering software allows independent

computers to work together closely MW also supports seamless access to remote

services, doesn’t try to look like a general-purpose OS

Page 33: Global Analysis and Distributed Systems Software Architecture Lecture # 5-6

33

Middleware Examples CORBA (Common Object Request Broker

Architecture) DCOM (Distributed Component Object

Management) – being replaced by .net Sun’s ONC RPC (Remote Procedure Call) RMI (Remote Method Invocation) SOAP (Simple Object Access Protocol)