330 likes | 450 Vues
This lecture focuses on the critical aspect of global analysis in distributed systems architecture. It covers identifying external influencing factors and essential requirements that impact design decisions. By analyzing these factors—including organizational, technological, and product elements—strategies are developed to address them effectively. The lecture also emphasizes the importance of flexibility and changeability of these factors, guiding developers on prioritizing requirements and reassessing strategies as issues arise throughout the architecture's design process.
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)