Chapter 1 Characterization of Distributed Systems From Coulouris, Dollimore, Kindberg and Blair Distributed Systems: Concepts and Design
Distributed System A number of networked computers communicate and coordinate actions only by passing massages Computing Networking Storage More power to execute jobs that cannot be done in a single machine, achieving pervasive computing
Selected applications on distributed systems Finance and commerce eCommerce e.g. Amazon and eBay, PayPal, online banking and trading The information society Web information and search engines, ebooks, Wikipedia; social networking: Facebook and MySpace. Creative industries and entertainment online gaming, music and film in the home, user-generated content, e.g. YouTube, Flickr Healthcare health informatics, on online patient records, monitoring patients Education e-learning, virtual learning environments; distance learning Transport and logistics GPS in route finding systems, map services: Google Maps, Google Earth Science The Grid as an enabling technology for collaboration between scientists Environmental management sensor technology to monitor earthquakes, floods or tsunamis
Characteristics of Distributed System Concurrency Concurrent execution of jobs No global clock Coordinate actions Synchronization Independent failure Hardware/software failure Protection, recovery and availability
Trends of Distributed System Pervasive networking and modern Internet Distributed computing as a utility Mobile and ubiquitous computing Distributed multimedia systems
Pervasive networking and modern Internet intranet ISP desktop computer: backbone satellite link server: ☎ network link:
Distributed computing as a utility
Mobile and ubiquitous computing
Distributed multimedia systems
Resource allocation in a physical infrastructure Resource sharing Resource allocation in a physical infrastructure Computing, networking and storage resources Efficiency, scalability and reliability/availability Distributed system’s perspective Sharing a service, e.g., web search engine Read, write and delete operations on files An interface that provides and manages these operations Remote invocation through communication
Challenges of Distributed System Heterogeneity Openness Security Scalability Failure handling Concurrency Transparency Quality of Service
Programming languages Implementation by different developers Heterogeneity Networks Computer hardware Operating systems Programming languages Implementation by different developers
Interoperability Portability Extensibility Flexibility Openness Interoperability Implementation from different manufacturer can work together relying on standard rules Portability Application from one distributed system can be executed on another system that implements the same service Extensibility Easy to add/remove new features and functions Flexibility Separating policy from mechanism
Confidentiality Integrity Availability Security Confidentiality Against disclosure to unauthorized ones Integrity Against alteration or corruptions of the shared resources Availability Against interference with the means to access the shared resources
Control the cost of the physical resources Scalability Control the cost of the physical resources Control the performance loss Prevent software resource running out Avoid performance bottlenecks Another perspective Size scalable Geographical scalable Administration scalable
Other SLA requirements Failure handling Detecting failures Masking failures Tolerating failures Recovering failures Redundancy Availability availability = available time / (available time + down time) Other SLA requirements
A shared resources is invoked by different clients Concurrency A shared resources is invoked by different clients Time, clocks, events and process states Logical time and physical time Transactions and synchronization Mutex and locks Deadlocks
Transparency 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.
Adaptability and robustness Scalability QoS Latency Performance loss Reliability Security Adaptability and robustness Scalability
Case Study: The World Wide Web Web servers Browsers http://www.google.comlsearch?q=obama www.google.com Internet www.cdk5.net http://www.cdk5.net/ www.w3c.org File system of standards www.w3c.org faq.html
Case Study: Mobile eHealth system Challenges: What infrastructure is needed? How can we monitor the data in a robust way? How to transmit data to the external storage? How to provide security and privacy?
Summary Distributed system is an operating system that manages multiple computer through networks. It serves as a middleware that provides interface for multiple applications across multiple machines