27 Aralık 2018 Perşembe

High Level Architecture - HLA

Giriş
Simülasyon dünyasında kullanılan arakatman. 1998 yılında DoD standardı haline geldi. 2000 yılında IEEE (IEEE Std 1516 veya HLA1516 olarak anılıyor) standardı haline geldi.

Ayrıca  "Stanag 4603" ile NATO standardı oldu.

Atası
HLA'nın atası Distributed Interactive Simulation (DIS)

RTI
Run Time Infrastructure anlamına gelir. Türkçesi Çalışma Zamanı Altyapısı. HLA mimarisindeki merkezi sunucudur. Servis sağlayıcı olarak düşünülebilir.

Pitch RTI, MÄK RTI gibi paralı  ve Portico, OpenRTI, Open HLA gibi açık kaynak RTI gerçekleştirimleri vardır.

Windows'ta Pitch RTI servisini kontrol etmek için şu komutlar kullanılır.
sc \\servername start prti1515
sc \\servername stop prti1515
sc \\servername query prti1515

Federation
Bir ismi olan ve Federate'lerin (federasyonun üyesi) çalıştığı simülasyon ortamı. Federate örneğin bir platformu temsil edebilir.

Federasyonun Kurulması ve Başlaması
Federasyonu oluşturan bir federe bulunur. Her federe simülasyon açılırken bazı safhalardan geçer.
Bunlar
1. Açılma - Initialization
2. Koşma - Run
3. Bitiş - End
olabilir.
İlgili safha geçişlerini duyuran bir federe olabilir.

Servisler
Şunlar bulunur
1. Federation Management
2. Declaration Management
3. Object Management
4. Data Distribution Management
5. Ownership Management
  Attrbiute sahipliğini değiştirebilmek hakkı anlamına gelir.
6. Time Management
  2 tip mesaj sırası vardır. Reception Order FIFO gibi çalışır. TSO ise heap gibi çalışır.

Federation Object Model
Federation Object Model (FOM) yazısına taşıdım.

Object Class
Object kalıcı veri tipini temsil eder. Her sınıfın (class) bir sahibi bulunur. Sadece sınıfı yaratan federate bu sınıfın nesnelerini (instance) yaratabilir ve silebilir. Class içinde alanlara "attribute" denilir.

Object'ler arasında kalıtım olabilir. HLAobjectRoot tüm object'lerin atasıdır.

Her alanın da sahibi vardır. Bir nesnenin farklı alanlarının farklı sahipleri olabilir. Sahiplik federasyon üyeleri arasında değişebilir. Alanı sanırım sadece sahip günceller.

Interaction Class
Anlık veri tipini temsil eder. İsmi interaction yerine event olabilirdi. Tek seferlik olayları temsil eder. Örneğin bir patlama olması interaction'dır. Interaction içindeki alanlara attribute yerine "parameter" denilir. HLAinteractionRoot tüm interaction'ların atasıdır. Interaction'da içinde zaman etiketi (time tag) bilgisi bulunur.

Attribute Tag
Şu alanlar mutlaka olmalı
1. name
2. transportation
3. order
4. dimensions

Performans
İlgi duyulan attribute ve DDM (İlgi gruplarına) abone olmak gerekir.

Handle
RTI tarafından verilen numara gibi düşünülebilir.

Zaman - TimeConstrained
Açıklaması şöyle.
A TimeConstrained federate cannot advance its internal time until RTI allows it. This is used for simulators that should advance time almost simulataneously
FederateAmbassador Arayüzü
FederateAmbassador Arayüzü yazısına taşıdım.

NullAmbassador Sınıfı
FederarateAmbassador arayüzünden kalıtır. Override edilmesi gereken metodları boş olarak sağlar. Kendi sınıfım bu sınıftan kalıtır.

RTIambassador Arayüzü
RTIambassador Arayüzü yazısına taşıdım.

LogicalTime Arayüzü
LogicalTime Arayüzü yazısına taşıdım.

LogicalTimeFactory Arayüzü
LogicalTimeFactory Arayüzü yazısına taşıdım.

LogicalTimeFactoryFactory Sınıfı
getLogicalTimeFactory metodu
Şöyle yaparız.
HLAfloat64TimeFactory timeFactory = 
  (HLAfloat64TimeFactory)LogicalTimeFactoryFactory.getLogicalTimeFactory("HLAfloat64Time")



Hiç yorum yok:

Yorum Gönder