distributed systems
play

Distributed Systems Just what is a Distributed System? Definitions - PowerPoint PPT Presentation

Distributed Systems Just what is a Distributed System? Definitions "A Distributed System is one in which components located at networked computers communicate and coordinate their actions only by passing messages". [Coulouris,


  1. Distributed Systems Just what is a Distributed System?

  2. Definitions ● "A Distributed System is one in which components located at networked computers communicate and coordinate their actions only by passing messages". [Coulouris, 2005] ● "A Distributed System is a collection of independent computers that appears to its users as a single coherent system". [Tanenbaum, 2002]

  3. Questions? ● Concurrency - can we concurrently access shared resources safely? ● Timing - no real notion of global time, so, how is coordination achieved? ● Failures - what happens if a component fails?

  4. Why? ● To Share Resources!

  5. Example Distributed Systems ● The Internet ● Intranet ● Networks based on "Mobile Devices"

  6. (Part of) The Internet ☎ intranet ☎ ☎ ISP ☎ backbone satellite link desktop computer: server: network link:

  7. A Typical Intranet Desktop email server computers print and other servers Local area Web server network email server print File server other servers the rest of the Internet router/firewall

  8. Networks based on "Mobile Devices" Internet WAP Host intranet Home intranet Wireless LAN gateway Mobile phone Printer Laptop Host site Camera

  9. Mobile Computing ● Nomadic Computing ● Location Aware or Context-Aware Computing ● Ubiquitous Computing (Computers Everywhere)

  10. Resource Sharing ● It is easy to overlook the significance of: – printer sharing – disk/file sharing – application sharing (search engines)

  11. Important Definition ● "Service" - a distinct part of a computer system that manages a collection of related resources and presents their functionality to users and applications via a set of operations that it exports.

  12. Important Definition ● "Server" - a running program (process) on a networked computer that accepts requests from programs running on other computers to perform a service and respond appropriately

  13. Clients and Servers ● A client invokes an operation upon a server (often referred to as a "remote invocation") ● The terms "client" and "server" apply only to the roles played in a single request ● Many (but not all) distributed systems can be constructed entirely in the form of interacting clients and servers

  14. Extended Example ● The World Wide Web ● "An evolving system for publishing and accessing resources and services across the Internet"

  15. The Web is "Open" ● Can be extended and implemented in new ways without disturbing its existing functionality ● Based on freely published and widely implemented (and adhered to!) communication standards and documents ● The types of resources that can be published and shared is not fixed

  16. Web Server and Web Clients http://www.google.comlsearch?q=kindberg www.google.com Browsers Web servers Internet www.cdk3.net http://www.cdk3.net/ www.w3c.org http://www.w3c.org/Protocols/Activity.html File system of Protocols www.w3c.org Activity.html

  17. Evolving Web ● HTML ● HTTP ● URL ● ... together with ... ● CGI, Server Applications ... ● Web Services and XML

  18. The Web's Successes ● Easy to publish ● Hypertext ● Openness of its system architecture

  19. The Web's Failures ● Design Issues ● Dangling Links ● "Lost in Hyperspace"

  20. The Web's Future? ● The Semantic Web? ● Role of XML? ● Meta-data - “data about data”

  21. Scalability within the Web ● Popular site = many hits = slow! ● Caching and Proxying can help ● Clustering can help, too

  22. The Web's "Reload" Problem ● Stale Data ● There's just no way to keep data that's been read up-to-date ● Web Interface can be too limited

  23. Challenges of Distributed Systems ● Heterogeneity ● Openness ● Security ● Scalability ● Failure Handling ● Concurrency ● Transparency

  24. Heterogeneity ● All types of everything: networks, hardware, software ... ● ... operating systems, programming languages, APIs ... ● ... protocols, byte ordering, standards ... ● One possible (popular) solution: Middleware

  25. Middleware ● A software layer that provides a programming abstraction as well masking the heterogeneity of the underlying technologies (whatever they might be) ● Middleware provides a uniform computational model for use by the programmers of servers and distributed applications

  26. Openness ● This is a characteristic that determines whether the system can be extended and re- implemented in various ways ● Key interfaces are PUBLISHED

  27. The Key Openness Challenge Tackling the complexity of distributed systems consisting of many components engineered by different people

  28. Openness - Key Points ● Key interfaces are published ● Based on the provision of a uniform communication mechanism and published interfaces for access to shared resources ● Open distributed systems can be constructed from heterogeneous hardware and software, from different vendors. But the conformance of each component to the published standard must be tested and verified if systems are to work correctly

  29. Security ● Very important ● Confidentiality ● Integrity ● Availability

  30. Security Challenges ● Sending sensitive information in a message over a network in a secure manner ● Identifying a remote user or agent correctly ● Dealing effectively with Denial-of-Service Attacks ● Securing Mobile Code

  31. Scalability ● A system is scalable if it will remain effective when there is a significant increase in the number of resources and the number of users

  32. Computers on the Internet Computers Date Web servers 188 0 1979, Dec. 1989, July 130,000 0 1999, July 56,218,000 5,560,866 2003, Jan. 171,638,297 35,424,956

  33. Web Servers on the Internet Date Computers Web servers Percentage 1,776,000 130 0.008 1993, July 1995, July 6,642,000 23,500 0.4 1997, July 19,540,000 1,203,096 6 1999, July 56,218,000 6,598,697 12 2001, July 125,888,197 31,299,592 25 42,298,371

  34. Scalability Challenges ● Controlling the cost of physical resources ● Controlling the performance loss ● Preventing software resources running out ● Avoiding performance bottlenecks

  35. Scalability - Bottom Line ● Difficult to achieve ● Help - Replicated Data ● Help - Caching ● Help - Multiple Servers ● Help - Tasks Performed Concurrently

  36. Failure Handling ● Failures are partial - some component(s) fail(s), while others keep operating - how is this managed? ● Detecting failures can be hard ● Masking failures is possible (e.g., retransmission, redundancy) ● Tolerating failures can sometimes be acceptable ● Recovering from failures is often desirable

  37. Failure Handling and Availability The availability of a system is a measure of the proportion of time that it is available for use

  38. Concurrency ● There's always a possibility that several clients will attempt to access a shared resource at the same time ● Services and applications generally allow multiple client requests to be processed concurrently ● For an object to be safe within a concurrent/distributed environment, its operations must be synchronized in such a way that its data remains consistent

  39. Transparency Defined as the concealment from the user and the applications programmer of the separation of components in a distributed system, so that the system is perceived as a whole rather than as a collection of independent components

  40. Types of Transparency ● Access ● Location ● Concurrency ● Replication ● Failure ● Mobility ● Performance ● Scaling

  41. Transparency Types ● Access transparency : enables local and remote resources to be accessed using identical operations. ● Location transparency : enables resources to be accessed without knowledge of their physical or network location (for example, which building or IP address). ● Concurrency transparency : enables several processes to operate concurrently using shared resources without interference between them. ● Replication transparency : enables multiple instances of resources to be used to increase reliability and performance without knowledge of the replicas by users or application programmers. ● Failure transparency : enables the concealment of faults, allowing users and application programs to complete their tasks despite the failure of hardware or software components. ● Mobility transparency : allows the movement of resources and clients within a system without affecting the operation of users or programs. ● Performance transparency : allows the system to be reconfigured to improve performance as loads vary. ● Scaling transparency : allows the system and applications to expand in scale without change to the system structure or the application algorithms.

  42. Distributed Systems Distributed Systems are Everywhere Resource Sharing is the Main Motivation A Number of Challenges Exist

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend