Dağıtık sistemler

DAĞITIK SİSTEMLER
Dağıtık sistemler
Dağıtık sistem, farklı bilgisayarlardaki donanım ve yazılım bileşenleri arasında haberleşme ve koordinasyonunun sadece mesajlaşma yoluyla sağlanabildiği ağ olarak tanımlanır. Dağıtık sistemi diğer bilgisayar ağlarından farklı kılan özelliğin, ağın varlığı ve işlevinin kullanıcıya görünmemesi olduğu söylenebilir. Örneğin kullanıcı bir program çalıştırdığında, en iyi işlemciyi seçmek, giriş dosyalarını bu işlemciye aktarmak ve dönen sonuçları uygun yere koymak işlemcinin yürüttüğü işlerdir. Çok işlemcili bir dağıtık sistemde çalışmakta olmasına rağmen, kullanıcıya görünen ise tek bir sanal işlemcidir. Diğer ağlarda, kullanıcının kendisi bir makineye bağlanır, iş isteğinde bulunur, dosya gönderir vs. Diğer bir deyişle, ağ yönetim işlemleri kullanıcı tarafından yürütülür. Dağıtık sistem, bir ağ üzerine kuruludur. Yazılımla, ağdaki bileşenler arası işlevsel uyumluluk ve kullanıcı açısından saydamlık sağlanır. Dolayısıyla, dağıtık sistemin diğer ağlardan farkı donanım değil, yazılım katmanından –özellikle işletim sisteminden-  kaynaklanmaktadır. Dağıtık sistemlerin var oluş amacı, kaynakları paylaşmaya duyulan gerekliliktir. Bu kaynaklar donanımsal bileşenler (disk, yazıcı) olabileceği gibi, dosyalar, veri tabanı, nesneler gibi yazılım varlıkları da olabilir.

Donanım ve Yazılım Kavramları
Giriş birimleri ile dış dünyadan aldıkları veriler üzerinde aritmetiksel ve mantıksal işlemler yaparak işleyen ve bu işlenmiş bilgileri çıkış birimleri ile bize ileten, donanım ve yazılımdan oluşan elektronik makinedir. Bilgisayar donanımı, bilgisayarların fiziksel kısımlarına donanım denilmektedir. Elle tutulabilirler. Ekran, klavye, sabit disk, fare, yazıcı, bellek, mikroişlemci, tarayıcı…
Bilgisayar yazılımı, donanımı kullanmak için gerekli programlardır. Bilgisayarın nasıl çalışacağını söylerler. Elle tutulmazlar. Belirli bir işlemi yapmak üzere bilgisayara kurulurlar. Öreğin, kelime işlem programları son kullanıcıların yazı yazması için kullanılır. Tablolama, sunu, programlama dilleri, ses programı gibi…

İstemci – Sunucu Modeli
İstemci-sunucu, istemciyi sunucudan ayıran bir  mimarisidir. Her bir istemci yazılımı, sunucuya ya da uygulama sunucusuna isteklerini gönderir. Bu fikrin pek çok çeşitli uygulaması olmasına karşın, en güzel örneği İnternet üzerindeki Web sayfalarıdır. Bir web sayfası incelenirken, bilgisayar ve web tarayıcısı istemci olarak adlandırılır. Web sayfasını oluşturan gelişmiş bilgisayarlar, veri tabanları ve uygulamalar da sunucu olarak adlandırılır. Web tarayıcısı, web sitesinden bir istekte bulunur ve sunucu istenen bilgileri toplar ve onu bir web sitesi şekline getirerek web tarayıcısına geri yollar, kullanıcılar da ekranda web sitesini görmüş olur. Bir istemci/sunucu mimarisi, ölçeklenebilir bir mimari sunmayı amaçlar. Böylece ağdaki her bir bilgisayar bir istemci ya da sunucu rolünü üstlenir. Sunucu yazılımı genelde, fakat her zaman değil, bir iş yazılımı için adanmış güçlü bir bilgisayarda çalışır. İstemci yazılımı ise genelde sıradan bir PC veya işistasyonunda çalışır. İstemciler gerek duydukları verinin pek çoğunu ya da tamamını uygulama sunucusundan isterler. Mesela; ayar dosyaları, stok verileri, iş uygulama yazılımları vs. gibi.

Uzak Yordam Çağrısı (RPC)
Uzak yordam çağrısı, bir diğer adres uzayı (genelde ağ paylaşımlı bilgisayarlar) üzerinde programcı açıkça bu uzaktan etkileşim detayları kodlama olmadan çalıştırmak için bir alt yordam veya prosedürü sağlayan bilgisayar programına izin veren süreçler arası iletişim teknolojisidir. Sunucu üzerindeki servisleri kontrol ettiğimizde karşımızı çıkan RPC, arka plânda birçok şeyi gerçekleştiren bir servistir. RPC, temelde istemci ve sunucu arasında yapılan işlemlerin iletişimi için tasarlandı. Bir işlemin gerçekleşmesi için bir gönderici (sunucu) ve bir de istemci vardır.
İstemciler
İstemci, Bir ağ üzerinde, sunucu bilgisayarlardan hizmet alan kullanıcı bilgisayarlarıdır. Bilgiye erişim yetkileri sunucu tarafından belirlenir.
Değişik çeşitleri olmakla birlikte önemli sınıflaması
·         Şişman/Zengin istemci: Yazılımın her seferinde sunucudan bütün istemcilere yüklenmesi ya da bir başka medyadan yüklenmesi gerekir. Örnek: Microsoft Outlook.
·         Zayıf istemci: Sâdece sunumla ilgili grafik birimleri ve onların denetim yazılımını içerir. İşle ilgili yazılım sunucudadır. Haberleşme kanalından gönderilen bilgi az olmasına dikkat edilir. Yazılımının bilgisayara yüklenmesi problemi yoktur. Zengin istemciye nazaran daha değişik bilgisayarlarda, hatta mobil gereçlerde de kullanılabilir. Örnek: J2EE/J2ME mimarisiyle yapılmış bir sitenin istemcisi. WEB istemci-sunucu sistemi olarak bilinir.

Sunucular
Sunucu (Server), bilgisayar ağlarında, diğer ağ bileşenlerinin (kullanıcıların) erişebileceği, kullanımına ve/veya paylaşımına açık kaynakları barındıran bilgisayar birimi. Bir ağda birden fazla sunucu birim bulunabilir. Karşıtı istemcidir.
Çeşitleri de vardır: Shared Hosting (paylaşımlı barındırma), Co-Location, Reseller ve Dedicated Hosting (barındırma). Paylaşımlı barındırmada bir sunucuda birden fazla alan (İngilizce: domain) barındırılabilir. Co-Location, Kendi sunucumuzu özel hazırlanmış veri merkezlerinde yüksek hızda hizmet bağlantısı ile yayına açar. Dedicated, Sunucu ve bağlantı dahil tüm hizmetler firma tarafından karşılanır. Reseller Hosting de belli sayıda alan (domain), disk ve bandwidth sınırları ile kullanıcıya sunulur. Windows türevi ve UNIX türevleri mevcuttur.
Windows tarafından önceleri Windows NT vardı fakat zamanla Windows 2000 Server, Windows 2003 Server, Windows 2008 Server ve Windows 2012 Server piyasaya çıktı.
Linux tabanlı Centos, RedHat ve SUSE dağıtımları da sunucu pazarında kendine yer edinmişlerdir.
Ayrıca sunucuların hangi amaçla kullanılacağı da önemlidir. Örnek vermek gerekirse web hizmeti veren sunucular vardır. Bunlara örnek olarak Apache, Microsoft IIS ve Abyss ve Fastream IQ Web/FTP Server gösterilebilir. Dosya paylaşım, canlı yayın ve hatta çevrim içi oyun hizmeti verenleri de mevcuttur. Tüm bu sunucuların değişik sistem gereksinimleri olacaktır.

Yazılım Etmenleri
Yazılım etmenleri teknolojisi; açık, dinamik değişimlerin çok olduğu ve heterojen ortamların yapısına uygun yazılımların geliştirilmesine yönelik bir teknolojidir. Genel olarak, yazılım etmenleri söz edilen türdeki ortamlarda özerk bir biçimde davranma özelliğine sahip birimler olarak tanımlanmaktadır. Açık, dinamik ve heterojen ortamlara verilebilecek en iyi örneklerden birisi İnternet ortamıdır. Yazılım etmenleri, 1990’lı yıllardan itibaren İnternet üzerine dağılmış, değişik biçemlerde tutulan, sürekli değişen ve gelişen bilgilerin kullanıcı amaçları doğrultusunda derlenmesi ve işlenmesini gerektiren Web temelli uygulamalarda başarı ile kullanılmıştır. Yazılım etmenleri günümüzde de bilgi teknolojileri alanının en önemli ve en hızlı gelişim gösteren araştırma alanlarından birisi olma özelliğini korumaktadır. Etmen Tabanlı Yazılım Mühendisliği alanının temel amacı, etmen tabanlı yazılım sistemlerinin oluşturulması için gerekli geliştirme araçlarının/ortamlarının tasarımı ve gerçekleştirimini sağlamak ve daha sonra bu araçların/ortamların kullanımına dayanan geliştirme metodolojileri tanımlamaktır. Bu bağlamda, etmen tabanlı yazılım sistemleri geliştirenlere bu geliştirme sürecinde ihtiyaç duyacağı temel etmen sınıflarını ve servisleri sunan birçok etmen çerçevesi geliştirilmiş ve etmen sistemlerini geliştirmek için değişik metodolojiler tanımlanmıştır. Bununla birlikte, yazılım sistemlerini geliştirirken hangi durumlarda etmen teknolojisinin kullanılması gerektiği konusu büyük önem taşımaktadır. Etmen teknolojisini amaç dışında kullanmak, geliştirilen yazılımları gereksiz yere karmaşıklaştırarak zaman ve işgücü kaybına neden olacaktır. Bu durumda, etmen geliştirme çerçeveleri kullanmak veya belli bir etmen sistemi geliştirme metodolojisini takip etmenin de anlamı olmayacaktır.

Senkronizasyon
Senkronizasyon eş zamanlı ya da eş zamanlama anlamına gelen bir kelimedir. Senkron ve Senkronize olarak ve çeşitli durumlar için kullanılabilmektedir. Örneğin bir şarkı icra edilirken playback yapılıyorsa senkron ağız ve dinlenen şarkının uyumu için kullanılır. Ya da Facebook gibi sosyal mecralarda gördüğümüz bu kelime (Senkronize); telefon rehberiniz ile Facebook listenizdeki kişilerin eşleştirilmesi anlamına gelir. Ya da bir dans grubunun her elemanının hareketleri aynı anda ve uyumlu yapması bir senkrondur. Kelime anlamını toparlayacak olursak, eş anlı, eş zamanlı ya da uyumlu gibi anlamlara gelir.



Yorumlar

Bu blogdaki popüler yayınlar

VLSI Devre Tasarımı

Yapay Sinir Ağlarına Giriş

İnsan Bilgisayar Etkileşimi