Slides for Chapter 1 Characterization of Distributed Systems From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 4, Pearson Education 2005 Edited and supplemented by Jonne Itkonen, for TIE427 (2011 & 2013) Yleistä Opiskelumuodot: Luennot tai kirja Valitse toinen tai molemmat Demot Vapaaehtoiset, tehdään enemmän yhdessä Harjoitustyö Pakollinen Aihe: hajautettu järjestelmä Toimii yhteen muiden kanssa, CORBA? Ryhmässä 2-4 henkilöä Yksinkin mahdollinen, ehkä YouSource (git) 1
Characterization A distributed system is one in which components located at networked computers communicate and coordinate their actions only by passign messages. Concurrency of components Lack of a global clock Independent failures of components The sharing of resources is a main motivation for constructing distributed systems. 2
Characterization Concurrency of components Norm Sharing resources Capacity increased by adding resources (f.ex. computers) Lack of a global clock Coordinate actions by exchanging messages No global notion of the correct time only communicating by sending messages Independent failures of components Failure not neccesarily noticed Failure does not stop the system Figure 1.1 A typical portion of the Internet ISP intranet backbone satellite link desktop computer: server: network link: Instructor s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 Pearson Education 2005 3
Figure 1.2 A typical intranet print and other servers email server Desktop computer Web server Local area network email server File server print other servers the rest of the Internet router/firewall Instructor s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 Pearson Education 2005 Figure 1.3 Portable and handheld devices in a distributed system Internet Host intranet Wireless LAN WAP gateway Home intranet Printer Camera Mobile phone Laptop Host site Instructor s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 Pearson Education 2005 4
Figure 1.4 Web servers and web browsers www.google.com Web servers http://www.google.comlsearch?q=kindberg Browsers www.cdk3.net Internet http://www.cdk3.net/ www.w3c.org File system of www.w3c.org Protocols http://www.w3c.org/protocols/activity.html Activity.html Instructor s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 Pearson Education 2005 Internet HTML Dokumentin rakenteen kuvaus Ulkoasu esim. CSS HTTP Request Response, Client Server Get resurssin haku Post resurssin muokkaus Put resurssin lisäys Delete resurssin poisto Head, Options, Trace, Connect, Patch 5
Internet MIME Internet Media Type XML WebServices WebSDL, SOAP, Internet REST Representational State Transfer http://en.wikipedia.org/wiki/representational_state_transfer Roy Fielding, 2000 (kts. myös HTTP 1.0 ja 1.1) Client-Server Stateless asiakas säilyttää tilan Cacheable palvelin auttaa asiakasta kakutuksessa Layered asiakkaan ja palvelun välissä olevat kerrokset eivät näy (Code on demand) Uniform interface: identification of resources, manipulation of resources through representations, self-descriptive messages, hypermedia as the engine of application state 6
Cloud Computing / Pilvipalvelut Internetin sovellus, tallennus ja laskentapalvelut ei paikallisia sovelluksia tai tallennustilaa toteutettu tietokoneklustereilla Amazon, Apple iworks, Google Apps, MS Office365, Computing may someday be organized as a public utility just as the telephone system is a public utility, Professor John McCarthy said at MIT s centennial celebration in 1961. Each subscriber needs to pay only for the capacity he actually uses, but he has access to all programming languages characteristic of a very large system Certain subscribers might offer service to other subscribers The computer utility could become the basis of a new and important industry. http://www.technologyreview.com/news/425623/the-cloud-imperative/ Resource sharing / resurssien jako tulostimet, levypalvelimet tietovarastot computer-supported cooperative working (CSCW) palvelu (service) hallinnoi joukkoa resursseja tiedostopalvelu read, write, delete operaatiot palvelin (server) prosessi laskentayksikössä asiakas-palvelin (client-server) myös prosesseja arkikielessä laskentayksiköitä / tietokoneita etäkutsu (remote invocation) etäproseduuri, etäolio, asiakasolio, palvelinolio 7
Ubiquitous Computing Characterization Heterogeneity of components Openness components added or replaced Security Scalability when the number of users increases Failure handling Concurrency of components Transparency 8
Heterogeneity of networks, computer hardware, operating systems, programming languages, Middleware: software layer that provides a programming abstraction as well as masking the heterogeneity of implementation by different developers Middleware (välikerros[ohjelmisto]) esimerkkejä: CORBA Common Object Request Broker Architecture Java RMI Mobile code: virtuaalikone, Java/C#, JavaScript Openness components added or replaced whether system can be extended and reimplemented in various ways key interfaces published IETF / RFC OMG / CORBA Open distributed systems (ODS) are based on the provision of a uniform communication mechanism and published interfaces for access to shared resources 9
Openness components added or replaced ODS can be constructed from heterogeneous hardware and software, possibly from different vendors. but the conformance of each component to the published standard must be carefully tested and verified if the system is to work correctly Mitä tehdään kun rajapintaa pitää muuttaa? Rajapintojen versiointi? REST Representational State Transfer Security Confidentiality protection against disclosure to unauthorized individuals Integrity protection against alteration or corruption Availability protection against interference with the means to access the resources not met: denial of service attacks security of mobile code 10
Scalability when the number of users and resources increases Controlling the cost of physical resources Controlling the performance loss Preventing software resources running out IPv4 / IPv6 Avoiding performance bottlenecks DNS Figure 1.5 Computers in the Internet Date Computers Web servers 1979, Dec. 188 0 1989, July 130,000 0 1999, July 56,218,000 5,560,866 2003, Jan. 171,638,297 35,424,956 Instructor s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 Pearson Education 2005 11
Figure 1.6 Computers vs. Web servers in the Internet Date Computers Web servers Percentage 1993, July 1,776,000 130 0.008 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 Instructor s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 Pearson Education 2005 Failure handling Detecting failures: Some failures can be detected. The challenge is to manage in the presence of failures that cannot be detected but may be suspected. Masking failures: Hide failures or make them less severe. Tolerating failures: Esim. kun web-selain ei löydä palvelinta, se lopettaa yrittämisen ja ilmoittaa virheestä käyttäjälle, eikä jää yrittämään ikuisesti. Recovery from failures: Roll back Redundancy: kts DNS 12
Concurrency of components any object that represents a shared resource in a distributed system must be responsible for ensuring that it operates correctly in a concurrent environment. Synchronized operations, semaphores, Erlang Section 1.4.7 Transparencies 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. Instructor s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 Pearson Education 2005 13
Quality of Service nonfunctional properties of the system reliability, security, performance adaptability (konfiguraatio, resurssimuutokset) time-critical data (stream / virtapalvelut, video, musiikki ) 14