global analysis and distributed systems software architecture lecture # 5-6
TRANSCRIPT
Global Analysis and Distributed Systems
Software Architecture Lecture # 5-6
2
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.
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
5
6
7
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
9
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.
11
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
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?
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?
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
16
17
18
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
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
21
22
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
24
25
Step 3: Identify related strategies When a strategy belongs with more than one
issue, don’t repeat the strategy.
26
27
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.
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
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
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
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
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)