KR102006211B1 - 제 1 시뮬레이터에서 이용되는 파이썬 스크립트를 변환하여, 제 2 시뮬레이터에서 이용되는 xml 스크립트를 생성하는 장치 및 방법 - Google Patents

제 1 시뮬레이터에서 이용되는 파이썬 스크립트를 변환하여, 제 2 시뮬레이터에서 이용되는 xml 스크립트를 생성하는 장치 및 방법 Download PDF

Info

Publication number
KR102006211B1
KR102006211B1 KR1020180018068A KR20180018068A KR102006211B1 KR 102006211 B1 KR102006211 B1 KR 102006211B1 KR 1020180018068 A KR1020180018068 A KR 1020180018068A KR 20180018068 A KR20180018068 A KR 20180018068A KR 102006211 B1 KR102006211 B1 KR 102006211B1
Authority
KR
South Korea
Prior art keywords
information
script
node
simulator
nodes
Prior art date
Application number
KR1020180018068A
Other languages
English (en)
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 KR1020180018068A priority Critical patent/KR102006211B1/ko
Application granted granted Critical
Publication of KR102006211B1 publication Critical patent/KR102006211B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

본 개시는 제 1 시뮬레이터에서 이용되는 파이썬(python) 스크립트를 변환하여, 제 2 시뮬레이터에서 이용되는 XML(Extensible Markup Language) 스크립트를 생성하는 방법에 관한 것이다. 본 개시에서는 토폴로지 정보가 포함된 파이썬 스크립트 및 환경설정 값을 입력으로 수신하고 파이썬 스크립트를 토큰열로 분할한 후, 토큰열에서 노드 정보 및 링크 정보를 추출한다. 노드 정보를 이용하여 스위치 노드들을 결정하고, 스위치 노드들의 연결관계에 기초하여 제 1 시뮬레이터의 토폴로지 구조가 결정되면, 토폴로지 구조에 기초하여 제 2 시뮬레이터에 배치될 호스트 노드들 및 상기 스위치 노드들의 위치 정보를 생성한 후, 생성된 위치 정보를 노드 정보에 추가하고, 노드 정보 및 링크 정보를 XML 포맷으로 변환함으로써 XML 스크립트를 생성하는 방법이 개시된다.

Description

제 1 시뮬레이터에서 이용되는 파이썬 스크립트를 변환하여, 제 2 시뮬레이터에서 이용되는 XML 스크립트를 생성하는 장치 및 방법 {METHOD AND APPARATUS FOR GENERATING XML SCRIPT USED IN FIRST SIMULATOR BY CONVERTING PYTHON SCRIPT USED IN SECOND SIMULATOR}
본 개시는 제 1 시뮬레이터에서 이용되는 파이썬 스크립트를 변환하여, 제 2 시뮬레이터에서 이용되는 XML 스크립트를 생성하는 방법 및 장치를 제공한다.
소프트웨어 정의 네트워킹(Software Defined Networking, 이하 SDN)는 네트워크 내 모든 장비가 지능화된 중앙관리시스템에 의해 관리하는 기술을 의미한다. 소프트웨어 기반의 컨트롤러를 사용하여 중앙관리시스템에서 네트워크 트래픽을 제어, 관리함으로써 기존 하드웨어 기반의 네트워크 장치에서 발생 가능한 문제를 해결할 수 있다.
SDN에서의 연구, 실험, 성능 평가 등은, 망의 규모, 장비의 제한, 정립중인 표준 등으로 인해 모델링 및 시뮬레이션을 사용한다. 주로 미니넷 시뮬레이터를 통하여 가상의 환경에서 모의 실험을 수행하고, 또한 대표적인 상용 네트워크 시뮬레이터인 옵넷에서도 SDN 모델과 시나리오를 제공한다.
다만, 미니넷 시뮬레이터와 옵넷 시뮬레이터는 호환이 불가능하다. 따라서, 동일한 토폴로지 환경의 옵넷과 미니넷에서 실험 및 비교 분석을 진행할 경우에도, 옵넷과 미니넷 각각에 대해 별개의 토폴로지 구성 작업을 수행해야 한다.
이에 따라, 제 1 시뮬레이터(예를 들어 미니넷 시뮬레이터)의 토폴로지 정보를 제 2 시뮬레이터(예를 들어, 옵넷 시뮬레이터)의 토폴로지 정보로 변환하는 방법이 요구된다.
제 1 시뮬레이터에서 이용되는 파이썬 스크립트를 변환하여, 제 2 시뮬레이터에서 이용되는 XML 스크립트를 생성하는 방법을 제공하는데 있다. 또한, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 있다. 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 실시예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 개시의 제1 측면은, 토폴로지 정보가 포함된 파이썬 스크립트 및 환경설정 값을 입력으로 수신하는 단계; 상기 파이썬 스크립트를 토큰열로 분할하는 단계; 상기 토큰열에서 노드 정보 및 링크 정보를 추출하는 단계; 상기 노드 정보를 이용하여 스위치 노드들을 결정하고, 상기 스위치 노드들의 연결관계에 기초하여 제 1 시뮬레이터의 토폴로지 구조를 결정하는 단계; 상기 토폴로지 구조에 기초하여 제 2 시뮬레이터에 배치될 호스트 노드들 및 상기 스위치 노드들의 위치 정보를 생성하는 단계; 및 상기 생성된 위치 정보를 상기 노드 정보에 추가하고, 상기 노드 정보 및 상기 링크 정보를 XML 포맷으로 변환함으로써 XML 스크립트를 생성하는 단계;를 포함하는, 제 1 시뮬레이터에서 이용되는 파이썬(python) 스크립트를 변환하여, 제 2 시뮬레이터에서 이용되는 XML(Extensible Markup Language) 스크립트를 생성하는 방법을 제공할 수 있다.
또한, 상기 생성된 XML 스크립트를 검증하는 단계;를 더 포함하는 방법을 제공할 수 있다.
또한, 상기 토큰열을 분석하여 스위치 노드들 및 호스트 노드들을 결정하는 단계; 상기 스위치 노드들 및 상기 호스트 노드들의 속성 파라미터 및 속성 값을 상기 노드 정보로 추출하는 단계; 및 상기 스위치 노드들의 노드 정보에 SDN(Software Defined Networking) 컨트롤러의 IP 주소를 추가하는 단계;를 포함하는 방법을 제공할 수 있다.
또한, 상기 노드 정보가 속성 파라미터로 IP 주소를 포함하지 않는 경우, 임의의 IP 주소를 생성하는 단계; 및 상기 임의의 IP 주소를 상기 노드 정보에 추가하는 단계;를 포함하는 방법을 제공할 수 있다.
또한, 상기 노드 정보는 노드의 이름, 모델 정보 및 속성 파라미터를 포함하며, 상기 속성 파라미터는 노드의 위치 정보, 노드의 IP 주소, 컨트롤러의 IP 주소, MAC 주소 및 CPU 정보 중 적어도 하나를 포함하는 것인, 방법을 제공할 수 있다.
또한, 상기 토큰열을 분석하여 링크의 양 종단 노드를 결정하는 단계; 상기 양 종단 노드가 토폴로지에 포함되는지 여부를 판단하는 단계; 및 상기 판단 결과에 기초하여, 상기 링크의 속성 파라미터 및 속성 값을 상기 링크 정보로 추출하는 단계;를 포함하는 방법을 제공할 수 있다.
또한, 상기 양 종단 노드가 토폴로지에 포함되는지 여부를 판단하는 단계는, 상기 토폴로지에 포함되는 노드를 식별하는 단계; 및 상기 링크의 양 종단 노드의 값과, 상기 식별된 노드의 노드 정보에 포함된 반환 변수 값이 동일한 경우, 상기 양 종단 노드가 상기 토폴로지에 포함되었다고 판단하는 단계;를 포함하는 방법을 제공할 수 있다.
또한, 상기 링크 정보는 양 종단 노드의 이름, 모델 정보 및 속성 파라미터를 포함하며, 상기 속성 파라미터는 대역폭, 지연시간 및 손실 정보 중 적어도 하나를 포함하는 것인, 방법을 제공할 수 있다.
또한, 상기 파이썬 스크립트를 한 줄씩 입력으로 수신하는 단계; 상기 파이썬 스크립트에 반복문이 존재하는 경우, 반복문을 처리하는 단계; 및 상기 파이썬 스크립트를 반환 변수, 함수 및 매개 변수로 분할하는 단계;를 포함하는 방법을 제공할 수 있다.
또한, SDN 컨트롤러 노드를 XML 포맷으로 변환하여 상기 XML 스크립트에 추가하는 단계;를 더 포함하는, 방법을 제공할 수 있다.
또한, 상기 환결설정 값은 기설정된 시나리오의 이름, 시나리오의 망 규모, SDN 컨트롤러의 IP 주소 및 SDN 컨트롤러와 연결된 어댑터의 정보 중 적어도 하나를 포함하는 것인, 방법을 제공할 수 있다.
본 개시의 제 2 측면은, 토폴로지 정보가 포함된 파이썬 스크립트 및 환경설정 값을 입력으로 수신하는 통신부; 및 상기 파이썬 스크립트를 토큰열로 분할하고, 상기 토큰열에서 노드 정보 및 링크 정보를 추출하고, 상기 노드 정보를 이용하여 스위치 노드들을 결정하고 상기 스위치 노드들의 연결관계에 기초하여 제 1 시뮬레이터의 토폴로지 구조를 결정하고, 상기 토폴로지 구조에 기초하여 제 2 시뮬레이터에 배치될 호스트 노드들 및 상기 스위치 노드들의 위치 정보를 생성하며, 상기 생성된 위치 정보를 상기 노드 정보에 추가하고 상기 노드 정보 및 상기 링크 정보를 XML 포맷으로 변환함으로써 XML 스크립트를 생성하는, 프로세서;를 포함하는, 제 1 시뮬레이터에서 이용되는 파이썬(python) 스크립트를 변환하여, 제 2 시뮬레이터에서 이용되는 XML(Extensible Markup Language) 스크립트를 생성하는 장치를 제공할 수 있다.
본 개시의 제 3 측면은, 제 1 측면의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공할 수 있다.
도 1은 일 실시예에 따른 제 1 시뮬레이터 및 제 2 시뮬레이터에서 시뮬레이션을 수행하는 과정을 설명하는 도면이다.
도 2는 일 실시예에 따른 제 1 시뮬레이터에서 이용되는 파이썬 스크립트를 변환하여, 제 2 시뮬레이터에서 이용되는 XML 스크립트를 생성하는 방법의 흐름도이다.
도 3은 일 실시예에 따른 토폴로지 정보가 담긴 파이썬 스크립트의 예시적인 도면이다.
도 4는 일 실시예에 따른 토폴로지 정보가 담긴 XML 스크립트의 예시적인 도면이다.
도 5는 일 실시예에 따른 파이썬 스크립트를 토큰열로 분할하는 방법을 설명하기 위한 흐름도이다.
도 6은 일 실시예에 따른 반복문을 포함한 파이썬 스크립트의 예시저인 도면이다.
도 7은 일 실시예에 따른 파이썬 스크립트에서 노드 정보를 추출하여 XML 스크립트로 변환하는 방법을 설명하기 위한 흐름도이다.
도 8은 일 실시예에 따른 파이썬 스크립트에서 링크 정보를 추출하여 XML 스크립트로 변환하는 방법을 설명하기 위한 흐름도이다.
도 9는 일 실시예에 따른 제 2 시뮬레이터에 배치될 호스트 노드 및 스위치 노드들의 위치 정보를 생성하는 방법을 설명하기 위한 흐름도이다.
도 10은 일 실시예에 따른 파이썬 스크립트를 XML 스크립트로 변환하는 스크립트 변환 장치의 블록도이다.
본 명세서에서 다양한 곳에 등장하는 "일부 실시예에서" 또는 "일 실시예에서" 등의 어구는 반드시 모두 동일한 실시예를 가리키는 것은 아니다.
본 개시의 일부 실시예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들의 일부 또는 전부는, 특정 기능들을 실행하는 다양한 개수의 하드웨어 및/또는 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 개시의 기능 블록들은 하나 이상의 마이크로프로세서들에 의해 구현되거나, 소정의 기능을 위한 회로 구성들에 의해 구현될 수 있다. 또한, 예를 들어, 본 개시의 기능 블록들은 다양한 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능 블록들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 개시는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. “매커니즘”, “요소”, “수단” 및 “구성”등과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 또한, 명세서에 기재된 “…부”, “…모듈” 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
또한, 도면에 도시된 구성 요소들 간의 연결 선 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것일 뿐이다. 실제 장치에서는 대체 가능하거나 추가된 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들에 의해 구성 요소들 간의 연결이 나타내어질 수 있다.
이하 첨부된 도면을 참고하여 본 개시를 상세히 설명하기로 한다.
도 1은 일 실시예에 따른 제 1 시뮬레이터 및 제 2 시뮬레이터에서 시뮬레이션을 수행하는 과정을 설명하는 도면이다.
도 1을 참조하면, 제 2 시뮬레이터는 그래픽 사용자 인터페이스(Graphics User Interface, 이하 GUI) 기반 입력 방식, 및 XML(eXtensible Markup Language) 기반 입력 방식을 제공함으로써 노드를 배치하고 노드 사이에 링크를 연결할 수 있다. 한편, GUI 기반 입력 방식은 수작업을 요구하며, 재사용성 측면에서 XML 기반 입력 방식이 바람직할 수 있다. 일 실시예에서 제 2 시뮬레이터는 옵넷(Opnet) 시뮬레이터, 리버베드 모델러(Riverbed Modeler)일 수 있으나, 이에 제한되지 않는다.
제 2 시뮬레이터(110)는 입력 방식으로 어떤 입력 방식을 사용하는지 판단할 수 있다. 일 실시예에서 GUI 기반 입력 방식을 사용하는 경우, GUI를 통해 입력 받은 정보에 기초하여 토폴로지가 반영된 시나리오를 생성할 수 있다. 한편, GUI 기반 입력 방식을 사용하지 않는 경우, 제 2 시뮬레이터(110)는 외부로부터 토폴로지 정보가 포함된 파일을 수신할 수 있으며 파일의 포맷은 XML 스크립트일 수 있다.
토폴로지 정보에는 노드 정보, 링크 정보 및 토폴로지 구조 정보 등이 포함될 수 있다. 일 실시예에서 노드 정보는 노드의 이름, 모델 정보 및 속성 파라미터를 포함할 수 있다. 또한, 노드의 속성 파라미터는 노드의 위치 정보, 노드의 IP 주소, 컨트롤러의 IP 주소, MAC 주소 및 CPU 정보 중 적어도 하나를 포함할 수 있다. 링크 정보는 양 종단 노드의 이름, 모델 정보 및 속성 파라미터를 포함할 수 있다. 또한, 링크의 속성 파라미터는 대역폭, 지연시간 및 손실 정보 중 적어도 하나를 포함할 수 있다.
토폴로지가 반영된 시나리오가 생성된 후, 제 2 시뮬레이터(110)는 생성된 시나리오에 기초하여 제 2 시뮬레이션을 수행할 수 있다. 일 실시예에서 제 2 시뮬레이션은 옵넷 시뮬레이션일 수 있다.
제 1 시뮬레이터는 입력 방식으로 GUI 기반 입력 방식, 커맨드라인 인터페이스(Commnad Line Interface) 기방 입력 방식 및 파이썬 스크립트 기반 입력 방식을 제공함으로써 노드를 배치하고 노드 사이에 링크를 연결할 수 있다. 한편, 커맨드라인 인터페이스 기반 입력 방식은 기정의된 방식으로만 입력이 가능하고, GUI 기반 입력 방식은 수작업을 요구한다. 따라서 고도화된 시뮬레이션을 위해, 재사용성과 높은 확장성을 보장하는 파이썬 스크립트 기반 입력 방식이 바람직할 수 있다. 일 실시예에서 제 1 시뮬레이터는 미니넷(Mininet) 시뮬레이터일 수 있으나, 이에 제한되지 않는다.
제 1 시뮬레이터(120)는 입력 방식으로 어떤 입력 방식을 사용하는지 판단할 수 있다. 제 1 시뮬레이터(120)에서 GUI 기반 입력 방식을 사용하지 않는 경우, 외부로부터 토폴로지 정보가 포함된 파일을 수신할 수 있으며 파일의 포맷은 파이썬 스크립트일 수 있다.
토폴로지가 반영된 시나리오가 생성된 후, 제 1 시뮬레이터(120)는 생성된 시나리오에 기초하여 제 1 시뮬레이션을 수행할 수 있다. 일 실시예에서 제 1 시뮬레이션은 미니넷 시뮬레이션일 수 있다.
한편, 상기와 같은 방법으로 제 2 시뮬레이터(110) 및 제 1 시뮬레이터(120)에서 시뮬레이션을 수행하는 경우, 양 시뮬레이터에서 동일한 토폴로지를 정의하였음에도 제 2 시뮬레이터(110) 및 제 1 시뮬레이터(120)에서 별개로 토폴로지 구성 작업이 수행될 수 있다. 이 경우, 작업에 대한 소요시간이 증가하고, 수작업에 의해 토폴로지 구성이 잘못될 수 있다.
도 2는 일 실시예에 따른 제 1 시뮬레이터에서 이용되는 파이썬 스크립트를 변환하여, 제 2 시뮬레이터에서 이용되는 XML 스크립트를 생성하는 방법의 흐름도이다.
도 2를 참조하면, 단계 210에서 스크립트 변환 장치는 토폴로지 정보가 포함된 파이썬 스크립트 및 환경설정 값을 입력으로 수신할 수 있다. 토폴로지 정보에는 노드 정보, 링크 정보 및 토폴로지 구조 정보 등이 포함될 수 있다. 또한, 환경설정 값은 기설정된 시나리오의 이름, 시나리오의 망 규모, SDN 컨트롤러의 IP 주소 및 SDN 컨트롤러와 연결된 어댑터의 정보 중 적어도 하나를 포함할 수 있다.
단계 220에서 스크립트 변환 장치는 파이썬 스크립트를 토큰열로 분할할 수 있다. 스크립트 변환 장치는 파이썬 스크립트를 한 줄씩 입력으로 수신한 후, 토큰열로 분할할 수 있다. 일 실시예에서 스크립트 변환 장치는 파이썬 스크립트를 반환 변수, 함수 및 매개 변수로 분할할 수 있다. 한편, 스크립트 변환 장치는 분할된 토큰열을 메모리에 저장할 수 있다.
단계 230에서 스크립트 변환 장치는 토큰열에서 노드 정보 및 링크 정보를 추출할 수 있다.
스크립트 변환 장치는 토큰열을 분석하여 스위치 노드들 및 호스트 노드들을 결정한 후, 스위치 노드들 및 호스트 노드들의 속성 파라미터 및 속성 값을 노드 정보로 추출할 수 있다. 노드 정보는 노드의 이름, 모델 정보 및 속성 파라미터를 포함할 수 있다. 또한, 속성 파라미터는 노드의 위치 정보, 노드의 IP 주소, 컨트롤러의 IP 주소, MAC 주소 및 CPU 정보 중 적어도 하나를 포함할 수 있다. 그러나, 노드 정보 및 노드의 속성 파라미터는 이에 제한되지 않는다.
한편, 스크립트 변환 장치는 스위치 노드들의 추출된 노드 정보에 SDN(Software Defined Networking) 컨트롤러의 IP 주소를 추가할 수 있다.
또한, 스크립트 변환 장치는 토큰열을 분석하여 링크의 양 종단 노드를 결정한 후, 양 종단 노드가 토폴로지에 포함되는지 여부를 판단할 수 있다. 양 종단 노드가 토폴로지에 포함되는 것으로 판단되는 경우, 스크립트 변환 장치는 링크의 속성 파라미터 및 속성 값을 링크 정보로 추출할 수 있다.
한편, 링크 정보는 양 종단 노드의 이름, 모델 정보 및 속성 파라미터를 포함하며, 속성 파라미터는 대역폭, 지연시간 및 손실 정보 중 적어도 하나를 포함할 수 있다. 그러나, 링크 정보 및 링크의 속성 파라미터는 이에 제한되지 않는다.
단계 240에서 스크립트 변환 장치는 노드 정보를 이용하여 스위치 노드들을 결정하고, 스위치 노드들의 연결관계에 기초하여 제 1 시뮬레이터의 토폴로지 구조를 결정할 수 있다. 또한, 단계 250에서 스크립트 변환 장치는 토폴로지 구조에 기초하여 제 2 시뮬레이터에 배치될 호스트 노드 및 스위치 노드들의 위치 정보를 생성할 수 있다.
단계 260에서 스크립트 변환 장치는 생성된 위치 정보를 노드 정보에 추가하고, 노드 정보 및 링크 정보를 XML 포맷으로 변환함으로써 XML 스크립트를 생성할 수 있다. 일 실시예에서 스크립트 변환 장치는 SDN 컨트롤러 노드를 XML 포맷으로 변환하여 상기 XML 스크립트에 추가할 수 있다.
한편, 스크립트 변환 장치는 생성된 XML 스크립트를 출력하기 전, 생성된 XML 스크립트를 검증할 수 있다. 스크립트 변환 장치는 생성된 XML 스크립트가 제 2 시뮬레이터에 import시 문제없이 제 2 시뮬레이션이 수행될 수 있도록 XML 스크립트를 검증할 수 있다. 일 실시예에서 스크립트 변환 장치는 정적 분석 또는 동적 분석을 이용하여 생성된 XML 스크립트에 오류가 존재하는지 확인할 수 있다. 한편, 사용자는 직접 검증 작업을 수행하는 도구를 개발할 수 있다.
스크립트 변환 장치는 검증이 완료된 XML 스크립트를 출력하여 제 2 시뮬레이션을 수행할 수 있다.
도 3은 일 실시예에 따른 토폴로지 정보가 담긴 파이썬 스크립트의 예시적인 도면이다.
이하에서는 설명의 편의상 제 1 시뮬레이터가 미니넷 시뮬레이터인 것으로 한다.
도 3을 참조하면, 토폴로지 정보가 담긴 제 1 시뮬레이터의 파이썬 스크립트(300)에서, "from mininet.topo import Topo"는 토폴로지 정보를 사용하기 위해 제 1 시뮬레이터의 토폴로지 모듈을 가져오는 코드이다.
"class SDNTopo(topo):"는 토폴로지를 위한 클래스를 선언하기 위한 것이며 해당 클래스의 이름은 자유롭게 변경할 수 있다.
"def __init__(self):" 및 "Topo.__init__(self)"는 해당 클래스의 초기화 메서드로 제 1 시뮬레이터에서 토폴로지가 실행되기 위해 사용된다.
노드 정보 중 호스트 정보를 추가하기 위해 "self.addHost()" 메서드를 사용한다. 파이썬 스크립트(300)에서는 "self.addHost()" 명령을 통해 h1 호스트를 추가하였다. 또한, 속성 파라미터로 ip 주소를 추가하였으며, ip 주소의 속성 값은 "192.168.20.112"로 설정하였다.
노드 정보 중 스위치 정보를 추가하기 위해 "self.addSwitch()" 메서드를 사용한다. 파이썬 스크립트(300)에서는 "self.addSwitch()" 명령을 통해 s1 스위치를 추가하였다.
링크 정보를 추가하기 위해 "self.addLink()" 메서드를 사용한다. 파이썬 스크립트(300)에서는 "self.addLink()" 명령을 통해 h1과 s1을 연결하였다.
마지막으로 lamda 함수를 통해 해당 클래스를 호출한다.
도 4는 일 실시예에 따른 토폴로지 정보가 담긴 XML 스크립트의 예시적인 도면이다.
이하에서는 설명의 편의상 제 2 시뮬레이터가 옵넷 시뮬레이터인 것으로 한다.
도 4를 참조하면, 토폴로지 정보가 담긴 제 2 시뮬레이터의 XML 스크립트(400)에서, 서브넷 정보는 엘리먼트 <subnet>으로 정의되며, <subnet>은 속성으로 name을 포함한다.
노드 정보는 엘리먼트 <node>로 정의되며, 기본 속성으로 name과 model을 포함하며, 세부 속성으로 X좌표, Y좌표, IP주소, 컨트롤러의 IP주소, MAC 주소 및 CPU 정보를 포함할 수 있다.
제 2 시뮬레이터의 SDN 시뮬레이션에서, 노드는 모델에 따라 호스트, 스위치, 컨트롤러로 구분된다. 스위치 노드는 스위치 노드의 IP 주소 및 컨트롤러의 IP 주소를 포함한다.
XML 스크립트(400)에서, 노드 "h1"의 모델은 "wkstn"으로 워크스테이션을 의미한다. 노드 "h1"의 세부 속성으로 X좌표는 "38.32", Y좌표는 "2.5"이며 IP주소의 값은 "192.168.20.112"로 설정되어 있다. 또한, 노드 "s1"의 모델은 "of_switch_eth4"로 4개의 이더넷 포트를 갖는 오픈플로우 스위치이다. 노드 "s1"의 세부 속성으로 X좌표는 "23.72", Y좌표는 "1.15", IP주소는 "192.168.20.100", 컨트롤러의 IP주소는 "192.168.20.5"로 설정되어 있다. 노드 "controller"의 모델은 "sitl_virtual_gateway_to_real_world"로 외부의 환경과 연동하는 SITL 노드이며 외부에서 컨트롤러와 연결을 수행할 수 있다.
링크 정보는 엘리먼트 <link>로 정의되며, 기본 속성으로 name, model을 포함한다. 링크 정보에는 2개의 노드 사이를 연결하기 위한 transmitter 및 receiver 속성을 포함된다. 링크 정보의 기본 속성은 종단 노드들의 이름을 포함하며 세부 속성으로 대역폭, 지연시간, 손실 정보 중 적어도 하나를 포함할 수 있다.
XML 스크립트(400)에서, 링크 "h1<->s1"는 "100BaseT" 모델이며 transmitter는 "h1", receiever는 "s1"으로 설정되어 있다.
도 5는 일 실시예에 따른 파이썬 스크립트를 토큰열로 분할하는 방법을 설명하기 위한 흐름도이다.
도 5를 참조하면, 단계 510에서 스크립트 변환 장치는 파이썬 스크립트를 한 줄씩 입력으로 수신할 수 있다.
단계 520에서 스크립트 변환 장치는 파이썬 스크립트에 반복문이 존재하는지 여부를 판단할 수 있다. 반복문이란 파이썬 스크립트에서 사용되는 for, while 등의 명령어를 의미한다. 판단 결과, 반복문이 존재하는 경우, 반복문을 처리한 후 단계 510으로 되돌아간다. 반복문이 존재하지 않는 경우, 단계 530으로 진행한다.
단계 530에서 스크립트 변환 장치는 파이썬 스크립트를 반환 변수, 함수 및 매개 변수로 분할할 수 있다. 단계 540에서 스크립트 변환 장치는 분할된 토큰열을 메모리에 저장할 수 있다. 토큰열은 메모리 또는 데이터 베이스에 저장될 수 있다.
도 6은 일 실시예에 따른 반복문을 포함한 파이썬 스크립트의 예시저인 도면이다.
스크립트 변환 장치는 파이썬 스크립트에서 해당 줄의 코드를 반환 변수, 함수, 매개 변수로 분할할 수 있다. 도 6을 참조하면, "h1 = self.addHost('h1')"을 토큰열로 분할하는 경우, "h1"을 반환 변수, "self.addHost"를 함수, "('h1')"의 h1을 함수의 매개 변수로 분할할 수 있다.
한편, 도 6의 파이썬 스크립트는 반복문 "for"을 포함하며, 스크립트 변환 장치는 반복문이 포함된 줄을 입력으로 수신하는 경우, 반복문을 우선적으로 처리한 후 반복문 이후의 파이썬 스크립트를 처리할 수 있다.
도 7은 일 실시예에 따른 파이썬 스크립트에서 노드 정보를 추출하여 XML 스크립트로 변환하는 방법을 설명하기 위한 흐름도이다.
도 7을 참조하면, 단계 710에서 스크립트 변환 장치는 토큰열을 분석하여 스위치 노드들 및 호스트 노드들을 결정할 수 있다. 스크립트 변환 장치는 토큰열을 분석하여 "addHost"함수 및 "addSwitch"함수를 포함하는 토큰열 구조체를 탐색한 후, "addHost"를 포함하는 경우를 호스트 노드, 토큰열로 "addSwitch"를 포함하는 경우를 스위치 노드로 결정할 수 있다.
한편, "addHost"함수 및 "addSwitch"함수의 첫 번째 매개 변수는 노드의 이름에 해당하므로, 첫 번째 매개 변수를 호스트 노드 및 스위치 노드의 이름으로 설정할 수 있다.
단계 720에서 스위치 노드들에 대해서는, 환결설정 값으로 수신한 SDN 컨트롤러의 IP 주소를 노드 정보에 추가할 수 있다.
단계 730에서 스크립트 변환 장치는 스위치 노드들 및 호스트 노드들의 속성 파라미터 및 속성 값을 노드 정보로 추출할 수 있다. 제 1 시뮬레이터에서 설정할 수 있는 IP 주소, MAC 주소 및 CPU 크기 등과 같은 속성 파라미터와 각 속성 파라미터에 대응되는 속성 값이 토큰열에 포함되는 경우, 스크립트 변환 장치는 해당 속성 파라미터 및 이에 대응되는 속성 값을 스위치 노드들 또는 호스트 노드들의 노드 정보로 추출할 수 있다.
단계 740에서 스크립트 변환 장치는 노드 정보가 속성 파라미터로 IP 주소를 포함하는지 여부를 판단할 수 있다. 노드 정보가 속성 파라미터로 IP 주소를 포함하지 않는 경우, 단계 750에서 스크립트 변환 장치는 임의의 IP 주소를 생성하고 생성된 IP 주소를 노드 정보에 추가할 수 있다. 한편, 노드 정보가 속성 파라미터로 IP 주소를 포함하는 경우, 단계 760으로 진행한다.
단계 760에서 스크립트 변환 장치는 노드 정보를 XML 포맷으로 변환할 수 있다. 도 4를 참조하며 설명하면, 스크립트 변환 장치는 엘리먼트 <node>에 이름을 name=""으로, 모델 정보를 model=""과 같이 추가할 수 있다. 호스트 모델은 기본적으로 Wkstn, Server 등을 의미하며 사전에 설정이 가능하다. 스위치 모델은 포트의 개수에 따라, of_switch_eth4, of_switch_eth16으로 구성할 수 있다. 추가적인 속성 파라미터는 엘리먼트 <node>의 하위 항목으로 <attr name = "" value = ""/>와 같이 변환될 수 있다.
한편, 단계 760 이후, 다른 노드 정보가 남아있는 경우, 단계 710으로 돌아가 상술한 과정을 반복 수행할 수 있다.
스크립트 변환 장치는 추가적으로, SDN 컨트롤러 노드를 XML 포맷으로 변환하여 XML 스크립트에 추가할 수 있다. SDN 컨트롤러의 모델 정보는 SITL 노드 모델 정보로 sitl_virtual_gateway_to_real_world로 설정될 수 있다.
도 8은 일 실시예에 따른 파이썬 스크립트에서 링크 정보를 추출하여 XML 스크립트로 변환하는 방법을 설명하기 위한 흐름도이다.
도 8을 참조하면, 단계 810에서 스크립트 변환 장치는 토큰열을 분석하여 링크의 양 종단 노드를 결정할 수 있다. 스크립트 변환 장치는 "addLink"함수를 토큰열로 포함하는 토큰열 구조체를 탐색한다. "addLink"함수의 경우 기본 속성값으로 2개의 매개변수를 가지며 이는 양 종단 노드를 의미한다. "addLink"함수는 추가적인 속성 파라미터 및 이에 대응되는 속성 값으로 예를 들어, 대역폭 "bw=10", 지연시간 "delay=5ms" 등을 포함할 수 있다. 한편, "addLink"함수는 반환함수를 포함하지 않을 수 있다.
단계 820에서 스크립트 변환 장치는 양 종단 노드가 토폴로지에 포함되는지 여부를 판단할 수 있다. 스크립트 변환 장치는 먼저 토폴로지에 포함되는 노드들을 식별할 수 있다. 일 실시예에서 링크의 양 종단 노드의 문자열과, 식별된 노드의 노드 정보에 포함된 반환 변수 값이 동일한 경우, 스크립트 변환 장치는 양 종단 노드가 토폴로지에 포함되었다고 판단할 수 있다.
단계 830에서 스크립트 변환 장치는 단계 820에서의 판단 결과에 기초하여, 링크의 속성 파라미터 및 속성 값을 링크 정보로 추출할 수 있다. 제 1 시뮬레이터에서 설정할 수 있는 대역폭, 지연시간, 손실 정보 등과 같은 속성 파라미터 및 이에 대응되는 속성 값을 링크 정보로 추출할 수 있다.
단계 840에서 스크립트 변환 장치는 링크 정보를 XML 포맷으로 변환할 수 있다. 도 4를 참조하며 설명하면, 스크립트 변환 장치는 엘리먼트 <link>에 이름을 name=""으로, 모델을 model=""과 같이 추가할 수 있다. 한편, name에는 "h1<->s1"과 같이 종단 노드의 이름 사이에 <->를 입력할 수 있다. 링크 모델은 기본적으로 100baseT 으로 사전에 설정이 가능하다.
종단 노드의 정보는 엘리먼트 <link>의 하위 항목으로 <attr name = "" value = ""/>와 같이 변환될 수 있다. 예를 들어, "attr name"은 transmitter a, receiver a, transmitter b 및 receiver b로 설정된 후 "value"에 해당 노드들의 포트가 추가될 수 있다. 추가적인 속성 파라미터 또한 엘리먼트 <link>의 하위 항목으로 <attr name = "" value = ""/>와 같이 변환될 수 있다.
한편, 단계 840 이후, 다른 노드 정보가 남아있는 경우, 단계 810으로 돌아가 상술한 과정을 반복 수행할 수 있다.
도 9는 일 실시예에 따른 제 2 시뮬레이터에 배치될 호스트 노드 및 스위치 노드들의 위치 정보를 생성하는 방법을 설명하기 위한 흐름도이다.
도 9를 참조하면, 단계 910에서 스크립트 변환 장치는 스위치 노드들의 연결관계에 기초하여 제 1 시뮬레이터의 토폴로지 구조를 결정할 수 있다. 스크립트 변환 장치는 스위치 노드들의 연결관계에 따라, 제 1 시뮬레이터의 토폴로지 구조를 선형, 트리형, 메시형 및 링형 등으로 결정할 수 있다.
단계 920에서 스크립트 변환 장치는 토폴로지 구조에 기초하여 스위치 노드들의 위치 정보를 생성할 수 있다.
스크립트 변환 장치는 스위치 노드들의 위치 정보를 이용하여 스위치 노드들을 제 2 시뮬레이터에 배치할 수 있다. 예를 들어, 토폴로지 구조가 선형인 경우 스위치 노드들을 가로축 일렬로 배치하고, 토폴로지 구조가 트리형인 경우 스위치 노드들을 계층적으로 스위치를 배치하고, 토폴로지 구조가 메시형 및 링형인 경우 스위치 노드들을 원형으로 배치한다.
단계 930에서 스크립트 변환 장치는 토폴로지 구조에 기초하여 호스트 노드들의 위치 정보를 생성할 수 있다.
스크립트 변환 장치는 호스트 노드들의 위치 정보를 이용하여 호스트 노드들을 제 2 시뮬레이터에 배치할 수 있다. 예를 들어, 토폴로지 구조가 선형 또는 트리형인 경우 스위치 노드의 아래쪽에 호스트 노드들이 일렬로 배치되고, 토폴로지 구조가 메시형 또는 링형인 경우 원형으로 배치된 스위치 노드들의 중심을 바라보도록 호를 그리며 배치된다.
한편, 상술한 배치 방법은 토폴로지 구성자의 의도에 따라 수정될 수 있다.
단계 940에서 스크립트 변환 장치는 단계 920 및 단계 930에서 생성된 위치 정보를 노드 정보에 추가하고, 노드 정보를 XML 포맷으로 변환할 수 있다.
스크립트 변환 장치는 생성된 위치 정보를 노드 정보 내 속성 값으로 추가한 후 노드 정보를 XML 포맷으로 변환할 수 있다. 도 4를 참조하면, 각 노드의 위치 정보는 XML 포맷으로 변환되어 엘리먼트 <node>의 하위 항목인 <attr name = "x position" value = ""/>, <attr name = "y position" value =""/>로 추가될 수 있다.
도 10은 일 실시예에 따른 파이썬 스크립트를 XML 스크립트로 변환하는 스크립트 변환 장치의 블록도이다.
도 10을 참조하면, 스크립트 변환 장치(1000)는 제어부(1010), 통신부(1020) 및 메모리(1030)를 포함할 수 있다. 도 10에 도시된 스크립트 변환 장치(1000)에는 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 10에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 당해 기술분야의 통상의 기술자라면 이해할 수 있다.
통신부(1020)는 토폴로지 정보가 포함된 파이썬 스크립트 및 환경설정 값을 입력으로 수신할 수 있다. 토폴로지 정보에는 노드 정보, 링크 정보 및 토폴로지 구조 정보 등이 포함될 수 있다. 또한, 통신부(1020)에서 수신한 환결설정 값은 기설정된 시나리오의 이름, 시나리오의 망 규모, SDN 컨트롤러의 IP 주소 및 SDN 컨트롤러와 연결된 어댑터의 정보 중 적어도 하나를 포함할 수 있다.
메모리(1030)는 스크립트 변환 장치(1000) 내에서 처리되는 각종 데이터들을 저장하는 하드웨어이다. 예를 들어 메모리(1030)는 통신부(1020)에서 수신한 파이썬 스크립트 및 환경설정 값을 저장할 수 있다. 또한, 메모리(1030)는 파이썬 스크립트가 분할된 토큰열을 저장할 수 있다. 메모리(1030)는 DRAM(dynamic random access memory), SRAM(static random access memory) 등과 같은 RAM(random access memory), ROM(read-only memory), EEPROM(electrically erasable programmable read-only memory), CD-ROM, 블루레이 또는 다른 광학 디스크 스토리지, HDD(hard disk drive), SSD(solid state drive), 또는 플래시 메모리를 포함할 수 있다.
제어부(1010)는 도 1 내지 도 9에서 상술한, 파이썬(python) 스크립트를 변환하여 XML(Extensible Markup Language) 스크립트를 생성하기 위한 일련의 프로세스를 제어할 수 있다. 제어부(1010)는 스크립트 변환 장치(1000)를 제어하기 위한 전반적인 기능들을 제어하는 역할을 한다.
일 실시예에서 제어부(1010)는 파이썬 스크립트를 토큰열로 분할한 후, 토큰열에서 노드 정보 및 링크 정보를 추출할 수 있다. 제어부(1010)는 노드 정보를 이용하여 스위치 노드들을 결정하고, 스위치 노드들의 연결관계에 기초하여 제 1 시뮬레이터의 토폴로지 구조를 결정할 수 있다. 또한, 제어부(1010)는 토폴로지 구조에 기초하여 제 2 시뮬레이터에 배치될 호스트 노드들 및 스위치 노드들의 위치 정보를 생성할 수 있다. 제어부(1010)는 생성된 위치 정보를 노드 정보에 추가하고, 노드 정보 및 링크 정보를 XML 포맷으로 변환함으로써 XML 스크립트를 생성할 수 있다.
본 실시예들은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈과 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.
또한, 본 명세서에서, “부”는 프로세서 또는 회로와 같은 하드웨어 구성(hardware component), 및/또는 프로세서와 같은 하드웨어 구성에 의해 실행되는 소프트웨어 구성(software component)일 수 있다.
전술한 본 명세서의 설명은 예시를 위한 것이며, 본 명세서의 내용이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 실시예의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 포함되는 것으로 해석되어야 한다.

Claims (13)

  1. 제 1 시뮬레이터에서 이용되는 파이썬(python) 스크립트를 변환하여, 제 2 시뮬레이터에서 이용되는 XML(Extensible Markup Language) 스크립트를 생성하는 방법에 있어서,
    토폴로지 정보가 포함된 파이썬 스크립트 및 환경설정 값을 입력으로 수신하는 단계;
    상기 파이썬 스크립트를 토큰열로 분할하는 단계;
    상기 토큰열에서 노드 정보 및 링크 정보를 추출하는 단계;
    상기 노드 정보를 이용하여 스위치 노드들을 결정하고, 상기 스위치 노드들의 연결관계에 기초하여 제 1 시뮬레이터의 토폴로지 구조를 결정하는 단계;
    상기 토폴로지 구조에 기초하여 제 2 시뮬레이터에 배치될 호스트 노드들 및 상기 스위치 노드들의 위치 정보를 생성하는 단계; 및
    상기 생성된 위치 정보를 상기 노드 정보에 추가하고, 상기 노드 정보 및 상기 링크 정보를 XML 포맷으로 변환함으로써 XML 스크립트를 생성하는 단계;
    를 포함하는, 방법.
  2. 제 1항에 있어서,
    상기 방법은,
    상기 생성된 XML 스크립트를 검증하는 단계;
    를 더 포함하는, 방법.
  3. 제 1항에 있어서,
    상기 노드 정보를 추출하는 단계는,
    상기 토큰열을 분석하여 스위치 노드들 및 호스트 노드들을 결정하는 단계;
    상기 스위치 노드들 및 상기 호스트 노드들의 속성 파라미터 및 속성 값을 상기 노드 정보로 추출하는 단계; 및
    상기 스위치 노드들의 노드 정보에 SDN(Software Defined Networking) 컨트롤러의 IP 주소를 추가하는 단계;
    를 포함하는, 방법.
  4. 제 3항에 있어서,
    상기 노드 정보를 추출하는 단계는,
    상기 노드 정보가 속성 파라미터로 IP 주소를 포함하지 않는 경우, 임의의 IP 주소를 생성하는 단계; 및
    상기 임의의 IP 주소를 상기 노드 정보에 추가하는 단계;
    를 더 포함하는, 방법.
  5. 제 3항에 있어서,
    상기 노드 정보는 노드의 이름, 모델 정보 및 속성 파라미터를 포함하며,
    상기 속성 파라미터는 노드의 위치 정보, 노드의 IP 주소, 컨트롤러의 IP 주소, MAC 주소 및 CPU 정보 중 적어도 하나를 포함하는 것인, 방법.
  6. 제 1항에 있어서,
    상기 링크 정보를 추출하는 단계는,
    상기 토큰열을 분석하여 링크의 양 종단 노드를 결정하는 단계;
    상기 양 종단 노드가 토폴로지에 포함되는지 여부를 판단하는 단계; 및
    상기 판단 결과에 기초하여, 상기 링크의 속성 파라미터 및 속성 값을 상기 링크 정보로 추출하는 단계;
    를 포함하는, 방법.
  7. 제 6항에 있어서,
    상기 양 종단 노드가 토폴로지에 포함되는지 여부를 판단하는 단계는,
    상기 토폴로지에 포함되는 노드를 식별하는 단계; 및
    상기 링크의 양 종단 노드의 값과, 상기 식별된 노드의 노드 정보에 포함된 반환 변수 값이 동일한 경우, 상기 양 종단 노드가 상기 토폴로지에 포함되었다고 판단하는 단계;
    를 포함하는, 방법.
  8. 제 6항에 있어서,
    상기 링크 정보는 양 종단 노드의 이름, 모델 정보 및 속성 파라미터를 포함하며,
    상기 속성 파라미터는 대역폭, 지연시간 및 손실 정보 중 적어도 하나를 포함하는 것인, 방법.
  9. 제 1항에 있어서,
    상기 파이썬 스크립트를 토큰열로 분할하는 단계는,
    상기 파이썬 스크립트를 한 줄씩 입력으로 수신하는 단계;
    상기 파이썬 스크립트에 반복문이 존재하는 경우, 반복문을 처리하는 단계; 및
    상기 파이썬 스크립트를 반환 변수, 함수 및 매개 변수로 분할하는 단계;
    를 포함하는, 방법.
  10. 제 1항에 있어서,
    상기 XML 스크립트를 생성하는 단계는,
    SDN 컨트롤러 노드를 XML 포맷으로 변환하여 상기 XML 스크립트에 추가하는 단계;
    를 더 포함하는, 방법.
  11. 제 1항에 있어서,
    상기 환경설정 값은 기설정된 시나리오의 이름, 시나리오의 망 규모, SDN 컨트롤러의 IP 주소 및 SDN 컨트롤러와 연결된 어댑터의 정보 중 적어도 하나를 포함하는 것인, 방법.
  12. 제 1 시뮬레이터에서 이용되는 파이썬(python) 스크립트를 변환하여, 제 2 시뮬레이터에서 이용되는 XML(Extensible Markup Language) 스크립트를 생성하는 장치에 있어서,
    토폴로지 정보가 포함된 파이썬 스크립트 및 환경설정 값을 입력으로 수신하는 통신부; 및
    상기 파이썬 스크립트를 토큰열로 분할하고, 상기 토큰열에서 노드 정보 및 링크 정보를 추출하고, 상기 노드 정보를 이용하여 스위치 노드들을 결정하고 상기 스위치 노드들의 연결관계에 기초하여 제 1 시뮬레이터의 토폴로지 구조를 결정하고, 상기 토폴로지 구조에 기초하여 제 2 시뮬레이터에 배치될 호스트 노드들 및 상기 스위치 노드들의 위치 정보를 생성하며, 상기 생성된 위치 정보를 상기 노드 정보에 추가하고 상기 노드 정보 및 상기 링크 정보를 XML 포맷으로 변환함으로써 XML 스크립트를 생성하는, 프로세서;
    를 포함하는, 장치.
  13. 제 1항 내지 11항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020180018068A 2018-02-13 2018-02-13 제 1 시뮬레이터에서 이용되는 파이썬 스크립트를 변환하여, 제 2 시뮬레이터에서 이용되는 xml 스크립트를 생성하는 장치 및 방법 KR102006211B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180018068A KR102006211B1 (ko) 2018-02-13 2018-02-13 제 1 시뮬레이터에서 이용되는 파이썬 스크립트를 변환하여, 제 2 시뮬레이터에서 이용되는 xml 스크립트를 생성하는 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180018068A KR102006211B1 (ko) 2018-02-13 2018-02-13 제 1 시뮬레이터에서 이용되는 파이썬 스크립트를 변환하여, 제 2 시뮬레이터에서 이용되는 xml 스크립트를 생성하는 장치 및 방법

Publications (1)

Publication Number Publication Date
KR102006211B1 true KR102006211B1 (ko) 2019-08-02

Family

ID=67614213

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180018068A KR102006211B1 (ko) 2018-02-13 2018-02-13 제 1 시뮬레이터에서 이용되는 파이썬 스크립트를 변환하여, 제 2 시뮬레이터에서 이용되는 xml 스크립트를 생성하는 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102006211B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101729694B1 (ko) * 2017-01-02 2017-04-25 한국과학기술정보연구원 시뮬레이션 결과 예측 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101729694B1 (ko) * 2017-01-02 2017-04-25 한국과학기술정보연구원 시뮬레이션 결과 예측 방법 및 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Reading and Writing XML Files in Python, https://stackabuse.com/reading-and-writing-xml-files-in-python/ (2017.11.30.)

Similar Documents

Publication Publication Date Title
US9218269B2 (en) Testing multiple target platforms
WO2019216976A1 (en) Analytics for an automated application testing platform
US9436566B2 (en) Methods, systems, and computer readable media for scaling a workload
WO2008061340A1 (en) Automated testing and control of networked devices
CN111309734B (zh) 自动生成表数据的方法及系统
US11089000B1 (en) Automated source code log generation
CN110532182A (zh) 一种虚拟化平台的自动化测试方法及装置
US20180123900A1 (en) Scenario driven, technology agnostic network simulation
US9501591B2 (en) Dynamically modifiable component model
CN115118617A (zh) 一种基于p4可编程交换机的意图驱动网络测量方法及系统
CN113705143A (zh) 一种自动化仿真系统和自动化仿真方法
US20150088482A1 (en) Simulated component connector definition and connection process
KR102006212B1 (ko) 제 1 시뮬레이터에서 이용되는 xml 스크립트를 변환하여, 제 2 시뮬레이터에서 이용되는 파이썬 스크립트를 생성하는 장치 및 방법
CN112860587B (zh) Ui自动测试方法和装置
CN114371851A (zh) 一种基于编译的网络设备自动化实现方法
KR102006211B1 (ko) 제 1 시뮬레이터에서 이용되는 파이썬 스크립트를 변환하여, 제 2 시뮬레이터에서 이용되는 xml 스크립트를 생성하는 장치 및 방법
CN114428702A (zh) 含有通用接口模块的信息物理测试系统
CA3138761A1 (en) Method, device, computer equipment and storage medium for verifying inter-system data admission
CN112015382A (zh) 一种处理器构架解析方法、装置、设备及储存介质
US11182272B2 (en) Application state monitoring
WO2023230883A1 (zh) 一种测试方法、系统及装置
US11474794B2 (en) Generating mock services based on log entries
US20150154038A1 (en) Scriptable hierarchical emulation engine
CN116629173A (zh) 网络芯片的验证方法、装置、计算机设备及存储介质
Kovše et al. Eclipse plug-in for spin and st2msc tools-tool presentation

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant