UAH CS 690 - Architectures for Distributed Systems

Unformatted text preview:

Architectures for Distributed SystemsDefinitionsArchitectural StylesSlide 4Data-Centered ArchitecturesSlide 6Architectural Styles (5)Distribution TransparencySystem Architectures for Distributed SystemsTraditional Client-ServerC/S ArchitecturesTransmission FailuresIdempotencyLayered (software) Architecture for Client-Server SystemsExamplesApplication LayeringSystem ArchitectureTwo-tiered C/S ArchitecturesMultitiered ArchitecturesThree-tiered ArchitecturesMultitiered Architectures (3 Tier Architecture)Centralized v Decentralized ArchitecturesPeer-to-PeerOverlay NetworksPowerPoint PresentationSlide 26Structured P2P ArchitecturesSlide 28Characteristics of DHTChord Routing Algorithm Structured P2PInserting Items in the DHTStructured Peer-to-Peer ArchitecturesFinding Items in the DHTJoining & Leaving the NetworkSummaryUnstructured P2PLocating a Data Object by FloodingComparisonSuperpeersHybrid ArchitecturesEdge-Server SystemsCollaborative Distributed Systems BitTorrentCollaborative Distributed SystemsBitTorrent - JustificationFreenetP2P v Client/ServerArchitecture versus MiddlewareSlide 48AppendixContent Addressable Networks Structured P2PSlide 51Slide 52Architectures for Distributed SystemsChapter 2Definitions•Software Architectures – describe the organization and interaction of software components; focuses on logical organization of software (component interaction, etc.)•System Architectures - describe the placement of software components on physical machines–The realization of an architecture may be centralized (most components located on a single machine), decentralized (most machines have approximately the same functionality), or hybrid (some combination).Architectural Styles•An architectural style describes a particular way to configure a collection of components and connectors.–Component - a module with well-defined interfaces; reusable, replaceable–Connector – communication link between modules•Architectures suitable for distributed systems:–Layered architectures*–Object-based architectures*–Data-centered architectures–Event-based architecturesArchitectural StylesFigure 2-1. The (a) layered architectural style & (b) The object-based architectural style.Object based is less structured component = object connector = RPC or RMIData-Centered Architectures•Main purpose: data access and update•Processes interact by reading and modifying data in some shared repository (active or passive)–Traditional data base (passive): responds to requests–Blackboard system (active): clients solve problems collaboratively; system updates clients when information changes.•Another example: web-based distributed systems where communication is through web services (Ch 12)Architectural Styles•Figure 2-2. (a) The event-based architectural style• Communication via event propagation, in dist. systems seen often in Publish/ Subscribe; e.g., register interest in market info; get email updates• Decouples sender & receiver; asynchronous communicationEvent-based arch.supports several communication styles:• Publish-subscribe• Broadcast• Point-to-pointArchitectural Styles (5) Figure 2-2. (b) The shared data-space architectural style.Data Centric Architecture; e.g., shared distributed file systems or Web-based distributed systemsCombination of data-centered and event based architectures Processes communicate asynchronouslyDistribution Transparency•An important characteristic of software architectures in distributed systems is that they are designed to support distribution transparency.•Transparency involves trade-offs•Different distributed applications require different solutions/architectures–There is no “silver bullet” – no one-size-fits-all system. (Compare NOW, Seti@home, Condor)System Architectures for Distributed Systems•Centralized: traditional client-server structure–Vertical (or hierarchichal) organization of communication and control paths (as in layered software architectures)–Logical separation of functions into client (requesting process) and server (responder)•Decentralized: peer-to-peer–Horizontal rather than hierarchical comm. and control –Communication paths are less structured; symmetric functionality •Hybrid: combine elements of C/S and P2P–Edge-server systems–Collaborative distributed systems.•Classification of a system as centralized or decentralized refers to communication and control organization, primarily.Traditional Client-Server•Processes are divided into two groups (clients and servers).•Synchronous communication: request-reply protocol•In LANs, often implemented with a connectionless protocol (unreliable)•In WANs, communication is typically connection-oriented TCP/IP (reliable) –High likelihood of communication failuresC/S ArchitecturesFigure 2-3. General interaction between a client and a server.Transmission Failures•With connectionless transmissions, failure of any sort means no reply •Possibilities:–Request message was lost–Reply message was lost–Server failed either before, during or after performing the service •Can the client tell which of the above errors took place?Idempotency•Typical response to lost request in connectionless communication: re-transmission•Consider effect of re-sending a message such as “Increment X by 1000”–If first message was acted on, now the operation has been performed twice•Idempotent operations: can be performed multiple times without harm–e.g., “Return current value of X”; check on availability of a product–Non-idempotent: “increment X”, order a productLayered (software) Architecture for Client-Server Systems•User-interface level: GUI’s (usually) for interacting with end users•Processing level: data processing applications – the core functionality•Data level: interacts with data base or file system–Data usually is persistent; exists even if no client is accessing it–File or database systemExamples•Web search engine–Interface: type in a keyword string–Processing level: processes to generate DB queries, rank replies, format response–Data level: database of web pages•Stock broker’s decision support system–Interface: likely more complex than simple search –Processing: programs to analyze data; rely on statistics, AI perhaps, may require large simulations–Data level: DB of financial information•Desktop “office suites”–Interface: access to various documents, data, –Processing: word


View Full Document

UAH CS 690 - Architectures for Distributed Systems

Download Architectures for Distributed Systems
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Architectures for Distributed Systems and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Architectures for Distributed Systems 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?