Açık Kaynak Kodlu Portico RTİ için Yeni İletişim Modelleri
Authors : Serkan ÖZEN, Selim TEMİZER
Pages : 165-174
View : 9 | Download : 4
Publication Date : 2015-09-01
Article Type : Research
Abstract :Koşum-zaman altyapılarında (Run-time infrastructure, RTI) federe ile federasyon arasındaki bağlantı modeli, altyapının dizaynında dikkat edilmesi gereken önemli bir unsurdur. Mevcut kapalı ve açık kaynak kodlu sistemlerde bağlantı modelleri olarak paylaşımlı hafıza, UDP ve TCP/IP gibi yöntem ve protokoller kullanılmaktadır. Portico RTI, anlaşılır bir şekilde yazılmış kodu, esnek mimarisi ve geliştiriciler tarafından sağlanan destek bakımından açık kaynak kodlu RTI yazılımları arasında önemli bir yere sahiptir. Portico RTI’nın halihazırda iletişim modeli olarak sunduğu 2 farklı iletişim modeli bulunmaktadır. Bunlardan ilki Jgroups tabanlı iletişim modelidir. Jgroups, IP tabanlı güvenilir birden çoğa yayın (reliable IP multicast) tabanlı bir kütüphanedir. Bu iletişim modeli ile birlikte, ağ üzerinde dağıtık olarak çalışan simülasyon programları birbirleri ile haberleşebilmekte ve HLA (High Level Architecture) standardının kuralları çerçevesinde birlikte çalışabilmektedirler. Jgroups ağ tabanlı bir kütüphane olduğundan zaman açısından birtakım gecikmeler yaşatabilmektedir. Simülasyon programlarının farklı bilgisayarlar üzerinde değil de aynı bilgisayarlar üzerinde çalıştığı durumlarda Jgroups tabanlı iletişim modeli yerine kullanılabilecek farklı iletişim modeli arayışları gelişmiştir. Bunun sonucu olarak JVM (Java Virtual Machine) tabanlı iletişim modeli geliştirilmiştir. JVM modelinde aynı bilgisayar üzerinde koşan simülasyonlar farklı işlem parçaları (thread) olarak çalışmaktadır. Bu iletişim modelinin de birtakım problemleri bulunmaktadır. JVM tabanlı iletişim modelinde herhangi bir işlem parçasının hata vermesi sonucu tüm JVM işlemi (process) sonlanabilir ve böylece birlikte çalışabilirlik ilkesine aykırı bir durum oluşmuş olur. Bir diğer problem ise, simülasyonların farklı birer işlem parçası olarak çalışmasını sağlayacak ara bir program hazırlanmak zorundadır. Bu durum simülasyonların doğrudan birlikte çalışmasını engellemektedir. Tüm bu durumlar göz önüne alındığında, kapalı kaynak kodlu sistemlerde de sıkça kullanılan paylaşımlı hafıza (shared memory) modelinin Portico RTI için geliştirilmesi ihtiyacı ortaya çıkmıştır. Paylaşımlı hafıza modelinde, simülasyonlar farklı birer işlem olarak çalışacak olup, hafıza alanı üzerinden haberleşeceklerdir. Bu da JVM modelinde bahsedilen dezavantajları giderecek ve simülasyonlara Jgroups modeline göre daha hızlı bir iletişim altyapısı sunacaktır. Java tabanlı bir yazılım olan Portico’da hafıza operasyonları JNI (Java Native Interface) teknolojisi kullanılarak gerçekleştirilecektir. JNI Java programlarına doğrudan hafıza operasyonları yapma olanağı tanıyan bir kütüphanedir. Bu çalışmada, her bir bilgisayarda birden fazla olmak üzere ağ üzerinde dağıtık olarak çalışan simülasyonların haberleşmelerini sağlayacak hibrit iletişim modeli de anlatılacaktır. Bu modele göre aynı bilgisayar üzerinde çalışan simülasyonlar paylaşımlı hafıza modeli ile, farklı bilgisayardakiler ise Jgroups modeli altyapısı ile haberleşeceklerdir. Bu iki yeni model var olan Jgroups altyapısına göre daha hızlı bir haberleşme imkanı sunmaktadır. Daha önce Portico için paylaşımlı hafıza ve hibrit iletişim modelleri geliştirilmediği için bu çalışma iki yeni iletişim modeli sunarak Portico ile haberleşen simülasyonlar için daha hızlı bir iletişim altyapısı sağlamaktadır.Keywords : Paylaşımlı-hafıza iletişim modeli, hibrit iletişim modeli, dağıtık simülasyon, koşum-zaman altyapısı, yüksek seviye mimari