1 / 40

The Importance of Distributed Computing

Explore the concept and benefits of distributed computing in a networked world where data is scattered in the Internet and users are geographically distributed. Learn about different forms of transparency, scalability issues with centralized and client-server models, and the pitfalls of developing distributed systems. Discover various types of distributed computing systems such as cluster computing, grid computing, and transaction processing systems, and understand the architectural styles and layers involved in building distributed systems.

casteelb
Download Presentation

The Importance of Distributed Computing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DISTRIBUTED COMPUTINGIntroductionDr. Yingwu Zhu

  2. Can We Live w/o Distributed Computing? • A networked world • Data are scattered in Internet • Users are distributed geographically • ….

  3. Definition of a Distributed System (1) • A collection of independent computers that appears to its users as a single coherent system.

  4. Definition of a Distributed System (2) A distributed system organized as middleware. The middleware layer extends over multiple machines, and offers each application the same interface.

  5. Transparency in a Distributed System Different forms of transparency in a distributed system (ISO, 1995).

  6. Service Models

  7. 1.Why do we need distributed systems?2. Can centralized systems work well?

  8. Centralized Model • No networking • • Traditional time-sharing system • • Direct connection of user terminals to system • • One or several CPUs • • Not easily scalable • • Limiting factor: number of CPUs in system • - Contention for same resources

  9. Client-Server Model • Environment consists of clients and servers • Service: task machine can perform • Server: machine that performs the task • Client: machine that is requesting the service

  10. Problem with Centralized Models and Client-Server Models?

  11. Scalability Problems Examples of scalability limitations.

  12. Go for distributed systems?

  13. Decentralized Algorithms • Characteristics of decentralized algorithms: • No machine has complete information about the system state. • Machines make decisions based only on local information. • Failure of one machine does not ruin the algorithm. • There is no implicit assumption that a global clock exists. (No exact clock synchronization), clock drift!

  14. Scaling Techniques (1) Figure 1-4. The difference between letting (a) a server or (b) a client check forms as they are being filled. “Empower the clients!”

  15. Scaling Techniques (2) An example of dividing the DNS name space into zones. “(Data & Computing) Distribution/partition”

  16. Scaling Techniques (3) • Replication (data & services) • Availability • Load balancing • Improve latency by accessing the nearby copy • Caching • Downsides • Consistency issues: modification on one copy  other copies?

  17. Pitfalls when Developing Distributed Systems • False assumptions made by first time developer: • The network is reliable. • The network is secure. • The network is homogeneous. • The topology does not change. • Latency is zero. • Bandwidth is infinite. • Transport cost is zero. • There is one administrator.

  18. Types of Distributed Computing Systems • For high-performance computing • Cluster Computing • similar hardwares (workstations, or PCs) • high-speed LANs • Grid Computing • Constructed by a federation of computing • systems under different admin. domains, differenthardware, software and networking technology! • Higher heterogeneity, geographically distributed • Seamless access to storage, processing & bandwidth • Build a “supercomputer” on the fly via networked, loosely coupled computers

  19. Transaction Processing Systems (1) • Example primitives for transactions.

  20. Transaction Processing Systems (2) • Characteristic properties of transactions: • Atomic: To the outside world, the transaction happens indivisibly. • Consistent: The transaction does not violate system invariants. • Isolated: Concurrent transactions do not interfere with each other. • Durable: Once a transaction commits, the changes are permanent.

  21. Transaction Processing Systems (3) • A nested transaction.

  22. Transaction Processing Systems (4) • The role of a TP monitor in distributed systems.

  23. ARCHITECTURES

  24. Architectural Styles (1) • Components (modular unit) • Provide interfaces • Can be replaced if we respect its interfaces • Connector: • meditates communication, coordination, or cooperation among components • Eg. RPCs

  25. Architectural Styles (2) • Important styles of architecture for distributed systems • Layered architectures • Object-based architectures • Data-centered architectures • Event-based architectures

  26. Architectural Styles (3) • The layered architectural style and … • E.g., network layers

  27. Architectural Styles (4) • (b) The object-based architectural style. • Object  component, e.g., client/server architecture

  28. Architectural Styles (5) • (b) The shared data-space architectural style. • E.g., networked apps rely on a distributed file system where allcommunication takes place via files

  29. Architectural Styles (6) • Figure 2-2. (a) The event-based architectural style and … • e.g., publish/subscribe systems

  30. System Architecture • Centralized architecture • Decentralized architecture

  31. Centralized Architectures • General interaction between a client and a server.

  32. Application Layering (1) • Client/Sever architecture • The user-interface level • The processing level • The data level

  33. Application Layering (2) • The simplified organization of an Internet search engine into three different layers.

  34. 2-Tiered Architectures • Common from mid 1980’s-early 1990’s • The simplest organization is to have only two types of machines: • A client machine containing only the programs implementing (part of) the user-interface level (UI) • A server machine containing the rest, • the programs implementing the processing and data level

  35. Multitiered Architectures • Alternative client-server organizations (a)–(e). • Clients: thin  fat

  36. 3-tiered Architectures (3) • 3-tiered architecture. • The role of clients & servers blurs! Server-side solutions becomedistributed across multiple machines!

  37. 3-tiered architecture

  38. Beyond 3-tiered Most architectures are multi-tiered

  39. Decentralized Architecture • Peer-to-peer systems • Chord • BitTorrent • ……

  40. Structured Peer-to-Peer Architectures (1) • The mapping of data items onto nodes in Chord.

More Related