330 likes | 445 Views
Global Analysis and Distributed Systems . Software Architecture Lecture # 5-6. 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
E N D
Global Analysis and Distributed Systems Software Architecture Lecture # 5-6
Global analysis • Identify the external influencing factors and critical requirements that could affect the architecture. • Analyzethem 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.
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
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, accommodatingand describing the affecting factors
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.
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
Step 1: Identify and describe the factors • Can the factor’s influence be localizedto one component or not? • During which stages of development is the factor important? • Does the factor require any new expertise or skills?
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?
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
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
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
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 localizethe 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
Step 3: Identify related strategies • When a strategy belongs with more than one issue, don’t repeat the strategy.
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.
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
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
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
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
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)