ED Model Yapıtaşı Haberleşme Altyapısı Aysun Sancar Yılmaz, Betül Baydemir Çankaya, Hande Doğan Köseoğlu REHİS-EHGYM, Aselsan A.Ş. , Ankara {asancar,baydemir,hdogan}@aselsan.com.tr Özet. Elektronik Destek (ED) Model Yapıtaşı, Radar Elektronik Harp projelerinde ihtiyaç olan veri yapısı ortaklığı, kontrol işlemci haberleşme ve eğitim simülasyonu ihtiyaçlarını karşılamak için geliştirilen bir yapıtaşıdır. Yapıtaşı, sistemde bulunan diğer yazılımlarla konfigüre edilebilir olarak OSGI, ATA ve CORBA teknolojileri kullanarak haberleşebilmektedir. Bu çalışmada ED Model Yapıtaşı haberleşme mimarisi aktarılacaktır. Anahtar Kelimeler: Radar Elektronik Destek, OSGİ, Yazılım Mimarisi, CORBA, ATA, Tasarım Kalıpları, Kullanıcı Arayüzü 1 Giriş ED Model Yapıtaşı, radar elektronik destek kullanıcı arayüzü yazılımlarının temel işlevleri olan yayınların tespiti, yayın parametrelerinin bulunması için yapılan detaylı tespit, tespit edilen parametrelerin kaydı, yayın parametrelerine göre yayının kimlik bilgisini belirlemek için kullanılacak veri dosyalarının yönetimi, yayınlar üzerinde parametre bazlı filtreleme, yayınlara alarm üretme, sistem kalibrasyon işlemleri ve eğitim simülasyon ihtiyaçlarını kontrol işlemci yazılımı ile haberleşerek karşılayan bir yapıtaşıdır. Benzer ED projelerinde Kİ birimiyle haberleşme ve senaryo yönetimlerinin ortaklanmasını sağlama, ortak bileşenlerle daha hızlı ürün çıkarma çalışmaları kapsamında alan analizi çalışmaları yapılmış, bu kapsamda ED Model Yapıtaşı ortak bir katman olarak ED projelerinde kullanılmak üzere geliştirilmeye başlanmıştır. Yapıtaşı servis tabanlı mimariye (Service Oriented Architecture) uygun olarak geliştirilmiştir. Yapıtaşı birbirleri ile haberleşen servislerden oluşmaktadır. Bu servislerin aranmasını, bulunmasını ve kullanılmasını sağlayan servis platformu olarak OSGİ (Open Services Gateway Initiative)[1] kullanılmıştır. OSGİ platformu çeşitli hazır yönetim servisleri sunmaktadır. Her bir servis bu yönetim servislerini kullanarak servis kütüğüne kendi sunduğu servisleri kaydeder. Bu servisleri kullanacak diğer servisler yine yönetim servislerini kullanarak istedikleri servisleri servis kütüğünden sorgular, bağlanır ve kullanır. Servis kullanımı nesnelerin metotlarını çağırmak şeklinde olur. Yapıtaşı içinde geliştirilen bileşenlerin birbiri ile OSGİ altyapısı üzerinden haberleşmesi yanı sıra veri akışını gerçeklediği kontrol işlemci yazılımı ile haberleşme ihtiyacı bulunmaktadır. ED Model Yapıtaşı bu haberleşmeyi OSGİ, ATA (Arayüz Tanımlama Aracı) [3] ya da CORBA (Common Object Request Broker 439 Architecture) [2] aracılığı ile gerçekleştirir. Bu makalede ED Model Yapıtaşının haberleşme mimarisi aktarılacaktır. 2 ED Model Yapıtaşının Kapsamı ED Model Yapıtaşı, OSGİ ortamında kendini ortama kaydeden java ‘plugin’ lerinden oluşmaktadır. Bu yapıtaşını kullanacak uygulamalar OSGİ ortamından servisleri çekerek kullanıma alır. Yapıtaşının temel görevleri radar elektronik harp destek projelerinde yer alan tespit, teşhis, kalibrasyon, kayıt, kimliklendirme kaynağı, alarmlama, filtreleme ve ortak çalışma mesajlaşması (ED sisteminin diğer sistemlerle haberleşmesi) gibi genel ed işlemlerini gerçeklemek (görev modu), bu yeteneklere ek olarak da ortam simülasyonu yapmaktır. (eğitim modu) Şekil 1'de ED Model servislerinin yer aldığı projenin çalışma ortamı gösterilmektedir. OSGİ çerçevesinde bulunan kullanıcı arayüzü servisleri ED model servislerini ortamdan alarak kullanırlar. Radeh Yönetim Servisi mod geçişlerini yöneten servis olarak bir üst katmanda konuşlandırılmıştır. Bütün servis dış arayüzü “RadehModelCekirdek” servisi üstünden sunulmaktadır. Bu sayede bağımlılıklar tek bir elden yönetilir. OSGi Çerçevesi CESMO Haberleşme Servisi Kullanıcı Arayüzü Servisi Seyrusefer Radeh Yönetim Servisi Log Servisi yayın listesi RADEH Servisleri RadehModelCekirdek Filtre Model Servisi Alarm Model Servisi Tespit Model Detaylı Tespit Taktik Kayıt Model Kim. Kaynağı Model Kalibrasyon Model Servisi Model Servisi Servisi Servisi Servisi OrtakÇalışma Model Servisi Kİ Servisleri Tespit Model Kİ Detaylı Tespit Kİ Taktik Kayıt Kİ Kim. Kaynağı Kİ Kalibrasyon Kİ OrtakÇalışma Model Kİ Servisi Servisi Servisi Servisi Servisi Şekil 1. ED Model Yapıtaşı Çalışma Ortamı Genel Görünümü Kİ servisleri diye gösterilen kısım ise ED Model Yapıtaşının haberleştiği kontrol işlemci arayüzünü belirtmektedir. Her bir kontrol işlemci arayüzü için bir bağlantı kurulmaktadır. Şekil 2'de ED Model Yapıtaşının hem kendini kullanan Kullanıcı Arayüzü hem de kontrol işlemci yazılımı ile kurduğu genel haberleşme yapısı gösterilmektedir. 440 Kullanıcı Arayüzü Bileşen- leri OSGİ ED MODEL OSGİ, CORBA, ATA Kontrol İşlemci Arayüzü Şekil 2. ED Model Yapıtaşı Genel Haberleşme Yapısı 3 ED Model Yapıtaşında Kullanılan İlk Haberleşme Altyapısı (FAZ 1) ED Model Yapıtaşı elektronik harp projelerinde yer alan ortak kontrol işlemci (Kİ) haberleşme ve senaryo ihtiyaçlarının ortaklanması amacıyla gerçeklenmeye başlamıştır. Proje ilk defa hayata geçirildiğinde Kİ haberleşmesi CORBA altyapısı ile yapılacağı için ilk sürüm olarak CORBA altyapısı kullanılmıştır. Makalede Faz 1 olarak bahsedilen altyapı ED Modelin CORBA kullanılarak yapılan tasarımıdır. 3.1 CORBA CORBA , Object Management Group (OMG) tarafından oluşturulan farklı platformlardaki sistemlerin haberleşmesi için geliştirilmiş ortak bir dildir. İşletim sisteminden, dilden ve donanımdan bağımsız bir şekilde iletişimi sağlar. Bu özellikleri sayesinde farklı ortamlarda koşabilen ve farklı dillerde geliştirilmiş olabilen projeye özel kontrol işlemci yazılımlarının dış arayüz ile haberleşme senaryolarında CORBA kullanılmıştır. CORBA, ‘IDL’[4] (interface definition language) adı verilen mesajların yazılı olduğu dosyaları kullanır. Bu dosyalar ‘idl’ derleyicileri tarafından derlenip kodlamada kullanılacak kaynak kodlar oluşturulur. ED Model Yapıtaşı java ortamında geliştirildiği için ‘idl’ derlemesi sonucu oluşan java dosyaları ilk aşamada kullanıma alınmıştır. 441 Bu ‘idl’ dosyalarının diğer bir özelliği de Faz 2'de gerçeklenen ATA ve OSGİ altyapısı için ortak kullanım dili sağlayacak olmasıdır. 3.2 İlk Tasarım Bu mimaride, her bir Kİ bağlantısı CORBA üzerinden bağlantı kurup yönetir. Yapıtaşının haberleşme seçeneği mevcut kontrol işlemci yazılımlarının CORBA bağlantısını destekleyecek şekilde tasarlanmıştır. Bir ED Model servisinin Kİ yazılımı ile haberleşmek için kullandığı tasarım kalıbı Şekil 3’te gösterilmektedir. Şekil 3. ED Model Yapıtaşı Faz 1 Haberleşme Tasarım Kalıbı Bu tasarım kalıbına göre Kİ yazılımından mesaj alan sınıf “ModelSunucu” sınıfıdır ve servis sınıfı olan “ModelSınıfı” sınıfını “IModelIcArayuz” arayüz sınıfı üzerinden bilmektedir, doğrudan bir bağlantı kurulmamıştır. Benzer şekilde “ModelSınıfı” sınıfı Kİ yazılımına mesaj göndermek amacıyla “IGomuluAdaptor” arayüzünü kullanmakta, bu arayüzü gerçekleyen “GomuluAdaptor” sınıfına doğrudan bir erişimi bulunmaktadır. 4 ED Model Haberleşme Altyapısı (FAZ 2) ED Model Yapıtaşı bileşeninin farklı elektronik harp projelerinde farklı Kİ bileşenleri ile haberleşme ihtiyacı doğmuştur. Makalede Faz 2 olarak bahsedilen ED Model Yapıtaşı , OSGİ ve ATA arayüzleri ile Kİ haberleşmesini de gerçekleyecek şekilde genişletilmiştir. 442 4.1 OSGİ OSGİ, yeniden kullanılabilirliği destekleyen modüler yapıda bir mimari ile java uygulamaları geliştirmeyi sağlayan bir çerçevedir. Ed Model Yapıtaşı, OSGİ çerçevesi kullanılarak geliştirilmiştir. ED projelerinde, zamanla değişen istekler ve ortamlar sonucunda kontrol işlemci yazılımları gömülü kartlardan Windows ortamına alınmış, yazılım geliştirici ekibin de tecrübelerine dayanarak OSGİ kullanılarak geliştirilmeye başlanmıştır. Kİ yazılımının OSGİ'de geliştirilmesi sonucu, bu yazılımla haberleşecek ED Model Yapıtaşı yazılımının da OSGİ arayüzü olması istenmiştir. 4.2 ATA Arayüz Tanımlama Aracı (ATA), dağıtık birimler üzerinde çalışan yazılım bileşenlerinin arayüzlerini bir arayüz modeli ile tanımlayan, tanımlanan arayüz modeli üzerinden, ara katman kaynak kodu, arayüz dokümanı ve arayüzü test etmek için çalıştırılabilir bir test aracı üreten Eclipse tabanlı bir araçtır. ATA, tanımlanmış bir ATA arayüz modeli üzerinden ara katman kodu, çalıştırılabilir bir test aracı ve yazılım arayüz tasarım tanımı dokümanı üretebilmektedir. Oluşturulan ara katman kodu RPC[5] (Remote Procedure Call) mantığı ile çalışan bir katmandır. Oluşturulan kod haberleşme protokolünden bağımsızdır. Üretilen ara katmanın kullanım yöntemi Şekil 4’te verilmiştir. 443 Şekil 4. ATA Kullanım Yöntemi Üretilen ara katmanın kullanılması için kullanıcının tek yapması gereken dış arayüzden gelen mesajları ve senaryoları gerçeklemesidir. 444 4.3 Haberleşme Tasarımı class tespit IEDModel_Tespit -instance ATA_ModelSunucu Thread haberlesme::GomuluAdaptor:: BaglantiThread ModelSunucu -KIBaglantiThread «interface» #ModelSunucu IGomulu -Model «interface» haberlesme::GomuluAdaptor IModelIcArayuz haberlesme:: haberlesme::ATA_GomuluAdaptor haberlesme:: OSGI_GomuluAdaptor CORBA_GomuluAdaptor Şekil 5. ED Model Yapıtaşı Faz 2 Haberleşme Tasarım Kalıbı Kİ yazılımı ile haberleşen ED Model servislerinde kullanılan ortak bir haberleşme tasarım kalıbı bulunmaktadır. Bu tasarım kalıbı Şekil 5’te verilmektedir. Bu tasarım kalıbında “GomuluAdaptor” sınıfı sunucu nesnesine mesaj göndermek amacıyla kullanılacak olan sınıftır. “GomuluAdaptor” sınıfı, gönderilecek mesajları içeren “IGomuluAdaptor” arayüz sınıfı üzerinden model sınıfı tarafından kullanılacaktır. Sunucu nesnesinden gelen mesajları alacak sınıf ise “ModelSunucu” sınıfıdır. “ModelSunucu” sınıfı “IModelIcArayüz” arayüz sınıfı üzerinden model sınıfına mesajları aktarır. GomuluAdaptor sınıfından türeyen 3 adet sınıf bulunmaktadır. Bu sınıflarda ATA, CORBA ve OSGI haberleşmesi için özelleşmiş kodlar bulunmaktadır. ED Model servisleri konfigürasyondan ayarlanan haberleşme tipine göre ilgili “GomuluAdaptor” nesnesi yaratılır. OSGI ve CORBA haberleşmesi için aynı nesne türleri kullanılmıştır. CORBA tarafından kullanılan sınıflar ortaklık sağlaması açısından OSGI haberleşmesinde de tercih edilmiştir. ATA haberleşmesi için gelen ve giden mesajlar ayrı bir sınıf kümesi için tanımlanmış, bu sebeple sunucu tarafı ATA için yeniden yazılmıştır. “ATA_ModelSunucu” sınıfına gelen mesajlar CORBA sınıf tiplerine çevrilerek bundan sonra olan akış aynı olacak şekilde tasarım yapılmıştır. ATA haberleşmesi için yapılan bu değişikliğin ana sebebi, haberleşme sağlanan Kİ bileşenin ATA sınıf tiplerini kullanmasıdır. OSGI haberleşmesi için OSGI’de geliştirilen Kİ yazılımı da ‘idl’den üretilen CORBA sınıflarını kullanmaktadır. 445 5 Sonuç ED Model Yapıtaşı, 2008 yılından beri değişen ekiplerle beraber farklı ED projelerinde kullanıma alınmıştır. Projelerdeki ihtiyaçlar ve talepler doğrultusunda kendini son teknolojilere uygun olarak güncellemiş, şu an aktif olarak 5 projede kullanıma alınmıştır. Bu projelerden biri ATA arayüzünü, 3 tanesi de OSGİ arayüzünü kullanmaktadır. Bir projede de CORBA ile idamesi devam etmektedir. Kİ ile haberleşmeler ‘idl’ arayüzü kullanılarak ortaklanmaktadır. Kullandığımız tasarım kalıbı sayesinde yeni bir mesaj eklendiğinde ‘idl’ değişikliği yapılır, bu ‘idl’ değişikliği ATA için ayrıca derlenir, ‘idl’ için üretilen kodlar ve ATA için üretilmiş yine ‘idl’den derlenen ‘jar’ projeye eklenerek haberleşmede değişen kısım hızlıca eklenebilmektedir. Bütün türetilmeler ‘idl’ üzerinden olduğu için yapılacak hatalar minimum düzeye indirgenmiştir. Kullandığımız mimari ED Model Yapıtaşı için yeni bir altyapı ile Kİ haberleşmesini destekleyecek durumdadır. “GömülüAdaptor” sınıfından türeyen yeni bir sınıf yazmak hem mevcut yapıyı bozmayacak, hem de yeni bir haberleşme entegrasyonunu sağlayacaktır. Kaynaklar 1. www.osgi.org, OSGI Web Sayfası 2. www.corba.org, CORBA Web Sayfası 3. B. Kekeç,O. Karadeniz, “Arayüz Tanımlama Aracı”, UYMS,2013. 4. www.omg.org, Object Management Group Web Sayfası 5. A.D. Birrell, B.J. Nelson, ”Implementing remote procedure calls”, ACM Transactions on Computer Systems 2, 1984. 446