Heterojen Dağıtılmış Sistemlerde Cephe Atama

thumbnail.default.alt
Tarih
Yazarlar
Bulu, Samet
Süreli Yayın başlığı
Süreli Yayın ISSN
Cilt Başlığı
Yayınevi
Bilişim Enstitüsü
Institute of Informatics
Özet
Problemi, nesne adı verilen modüler parçalara ayrıştıran nesneye yönelik programlama günümüzde en sık tercih edilen programlama tekniğidir. Nesneye yönelik programlama her ne kadar ilgilerin ayrıştırılması konusunda büyük imkanlar sağlasa da loglama, performas gözleme, ön bellekleme, kimlik doğrulama ve yetkilendirme gibi dik kesen ilgilerin ele alınmasında zorluklar yaşamaktadır. Cepheye yönelik programlama, dik kesen ilgileri cephe adı verilen parçalara ayrıştıran bir çözüm olarak önerilmiştir. Cephe adlı bu parçalar örme adı verilen bir işlem ile ana programa birleştirilir. Son yıllarda dağıtılmış sistemlerin kullanımının artmasıyla birlikte dağıltılmış cepheye yönelik programlama da popüler hale gelmiştir. Dağıltılmış cepheye yönelik programlamada cepheler, her biri farklı bellek ve işlem gücüne sahip bir dizi düğüme yüklenir. Geleneksel uzak method çağrımına benzer şekilde uzak kesim noktaları tarafından cephe içinde yer alan method benzeri yapılar uzak düğümler üzerinde çalıştırılır. Cephelerin sistem üzerinde nasıl dağıtıldığı önemlidir ve programın performansını etkiler. Çünkü nesneler ile cepheler arasında bir ilişki vardır. Nesneden cepheye bir çağrı olduğunda arada veri transferi gerçekleşir. Bu işlem bir süre gerektirir ve bu süre transfer edilen verinin miktarına ve transfer esnasında kullanılan iletişim yolunun kapasitesine bağlıdır. Dolayısıyla, cepheler dağıtılmış sistem üzerinde düğümlere atanırken düğümlerin işlem kapasiteleri, iletişim yolu parametreleri, transfer edilen veri miktarı gibi sistemin ve programın özellikleri dikkate alınmalıdır. Her ne kadar günümüze kadar çok sayıda iş atama yöntemi tanımlanmış olsa bunların hiç biri cephelerin atanması ile ilgilenmemiştir. Tez kapsamında ilk olarak, heterojen dağıtılmış sistemlerde cephe atama problemi gerekli tüm özellikler dikkate alınarak tanımlanmıştır. Sonrasında dağıtılmış cepheye yönelik programlamada yer alan bu problemi çözmek üzere A*, GA ve PSO algoritmaları uygulanmıştır. Ayrıca dağıtılmış cepheye yönelik program performansını arttırmak üzere cepheleri düğümlere atama işlemi esnasında gerekli cephelerin kopyalarını oluşturan yeni bir algoritma önerilmiştir. Son olarak algoritmaların farklı sistemler ve programlar üzerinde etkinlikleri değerlendirilerek, rastgele atama yapan bir algoritmaya göre sağlamış oldukları performans artışı karşılaştırılmıştır. Yapılan deneyler çok düğüme sahip büyük sistemlerde GA ve PSO algoritmalarının, daha küçük sistemlerde ise A* algoritmasının tercih edilebileceğini göstermiştir. Diğer taraftan cephelerin kopylarının kullanılması belirli bir seviyeye kadar maliyet değerlerini düşürmüş ve performansta artış sağlamıştır. Son olarak cephelerin uygun şekilde atanması dağıtılmış cepheye yönelik program performansını arttırdığı gözlemlenmiştir.
Nowadays, object-oriented programming has become the most preferred programming paradigm where a problem is decomposed into modular units called objects. Although object-oriented programming offers greater ability for separation of concerns, it has difficulty to implement crosscutting concerns like logging, pro ? ling, caching, authentication, and authorization. Aspect oriented programming is proposed as a solution for separation of crosscutting concerns into single units called aspects. Aspects are then combined with a base program through a process called weaving. In recent years, with increasing use of distributed systems, distributed AOP has become more popular. In distributed AOP, aspects can be deployed in a set of hosts where each host has unique memory and processing capabilities. Remote pointcuts, which are similar to traditional remote method calls, invoke the execution of method- like constructs called advices in aspects on remote hosts. The way of distributing aspects over the network is critical and affects the performance of the program, because there is a relation between objects and aspects. When there is a call from an object to an aspect, data is exchanged between these object and aspect. This process consumes time and this time depends on the amount of the data and the capacity of the link, which is used during the data transfer. Therefore, while assigning aspects of an AOP to hosts in a distributed system several properties of the physical system and the program must be taken into consideration like processing capabilities of hosts, parameters of communication links, amount of data shared between objects and aspects. Although a large number of task assignment approaches have been identified up to now, none of them is interested in assignment of aspect. In this thesis, first, the aspect assignment problem in heterogeneous distributed systems is formulated by considering all necessary parameters. Then we apply three algorithms namely A*, GA and PSO to solve this problem that occurs in distributed AOPs. Also a new algorithm which creates clones (copies) of necessary aspects while assigning them to hosts is proposed in order to improve the performance of the distributed AOP. Finally, we evaluate the efficiency of these algorithms for different systems and programs and compare the increase in the performance of the AOP obtained by these algorithms with an algorithm that assigns aspects to hosts randomly. Experimental results show that GA and PSO are more favorable than A* algorithm for larger systems with many nodes, while for smaller systems A* may be preferable. On the other hand, using copies of aspects decreases the cost values up to a certain level and makes improvements in the performance. Finally, it is shown that proper assignment of aspects improves performance of the distributed AOPs.
Açıklama
Tez (Yüksek Lisans) -- İstanbul Teknik Üniversitesi, Bilişim Enstitüsü, 2011
Thesis (M.Sc.) -- İstanbul Technical University, Institute of Informatics, 2011
Anahtar kelimeler
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol, Computer Engineering and Computer Science and Control
Alıntı