한국시뮬레이션학회논문지 Vol. 17, No. 1, pp. 43-52 (2008. 3) IEEE 1516 HLA/RTI 표준을만족하는시간관리서비스모듈의설계및구현 홍정희 1 안정현 1 김탁곤 1 Design and Implementation of Time Management Module for IEEE 1516 HLA/RTI Jeong Hee Hong Jung hyun Ahn Tag Gon Kim ABSTRACT The High Level Architecture (HLA) is the IEEE 1516 standard for interoperation between heterogeneous simulators which are developed with different languages and platforms. Run-Time Infrastructure (RTI) is a software which implements the HLA Interface Specification. With the development of time management service of RTI, it is necessary to consider an efficient design approach and an algorithm of Greatest Available Logical Time (GALT) computation. However, many time management services of existing RTIs have difficulty in modification and extension. Although some RTIs avoid this difficulty through modular design, they comply with not IEEE 1516 HLA/RTI but HLA 1.3. In addition, a lot of RTIs made use of well-known Mattern's algorithm for GALT computation. However, Mattern's algorithm has a few limitations for applying to IEEE 1516 HLA/RTI. This paper proposes a modular design and an implementation of time management service for IEEE 1516 HLA/RTI. We divided th time management service module into two sub-modules: a TIME module and a GALT module and used Mattern's algorithm improved for IEEE 1516 HLA/RTI. The paper also contains several experimental results in order to evaluate our time management service module. Key words : IEEE 1516, HLA, RTI, Time management, Modular design, GALT calculation algorithm 요 HLA 는이기종시뮬레이터간의연동을위한상위레벨개념으로서 IEEE 1516 표준이며 Run-Time Infrastructure (RTI) 는이를구현한라이브러리형태의소프트웨어이다. RTI 의시간관리서비스를개발함에있어효율적인설계와 GALT 계산알고리즘은반드시고려해야하는사항이다. 그러나기존의많은 RTI 의시간관리서비스는수정과확장이용이하지않다. 몇몇 RTI 가이러한단점을극복하기위하여모듈화설계방안을제안하고있지만이들은 IEEE 1516 HLA/RTI에적합하도록설계및구현된것이아니라 HLA 1.3 을위한것이었다. 많은 RTI 는 GALT 계산알고리즘으로분산시뮬레이션에서널리알려진 Mattern 의알고리즘을이용하고있다. 그러나 Mattern의알고리즘을 IEEE 1516 HLA/RTI 에적용시키기에는몇가지제약사항이존재한다. 본논문은 IEEE 1516 HLA/RTI 를만족하는시간관리서비스의모듈화설계를제안하고이를바탕으로구현한다. 시간관리서비스모듈을 TIME 모듈과 GALT 모듈로나누는설계방안을제안하고 GALT 계산알고리즘으로는 Mattern 의알고리즘을수정 보완하였다. 그리고제안한설계방안대로구현한시간관리서비스모듈의성능을살펴보기위하여실험을수행하고그결과를분석하였다. 주요어 : IEEE 1516, HLA, RTI, 시간관리서비스, 모듈화설계, GALT 계산알고리즘 약 * 본연구는과학재단특정기초연구(R01-2006-000-111180) 지원으로수행되었다. 2008년 3월 12 일접수, 2008년 3월 24일채택 1) 한국과학기술원전자전산학과주저자 : 홍정희교신저자 : 홍정희 E-mail; jhhong@smslab.kaist.ac.kr 제17권제1호 2008년 3월 43
홍정희 안정현 김탁곤 1. 서 론 High Level Architecture(HLA) 는이기종시뮬레이터 간의연동을위한 IEEE 1516 표준이며 Run-Time Infrastructure(RTI) 는이를구현한라이브러리형태의소프 트웨어이다 [1-3]. RTI 에서시간관리서비스는시뮬레이터사이에서시 간동기화를위해중요한부분이다. 시간관리서비스는 페더레이트의정책을결정하고각페더레이트의시간진행을관리한다. 페더레이트의정책은레귤레이팅(Regulating) 과컨스트레인드(Constrained) 의조합으로이루어질수있다. 레귤레이팅페더레이트는 Time-Stamp Order(TSO) 메시지를보낼수있으며, 컨스트레인드페더레이트는 TSO 메시지를시간이감소하지않는순서로수신한다. 시간인과성 (Time Causality) 를유지하기위하여컨스트레인드페더레이트는 Greatest Available Logical Time (GALT) 보다큰시간으로는시간진행을할수없다. 즉, GALT는페더레이트가안전하게진행할수있는최대시간을의미한다. HLA는구현물인 RTI에대해특정한프로그래밍언어나구조를명시하고있지않으며현재많은 RTI가배포되어있다. 그러나각각의 RTI는그설계구조나구현에대해서공개하지는않고있다. 몇몇의 RTI는그내부를공개하고있으나시간관리서비스가 RTI에임베디드되어있음으로인해시간관리서비스만을수정하거나확장하기에는어려운구조를취하고있다. 이러한결점을피하기위해본논문에서는모듈화된설계를취하고있다. 모듈화는수정 유지보수의용이성, 재사용성을높여준다. 현재알려진바로는 IEEE 1516 표준에맞는 RTI를이와같은방법으로설계한예는없다. 본논문은이와같이개발한 RTI를 SMSRTI [4] 라부르며본논문에서는 SMSRTI 의한부분인시간관리서비스모듈의설계와구현에대해서다루고자한다. 시간관리서비스모듈을설계및구현시고려해야하는두가지사항은 GALT 계산알고리즘과효율적인설계방안이다. 먼저, GALT 계산알고리즘은시간관리서비스의성능에상당한영향을미치는요소로서본논문에서는많은 RTI가기반으로사용하고있는 Mattern의알고리즘 [5] 을이용한다. Mattern의알고리즘이분산시뮬레이션에서널리알려진알고리즘이기는하나 IEEE 1516 HLA/RTI에적용함에있어몇가지제약사항이존재한다. 본논문에서는이러한제약사항을극복하기위하여 Mattern의알 고리즘을수정 보완하였다. 다음으로시간관리서비스모듈의효율적인설계를위하여시간관리서비스모듈을 TIME 모듈과 GALT 모듈로나눔으로써모듈화된설계프레임워크를구축하였다. 시간관리서비스모듈내의두개의모듈과 SMSRTI 내의다른서비스모듈과의상호작용을위하여인터페이스를정의하고두모듈사이의인터페이스도정의하여재사용성을높이고수정을용이하게하였다. 앞서언급한바와같이 GALT 계산알고리즘은시간관리서비스의성능에있어매우중요한부분이다. 이러한여러GALT 계산알고리즘을적용하고비교하고자할때, 우리의시간관리서비스모듈은 GALT 모듈만을교체함으로써그수고를덜어준다. 이는시간관리서비스모듈의두모듈이서로독립적으로동작하며 TIME 모듈은완벽히재사용될수있기때문이다. 본논문의구성은다음과같다.2절에서는 HLA에대해서간략히살펴보고자한다.3절에서는 Mattern의알고리즘에대해살펴보고본논문에서수정한알고리즘에대해서기술한다. 그리고 4절에서는시간관리서비스모듈의설계에대해언급하며 5절에서는개발된시간관리서비스모듈의정확도와성능을측정하기위해수행한실험에대해서살펴본뒤결론을맺는다. 2. High Level Architecture 2.1 High Level Architecture(HLA) 미국방성에서제안된 HLA는이기종시뮬레이터간의연동을위한상위레벨개념으로서 2000년도에 IEEE 1516 표준으로채택되었다.HLA는 HLA프레임워크와규칙 (HLA Framework and Rules) [1], 페더레이트인터페이스명세 (Federate Interface Specification) [2] 그리고객체모델템플릭 (Object Model Template - OMT) [3] 의세가지로정의된다. 먼저, HLA 프레임워크와규칙은페더레이션(Federation) 에포함되는구성요소들의역할과상호관계에관한전반적이고기본적인 10 개의규칙들이다. 페더레이트인터페이스명세는각페더레이트 (Federate) 와RTI 간의기능적인터페이스에관한규약으로 6가지의서비스관리영역으로나누어기술하고있다.RTI는페더레이트인터페이스명세를시스템기종및프로그램언어별로라이브러리형태로구현한것이다. 마지막으로 OMT는페더레이션을구성하는페더레이트들간에이루어지는공통데이터영역을구조적, 기능적으로서술하는데사용된다. 페더 44 한국시뮬레이션학회논문지
IEEE 1516 HLA/RTI 표준을만족하는시간관리서비스모듈의설계및구현 레이션을구성하는페더레이트들사이의공유데이터교환구조를서술하는 FOM(Federation Object Model) 과시뮬레이션시스템이페더레이션에제공하는기능을표현하는 SOM(Simulation Object Model), 그리고 MOM (Management Object Model) 으로구성된다. 2.2 Time Management Service 분산시뮬레이션에서시간관리서비스의가장큰목적은각페더레이트의시간진행이나메시지의송수신에있어서인과관계(Causality) 를보장해주는것이라고할수있다. 페더레이션내에서시간은항상증가하는방향으로진행되어야하는데, 페더레이션에참여하고있는페더레이트의현재시간은서로다르기때문에페더레이션시간축에있는각페더레이트의시간진행을조정해야할필요가있다. 이를통해페더레이트들에게전달되는정보는원인과결과가정확하고순차적이어야한다 [6]. 즉, 시간관리서비스는페더레이션내의논리시간진행과 Time-Stamp 데이터가전달되는순서를조정한다. 이러한시간관리서비스에서정의되는메시지의유형, 시간관리정책, 시간진행방법그리고시간진행과메시지처리에있어중요한변수가되는 GALT의계산에대해서살펴본다. 페더레이트가수신하는메시지는 RO(Receive Order) 메시지와 TSO 메시지로나눠질수있다. 전송한순서와메시지의시간정보유무에관계없이페더레이트에수신된순서대로전달되어처리되는메시지를 RO 메시지라고하며이메시지를처리하는것은논리시간의흐름에의해영향을받지않는다.RO메시지와는달리시간적의미를갖는메시지로수신한순서에관계없이 Time-Stamp 순서대로처리해야하는메시지를 TSO 메시지라고하며이메시지는페더레이트의논리시간의흐름에영향을받는다. 위에서설명한메시지를전송하고수신하는것은페더레이트가어떠한정책을가지고있느냐에달려있다. 레귤레이팅페더레이트는컨스트레인드페더레이트의시간진행을제어한다. 일반적으로페더레이트는 Regulating, Constrained, Regulating and Constrained, Non- Regulating and Non-Constrained 의 4가지중에서하나의정책을택할수있다. 레귤레이팅정책을택한페더레이트는 TSO 메시지를생성할수있다. 이때, 생성되는 TSO 메시지의 Time-Stamp는 Lookahead 라는값에영향을받는다.TSO메시지의 Time-Stamp 는 현재시간 + Lookahead 보다이전시간이어서는안된다. 즉, 현재 시간 + Lookahead 보다작은 TSO 메시지는발생시키지않는다는것이다. Lookahead 값은페더레이트가레귤레이팅을선택하는시점에서반드시정의해야하나시뮬레이션도중에변경시킬수있다. 컨스트레인드정책을택한페더레이트는 TSO 메시지를수신할수있다. 컨스트레인드정책을취하지않는페더레이트도다른레귤레이팅페더레이트가보낸 TSO 메시지를받기는하지만 TSO 메시지를마치 RO 메시지인것처럼처리한다. 레귤레이 팅페더레이트가 Lookahead라는정보를가지고있는것 처럼컨스트레인드페더레이트는시간진행을위한값으로GALT 라는정보를가지고있다. 여기서 GALT 란, 페더레이트가받을수있는 TSO 메시지중에서가장최근의시간값이다. 즉, 자신을제외한모든레귤레이팅페더레이트들의 현재시간 + Lookahead 값중최소값이되는것이다. 컨스트레인드페더레이트는 GALT 이후로는시간진행을할수없다. 왜냐하면 GALT 이후의시간까지진행해버리고난후에그시간보다작은 TSO 메시지가오지않는다는것을보장할수없기때문이다. 즉, GALT는페더레이트에게 GALT값보다 Time-Stamp 가작은 TSO 메시지는이후에는오지않는다는것을보장해주는것이다. 그림 1은페더레이트정책에관한예를보여주고있다. 3. GALT 계산알고리즘 GALT는페더레이트가시간인과성을깨지않고안전하게진행할수있는최대시간을의미한다. 수식으로표현하면다음과같다. GALT = min{ 페더레이트 F i 의현재시간 + 페더레이트 F i 의 Lookahead } GALT는 HLA 1.3 [7] 에서정의하고있는 Lower Bound 그림 1. 페더레이트정책 제17권제1호 2008년 3월 45
홍정희 안정현 김탁곤 Time Stamp(LBTS) 와일맥상통하며 GALT 계산은시간 관리서비스에있어서는필수적인요소이다. GALT 를계산함에있어서가장중요한것은과도메 시지(Transient message) 문제를해결하는것이다. 과도 메시지란보내는페더레이트에서메시지를보냈으나수신하는쪽에서네트워크상의시간지연등의이유로아직수신하지못한메시지이다 [8]. 그러나이러한메시지는시간지연은있을지라도정확하게도착하는메시지이므로 GALT를계산함에있어서과도메시지문제를고려하지않는다면시간인과성을위배하는메시지가도착할수도있다. 따라서 GALT 계산알고리즘은보내고받는모든메시지를고려해야만한다. 현재까지과도메시지문제를해결하기위한많은알고리즘이제안되어왔다. Samadi가제안한알고리즘 [9] 은메시지를받은프로세스가메시지를보낸프로세스에승인(Acknowledgement) 메시지를보내도록함으로써해결하였으나 Unreliable 채널과 non-fifo 채널에적용될수있도록제안되었기때문에모든메시지에대해쌍을이루는승인메시지가필요하므로네트워크상에서상당한트 [10] 래픽을유발할수있다.Lin과Lazowska의알고리즘은 Samadi 의알고리즘을개선한것으로모든메시지에대해승인메시지를보내는것대신에링크드리스트데이터구조를이용하는방법을제안했으나각프로세스는프로세스들사이에서주고받는메시지쌍을위해같은데이터구조로유지해야하므로각프로세스의 Fan-in/Fanout의수가많아지면상당한양의메모리가필요할뿐만아니라처리하는데걸리는부하도늘어나게된다. 그리고가장널리사용되고있는 Mattern의알고리즘 [5] 은 Coloring Scheme과벡터카운터방법을이용하여주고받은메시지를세도록하여해결하였다. 본논문에서사용하고있는알고리즘은분산시뮬레이션에서가장많이사용되고있는Mattern의알고리즘에기반하고있다. 그러나 Mattern의알고리즘을 HLA의시간관리서비스를위하여바로적용하기에는부합되지않는사항이존재하므로이를개선하고추가적인고려사항또한고려하여 HLA/RTI에적합하도록 Mattern 의알고리즘을수정하였다. 3.1 Mattern의알고리즘 Mattern의알고리즘은과도메시지문제를해결하기위해가장널리알려진알고리즘중의하나로 Coloring Scheme 과벡터카운터방법을제안하였다. Mattern은설명의편의를위해각프로세스가링토폴로지를이루고 있다고가정하고있다. Coloring Scheme 은각각의프로세스는색깔을띠고 있으며프로세스가보내는메시지는메시지가보내질때의프로세스의색깔을따른다고가정하고있다. 즉, 빨간색의프로세스가보내는메시지는빨간색메시지라는것이다. 프로세스가다른프로세스로부터컨트롤메시지를받을때, 그지점을컷지점(Cut Point) 이라고하며그점을기점으로프로세스의색깔을바꾼다. 각프로세스의컷지점을이은것을컷(Cut) 이라고한다. 벡터카운터방법의기본개념은컷을통과하는메시지, 즉과도메시지를센다는것이다. 이는 Coloring Scheme 에기반하여각프로세스가주고받는메시지를센다는것을의미한다. 이를이용하여과도메시지문제를해결할때최대한 2 개의컷만있으면된다. 첫번째컷이전의프로세스의색깔을빨간색이라고하고첫번째컷이후에프로세스가초록색으로바뀐다고하자. 이때, GALT 계산을위해고려해야하는과도메시지는빨간색메시지가된다. 위에서설명한바와같이메시지의색깔은보내는프로세스의색깔을따르므로빨간색메시지는첫번째컷이전에보내진메시지이다. 따라서첫번째컷이후에는빨간색메시지를발생시킬수없으므로첫번째컷에서각프로세스로보내진빨간색메시지가몇개인가의정보를얻을수있다. 벡터카운터방법에서모든각각의프로세스 P i 는자신이보내고받은빨간색메시지를세는벡터카운터 V i 를가지고있다. 이때, 벡터카운터 V i 의길이는총프로세스의개수가된다. 프로세스 P i 가프로세스 P j (i j) 로빨 간색메시지를보낼때마다벡터카운터 V i [j] 를증가시킨다. 즉, V i[j] := V i [j]+1 이된다. 그리고프로세스 P i 가프로세스 P j (i j) 로부터빨간색메시지를받을때는벡터카운터 V i [j] 를감소시킨다. 즉, V i[j] := V i [j]-1 이된다. 컨트롤메시지가가지고있는카운터벡터 C는컨트롤메 시지가링을따라전달되면서각프로세스의벡터카운터 V와더한값을컨트롤메시지의카운터벡터C에저장하여다음프로세스로전달한다. 즉, 프로세스 P i 가컨트롤메시지를받았을때,C:=C+V i 가된다. 프로세스 P i 가다음프로세스로컨트롤메시지를전달하기위해서는 C[i]+V i [i] 0 이라는조건을만족해야한다. 링을따라전달되는컨트롤메시지가한바퀴를다돌아서처음컨트롤메시지를보냈던프로세스로돌아온것을라운드라고한다. 첫번째라운드가끝난후, 컨트롤메시지의카운터벡터 C[i] 는프로세스 P i 의과도메시지의수를의미한다. 만약첫번째라운드에서컨트롤메시 46 한국시뮬레이션학회논문지
IEEE 1516 HLA/RTI 표준을만족하는시간관리서비스모듈의설계및구현 지의카운터벡터 C[i] 가 0 보다크다면, 두번째라운드, 즉두번째컷을필요로하게된다. 두번째라운드에서컨트롤메시지를받은프로세스 P i 는다음프로세스로컨트롤메시지를전달하기위한조건 C[i]+V i [i] 0 을만족시키기위해, 모든빨간색메시지가도착할때까지기다려야만한다. 그러므로두번째라운 드가끝나고나면컨트롤메시지의벡터카운터 C 는필 연적으로 0 이되어과도메시지를모두받은상태가된다. 이때, GALT 값을계산할상태가되었음을의미한다. 그림 2는위에서설명한 Coloring Sceme과벡터카운터방법을이용하여메시지를세는 Mattern의알고리즘의예를보여주고있다. 3.2 수정된 Mattern의알고리즘 Mattern 의알고리즘이널리사용된다할지라도 HLA/RTI 에적용시키기에는몇가지제약사항이존재한다. 본논문에서는그러한제약사항을극복하기위해 Mattern의알고리즘을수정 보완하였다. 본논문에서의알고리즘이 기본적으로는 Mattern 알고리즘과유사하지만, Reliable 채널뿐만아니라 Best-effort 채널도고려하고있다는점 과중앙식구조를취하고있다는점에서크게다르다. 모든메시지는 Reliable 채널즉, TCP/IP를통해서만 전달되는것이아니라 Best-effort 채널즉, UDP/IP를통 해서도전달될수있다. 모든Reliable 또는Best-effort 메시지는 TSO 메시지가될수있다. HLA/RTI의이러한 사항은 Mattern의알고리즘에서는제약사항이될수있 다. 이는Reliable 과Best-effort의두가지유형의채널 은전송도중손실될수있느냐와시간인과성을어길수있느냐에대한특성의차이에서비롯된다. Reliable 메시지는절대손실되지않으며시간이감소하는순서로도착하지않는다. 반면에 Best-effort 메시지는전송도중손실 될수있으며 Time-Stamp 순서의관점에서시간순서대로도착한다는보장이없다. 이러한차이로인한 Mattern 알고리즘의제약사항은그림 3 과같다. 실선으로표현된메시지는 Reliable 방식으로전송되는메시지이며점선으로표현된메시지는 Best-effort 방식으로전송되는메시지라고하자. CASE 1: 전송도중에손실되는메시지가있다.(M 2) CASE 2: 페더레이트의현재시간보다작은 Time- Stamp 를가지는메시지가도착한다.(M 3) 만약 Best-effort 방식으로전송되는메시지도 Mattern 의알고리즘에서사용하는벡터카운터방법을그대로적용할경우 CASE 1의 M 2 처럼전송도중에손실되는경우에과도메시지계산이종료될수없다. 페더레이트 A가페더레이트 B 로부터컨트롤메시지를받은후, 다음페더레이트 C로컨트롤메시지를전달하기위한조건인 C A[A] +V A [A] 가 M 2 의손실로결코0 이될수가없기때문이다. 그러므로페더레이트 A는페더레이트 C로컨트롤메시지를전달하지못하고계속메시지 M 2 를기다리게되는것이다. 이렇게되면 GALT 계산을하지못하게되므로페더레이트의시간진행또한할수없게되어데드락상황이발생하게된다. 이를해결하기위해본논문에서는 Best-effort 방식으로메시지를전송할때는페더레이트에서메시지카운터벡터 V 에그정보를반영하지않도록하였다. 즉, 메시지를세지않는다는것이다. 반대로메시지를받았을경우에도마찬가지로메시지를세지않는다. 이렇게처리함으로써 CASE 1과같은상황으로인한데드락을피할수있게된다. 그러나위와같이처리하였을경우 CASE 2와같은문제가발생할수있다. 이미 GALT를계산한이후에도착한 Best-effort 방식으로전송된 TSO 메시지의 Time-Stamp 가현재시간보다작은값을가지는경우이다. 이를해결하기위해본논문에서는메시지 M 3 처럼시 그림 2. Mattern의알고리즘그림 3. Mattern의알고리즘의제약사항 제17권제1호 2008년 3월 47
홍정희 안정현 김탁곤 간인과성을위배하는메시지가도달할경우메시지큐에서삭제시킴으로써인과성을보장하도록한다. 즉, 메시지가전송도중에손실된것처럼처리해주는것이다. 이처럼처리를하더라도무방한이유는바로 Best-effort 전송방식의특성때문이다. 이는전송도중에메시지가손실될수도있다는가정때문이며, 만약시뮬레이션에서중요한정보를가지는메시지라면반드시 Reliable 방식으로전송했을것이라는이유때문이다. 위와같이 Mattern 의알고리즘을수정 보완하여더이 상제약사항이존재하지않음을알수있다. 4. 시간관리서비스모듈의아키텍처 4.1 SMSRTI의전체아키텍처 SMSRTI는그림 4에서보듯이 DMSO RTI 1.3NG [7], prti [11],MÄKRTI [12],DRTI [13] 와마찬가지로분산아키텍처를취하고있으며, RTIExec(RTI Execution), Fed- Exec(Fedeation Execution), 페더레이트로이루어져있다. RTIExec 는페더레이션의생성/ 소멸을관리하고 FedExec 와통신한다.FedExec는개별페더레이트가페더레인션에참가/ 탈퇴하는것과더불어페더레이션에참가한페더레이트들의정보를관리한다. 각각의 FedExec는다른 Fed- Exec 와는독립적으로동작한다. 페더레이트는사용자코드, Local RTI Component(LRC) 로이루어져있으며, LRC는 RTI ambassador, 페더레이트 ambassador 그리고각각의서비스모듈로구성되어있다. 사용자가 HLA Application Programming Interface(API) 를호출하면 RTI ambassador 에서호출된서비스의처리를위해 LRC로메시지를보낸다.LRC는필요할경우 FedExec와통신함으로써서비스처리를하지만, 대부분의경우는 LRC 내부에서처리한다. 콜백이되는경우는 LRC가페더레이트 ambassador 로그메시지를전달한다. FedExec와개별페더레이트의 LRC 가주고받는메시지는네트워크를통해서전달된다. 이때, 메시지패킷의전송방식은 Reliable 방식또는 Best-effort 방식을취한다. 이는 3절에서언급한대로 Reliable 방식은 TCP/IP 와같은경우이고, Best-effort는 UDP/IP 와같은경우이다. 4.2 시간관리모듈의프레임워크그림5는시간관리서비스모듈의프레임워크를보여주고있다. 굵은실선으로표시된부분이전체 SMSRTI 중에서시간관리서비스를나타낸다. 본논문에서제안하고있는시간관리서비스모듈을 TIME 모듈과 GALT 모듈로나뉘어진다. 먼저,TIME모듈은페더레이트가정한정책을설정하고시간진행을위한 API 서비스에대한처리를담당하고있다. IEEE 1516 에서페더레이트의정책을설정하는 API 는 Enable Time Regulation, Disable Time Regulation, Enable Time Constrained, Disable Time Constrained가있으며시간진행을위해서는 Time Advance Request, Time Advance Request Available, Next Message Request, Next Message Request Available, Flush Queue Request가있다. 다음으로, GALT 모듈은 GALT 계산을주기적으로수행하는것으로 3절에서설명한수정된 Mattern의알고리즘을이용하고있다. GALT 계산알고리즘의구현을위하여중앙식구조를택하였다. 중앙식구조는시뮬레이션도중에페더레이트가참가하거나탈퇴하는경우와 Besteffort 방식으로메시지를전송하는경우를처리하기가용이하기때문이다. 두모듈사이의메시지교환을위하여인터페이스를정의하고시간관리서비스모듈과 SMSRTI 내의다른모듈과의상호작용을위해서도인터페이스를정의하였다. 그림 4. SMSRTI의전체아키텍처 그림 5. 시간관리서비스모듈의프레임워크 48 한국시뮬레이션학회논문지
IEEE 1516 HLA/RTI 표준을만족하는시간관리서비스모듈의설계및구현 페더레이트의 LRC와 FedExec가주고받는프로토콜도 정의하였다. 시간관리서비스모듈의앞서설명한두개의모듈로나누어설계및구현함으로써재사용성을높이고수정및유지보수를쉽게할수있다는장점을얻을수있다. 그리고다양한 GALT 계산알고리즘을각각의 GALT 모듈로개발하여교체함으로써다양한알고리즘들의성능을비교해볼수있다. 4.3 TIME 모듈앞서설명한대로 TIME 모듈은페더레이트의정책을결정하고시간진행요청서비스를처리해준다.TIME모듈을설계하기위해모든시간관리서비스 API에대해 Unified Modeling Language(UML) 2.0의시퀀스다이어그램으로모델링한후, Discrete Event Systems Specification(DEVS) 의상태천이도로표현하여구현하였다. 그림 6은 LRC의 TIME 모듈의상태천이도이다. 시간진행요청서비스중하나인 Time Advance Request(TAR) 를예를들어보면다음과같다. (1) 사용자는 RTI ambassador에 TAR을호출한다. (2) 예외사항을체크한후, RTI ambassador는 Time AdvancePending 플래그를설정한다. (3) RTI ambassador 는LRC의TIME 모듈과TSO 큐 로 TIME_ADVANCE 메시지를보낸다. (4) TIME 모듈은 IDLE 상태에서 TAR_WAIT 상태 로천이한다. (5) TSO 큐는 GALT 보다작은 Time-Stamp를가지 는메시지를전달한다. (6) 시간진행요청된값이 GALT 보다작으면 TSO 큐 는 TIME 모듈로 DONE 메시지를보낸다. 그렇지 않다면, GALT가요청된시간보다커질때까지기 다린다. (7) TIME 모듈이 DONE 메시지를받으면페더레이트 ambassador 로 TIME_ADVANCE_GRANT 콜백 메시지를보낸다. (8) 페더레이트 ambassador는사용자에게 Time Advance Grant(TAG) 콜백을보낸다. 4.4 GALT 모듈 GALT 모듈은 TIME 모듈과는독립적으로 GALT 계산을수행한다. 수정된 Mattern의알고리즘을구현하기위해중앙식구조로설계하였다.FedExec가중앙컨트롤러로서컨트롤벡터카운터 C를가지며 GALT 계산의시작을모든페더레이트에게알려주는역할을담당한다. 각각의페더레이트 F i 는두개의벡터카운터 V i1 과 V i2 를가지며 V i1 은이전컷에서보내고받는메시지를세고 V i2 는이전컷과현재컷사이에서보내고받는메시지를센다. GALT 계산과정을살펴보면아래와같으며그림 7 은이런절차를 UML 2.0의시퀀스다이어그램으로표현한것이다. (1) FedExec가주기적으로 GALT 계산을시작하기위해모든페더레이트로 REQ_CTRL_MSG 메시지를보낸다. (2) 각페더레이트는컷지점을설정하고컷을통과하는메시지를센다. (3) 각페더레이트는 REQ_CTRL_MSG 메시지에실려있는 GALT 플래그가 1이면자신을제외한페더레이트들의시간값중최소값을새로운 GALT 값으로계산한다. (4) 페더레이트 F i 의벡터카운터 V i [i] 가컨트롤벡터카운터 C[i] 보다작거나같으면, 페더레이트 F i 는 그림 6. LRC의 TIME 모듈의상태천이도그림 7. GALT 계산의시퀀스다이어그램 제17권제1호 2008년 3월 49
홍정희 안정현 김탁곤 FedExec로 ACK_CTRL_MSG 메시지를보낸다. 그렇지않으면 V i [i] 가 C[i] 보다작거나같아질때 까지기다린다. 이는 Mattern의알고리즘에서다음 프로세서로컨트롤메시지를넘기는것과같은조건이다. (5) 페더레이트 F i 는 V i1 과 V i2 를교환하고,V i2 를 0으로초기화한다. (6) FedExec가모든페더레이트로부터 ACK_CTRL _MSG 메시지를받으면메시지의정보를통합한다. (7) C와모든V i1 의합이 0이면 GALT 플래그를 1로설정한다. (8) FedExec는 REQ_CTRL_MSG 메시지의정보를갱신하고모든페더레이트에게설정된주기가되면 GALT 계산시작을알리는 REQ_CTRL_MSG 메시지를전송한다. 위의과정중 (4) 에서페더레이트가 FedExec로보내는 ACK_CTRL_MSG 메시지는페더레이트의현재시간, 벡터카운터 V 1,V 2 를담고있다. 이때레귤레이팅페더레이트이면현재시간 + Lookahead 값을보내고, 그렇지않으면무한대의값을보낸다. Mattern과달리중앙식구조를취함으로써페더레이트에도착하는컨트롤메시지가순차적으로도달하는것이아니라모든페더레이트에동시에도달한다. 중앙식구조로모델링함으로써얻을수있는이점은설계의복잡도가줄어든다는것과페더레이트의정보관리가용이하다는것이다. 또한, 시뮬레이션도중에페더레이트가참가하거나탈퇴하는경우에대해서도처리가간편해진다. GALT 계산이시작된이후에페더레이션에참가하고자하는페더레이트는바로참가하지못하고현재진행중인 GALT 계산이끝난이후에참가하도록한다. 이는늦게참가하는페더레이트가현재시뮬레이션되고있는페더레이트들과같은색깔을띄어야하기때문이다. 시뮬레이션도중에탈퇴하고자하는페더레이트는언제든지탈퇴할수있다. 이는페더레이트가탈퇴하고자할때FedExec에게알림으로써이페더레이트와관련된정보를모두삭제하도록하면되기때문이다. 컴퓨터로실험환경을구성하였으며 1대에는 RTI와페더레이션을수행시키고나머지 6대에각각의페더레이트프로그램을수행시켰다. 그림 8은실험환경을보여주고있다. 실험에참여하는페더레이트는모두레귤레이팅이면서컨스트레인드정책을취하고있다. 실험은 GALT 계산주기, Lookahead, 참여하는페더레이트의수, 페더레이트가주고받는메시지의수를실험의파라미터로사용하여수행하였다. 페더레이션에서각각의페더레이트는시간진행을위하여 TAR 서비스를이용하고 TSO 메시지전송을위해 Send Interaction 서비스를사용하며메시지는 Reliable 방식으로전송한다. 시간진행요청에서시간간격은 2이며 Lookahead는 1.9 를기본값으로설정하였다. 실험에서측정한값은 TAR 서비스를호출한뒤 TAG 콜백을받기까지의시간이다. 시간관리서비스모듈의성능은 GALT 계산주기에큰영향을받는다. 그림 9(a) 에서보듯이 GALT 계산을자주할수록페더레이트가시간진행을하지못하고기다리는시간이줄어든다. 또한, Lookahead가증가할수록다른컨스트레인드페더레이트가시간진행에있어허용되는시간이늘어날것이므로 TAR 요청에대한 TAG를받는시간이단축될것이다. 그러나시뮬레이션속도를향상시키기위하여 Lookahead 값을한없이증가시킬수있는것은아니다. Lookahead 값은레귤레이팅페더레이트가보내는 TSO 메시지의 Time-Stamp에영향을미치게되므로시뮬레이션상황에따라정해지는값이기때문이다. 그림 9(b) 는참여하는페더레이트의수와주고받는메시지수가늘어날수록시뮬레이션시간이증가함을보여준다. 페더레이트의수가증가할수록 GALT 계산을위해사용되는컨트롤메시지의수가증가하며하나의라운드로과도메시지를해결할수있는가능성이줄어들것이다. 그리고보내는메시지의수가증가하면 GALT 계산에있어과도메시지의수가증가할수있다는것을의미한다. 5. 실험결과및분석 본논문에서제안한시간관리서비스를모듈화하여설계하고구현한시간관리서비스모듈의성능을알아보기위하여수행한실험에대한결과를살펴본다.7대의 그림 8. 실험환경 50 한국시뮬레이션학회논문지
IEEE 1516 HLA/RTI 표준을만족하는시간관리서비스모듈의설계및구현 감사의글 본논문은과학재단특정기초연구 (R01-2006-000-111180) 의지원으로 Collaborative BPMS 환경에서모델링, 설계, 분석, 구축을위한 BPR 도구로활용될수있는 HLA/ RTI 기반의 BPM middleware 및요소기술개발 과제의연구결과이다. 참고문헌 6. (a) (b) 그림 9. 실험결과 결 론 본논문에서 IEEE 1516 HLA/RTI의 6가지서비스중 에서시간관리서비스를모듈화하여설계하고구현하는방안을제안하였다. 이로인해 HLA/RTI의시간관리 API를서비스하는모듈을재사용할수있으며 GALT 계산모듈은다른알고리즘을적용하기가용이해진다. GALT 계산알고리즘으로분산시뮬레이션에서널리사용되고있는 Mattern 의알고리즘을 HLA/RTI에적합하도록수정 보완하였다. 또한시간관리서비스모듈의설계 를위하여내부모듈간의인터페이스뿐만아니라 SMSRTI 내의다른모듈과의상호작용을위한인터페이스를정의하고 LRC와 FedExec 사이의프로토콜도정하였다. 개발된시간관리서비스모듈의성능을살펴보기위하여실험을수행하고그결과예상된경향을보임을확인했다. 다양한 GALT 계산알고리즘을비교하여최적화된알고리즘을적용시켜시간관리서비스모듈의성능을개선하는것이추후과제로남아있다. 1. IEEE, IEEE Standard for Modeling and Simulation (M&S) High Level Architecture (HLA) - Framework and Rules, Std 1516, 2000. 2. IEEE, IEEE Standard for Modeling and Simulation (M&S) High Level Architecture (HLA) - Federate Interface Specification, Std 1516.1, 2000. 3. IEEE, IEEE Standard for Modeling and Simulation (M&S) High Level Architecture (HLA) - Object Model Template (OMT), Std 1516.3, 2000. 4. J. H. Kim, Proposal of High Level Architecture Extension and Run-Time Infrastructure Implementation, Ph. D. Thesis, KAIST, Daejeon, Korea, 2006. 5. F. Mattern, Efficient Distributed Snapshots and Global Virtual Time Algorithm for Non-FIFO System, Journal of Parallel and Distributed Computing (JPDC), Vol.18, No. 4, pp. 423-434, August, 1993. 6. L. Lamport, Time, Clocks and Ordering of Events in a Distributed System, Comm. Of the ACM 21, pp. 558-565, July, 1978. 7. Defense Modeling and Simulation Office (DMSO), High Level Architecture Run-Time Infrastructure RTI 1.3NG Programmer's Guide, Version 5, 1999. 8. R. M. Fujimoto, Parallel and Distributed Simulation Systems, John Wiley and Sons, Inc. 2000. 9. B. Samadi, Distributed Simulation, Algorithms and Performance Analysis, Ph. D. Thesis, University of California, Los Angeles (UCLA), 1985. 10. Y-B. Lin and E. D. Lazowska, Determining the Global Virtual Time in a Distributed Simulation, in Proc. of the 1990 International Conference on Parallel Processing, Vol. 3, pp. 201-209, August, 1990. 11. Pitch Technologies, 2006, http://www.pitch.se/prti.htm. 12. MÄK Technologies, 2006, http://www.mak.com/rti.htm. 13. R. M. Fujimoto, FDK User Guide, Version 3.0, 2003, http://www.ee.gatech.edu. 제17권제1호 2008년 3월 51
홍정희 안정현 김탁곤 홍정희 (jhhong@smslab.kaist.ac.kr) 2005 부산대학교전자전기정보컴퓨터공학부학사 2007 KAIST 전자전산학과석사 2007~현재 KAIST 전자전산학과박사과정관심분야 : HLA/RTI, Time Management, Distributed Simulation 안정현 (jhahn@smslab.kaist.ac.kr) 2005 부산대학교전자전기정보컴퓨터공학부학사 2007 KAIST 전자전산학과석사 2007~현재 KAIST 전자전산학과박사과정관심분야 : HLA/RTI, Data Distribution Management, Distributed Simulation 김탁곤 (tkim@ee.kaist.ac.kr) 1975 부산대학교전기공학과학사 1980 경북대학교전기공학과석사 1988 Univ. of Arizona, 전기및컴퓨터공학과박사 1980~1983 부경대학교통신공학과전임강사 1987~1989 ( 미) 아리조나환경연구소연구엔지니어 1989~1991 Univ. of Kansas 전기및컴퓨터공학과조교수 1991~현재 KAIST 전자전산학과교수 관심분야 : 모델링/ 시뮬레이션이론, 방법론및환경개발, 시뮬레이터연동 52 한국시뮬레이션학회논문지