Datk Sistemlere Giri Konularn ou kitabn 1 blmnden
Dağıtık Sistemlere Giriş Konuların çoğu kitabın 1. bölümünden © Pearson Education
Sunum Başlıkları n n n 2 Giriş Dağıtık Sistemlerin Tanımlanması Dağıtık Sistemlerin Nitelikleri Örnek Dağıtık Sistemlerin Zorlukları Özet
Giriş n n Her yer bilgisayar ağı! n Mobil telefon ağları n Kurumsal ağlar n Fabrika ağları n Kampus ağları n Ev ağları n Araç-içi ağlar n Uçak ve trenlerdeki yerleşik ağlar Bölüm Hedefi: n n 3 Modern dağıtık sistemlerin dizaynı ile ilgili teknik konuların kavranmasını sağlamak. Ağ temelli sistem ve uygulamaların dizayn ve uygulamasında kullanılan temel kavram ve tekniklerin sunumu.
Kazanımlar n Dağıtık sistemlerin altında yatan temel prensiplerin anlaşılması: n n n n Dağıtık sistemlerdeki bazı temel kavramların tanınması: n n n 4 processes (işlemler) communication (iletişim) naming (isimlendirme) synchronization (senkronizasyon) consistency (tutarlılık) fault tolerance (hata payı) security (güvenlik) client-server (istemci-sunucu) object-based systems (nesne-tabanlı sistemler) file systems (dosya sistemleri)
Dağıtık Sistemlerin Tanımlanması n n n “Ağ üzerindeki bilgisayarlarda bulunan donanım veya yazılım bileşenlerinin yalnız mesaj göndererek haberleştikleri sistem. ” [Coulouris] “Dağıtık bir sistem, kullanıcılara tek bir sistem olarak görünen, bağımsız bilgisayarlar bütünüdür. ” [Tanenbaum] Örnek: WWW, Intranet (organization), P 2 P sistemler (Napster gibi) – Bankalar (Bankamatikler) – Bilet rezervasyonu 5
Leslie Lamport’un Tanımı n “Dağıtık bir sistem, hiç haberim olmayan bir makine çöktüğü için, üzerinde hiçbir iş yapamadığım bir sistemdir. ” n Leslie Lamport; dağıtık sistemlerde n n n timing (zamanlama) message ordering (mesaj sıralama) ve clock synchronization üzerinde çalışan meşhur bir araştırmacıdır. 6
Ağlar ve Dağıtık Sistemlerin Karşılaştırılması n n n Ağ: Yerel veya geniş alandaki bilgisayarları bağlamak ve protokoller arası mesaj alışverişi yapmak için kullanılan ortam. Ağ birimleri görülebilirdir ve açıkça adreslenmiştir (IP adresleriyle). Dağıtık sistem: Birçok bağımsız bilgisayarın varlığı belirgin değildir Ancak, n Açıklık, güvenilirlik, gibi birçok problem ortaktır, ancak farklı katmanlardadır. n n 7 Ağlar, paket yönlendirme vs üzerine odaklanırken, dağıtık sistemler uygulamalara odaklanır. Her dağıtık sistem bir bilgisayar ağı tarafından sağlanan servislere dayanır. Dağıtık Sistemler Bilgisayar Ağları
Dağıtık Sistemlerin Kullanım Amaçları n Kullanıcıya yönelik (neden dağıtık sistem? ) n n n Teknik hedefler (nasıl başarılır? ) n n n Açık olarak Ölçeklenebilir olarak Bu hedeflere bakmak şu soruyu cevaplamaya yardımcı olur: n 8 Kullanıcı ve kaynakların kolayca bağlanması Şeffaflığın sağlanması “dağıtık bir sistem kurmak, uğraşmaya değer mi? ”
Dağıtık Sistemlerin Gerekliliği n İşlevsel ayrım: n Kapasite ve amaç bakımından farklı bilgisayarların varlığı: n n n İstemciler ve Sunucular Veri toplama ve veri işleme Doğal dağıtıklık: n Bilgi: n n İnsan: n n n İşlem yükünün farklı bilgisayarlar arasında dağıtılması. Farklı yerlerde uzun süreli koruma ve veri yedekleme (çoğaltma). Ekonomi: n n 9 Süpermarket zincirleri için perakende ve stok sistemleri Güvenilirlik: n n Bilgisayar destekli işbirliği (sanal ekipler, mühendislik, sanal ameliyat) Güç dengesizliği ve yük çeşitliliği: n n Farklı bilgiler farklı kişiler tarafından oluşturulup kontrol edilir (Web sayfaları gibi) Birçok kullanıcı arasında yazıcı paylaşımı ile sahip olma masrafının azaltılması. Bir bilgisayar ağından süper-bilgisayar elde etme.
DS Tanımının Getirdikleri n Dağıtık sistemlerdeki bilgisayarlar ayrı kıtalar üzerinde, aynı bina veya aynı oda içerisinde bulunabilir. DS’in getirdikleri: n Birlikte ve birbirinden bağımsız çalışan sistemler n n n 10 İşlerini birbirinden bağımsız yaparlar Aynı zamanda program çalıştırır, bütün bir işleme kaynağı gibi görünür, birlikte çalışırlar İşlemler mesaj alışverişiyle anlaşırlar. Heterojen (çeşitlilik, farklılık): networks, hw, os, PLan Ortak saat yok: Bilgisayarlar saatlerini kısıtlı derecede senkronize edebilir Bağımsız bozulma: biri bozulsa da diğerleri çalışmaya devam eder
Dağıtık Sistemlerin Nitelikleri n Paralele işlemler n n Mesaj gönderme iletişim n n Hiçbir işlem, sistemin genel durumuna dair bilgi edinemez Ortak saat yok n 11 Yazıcı, veri tabanı, diğer servisler Genel sistem durumu belirli değil (No global state) n n Ortak bellek yok (No shared memory) Kaynak paylaşımı n n Birlikte çalışan bağımsız bileşenler İşlemler için sadece kısıtlı derecede saat eşitleme mümkün olabilir
Dağıtık Sistemlerin Amaçları 1. Kullanıcılarla kaynakları birleştirmek: Erişim servisleri uygulama çalıştırır n Belirli kaynaklar: n n Neden paylaşım? n n n Yazıcılar, bilgisayarlar, işleme gücü, veri Ekonomi İşbirliği, Bilgi değiş-tokuşu (grup çalışması) Paylaşım problemleri n n Güvenlik İstenmeyen işbirlikleri 2. Şeffaflık: Kaynaklar ve işlemlerin ağ üzerinde dağıtık olduğu açık değildir 3. Açıklık: Servislerin sentaks ve semantikleri ile ilgili standart kurallar 4. Ölçeklenebilirlik: Daha fazla kullanıcı/kaynak, coğrafya, yönetim 5. Uzun süre bozulmadan çalışma 12
Paralel sistemlerden farkı n Multiprocessor (çok işlemcili) sistemler: DS değil n n Shared memory (ortak bellek) Bus-based interconnection network (kablolu bağlantı) Örnek: İki veya daha fazla CPU’lu SMP’ler (symmetric multiprocessor) Çoklu bilgisayar sistemleri: DS değil n n No shared memory (ortak bellek yok) Homojen donanım ve yazılım n Massively Parallel Processors (MPP) n n PC/Workstation clusters n 13 Tightly coupled high-speed network High-speed networks/switches based connection.
Örnek Dağıtık Sistemler n Internet: birbirine bağlı çeşitli bilgisayar ağları. n n n Intranet: bir organizasyon tarafından yönetilen alt ağ. Yerel güvenlik politikasıyla sınırlıdır. n n 14 Uygulamalar iletişimi mesajlarla sağlar Dağıtık sistem kullanıcıları www, email, dosya gönderme gibi servislerden faydalanır Uydu bağlantısı, fiber-optik kablolar gibi hızlı iletim kapasitesi olan ağ altyapısı ile bağlıdırlar Kablosuz ağlar
Genel internet uygulamaları ve servisleri: Müzik, radyo, TV kanalları, video konferans erişimi için multimedia servisleri, ve çoklu kullanıcı desteği. intranet ISP % % backbone(omurga) uydu bağlantısı PC: sunucu: ağ bağlantısı: n 15 Internet, çeşitli servisler barındıran birçok farklı bilgisayar türlerinden oluşan büyük bir ağ topluluğudur.
Genel bir intranet; Internetin bir alt parçası olup, ayrıca yönetilir ve kaynakların ağ içerisinde paylaşımını destekler (dosya/depolama sistemleri ve yazıcılar) 16
Gezgin ve dağınık bilgi işleme: dağıtık bir sistemdeki taşınabilir ve el aletleri n 17 Uygun konumlara yerleştirilmiş (yazıcı gibi) kaynakları değerlendirmek için kablosuz veya kablolu ağ aracılığı ile Home intranet kaynaklarına sürekli erişim desteği
Kaynak paylaşımı ve Web: açık protokoller, ölçeklenebilir sunucular, takılabilir tarayıcılar www. google. com http: //www. google. com/search? q=kindberg Browsers Web servers Internet www. cdk 3. net http: //www. cdk 3. net/ www. w 3 c. org File system of www. w 3 c. org Protocols Activity. html 18 http: //www. w 3 c. org/Protocols/Activity. html
World Wide Web kaynakları n n World Wide Web kaynakları ve diğer servisler URL’ler ile isimlendirilir Web Sayfaları paylaşılan kaynaklara örnektir Bu kaynaklar Web sunucuları tarafından yönetilir Web, istemci-sunucu yapısı üzerine kuruludur. n n n 19 Web tarayıcısı: istemci programı, Web sunucusu: istenen web sayfalarını içeren yerel dosyalara (kaynaklara) erişir ve istemci tarayıcısına iletir. URL - Uniform Resource Locator
URL n n Örn: http: //www. dcs. qmw. ac. uk/research/distrib/book. html İlk kısım: Kullanılacak protokol. (: ’dan önceki kısım) n n İkinci kısım: Web sunucusunun domain ismi. (// ile / arası). n n 20 Örnekteki protokol http’dir ("Hyper. Text Transport Protocol"). Örnekteki domain ismi: www. dcs. qmw. ac. uk. Kalan kısım: (Tek ‘/’tan sonraki kısım). O domain üzerindeki kaynağı (dosyayı) gösterir – Web sunucusunun kullandığı üst dizinden itibaren isimlendirilir. research/distrib/book. html.
İş Örnekleri ve Zorluklar n Online kitapçı (World Wide Web üzerinde) n Müşteriler kendi bilgisayarlarıyla sizin bilgisayarınıza (web sunucunuza) bağlanabilir: n n n 21 Stokunuza bakabilir Sipariş verebilir …
İş örnekleri – zorluklar I n Ya. . . ? n n n Veya. . . ? n n n 22 Müşteriniz çok farklı bir donanım sistemi kullanıyorsa? (PC, MAC, …) … farklı bir işletim sistemi? (Windows, Unix, …) … farklı bir veri gösterim biçimi? (ASCII, EBCDIC, …) Çeşitlilik (networks, h/w, os, prog lan, impl) İşinizi ve bilgisayarlarınızı Güney’e taşımak isterseniz (hava şartlarından dolayı)? Müşterileriniz Güney’e taşınırsa (daha muhtemel)? Konum / Taşınma / Dağılım şeffaflığı
İş örnekleri – zorluklar II n Ya. . . ? n n n Veya. . . ? n n n 23 İki müşteri aynı ürünü aynı anda sipariş verirse? Concurrency (Aynı anda kullanım) Stok bilginizi tutan veri tabanı çökerse? Sipariş esnasında müşterinizin bilgisayarı çökerse? Fault tolerance (Hata payı)
İş örnekleri – zorluklar III n n Ya. . . ? n Birileri veri çalmak için sisteminize girmeye çalışırsa? n … bilgi çekerse? n … müşteriniz sipariş verir de, sonradan vermedim diyerek ürün teslimini reddederse? n Security (Güvenlik) Veya. . . ? n n 24 Öyle başarılı olursunuz da, milyonlarca insan aynı anda online mağazanızı aynı anda ziyaret ederse? Scalability (Ölçeklenebilirlik)
İş örnekleri – zorluklar IV n Sistem kurulurken … n n n 25 Bütün yazılımı tek başınıza mı yazmak istersiniz (network, database, …)? Güncellemeler, yeni teknoloji takibi? Reuse (tekrar kullanılabilirlik) ve Openness (açıklık) (Standartlar)
Kısaca zorluklar I n Heterogeneity (Çeşitlilik) n n Distribution transparency (Dağınıklık şeffaflığı) n n Bir bileşenin bozulması (kısmi bozukluk) tüm sistemin bozulmasına sebep olmamalı Scalability (Ölçeklenebilirlik) n n 26 Dağınıklığın varlığı mümkün oldukça kullanıcıdan saklanmalı Fault tolerance (Hata payı) n n Çeşitli bileşenler birbiriyle uyumlu şekilde çalışabilmeli Sistem, artan kullanıcı sayısına rağmen verimli çalışmaya devam edebilmeli Sisteme yeni kaynaklar eklenerek performans artışı sağlanabilmeli.
Heterogeneity (Çeşitlilik) n Çeşitli bileşenler birbiriyle uyumlu şekilde çalışabilmeli n n n n 27 İşletim sistemleri Donanım mimarileri İletişim mimarileri Programlama dilleri Yazılım arayüzleri Güvenlik ölçüleri Bilgi gösterimleri
Dağıtık bir sistemde şeffaflık n n Şeffaf DS: Kullanıcılara, tek bir bilgisayar sistemi gibi görünür, bağımsız bilgisayarlar topluluğu olarak değil. Şeffaflık çeşitleri n Erişim: Veri gösterimindeki farklar, ve kaynaklara nasıl erişildiği gizlenir. Yerel ve uzak kaynaklara erişim aynı işlemlerle sağlanır. Örn. , Network File Systems (Ağ Dosya Sistemleri) n Konum: Bir kaynağın bulunduğu yer gizlenir. Kaynaklara, fiziksel konumları bilinmeden erişilir. Alan adının (domain name) makine adresinden ayrımı gibi. n Migration (Taşınma): Kaynağın yer değiştirme durumu gizlenir n Relocation (Yeniden konumlandırma): Kaynağın, kullanım esnasında, yer değiştirme durumu gizlenir n Migration / relocation şeffaflığı, bir sistemdeki kullanıcıların veya uygulamaların işlemlerini etkilemeden taşınabilmelerine olanak sağlar. n n 28 Çalışma esnasında (runtime) bir isim sunucusundan (name server) bir başkasına geçiş yapma Bir vekil veya işlemin (agent/process) bir düğümden (node) diğerine taşınması gibi
Şeffaflık Düzeyi n Şeffaflık n n n 29 Her zaman istenmez: Farklı kıtalarda bulunan kullanıcılar (context-aware), time-zone (zamandilimi), hız Her zaman mümkün olmaz: Hataların gizlenmesi (bir bilgisayar yavaş mı, bozuk mu) Yüksek şeffaflık ile performans arasındaki denge
Şeffaflık çeşitleri-2 n n 30 Replication (Kopyalama): Bir kaynağın birden fazla yerde yedeğinin (kopyasının) tutulduğu gizlenir. Kopyalanmış kaynaklara, sadece bir kopya varmış gibi erişilir. Güvenilirlik ve performans kopyalarla artırılır, ama kullanıcıların veya uygulama geliştiricilerinin kopyalardan haberi olmaz. Concurrency (Birlikte çalışma): Bir kaynağın birden fazla kullanıcı tarafından paylaşıldığı gizlenir. Bir işlem, diğer bazı işlemlerin de aynı kaynaklara erişmekte olduğunun farkında olmamalıdır Failure (Bozulma): Bir kaynağın bozulma veya düzelme durumu gizlenir. Bozulmalar olsa da, görevler tamamlanabilir. Mesaj iletim tekrarı, bir ağ sunucusu düğümünün bozukluğu, web sitesini çökertmemeli. Persistence (Süreklilik): Bir yazılım kaynağının bellekte veya disk üzerinde olma durumu gizlenir
Şeffaflık Çeşitleri-3 n n n 31 Performans: Yük değişimine göre performansı artırmak için sistemin tekrar yapılandırılması sağlanır. Örn. , bileşenlerin dinamik olarak eklenip kaldırılması. Kullanıcı sayısı artınca, doğrusal yapılardan basamaklı (hierarchical) yapılara geçilmesi. Scaling (Ölçekleme): Sistemin ve uygulamaların, sistem yapısında veya uygulama algoritmalarında değişikliğe gerek olmadan genişletilmesine olanak sağlar. Ağ şeffaflığı: erişim + konum şeffaflıkları
Bozulma Şeffaflığı: Hata payı n n n Bozulma: sunulan bir servisin artık tarifine uygun çalışmaması Hata: bozulma sebebi (bileşen bozulması gibi) Hata payı: hatalara rağmen bozulmama n 32 Örn: e-mail mesajlarının sonradan iletilmesi
Hata payı mekanizmaları n Hata algılama n n Hata maskeleme n n Exception handling (istisna işleme), timeouts (zaman aşımları), … Hatadan kurtulma n 33 Bozuk mesajların tekrar gönderimi, fazlalık, … Hataya müsamaha n n Checksums (sağlama), heartbeat (kalp atışı), … Rollback (geri sarma) mekanizmaları, …
Ölçeklenebilirlik n n 34 Sistem, küçük bir Intranet’ten Internet’e kadar uzanan birçok farklı ölçekte verimli olarak çalışabilmeli. Kaynak ve kullanıcı sayısında belirgin bir artış olsa da etkili olarak çalışmaya devam edebilmeli. Zamanla her şey çoğalır, kullanıcılar artar, bilgisayar sayısı büyür, veri miktarı fazlalaşır, . . . Sistemler nasıl ölçeklenebilir olur? Sadece donanım eklemekle mümkün değil. Bir makinenin 20 kullanıcıya hizmet vermesi, iki makinenin 40 kullanıcıya hizmet vereceği anlamına gelmez.
Concurrency (Birlikte çalışma) n Resource (Kaynak): n n Paylaşılan kaynaklara çoklu erişimin desteklenip yönetilmesi: Birlikte çalışılan ortamdaki bir nesnenin güvende olması için n n 35 Yalnız bir kullanıcı kısıtlı verim Çoklu istemci talepleri: birlikte erişim işlemleri, verileri tutarlı kalacak şekilde, senkronize olmalı (eşitlenmeli) (örn. Banka hesabı). Bu, dağıtık olmayan sistemlerde semafor kullanımından daha zordur.
Openness and Interoperability (Açıklık ve Birlikte işlerlik) n n Açık sistem: ". . . düzenli geliştirilmiş uygulama yazılımlarının, küçük değişikliklerle, çok çeşitli sistemlere taşınabilmesini, ve yerel ve uzak sistemlerdeki diğer uygulamalarla birlikte işleyebilmesini sağlamak, ve kullanıcılarla, taşınabilirliği kolaylaştıran bir tarz ile etkileşmek için, arayüzler, servisler ve desteklenen formatlara yeterli açık tarif veren bir sistemdir. " (POSIX Open Systems Environment rehberi). Açık tarif/standart geliştiriciler - topluluklar: n n 36 ANSI, IETF, W 3 C, ISO, IEEE, OMG, Ticari ortaklıklar, . . . Yeni servisler, var olan bileşenler bozulmadan eklenebilir.
Güvenlik I n n Kaynaklar yetkili kullanıcılarca erişilebilir ve istekleri doğrultusunda kullanılabilir. Confidentiality (Gizlilik) n n n Integrity (Bütünlük) n n 37 Yetkisiz bireylerce görülmeye karşı koruma. Örn. Bilgiye yetkili erişim sağlamak için kullanılan ACL’ler (Erişim kontrol listeleri). Değişime veya bozulmaya karşı koruma. Örn. Bir para isteğinde hesap numarası veya miktar değerinin değiştirilmesi
Güvenlik II n Availability (Ulaşılabilirlik) n n n Reddedilememe n n 38 Kaynak erişim yollarındaki çakışmalara karşı koruma. Örn. Servis saldırılarının reddi Bir bilginin gönderilme / alınma delili Örn. Dijital imza
Güvenlik mekanizmaları n Encryption (Şifreleme) n n Authentication (Doğrulama) n n Örn. password (şifre), açık anahtarla yetkilendirme Authorization (Yetkilendirme) n 39 Örn. Blowfish, RSA Örn. erişim kontrol listeleri
Özet n n Dağıtık sistemler her yerde bulunur. Internet, dünyanın her bir yanındaki kullanıcıların, her bir yandaki servislere erişimlerini sağlar. Kaynak paylaşımı dağıtık sistem kurmaya teşvik eden etmenlerin başta gelenidir. DS kurulumu birçok zorluğu beraberinde getirir: n n Dağıtık sistemler küreselleşmeyi sağlar: n n n 40 Çeşitlilik, Açıklık, Güvenlik, Ölçeklenebilirlik, Hata denetimi, Birlikte çalışma, Şeffaflık. Topluluk (Sanal takımlar, kuruluşlar, sosyal ağlar) Science (e-Science) (Bilim) Business (e-Bussiness) (İş)
- Slides: 40