Dağıtılmış nesneye dayalı sistemler için dağıtılmış bileşik nesne modeli
Dağıtılmış nesneye dayalı sistemler için dağıtılmış bileşik nesne modeli
Dosyalar
Tarih
2002
Yazarlar
Yılmaz, Güray
Süreli Yayın başlığı
Süreli Yayın ISSN
Cilt Başlığı
Yayınevi
Fen Bilimleri Enstitüsü
Institute of Science and Technology
Institute of Science and Technology
Özet
Dağıtılmış sistemler bilgisayar ağları üzerinden sistem kaynaklarının ve bilginin paylaşımını sağlarlar. Bu sistemleri çekici yapan en önemli tasarım konusu dağıtım ile ilgili tüm ayrıntıların kullanıcılara saydam olarak gerçekleniyor olmasıdır. Fakat ne yazık ki, sistem kaynaklarını kullanıcılar arasında saydam bir şekilde paylaştıran ve yöneten genel amaçlı, geniş alana yayılmış dağıtılmış sistemler neredeyse yok denecek kadar azdır. Var olan bazı sistemler de kısıtlı ölçüde kolaylıklar sağlamaktadırlar. Dağıtılmış sistemlerde saydamlık genelde yerel alan sistemleri için sağlanmıştır ve bu sistemler için bulunan çözümler geniş alana ölçeklenememektedirler.İnternet üzerinden veri paylaşımı gibi geniş alanlı uygulamaların geliştirilmesi için genellikle çok fazla emek sarf etmek gerekmektedir. Bu durum, üzerinde çalışılan işletim sistemi ve diğer sistem çözümlerinden gerekli haberleşme desteğinin sağlanamamış olmasından kaynaklanmaktadır. Günümüzde iyi bilinen bir çok dağıtılmış sistem uzak-nesne modelini benimsemişlerdir. Bu modelde, nesne tek bir alana yerleştirilir ve bu nesnenin kullanıcısına bir vekil arayüzü üzerinden nesneye saydam erişim olanağı sağlanır. Bu yöntemde nesne en iyi durumda kullanıcısını haberdar etmeksizin bir başka alana göç edebilir. Bununla beraber, uzak-nesne modelinin genelde ölçeklenebilme eksikliğinden kaynaklanan bir çok dezavantajları bulunmaktadır. Kullanıcılara farklı nesne çağrı yöntemlerini gerçekleyecek bir destek sunmamaktadır.Uzak-nesne modeli ile desteklenen bir dağıtım saydamlığı, paylaşılan bir nesnenin kullanımını ve gerçeklenmesini basitleştirmekle birlikte, bilgili tasarımcıların dağıtımın getirdiği avantajdan yararlanmalarını da önler. Bazı uygulamalar paylaşılan bir nesneye ait verinin veya kodun, çok sayıdaki alan üzerine başarım, kullanılabilirlik, koruma ve yük dengeleme amacıyla dağıtılmasına gereksinim duyulabilirler. Ancak, uzak-nesne modeli bu konuda destek sağlamaz. Bir uzak-nesne belirli bir alan üzerinde bulunur ve kendisine sadece o alanda erişilebilir. Halbuki, dağıtılmış uygulamaların ölçeklenebilirliği ve başarımı için yerellik büyük önem taşır. Paylaşılan nesnelerin farklı alanlara kopyalanması, etkin yerel erişim ve kullanılabilirlik açısından önemli yararlar sağlar.İnternet ortamında işbirliğiyle yürütülen dağıtılmış uygulamalar genellikle iri ya da orta taneli nesneler üzerinde çalışmalarına rağmen, bu tip uygulamaların kullanıcıları çoğunlukla nesnelerin küçük bir parçasıyla ilgilenmektedirler. Eğer büyük bir nesne daha küçük alt nesnelere bölünebilirse ve kullanıcı alanına nesnenin yalnızca erişim isteğinin hedefi olan parça gönderilirse, hem belleğin verimli kullanımı söz konusu olacak, hem de farklı alanlar arasında aktarılacak olan verinin miktarı azalacağından, çalışan uygulamanın başarımı da yükselecektir. Alt nesnelerin sağlayacağı bir diğer yarar da, kopyalanmış nesnelerin günce11enmesi sırasında ortaya çıkacaktır. Nesnenin tümünün değil de, bir parçasının güncellenmesi, doğrudan' ağda aktarılacak veri miktarını azaltacaktır. Ayrıca, bölünmüş haliyle bir paylaşılan nesne, alt nesnelere paralel erişimin en yüksek düzeyde gerçekleşmesini de sağlayacaktır. Tezde bu noktalar göz önüne alınarak, uzak-nesne modeline alternatif olarak, kopyalamaya dayalı yeni bir model olan Dağıtılmış Bileşik Nesne (DBN) modeli önerilmektedir. Ayrıca, önerilen DBN modelinin dağıtılmış ortamda Java programlama dili üzerinden ku11anımına imkan sağlayacak bir Dağıtılmış Bileşik Nesne Tabanlı Ortamın (DBNTO) tasarım ve gerçekleme ayrıntıları da sunulmaktadır [4-6].DBN modelinin arkasında yatan temel fikir, çok sayıdaki alt nesnenin bileşiminden meydana gelmiş olan bir bileşik nesnenin farklı alanlar üzerinde fiziksel olarak dağıtılmasıdır. Önerilen modele göre, dağıtılmış ortamdaki uygulamalar bileşik nesneler üzerinden haberleşirler ve birbirleri ile etkileşimde bulunurlar. Bu amaçla, her bir paylaşılan nesne bir arayüz üzerinden ku11anılabilen bir metotlar kümesi sunar. Nesneler pasiftir. Etkinlik, nesneleri paylaşan ve onların metotları üzerinde eşzamanlı olarak çağrı yapabilen uygulama programları tarafından sağlanır.Bir dağıtılmış bileşik nesnenin iki görünüşü vardır: Ku11anıcının bakış açısına göre, tekil paylaşılan bir nesnedir. Farklı adres alanlarında bulunan çok sayıdaki istekçi uygulamaları tarafından paylaşılmaktadır. Bu nesneye programcı-tanımlı bir arayüz üzerinden erişilir. Onun bileşenleri ve öze11ikle de nasıl dağıtıldıkları görünemez. Tasarımcısının bakış açısına göre ise, bir dağıtılmış bileşik nesne, birlikte çalışan bir alt nesneler kümesinden oluşmaktadır. Bu yapıdaki her bir alt nesne merkezi bir gösterilime sahiptir. Yürütme sırasında, ku11anıcı istekleri doğrultusunda, bir bileşik nesnenin alt nesneleri farklı adres alanlarına kopyalanarak dağıtılmış bir nesne yapısını oluştururlar.Dağıtılmış bileşik nesneyi oluşturan alt nesneler ve bunların yapıları yalnızca bu nesnenin tasarımcısı tarafından bilinir .Kullanıcılar ise, nesne hakkında kendilerine sunulan istekçi arayüzü dışında başka bir bilgiye sahip değildirler. Nesne üzerinde bir metot çağrısı yürüttüklerinde, çağrının gerçeklenme aşamalarından haberdar olmazlar.Önerilen modeli gerçeklemek üzere, dağıtılmış bileşik nesneyi oluşturan altnesnelerin farklı alanlar üzerinde rahatlıkla bağlanabilmesi amacıyla bir bağlantı nesnesi ve alt nesne kopyalarının senkronizasyon ve tutarlılığının sağlanabilmesi amacıyla da bir kontrol nesnesi tasarlanmıştır. Bağlantı nesnesi ile dinamik bağlanma sağlanırken, kontrol nesnesi ile, dağıtılmış bileşik nesnenin alt nesneleri bazında düzenlenebilen çeşitli tutarlılık ve senkronizasyon mekanizmaları kurulabilmektedir.Dağıtılmış bileşik nesnenin farklı alanlarda bulunan alt nesne kopyaları arasında, alt nesne bazında düzenlenebilen çeşitli tutarlılık ve senkronizasyon mekanizmaları kurulabilmekte ve tüm gerçekleme ayrıntıları ku11anıcıya saydam olarak kontrol nesnesi ve DBNTO ara katman yazılımı tarafından sağlanmaktadır. Bileşik nesneyi oluşturan alt nesneler, bu nesnelerin farklı alanlar üzerinde kopyalanma ayrıntıları, kopyalar arasında yürütülen tutarlılık protoko11eri, eşzamanlılık kontrolününsağlanması gibi gerçekleme ile ilgili ayrıntılar nesnenin bir parçası olarak onun arayüzünün arkasına gizlenmiştir.DBN modelinin gerçeklenmesi için sunulan DBNTO ara katman yazılımı dağıtılmışbileşik nesneleri desteklemek için tasarlanmış Java paketlerinden oluşmaktadır.DBNTO özellikle internet çapına yayılmış bilgisayar destekli müşterek uygulamalar geliştirecek olan kullanıcılar için Java programlama dili üzerinden erişilebilen bir arayüz sağlamak amacıyla tasarlanmıştır. DBNTO bir çok uygulama için gerekli olan nesne paylaşımı, dağıtımı, kopyalama, tutarlılığın sağlanması, uygulamanın dinamik olarak yüklenmesi gibi temel mekanizmalar sunmaktadır.DBNTO ara katman yazılımını kullanarak, programcılar merkezi bir ortamda çalışıyor görüntüsü altında dağıtılmış uygulamalar geliştirebileceklerdir. Daha sonra, üretilen kod üzerinde herhangi bir değişiklik yapılmaksızın, uygulama dağıtılmış ortamda çalışacak şekilde düzenlenecektir. Bu esnek yapı, dinamik bağlama, senkronizasyon fonksiyonları ve tutarlılık protokolleri gibi kolaylıklar sağlayan kod parçalarının otomatik olarak alt nesnelere eklenmesi suretiyle elde edilmektedir.Bağlantı ve kontrol nesnelerinin üretildikleri sınıf tanımlamaları alt nesne sınıflarının arayüz tanımlamalarından yararlanılarak, bir sınıf üreteci tarafından otomatik olarak üretilmektedir. Otomatik sınıf üretme işleminde tasarımcıya düşen görev , sadece bir alt nesne metodunun nesne verilerine hangi düzeyde eriştiğini belirlemek ve arayüz tanımlama dosyasını ona göre hazırlamaktır.Önerilen DBN modelinin başarımını ölçme ve benzer diğer sistemlerle karşılaştırmak amacıyla, DBNTO ara katman yazılımı üzerinde bir takım testler uygulanmıştır. Aynı testler uzak-nesne modeline dayanan ve literatürde iyi bilinen Java RMI yapısı üzerinde de yapılmıştır. Her iki sistemden elde edilen ölçüm sonuçları karşılaştırıldığında, DBN modelinin internet üzerinde müşterek uygulama geliştirmek amacıyla uygun bir yapı sunduğu görülmüştür.
Açıklama
Tez (Doktora) -- İstanbul Teknik Üniversitesi, Fen Bilimleri Enstitüsü, 2002
Thesis (Ph.D.) -- İstanbul Technical University, Institute of Science and Technology, 2002
Thesis (Ph.D.) -- İstanbul Technical University, Institute of Science and Technology, 2002
Anahtar kelimeler
Nesne temelli programlama (Bilgisayar bilimi),
Object-oriented programming (Computer science)