bilgiz.org

Dağitilmiş BİLEŞİk nesneler iÇİN

  • g.yilmaz@hho.edu.tr
  • 2. ÖNERİLEN SİSTEMİN YAPISI
  • 3. DAĞITILMIŞ BİLEŞİK NESNELER
  • 3.1. Bir alt nesnenin yapısı
  • 4. NESNE ÜRETME



  • Tarih01.10.2017
    Büyüklüğü35.03 Kb.

    Indir 35.03 Kb.


    BİLEŞİK NESNE MODELİ VE

    DAĞITILMIŞ ORTAMLAR İÇİN BİR SİSTEM DESTEĞİ



    Güray YILMAZ

    Hava Harp Okulu

    Bilgisayar Mühendisliği Bölümü

    g.yilmaz@hho.edu.tr





    Nadia ERDOĞAN

    İstanbul Teknik Üniversitesi

    Bilgisayar Mühendisliği Bölümü

    erdogan@cs.itu.edu.tr



    Abstract

    Distributed systems provide sharing of resources and information over a computer network. A key design issue that makes these systems attractive is that all aspects related to distribution are transparent to users. But, current wide area distributed systems fail to hide implementation aspects related to distribution of the information. Solutions developed for local systems do not scale to wide area case. In this paper, we have developed a new object model, called Distributed Composite Object (DCO). We have also designed and implemented a software layer, DCOBE that can be placed on top of Java programming language to provide a uniform interface for application developers to use. This layer provides basic mechanisms for facilities needed by many applications, such as communication, data replication and partitioning, consistency, dynamic deployment of application and so on.

    1. GİRİŞ

    Dağıtılmış sistemler bilgisayar ağları üzerinde sistem kaynaklarının ve bilginin paylaşımını sağlarlar. Bu sistemleri çekici kılan en önemli tasarım konusu, dağıtım ile ilgili tüm detayların kullanıcılara saydam olarak gerçekleniyor olmasıdır. Ne yazık ki, sistem kaynaklarının kullanıcılar arasında saydam olarak paylaşımına ve yönetimine izin veren genel amaçlı geniş alana yayılmış dağıtılmış sistemler mevcut değildir. Var olan bazı sistemler de kısıtlı bazı kolaylıklar sağlamaktadırlar. Internet üzerinden veri paylaşımı gibi, geniş alanlı uygulamaların geliştirilmesi için genellikle çok fazla efor sarf etmek gerekmektedir. Bu esas olarak, altta çalışan işletim sistemi ve diğer sistem çözümlerinden gerekli haberleşme desteğinin sağlanamamış olmasından kaynaklanmaktadır [5].

    Bu gün için, 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. En iyi durumda, nesne kullanıcısını heberdar etmeksizin bir başka alana göç edebilir. Fakat uzak-nesne modelinin genelde ölçeklenebilme eksikliğinden kaynaklanan bir çok dezavantajları bulunmaktadır. Uzak-nesne modeli kullanıcılara farklı nesne çağrı yöntemlerini gerçekleyecek bir destek sunmamaktadır. Halbuki, sisteme kopyalama ve dağıtım gibi bazı teknikler eklenmek istendiğinde bu destek oldukça gerekli olmaktadır [1].

    Uzak-nesne modeline alternatif olarak, biz yeni bir model olan dağıtılmış bileşik nesne (Distributed Composite Object-DCO) modelini tasarladık ve gerçekledik. Bize göre, internet çapında dağıtılmış işbirliğiyle yürütülen uygulamalar genellikle büyük ya da orta parçalı nesneler (large or coarse grained) üzerinde çalışmaktadırlar. Fakat, bu tip uygulamaların kullanıcıları genelde bu nesnelerin küçük bir parçasıyla ilgilenmektedirler. Bundan dolayı, eğer biz büyük bir nesneyi daha küçük alt nesnelere (finer-grained subobjects-SO) parçalayabilirsek, erişilecek ve farklı alanlar arasında aktarılacak olan verinin miktarı azalacağından dolayı, çalışan uygulamanın performansı yükselecektir.

    DCO’nun tasarımının arkasında yatan temel fikir, nesnenin çok sayıdaki farklı alan üzerinde fiziksel olarak dağıtılmış olmasıdır. Hali hazırda kulanılmakta olan DCOM [3], DCE [2] ve CORBA [6] gibi en bilinen sistemler, dağıtılmış nesneyi tek bir makine üzerinde çalışan ve belki diğer makineler üzerinde kopyaları da bulunan bir nesne olarak görmektedirler. Bu nesne diğer alanlarda bulunan kullanıcılara vekil (proxy) ile yerel bir nesne olarak sunulmaktadır

    2. ÖNERİLEN SİSTEMİN YAPISI

    Biz bu çalışmada, Dağıtılmış Bileşik Nesne Tabanlı Ortam (Distributed Composite Object Based Environment-DCOBE) sisteminin genel tasarımını ve Java ortamında dağıtılmış bileşik nesne gerçeklemesine ilişkin olarak yapmış olduğumuz ilk çalışmaları açıkladık. DCOBE sistemi dağıtılmış bileşik nesneleri desteklemek için tasarlanmış Java paketlerinden oluşmaktadır. Biz DCOBE’u özellikle internet çapına yayılmış birlikte yürütülen uygulamalar geliştirecek olan kullanıcılar için Java programlama dili [4] üzerinden bir uniform arayüz sağlamak amacıyla tasarladık. Bu yazılım bir çok uygulama için gerekli olan nesne bileşimi, kopyalama, tutarlılığın sağlanması, uygulamanın dinamik olarak istenilen alana yüklemesi ve benzeri temel mekanizmalar sunmaktadır.

    DCOBE’u kullanarak, programcılar uygulamalarını sanki merkezi bir ortamda çalışıyorlarmış gibi geliştirebilmektedirler. Daha sonra, kod üzerinde herhangi bir değişiklik yapılmaksızın, uygulama dağıtılmış ortam için konfigüre edilebilmektedir. Bu, dinamik bağlama, senkronizasyon fonksiyonları ve tutarlılık protokolleri gibi kolaylıklar sağlayan kod parçalarının otomatik olarak nesnelere eklenmesi suretiyle yapılmaktadır.

    DCOBE sisteminin temel fonksiyonları şunlardır:



    • DCOBE özellikle, internet üzerine yayılmış dağıtılmış nesne-tabanlı uygulamaların geliştirilmesi için tasarlanmış olan bir yazılımdır.

    • DCOBE, DCO nesne modelini esas almaktadır. DCO’nun tasarımındaki temel fikir, bir DCO’nun alt nesneler vasıtasıyla fiziksel olarak dağıtılmış olmasıdır. Diğer bir deyişle, nesnenin durumu, aynı anda farklı alanlar üzerine yerleştirilmiş bir çok alt nesnenin durumlarından oluşmaktadır.

    • Dinamik yayılma. Uygulamalar istekli düğümlere o ugulamaya sahiplik eden düğümden dinamik olarak yayılır. Böylece kullanıcılar uygulamayı çalıştırmaya başlamadan önce makinaya yüklemek zorunda kalmazlar.

    • Dinamik uyarlama. Büyük ölçekli geniş alana yayılmış olan bir uygulama dinamik olarak yeni bileşenlerin eklenmesi ve var olanların çıkarılabilmesine olanak tanımalıdır. DCOBE, mevcut durumda nesneye bağlantı sağlamış olan istekçileri etkilemeksizin, DCO’ya yeni bir alt nesne eklenmesine, var olanların çıkarılmasına ya da değiştirilmesine imkan tanır.

    • Kopyalama. Dağıtılmış ortamda birlikte yürütülen uygulamalar için en önemli gereksinimlerden biri de kopyalamadır. DCOBE, DCO’nun paylaşılan alt nesnelerinin birlikte iş yürütmekte olan farklı alanlar üzerinde kopyalanmasına izin verir. Böylece, dağıtılmış nesneler üzerinde metot çağrıları yerel olarak yürütülür ve iletim gecikmesi azaltılır.

    • Saydamlık. DCOBE sisteminde, dağıtılmış ortamdaki çok sayıdaki kullanıcı tarafından ortaklaşa yürütülen bir uygulama sanki merkezi bir yapıda çalışılıyormuş gibi geliştirilebilir. Dağıtım, senkronizasyon ve tutarlılık uygulama kodundan bağımız olarak programlanır. Bu aynı zamanda mevcut merkezi uygulamaların dağıtılmış ortamda çalışabilmelerini de mümkün kılar.

    3. DAĞITILMIŞ BİLEŞİK NESNELER

    Dağıtılmış bileşik nesne (DCO) modeli, nesnenin gerçekleyicisinin nesne durumunu çoklu alt nesneler (SO) arasında dağıtabilme fikrine dayanmaktadır. Bu, ana nesnenin durumunun parçalı olmasını gerektirir. Bu alt nesneler farklı alanlara yerleştirilebilirler, kopyalanabilirler ve hatta kendileri de birer bileşik nesne olabilirler.

    DCO modelinde, bir çok alt nesne bir araya gelir ve bileşik nesneyi oluşturur. Bir bileşik nesne tekil bir alan üzerinde kendi alt nesneleri ile birlikte yaratılır. Sonra, bu bileşik nesne istek üzerine alt nesnelerinin bazıları ile birlikte bir çok alan üzerinde kopyalanabilir. Çok sayıdaki alan üzerine yayılmış bulunan bu bileşik nesneler dağıtılmış bileşik nesneyi oluşturur. Şekil-1’de, üç farklı alan üzerine yayılmış bulunan bir dağıtılmış bileşik nesne görülmektedir.

    Eğer Şekil-1’deki yapı incelenecek olursa, CO bileşik nesnesi öncelikle Alan 2 üzerinde SO1, SO2 ve SO3 alt nesne ile birlikte yaratılmıştır. CO bileşik nesnesi daha sonra Alan 1’de yalnızca SO1 alt nesnesi ve Alan 3’de SO1 ve SO3 alt nesneleri ile birlikte kopyalanmıştır. CO bileşik nesnesini oluşturan alt nesneleri ve bunların yapılarını yalnızca bu nesnenin tasarımcısı bilmektedir ve tüm diğer istekçiler, nesne hakkında kendilerine sunulan istekçi arayüzün haricinde bir başka bilgiye sahip değildirler. Bu istekçiler aynı zamanda hangi alt nesnenin kendi alanlarına yüklendiği, yükleme işleminin nasıl yapıldığı, dinamik bağlama, senkronizasyon ve tutarlığın sağlanması gibi daha bir çok konunun nasıl halledildiğini bilmemektedirler. Tüm bu konular istekçilere saydam olarak alt tabakadaki DCOBE sistemi tarafından yürütülmektedir.

    Bir dağıtılmış bileşik nesnenin iki görünüşü vardır: İstekçilerin bakış açısına göre; o tekil paylaşılan bir nesnedir. Farklı adres alanlarında bulunan çok sayıdaki istekçi nesneleri tarafından paylaşılmaktadır. Bu nesneye programcı-tanımlı bir arayüz üzerinden erişilir. Onun bileşenleri ve özellikle de nasıl dağıtıldıkları görünemezdir. Tasarımcısının bakış açısına göre; 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 yapıdaki gibi, temel bir nesnedir. Diğer bir deyişle, her bir alt nesne merkezi bir gösterilime sahiptir.


    Şekil-1: Üç alt nesnesi ile birlikte üç adres alanı üzerine yayılmış bulunan bir dağıtılmış bileşik nesne.



    3.1. Bir alt nesnenin yapısı

    Yukarıda da sözünü ettiğimiz gibi, bir dağıtılmış bileşik nesne bir kaç alt nesnenin bir araya gelmesinden oluşmuştur. Bir alt nesne tekil bir adres alanına yerleştirilir ve dağıtılmış bileşik nesnenin tutarlı bir görüntüsünü oluşturmak için diğer adres alanındaki alt nesnelerle haberleşir. Bu amaçla her bir alt nesne şekil-2’de gösterildiği gibi, iki nesnenin birleşiminden oluşmaktadır. Bunlar; semantik nesne (fragment object) ve kontrol nesnesi (control object)’dir. Bir alt nesne semantik nesnesinin sunmuş olduğu arayüzün aynını gerçekler.




    Yerel İstekçi



    Diğer (uzak) Kontrol Nesnelerine







    Şekil-2: Alt nesnenin yapısı.

    Şekil-2’deki semantik nesne, dağıtılmış bileşik nesnenin gerçek semantiğinin bir bölümünü gerçekleyen bir yerel parçadır. Nesne tasarımcısı, dağıtılmış bileşik nesneyi oluşturan farklı semantik nesnelerinin her biri için sınıf nesnelerini gerçeklemekle yükümlüdür. Diğer bir deyişle, semantik nesne bizzat tasarımcı tarafından gerçeklenecek olan tek nesnedir. Diğer iki nesne (kontrol nesnesi ve alt nesne) ise, semantik nesnesinin arayüz tanımlayıcısını kullanarak nesne üreteci tarafından otomatik olarak üretilecektir.

    Kontrol nesnesi, ilgili semantik nesnesinin arayüz tanımlaması temel alınarak üretilen bir nesnedir. İki tip çağrı isteğini kontrol eder; yerel istekçiden gelen çağrılar ve ağ üzerinden diğer kontrol nesneleri üzerinden gelen çağrılar. Kontrol nesnesinin yerel istekçiye sunmuş olduğu arayüz de, semantik nesnenin arayüzü ile aynıdır. Ek olarak, diğer alanlara yerleşmiş bulunan kontrol nesneleri için, tutarlılık ve eşzamanlılık kontrolü ile ilgili metotları içeren bir arayüz daha sunar. Bu arayüz istekçilerden gizlidir.

    Kontrol nesnesi gelen çağrı isteklerini halletmek ile sorumludur. Dağıtılmış bileşik nesnenin genel durumu, onun çok sayıdaki semantik nesnelerinin durumlarından meydana geldiğinden ve bu semantik nesneler de kullanışlılık, hata toleransı ve performans gibi sebeplerden dolayı çok sayıdaki alan üzerinde kopyalanmış durumdadır. Bu yüzden, kontrol nesnesi eşzamanlılık ve tutarlılık gibi konuları da halletmek durumundadır.

    4. NESNE ÜRETME

    Programcı uygulamalarını, ne ek bir dil desteği, ne de bir sistem desteği olmaksızın, Java programlama dilinde sanki merkezi bir uygulama yazıyormuş gibi geliştirmektedir. Öncelikle, her bir farklı semantik sınıfına ilişkin sınıf tanımlamaları yazılmakta, ikinci adımda ise, uygulama dağıtılmış ortam için konfigüre edilmektedir. Bu adımda, semantik nesnenin arayüz tanımlaması kullanılarak öncelikle alt nesneye ait sınıf dosyası üretilmektedir. Uygulama merkezi yapıya uygun olarak geliştirildiği için, senkronizasyon ve tutarlılık ile ilgili, her hangi bir kod içermemektedir. Bu yüzden, konfigürasyon aşamasının İkinci adımında, kontrol nesnesine ilişkin sınıf dosyası üretilir. Bu sınıf yapısı dağıtım, kopyalama ve tutarlılığın sağlanması gibi detayları içeren metotlardan oluşmaktadır.



    5. SONUÇ

    Biz bu çalışmada, dağıtılmış bileşik nesne diye adlandırdığımız yeni bir nesne modelini ve bu modeli destekleyecek olan, sistem yazılımını, DCOBE, tasarladık ve gerçekledik. Gerçeklemiş olduğumuz DCOBE yazılımı, internet çapına yayılmış dağıtılmış uygulamalar için sistem desteği sağlamaktadır. Dağıtılmış bileşik nesne modeli, tasarımcının nesne durumunu farklı alanlara yayılmış alt nesneler üzerine kopyalanma suretiyle dağıttığı, hatta alt nesnelerin de kendileri birer bileşik nesne olabilen bir modeldir.

    DCOBE ile uygulamalar istekte bulunulan alanlar üzerine, uygulamaya sahiplik eden alandan, dinamik olarak yayılır. Böylece, çalışmaya başlamadan önce uygulamanın o alanda yüklü olması gerekmez. Ayrıca, Geniş alana yayılmış dağıtılmış uygulamalar üzerinde, o uygulamayı kullanmakta olan istekçileri etkilemeksizin, yeni bileşenlerin eklenmesi, var olanların çıkarılması ya da değişiklik yapılması gibi durumları dinamik olarak gerçeklemesi gerektiği öngörüldüğünde; DCOBE, dağıtılmış bileşik nesneye, alt nesnelerin eklenmesi, çıkarılması ve değiştirilmesi durumları, o nesneyi hali hazırda kullanmakta olan istekçilere saydam olarak gerçeklemektedir.

    DCOBE dağıtılmış bileşik nesneyi oluşturan alt nesnelerin çok sayıdaki alan üzerinde kopyalanmasına izin vererek, çağrıların yerel olarak yürütülmesini sağlamakta ve böylece gecikmeyi azaltmaktadır.

    DCOBE’da, dağıtılmış uygulamalar sanki merkezi bir uygulama geliştiriliyormuş gibi, Java dili ve DCOBE’un sunduğu birkaç ek komut kümesi kullanılarak yazılabilmektedir. Dağıtım, senkronizasyon ve tutarlılık konuları uygulamayı oluşturan koddan ayrı olarak DCOBE tarafından gerçeklenmektedir. Bu aynı zamanda, mevcut merkezi uygulamaların dağıtılmış ortama kolayca uyarlanabilmesini de sağlamaktadır.

    KAYNAKLAR


    [1] B.C. Neuman, Scale in Distributed Systems, In Readings in Distributed Computing Systems, IEEE Computer Society Press, 1994.

    [2] D. Rosenberry, D. Kennedy and G. Fisher, Understanding DCE, O’Reilly and Associates, Sebastopol , Calif., 1992.

    [3] G. Eddon and H. Eddon, Inside Distributed COM, Microsoft Press, Redmond, WA, 1998

    [4] J. Gosling, B. Joy and G.Steele, The Java language Specification, Addison-Wesley Developers Press, Sunsoft Java Series, 1996.

    [5] M. Van Steen, P. Homburg, and A. Tanenbaum, Globe: A Wide-Area Distributed System, IEEE Concurrency, 7(1), pp. 70-78, Jan.-Mar., 1999.

    [6] Object Management Group, The Common Object Request Broker: Architecture and Specification. Revision 2.3.1. OMG Document formal/99-10-07, Object Management Group, Framingham, MA, Oct., 1999.










        Ana sayfa


    Dağitilmiş BİLEŞİk nesneler iÇİN

    Indir 35.03 Kb.