HLA Tabanlı Bileenler ile Otomatik Uygulama Gelitirme Cengiz TOAY Bilgisayar Mühendislii Bölümü Orta Dou Teknik Üniversitesi e-posta: ctogay@ceng.metu.edu.tr Özet Bu çalıma, belirli bir alanda birbirlerinin ihtiyacı olan fonksiyonaliteyi salayacak bileenlerin bulunması ve beraber çalımalarındaki engellerin giderilmesi için bir altyapı sunmaktadır. Bileen teknolojileri için gelitirilen yaklaımlar bu çalımada uygulama alanı olarak seçilen High Level Architecture (HLA) ortamına uygulanmıtır. Benzetimlerin oluturulması sırasında HLA federeleri arasında ortaya çıkacak uyumsuzlukların giderilmesine yönelik mekanizmalar tasarlanmıtır. Abstract This research proposes an infrastructure to inhibit obstacles for locating the components that require functionalities from each other and their collaboration, within a certain domain. The approaches are developed for general component technologies and applied to the High Level Architecture (HLA) medium. Mechanisms are designed to resolve the incompatibilities among the HLA federates. 1. Giri Gelitirme maliyeti ve süresine olan olumlu yansımasından dolayı Bileenlere Dayalı Yaklaımlar (Component Oriented Approaches) zamanla önem kazanmaktadır. Ancak uygun bileenin bulunması ve sisteme dahil edilmesinde problemler yaanmaktadır. u anda, gelitiricinin bileen satmakta olan sitelerden isim ve bir kaç anahtar kelime ile bileenleri bulması ve bileenin üreticisi ile balantı kurup iine yarayıp yaramayacaını test etmesi gerekmektedir. Bileen sayısının artması, gelitiricinin sistemi ile uyumlu bileen bulma olasılıını arttırırken test etmesi gereken bileen sayısını da arttırmaktadır. Bileenlerin sadece isim, iletim sistemi gibi bilgiler ile tanımlanması otomatik bileen bulma ve balama açısından yeterli deildir. Bileenlerin arayüzleri ile sunduklarının yanısıra ihtiyaçlarının da bilinmesi gerekmektedir. Biz bileen olarak sadece hizmet veren birimler deil, aynı zamanda bir yada daha fazla bileenden hizmet alan birimleri de algılamaktayız. Çünkü amacımız seçilen ve uygun çalıması salanan bileenler ile gelitiricinin ya hiç kod yazmadan ya da minimum kod ile uygulama kurabilmesini salıyabilmektir. Bu dorultuda uygulama alanı olarak Yüksek Sevyeli mimari (High Level Architecture(HLA)) tabanlı benzetimler seçilmitir. HLA tabanlı benzetimde, bileenler yani federe ler birbirlerinin ihtiyaçlarını karılayacak ekilde tasarlanmaktadırlar. HLA standartlarının IEEE tarafından belirlenmesi, üretici ve tüketici arasında ortak bir dilin olumasına katkıda bulunmaktadır. Böylece bileenin sadece adı ve arayüz tanımlamaları gibi belirli bir kaç bilginin yanısıra kullanılan ve paylaılan etkileim ve özelliklerin salanması, yarı otomatik sistemlerin kurulmasına imkan vermektedir. Bu çalımada önerilen mekanizmalar ile son kullanıcının, bir alan modeli üzerinde yapacaı seçimler ııında uygun bileenlerin bulunması ve onlardan çalıan bir uygulamanın kurulması için gerekli altyapı salanmaktadır. Çalımada, son kullanıcının mümkün olduunca soyut düzeyde
kalması salanmaya çalıılmıtır. Bileenler ile ilgili ayrıntılı bilgiler sadece mekanizma ve bileen gelitirici arasında yer almaktadır. Bu bildiride kisaca calismanin temelini oluturan sirasi ile HLA, Nitelik Modeli ve Alan Tanımlama Modelin(ATM) den bahsedilmektedir. Calisma bölümünde ise mevcut ATM nin otomatik birleimindeki engellerin ortadan kaldırılması için yapılan eklentiler yer almakta ve bildiri sonuc ve kaynaklar ile son bulmaktadir. 2. Yüksek Sevyeli Mimari (HLA) HLA, benzetimlerin birlikte çalıabilirliini salamak amacıyla 1997 yılında Amerikan Savunma Bakanlıı tarafından gelitirilmi bir standarttır. HLA yi kurallar[1], arayüz tanımlamaları[2] ve Nesne Model Kalıbı (Object Model Template (OMT))[3,4] kavramları oluturmaktadır. Kurallar, daıtık benzetim (federasyon) ve onu oluturan daıtık bileenlerin(federe) birbirleri ile olan davranılarını belirlemektedir. HLA da yer alan federeleri biz bileen olarak düünmekteyiz. Arayüz tanımlamaları federeler ile Koum Zamanı Altyapısı (Runtime Infrastructure ()) arasındaki standartları tanımlamaktadır. ekil 1 den de görülecei üzere, benzetimdeki tüm iletiimi, bir dier ifade ile federe ve federasyonlar arası egüdümü salamakla görevlidir. Tüm iletiim kutuphanesı üzerinden yapıldıı için federelerin hangi programlama dili ıle hazırlandıkları(java, Microsoft VC++) önemini yitirmektedir. ekil 1. üzerinden yapılan HLA bileenlerinin haberlemesi lerin birbirleri ile dorudan iletiim kurmaması gerekmektedir. OMT, federelerin ve federasyonların tanımlanması için bir çatı salamaktadır. HLA nın OMT si federelerinin tekrar kullanılabilirliini salayan en önemli kavramıdır. lerin tanımlanması için Benzetim Nesne Modeli (Simulation Object Model (SOM)) kullanılır. Bu modelde sadece ilgili federenin dı ortam ile paylatıı sınıflar, özellikler, etkileimler, veri yapilari, veri tipleri gibi bilgiler yer almaktadır. Federasyonların tanımlanması için ise Federasyon Nesne Modeli (Fedaration Object Model (FOM)) kullanılır. SOM dan farklı olarak federasyonu oluturan tüm federelerin kullandıı ortak bilgiler yer alır. Federasyona dahil olan her federe bu yapıları kullanmak zorundadır. SOM ve FOM da yer alan tablolardan bazıları tablo 1 de yer almaktadır. SOM da yer alan 13 tablodan federenin paylatıı ya da ihtiyaç duyduu tüm etkileim ve özellikleri, veri tipleri ile birlikte elde edilebilmektedir. Tablo 1. OMT tabloları Nesne Model Tanımlama Tablosu Nesne Sınıf Yapı Tablosu Etkileim Sınıf Yapı Tablosu Özellik Tablosu Parametre Tablosu Veri Tipleri Tablosu
ler arasında FOM da belirtilen etkileim ve özelliklerin kullanımı yayın/kayıt (publish/subscribe) yöntemi ile gerçeklemektedir. Dier federelere kullandırılmak istenen etkileim yada özellik yayın lanır. Hizmeti almak isteyen federe ise ilgili etkileim yada özellie kayıt olur. ler uygulamaya dahil olduklarında yayın/kayıt ilemleri ile sisteme ihtiyaç ve hizmetlerini sunarlar. Ancak bir özellik yada etkileime kayıt olmak için onun daha önceden yayın lanmı olması gerekmektedir. 3. Nitelik Modeli Nitelik Modeli, Feature Oriented Design Analysis(FODA)[5] ve onun gelimi versiyonu olan Feature Oriented Reuse Modeling (FORM)[6] in alan hakkındaki bilgilerin saklanması amacıyla kullandıkları grafik modeldir. ekil 2 de örnek olarak araba alanı için tanımlanmı bilgileri ifade eden bir nitelik diyagramı yer almaktadır. Diyagramda klima opsiyonel bir niteliktir ve seçilebilmesi için 100 beygirlik motor gücüne ihtiyaç duyulmaktadır. Vites ise Otomatik yada Düz olabilir. Araba Vites Beygir_Gücü Klima Otomatik Düz Birleme Kuralı: Klima için Beygir_Gücü >100 olmalıdır. Açıklama : Düz vites daha az yakıt harcar. ekil 2. Örnek Feature Diyagram [5] 4. Alan Tanımlama Modeli Bu çalımada Alan Tanımlama Modeli (ATM) gelitirilerek, olgunlamı bir alandaki bilgilerin ve bu bilgilerin birbirleriyle olan ilikilerinin tek bir çatı altında temsil edilmesi mümkün olmaktadır. ATM, ekil 3 de görülücei üzere Nitelik Modeli ve OMT yi içermektedir. Nitelik Modeli[5,6] ile alan bilgileri grafiksel olarak ifade edilmektedir. çerilen bilgiler hem grafiksel olarak hem de metin tabanlı yöntemlerle saklanmaktadır. Böylece anlaılabilirlik ve otomasyon kabiliyetleri desteklenmektedir[7,8].
Nitelik M odeli ATM Object M odel Templates Yazım sal gösterim Sözlük Depo ekil 3. Alan Tanımlama Modeli ve Deposu Bileenlerin tanımlanmasında nitelik modelindeki alan bilgilerinin yanı sıra bileenlerin bir anlamda arayüzlerini ifade eden OMT, tamamlayıcı bilgi olarak kullanılmaktadır. ATM nin tasarlanmasındaki amaç son kullanıcının soyut düzeyde yapacaı seçimler sonucunda tanımlamasını yaptıı uygulamayı gerçekletirecek bileenlere ulamasıdır. Benzetim Hava Aracı Kara Aracı Çevre Uçak Helikopter Car Tank Rüzgar Nem F4 F16 M60 Leopard Seçimsel Nitelik Hızlan Manevra Hızlan Manevra Zorunlu Nitelik Alternatif Nitelikler ekil 4. Askeri araçlar için bir Nitelik Modeli örnei ekil 4 de ki örnek alan tanımında Nitelik Modeli ile son kullanıcının bir benzetim uygulaması yapması için gerekli alan bilgisi yer almaktadır. Son kullanıcı bu model üzerinden yapacaı seçimler ile uygulamayı tasarlamı olmaktadır. Seçimler sırasında grafikte görülmeyen ancak Nitelik Modelin yazımsal gösteriminde yer alan sınırlamalar, ilikiler vb. kullanıcıyı doru seçimler yapması konusunda yönlendirmektedir.
F16 Hızlan S Manevra S P Gerekli Nesne Model ablon etkileim ve özellikleri Saga Dön Rüzgar_hızı_al Koordinate_XYZ ekil 5. OMT ve Nitelik Model ilikisi ekil 5 de mevcut bileenlerden birinin manevra yeteneini gerçekletirmek için ihtiyaç duyduu etkileim ve özelliklerin bazıları görülmektedir. Dolayısı ile F16 yı ve onun yetenek nitelii olan manevrayı seçmi olan kullanıcı bileenin ihtiyacı olan Koordinat_XYZ özelliini salıyan bir baka bileeni daha seçmesi için yönlendirilmektedir. 5. Çalıma Daha önce yapmı olduumuz çalımalarda[7,8] ATM nin içerii oluturulmutu. ATM ile federasyon gelitiricisine belirli bir alanda nitelik modeli üzerinde yapacaı seçimler dorultusunda ihtiyacı olacak federelerin belirlenmesi salanmıtır. Ancak, ATM federelerin bulunmasının yanı sıra bazı uyum problemlerinin aılmasına yönelik bazı hizmetler ve imkanlar vermektedir. Eer seçilen federelerin kaynak kodları var ise mevcut yaklaımlar ile kodlarda yapılacak deiiklikler, saran(wrapper) kodlar ile uyum problemleri giderilebilir. Ancak gerek daha ucuz olacaı, gerek daha önceden alınmı olması gibi gerekçeler yüzünden kaynak kodları olmayan federelerin çalıtırılması ihtiyacı, çözülmesi gereken problemler dourmaktadır. Bahsedilen uyum problemlerden bazıları unlardır: 1- Kullanılacak olan federelerin SOM larındaki farklı sınıf yapıları. 2- Sınıf, özellik, parametre ve etkileimlerdeki isim farklılıkları (Örnein, aynı etkileim birinde getwind, dierinde getw eklinde tanımlanmı olabilir.) 3- Özellik ve parametrelerdeki tip farklılıkları (Örnein, bir özellik birinde integer, dierinde float tanımlanmı olabilir) 4- Etkileimlerdeki parametre sayılarının farklılıkları ( Örnein, aynı ii yapan etkileim dierine göre farklı parametre sayısına sahip olabilir) 5- Bir federenin ihtiyaç duyduu etkileim, bir dier federede birden fazla etkileimin çarılması eklinde olabilecei gibi sonrasında da yapılması gereken ilemlere ihtiyaç olabilir. (Örnein, get_kmh etkileimine ihtiyaç duyan bir federenin, mil ile çalıan bir baka federe ile çalıması gerekiyor ise get_milh etkileiminin ardından mili km ye çevirilmesi ve sonucun get_kmh olarak döndürülmesi gerekir) 6- Bazı federelerin çalıtırılması için bazı özelliklerin balangıçta kurulması gerekebilir.
gereksinimler Alan Tanımlama Modeli Alan Bilgisi Federasyon Gelitiricisi Gelitiricisi Komutlar Federasyon Deposu SOM+federe SOMs + likiler Fed & Kural Dosya Üreticisi Kurallar Dosyası Fed Dosyası FOM ekil 6. Yapiya Genel Baki Yapıya eklenen yeni moduller ile yukarıda bahsedilen uyum problemlerinin çözümüne yönelik ATM den salanan bilgilere ve otomatik ürünlere ek olarak federasyon gelitiricisinin de katılımı salanmıtır. ekil 6 da görülecei üzere ve HLA standartları korunmutur. Daha önceki yapıya 3 yeni modül eklenmitir. Bunlar Fed ve kural dosya üreticisi,, ve Kurallar dosyasıdır. 5.1 Fed ve Kural Dosya Üreticisi ekil 6 dan de görülecei üzere bu modülün girdileri federasyon gelitiricisinden gelen komutlar, deposundan gelen SOM bilgileri ile seçilen federeler arasındaki sınırlama ve ilikileri gösteren bilgilerdir. Uyuma yönelik tüm çalımalar bu modülde gerçeklemektedir. Yukarıda bahsedilen uyum problemlerine yönelik çözüm önerileri unlardır:
A a1 a2 a3 B b1 b2 b32 B b1 b2 b31 A a1 a2 a3 1 2 ekil 7. Örnek OMT 1- OMT uyumsuzlukları ekil 7 de en basit uyumsuzluklardan biri gösterilmektedir. 1 de b1 e ulamak için A.B.b1 eklinde tanımlanmıken 2 için B.b1 eklinde tanımlanmıtır. Dolayısı ile isim, tip gibi dier uyumların salansa bile bu iki federenin beraber çalımasına imkan yoktur. Bu nedenle 1 ile 2 arasında çevirme ilemine ihtiyaç duyulmaktadır. Bunun için Kural dosyasına çevirmen modülnün bu ii yapması için A.B.b1 = B.b1 tir kuralı yazılır. Fed dosyasına ise ihtiyaca göre A.B.b1, B.b1 yada c gibi bir baka tanımlama yapılabilir(bu durumda kurala =c eklenmelidir). Önemli olan federelerin özellik yada etkileim ihtiyaçlarında uygun ileyicinin(handler) salanabilmesidir. 2- sim farklılıkları Farklı firmalar farklı kelimeler ile aynı özellik veya etkileimi ifade edebilirler bu neden ile OMT uyumsuzluklarında olduu gibi b31 = b32 eklindeki kurallar ile çevirmen modulu bilgilendirilir. Kelimeler arasındaki uyumsuzlukların giderilmesi amacı ile ATM içerisinde yer alan sözlükten faydalanılır. Federasyon gelitiricisinin elemeyi yapması beklenmektedir. Bu kısmın otomatik olarak yapılması gelecek çalıma olarak bırakılmıtır. 3- Tip farklılıkları SOM dosyaları federelerin özellik, etkileim ve parametreler için kullandıkları tipleri göstermektedir. Dolayısı ile 1 in b1 özellii integer iken federe 2 nin b1 i string ise bu durumda 1 nolu çözümde uygulanan yönteme göre çevirme kuralı hazırlanır. Örnein, Fed dosyasına A.B.b1 yazılmı ise, sadece 2 nin b1 isteklerinde integer dan string e çevirme ilemi gerekecektir. Bu durumda kural 2 cast integer B.b1 olmalıdır. 4- Parametre sayı farklılıı lerin aynı amaçla kullandıkları etkileimlerin parametre sayıları farklı olabilir. Ancak parametre sayılarının eksik yada fazla olması durumlarında çevirmenin federasyon gelitiricisinin belirtecei kurallara balı olarak ilem yapar. Örnein, gereksiz parametrenin bo bırakılması, bir baka etkileimin sonucu yada bir özellik ile doldurulması salanabilir. 5- Birden fazla etkileim yada özellik ile dier bir federenin ihtiyacını karılama Bazen bir federenin ihtiyaç duyduu bir özellik bir baka federe de birden fazla özellik ile tutuluyor olabilir. Örnein, bir federe kompleks veri tipi olarak x, y ve z koordinatlarını
kullanırken dieri ayrı ayrı kullanıyor olabilir. Dolayısı ile deiikliklerin x de yapılan bir deiiklik dierine bildirilirken kompleks veri tipine uygun ekilde bildirilir. Bununla ilgili kural yine kurallar dosyasına yazılır. Eer federe1 in get_kmh etkileimine ihtiyacı varsa ve federe2 get_milh etkileimini yayınlıyor ise federe1 get_kmh = (call get_kmh ) * 1.609344 eklinde kural yazilabilir. 6- lk deer atama Uyum için gerekli balangıç deerlerinin atanması gerekebilir. Bu deerler de yine federasyon gelitiricisi tarafından belirtilir ve Kurallar dosyasına yazılır. 5.2 modulu fedarasyon gelitiricisinin istek ve önerileri dorultusunda hazırlanan kuralları gerçekletiren moduldur. Bu modülü 3 ekilde gerçekletirmek mümkündür. Kodu (a) (b) ekil 8. Yapının Gerçekletirim Alternatifleri (c) ekil 8.a da çevirmen saran(wrapper) kod olarak tasarlanmıtır. kodu orjinal sınıfları yerine dan türemi olan çevirmen sınıflarını kullanmaktadır. Bu yaklaımda federe kodlarına ihtiyaç bulunmaktadır. ekil 8.b, üreticilerinin modülünü ya eklemesi eklindeki gerçekletirimidir. ekil 7.c de, çevirmen bazı özellik ve etkileimler için hiç bir ey yapmadan ya eriime izin verirken, kurallar çerçevesinde bazılarında ilem yapmaktadır. Bunun için orjinal DLL dosyalarının hazırlanacak yeni DLL ile bazı fonksiyonları direk orjinal DLL den çarılırken bazıları ise kurallar çerçevesindeki ilemlerin ardından orjinal dan çarılması eklinde gerçekletirilir. Biz 3. yaklaımın federe ve kodunda deiiklik içermemesi nedeni ile daha esnek bulmaktayız. 5.3 Kurallar Dosyası Bölüm 4.1 de bahsedilen çözüm önerilerine(kurallara) uygun olarak Kurallar Dosyası ATM den salanan bilgiler ııında doldurulmaktadir. Problemin türüne balı olarak bazı kısımları otomatik olarak doldurulurken, bazı kısımları ise federasyon gelitiricisi tarafından doldurulmaktadir. Yapıda kullanılacak olan araçlar ile federasyon gelitirici yönlendirilecektir.
6. Sonuç Önerilen yapı ile bileenlerden otomatik uygulama gelitirmeye bir adım daha yaklaılmıtır. Uygulama alanı olarak HLA ǹın seçilmesinin nedeni salamı olduu standartlar ile bileenlerin kendilerini ifade etmelerinde arayüzlere oranla daha fazla bilgi ihtiva etmesidir. Bileenlerin ortam ile paylatıkları özellik ve metodların önceden bilinmesi otomatik birletirmede ilikili bileenlerin bulunmasını salar. Tüm iletiimin tarafından salanıyor olması farklı programlama dillerinde ve iletim sistemlerinde hazirlanmı olan federelerin beraber çalıması mümkün olmaktadır. ATM son kullanıcının, bileenlerin uyum problemlerı haricinde, soyut düzeyde kalmasını salar. ATM aynı zamanda bileen gelitiricisi için kaynak olmaktadır. Üretici ATM'den alacaı OMT'ler ile sistemdeki dier bileenler ile uyumlu bileen üretmesi mümkün olmaktadır. Yapida yer alan Çevırmen Modulu federeler arsında birleime yönelik uyum problemlerinin çözülmesinde kullanılmaktadır. 7. Kaynaklar [1] Department of Defense (DoD),1996. High Level Architecture Rules, Verison 1.0, dated 15 August 1996. [2] Department of Defense (DoD),1997. High Level Architecture Interface Specification, Verison 1.2 [3] Department of Defense (DoD),1996. High Level Architecture Object Model Template, Verison 1.1, dated 12 March 1997. [4] IEEE Standart for Modeling and Simulation (M&S) High Level Architecture (HLA)- Object Model Template (OMT) Specification, IEEE std 1516.2-2000, 2000. [5] Kang, K. C., Cohen, S. G., Hess, J. A., Nowak, W. E.,Peterson, A.S., Feauture Oriented Domain Analysis(FODA) Feasiblity Study, CMU/SEI-90-TR-21, ADA 235785, Software Engineering Institute, Carnegie Mellon Univesty, Pittsburg, PA, 1990. [6] Kang, K.,Kim, S., Lee, J., Kim, K., Shin, E., Huh, M., FORM : A Feature Oriented Reuse Method with Domain-Specific Reference Architectures, Annals of Software Engineering, Volume 5, J. C. Baltzer AG Science Publishers, Red Bank, NJ, USA,1998, pp. 143-168. [7] Togay, C., Dogru, A., Federasyonların HLA Tabanlı Benzetimlere Tümletirilme Otomasyonu için bir Mekanizma, 1. Ulusal Savunma Uygulamaları Modelleme Simülasyon Konferansı, 2005. [8] Togay, C., Dogru, A., Infrastructure Design for HLA Based Automated Federation Development, Integrated Design and Process Technology,2005