610 likes | 785 Views
Architectures. CSE 5306 Lecture Quiz Due 6 /10/ 2014. Architectures I . “Divide & Conquer” -- organizes the design of a distributed system. Name the parts and show their interactions. System (multi-server?) architecture precedes and drives software architecture.
E N D
Architectures CSE 5306 Lecture Quiz Due 6/10/2014
Architectures I • “Divide & Conquer” -- organizes the design of a distributed system. • Name the parts and show their interactions. • System (multi-server?) architecture precedes and drives software architecture. • Adaptive (tradeoffs) middleware can provide distribution transparency by separating apps from their platforms. • Autonomic distributed systems use feedback control loops to monitor their behaviors and adapt.
Architectural Styles • Let’s adopt Visio’s UML 2.0 Object Model Diagram as our (object-oriented) architectural style. Its components are classes and instances. Its connectors are offspring “inherit” and cross-family, marital “uses.” • Consider three other styles: • Layered architectures—including inheritance. • Data-centered architectures—processors communicating via shared files or web-based data services. • Event-based architectures—publish/subscribe systems. • Hybrids trading off performance, fault-tolerance, ease of programming, etc. • In our chosen object-based architectural style, inheritance also is layered (Fig.2-1, -2, pp.35, 36). • Networks have 7 OSI layers: application, down to representation, session, transport, network, data link and physical. • Event based systems are loosely or referentially coupled. • SQL’s shared data spaces are both data-centered and event-based.
System Architectures • A system architecture defines relationships among… • users (clients), • (server) hardware and • both purchased and developed software, • from apps through tools to middleware. • A system architecture can be centralized, decentralized or a hybrid of the two.
Centralized Architectures • Servers serve up files or databases. • Clients make “requests” and await “replies.” • If both share the same desktop computer or LAN, they need no phone-like connection. • Remote servers (WAN) must first be called. • Reliable connection-oriented protocols are slow (e.g., the Internet’s TCP/IP). • Idempotent requests can be repeated; e.g., What is my bank balance?” Others cannot; e.g., “Transfer $10K to Joe.”
R U O K ? Match the following terms with their example applications below. • Object-oriented architectures __ • Data-centered architectures __ • Layered architectures __ • CSE 5306-002’s architecture __ • Event-based architectures __ • Networkers’ 7-level OSI hierarchy and UML’s class inheritance. • Its components are classes and instances, and its connectors are “inherit” and “uses.” • Yourdon’s structured data flow diagrams and data structured system design diagrams. • Loosely coupled publish/subscribe systems. • Visio’s UML 2.0 Object Model Diagram
R U O K ? 6. Which of the following accurately characterize centralized architectures? • Servers generally serve up files or databases. • Client-server interactions have a request-reply behavior. • Clients and servers on the same LAN have connectionless network protocols. • Clients must connect to distant WAN servers, usually via the Internet’s via TCP/IP protocol. • All of the above.
R U O K ? 7. Which of the following accurately characterize system architecture? • It defines relationships among clients and servers, hardware and software, whether purchased or developed. • It can be centralized—office LAN’s printer server. • It can be decentralized—the Internet. • It can be a hybrid of the two—a local database that links to the Internet, when it lacks resources. • All of the above.
R U O K ? 8. What is the purpose of software architecture? • It prevents system engineers, who often lack software design skills, from carelessly making software organization decisions. • It organizes software development tasks before implementation. • It defines interfaces among software modules and their verification tests. • It prevents coders, who often lack software design skills, from carelessly making software organization decisions. • All of the above.
R U O K ? Match the following terms with their definitions below. 9. Open Systems Interconnection __ 10. Connection-oriented __ 11. Idempotent __ 12. Object-oriented design __ 13. Object model diagram __ • A request without lingering side effects that can be repeated. • Calling up a remote serverto make a series of requests before hanging up. • The standard layered architecture of networking. • Interpreting verbal software specifications as interrelated families of objects (nouns) and operations (verbs). • Layers of boxes (full of method and object names) that are all interconnected by inheritance or “uses” arrows.
Application Layering • Three application layers (Fig.2-4, p.39 and above): • User interface—desktop computer GUI client. • Processing—application’s core functionality. • Data level—object-relational database- or file-specific entry, retrieval and persistent storage, including table descriptions, entry constraints and application-specific metadata.
Multi-Tiered Architectures • A physically 2-tiered client-server application could be as simple as 1) a thin-client dumb terminal and 2) the server handling everything (Fig.2-5a, p.41). • Fat clients (Fig2-5e) may give users too much control, resulting in security breeches. • In physically 3-tiered architectures, the middle tier is a web server that talks to the client and to application or database servers, as if it were a client (Fig.2-6, p.43).
R U O K ? Match the following terms with their definitions below. 14. Fat client __ 15. Processing application layer __ 16. Thin client __ 17. User interface application layer __ 18. Data level application layer __ • A desktop computer’s GUI client. • The application’s core functionality. • Object-relational database- or file-specific entry, retrieval and persistent storage, including table descriptions, entry constraints and application-specific metadata. • Dumb terminal lets server handle everything. • User terminal handles almost everything, possibly resulting in security breeches.
R U O K ? 19. In what kind of distributed computer system does a server function as both server and client? a. In physically 3-tiered architectures. b. In bank customer service websites, where the server stands guard between inquiring clients and the bank’s object-relational transaction database. c. In secure Internet biographical data repositories, where thin clients are unable to access other’s private data and a highly optimized search engine handles the database. d. All of the above. e. None of the above.
R U O K ? 20. Which of the following are the data level’s responsibilities? a. Making data persist until its next possible use. b. Keeping data consistent across different applications; e.g., ensuring that a debit card user does not withdraw more than his balance. c. Keeping application data independent of organizations and vice versa, so that changes in one do not affect the other (information hiding). d. Accommodating special data representations; e.g., polygons in computer-aided design systems. e. All of the above.
R U O K ? 21. Which of the following applications would be most suitable for fat clients? • Consumer banking. • Algorithm stock traders that are operate autonomously in close proximity to the New York Stock Exchange’s transactional database. • Distributed computer-aided design system used in developing jet fighters. • Limited access LAN that enables astronomers’ control of a large telescope. • Car dealers’ control of Toyota assembly workers.
R U O K ? 22. Which of the following applications would be most suitable for thin clients? • Consumer banking. • Algorithm stock traders that are operate autonomously in close proximity to the New York Stock Exchange’s transactional database. • Distributed computer-aided design system used in developing jet fighters. • Limited access LAN that enables astronomers’ control of a large telescope. • Car dealers’ control of Toyota assembly workers.
R U O K ? 23. Which of the following impact the design of multi-tiered, connection-oriented database applications? • Reusable data should persist between client requests. • Clients may use a wide variety of terminal equipment and communication protocols. • Connections are unreliable; i.e., may drop out and reconnect. • Users may have criminal intentions. • All of the above.
Decentralized Architectures • Multi-tiered client-server architectures are vertically distributed among logically different components on different machines. • In peer-to-peer systems, a client or server’s work is horizontally distributed among logically equivalent parts on different machines, where each part shares the load by working on its own share of the dataset. • In interacting with its peers, any individual (called a “servent”) may behave as a client or as a server. • A servent node’s TCP messages to another node typically are routed through many other message-carrying nodes in an overlay network.
Structured Peer-to-Peer Architectures • In structured peer-to-peer architectures, the overlay network is a distributed hash table (DHT). • Data items are evenly distributed among nodes that bear their hash codes (e.g., the data items’ successors in Chord ring of Fig.2-7, p.45). • Effective “membership management” comes from nodes finding shortest communication paths among themselves, so that data lookups can be done in O(log(Node)) steps. • Available peers join a Chord ring by generating its hash-coded node identifier number and informing its immediate predecessor in the ring. It leaves the ring by giving its data items to its successor and asking its predecessor to replace its name with the name of its successor. • The automotive Content Addressable Network (CAN) works similarly in multiple dimensions, two of which appear in Fig. 2-8, p.46. (A new node joins the overworked node on the lower-left, taking a fraction of the former’s data items and informing its neighbors of its new data range. A node leaves the space by giving away its data to lightly loaded neighbors.)
Unstructured Peer-to-Peer Architectures • The overlay networks of unstructured peer-to-peer systems (e.g., the Internet) are randomly generated, both the lists of neighbors and the data that they oversee. • To locate a needed data item, node A broadcasts (i.e., pushes) its request throughout the network. • Node A adds the node that responds (node B) to its “partial view” (i.e., routing table) of nodes. When node A responds to (i.e., pulls) another node’s (node C) broadcast, it also adds the broadcaster to its partial view. • To join the network, an available peer asks the most frequent contacts on its partial view to share their data items. • When a node leaves the network (and fails to respond to requests), its requesters delete it from their partial views. • Very popular nodes are said to have high “indegree.” If overloaded by requests, it can lower its popularity by simply ignoring some.
R U O K ? Match the following terms with the definitions below. 24. Overlay network __ 25. Horizontal distribution __ 26. Peer-to-peer system __ 27. Servent __ 28. Vertical distribution __ • Separating clients from servers in multiple tiers of logically different components on different machines. • Spreading a client or server’s excessive workload among its peers (i.e., logically equivalentparts) on different machines. • Distributing a client or server’s extra work among its peers; i.e., logically equivalent parts on different machines. • Anprocessor that can assume the role of a client or server to assist an overloaded peer. • A distributed hash table (DHT) that lists node owners of data items in a peer-to-peer system.
R U O K ? 29. Which of the following characterizes a Chord ring of peer-to-peer nodes? • Data items are evenly distributed among nodes that bear their hash codes. • Nodes are logically organized into a ring, such that a data item with key i belongs to the nearest successor node with key k > i. • An available peer joins by generating its own hash-coded node identifier number and introducing itself to its immediate predecessor. • A peer leaves the ring by giving its data items to its successor and asking its predecessor to replace its name with the name of its successor. • All of the above.
R U O K ? 30. Which of the following characterizes a Content Addressable Network (CAN) of peer-to-peer nodes? • It is like a Chord, but with multiple Cartesian coordinate dimensions. • An available node joins the network by accepting half of the data items of an overworked existing node, and informing all nearest neighbors of its and its benefactor’s new ranges of data. • A peer leaves the network by giving away its data to its most lightly loaded neighbors. • All of the above. • None of the above.
R U O K ? 31. Which of the following characterizes an unstructured system of peer-to-peer nodes? • Like the Internet, its overlay networks (i.e., the lists of neighbors and the data that they oversee) are randomly generated. b. To locate a needed data item, a node broadcasts (i.e., pushes) its request throughout the network. c. The broadcasting node adds the responder to its “partial view” of nodes. And when a node responds to (i.e., pulls) another node’s broadcast, it adds the broadcaster to its partial view. d. To join the network, an available peer asks the most frequent contact on its partial view to share its data items. When a node leaves the network (and fails to respond to requests), its requesters delete it from their partial views. e. All of the above.
R U O K ? Match the following terms with their definitions below 33. CAN __ 34. DHT __ 35. Membership management __ 36. Partial view __ 37. Indegree__ • Nodes finding shortest communication paths among themselves, so that data lookups can be completed in O(log(Node)) steps. • The number of other partial views that that contain this node’s number; i.e., a measure of its popularity. • The automotive Content Addressable Network that distributes nodes over a multi-dimensional Cartesian coordinate space. • The distributed hash table that serves as a structured peer-to-peer system’s overlay network. • A routing table that lists nodes and the data items they manage.
Topology Management of Overlay Networks • Structured P2P architectures have better membership management; unstructured P2Ps are faster and distribute nodes’ workloads more evenly; but a hybrid can beat both. • Let the unstructured one work independently below and the structured one optimize its results in a higher architectural layer (Fig. 2-10, p.49). • Optimizing criteria (ranking functions) encourage commerce withphysically or semantically nearest neighbors (Fig. 2-11, p.50). • Very efficient search algorithms use semantic overlay networks that structured P2P systems impose upon unstructured P2P systems.
Superpeers • When too many nodes slow down an unstructured P2P system, its supervising structured P2P system can ask similar nodes to elect a representative superpeer (Fig. 2-12, p.51). • Then a node queries a few superpeers, instead of flooding the whole network with its broadcast. • A superpeer maintains an index of its subordinates’ data items and gathers popular (distant) web pages to rapidly fulfill local searches (content delivery network). • Superpeers should be long-lived and highly available. • Super-superpeers also can be hierarchically organized. • A client may adopt a favorite superpeer to serve collected files. • As nodes join and leave a network, periodic reelections may be needed.
Hybrid Architectures • Yet another optimized hybrid results from marrying client-server and decentralized architectures. • An edge-server enhances enterprise networks’ Internet access. • Collaborative distributed systems encourage cooperation among file servers or end users.
Edge-Server Systems • Internet service providers like AT&T connect a great many users’ homes to the Internet (Fig 2-13, p.52). • Edge servers serve wide-band Internet content to whole enterprise networks full of always-connected users (e.g., AT&T itself). • AT&T’s dedicated edge server optimizes both content and distribution of its applications. • AT&T’s edge server can call upon other local edge servers to broker distant web pages, etc.
Collaborative Distributed Systems • Instead of a dozen clients requesting a big file from a distant server, each client should request a chunk and share it with her neighbors. • BitTorrent (Fig.2-14, p.53) encourages such behavior by serving chunks only to those who promise to share. • A few websites have .torrent files that identify “tracker” servers, which maintain lists of active nodes that have chunks of a desired file. • An “active node” is one that currently is downloading another file. To continue downloading its desired file, it also must serve to others a file that it already has. If it is giving less than it is is getting, its provider reduces its data rate. Successful nodes actively seek trading relationships.
Collaborative Distributed Systems(Continued) • The Globule collaborative content distribution network consists of end users, who voluntarily replicate distant web pages for their friends. • Each user has a manager, an analyzer and a broker. • The broker may refer requests to other servers, who can serve some web pages better. • The broker may be replicated—redundancy enhances reliability.
R U O K ? Match the following terms with the definitions below. 38. Globule __ 39. Ranking function __ 40. Superpeer __ 41. BitTorrent __ 42. Edge server __ • Optimizing criteria that encourage commerce with physically or semantically nearest neighbors. • An Internet service provider for enterprise networks. • Many nodes’ elected representative, who eliminates the need to flood the whole network with a data item request. • A system that promotes file server collaboration. • A user-based web content distribution network.
R U O K ? 43. Which of the following accurately characterize the Globule collaborative content distribution network? a. A group of end users. b. The users volunteer to replicate distant web pages for other’s use. c. Their brokerage services may be replicated to enhance reliability. d. All of the above. e. None of the above.
R U O K ? 44. Which of the following accurately characterize the BitTorrent collaborative file distribution system? • It encourages collaboration by serving chunks of files faster to servers that share. • Its .torrent files identify “tracker” servers, which maintain lists of active nodes having chunks of a desired file. • To stay “active,” its file servers must build relationships with trading partners. • All of the above. • None of the above.
R U O K ? 45. Which of the following accurately characterize a superpeer? a. It maintains an index of subordinates’ data items. b. It gathers popular web pages to rapidly fulfill local searches. c. It should be long-lived. d. It should be highly available. e. All of the above.
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 ? 46. 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. 47. Un-intercepted local calls simply pass through the middleware to the local operating system. __ 48. An object calls every method the same way, whether local or remote. __ 49. If the method is remote, the object’s local interface intercepts the call. __ 50. 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. __ 51. 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. 52. CORBA __ 53. Interceptor __ 54. Middleware __ 55. Request-level interceptor __ 56. 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 ? 57. 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 ? 58. 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 ? 59. 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 ? 60. 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.