KR101163323B1 - 통합 모델 설계 기반 통신 프로토콜 개발을 위한 sdl?opnet 모델 변환 방법 - Google Patents

통합 모델 설계 기반 통신 프로토콜 개발을 위한 sdl?opnet 모델 변환 방법 Download PDF

Info

Publication number
KR101163323B1
KR101163323B1 KR1020100080464A KR20100080464A KR101163323B1 KR 101163323 B1 KR101163323 B1 KR 101163323B1 KR 1020100080464 A KR1020100080464 A KR 1020100080464A KR 20100080464 A KR20100080464 A KR 20100080464A KR 101163323 B1 KR101163323 B1 KR 101163323B1
Authority
KR
South Korea
Prior art keywords
model
opnet
sdl
code
generating
Prior art date
Application number
KR1020100080464A
Other languages
English (en)
Other versions
KR20120021856A (ko
Inventor
김태형
김재우
Original Assignee
금오공과대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 금오공과대학교 산학협력단 filed Critical 금오공과대학교 산학협력단
Priority to KR1020100080464A priority Critical patent/KR101163323B1/ko
Publication of KR20120021856A publication Critical patent/KR20120021856A/ko
Application granted granted Critical
Publication of KR101163323B1 publication Critical patent/KR101163323B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

표준 형식 언어인 SDL을 사용하는 설계 및 검증 도구로 가장 널리 사용되고 있는 Tau에 의해 설계된 모델을 가장 우수한 네트워크 성능 평가 도구로 알려진 OPNET 모델으로 변환하는 통합 모델 설계 기반 통신 프로토콜 개발을 위한 SDL-OPNET 모델 변환 방법이 개시된다. 상기 통합 모델 설계 기반 통신 프로토콜 개발을 위한 SDL-OPNET 모델 변환 방법은, SDL 도구에 의해 설계된 SDL 모델을 컴파일하여 C 코드를 생성하는 단계; 상기 컴파일된 C 코드로부터 OPNET 모델 생성에 필요한 정보를 추출하는 단계; 상기 OPNET 모델 생성에 필요한 정보를 OPNET 도구로 매핑하여 OPNET 모델의 골격 코드를 생성하는 단계; 및 상기 OPNET 모델의 골격 코드에 대해 OPNET 시뮬레이션을 위한 설정을 수행하여 OPNET 모델을 생성하는 단계를 포함한다.

Description

통합 모델 설계 기반 통신 프로토콜 개발을 위한 SDL?OPNET 모델 변환 방법{SDL-OPNET MODEL CONVERSION METHOD FOR THE DEVELOPMENT OF COMMUNICATION PROTOCOLS WITH AN INTEGRATED MODEL DESIGN APPROACH}
본 발명은 통신 프로토콜의 설계 방법에 관한 것으로, 더욱 상세하게는, 표준 형식 언어인 SDL(Specification and Description Language)을 사용하는 설계 및 검증 도구로 가장 널리 사용되고 있는 Tau에 의해 설계된 모델을 가장 우수한 네트워크 성능 평가 도구로 알려진 OPNET 모델으로 변환하는 방법에 관한 것이다.
통신 프로토콜은 일반적으로 프로토콜 요구사항으로부터 프로토콜 명세를 작성하고 이 명세를 따르는 프로토콜 프로토타입을 설계한 뒤 최종적으로 프로토콜 제품을 완성하는 과정을 통해 개발된다. 이러한 개발 과정의 각 단계에서 구성된 프로토콜을 대상으로 이전 단계의 요구 사항에 대한 일치여부를 확인하는 시험이나 검증을 수행하고 그 결과를 개발과정에 피드백하여 프로토콜 제품의 정확성과 신뢰성을 확보하게 된다.
프로토콜 제품 개발 시 핵심적인 요구사항은 두 가지로 정리할 수 있다. 첫째는 기능 정확성으로 시스템의 구조 및 동작, 서비스 간의 관계 등 기능 부분에 대한 설계의 정확성이 만족되어야 한다. 둘째는 성능 정확성, 즉 시스템의 설계 요구사항에 부합하는 통계적 성능 요구사항이 만족되어야 한다. 프로토콜 명세는 이러한 기능 및 성능 요구 사항을 정확히 기술하며, 개발된 프로토콜이 이러한 요구사항을 만족시키는지를 검증하기 위하여 형식 언어 및 기능 검증 도구를 통한 기능 검증과 함께 수학적 분석, 실제 성능 측정, 또는 시뮬레이션을 통한 성능 평가를 수행한다. 성능 평가 측면에서는 최근 시스템의 복잡성 및 네트워크 환경의 다양성이 증가함에 따라 정확성과 시험용이성을 함께 만족시킬 수 있는 프로토콜 모델 구현을 통한 시뮬레이션 기법이 널리 사용되고 있다. 그런데 주목할 점은 기능 검증과 성능 검증에 모두 모델 설계를 통한 분석 방법이 주로 사용되고 있지만, 기능 검증 모델과 성능 검증 모델은 대개의 경우 독립적인 모델링 언어와 검증 도구를 사용하여 개별적으로 진행되고 있다는 점이다. 즉, 기능 모델링 및 검증에는 표준 기술 언어인 SDL(Specification and Description Language)을 사용하는 SDL 설계 도구가 주로 사용되고, 성능 모델링 및 검증에는 자체 모델링 기술을 사용하는 OPNET Modeler(이하 OPNET)이나 ns-2와 같은 전문 성능 시험 도구가 주로 사용된다. 이는 지금까지 기능 검증과 성능 검증이 개별적으로 연구되어왔다는 사실을 보여주고 있으며, 실제로 프로토콜 개발 시 기능 검증과 성능 검증 모두를 충실히 수행하는 경우는 흔하지 않다. 기능 검증과 성능 검증을 모두 수행하기 위해서는 동일한 프로토콜에 대하여 중복하여 개별적인 모델링을 수행하고 검증해야 하고, 중복 설계 모델 간의 동일성을 보장해야 하기 때문이다.
프로토콜의 기능 모델과 성능 모델은 서로 다른 목적을 위해 설계되고 설계 대상도 차이가 있지만 프로토콜의 실행 흐름 정보를 공유하기 때문에 상당 부분 서로 중첩될 수밖에 없다. 최근 이러한 점을 고려하여 기능 검증과 성능 검증을 일관성 있는 모델 설계를 통해 연계시키는 통합 설계 기법이 주목받고 있다. 즉, 형식 언어를 통해 먼저 시스템의 기능 모델을 설계하고 기능 모델을 성능 모델로 변환하거나, 기능 모델을 사용할 수 있는 성능 평가 시스템을 구축하는 방법이 그 예이다. 지금까지 연구된 통합 설계 기법들은 모델 설계를 위해 기존 형식언어를 그대로 사용하느냐 아니면 보다 확장된 구문을 사용하느냐에 따라, 또한 기존 성능 평가 도구를 이용하느냐, 자체 성능평가 도구를 사용하느냐에 따라 분류될 수 있다. 그런데 기존 형식 언어 구문을 확장하는 경우나 자체 성능평가 도구를 사용하는 경우는 범용성과 신뢰성의 저하로 사용자를 확보하는 것이 쉽지 않기 때문에 표준 형식 언어와 기존의 검증된 성능평가도구를 사용하려는 시도가 늘고 있다. 기존 성능 평가 도구를 이용하는 방법은 다시 기능 검증 도구와 성능평가 도구를 연결시키는 도구연결 기법과 기능 모델을 성능 모델로 변환하는 모델매핑 기법으로 나눌 수 있는데 표준 형식언어와 도구결합 기법을 사용하는 통합설계 기법으로는 SDL 도구인 IBM Rational Tau(이하Tau)와 네트워크 성능평가 도구인 ns-2를 연계하는 기법이 제안된 바 있으나 표준 형식언어와 모델매핑 기법을 사용하는 통합설계 기법은 아직 구체적으로 연구된 바 없다.
본 발명은, 통합설계 방식을 통한 프로토콜 개발 방법으로 통신 프로토콜의 표준 기술 언어인 SDL과 가장 신뢰성 있는 네트워크 성능평가도구로 알려진 OPNET 간의 프로토콜 모델 변환을 수행하는 SDL-OPNET 모델 변환 방법을 제공하는 것을 해결하고자 하는 기술적 과제로 한다. OPNET 모델은 성능 평가를 위한 모델이지만 계층적 설계 구조와 EFSM(Extended Finite State Machine) 형식의 기능 설계 방식을 가진다는 점에서 SDL 모델과 많은 유사점을 갖는다. 본 발명은, SDL-OPNET 모델 간 비교 분석을 통해 모델 변환 접근 방법을 결정하고 자동화와 효율성을 고려한 SDL-OPNET 모델 변환 방법을 제공하는 것을 해결하고자 하는 기술적 과제로 한다.
상기 기술적 과제를 해결하기 위한 수단으로서 본 발명은, SDL 도구에 의해 설계된 SDL 모델을 컴파일하여 C 코드를 생성하는 단계; 상기 컴파일된 C 코드로부터 OPNET 모델 생성에 필요한 정보를 추출하는 단계; 상기 OPNET 모델 생성에 필요한 정보를 OPNET 도구로 매핑하여 OPNET 모델의 골격 코드를 생성하는 단계; 및 상기 OPNET 모델의 골격 코드에 대해 OPNET 시뮬레이션을 위한 설정을 수행하여 OPNET 모델을 생성하는 단계; 를 포함하는 통합 모델 설계 기반 통신 프로토콜 개발을 위한 SDL-OPNET 모델 변환 방법을 제공한다.
본 발명의 일실시형태에서, 상기 SDL 도구는 IBM Rational Tau일 수 있다.
본 발명의 일실시형태에서, 상기 C 코드를 생성하는 단계는, 상기 SDL 모델을 Tau 컴파일러로 컴파일하여 매크로로 기술된 C 코드를 생성하는 단계 및 상기 매크로로 기술된 C 코드에서 C 전처리기를 이용하여 매크로를 제거하는 단계를 포함할 수 있다.
본 발명의 일실시형태에서, 상기 정보를 추출하는 단계는, 상기 C 코드의 구문을 분석하여 상기 OPNET 모델 생성에 필요한 정보 중 정적 정보는 모델 변환 데이터 베이스에 저장하고, 상기 OPNET 모델 생성에 필요한 정보 중 동적 정보는 중간 코드로 저장하는 단계 및 상기 중간 코드의 구문을 분석하여 상태 정보 및 천이 동작 함수 정보를 상기 모델 변환 데이트 베이스에 저장하는 단계를 포함할 수 있다.
이 실시형태에서, 상기 정적 정보는, 상기 C 코드의 선언부에 포함된, 시스템, 블록, 프로세스의 계층 구조, 데이터 구조, 채널 및 시그널, 프로세스 내부 상태 및 변수 선언 정보를 포함할 수 있으며, 상기 동적 정보는, 상기 C 코드의 처리부에 포함된 천이 동작 함수를 포함할 수 있다.
또한, 이 실시형태에서, 상기 중간 코드의 구문을 분석하여 천이 동작 함수 정보를 상기 모델 변환 데이트 베이스에 저장하는 단계는, 상기 중간 코드로부터 OPNET 프로세서 모델의 상태 천이 다이어그램을 생성하는 단계 및 상기 상태 천이 다이어그램 생성에 의해 결정된 상기 상태 정보 및 천이 동작 함수의 정보를 상기 모델 변환 데이터 베이스에 저장하는 단계를 포함할 수 있다.
또한, 이 실시형태에서, 상기 중간 코드로부터 OPNET 프로세서 모델의 상태 천이 다이어그램을 생성하는 단계는, 상기 중간 코드에서 천이의 조건문을 찾는 단계 및 상기 조건문을 분석하여 조건 분기시 분기된 천이들의 다음 상태가 동일하지 않은 분기에 대해 녹색상태를 생성하는 단계를 포함할 수 있다.
본 발명의 일실시형태에서, 상기 골격 코드를 생성하는 단계는, 상기 모델 변환 데이터 베이스에 저장된 SDL 모델의 블록 정보 및 신호의 매개 변수 데이터 정의를 각각 OPNET의 네트워크/노드 모델 및 패킷 모델로 매핑하는 단계를 포함할 수 있다.
본 발명의 일실시형태에서, 상기 골격 코드를 생성하는 단계는, 상기 모델 변환 데이터 베이스에 저장된 SDL 모델의 프로세스 정보를 OPNET의 프로세스 모델로 매핑하는 단계를 포함할 수 있다.
이 실시형태에서, 상기 매핑되는 OPNET의 프로세스 모델은 용량이 무한대인 무한 입력 큐를 갖는 큐 모델일 수 있다.
또한, 이 실시형태에서, 상기 모델 변환 데이터 베이스에 저장된 SDL 모델의 프로세스 정보를 OPNET의 프로세스 모델로 매핑하는 단계는, 패킷 스트림 인터럽트 발생 시 패킷을 큐에 저장하고, 입력 패킷을 큐로부터 추출하는 단계를 포함할 수 있다.
본 발명에 따르면, SDL 모델 설계자가 성능평가를 위한 OPNET 모델을 쉽게 구성할 수 있도록 도움을 주어 프로토콜 설계 및 개발 기간을 단축시킬 수 있는 효과가 있다. 또한, 본 발명에 따르면, SDL 모델을 사용해야 하는 OPNET 설계자에게도 SDL 모델로부터 직접 변환된 OPNET 골격코드를 제공함으로써 OPNET 모델링을 신속하게 할 수 있는 효과가 있다.
도 1은 본 발명에 따른, SDL 모델로부터 OPNET 모델로의 모델 변환 과정의 흐름도이다.
도 2는 본 발명의 일실시형태에 따라, SDL 프로세스 모델 P에 대해 Tau가 생성한 C 코드 Tau(P)로부터 OPNET 프로세스 모델의 상태 천이 다이어그램 (SR, SG, T)를 생성하는 알고리즘을 도시한 도면.
도 3은 본 발명에 따른 모델 변환 방법에서, 모델변환 데이터 베이스(DB)로부터 OPNET 골격코드의 매핑관계를 도시한 도면.
도 4는 본 발명의 실시예에 사용된 LLC 프로토콜의 SDL 시스템의 다이어그램.
도 5는 본 발명의 실시예에 사용된 LLC 프로토콜 서비스 명세를 설계하는 LLC_S 프로세스 모델의 상태 천이 다이어그램.
도 6은 본 발명의 실시예에 사용되는 LCC 프로토콜 송신 노드 모델을 도시한 도면.
도 7은 본 발명의 실시예에 사용되는 SDL LLC_S 프로세스 모델의 Tau 생성 C 코드에 도 2의 OPNET 상태 천이 다이어그램 생성 알고리즘을 적용하여 생성한 llc_sender 프로세스의 상태 천이 다이어그램.
도 8은 본 발명의 실시예에 의한 LLC 프로토콜 성능 검증 결과(링크 이용률 및 패킷 오류율)를 도시한 그래프이다.
이하, 첨부된 도면을 참조하여 본 발명의 다양한 실시형태를 보다 상세하게 설명한다. 그러나, 본 발명의 실시형태는 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 이하 설명되는 실시형태로 한정되는 것은 아니다. 본 발명의 실시형태는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에 도시된 구성요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다는 점을 유념해야 할 것이다.
먼저, SDL과 OPNET의 모델 변환 방법에 대한 이해를 위해 SDL과 OPNET 설계 모델에 대해 비교 설명하고, SDL-OPNET 모델 변환 접근 방법에 대해 상세하게 설명하기로 한다.
SDL과 OPNET 설계 모델 비교
통신 프로토콜과 같은 분산 시스템 설계를 위한 SDL 모델과 네트워크 시스템 성능시험을 위한 OPNET 모델은 설계 시 상호 유사점이 많이 있지만 세부적인 부분에서는 적잖은 차이가 있다. 따라서 SDL과 OPNET 모델 및 설계 방법의 차이를 정확히 파악하는 것은 SDL 모델로부터 OPNET 모델을 얻는 데 매우 중요한 과정이다.
먼저, SDL 모델과 OPNET 모델은 계층구조로 설계된다는 공통점을 갖지만 일반적인 블록구조의 계층을 갖는 SDL 모델과는 달리 OPNET 모델은 지리적 네트워크를 설계하는 네트워크 모델, 프로토콜 모듈 스택으로 구성된 노드 모델 등 네트워크에 특화된 계층 구조를 갖는다. 또한, 두 모델은 그래픽 기반 모델을 지원하여 모델 설계를 용이하게 한다는 장점을 공유하지만, SDL 모델은 그래픽 모델과 텍스트 모델이 완벽히 동일하게 대응되는 구조로 두 모델 간 상호변환이 용이하지만, OPNET 모델은 그래픽 모델을 컴파일하여 C 언어로 된 텍스트 코드를 구성하는 방식으로 텍스트 코드로부터 그래픽 모델을 구성하기 어렵다는 점에서 차이가 있다.
두 모델은 구체적인 모델 설계를 위한 설계 도구 측면에서도 세부적인 차이를 보인다. 두 모델 모두 동작 기술을 위해 EFSM(Extended Finite State Machine) 기반의 프로세스 모델을 사용하지만, 입력 큐 측면에서는 SDL 프로세스 모델이 내재된(implicit) 무한 큐를 사용하는데 반해 OPNET의 경우는 입력 큐를 사용하는 큐 모델과 사용하지 않는 기본 프로세스 모델로 나뉜다. 또한, OPNET 모델은 일반적인 상태머신의 상태와는 달리 녹색상태와 적색상태라는 이종의 상태를 가지고 있으며 상태천이도 입력기반이 아닌 조건기반으로 되어있는 등 일반적인 EFSM 구문을 확장시킨 형식으로 프로세스 모델을 설계한다. 링크의 설계 측면에서는, SDL 모델에서 모델 간 모든 채널이 단순한 메시지 전송 역할만을 하는 데 반해 OPNET 모델에서는 노드를 연결하는 물리 링크에 실제 물리적 특성을 부여할 수 있도록 설계된다. 특히, SDL 모델이 오직 타이머를 이용해 시스템의 시간을 진행시키지만 OPNET 모델은 시스템 클록을 갱신하는 사건기반 시뮬레이션 기술에 기반하고 있어 보다 다양하고 세부적인 시뮬레이션 환경을 지원한다. 즉, 검증을 목적으로 하는 SDL과는 달리 OPNET은 성능 시뮬레이션을 위해 다양한 커널함수를 직접 모델에 사용하는 방식으로 시뮬레이션 기반의 모델을 구성하고 그 통계적 결과를 보여 주는데 특화되어있다. 하기 표 1은 SDL과 OPNET의 설계 모델 간의 주요한 차이점을 정리한 것이다.
[표 1]
Figure 112010053540136-pat00001

SDL-OPNET 모델변환 접근방법
SDL과 OPNET 모델간 모델 매핑은 본 발명에서 제공하고자 하는 기능 및 성능 검증을 위한 통합 설계의 핵심적인 부분이다. 그러나 SDL 모델로부터 OPNET 모델로의 모델 변환을 위해서는 앞에서 살펴본 설계 모델 간의 차이점이 극복되어야 한다. 특히, 네트워크 시스템 성능평가에 특화되어 있는 OPNET은 다양한 기능의 모델 설계 도구를 지원하여 훨씬 넓은 설계 자유도를 갖는다. 따라서 SDL 모델로부터 OPNET 모델로의 매핑은 다양한 방식으로 이루어질 수 있으며 최적의 상응 모델을 결정하는 것은 설계의 목적과 환경에 따라 달라질 수 있다. 한편 효율적 기능 및 성능 검증을 위한 통합 설계는 일반적으로 네트워크 시스템 전체가 아닌 하나의 프로토콜을 대상으로 한다는 점도 모델 매핑 시 고려되어야 한다. 본 발명에서는 단일 프로토콜을 대상으로 한 SDL-OPNET 모델 매핑 접근방법으로 변환우선방법, 이해우선방법, 및 성능우선방법의 세 방법을 고려한다.
변환우선방법은 모델 변환의 용이성을 최우선으로 한 모델 매핑 방법이다. 매핑 대상인 프로토콜의 기술 시 사용되는 EFSM 모델을 예로 들면 SDL의 상태는 적색상태로, SDL의 분기점은 녹색상태로 매핑하는 방법으로 SDL의 천이 함수들을 가장 손쉽게 변환할 수 있다는 장점을 갖는다. 반면 SDL 모델에서 EFSM의 천이가 복잡하게 설계되었을 경우 다수의 녹색상태로 인해 OPNET의 EFSM이 복잡하고 거대해지는 문제점이 발생한다. 이해우선방법은 모델 매핑 시 SDL의 설계 구조를 최대한 보존함으로써 모델의 외형과 설계자의 이해도를 높이고자 하는 방법이다. 프로토콜의 EFSM 매핑 시 OPNET의 녹색상태를 사용하지 않고 SDL의 상태와 일대일 대응된 적색상태로만 OPNET의 EFSM을 설계하는 경우가 이 방법에 해당된다. 그러나 설계 일관성과 거시적 이해도가 높아지는 반면 천이 함수들의 매핑이 복잡해지는 등 변환규칙의 복잡도가 높아지는 문제가 발생할 가능성이 높다.
위의 두 방법의 경우, 변환 또는 이해의 용이성을 우선하다보니 모델 매핑을 통해 OPNET 모델 설계의 특성을 살려 OPNET 도구에 특화시킨 모델을 얻기는 어렵다. 따라서 위 두 방법으로 설계된 모델은 OPNET이 제공하는 설계 도구를 충분히 활용하여 설계된 모델에 비해 설계 효율성이 떨어질 수 있다. 성능우선 방법은 시뮬레이션의 효율성을 향상시킬 수 있도록 모델 매핑 시 OPNET의 설계 특성을 최대로 고려하는 접근방법이다. 하지만 이 방법은 다양한 OPNET의 특성을 고려하여 변환규칙을 생성해야 하므로 변환과 변환과정의 자동화에 비용이 많이 들 수 있다는 단점이 있다. 본 발명은, 전술한 세 가지 접근 방법 중 변환 용이성을 위한 변환우선방법을 기본으로 하되, 녹색 상태가 과다하게 생성되는 것을 막기 위해 녹색 상태를 생성하지 않을 경우 변환 과정에 많은 비용이 드는 경우로만 녹색상태 생성을 제한하는 방법을 사용한다.
한편, 본 발명에서는 SDL 설계 도구 중에서 가장 널리 사용되는 Tau를 SDL-OPNET 모델 변환에 사용한다. OPNET 모델의 기본 설계 언어는 C인데 Tau의 SDL 컴파일러가 SDL 모델로부터 C 코드를 생성하므로 Tau가 모델 변환에 적합한 SDL 도구라 할 수 있다.
이하, 본 발명에 따른 SDL-OPNET 모델 변환 방법에 대해 상세하게 설명한다.
SDL - OPNET 모델변환 과정
도 1은 본 발명에 따른, SDL 모델로부터 OPNET 모델로의 모델 변환 과정의 흐름도이다.
SDL(Tau) 도구에 의해 설계된 SDL 모델(11)로부터 Tau의 SDL 컴파일러에 의해 C 코드가 생성된다(S1). 이 컴파일된 C 코드(12)는 매크로로 기술된 부분이 전체 코드 중 상당 부분을 차지하여 해석과 변환에 어려움이 있을 수 있으므로, C 전처리기를 통해 매크로가 제거된 순수 C 코드로 변환할 수 있다(S2). 이 순수 C 코드는 OPNET 모델 구성에 필요한 정보의 추출을 위해 자체 설계한 구문해석기(lexical analyzer)를 통해 정적정보와 동적정보로 재단된 후(S3), 정적정보는 모델변환 데이터 베이스(DB)(14)형태로, 동적정보는 중간코드(15)로 저장된다. 중간코드(15) 형태의 동적정보는 2차 구문해석 처리를 통해 정리되어 모델 변환 DB에 저장된다(S4). 이 모델변환 DB는 OPNET 프로세스 모델의 EFSM 구조 및 천이 함수 변환코드를 담고 있으며, OPNET 도구로의 매핑을 통해 OPNET 모델의 골격(skeleton) 코드(16)을 생성한다(S5). 여기에 성능 시뮬레이션 및 통계자료 수집 등에 필요한 OPNET 시뮬레이션 설정 과정을 거쳐(S6) 최종 OPNET 모델(17)을 얻게 된다.
Tau 생성 코드 구문해석기 설계
모델변환 과정에서 핵심적인 부분으로 C 코드로부터 두 단계에 걸쳐 모델변환 DB를 생성하는 구문해석기의 설계는 Tau의 SDL 컴파일러가 생성하는 C 코드의 구조분석에 기초한다. SDL 모델로부터 Tau가 생성하는 C 코드는 시스템, 블록, 프로세스의 계층 구조, 데이터 구조, 채널 및 시그널, 프로세스 내부 상태 및 변수 선언 정보들을 계층적으로 담고 있는 선언부와, 선언된 시스템, 블록, 프로세스, 채널 등의 계층 구조 설정 값, 상태 배열, 입력 배열, 천이 동작 함수 등 세부 동작 정보를 담고 있는 처리부를 포함하여 구성될 수 있다.
도 1에서, 1차 스캔을 통한 구문 해석은 Tau 생성 C 코드에서 주로 선언부에서 담고 있는 정보가 기록되어 있는 위치를 탐색하여 해당 정보를 모델 변환 DB에 저장하고 처리부에 존재하는 천이 동작 함수들의 정보를 수집하여 중간코드를 생성한다. 2차 스캔을 통한 구문 해석은 대상 OPNET 프로세스 모델의 EFSM 구조의 생성과 직접 관련된 부분으로 전술한 모델변환 접근 방법에 따라 구문해석기의 설계가 달라질 수 있다.
본 발명에 따른 모델 변환 기법은 기본적으로 변환우선방법을 사용하지만 OPNET 프로세스 모델의 EFSM 구조가 지나치게 복잡해지는 것을 막기 위하여 녹색상태의 생성 조건을 SDL 프로세스의 천이에서 조건 분기 시 분기된 천이들의 다음 상태가 동일하지 않은 조건 분기의 경우로 한정한다.
도 2는 SDL 프로세스 모델 P에 대해 Tau가 생성한 C 코드 Tau(P)로부터 OPNET 프로세스 모델의 상태 천이 다이어그램 (SR, SG, T)를 생성하는 알고리즘을 도시한다. 도 2에서, SR은 적색상태 집합, SG은 녹색상태 집합, T=SR∪SG×SR∪SG×P×A는 천이 집합을 의미한다(단, P은 조건 집합, A는 동작함수 집합). 알고리즘은 깊이우선탐색(depth-first search) 방법으로 천이 내의 조건문을 찾고 분기 후 다음 상태의 동일 여부를 확인하여 녹색 상태를 생성한다. 알고리즘에서 visited(v), next_state(v,p), generate_action_function(s,s',p)은 각각 노드 v의 방문여부, 노드 v로부터 조건 p 이후의 다음 상태, 상태 s로부터 조건 p 이후의 다음 상태 s까지 천이의 동작 함수를 결정하는 함수이다.
한편, 중간 코드의 구문을 분석하는 2차 스캔에서는 그림 2의 알고리즘에 따라 OPNET의 상태 천이 다이어그램을 생성하고, 결정된 상태 정보와 천이의 동작 함수 정보를 모델변환 DB에 저장한다.
OPNET 골격코드의 생성 방법
도 3은 본 발명에 따른 모델 변환 방법에서, 모델변환 DB로부터 OPNET 골격코드의 매핑관계를 도시한 도면이다.
SDL-OPNET 모델변환 과정에서 모델변환 DB(31)로부터 OPNET 골격코드(33)로의 변환은 모델 간 분석된 매핑 관계에 따라 수행된다. 모델변환 DB의 정적정보인 SDL 모델의 블록정보(311) 및 신호의 매개변수 데이터 정의(312)는 각각 OPNET의 네트워크/노드모델(331) 및 패킷 구조(패킷 모델)(332)와 같은 정적 모델을 구성하는데 사용된다.
일반적으로 통합 설계의 대상은 개별 프로토콜이므로, 모델 변환의 주 대상은 모델변환 DB(31)의 동적정보인 프로토콜의 프로세스 모델(프로세스 정보)(313)이다. SDL 프로세스 모델은 내재된 무한 입력 큐를 갖기 때문에 모델 변환 시 역시 무한 입력 큐를 갖는 큐 모델을 OPNET 프로세스 모델로 선택해야 하고, 패킷 스트림 인터럽트 발생 시 항상 패킷을 큐에 저장하고 입력 패킷은 항상 큐로부터 추출하는 방식으로 모델 변환이 이루어져야 한다.
OPNET 프로세스 모델(333) 내의 상태변수, 헤더 블록, 함수 블록 및 상태 천이 다이어그램 내 상태 블록에 입력되는 코드는 상태 천이 다이어그램 구성 정보와 함께 하기 표 2의 코드 매핑규칙에 의해 자동으로 생성된다. 하기 표 2는 모델 변환 DB로부터 OPNET 골격코드로의 주요 매핑 규칙을 기재한다. 하기 표 2의 매핑 규칙에서 동작코드의 세부 변환 규칙에 포함되는 것은 패킷 필드의 조작 및 타이머 관련 스케줄링 등에 관한 OPNET 커널 프로시저 입력으로, 본 발명의 요지를 흐리는 것을 방지하기 위해 이에 대한 자세한 내용은 생략한다.
[표 2]
Figure 112010053540136-pat00002
하기 표 3은 모델변환 DB(31)로부터 생성된 OPNET 골격코드의 구조를 보여준다. 상기 표 2의 OPNET 골격코드 매핑규칙에 따라 자동 생성된 코드는 C 언어 형식이며, 도 2의 OPNET 상태 천이 머신 생성 알고리즘에 따라 생성된 EFSM과 패킷구조는 텍스트 형식이다. OPNET 골격코드의 시뮬레이션 정보는 SDL 모델 내 주석문의 형태로 기술되는 시뮬레이션 환경설정 정보를 의미한다.
[표 3]
Figure 112010053540136-pat00003
마지막으로 OPNET 골격코드에 시뮬레이션 모델 및 환경 설정 정보 즉, 성능지표 통계자료 수집을 위한 커널 함수 추가, 시뮬레이션 시나리오 설정, Tau 생성 함수 및 헤더파일의 연결 과정을 거쳐 성능 시뮬레이션을 실행할 수 있는 최종 시스템이 완성된다. OPNET은 상업용 도구로 모델의 데이터 파일의 구조를 공개하고 있지 않기 때문에, 자체 편집기를 이용해 설계해야 하는 노드 모델, 패킷 구조, 상태 천이 다이어그램의 생성 등은 모델변환 DB의 정보로부터 사용자가 직접 완성하여야 한다. 하기 표 4는 제안하는 변환 기법의 OPNET 모델 생성 자동화 수준을 정리한 것이다. OPNET 패킷모델과 상태천이 다이어그램은 골격코드의 해당정보를 그대로 모사하여 완성하고, 그 외 코드 수준의 OPNET 프로세스 모델에는 골격코드를 그대로 사용할 수 있다. 시뮬레이션 모델은 SDL 기능 모델의 영역이 아니므로 사용자가 성능 평가 목적에 맞게 추가로 설계하여 완성한다.
[표 4]
Figure 112010053540136-pat00004

실시예
이하, LLC(Logical Link Control) 프로토콜에 대해 본 발명의 모델 변환 방법을 적용하여 성능평가를 수행하는 실시예에 대해 설명한다.
LLC(Logical Link Control) 프로토콜은 IEEE 802.2 표준 랜 프로토콜로 데이터링크 계층의 상위 부계층(sublayer)에 위치한다. LLC 프로토콜 표준은 무응답형 비연결성 서비스, 접속 기반 서비스, 응답형 비연결성 서비스 등의 동작 모드를 정의하고 있는데, 본 실시예에서는 흐름 제어 기법을 제공하는 LLC 접속 기반 서비스를 대상으로 본 발명에 따른 통합 설계 기법을 적용한다.
도 4는 본 발명의 실시예에 사용된 LLC 프로토콜의 SDL 시스템의 다이어그램이다. LLC 접속 기반 서비스는 데이터 전송 시 흐름제어를 위해 슬라이딩 윈도우를 사용하는 Go-Back-N ARQ(Automatic Repeat Reguest) 또는 Selective Reject ARQ 기법을 사용할 수 있다. 본 실시예에서는 LLC 접속 기반 서비스 프로토콜에 대해 송신부와 수신부를 담당하는 두 개의 블록 LLC_Sender(41)와 LLC_Responder(42)를 SDL 모델로 설계하였다. 도 4에 도시된 바와 같이, LLC 프로토콜의 SDL 시스템은, LLC 프로토콜 블록 외에 LLC 프로토콜의 기능 검증을 위한 테스트 블록(43)과 간소화된 MAC(Medium Access Control) 블록(44)을 포함할 수 있다.
도 5는 본 발명의 실시예에 사용된 LLC 프로토콜 서비스 명세를 설계하는 LLC_S 프로세스 모델의 상태 천이 다이어그램이다. LLC 프로토콜 서비스 명세는 LLC_Sender 블록 내 LLC_S 프로세스로 설계된다. 도 5에 도시된 바와 같이, LLC_S 프로세스의 상태 천이 다이어그램은 접속 설정 단계와 데이터 전송을 처리 4개의 상태를 갖는다. LLC_Responder 블록은 3개의 상태를 갖는 LLC_R 프로세스를 갖는다.
본 실시예에서는 LLC 프로토콜의 SDL 모델을 제안하는 모델 변환 기법을 이용하여 OPNET 프로세스 모델로 변환하고 성능 평가 시뮬레이션 환경을 구성한 다음 LLC 프로토콜이 지원하는 Go-Back-N ARQ 흐름제어 기법의 성능을 평가한다. 도 6은 본 발명의 실시예에 사용되는 LCC 프로토콜 송신 노드 모델을 도시한 도면으로, LLC 프로토콜을 사용하는 OPNET 송신 노드 모델은, SDL LLC_S 프로세스 모델로부터 변환되는 llc_sender 프로세스 모델(61)과, 접속 관리 리 및 패킷 생성 제어를 위한 user1 프로세스 모델(62) 및 성능평가를 위해 간단하게 설계된 mac 프로세스 모델(63)을 포함하여 구성된다.
도 7은 본 발명의 실시예에 사용되는 SDL LLC_S 프로세스 모델의 Tau 생성 C 코드에 도 2의 OPNET 상태 천이 다이어그램 생성 알고리즘을 적용하여 생성한 llc_sender 프로세스의 상태 천이 다이어그램으로, LLC_S 프로세스 모델의 상태와 일대일 매칭 되는 4개의 적색상태와 새로 생성된 2개의 녹색 상태를 포함한다. SDL LLC_Responser 블록의 LLC_S 프로세스 모델은 3개의 적색 상태와 2개의 녹색 상태를 갖는 llc_responder로 변환되어 OPNET 수신 노드 모델을 구성한다.
SDL LLC 프로토콜 모델로부터 Tau를 통해 생성된 코드는 1, 2차 스캔 과정을 거쳐 모델 변환 DB를 구성하고 표 2의 매핑 규칙을 통해 OPNET 골격 코드 즉, llc_sender 및 llc_responder 프로세스 모델의 헤더 블록과 상태 코드, 함수 블록 등으로 매핑 된다. LLC 프로토콜에서 지원하는 Go-Back-N ARQ 흐름 제어 기법의 성능 평가를 위해 LLC 프로토콜 송신 노드와 수신 노드를 연결하는 네트워크 모델을 구성하고, 성능 평가 지표인 패킷 오류율 및 링크 이용률(utilization) 수집을 위한 커널 함수를 추가하고 시뮬레이션 시나리오에 따라 네트워크 환경 값을 설정한다. 마지막으로 천이 동작 함수로 변환된 Tau 생성 코드의 실행을 위해 Tau 라이브러리 헤더 파일을 연결하여 시뮬레이션 시스템을 완성한다.
시뮬레이션 환경 설정 값은 랜 환경에 맞추어 다음과 같이 설정하였다. 데이터 패킷(I-프레임)의 크기는 8000 비트, 제어 패킷(S-프레임)의 크기는 36 비트이고 링크의 데이터 전송 속도는 100 Mbps, 슬라이딩 윈도우 크기는 7, 두 노드 간 전파 시간(propagation time)은 4×10-6초, 비트 오류율은 2.5×10-7이다. 따라서 상수 a = 패킷전송시간/전파시간 = 0.05이고, 패킷 오류율은 비트 오류가 독립동등분포일 때 0.002가 된다. 시뮬레이션 시간을 10분으로 하여 시뮬레이션을 수행한 결과 링크 이용률과 패킷 오류율의 시간 평균값은 도 8과 같이 각각 약 0.9788 및 약 0.00108로 수렴함을 알 수 있다. Go-Back-N ARQ의 전송 성공 패킷을 기준으로 한 링크 이용률은 이론 상 W<2a+1일 때 W(1-p)/((2a+1)(1-p+Wp))이므로 (단, W=윈도우 크기, p=패킷오류율), 시뮬레이션 결과인 0.9788는 이론적 수치인 0.9989에 근접함을 알 수 있다.
이상에서 기술한 본 발명의 모델 변환 방법은, SDL 모델 설계자가 성능평가를 위한 OPNET 모델을 쉽게 구성할 수 있도록 도움을 주어 프로토콜 설계 및 개발 기간을 단축시킬 수 있다. 또한 SDL 모델을 사용해야 하는 OPNET 설계자에게도 SDL 모델로부터 직접 변환된 OPNET 골격코드는 OPNET 모델링을 신속하게하는데 상당한 도움을 줄 수 있다.
본 발명의 상세한 설명에서는 구체적인 실시예에 관하여 설명하였으나 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되지 않으며, 후술되는 특허청구의 범위 및 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
11: SDL 모델 12: 매크로 C 코드
13: 순수 C 코드 14: 모델 변환 DB
15: 중간 노드 16: OPNET 골격 노드
17: OPNET 모델

Claims (12)

  1. SDL(Specification and Description Language) 도구에 의해 설계된 SDL 모델을 컴파일하여 C 코드를 생성하는 단계;
    상기 컴파일된 C 코드로부터 OPNET 모델 생성에 필요한 정보를 추출하는 단계;
    상기 OPNET 모델 생성에 필요한 정보를 OPNET 도구로 매핑하여 OPNET 모델의 골격 코드를 생성하는 단계; 및
    상기 OPNET 모델의 골격 코드에 대해 OPNET 시뮬레이션을 위한 설정을 수행하여 OPNET 모델을 생성하는 단계;
    를 포함하는 통합 모델 설계 기반 통신 프로토콜 개발을 위한 SDL-OPNET 모델 변환 방법.
  2. 제1항에 있어서,
    상기 SDL 도구는 IBM Rational Tau인 것을 특징으로 하는 통합 모델 설계 기반 통신 프로토콜 개발을 위한 SDL-OPNET 모델 변환 방법.
  3. 제1항에 있어서,
    상기 C 코드를 생성하는 단계는,
    상기 SDL 모델을 Tau 컴파일러로 컴파일하여 매크로로 기술된 C 코드를 생성하는 단계; 및
    상기 매크로로 기술된 C 코드에서 C 전처리기를 이용하여 매크로를 제거하는 단계;를 포함하는 것을 특징으로 하는 통합 모델 설계 기반 통신 프로토콜 개발을 위한 SDL-OPNET 모델 변환 방법.
  4. 제1항에 있어서,
    상기 정보를 추출하는 단계는,
    상기 C 코드의 구문을 분석하여 상기 OPNET 모델 생성에 필요한 정보 중 정적 정보는 모델 변환 데이터 베이스에 저장하고, 상기 OPNET 모델 생성에 필요한 정보 중 동적 정보는 중간 코드로 저장하는 단계; 및
    상기 중간 코드의 구문을 분석하여 상태 정보 및 천이 동작 함수 정보를 상기 모델 변환 데이트 베이스에 저장하는 단계;를 포함하는 것을 특징으로 하는 통합 모델 설계 기반 통신 프로토콜 개발을 위한 SDL-OPNET 모델 변환 방법.
  5. 제4항에 있어서,
    상기 정적 정보는,
    상기 C 코드의 선언부에 포함된, 시스템, 블록, 프로세스의 계층 구조, 데이터 구조, 채널 및 시그널, 프로세스 내부 상태 및 변수 선언 정보를 포함하는 것을 특징으로 하는 통합 모델 설계 기반 통신 프로토콜 개발을 위한 SDL-OPNET 모델 변환 방법.
  6. 제4항에 있어서,
    상기 동적 정보는,
    상기 C 코드의 처리부에 포함된 천이 동작 함수를 포함하는 것을 특징으로 하는 통합 모델 설계 기반 통신 프로토콜 개발을 위한 SDL-OPNET 모델 변환 방법.
  7. 제4항에 있어서,
    상기 중간 코드의 구문을 분석하여 천이 동작 함수 정보를 상기 모델 변환 데이트 베이스에 저장하는 단계는,
    상기 중간 코드로부터 OPNET 프로세서 모델의 상태 천이 다이어그램을 생성하는 단계; 및
    상기 상태 천이 다이어그램 생성에 의해 결정된 상기 상태 정보 및 천이 동작 함수의 정보를 상기 모델 변환 데이터 베이스에 저장하는 단계;를 포함하는 것을 특징으로 하는 통합 모델 설계 기반 통신 프로토콜 개발을 위한 SDL-OPNET 모델 변환 방법.
  8. 제7항에 있어서,
    상기 중간 코드로부터 OPNET 프로세서 모델의 상태 천이 다이어그램을 생성하는 단계는,
    상기 중간 코드에서 천이의 조건문을 찾는 단계; 및
    상기 조건문을 분석하여 조건 분기시 분기된 천이들의 다음 상태가 동일하지 않은 분기에 대해 녹색상태를 생성하는 단계;를 포함하는 것을 특징으로 하는 통합 모델 설계 기반 통신 프로토콜 개발을 위한 SDL-OPNET 모델 변환 방법.
  9. 제1항에 있어서,
    상기 골격 코드를 생성하는 단계는,
    상기 모델 변환 데이터 베이스에 저장된 SDL 모델의 블록 정보 및 신호의 매개 변수 데이터 정의를 각각 OPNET의 네트워크/노드 모델 및 패킷 모델로 매핑하는 단계를 포함하는 것을 특징으로 하는 통합 모델 설계 기반 통신 프로토콜 개발을 위한 SDL-OPNET 모델 변환 방법.
  10. 제1항에 있어서,
    상기 골격 코드를 생성하는 단계는,
    상기 모델 변환 데이터 베이스에 저장된 SDL 모델의 프로세스 정보를 OPNET의 프로세스 모델로 매핑하는 단계를 포함하는 것을 특징으로 하는 통합 모델 설계 기반 통신 프로토콜 개발을 위한 SDL-OPNET 모델 변환 방법.
  11. 제10항에 있어서,
    상기 매핑되는 OPNET의 프로세스 모델은 용량이 무한대인 무한 입력 큐를 갖는 큐 모델인 것을 특징으로 하는 통합 모델 설계 기반 통신 프로토콜 개발을 위한 SDL-OPNET 모델 변환 방법.
  12. 제11항에 있어서,
    상기 모델 변환 데이터 베이스에 저장된 SDL 모델의 프로세스 정보를 OPNET의 프로세스 모델로 매핑하는 단계는,
    패킷 스트림 인터럽트 발생 시 패킷을 큐에 저장하고, 입력 패킷을 큐로부터 추출하는 단계를 포함하는 것을 특징으로 하는 통합 모델 설계 기반 통신 프로토콜 개발을 위한 SDL-OPNET 모델 변환 방법.






KR1020100080464A 2010-08-19 2010-08-19 통합 모델 설계 기반 통신 프로토콜 개발을 위한 sdl?opnet 모델 변환 방법 KR101163323B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100080464A KR101163323B1 (ko) 2010-08-19 2010-08-19 통합 모델 설계 기반 통신 프로토콜 개발을 위한 sdl?opnet 모델 변환 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100080464A KR101163323B1 (ko) 2010-08-19 2010-08-19 통합 모델 설계 기반 통신 프로토콜 개발을 위한 sdl?opnet 모델 변환 방법

Publications (2)

Publication Number Publication Date
KR20120021856A KR20120021856A (ko) 2012-03-09
KR101163323B1 true KR101163323B1 (ko) 2012-07-05

Family

ID=46130084

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100080464A KR101163323B1 (ko) 2010-08-19 2010-08-19 통합 모델 설계 기반 통신 프로토콜 개발을 위한 sdl?opnet 모델 변환 방법

Country Status (1)

Country Link
KR (1) KR101163323B1 (ko)

Also Published As

Publication number Publication date
KR20120021856A (ko) 2012-03-09

Similar Documents

Publication Publication Date Title
US8073820B2 (en) Method and system for a database to monitor and analyze performance of an electronic design
Wang et al. Hybridsim: A modeling and co-simulation toolchain for cyber-physical systems
EP2218024A1 (en) System level power evaluation method
US8681812B2 (en) Method and device for analyzing transaction propagation in a multiprotocol network of a system on chip
Zhang et al. A software-hardware emulator for sensor networks
CN109299530A (zh) 一种仿真测试案例生成方法、系统、存储介质和终端
Dietrich et al. SYNTONY: network protocol simulation based on standard-conform UML 2 models
KR101163323B1 (ko) 통합 모델 설계 기반 통신 프로토콜 개발을 위한 sdl?opnet 모델 변환 방법
Faerman et al. Case of discrete-event simulation of the simple sensor node with cpn tools
Nasreddine et al. Wireless sensors networks emulator implemented on a FPGA
US11669666B1 (en) Methods relating to circuit verification
KR101125365B1 (ko) Sdl?opnet 코-시뮬레이션 기법을 이용한 통신 프로토콜의 단일 모델 기반 통합 설계 방법
Godoy et al. WebShawn, simulating wireless sensors networks from the web
Deniz et al. Supporting dynamic simulations with Simulation Modeling Architecture (SiMA): a Discrete Event System Specification-based modeling and simulation framework
Bhatti et al. Modelling and symmetry reduction of a target-tracking protocol using wireless sensor networks
Rouxel et al. UML framework for PIM and PSM verification of SDR systems
Wenninger et al. Power optimization of wireless sensor networks at design time
CN103970652B (zh) 基于有界模型检验的无线传感网软件代码验证方法
Mehlhop et al. Model-aware simulation of IEC 61499 designs
Laitinen et al. Using SDL a tool for system simulations
Stefanni et al. Systemc simulation of networked embedded systems
Huang et al. Deriving complexity information from a formal communication protocol specification
Ebeid et al. Communication alternatives exploration in model-driven design of networked embedded systems
Kim et al. Automatic functional verification of OPNET models with SDL-OPNET co-simulation
KR100204577B1 (ko) 비동기 전송 모드 프로토콜의 설계 검증과 성능분석을 위한 종합 모델링 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150618

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160830

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee