하이 레벨 아키텍처
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
하이 레벨 아키텍처(HLA)는 1990년대 초 미국 국방부에서 국방 모델 및 시뮬레이션의 상호 운용성과 재사용성을 위해 개발된 아키텍처 표준이다. DIS(분산 상호 작용 시뮬레이션)와 ALSP(집계 레벨 시뮬레이션 프로토콜) 등 기존 프로토콜의 한계를 극복하고 국방부 내 시뮬레이션 상호 운용성을 위한 통일된 표준을 제공하는 것을 목표로 했다. HLA는 여러 버전을 거쳐 IEEE 표준으로 채택되었으며, 현재는 IEEE 1516-2010 표준(HLA Evolved)이 사용되고 있다. HLA는 프레임워크 및 규칙, 페더레이트 인터페이스 명세, 객체 모델 템플릿(OMT)으로 구성되며, 런타임 인프라(RTI)를 통해 연합체 간의 데이터 교환을 관리한다. HLA는 객체 관리, 시간 관리, 데이터 분산 관리(DDM) 등 다양한 서비스를 제공하며, FOM(Federation Object Model)과 SOM(Simulation Object Model)을 사용하여 시뮬레이션 객체와 상호 작용을 정의한다. HLA의 주요 대안으로는 DIS가 있으며, 비표준 통신 프로토콜 사용 등의 비판도 존재한다.
더 읽어볼만한 페이지
- 시뮬레이션 소프트웨어 - 컴퓨터 시뮬레이션
컴퓨터 시뮬레이션은 시스템 동작 파악을 위해 방정식 풀이 알고리즘을 실행하는 과정으로, 2차 세계 대전 핵무기 개발 모델링에서 시작되어 컴퓨터 성능 발전과 함께 다양한 분야에서 활용되며, 모델 유형에 따라 확률/결정, 정상/동적, 연속/이산 등으로 나뉘고, 과학, 공학, 사회과학 등에서 활용되며 한국에서는 정부 주도로 기술 개발에 투자하고 있다. - 시뮬레이션 소프트웨어 - Folding@home
Folding@home은 단백질 폴딩 연구를 위해 전 세계 컴퓨터 자원을 활용하여 알츠하이머병, 헌팅턴병 등 질병 연구에 기여하는 분산 컴퓨팅 프로젝트이다. - IEEE 표준 - IEEE 754
IEEE 754는 부동소수점 숫자를 표현하고 처리하기 위한 국제 표준으로, 다양한 형식과 연산, 반올림 규칙, 예외 처리 등을 정의한다. - IEEE 표준 - IEEE 802.2
IEEE 802.2는 데이터 링크 계층의 LLC 서브레이어를 정의하는 IEEE 802 표준의 일부로, 비연결 및 연결 지향 모드를 지원하며, LLC 클래스 I, II, III, IV를 통해 다양한 서비스 유형을 제공하고, DSAP, SSAP 주소 및 제어 필드로 구성된 헤더와 필요에 따라 SNAP 확장을 사용해 네트워크 통신을 관리한다.
| 하이 레벨 아키텍처 | |
|---|---|
| 기본 정보 | |
![]() | |
| 유형 | 분산 시뮬레이션 표준 |
| 개발 | 미국 국방부 (DoD) |
| 표준화 | IEEE 1516 |
| 다른 이름 | 고수준 아키텍처 |
| 개요 | |
| 목적 | 다양한 시뮬레이션 시스템 간의 상호 운용성 및 재사용성 촉진 |
| 핵심 개념 | 페더레이션 (Federation): 상호 작용하는 시뮬레이션들의 집합 페더레이트 (Federate): 페더레이션에 참여하는 개별 시뮬레이션 런타임 인프라스트럭처 (RTI): 페더레이트 간의 통신 및 데이터 교환을 관리하는 소프트웨어 미들웨어 |
| 주요 특징 | 분산 시뮬레이션 상호 운용성 재사용성 모듈성 표준 기반 |
| 역사 | |
| 기원 | 미국 국방부의 국방 모델링 및 시뮬레이션 사무국 (DMSO) |
| 개발 배경 | 다양한 군사 시뮬레이션 시스템 간의 통합 및 상호 운용성 문제 해결 필요성 대두 |
| 표준화 과정 | 1996년: 미국 국방부 HLA 1.0 발표 2000년: IEEE 1516 표준으로 채택 이후 지속적인 개정 및 업데이트 |
| 구성 요소 | |
| 페더레이트 | 페더레이션에 참여하는 개별 시뮬레이션. 각 페더레이트는 특정 영역의 시뮬레이션을 담당하며, RTI를 통해 다른 페더레이트와 데이터를 교환하고 상호 작용함. |
| 런타임 인프라스트럭처 (RTI) | 페더레이트 간의 통신 및 데이터 교환을 관리하는 소프트웨어 미들웨어. RTI는 페더레이트들이 서로를 찾고, 데이터를 주고받고, 시간을 동기화하는 데 필요한 서비스를 제공함. |
| 인터페이스 명세 (Interface Specification) | 페더레이트가 RTI와 상호 작용하기 위한 표준 인터페이스 정의. 이를 통해 다양한 시뮬레이션 시스템이 HLA 표준을 준수하여 상호 운용성을 확보할 수 있음. |
| 객체 모델 템플릿 (Object Model Template, OMT) | 시뮬레이션에서 사용되는 객체, 속성, 상호 작용 등을 정의하는 템플릿. OMT는 페더레이션 객체 모델 (Federation Object Model, FOM) 및 시뮬레이션 객체 모델 (Simulation Object Model, SOM)을 포함함. |
| 작동 원리 | |
| 페더레이션 생성 | 페더레이트들이 모여 하나의 페더레이션을 구성. 페더레이션은 특정 시뮬레이션 목표를 달성하기 위해 협력함. |
| RTI 연결 | 각 페더레이트는 RTI에 연결되어 다른 페더레이트와 통신할 준비를 함. RTI는 페더레이트 간의 데이터 교환을 중개하고, 시간 동기화를 관리함. |
| 데이터 교환 | 페더레이트들은 RTI를 통해 데이터를 교환하고 상호 작용함. 데이터는 객체의 속성 값 또는 페더레이트 간의 상호 작용 메시지 형태로 교환될 수 있음. |
| 시간 관리 | RTI는 페더레이트들의 시간을 동기화하여 시뮬레이션이 일관성 있게 진행되도록 함. 시간 관리 메커니즘은 시뮬레이션의 정확성과 효율성을 보장함. |
| 시뮬레이션 실행 | 페더레이트들은 데이터를 교환하고 상호 작용하면서 시뮬레이션을 진행함. 시뮬레이션 결과는 분석 및 의사 결정에 활용될 수 있음. |
| 활용 분야 | |
| 군사 시뮬레이션 | 국방 훈련, 무기 시스템 개발, 작전 계획 수립 등에 활용 |
| 항공 우주 | 항공기 및 우주선 설계, 비행 시뮬레이션, 우주 탐사 등에 활용 |
| 교통 | 교통 흐름 시뮬레이션, 교통 시스템 설계, 교통 관리 등에 활용 |
| 제조 | 생산 라인 시뮬레이션, 공장 설계, 재고 관리 등에 활용 |
| 의료 | 수술 시뮬레이션, 환자 치료 시뮬레이션, 의료 시스템 설계 등에 활용 |
| 교육 | 가상 실험, 시뮬레이션 기반 학습 등에 활용 |
| 장점 | |
| 상호 운용성 | 다양한 시뮬레이션 시스템 간의 통합 및 상호 운용성 향상 |
| 재사용성 | 시뮬레이션 컴포넌트의 재사용을 통해 개발 비용 및 시간 절감 |
| 모듈성 | 시뮬레이션 시스템의 모듈화를 통해 유지 보수 및 확장 용이 |
| 분산 시뮬레이션 | 대규모 시뮬레이션을 여러 컴퓨터에서 분산 처리하여 성능 향상 |
| 표준 기반 | IEEE 표준을 준수하여 시뮬레이션 시스템의 신뢰성 및 안정성 확보 |
| 단점 | |
| 복잡성 | HLA 아키텍처의 복잡성으로 인해 초기 학습 및 구현에 어려움이 있을 수 있음 |
| 초기 투자 비용 | HLA 기반 시뮬레이션 시스템 구축에 초기 투자 비용이 많이 들 수 있음 |
| 성능 오버헤드 | RTI를 통한 통신으로 인해 성능 오버헤드가 발생할 수 있음 |
| 표준 준수 | HLA 표준 준수를 위한 추가적인 개발 노력이 필요할 수 있음 |
| 구현 | |
| 상용 RTI | Pitch Technologies의 Pitch pRTI MAK Technologies의 MAK RTI VT MÄK의 VR-Link |
| 오픈 소스 RTI | Portico CERTI |
2. 역사 및 버전
HLA는 1990년대 초 미국 국방부의 주도로 개발이 시작되었다.[1] 애니타 K. 존스 박사는 국방 모델링 및 시뮬레이션 사무국(DMSO)에 국방 모델 및 시뮬레이션의 상호 운용성과 재사용성을 보장하는 임무를 부여했다.
당시 분산 상호 작용 시뮬레이션(DIS)과 집계 레벨 시뮬레이션 프로토콜(ALSP)이라는 두 가지 프로토콜이 이미 존재했다. DIS는 실시간 플랫폼 수준 시뮬레이션에, ALSP는 집계 시뮬레이션에 중점을 두었다. HLA는 미국 국방부 구성 요소의 시뮬레이션 상호 운용성 요구 사항을 충족하는 하나의 통일된 표준을 제공하는 것을 목표로 했다.[2]
HLA 개발은 플랫폼 프로토타입 연합, 합동 훈련 프로토연합, 분석 프로토연합, 엔지니어링 프로토타입 연합의 네 가지 프로토타입 연합을 기반으로 이루어졌으며, HLA 1.3이 최종 출시될 때까지 프로토타입 제작 및 개선을 거쳤다. 이후 HLA는 시뮬레이션 상호 운용성 표준 기구(SISO)에서 관리하는 IEEE 표준으로 전환되었다. DIS 사용자들의 마이그레이션을 용이하게 하기 위해 DIS의 고정 객체 모델에 해당하는 연합 객체 모델(Federation Object Model, FOM)도 실시간 플랫폼 참조 FOM (RPR FOM)으로 개발되었다.
2. 1. 초기 개발 배경
애니타 K. 존스 박사는 국방 모델링 및 시뮬레이션 사무국(DMSO)에 국방 모델 및 시뮬레이션의 상호 운용성과 재사용성을 보장하는 임무를 부여했다.[1]당시 분산 상호 작용 시뮬레이션(DIS)과 집계 레벨 시뮬레이션 프로토콜(ALSP)이라는 두 가지 프로토콜이 이미 존재했다. DIS는 고정 객체 모델을 사용하는 실시간 플랫폼 수준 시뮬레이션에 중점을 두었고, ALSP는 시간 관리, 소유권 관리, 유연한 객체 모델을 사용하는 집계 시뮬레이션에 중점을 두었다. HLA는 모든 미국 국방부 구성 요소의 시뮬레이션 상호 운용성 요구 사항을 충족하는 하나의 통일된 표준을 제공하는 것을 목표로 했다.[2]
2. 2. 버전별 역사
HLA는 1990년대 초, 미국 국방부의 애니타 K. 존스 박사가 국방 모델링 및 시뮬레이션 사무국(DMSO)에 국방 모델 및 시뮬레이션의 상호 운용성과 재사용성을 보장하는 임무를 부여하면서 시작되었다.[1] 당시 이미 분산 상호 작용 시뮬레이션(DIS)과 집계 레벨 시뮬레이션 프로토콜(ALSP)이라는 두 가지 상호 운용성 프로토콜이 존재했지만, HLA는 모든 미국 국방부 구성 요소의 시뮬레이션 상호 운용성 요구 사항을 충족하는 통일된 표준을 목표로 했다.[2]HLA 개발은 네 가지 프로토타입 연합을 기반으로 진행되었으며, HLA 1.3이 최종적으로 출시되었다. 이후 HLA는 시뮬레이션 상호 운용성 표준 기구(SISO)에서 관리하는 IEEE 표준으로 전환되었다.
| 버전 | 발행 연도 | 설명 |
|---|---|---|
| HLA 1.3 | 1998 | 미국 국방부에서 발행. |
| HLA 1516-2000 | 2000 | IEEE에서 발행. XML 기반 FOM, 상세한 데이터 유형 사양, 개선된 DDM 설계 등 포함. |
| HLA 1516-2010 (HLA Evolved) | 2010 | IEEE에서 발행. 모듈식 FOM, C++ 및 Java의 DLC API 통합, 웹 서비스 API, 내결함성 등 포함. |
| HLA 1516-20XX (HLA 4) | 개발 중 | 시뮬레이션 상호 운용성 표준 기구(SISO)에서 개발 중. |
2. 2. 1. HLA 1.3 (1998)
미국 국방부에서 1998년 3월에 발행한 HLA 1.3은 다음으로 구성된다.[1]- 미국 국방부, 규칙 버전 1.3
- 미국 국방부, 하이 레벨 아키텍처 인터페이스 사양 버전 1.3
- 미국 국방부, 하이 레벨 아키텍처 객체 모델 템플릿 버전 1.3
미국 국방부는 HLA 1.3에 대한 해석 또한 발표했다.[2]
- 미국 국방부, 하이 레벨 아키텍처 인터페이스 사양 버전 1.3의 해석, 릴리스 3
2. 2. 2. HLA 1516-2000 (2000)
IEEE에 의해 2000년에 발행된 HLA IEEE 1516-2000은 다음과 같이 구성된다.[2]- IEEE Std 1516–2000 – 모델링 및 시뮬레이션 고수준 아키텍처 표준 – 프레임워크 및 규칙
- IEEE Std 1516.1–2000 – 모델링 및 시뮬레이션 고수준 아키텍처 표준 – 페더레이트 인터페이스 사양
- IEEE 1516.1–2000 정오표 (2003년 10월 16일)
- IEEE 1516.2-2000 – 모델링 및 시뮬레이션 고수준 아키텍처 표준 – 객체 모델 템플릿(OMT) 사양
IEEE 1516-2000의 주요 개선 사항으로는 XML 기반 FOM과 상세한 데이터 유형 사양, 개선된 DDM 설계 등이 있다.
IEEE 1516-2000 표준은 권장 개발 프로세스 및 권장 VV&A 프로세스로 보완되었다.
- IEEE 1516.3-2003 – 고수준 아키텍처 연합 개발 및 실행 프로세스(FEDEP) 권장 관행. 이 표준은 나중에 IEEE Std 1730-2010 분산 시뮬레이션 엔지니어링 및 실행 프로세스(DSEEP)가 되었다.
- IEEE 1516.4-2007 – 고수준 아키텍처 연합 개발 및 실행 프로세스에 대한 연합 검증, 유효성 검사 및 인증 권장 관행
1516-2000 표준이 각 RTI 구현에 따라 약간 다른 API를 가지고 있다는 것이 곧 밝혀졌다. 시뮬레이션 상호 운용성 표준 기구(SISO)는 대체적이고 동적 링크 호환(DLC) C++ 및 Java API를 갖춘 표준을 만들었다.
- SISO-STD-004.1-2004: HLA 인터페이스 사양에 대한 동적 링크 호환 HLA API 표준(IEEE 1516.1 버전)
- SISO-STD-004-2004: HLA 인터페이스 사양에 대한 동적 링크 호환 HLA API 표준(v1.3)
DLC API는 나중에 주 표준에 병합되었다.
2. 2. 3. HLA 1516-2010 (HLA Evolved) (2010)
IEEE 1516-2010 표준은 2010년 8월 IEEE에 의해 발행되었으며 일반적으로 HLA Evolved로 알려져 있다.[7]IEEE 1516-2010의 주요 개선 사항은 다음과 같다.
이 버전의 HLA의 XML 스키마, C++, Java 및 WSDL API와 FOM/SOM 샘플과 같은 기계 판독 가능 부분은 [https://standards.ieee.org/downloads/ IEEE 웹사이트의 IEEE 1516 다운로드 영역]에서 다운로드할 수 있다. 전체 표준 텍스트는 SISO 회원에게는 무료로 제공되며 [https://web.archive.org/web/20001206215800/http://www.shop.ieee.org/ IEEE 상점]에서 구매할 수 있다.
IEEE 1516 표준은 SISO HLA-Evolved 제품 개발 그룹에서 개정되었으며, 2010년 3월 25일 IEEE 표준 활동 위원회에서 승인되었다. 개정된 IEEE 1516-2010 표준에는 현재의 DoD 표준 해석과 SISO DLC API의 확장 버전인 EDLC API가 포함되어 있으며, 다음과 같은 개선 사항들이 있다.
- 스키마 및 확장성 등 FOM/SOM에 대한 확장된 XML 지원
- 결함 허용 지원 서비스
- 웹 서비스(WSDL) 지원/API
- 모듈식 FOM
- 업데이트 속도 감소
- 인코딩 도우미
- 추가 전송에 대한 확장된 지원(예: QoS, IPv6, ...)
- 표준화된 시간 표현
2. 2. 4. HLA 1516-20XX (HLA 4) (개발 중)
시뮬레이션 상호 운용성 표준 기구(SISO)에서 HLA의 새로운 버전 개발을 2016년 1월에 시작했으며 현재 진행 중이다.[1]3. 기술 개요
HLA는 프레임워크 및 규칙, 페더레이트 인터페이스 명세, 객체 모델 템플릿 명세의 세 부분으로 구성된다.
- '''프레임워크 및 규칙'''은 연합체 또는 전체 연합체가 준수해야 하는 10가지 아키텍처 규칙을 명시한다.
- '''페더레이트 인터페이스 명세'''는 RTI에서 제공해야 하는 서비스를 명시한다. 이 서비스는 C++, Java API 및 웹 서비스로 제공된다.
- '''객체 모델 템플릿 명세'''는 FOM과 같은 HLA 객체 모델이 사용해야 하는 형식을 명시한다.
3. 1. 주요 용어
- 런타임 인프라(RTI): HLA 페더레이트 인터페이스 사양에 명시된 표준 서비스들을 제공하는 소프트웨어이다.[1] RTI는 7개의 서비스 그룹으로 구성된다.[1]
- 페더레이트: RTI에 연결되는 시뮬레이션, 도구, 라이브 시스템과의 인터페이스 등을 의미한다.[1] 데이터 로거 및 관리 도구 등이 페더레이트에 속한다.[1] 페더레이트는 RTI 서비스를 사용하여 데이터를 교환하고 다른 페더레이트와 동기화한다.[1]
- 페더레이션: 동일한 RTI에 연결된 페더레이트들의 집합과 공통 FOM을 의미한다.[1]
- 페더레이션 실행: 특정 목표를 가지고 동일한 RTI 및 FOM을 사용하여 페더레이션에서 페더레이트 집합이 함께 실행되는 세션이다.[1]
- 페더레이션 객체 모델(FOM): 페더레이션에서 정보를 교환하는 데 사용되는 객체 클래스, 상호 작용 클래스, 데이터 유형 및 추가 데이터를 지정하는 문서이다.[1] FOM은 HLA 객체 모델 템플릿 및 관련 XML 스키마 형식을 따르는 XML 파일이다.[1] 서로 다른 응용 분야의 데이터 교환에는 서로 다른 FOM이 사용되며, FOM 개발의 시작점으로 일반적으로 사용되는 참조 FOM이라고 하는 표준화된 FOM이 있다.[1] FOM은 FOM 모듈을 사용하여 모듈 방식으로 개발하고 확장할 수 있다.[1]
- 시뮬레이션 객체 모델(SOM): 특정 시뮬레이션이 페더레이션에서 게시하거나 구독하는 객체 클래스, 상호 작용 클래스, 데이터 유형 및 추가 데이터를 지정하는 문서이다.[1] SOM은 HLA 객체 모델 템플릿 및 관련 XML 스키마 형식을 따르는 XML 파일이며, SOM 모듈을 사용하여 모듈 방식으로 개발하고 확장할 수도 있다.[1]
- 객체: 일정 기간 동안 지속되고 업데이트할 수 있는 속성이 있는 데이터를 나타낸다.[1] 객체는 객체 클래스를 사용하여 FOM/SOM에서 정의된다.[1]
- 상호 작용: 매개변수가 있는 즉각적인 이벤트를 나타낸다.[1] 전송된 상호 작용은 업데이트할 수 없다.[1] 상호 작용은 상호 작용 클래스를 사용하여 FOM/SOM에서 정의된다.[1]
- 데이터 유형: 속성 및 매개변수 데이터의 표현 및 해석은 HLA 데이터 유형을 사용하여 FOM/SOM에서 지정된다.[1]
- 게시: 속성 집합과 함께 객체 클래스를 게시하는 페더레이트는 해당 객체 클래스의 인스턴스를 등록 및 삭제하고 해당 속성 값을 업데이트할 수 있다.[1] 상호 작용 클래스를 게시하는 페더레이트는 관련 매개변수 값과 함께 해당 상호 작용 클래스의 상호 작용을 보낼 수 있다.[1]
- 구독: 속성 집합과 함께 객체 클래스를 구독하는 페더레이트는 해당 객체 클래스의 인스턴스 등록 및 삭제를 발견하고 구독한 속성의 업데이트를 수신한다.[1] 상호 작용 클래스를 구독하는 페더레이트는 관련 매개변수 값과 함께 해당 상호 작용 클래스의 상호 작용을 수신한다.[1]
4. 인터페이스 명세
RTI 서비스는 HLA 인터페이스 명세에 정의되어 있으며, 7개의 서비스 그룹으로 분류된다. 이러한 서비스 외에도, 관리 객체 모델(MOM)은 연방 프로그램을 프로그래밍 방식으로 검사하고 조정할 수 있게 해주는 서비스를 제공한다.
4. 1. 서비스 그룹
RTI 서비스는 HLA 인터페이스 명세에 정의되어 있으며, 7개의 서비스 그룹으로 분류된다. 이 서비스들은 C++ 또는 자바 API와 웹 서비스 형태로 제공된다. C++ 및 자바 API에서 서비스는 RTI 앰배서더 클래스의 인스턴스에 대한 호출을 사용하여 호출된다. RTI는 연방체 앰배서더 클래스의 인스턴스에 대한 호출을 통해 전달되는 콜백을 사용하여 연방체에 정보를 전달한다. WSDL을 사용하여 정의된 웹 서비스 API에서 연방체는 웹 서비스 요청과 응답을 사용하여 호출을 수행하고 콜백을 받는다.[5]4. 1. 1. 연합 관리 서비스
연합 관리 서비스는 HLA 인터페이스 사양의 4장에서 설명하며,[5] 연합 실행과 동기화 지점 및 저장/복원과 같은 연합 전체의 작업을 관리하는 것을 목적으로 한다.연합 관리 서비스는 크게 세 가지로 분류할 수 있다.
1. RTI (실시간 인프라) 연결 및 연합 실행 관리
- RTI에 연결 및 연결 해제
- CreateFederationExecution 및 DestroyFederationExecution: 연합 실행 생성 및 삭제
- JoinFederationExecution 및 ResignFederationExecution: 연합체가 연합 실행에 참여 및 탈퇴
- ConnectionLost: 오류로 인해 연합 실행에 대한 연결이 끊어졌음을 연합체에 알림 (RTI에서 사용)
- ListFederationExecutions: RTI에 사용 가능한 연합 실행 목록 검색
2. 동기화 지점 관리동기화 지점은 모든 연합체 또는 선택된 연합체가 특정 작업을 완료해야 실행을 계속할 수 있는 연합 전체의 이벤트이다. (예: 시나리오 초기화)
- RegisterFederationSynchronizationPoint: 동기화 지점 등록
- AnnounceSynchronizationPoint: 연합체에 동기화 지점이 등록되었음을 알림 (RTI에서 사용)
- SynchronizationPointAchieved: 연합체가 동기화 지점에 도달했음을 나타냄
- FederationSynchronized: 연합이 동기화되었음(모든 연합체가 동기화 지점에 도달했음)을 연합체에 알림 (RTI에서 사용)
3. 연합 실행 저장 및 복원 관리저장 및 복원 작업은 RTI와 각 연합체 모두 내부 상태를 저장/복원해야 한다.
- 저장:
- RequestFederationSave: 연합 저장 시작
- InitiateFederateSave: 연합체에 상태 저장을 시작하도록 알림 (RTI에서 사용)
- FederateSaveComplete: 연합체가 상태 저장을 완료했을 때 호출
- FederationSaved: 연합이 저장되었음을 연합체에 알림 (RTI에서 사용)
- 복원:
- RequestFederationRestore: 연합 복원 시작
- InitiateFederateRestore: 연합체에 상태 복원을 시작하도록 알림 (RTI에서 사용)
- FederateRestoreComplete: 연합체가 상태 복원을 완료했을 때 호출
- FederationRestored: 연합이 복원되었음을 연합체에 알림 (RTI에서 사용)
4. 1. 2. 선언 관리 서비스
선언 관리 서비스는 HLA 인터페이스 사양의 5장에서 설명하며,[5] 연합체가 FOM의 객체 및 상호 작용 클래스를 기반으로 게시(보내기) 및 구독(받기)하려는 정보를 선언할 수 있도록 하는 것을 목표로 한다. RTI는 이 정보를 사용하여 업데이트 및 상호 작용을 구독하는 연합체로 라우팅한다. 객체 클래스의 경우, 게시 및 구독은 특정 속성 집합에 대해 수행된다. 상호 작용 클래스의 경우, 모든 매개변수를 포함한 전체 상호 작용이 게시 및 구독된다. 주요 서비스는 다음과 같다.- PublishObjectClassAttributes: 주어진 객체 클래스에 대한 속성 집합을 게시하는 데 사용된다.
- SubscribeObjectClassAttributes: 주어진 객체 클래스에 대한 속성 집합을 구독하는 데 사용된다.
- PublishInteractionClass: 모든 매개변수를 포함하는 상호 작용 클래스를 게시하는 데 사용된다.
- SubscribeInteractionClass: 모든 매개변수를 포함하는 상호 작용 클래스를 구독하는 데 사용된다.
4. 1. 3. 객체 관리 서비스
객체 관리 서비스는 HLA 인터페이스 사양의 6장에서 설명하며,[5] 페더레이트가 객체 인스턴스에 대한 정보를 공유하고 상호 작용을 교환할 수 있도록 하는 것이다.객체 인스턴스 이름은 예약되거나 자동으로 생성될 수 있다. 페더레이트는 지정된 객체 클래스의 객체 인스턴스를 등록할 수 있으며, 그러면 구독하는 페더레이트가 이를 발견한다. 이러한 객체 인스턴스의 속성은 업데이트될 수 있으며, 이러한 업데이트는 구독하는 페더레이트에 반영된다. 상호 작용을 보낼 수 있으며, 이러한 상호 작용은 구독하는 페더레이트에 전달된다. 주요 서비스는 다음과 같다.
| 구분 | 서비스 | 설명 |
|---|---|---|
| 객체 | ReserveObjectInstanceName | 객체 인스턴스에 사용할 이름을 예약하는 데 사용된다. |
| RegisterObjectInstance | 예약된 이름 또는 자동으로 생성된 이름을 사용하여 특정 객체 클래스의 객체 인스턴스를 등록하는 데 사용된다. | |
| DiscoverObjectInstance | RTI에서 특정 객체 클래스를 구독하는 페더레이트에게 새 객체 인스턴스가 등록되었음을 알리는 데 사용된다. | |
| DeleteObjectInstance | 객체 인스턴스를 삭제하는 데 사용된다. | |
| RemoveObjectInstances | RTI에서 객체 인스턴스가 제거되었음을 페더레이트에 알리는 데 사용된다. | |
| 속성 | UpdateAttributeValues | 객체 인스턴스에 대한 업데이트된 속성 값을 제공하는 데 사용된다. |
| ReflectAttributeValues | RTI에서 업데이트된 값의 특정 속성을 구독하는 페더레이트에 알리는 데 사용된다. | |
| 상호 작용 | SendInteraction | 매개변수 값을 포함하여 특정 상호 작용 클래스의 상호 작용을 보내는 데 사용된다. |
| ReceiveInteraction | RTI에서 특정 상호 작용 클래스를 구독하는 페더레이트에 매개변수 값을 포함하여 상호 작용을 전달하는 데 사용된다. |
4. 1. 4. 소유권 관리 서비스
하이 레벨 아키텍처(HLA) 인터페이스 사양의 7장에 설명된 소유권 관리 서비스[5]는 객체 인스턴스의 속성 소유권을 동적으로 관리하는 것을 목표로 한다. HLA에서, 단 하나의 연합체만이 주어진 객체 인스턴스의 특정 속성을 업데이트할 수 있으며, 이 연합체가 해당 속성의 소유자로 간주된다. 새로운 객체 인스턴스를 등록하는 연합체는 자동적으로 해당 객체가 게시하는 모든 속성의 소유자가 된다. 어떤 경우에는 객체 인스턴스의 속성이 소유되지 않을 수 있는데, 이는 어떤 연합체도 소유하지 않음을 의미한다.소유권 관리는 런타임에 하나 또는 여러 속성의 소유권을 이전하는 서비스를 제공하며, 여기에는 연합체가 속성을 포기하고 다른 연합체가 속성을 획득하는 것이 포함될 수 있다. 주요 패턴에는 두 가지가 있는데, 획득하는 연합체에 의해 시작되는 "풀"과 포기하는 연합체에 의해 시작되는 "푸시"이다.
"풀" 소유권 시작을 위한 주요 서비스는 다음과 같다.
- AttributeOwnershipAcquisitionIfAvailable: 소유되지 않은 속성의 소유권을 획득하려는 연합체가 사용한다.
- AttributeOwnershipAcquisition: 잠재적으로 소유된 속성의 소유권을 요청하려는 연합체가 사용한다.
"푸시" 소유권 시작을 위한 주요 서비스는 다음과 같다.
- AttributeOwnershipDivestitureIfWanted: 이러한 속성의 소유권을 획득하기 위해 대기하는 다른 연합체가 있는 경우에만 속성을 포기하려는 연합체가 사용한다.
- NegotiatedAttributeOwnershipDivestiture: 유사하지만 RTI가 새로운 소유자를 찾도록 시도하게 할 수도 있다.
- UnconditionalAttributeOwnershipDivestiture: 새로운 소유자를 찾을 수 없는 경우에도 소유권을 포기하려는 연합체가 사용한다.
모든 객체 인스턴스에는 HLAPrivilegeToDeleteObject라는 미리 정의된 속성이 있다. 객체 인스턴스에 대해 이 속성의 소유자만 객체 인스턴스를 삭제할 수 있다. 이 속성의 소유권은 위의 작업을 사용하여 런타임에 이전할 수 있다.
4. 1. 5. 시간 관리 서비스
HLA 연합에서 정보 교환은 HLA 시간 관리가 활성화되지 않은 경우 메시지의 즉시(수신 순서, RO) 전달을 통해 실시간으로 이루어진다. HLA 시간 관리의 목적은 시간 순서(TSO)로 시간 스탬프가 찍힌 메시지(업데이트 및 상호 작용)의 인과 관계 및 정확하고 일관된 교환을 보장하는 것이다. 이는 연합이 실시간, 실시간보다 빠름, 실시간보다 느림, 또는 가능한 한 빠르게 실행되는지에 관계없이 적용된다.[5]HLA 시간 관리에는 다음과 같은 주요 개념이 있다.
- 논리적 시간: 0부터 시작하는 HLA의 시간 축으로, 시간 관리 시간 스탬프 및 작업에 사용된다. 논리적 시간 축은 연합의 시나리오 시간에 매핑될 수 있다. 예를 들어, 0은 시나리오 시간 1066년 1월 1일 8:00을 나타내고 1씩 증가하는 것이 시나리오의 1초를 나타낼 수 있다.
- 미리보기: 페더레이트가 메시지를 생성할 가장 낮은 미래 시간을 지정하는 시간 간격이다. 고정 시간 단계를 가진 페더레이트의 경우 일반적으로 시간 단계의 길이이다.
- 허용됨: 모든 시간 스탬프가 찍힌 메시지가 해당 시간까지 전달되면 RTI가 특정 논리적 시간으로 페더레이트가 허용(전진할 수 있음)된다. 그러면 페더레이트는 미래의 시간 스탬프가 있는 메시지 계산을 안전하게 시작할 수 있다. 이 시간 스탬프는 허용된 시간 + 페더레이트 미리보기보다 빠를 수 없다.
- 전진: 페더레이트가 허용된 시간 + 미리보기에 대한 데이터 생성을 완료하면 더 늦은 시간으로 전진하도록 요청할 수 있으며, 이는 또한 요청된 시간 + 미리보기보다 작은 시간 스탬프가 있는 메시지를 더 이상 생성하지 않겠다고 약속하는 것을 의미한다. 페더레이트는 이제 전진 상태에 있다.
- 시간 규제: 시간 스탬프가 찍힌 이벤트를 보내는 페더레이트는 다른 페더레이트의 시간 전진이 이로 인해 규제될 수 있으므로 시간 규제로 간주된다.
- 시간 제약: 시간 관리가 적용된 이벤트를 수신하는 페더레이트는 시간 스탬프가 찍힌 메시지의 수신이 시간 전진을 제한하므로 시간 제약으로 간주된다.
HLA 시간 관리의 주요 원칙은 다음과 같다.
- 각 시간 규제 페더레이트는 메시지를 보낼 때 메시지(업데이트 및 상호 작용)에 시간 스탬프를 할당하여 메시지가 유효한 시나리오 시간을 나타낸다.
- RTI는 시간 제약 페더레이트에 대한 메시지 전달을 관리하며, 시간 규제 페더레이트의 메시지는 시간 스탬프 순서 대기열을 사용하여 적절한 시간에 전달된다.
- 시간 제약 페더레이트는 RTI에 시간 전진 권한을 요청한다.
- RTI는 페더레이트가 과거의 시간 스탬프가 있는 메시지를 수신할 수 없다는 것을 확신할 때 시간 제약 페더레이트에 시간 전진을 허용한다.
미리보기, 허용 및 전진의 예시는 다음과 같다.
1. 페더레이트는 10의 고정 시간 단계를 사용하고 미리보기가 10이다.
2. 페더레이트는 RTI에 의해 논리적 시간 50으로 허용된다. 따라서 RTI는 50보다 작거나 같은 시간 스탬프가 있는 모든 메시지가 페더레이트에 전달되었음을 보장한다.
3. 이제 페더레이트는 허용된 시간 + 미리보기, 즉 60에 대한 메시지를 올바르게 계산하고 보내는 데 필요한 모든 데이터를 가지고 있다.
4. 페더레이트가 시간 스탬프가 60인 모든 메시지를 보낸 후 시간 60으로 전진하도록 요청한다. 따라서 시간 스탬프가 70보다 작은 메시지를 보내지 않겠다고 약속한다.
5. RTI는 60보다 작거나 같은 시간 스탬프가 있는 모든 메시지를 페더레이트에 전달한다. 그런 다음 페더레이트에게 시간 60을 허용한다.
6. 이와 같은 과정이 반복된다.
연합에 있는 하나 이상의 페더레이트가 페이싱을 수행하는 경우, 즉 시간 전진 요청을 실시간 시계와 상관시키면 연합이 실시간 또는 조정된 실시간으로 실행될 수 있다. 페이싱이 없으면 연합은 가능한 한 빠르게 실행된다. 예를 들어 런타임에 사람의 상호 작용이 필요하지 않고 실시간 시계에 의존하는 시스템과의 인터페이스가 필요하지 않은 연합은 컴퓨팅 리소스가 허용하는 만큼 빠르게 실행될 수 있다.
주요 서비스는 다음과 같다.
- EnableTimeConstrained 및 EnableTimeRegulating: 페더레이트에 시간 제약 및 시간 규제 모드를 활성화한다.
- TimeAdvanceRequest: 페더레이트가 지정된 논리적 시간으로 전진하도록 요청한다.
- TimeAdvancedGrant: RTI가 페더레이트에게 지정된 논리적 시간으로 허용되었음을 알린다.
- EnableAsynchronousDelivery: 페더레이트가 허용 및 전진 상태일 때 모두 수신 순서 메시지 전달을 활성화한다.
이벤트 기반 시뮬레이션의 경우 페더레이트는 다음 서비스를 사용하여 다음 이벤트로 전진하도록 요청할 수도 있다.
- NextMessageRequest: 페더레이트가 페더레이트에 전달될 다음 메시지의 시간 스탬프 또는 지정된 논리적 시간(시간 스탬프가 더 낮은 값)으로 전진하도록 요청한다.
또 다른 중요한 개념은 최대 사용 가능 논리적 시간(GALT)이다. 각 페더레이트가 허용될 수 있는 최대 시간은 다른 페더레이트가 허용된 시간과 미리보기에 따라 달라진다. 페더레이트의 GALT는 다른 페더레이트가 허용될 때까지 기다릴 필요 없이 페더레이트가 얼마나 멀리 허용될 수 있는지 지정한다. 이것은 시간 관리 연합에 늦게 참여하는 페더레이트에게 특히 흥미롭다.
GALT의 주요 서비스는 다음과 같다.
- QueryGALT: 호출 페더레이트의 GALT를 반환한다.
보다 고급 서비스는 다음과 같다.
- FlushQueueRequest: 페더레이트가 시간 스탬프가 얼마나 미래에 있는지에 관계없이 대기열에 있는 모든 시간 스탬프가 찍힌 메시지의 전달을 요청할 수 있다.
- Retract: 페더레이트가 이미 보낸 메시지를 철회하도록 요청할 수 있다. (낙관적 시뮬레이션에 유용하다.)
4. 1. 6. 데이터 분산 관리 서비스 (DDM)
DDM(Data Distribution Management Services, 데이터 분산 관리 서비스)은 HLA(High Level Architecture) 인터페이스 사양의 9장에서 설명된 것처럼, 클래스 및 속성 구독 외에 추가적인 데이터 필터링을 통해 연합의 확장성을 높이는 것을 목표로 한다.[11] 필터링은 위도 및 경도와 같은 연속적인 값이나 자동차 브랜드와 같은 이산적인 값을 기반으로 할 수 있다.DDM의 주요 개념은 다음과 같다.
- '''차원(Dimension)''': 필터링에 사용되는 이름이 붙은 간격(0..n)으로, 값은 0부터 시작하여 상한 n으로 끝난다. 시뮬레이션 도메인의 데이터는 하나 이상의 차원에 매핑된다. 예를 들어, 지리적 필터링을 위한 차원은 위도 차원(LatitudeDimension)과 경도 차원(LongitudeDimension)이 될 수 있다. 자동차 브랜드를 기반으로 필터링하기 위한 차원은 자동차 브랜드 차원(CarBrandDimension)이 될 수 있다.
- '''정규화 함수(Normalization Function)''': 입력 값을 차원에서 사용할 정수 값으로 매핑하는 함수이다. 예를 들어, 위도 차원(LatitudeDimension)에 대한 정규화 함수는 -90.0에서 +90.0까지의 위도 값을 0..179 범위의 정수로 매핑할 수 있다. 자동차 브랜드 차원(CarBrandDimension)에 대한 정규화 함수는 기아, 포드, BMW 및 푸조와 같은 자동차 브랜드 집합을 0..3 범위의 정수로 매핑할 수 있다.
- '''범위(Range)''': 하한(포함)과 상한(배타적)으로 지정된 차원의 간격이다.
- '''영역(Region)''': 특정 차원과 관련된 각 범위의 집합이다. 위의 예에서 영역은 위도 차원(LatitudeDimension)에 대한 범위(3..5), 경도 차원(LongitudeDimension)에 대한 범위(55..65), 자동차 브랜드 차원(CarBrandDimension)에 대한 범위(0..1)로 구성될 수 있다. 런타임에 영역을 나타내기 위해 영역 구현(객체)이 인스턴스화된다. 영역의 범위는 시간에 따라 수정될 수 있다.
- '''영역 중첩(Region Overlap)''': 두 영역이 공통으로 갖는 모든 차원에 대해 해당 범위가 중첩되는 경우 두 영역이 중첩된다.
런타임 시 페더레이트는 객체 클래스 속성 및 상호 작용을 구독할 때 영역을 제공할 수 있다. 영역은 속성 업데이트 및 상호 작용을 보낼 때도 사용된다. DDM을 사용하는 경우, 속성 업데이트 및 상호 작용은 영역이 중첩될 때만 전달된다.
영역에 대한 주요 서비스는 다음과 같다.
- CreateRegion (영역 생성): 지정된 차원 집합으로 영역을 생성하는 데 사용된다.
- DeleteRegion (영역 삭제): 영역을 삭제하는 데 사용된다.
- CommitRegionModifications (영역 수정 커밋): 영역에 대한 차원의 범위를 변경하는 데 사용된다.
DDM을 사용하여 속성 업데이트를 교환하기 위한 주요 서비스는 다음과 같다.
- RegisterObjectInstanceWithRegions (영역을 사용하여 객체 인스턴스 등록): 속성과 관련된 영역으로 객체 인스턴스를 등록하는 데 사용된다.
- AssociateRegionsForUpdates (업데이트에 대한 영역 연결): 객체 인스턴스의 속성과 영역을 연결하는 데 사용된다.
- SubscribeObjectClassAttributesWithRegions (영역을 사용하여 객체 클래스 속성 구독): 구독에 사용되는 영역이 속성의 영역과 중첩되는 객체의 속성을 구독하는 데 사용된다.
DDM을 사용하여 상호 작용을 교환하기 위한 주요 서비스는 다음과 같다.
- SubscribeInteractionClassWithRegions (영역을 사용하여 상호 작용 클래스 구독): 구독에 사용되는 영역이 상호 작용의 영역과 중첩되는 상호 작용을 구독하는 데 사용된다.
- SendInteractionsWithRegions (영역을 사용하여 상호 작용 전송): 연관된 영역과 함께 상호 작용을 전송하는 데 사용된다.
4. 1. 7. 지원 서비스
HLA 지원 서비스는 HLA 인터페이스 사양의 10장에서 설명하고 있으며,[5] 여러 지원 서비스를 제공한다. 여기에는 다음이 포함된다.- 위 서비스 호출에 사용될 핸들(참조)을 얻는 것.
- 특히 권고(알림)에 대한 다양한 런타임 스위치를 설정하는 것.
- 콜백 전달 제어.
4. 2. 관리 객체 모델 (MOM)
관리 객체 모델(MOM)은 HLA 인터페이스 명세서 11장에 설명된 대로,[5] 연합 관리를 위한 서비스를 제공한다. MOM 객체와 상호작용은 MIM이라는 특수한 FOM 모듈에 정의되어 있으며, RTI에 의해 자동 로드된다.MOM의 주요 기능은 다음과 같다.
- 페더레이트 속성 나열 및 검사
- 연합 속성 검사
- 현재 FOM 및 FOM 모듈 내용 가져오기
- 시간 관리 상태 검사
- 페더레이트의 발행 및 구독 검사, 수정
- 특정 성능 수치 검사
- 어떤 페더레이트가 어떤 HLA 서비스를 호출하는지 검사
- 동기화 지점 상태 검사
5. 객체 모델 템플릿 (OMT)
객체 모델 템플릿(OMT)은 연합 객체 모델(FOM) 및 시뮬레이션 객체 모델(SOM)을 설명하는 데 사용되는 템플릿이다.[1] FOM과 SOM은 표 형식 또는 XML을 사용하여 표현할 수 있는데, XML 형식은 FOM을 RTI에 로드할 때 사용된다.[1]
이전 버전의 HLA에서는 FOM이 모놀리식 방식이었지만, 현재 버전의 표준은 모듈식 FOM을 지원한다. 따라서 정보 교환의 여러 측면을 다루는 여러 모듈을 RTI에 제공할 수 있다.[1]
표준에는 여러 가지 미리 정의된 클래스, 데이터 유형, 차원 및 전송 유형이 제공되며, 이들은 HLAstandardMIM.xml FOM 모듈에서 확인할 수 있다. 미리 정의된 개념에는 HLA 접두사가 붙는다(예: HLAobjectRoot 및 HLAunicodeString).[1]
OMT에는 세 가지 XML 스키마가 있다.
- OMT DIF XML 스키마는 OMT 문서가 기본적인 OMT 형식을 따르는지 확인하지만, 완전하고 참조 무결성을 갖는지는 확인하지 않는다.
- OMT FDD XML 스키마는 OMT 문서에 RTI에서 사용할 수 있을 만큼 충분한 정보가 포함되어 있는지 확인한다. 이 스키마는 인터페이스 사양에 제공된다.
- OMT 적합성 스키마는 OMT 문서가 완전하고 참조 무결성을 갖는지 확인한다.
5. 1. 구성 요소
OMT는 연합 객체 모델(FOM) 및 시뮬레이션 객체 모델(SOM)을 설명하는 데 사용되는 템플릿이다. FOM과 SOM은 표 또는 XML 형식으로 표현할 수 있는데, XML 형식은 FOM을 RTI에 로드할 때 사용된다.[1]이전 버전의 HLA에서는 FOM이 모놀리식 방식이었지만, 현재 버전의 표준은 모듈식 FOM을 지원한다. 따라서 정보 교환의 여러 측면을 다루는 여러 모듈을 RTI에 제공할 수 있다.[1]
표준에는 여러 가지 미리 정의된 클래스, 데이터 유형, 차원 및 전송 유형이 제공되며, 이들은 HLAstandardMIM.xml FOM 모듈에서 확인할 수 있다. 미리 정의된 개념에는 HLA 접두사가 붙는다(예: HLAobjectRoot 및 HLAunicodeString).[1]
5. 1. 1. 식별 테이블
식별 테이블은 모델에 대한 메타데이터를 제공하여 FOM/SOM 또는 페더레이션의 재사용을 용이하게 한다.| 필드 | 내용 |
|---|---|
| 일반 | 이름, 유형(FOM/SOM), 버전, 수정 날짜, 보안 분류, 공개 제한, 목적, 응용 분야, 설명, 사용 제한 및 사용 내역 |
| 키워드 | 키워드 값 및 사용된 분류 |
| 연락 담당자(POC) | 유형(주 저자/기여자/제안자/스폰서/배포 권한/기술 POC), POC 이름, POC 조직, POC 전화번호, POC 이메일 |
| 참조 | 유형(텍스트 문서/스프레드시트/파워포인트 파일/독립 FOM/종속 FOM/FOM에서 구성됨), 식별(문서 이름 또는 FOM 이름) |
| 기타 | 기타 |
| 글리프(아이콘) | 글리프(아이콘) |

5. 1. 2. 객체 클래스 구조 테이블
객체 클래스 구조 테이블은 HLA 연합에서 객체를 인스턴스화하는 데 사용되는 객체 클래스의 계층 구조(서브클래스/슈퍼클래스)를 나타낸다. 객체 클래스 속성은 이 계층 구조를 기반으로 슈퍼클래스에서 서브클래스로 상속된다. 객체 클래스 트리의 루트는 HLAobjectRoot이다. 객체 클래스의 정규화된 이름의 예시는 HLAobjectRoot.Car.ElectricCar이다.
계층 구조에서 객체 클래스에 대해 지정되는 필드는 다음과 같다.
- 이름
- 게시(Publish/Subscribe/PublishSubscribe/Neither)
5. 1. 3. 속성 테이블
객체 클래스 속성 테이블은 특정 객체 클래스에 사용 가능한 속성을 지정한다. 속성은 상속되므로 객체 클래스는 객체 클래스에 로컬로 정의되거나 직접 또는 간접 상위 클래스에 지정된 모든 속성의 합집합을 갖는다.
속성에 대해 지정되는 필드는 다음과 같다.
| 필드 | 설명 |
|---|---|
| 객체 클래스 이름 | 정의된 객체 클래스 이름 |
| 속성 이름 | |
| 데이터 유형 | 데이터 유형 테이블에 정의됨 |
| 업데이트 유형 | 정적/주기적/조건부/NA |
| 업데이트 조건 | |
| D/A | HLA 소유권 서비스를 사용하여 속성을 매각하거나 획득할 수 있는지 여부 (Divest/Acquire/NoTransfer/DivestAcquire) |
| P/S | 속성을 게시하거나 구독할 수 있는지 여부. SOM에서는 설명된 페더레이트와 관련되며, FOM에서는 전체 연합과 관련됨 (Publish/Subscribe/PublishSubscribe/Neither) |
| 사용 가능한 차원 | |
| 전송 | Reliable/BestEffort/기타 전송 (전송 테이블에 설명됨) |
| 순서 | 속성 업데이트에 대한 전달 순서 (Receive/TimeStamp) |
5. 1. 4. 상호 작용 클래스 구조 테이블

상호작용 클래스는 HLA 연합에서 상호작용을 교환하는 데 사용되는 클래스 계층(서브클래스/슈퍼클래스)을 나타낸다. 상호작용 클래스 매개변수는 이 계층을 기반으로 슈퍼클래스에서 서브클래스로 상속된다. 상호작용 클래스 트리의 루트는 HLAinteractionRoot이다. 상호작용 클래스의 정규화된 이름은 HLAinteractionRoot.CarCommand.Start와 같은 형식으로 표현된다.
상호작용 클래스에는 다음과 같은 필드가 지정된다.
| 이름 | 발행 (발행/구독/발행구독/해당 없음) |
|---|
5. 1. 5. 매개변수 테이블
매개변수 테이블은 주어진 상호 작용 클래스에 사용할 수 있는 매개변수를 지정한다. 매개변수는 상속되므로, 상호 작용 클래스는 해당 클래스에 직접 정의되거나 상위 클래스에 지정된 모든 매개변수를 포함한다.
5. 1. 6. 차원 테이블
차원 테이블의 목적은 속성 및 상호 작용 클래스에 사용되는 DDM 차원을 지정하는 것이다.5. 1. 7. 시간 표현 테이블
시간 관리 서비스에서 사용되는 데이터 유형을 지정하는 것이 목적이다.5. 1. 8. 사용자 제공 태그 테이블
특정 HLA 서비스를 호출할 때 사용자 제공 태그를 제공할 수 있다. 사용자 제공 태그 테이블은 이러한 태그의 데이터 유형을 지정하는 데 사용된다.5. 1. 9. 동기화 테이블
연합에서 사용되는 동기화 지점을 지정하는 것이다.5. 1. 10. 운송 유형 테이블
미리 정의된 두 가지 운송 유형은 HLAreliable과 HLAbestEffort이다.5. 1. 11. 업데이트 속도 테이블
업데이트 속도 테이블은 사용 가능한 최대 업데이트 속도를 지정하는 것을 목적으로 한다.5. 1. 12. 스위치 테이블
RTI 런타임 동작은 여러 개의 미리 정의된 스위치를 사용하여 제어할 수 있다. 스위치 테이블은 이러한 스위치에 대한 초기 값을 제공한다. 일부 스위치는 런타임에도 업데이트할 수 있다.5. 1. 13. 데이터 형식
데이터 형식은 속성, 매개변수, 차원, 시간 표현, 사용자 제공 태그 및 동기화 지점에 사용되는 데이터 형식에 대한 사양을 제공한다. 데이터 형식에는 여섯 가지 범주가 있으며, 각 범주는 별도의 표로 구성된다.6. HLA 규칙
연합체와 참여하는 페더레이트의 책임은 다음과 같다.[12]
# 연합체는 HLA 연합체 객체 모델(FOM)(FOM)을 가져야 하며, HLA 객체 모델 템플릿(OMT)(OMT)에 따라 문서화되어야 한다.
# 연합체에서 FOM의 모든 객체 표현은 RTI가 아닌 페더레이트에 있어야 한다.
# 연합체 실행 중에 페더레이트 간의 모든 FOM 데이터 교환은 RTI를 통해 이루어져야 한다.
# 연합체 실행 중에 페더레이트는 HLA 인터페이스 사양에 따라 RTI와 상호 작용해야 한다.
# 연합체 실행 중에 객체 인스턴스의 속성은 주어진 시간에 하나의 페더레이트만 소유해야 한다.
# 페더레이트는 HLA 시뮬레이션 객체 모델(SOM)(SOM)을 가져야 하며, HLA 객체 모델 템플릿(OMT)에 따라 문서화되어야 한다.
# 페더레이트는 SOM에 지정된 대로 SOM의 객체에 대한 모든 속성을 업데이트 및/또는 반영하고 SOM 객체 상호 작용을 외부로 보내고/거나 받을 수 있어야 한다.
# 페더레이트는 SOM에 지정된 대로 연합체 실행 중에 속성의 소유권을 동적으로 이전 및/또는 수락할 수 있어야 한다.
# 페더레이트는 SOM에 지정된 대로 객체의 속성 업데이트를 제공하는 조건을 변경할 수 있어야 한다.
# 페더레이트는 연합체의 다른 구성원과 데이터 교환을 조정할 수 있는 방식으로 로컬 시간을 관리할 수 있어야 한다.
7. 관련 표준
HLA 표준에는 HLAASCIIchar, HLAunicodeChar, HLAbyte, HLAinteger64time 및 HLAfloat64time과 같이 미리 정의된 여러 단순 데이터 유형이 제공된다. 사용자 정의 단순 데이터 유형을 FOM에 포함하는 것이 일반적이다. 단순 데이터 유형 테이블은 단순 스칼라 데이터 항목을 설명하는 데 사용된다.
7. 1. 기본 객체 모델 (BOM)
기본 객체 모델(BOM, SISO-STD-003-2006)은 SISO가 HLA 시뮬레이션의 재사용성과 구성 가능성을 높이기 위해 제정한 표준이다. 이는 개념 모델을 지정하고 이를 HLA FOM에 매핑하는 방법을 제공한다.[14]8. 대안
분산 모델링 및 시뮬레이션(DM&S) 산업에서 군사용 플랫폼의 실시간 시뮬레이션을 위해 HLA의 가장 흔한 대안은 분산 상호 작용 시뮬레이션(DIS, IEEE 1278.1-2012) 프로토콜이다.[15] 대부분의 HLA RTI 공급업체는 자사 제품에 DIS도 포함하고 있다.[15] HLA 기능과 가장 유사한 미들웨어 애플리케이션(예: 게시 및 구독 기능(P&S))의 경우, 시스템 상호 운용성을 위한 개방형 온-더-와이어 프로토콜을 가진 데이터 배포 서비스(DDS)를 참고한다.[15] DDS는 HLA와 많은 특성을 공유한다.[15]
9. 비판
HLA는 메시지 지향 미들웨어이며, C++(C++) 또는 자바 API로 제공되는 일련의 서비스로 정의된다. 표준화된 통신 프로토콜은 없으며, 연합에 참여하는 구성원들은 동일한 공급업체의 RTI 라이브러리를 사용해야 하고, 일반적으로 동일한 버전의 라이브러리를 사용해야 한다. 이는 경우에 따라 단점으로 인식된다.[16] 대부분의 현재 도구는 소켓을 통한 상호 연결도 제공한다.
참조
[1]
서적
Creating Computer Simulation Systems: An Introduction to the High Level Architecture
Prentice Hall
1999-10-18
[2]
서적
Proceedings of the 29th conference on Winter simulation - WSC '97
[3]
서적
STANAG 4603: Modelling and Simulation Architecture Standards for Technical Interoperability: High Level Architecture (HLA)
NATO
[4]
서적
IEEE Standard for Modeling and Simulation (M&S) High Level Architecture (HLA)— Framework and Rules
https://standards.ie[...]
IEEE Computer Society
2010-08-18
[5]
서적
IEEE Standard for Modeling and Simulation (M&S) High Level Architecture (HLA)— Federate Interface Specification
https://standards.ie[...]
IEEE Computer Society
2010-08-18
[6]
서적
IEEE Standard for Modeling and Simulation (M&S) High Level Architecture (HLA)— Object Model Template (OMT) Specification
https://standards.ie[...]
IEEE Computer Society
2010-08-18
[7]
간행물
HLA Evolved – A Summary of Major Technical Improvements
https://www.sisostds[...]
2008-04
[8]
간행물
Getting started with FOM Modules
https://www.sisostds[...]
2009-09
[9]
간행물
A Management Overview of the HLA Evolved Web Service API
https://www.sisostds[...]
2006-09
[10]
간행물
Developing Fault Tolerant Federations using HLA Evolved
https://www.sisostds[...]
2005-04
[11]
간행물
Building Scalable Distributed Simulations: Design Patterns for HLA DDM
https://www.sisostds[...]
2019-11-13
[12]
서적
RTI 1.3-Next Generation Programmer's Guide Version 4
[[United States Department of Defense|U.S. Department of Defense]]
[13]
웹사이트
High Level Architecture STANAG Development (MSG-033)
https://www.cso.nato[...]
2015-03-03
[14]
문서
SISO BOM Standard
https://www.sisostds[...]
[15]
간행물
A Comparison of HLA and DDS
http://community.rti[...]
Real-Time Innovations
2015-03-03
[16]
웹사이트
RTI Interoperability Issues - API Standards, Wire Standards, and RTI Bridges
https://www.sisostds[...]
2018-03-14
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com
