KR20150123074A - 데이터 분산 서비스에서의 기능 모듈 모듈화 방법 및 모듈화 장치 - Google Patents

데이터 분산 서비스에서의 기능 모듈 모듈화 방법 및 모듈화 장치 Download PDF

Info

Publication number
KR20150123074A
KR20150123074A KR1020140049503A KR20140049503A KR20150123074A KR 20150123074 A KR20150123074 A KR 20150123074A KR 1020140049503 A KR1020140049503 A KR 1020140049503A KR 20140049503 A KR20140049503 A KR 20140049503A KR 20150123074 A KR20150123074 A KR 20150123074A
Authority
KR
South Korea
Prior art keywords
module
function
function module
dcps
generation
Prior art date
Application number
KR1020140049503A
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 KR1020140049503A priority Critical patent/KR20150123074A/ko
Priority to US14/547,171 priority patent/US20150309788A1/en
Publication of KR20150123074A publication Critical patent/KR20150123074A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • 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
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명의 일 실시예에 따른 모듈화 장치는 DDS 미들웨어에서 기능 모듈을 모듈화하는 모듈화 장치에 있어서, 응용프로그램과의 인터페이스를 제공하는 DCPS 모듈, 및 기능 모듈을 생성하고, 생성되는 기능 모듈을 기능 별로 분류하여 저장하고, 상기 DCPS 모듈의 요청에 대응되는 기능 모듈을 상기 DCPS 모듈에 제공하는 라이브러리 모듈을 포함한다.

Description

데이터 분산 서비스에서의 기능 모듈 모듈화 방법 및 모듈화 장치{FUNCTION MODULE MODULARIZING METHOD IN DATA DISTRIBUTION SERVICE AND MODULARIZING APPARATUS THEREOF}
본 발명은 데이터 분산 서비스에서의 기능 모듈 모듈화 방법 및 모듈화 장치에 관한 것이다.
CPS(Cyber Physical System)는 사이버 시스템의 요소들과 현실의 물리적 시스템 요소들이 긴밀히 연관되고 조합되는 시스템이다. CPS에서 사이버 시스템은 물리적 시스템을 분석하여 물리적 환경의 변화에 유연하게 적응하고 시스템을 재설정하여 신뢰성을 향상시킨다. CPS 환경에서 사용할 수 있는 다양한 통신 미들웨어들이 제안되고 있으며, 특히 OMG에서 제안한 DDS(Data Distribution Service) 통신 미들웨어가 CPS 환경에서 사용하기에 적합하다. DDS는 분산 시스템에서 데이터 중심의 출판-구독 프로그래밍 모델에 대한 표준화의 필요성에 의해 처음 만들어졌다. DDS는 메시지 전달이 빈번히 일어나는 시스템에서 빠르고 간편한 메시지 전송을 도와준다. DDS는 복잡하게 얽혀 있는 여러 노드들 간의 데이터 전송을 빠르고 간편하게 처리하는데 목적이 있다.
DDS 표준은 데이터의 송수신 및 네트워크 데이터 처리를 담당하는 RTPS, 사용자에게 발간/구독 기반의 데이터 송수신을 위한 인터페이스를 제공하는 DCPS, 사용자 데이터에 대한 객체 기반의 접근 인터페이스를 제공하는 DLRL 계층으로 구성된다. 사용자는 DDS 표준을 바탕으로 DDS 통신 기능을 자유롭게 사용할 수 있다. 하지만 DDS 표준은 발간/구독 기반의 데이터 송수신을 위한 표준으로 표준 외에 새로운 기능추가에 대한 표준을 제안하고 있지 않아서 DDS에 새로운 사용자 기능을 추가하는 경우 DDS 통신 미들웨어의 구조를 위반하는 경우가 발생한다.
본 발명의 실시예들의 목적은 표준 스펙 범위의 DDS 미들웨어 구조를 위반하지 않으면서 사용자나 개발자가 기능 모듈을 생성/추가할 수 있는 모듈화 방법 및 모듈화 장치를 제공하는 데 있다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재들로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 실시예에 따른 모듈화 장치는 DDS 미들웨어에서 기능 모듈을 모듈화하는 모듈화 장치에 있어서, 응용프로그램과의 인터페이스를 제공하는 DCPS 모듈, 및 기능 모듈을 생성하고, 생성되는 기능 모듈을 기능 별로 분류하여 저장하고, 상기 DCPS 모듈의 요청에 대응되는 기능 모듈을 상기 DCPS 모듈에 제공하는 라이브러리 모듈을 포함한다.
일 실시예에서, 상기 라이브러리 모듈은 상기 DCPS 모듈과의 인터페이스를 제공하는 연결 모듈, 기능 모듈을 초기화하고 생성하는 생성 모듈, 상기 생성된 기능 모듈을 기능 별로 분류하여 저장하는 분류 모듈, 및 상기 분류 모듈을 검색하여 상기 DCPS 모듈의 요청에 대응되는 기능 모듈을 상기 연결 모듈을 통해 상기 DCPS 모듈로 전달하는 관리 모듈을 포함할 수 있다.
일 실시예에서, 상기 생성 모듈은 기능 모듈 구분 정보, 기능 모듈 생성 함수 및 기능 모듈 설정 변수를 이용하여 기능 모듈을 초기화하고 생성할 수 있다.
일 실시예에서, 상기 기능 모듈 구분 정보는 기능 모듈의 이름, 기능 모듈의 특성 및 기능 모듈의 중요도 중 적어도 하나를 포함할 수 있다.
일 실시예에서, 상기 기능 모듈 설정 변수는 부울(bool), 인티저(integer), 플로트(float) 및 스트링(string) 값 중 어느 하나를 가질 수 있다.
일 실시예에서, 상기 생성 모듈은 기능 모듈 초기화를 위한 공통 설정 함수를 포함하는 구조체로 정의될 수 있다.
일 실시예에서, 상기 기능 모듈은 RTPS 모듈, QoS 모듈, TypeSupport 모듈, UDP 모듈 중 적어도 하나를 포함할 수 있다.
본 발명의 일 실시예에 따른 DDS 미들웨어에서 기능 모듈을 모듈화하는 모듈화 방법은 기능 모듈의 초기화를 위한 공통 설정 함수를 구성하는 단계, 상기 공통 설정 함수를 실행하여 상기 기능 모듈을 초기화하는 단계, 및 기능 모듈 구분 정보, 기능 모듈 생성 함수 및 기능 모듈 설정 변수를 이용하여 상기 기능 모듈을 생성하는 단계를 포함할 수 있다.
일 실시예에서, 상기 생성되는 기능 모듈을 기능 별로 분류하여 저장하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 생성되는 기능 모듈 중에서 DCPS 모듈의 요청에 대응되는 기능 모듈을 상기 DCPS 모듈로 전달하는 단계를 더 포함할 수 있다.
본 발명의 실시예들에 따른 모듈화 방법 및 모듈화 장치는 표준 스펙 범위의 DDS 미들웨어 구조를 위반하지 않으면서 사용자나 개발자가 기능 모듈을 생성/추가할 수 있다.
도 1은 본 발명의 일 실시예에 따른 모듈화 장치를 보여주는 블록도이다.
도 2는 도 1의 라이브러리 모듈을 더욱 구체적으로 보여주는 블록도이다.
도 3은 도 2의 생성 모듈을 더욱 구체적으로 보여주는 블록도이다.
도 4는 도 3의 기능 모듈 설정 변수에서 사용되는 변수를 보여준다.
도 5는 도 2의 생성 모듈을 구성하는 과정을 설명하는 흐름도이다.
도 6은 도 5의 S100 과정을 더욱 구체적으로 설명하기 위한 흐름도이다.
도 7은 도 5의 S200 과정을 더욱 구체적으로 설명하기 위한 흐름도이다.
도 8은 도 7의 각 단계를 구현하기 위한 코드를 보여준다.
도 9는 도 6에서 정의된 공통 설정 함수의 코드 변환 인터페이스 호출 과정을 보여주는 흐름도이다.
도 10은 도 9의 각 단계를 구현하기 위한 코드를 보여준다.
도 11은 도 2의 생성 모듈을 통해 기능 모듈이 생성되는 과정을 보여주는 흐름도이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명의 실시예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 실시예에 대한 이해를 방해한다고 판단되는 경우에는 그 상세한 설명은 생략한다.
본 발명의 실시예의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 또한, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 발명은 데이터 분산 서비스(DDS)에서의 기능 모듈 모듈화 방법 및 모듈화 장치에 관한 것으로, 더욱 상세하게는 DDS에서 RTPS 표준계층 및 사용자 기능 모듈을 서비스 플러그인 형태로 구현하여 사용자가 원하는 경우 RTPS 계층을 DCPS 계층과 연동할 수 있게 하고, 사용자가 개발한 기능 모듈을 모듈화하여 DDS 응용에서 필요한 경우 사용할 수 있도록 하는 모듈화 방법 및 장치에 관한 것이다. 본 명세서에서 '모듈화'는 사용자가 DDS에서 사용될 수 있는 다양한 기능들을 모듈 단위로 초기화 및 생성할 수 있도록 하는 동작을 의미할 수 있다.
도 1은 본 발명의 일 실시예에 따른 모듈화 장치를 보여주는 블록도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 모듈화 장치는 DCPS 모듈(110), 등록모듈(120), 및 라이브러리 모듈(130)을 포함할 수 있다.
DCPS 모듈(110)은 DDS(Data Distribution Service) 표준에 정의된 DCPS 계층으로 정의될 수 있다. 예를 들어, DCPS 모듈(110)은 응용프로그램에 제공되는 데이터 발간/구독 기능을 갖는 인터페이스로서, 응용프로그램은 DCPS 모듈(110)을 통해 데이터를 교환할 상대에 대한 인지없이 원하는 데이터의 발간/구독을 수행할 수 있다. 또한, DCPS 모듈(110)은 read()/write() 방식의 API를 제공하여 읽기/쓰기 방식으로 응용프로그램 간의 데이터 교환 기능을 제공할 수 있다.
라이브러리 모듈(120)은 DDS에서 사용될 수 있는 기능 모듈(ex. 서비스 플러그인)을 관리할 수 있다. 예를 들어, 라이브러리 모듈(120)은 기능 모듈을 모듈화할 수 있다. 즉, 라이브러리 모듈(120)은 기능 모듈을 초기화 및 생성하고, 생성되는 기능 모듈을 기능 별로 분류하여 저장할 수 있다. 라이브러리 모듈(120)은 DCPS 모듈(110)의 요청에 대응되는 기능 모듈을 검색하여 DCPS 모듈(110)에 제공할 수 있다. 기능 모듈은 예를 들어, RTPS 모듈, QoS 모듈, TypeSupport 모듈, UDP 소켓 관리 모듈 등을 포함할 수 있다.
모듈(130)은 생성되는 기능 모듈들의 집합으로 정의될 수 있다. DDS 사용자는 DCPS 모듈(110) 및 라이브러리 모듈(120)을 통해 자신이 원하는 기능 모듈을 동적으로 로딩할 수 있다.
즉, 본 발명에서 라이브러리 모듈(120)은 DDS에서 생성된 기능 모듈을 초기화, 생성, 분류 및 검색해서 DCPS 모듈(110)에서 사용할 수 있도록 제반 기능을 제공할 수 있다.
도 2는 도 1의 라이브러리 모듈을 더욱 구체적으로 보여주는 블록도이다.
구체적으로, 도 2는 라이브러리 모듈(120)에 의해 관리되는 기능 모듈들을 포함하는 전체적인 구조를 보여준다.
도 2를 참조하면, DDS에서 기능 모듈을 생성하고 사용하기 위해서는 표준화된 자료 구조 및 기능 모듈을 초기화하고 생성시킬 수 있는 기능이 필요하며, 라이브러리 모듈(120)이 이러한 기능을 수행할 수 있다.
라이브러리 모듈(120)은 연결 모듈(121), 관리 모듈(122), 저장 모듈(123), 및 생성 모듈(124)을 포함할 수 있다. 연결 모듈(121), 관리 모듈(122), 저장 모듈(123), 및 생성 모듈(124)은 구조체로 구현될 수 있다.
라이브러리 모듈(120)은 DCPS 모듈(110)과의 연동을 위한 최상위 구조체로써 연결 모듈(121)을 통해 DCPS 모듈(110)에서 기능 모듈을 사용할 수 있게 해준다. 예를 들어, 연결 모듈(121)은 DDS 표준에 따른 DomainFactory로 정의될 수 있다.
DDS 미들웨어의 개발자나 사용자가 DCPS 모듈(110)을 이용하여 기능 모듈을 사용하기 위해서, 연결 모듈(121)은 기능 모듈을 사용하고자 하는 DCPS 모듈(110)의 도메인 참여자(Domainparticipant) 정보와 기능 모듈을 관리하는 관리 모듈(121)에 대한 참조 정보를 제공할 수 있다. 도메인 참여자 정보는 DDS 미들웨어를 사용하는 DCPS 모듈(110)과의 연관성을 제공하기 위해서 DCPS 모듈(110)에서 사용되는 정보를 의미할 수 있다. 즉, 연결 모듈(121)은 DDS 응용 프로그램이 DDS 미들웨어를 사용하기 위한 시작점이며, DCPS 모듈(110)에서 기능 모듈을 사용하기 위한 진입점으로 사용될 수 있다.
관리 모듈(122)은 기능 모듈의 관리를 위한 최상위 구조체로 정의될 수 있다. DDS 미들웨어에서 생성되는 모든 기능 모듈을 저장하고 관리하기 위해 관리 모듈(122)은 저장 모듈(123)에 대한 참조 정보를 제공할 수 있다. 예를 들어, 관리 모듈(122)은 연결 모듈(121)에 대한 참조 정보 및 저장 모듈(123)에 대한 참조 정보를 포함할 수 있다. 연결 모듈(121)에 대한 참조 정보는 DomainFactory의 참조 구조체에 대한 정보를 의미할 수 있다. 저장 모듈(123)에 대한 참조 정보는 기능 모듈을 분류하고 있는 분류 구조체에 대한 정보를 의미할 수 있다. 일 측면에서, 관리 모듈(122)은 DDS에서 사용되는 기능 모듈에 대한 관리 시작점을 제공하는 것으로 이해될 수 있다.
분류 모듈(123)은 기능 모듈을 고유의 기능 타입으로 분류해 놓은 구조체로 정의될 수 있다. 분류 모듈(123)은 기능 모듈을 각 모듈의 특성(예를 들어, 기능)에 따라 분류하는 구조체로서, 생성 모듈(124)에 대한 참조 정보, 모듈 분류 타입 정보, 및 모듈 초기화 설정 플래그를 제공할 수 있다. 생성 모듈(124)에 대한 참조 정보는 기능 모듈 초기화 및 생성 구조체에 대한 참조 정보를 의미할 수 있다. 모듈 분류 타입 정보는 기능 모듈 분류를 위해서 사용되는 타입 정보를 의미할 수 있다. 모듈 초기화 설정 플래그는 기능 모듈에 대한 초기화 및 생성 완료 여부를 나타내는 정보를 의미할 수 있다.
생성 모듈(124)은 기능 모듈 생성을 위한 초기화를 수행하고, 설정 정보를 이용하여 기능 모듈을 생성하는 구조체로 정의될 수 있다. 생성 모듈(124)에 대해서는 이하의 도 3을 참조하여 더욱 구체적으로 설명된다.
도 3은 도 2의 생성 모듈을 더욱 구체적으로 보여주는 블록도이다.
도 3을 참조하면, 생성 모듈(124)은 기능 모듈을 생성하기 위한 초기화 정보를 저장하며, 생성 모듈(124)에 저장된 기능 모듈에 대한 정보는 기능 모듈을 식별하기 위한 기능 모듈 구분 정보, 기능 모듈을 생성하기 위한 기능 모듈 생성 함수, 생성될 기능 모듈에 설정될 설정 값을 저장하는 기능 모듈 설정 변수를 포함할 수 있다.
기능 모듈 구분 정보는 기능 모듈을 식별하기 위한 기능 모듈 이름, 기능 모듈 특성, 기능 모듈 중요도 등을 포함할 수 있다. 기능 모듈 생성 함수는 기능 모듈을 생성하기 위한 생성자 함수 및 삭제하기 위한 삭제자 함수를 포함할 수 있다. 예를 들어, 기능 모듈을 생성하고자 하는 경우 기능 모듈 생성 함수에 생성자 함수를 등록시킴으로 원하는 기능 모듈을 생성시킬 수 있다. 또한, 기능 모듈을 삭제하고자 하는 경우 기능 모듈 생성 함수에 삭제자 함수를 등록시킴으로써 기능 모듈을 삭제할 수 있다.
기능 모듈 설정 변수는 기능 모듈 생성 함수를 실행하여 기능 모듈을 생성하는 경우 기능 모듈에 설정되는 변수를 의미할 수 있다. 기능 모듈 설정 변수에서 지원 가능한 변수의 타입은 부울(bool), 인티저(integer), 캐릭터(character), 및 스트링(string) 등 모든 데이터 타입을 포함할 수 있다.
도 4는 도 3의 기능 모듈 설정 변수에서 사용되는 변수를 보여준다.
도 4를 참조하면, 기능 모듈 설정 변수는 변수를 구분하기 위한 변수 이름, 변수의 타입을 구분하기 위한 타입 정보, 변수의 타입에 따른 실제 값인 부울(bool), 인티저(integer), 플로트(float), 스트링(string) 값, 변수를 사용할 때 호출되는 함수의 저장을 위한 action, 변수에 대한 사용이 끝나면 호출되는 callback으로 구성될 수 있다.
도 5는 도 2의 생성 모듈을 구성하는 과정을 설명하는 흐름도이다. 도 6은 도 5의 S100 과정을 더욱 구체적으로 설명하기 위한 흐름도이다. 도 7은 도 5의 S200 과정을 더욱 구체적으로 설명하기 위한 흐름도이다.
먼저, 도 5를 참조하면, 기능 모듈을 생성시키기 위해서 기능 모듈을 초기화하기 위한 생성 모듈(124)을 구성하는 과정이 설명된다.
생성 모듈(124)을 구성하는 과정은 표준화된 기능 모듈 초기화 과정을 제공하기 위해서 공통 설정 함수를 구성하는 과정(S100), 공통 설정 함수를 각 기능 모듈의 초기화에 적합하도록 변경시켜 설정 코드를 제공하는 생성 모듈 설정 인터페이스 정의(S200) 과정, 각 기능 모듈의 초기화를 수행하여 생성 모듈(124)을 초기화하기 위해 생성 모듈(124)을 호출하는 과정(S300)으로 구성된다.
생성 모듈(124)은 DDS에서 사용되는 기능 모듈에 대한 생성 및 설정 정보를 포함하고 있는 구조체로, 생성 모듈(124)에 포함되어 있는 기능 모듈 구분 정보, 기능 모듈 생성 함수, 기능 모듈 설정 변수를 설정함으로써 기능 모듈을 생성할 수 있다.
도 6을 참조하면, 도 5를 참조하여 설명된 S100 과정이 더욱 구체적으로 설명된다. 생성 모듈을 초기화하기 위한 공통 설정 함수를 제공하기 위해서 module_define_start(name)이 사용된다. module_define_start(name)에서 name은 각 기능 모듈의 이름이며, 초기화하고자 하는 기능 모듈의 이름으로 이해될 수 있다. define_module_start(name)은 name##_module_entry로 시작하는 함수로 정의될 수 있다(S110). 따라서 각 기능 모듈은 공통 설정 함수를 기반으로 name에 입력되는 이름으로 각 기능 모듈에 대응되는 초기화 함수를 생성할 수 있게 된다.
각 name##module_entry에 해당하는 함수 이름으로 변경되면, 공통의 생성 모듈 구조체가 생성(S120)되고, 생성 모듈에 변수 포인터가 설정된다(S130).
그리고, name 정보를 이용하여 기능 모듈 구분 정보가 설정되고(S140), 기능 모듈 생성 함수가 설정(S150)되고, 기능 모듈 설정 변수가 설정된다(S150).
그리고, #define module_define_end()를 통해 공통 설정 함수 종료가 된다(160). 상술한 S110 내지 S160 과정을 통해 공통 설정 함수가 구성된다.
도 7을 참조하면, 도 5를 참조하여 설명된 S200 과정이 더욱 구체적으로 설명된다.
도 7은 도 6에서 정의된 공통 설정 함수를 기반으로 각 기능 모듈의 이름에 대응하여 생성 모듈(124)의 설정을 위한 함수 변환 및 설정 코드를 생성하는 과정으로 이해될 수 있다.
S210 과정은 module_define_start를 name##_module_entry로 변환시켜 공통 설정 함수를 각 기능 모듈에 맞게 변환하여 설정 코드를 생성하며, 도 6의 S110 과정에 대응될 수 있다.
S220 과정은 기능 모듈에 맞게 변환된 설정 코드를 바탕으로 생성 모듈(124)에 기능 모듈 생성 함수를 등록하는 과정으로 도 6의 S150 과정에 대응될 수 있다.
S230 과정은 생성 모듈(124)에 기능 모듈 변수(ex. 초기화를 위한 변수)를 설정하는 과정으로 도 6의 S160 과정에 대응될 수 있다.
S240 과정은 Module_define_end()로 각 기능 모듈에 대한 초기화 과정을 종료하는 과정으로, 도 6의 S170 과정에 대응될 수 있다.
도 8은 도 7의 각 단계를 구현하기 위한 코드를 보여준다.
도 8을 참조하면, 도 6 및 7에서 각 기능 모듈의 초기화를 위하여 사용되는 공통 설정 함수와 각 기능 모듈에서 공통 설정 함수를 이용한 설정 코드 변환 및 생성을 위해서 사용되는 인터페이스의 매핑 구조를 예시적으로 보여준다.
도 8의 오른쪽 코드(즉, #define module_define_start(name) 이하의 코드)는 도 7에서 설명한 공통 설정 함수를 나타내며, 도 8의 왼쪽 코드(즉, module_define_start(rtpsService) 이하의 코드)는 도 7에서 설명한 기능 모듈로 공통 설정 함수를 각 사용자 기능 모듈에 맞게 변환하여 설정 코드를 생성하는 인터페이스 호출의 예를 보여준다.
도 9는 도 6에서 정의된 공통 설정 함수의 설정 코드 변환 인터페이스 호출 과정을 보여주는 흐름도이다.
구체적으로, 도 9는 도 6에서 정의된 공통 설정 함수와 도 7의 각 기능 모듈 초기화를 위한 공통 설정 함수의 설정 코드 변환 인터페이스 호출 과정을 통해서 획득된 설정 코드를 바탕으로, 각 기능 모듈에 대한 초기화를 실행하는 과정을 보여준다.
각 기능 모듈은 모듈화를 위해 도 6 및 도 7에서 생성된 초기화를 위한 공통 설정 함수를 실행한다. 초기화를 위한 공통 설정 함수 실행 과정은 LoadMediaModule(name) 함수를 호출함으로써 name에 해당하는 기능 모듈에 대한 초기화 과정을 수행한다(S410). 이때 name에 해당하는 호출은 define에 의해서 name##_module_entry로 변경되고(S420), 이 define 값은 loadModule 함수의 인자로 전달되어 도 6의 S110의 #define module_start_define에 의해 정의된 name##_module_entry를 호출하게 된다(S430).
S440 과정에서, 각 기능 모듈을 초기화하기 위한 생성 모듈(124) 구조체에 대한 기능 모듈 구분 정보, 기능 모듈 생성 함수, 기능 모듈 변수 설정 과정 수행된다.
즉, 도 6, 도 7, 및 도 9의 과정은 기능 모듈을 생성하기 위하여 기능 모듈에 대한 초기화 작업을 수행하는 과정으로서, 도 6은 기능 모듈을 초기화하기 위한 공통 설정 함수를 생성하는 과정이고, 도 7은 기능 모듈 초기화를 위한 공통 설정 함수를 각 기능 모듈에 맞게 변환하는 과정이고, 도 9는 각 기능 모듈에 대한 초기화가 수행되는 과정으로 이해될 수 있다.
도 10은 도 9의 각 단계를 구현하기 위한 코드를 보여준다.
구체적으로, 도 10은 도 9의 각 과정을 구현한 예로서, 도 10을 참조하면, LoadMediaModule(rtpsService)함수를 실행하면 loadModule()함수를 실행하게 되고, 이때 인자인 CallFunction(name)은 rtpsService##_module_entry로 변환되며, LoadModule() 함수는 rtpsService##_module_entry를 인자로 받아서 rtpsService##_module_entry 실행하게 되어 도 6의 S110을 호출하게 되므로 기능 모듈에 대한 초기화가 수행된다.
도 11은 도 2의 생성 모듈을 통해 기능 모듈이 생성되는 과정을 보여주는 흐름도이다.
도 11은 생성 모듈(124)에 설정된 기능 모듈 생성 함수 및 기능 모듈 설정 변수를 이용하여 기능 모듈을 생성하는 과정을 보여준다. 기능 모듈의 생성은 기능 모듈 생성 함수에 설정된 생성자 함수를 호출함으로써 수행될 수 있다.
도 6, 도 7, 및 도 9에 도시된 과정들을 통해서 생성 모듈(124)에 기능 모듈을 생성할 공통 설정 함수가 구성되면, Launch_xxx_Module 함수를 호출하여 기능 모듈 생성을 시작한다(S510). Launch_xxx_Module 함수는 Module_load_find 함수를 호출하며, Module_load_find 함수는 생성할 기능 모듈의 초기화 정보를 검색한다(S520). 이때 검색 정보는 도 3에서 설명된 기능 모듈 구분 정보에 설정된 정보를 이용한다. 초기화 정보가 검색되면 기능 모듈에 대응하는 구조체를 생성하고(S530), 생성된 기능 모듈을 인자로 생성 모듈(124)에 저장된 기능 모듈 생성 함수를 실행한다(S540). 이때 기능 모듈은 생성 모듈(124)에 저장된 기능 모듈 설정 변수 정보를 이용하여 기능 모듈에 대한 초기화를 수행할 수 있다(S550). 생성 모듈(124)에 저장된 기능 모듈 생성 함수는 기능 모듈에 대한 구조체를 인자로 받아서 구조체에 대한 초기화, 함수 설정, 쓰레드 생성 등, 기능 모듈 생성을 위한 생성자 함수처럼 동작하게 된다.
도 12는 본 발명의 일 실시예에 따른 모듈화 방법을 실행하는 컴퓨팅 시스템을 보여주는 블록도이다.
도 12를 참조하면, 컴퓨팅 시스템(1000)은 버스(1200)를 통해 연결되는 적어도 하나의 프로세서(1100), 메모리(1300), 사용자 인터페이스 입력 장치(1400), 사용자 인터페이스 출력 장치(1500), 스토리지(1600), 및 네트워크 인터페이스(1700)를 포함할 수 있다.
프로세서(1100)는 중앙 처리 장치(CPU) 또는 메모리(1300) 및/또는 스토리지(1600)에 저장된 명령어들에 대한 처리를 실행하는 반도체 장치일 수 있다. 메모리(1300) 및 스토리지(1600)는 다양한 종류의 휘발성 또는 불휘발성 저장 매체를 포함할 수 있다. 예를 들어, 메모리(1300)는 ROM(Read Only Memory) 및 RAM(Random Access Memory)을 포함할 수 있다.
따라서, 본 명세서에 개시된 실시예들과 관련하여 설명된 방법 또는 알고리즘의 단계는 프로세서(1100)에 의해 실행되는 하드웨어, 소프트웨어 모듈, 또는 그 2 개의 결합으로 직접 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈형 디스크, CD-ROM과 같은 저장 매체(즉, 메모리(1300) 및/또는 스토리지(1600))에 상주할 수도 있다. 예시적인 저장 매체는 프로세서(1100)에 커플링되며, 그 프로세서(1100)는 저장 매체로부터 정보를 판독할 수 있고 저장 매체에 정보를 기입할 수 있다. 다른 방법으로, 저장 매체는 프로세서(1100)와 일체형일 수도 있다. 프로세서 및 저장 매체는 주문형 집적회로(ASIC) 내에 상주할 수도 있다. ASIC는 사용자 단말기 내에 상주할 수도 있다. 다른 방법으로, 프로세서 및 저장 매체는 사용자 단말기 내에 개별 컴포넌트로서 상주할 수도 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
110: DCPS 모듈
120: 라이브러리 모듈
130: 등록 모듈
121: 연결 모듈
122: 관리 모듈
123: 분류 모듈
124: 생성 모듈

Claims (10)

  1. DDS 미들웨어에서 기능 모듈을 모듈화하는 모듈화 장치에 있어서,
    응용프로그램과의 인터페이스를 제공하는 DCPS 모듈; 및
    기능 모듈을 초기화 및 생성하고, 생성되는 기능 모듈을 기능 별로 분류하여 저장하고, 상기 DCPS 모듈의 요청에 대응되는 기능 모듈을 상기 DCPS 모듈에 제공하는 라이브러리 모듈을 포함하는 모듈화 장치.
  2. 제 1 항에 있어서,
    상기 라이브러리 모듈은 상기 DCPS 모듈과의 인터페이스를 제공하는 연결 모듈;
    기능 모듈을 초기화하고 생성하는 생성 모듈;
    상기 생성된 기능 모듈을 기능 별로 분류하여 저장하는 분류 모듈; 및
    상기 분류 모듈을 검색하여 상기 DCPS 모듈의 요청에 대응되는 기능 모듈을 상기 연결 모듈을 통해 상기 DCPS 모듈로 전달하는 관리 모듈을 포함하는 것을 특징으로 하는 모듈화 장치.
  3. 제 2 항에 있어서,
    상기 생성 모듈은 기능 모듈 구분 정보, 기능 모듈 생성 함수 및 기능 모듈 설정 변수를 이용하여 기능 모듈을 초기화하고 생성하는 것을 특징으로 하는 모듈화 장치.
  4. 제 3 항에 있어서,
    상기 기능 모듈 구분 정보는 기능 모듈의 이름, 기능 모듈의 특성 및 기능 모듈의 중요도 중 적어도 하나를 포함하는 것을 특징으로 하는 모듈화 장치.
  5. 제 3 항에 있어서,
    상기 기능 모듈 설정 변수는 부울(bool), 인티저(integer), 플로트(float) 및 스트링(string) 값 중 어느 하나를 갖는 것을 특징으로 하는 모듈화 장치.
  6. 제 2 항에 있어서,
    상기 생성 모듈은 기능 모듈 초기화를 위한 공통 설정 함수를 포함하는 구조체로 정의되는 것을 특징으로 하는 모듈화 장치.
  7. 제 1 항에 있어서,
    상기 기능 모듈은 RTPS 모듈, QoS 모듈, TypeSupport 모듈, UDP 모듈 중 적어도 하나를 포함하는 것을 특징으로 하는 모듈화 장치.
  8. DDS 미들웨어에서 기능 모듈을 모듈화하는 모듈화 방법에 있어서,
    기능 모듈의 초기화를 위한 공통 설정 함수를 구성하는 단계;
    상기 공통 설정 함수를 실행하여 상기 기능 모듈을 초기화하는 단계; 및
    기능 모듈 구분 정보, 기능 모듈 생성 함수 및 기능 모듈 설정 변수를 이용하여 상기 기능 모듈을 생성하는 단계를 포함하는 모듈화 방법.
  9. 제 8 항에 있어서,
    상기 생성되는 기능 모듈을 기능 별로 분류하여 저장하는 단계를 더 포함하는 것을 특징으로 하는 모듈화 방법.
  10. 제 9 항에 있어서,
    상기 생성되는 기능 모듈 중에서 DCPS 모듈의 요청에 대응되는 기능 모듈을 상기 DCPS 모듈로 전달하는 단계를 더 포함하는 것을 특징으로 하는 모듈화 방법.
KR1020140049503A 2014-04-24 2014-04-24 데이터 분산 서비스에서의 기능 모듈 모듈화 방법 및 모듈화 장치 KR20150123074A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140049503A KR20150123074A (ko) 2014-04-24 2014-04-24 데이터 분산 서비스에서의 기능 모듈 모듈화 방법 및 모듈화 장치
US14/547,171 US20150309788A1 (en) 2014-04-24 2014-11-19 Function module modularizing method in data distribution service and modularizing apparatus thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140049503A KR20150123074A (ko) 2014-04-24 2014-04-24 데이터 분산 서비스에서의 기능 모듈 모듈화 방법 및 모듈화 장치

Publications (1)

Publication Number Publication Date
KR20150123074A true KR20150123074A (ko) 2015-11-03

Family

ID=54334842

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140049503A KR20150123074A (ko) 2014-04-24 2014-04-24 데이터 분산 서비스에서의 기능 모듈 모듈화 방법 및 모듈화 장치

Country Status (2)

Country Link
US (1) US20150309788A1 (ko)
KR (1) KR20150123074A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190030116A (ko) * 2017-09-13 2019-03-21 한전케이디엔주식회사 Dds 미들웨어를 이용한 마이크로그리드 에너지관리시스템

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108334465B (zh) * 2018-02-06 2020-05-22 深圳壹账通智能科技有限公司 通信接口的配置方法、装置、设备及计算机可读存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151507A (en) * 1997-11-07 2000-11-21 Nokia Mobile Phones Ltd. Individual short message service (SMS) options
US6473707B1 (en) * 1998-08-21 2002-10-29 National Instruments Corporation Test executive system and method including automatic result collection
US20080082577A1 (en) * 2006-09-29 2008-04-03 Rockwell Automation Technologies, Inc. Module classification and searching for industrial control systems
KR101413295B1 (ko) * 2010-11-04 2014-06-30 한국전자통신연구원 확장성과 적응성을 가지는 dds 구조 및 dds를 구성하는 노드

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190030116A (ko) * 2017-09-13 2019-03-21 한전케이디엔주식회사 Dds 미들웨어를 이용한 마이크로그리드 에너지관리시스템

Also Published As

Publication number Publication date
US20150309788A1 (en) 2015-10-29

Similar Documents

Publication Publication Date Title
CN107579951B (zh) 一种业务数据处理方法、业务处理方法及设备
US8676848B2 (en) Configuring cloud resources
US9632764B2 (en) Defining configurable characteristics of a product and associating configuration with enterprise resources
US9116775B2 (en) Relationship-based dynamic firmware management system
US8924512B2 (en) Extensible remote display infrastructure with dynamic virtual channels
US20070233287A1 (en) Dynamic generation of tasks in resource constrained devices
JP2009266245A (ja) ネットワーク内の装置を管理するための方法、システム、およびプログラム
CN110753129A (zh) 消息传输方法、系统、装置、设备及计算机可读存储介质
EP3197122A1 (en) Method of forwarding in-application traffic on smart mobile terminal
CN110928548B (zh) 一种数据处理方法以及设备
CN113364853A (zh) 一种业务服务系统、业务请求方法及网关设备
CN109104368B (zh) 一种请求连接方法、装置、服务器及计算机可读存储介质
CN115516840A (zh) 一种信息处理方法、设备、系统、介质、芯片及程序
US9960968B2 (en) Identification of networking component application programming interfaces
CN113381870B (zh) 报文处理方法和设备
CN109145053B (zh) 数据处理方法和装置、客户端、服务器
CN114390044B (zh) 一种文件上传方法、系统、设备及存储介质
US8332493B2 (en) Directory server plug-in call ordering
KR20150123074A (ko) 데이터 분산 서비스에서의 기능 모듈 모듈화 방법 및 모듈화 장치
CN116233217B (zh) 基于路由的页面跳转方法、装置、电子设备及存储介质
CN109144520B (zh) Android中不同对象间的信息交互方法、装置、设备和存储介质
CN114546410A (zh) 一种基于设计模式的代码优化方法及相关设备
CN111459819B (zh) 软件测试方法及装置、电子设备、计算机可读介质
US7567971B2 (en) Generic symbol referencing mechanism
Steinheimer et al. M2M application service provision: an autonomous and decentralised approach

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid