260 likes | 352 Views
2.3 Architectures II. CSE 5306 -2 Lecture Quiz 4 due 2 at 5 PM 2 September 2014. Architectures v. Middleware. Middleware is the singular architectural layer between applications and distributed platforms (Fig.1-1, p.3).
E N D
2.3 Architectures II CSE 5306-2 Lecture Quiz 4 due 2 at 5 PM 2 September 2014
Architectures v. Middleware • Middleware is the singular architectural layer between applications and distributed platforms (Fig.1-1, p.3). • It provides distribution transparency by translating between varied application languages L2 and hardware languages L1. • A middleware product (e.g., object-oriented CORBA) may become bloated, if it tries to offer interaction patterns for everyone.
Interceptors • An object calls all methods the same way, whether they are local or remote. • When a method is remote, the object’s local interface must intercept the call. • The middleware’s request-level interceptor transforms it into a generic object invocation. • The middleware’s message-level interceptor sends it as a message to the local operating system’s LAN transport layer, possibly breaking up any transmitted files into blocks for reassembly by the remote middleware. • Un-intercepted local calls simply pass through the middleware to the local operating system.
General Approaches to Adaptive Software • Distributed applications’ runtime environments are continually changing. • Middleware presents a stable environment, handling all cell phone mobility, network quality-of-service dips, hardware failures and battery drainage problems. • These adaptations are categorized as: • Separation of concerns—aspect-oriented software development weaves security and fault tolerance into the middleware’s application services. • Computational reflections—middleware continually inspects and adjusts its own runtime performance. • Component-based design—middleware reconfigures itself at runtime with late binding to modules that are loaded or unloaded at will.
Discussion • Services that applicationsdemand from middleware (specialization) conflict with needs for middleware’s distribution transparency (generality). • Flexibility leads to complexity. • External simplicity arises from selectively configuring components and application independence. • Distributed systems must not fail, so they must adapt to changing environments by automatically replacing and upgrading components at runtime.
R U O K ? • What might cause a middleware to become bloated? • Applications’ demands for middleware services (specialization) competing with middleware’s distribution transparency (generality). • Enabling users to selectively configure components as needed. • Application independence. • Flexibility, which leads to complexity. • Both a and d above.
R U O K ? Arrange the following in their proper sequence. 2. Un-intercepted local calls simply pass through the middleware to the local operating system. __ 3. An object calls every method the same way, whether local or remote. __ 4. If the method is remote, the object’s local interface intercepts the call. __ 5. The middleware’s message-level interceptor sends the call as a message to the local operating system’s LAN transport layer, possibly breaking up any transmitted files into blocks for reassembly by a remote middleware. __ 6. The middleware’s request-level interceptor transforms the call into a generic object invocation. __
R U O K ? Match the following terms with their definitions below. 7. CORBA __ 8. Interceptor __ 9. Middleware __ 10. Request-level interceptor __ 11. Message-level interceptor __ • A middleware object that redirects RPCs to the LAN. • Transforms calls into messages and transfers file blocks. • A popular object-oriented middleware. • Transforms method calls into a generic object invocations. • Interprets language L0 below into language L1 above and vice versa, while presenting a stable client environment.
R U O K ? 12. How does middleware adapt its distributed system to environmental changes? • Separation of concerns—aspect-oriented software development weaves security and fault tolerance into the middleware’s application services. • Computational reflections—middleware continually inspects and adjusts its own runtime performance. • Component-based design—middleware reconfigures itself at runtime with late binding to modules that are loaded or unloaded at will. • All of the above. • None of the above.
R U O K ? 13. How is middleware similar to and different from other architectures? • Middleware is a single layer. • Middleware developers adopt a variety of organization schemes, with varying success. • Middleware tends to become bloated as developers strive to organize it to serve every application. • All of the above. • None of the above.
Self-Management in Distributed Systems • To automatically adapt to changing environments, we must organize components for monitoring and adjustments, while deciding where their processes must be executed. • Autonomic computing starts with a high-level feedback control system that self-manages, self-heals, self-configures and self-optimizes.
The Feedback Control Model • Self-managing systems adapt to their changing environments by means of one or more feedback control loops. • The “Initial Configuration” includes the customer’s performance requirements and potential customers’ “desirements.” • “Uncontrollable Parameters” include ongoing environment changes and random perturbations. • “Analysis” estimates the distributed system’s current performance metrics and continually tweaks it, feeding configuration “Corrections” into the system’s input. • “Estimates” implies that some performance parameters cannot be measured directly; e.g., a remote node’s latency. • “Corrections” may include reprioritizing schedules, choosing a higher quality-of-service, caching heavily used data or replicating. Every correction’s effects also are carefully evaluated. • Like any architecture, the feedback loop is a logical organization; its distributed physical implementation may look quite different.
Systems Monitoring with Astrolabe • An Astrolabe zone automatically summarizes performance attributes from all of its hosts’ robotic agents; e.g., files, resources. • Userprogrammable aggregation functions use SQL-like commands to aggregate zone data: SELECT AVG(procs) AS avg_procs FROM hostinfo • “Gossiping” occasionally provides supplementary distant data. • Astrolabe passes its performance summaries on to external tools for analyses and corrective actions.
R U O K ? 14. Which of the following accurately describe the “self-management” of distributed systems? • Broken systems healing themselves. • Systems reconfiguring at runtime, as their environments change. • Organizing components for monitoring and adjustmentsin changing environments. • Continually optimizing performance under stress. • All of the above.
R U O K ? 15. Which of the following accurately describe the feedback control model? • Its “initial configuration” includes the customer’s performance requirements, as well as potential customers’ “desirements.” • Its “uncontrollable parameters” include ongoing environment changes and random perturbations. • The “analysis” block in its feedback branch estimates the distributed system’s current performance metrics and continually tweaks it, feeding configuration “corrections” into the system’s input. • Like any architecture, the feedback loop is a logical organization; its distributed physical implementation may look quite different. • All of the above.
R U O K ? 16. How can the feedback control model correct distributed system failures? • It can reprioritize schedules. • It can choose a higher network quality-of-service. • It can cache heavily used data. • It can replicate heavily used data. • All of the above.
R U O K ? 17. Which of the following accurately describe system monitoring with Astrolabe? • An Astrolabe zone automatically summarizes performance attributes from all of its hosts’ robotic agents; e.g., files, resources. • User programmable aggregation functions use SQL-like commands to summarize zone data. • “Gossiping” occasionally provides supplementary data from nodes outside the zone. • Analysis and corrective actions are outside Astrolabe’s scope. • All of the above.
R U O K ? 18. What does this SQL-like preprogrammed command direct Astrolabe to mean: SELECT AVG(procs) AS avg_procs FROM hostinfo • Repair the failed component, which can be identified by its deficient average procedural performance. • Average all procedure attributes in the zone’s host information file and store them in the avg_procs object. • Analyze the performance of all components, and display their mean performance. • Replace a below-average component. • None of the above.
Differentiating Replication Strategies in Globule • A Globule collaborative content distribution network’s end-user servers replicate origin server web pages (p.54). • Seeing many Texas customers reading her web catalog, a consumer electronics exporter in Tokyo (automatically) decides to replicate popular catalog pages on a Texas edge server to improve those customers’ web performance. • 30-50 policies for updating these replicates may be explored, with weighted values of trans-Pacific bandwidth, customer request latencies, number of viewable stale copies, etc. • Poor (high cost) policies arise from taking too few measurements or taking too long to gather enough. The minimal cost is somewhere in between (see above).
Automatic Component Repair Management in Jade • In servers with component-based designs, Jade continually tests all components; it replaces failed components with new ones; and it restores all bindings with other components, as well as the server’s state just prior to failure. • A component has two types of interfaces: • Its server interface calls methods in that component. • Its client interface calls other (possibly remote) components. • In Jade’s repair management domain, there may be many servers, each with its own node manager (possibly replicated for reliability), which adds and removes nodes (servers) from the domain. • Every component offers a variety of self-tests; e.g., exception states, resource usage problems, hardware failures. • A preprogrammed repair procedure begins after each failure: • Node manager terminates all bindings with the faulty node (server). • It starts a new node and adds it to the domain. • It configures the new node like the crashed one. • It reestablishes all previously terminated bindings.
Summary • Software architecture differs from system design in the following ways. • Software architecture is concerned about the logical organization of the software: 1) how components interact, 2) how they are structured and 3) how they can be made independent. • System design considers where the distributed system’s components are physically placed among the various machines. • A model-based system design demonstrates system performance (the customer’s requirements), while providing a high-level (MATLAB) description of the target code that software developers understand. • The software architecture renders a system design on a UML 2.0 object model diagram of classes and dependencies. • There are other popular architectural styles for organizing the interactions among a distributed system’s components. • Layering. • Object orientation. • Event orientation. • Data space orientation. • Distributed architectures differ from centralized client-server systems. • Distributed architectures tend to be peer-to-peer systems. • The peer-to-peer system is organized into an overlay network. • The overlay network is a process’ list of those peers, with whom it can communicate. • Overlay networks can be structured (deterministic), unstructured (random) or an optimized hybrid of both.
R U O K ? 19. Which of the following exemplify Globule’s replication performance? • An exporter in Japan asks a Texas edge server to replicate web-based catalog pages for loyal Texas customers’ convenience. • Many tens of policies may be considered in deciding how often to update each replicated web page. • Excessively costly policies arise from taking too few measurements or taking too long to gather enough. • All of the above. • None of the above.
R U O K ? 20. Which of the following accurately describe Jade’s component repair services? • They work only on servers with component-based designs. • Jade continually tests all components. • Jade replaces failed components with new ones. • Jade restores all prior bindings with other components, as well as the server’s state just prior to failure. • All of the above.
R U O K ? 21. How is software architecture different from system design? • Software architecture is concerned about the logical organization of the software: 1) how components interact, 2) how they are structured and 3) how they can be made independent. • System design considers where the distributed system’s components are physically placed among the various machines. • Yourmodel-based system design clearly demonstrates desired target system performance to the customer, while providing all software developers a high-level (MATLAB) description of the target code. • As software architect and designer, you interpret the system design as 1) a UML 2.0 object model diagram of classes and dependencies and 2) sequence diagram of methods’ messages. • All of the above.
R U O K ? 22. Which of the following are popular architectural styles for organizing the interactions among a distributed system’s components? • Layering. • Object orientation. • Event orientation. • Data space orientation. • All of the above.
R U O K ? 23. How do distributed architectures differ from centralized client-server systems? • Distributed architectures tend to be peer-to-peer systems. • The peer-to-peer system is organized into an overlay network. • The overlay network contains every process’ list of peers, with whom it can communicate. • Overlay networks can be structured (deterministic), unstructured (random) or an optimized hybrid of both. • All of the above.