KR101142322B1 - Asn.1 컴파일러 장치 - Google Patents

Asn.1 컴파일러 장치 Download PDF

Info

Publication number
KR101142322B1
KR101142322B1 KR1020090027727A KR20090027727A KR101142322B1 KR 101142322 B1 KR101142322 B1 KR 101142322B1 KR 1020090027727 A KR1020090027727 A KR 1020090027727A KR 20090027727 A KR20090027727 A KR 20090027727A KR 101142322 B1 KR101142322 B1 KR 101142322B1
Authority
KR
South Korea
Prior art keywords
data
per
asn
ber
encoding
Prior art date
Application number
KR1020090027727A
Other languages
English (en)
Other versions
KR20100109227A (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 KR1020090027727A priority Critical patent/KR101142322B1/ko
Publication of KR20100109227A publication Critical patent/KR20100109227A/ko
Application granted granted Critical
Publication of KR101142322B1 publication Critical patent/KR101142322B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/146Coding or compression of tree-structured data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/149Adaptation of the text data for streaming purposes, e.g. Efficient XML Interchange [EXI] format

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 인코딩 룰 간의 자동 상호 변환을 지원하는 ASN.1 컴파일러 장치가 개시된다. 본 발명의 ASN.1 컴파일러 장치는, 입력된 ASN.1 문서를 분석하여 각 단어들의 의미를 파악하는 어휘분석모듈; 토큰으로 분리된 단어들이 문장을 이룰 때 문법적으로 오류가 없는지 검사하는 구문분석모듈; 상기 문장의 의미를 분석하는 유효성 분석모듈; 파악된 의미에 따라 프로그램할 수 있는 언어로 변환하는 파일생성모듈; 및 상기 파일생성모듈에 의해 생성된 인코딩, 디코딩 함수를 이용하여 상호변환파일을 생성하는 상호변환파일 생성모듈을 포함한다.
ASN.1, 컴파일러, 인코딩, rule, 상호변환, 지능형, 교통 시스템

Description

ASN.1 컴파일러 장치{ASN.1 Compiler}
본 발명은 ASN.1 컴파일러 장치에 관한 것으로, 특히 다양한 ASN.1 인코딩 룰 간의 자동 상호 변환을 지원하는 ASN.1 컴파일러 장치에 관한 것이다.
일반적으로 ASN.1은 국제 전기 통신 연합(International Telecommunication Union; ITU)을 통해서 표준화된 데이터 교환을 정의한 프로토콜로, 네트워크 분야와 모바일 분야 등의 다양한 분야에서 이용되고 있다.
이러한 ASN.1은 다양한 운영 체제, 예를 들면, MS Windows, Sun Solaris, IBM AIX, HP UX, Mac OSX, Linux, FreeBSD 등을 사용하는 개별 시스템들 상호 간의 데이터 연동이 요구되면서, 각 시스템들이 사용하는 데이터 저장 구조의 차이에 의해 발생하는 데이터 해석 오류에 관한 문제를 해결하기 위하여 제안되었다.
시스템 개발 시, ASN.1 컴파일러에서 생성된 인코딩 및 디코딩 소스코드를 이용하여 개발을 수행하게 되는데, 이때 유선, 무선 등의 통신 방식에 따라 BER(Basic Encoding Rule), PER(Packed Encoding Rule), XER(XML Encoding Rule) 등 다양한 인코딩 방식이 사용될 수 있다.
특히, 지능형 교통 시스템(Intelligent Transport System; ITS)의 경우에는 국내 및 국제 표준들이 모두 ASN.1 표시 방법을 이용하여 제정되었다.
지능형 교통 시스템의 경우 운용 및 설치 특성상 유무선이 혼재된 환경이 많다. 예를 들면, 강남구 버스교통센터의 경우 자신의 지역에 다니는 버스의 위치정보를 무선으로 받아 서초구, 송파구 등의 인근 버스교통센터로 정보를 유선으로 전송하게 된다.
이때 버스와 강남구 버스교통센터 간 통신은 PER 방식의 인코딩 룰을 사용하고 버스교통센터 간의 통신은 BER 방식의 인코딩 룰을 사용하게 된다. 따라서, 강남구 버스교통센터에서는 버스에서 무선으로 전송된 BER 정보를 받아 BER 방식으로 디코딩하고, 이를 다시 PER 방식으로 인코딩하여 인근 버스교통센터에 전송하게 되는데, 이 작업은 매우 반복적일 뿐만 아니라 유무선이 혼재된 환경에서 모든 기능 개발 시 프로그래밍이 반복되어야 한다.
그러나, 반복되는 프로그래밍이지만 데이터 타입별, 메시지별 인코딩 및 디코딩 함수가 다르기 때문에 일괄적으로 하나의 함수로 묶을 수도 없다. 따라서, 이러한 어려움은 대부분의 지능형 교통 체계의 개발 과정에서 빈번히 등장하고 있으나 그 해결이 어려운 상태이다.
따라서, 본 발명의 목적은 인코딩 룰 간의 상호 변환을 자동 생성하는 ASN.1 컴파일러 장치를 제공하는 것이다.
상기의 목적은, 입력된 ASN.1 문서를 분석하여 각 단어들의 의미를 파악하는 어휘분석모듈; 토큰으로 분리된 단어들이 문장을 이룰 때 문법적으로 오류가 없는지 검사하는 구문분석모듈; 상기 문장의 의미를 분석하는 유효성 분석모듈; 파악된 의미에 따라 프로그램할 수 있는 언어로 변환하는 파일생성모듈; 및 상기 파일생성모듈에 의해 생성된 인코딩, 디코딩 함수를 이용하여 상호변환파일을 생성하는 상호변환파일 생성모듈을 포함하는 인코딩 룰 간의 자동 상호 변환을 지원하는 ASN.1 컴파일러 장치에 의해 달성된다.
바람직하게, 상기 상호변환파일 생성모듈이 생성한 상호변환파일은 상호변환 구조와 상호변환 함수를 포함한다.
상기 상호변환 구조는 다음 문장의 구조를 포함한다.
A_BER_Data=A_PER_to_BER_Encode(A_PER_Data)
여기서, 상기 문장의 구조는 표현 A가 PER 인코딩 룰을 사용하여 인코딩된 데이터(A_PER_Data)가 입력될 경우 이를 BER 인코딩 룰을 사용하여 인코딩한 데이터(A_BER_Data)를 생성하는 것을 의미한다.
또한, 상기 상호변환 함수는 다음 문장의 함수를 포함한다.
A_BER_Data = A__PER_to_BER_Encode(A_PER_Data)
{
A_Common_Data=A_PER_Decode(A_PER_Data);
A_BER_Data=A_BER_Encode(A_Common_Data);
}
여기서, 상기 문장의 함수는 PER 인코딩 룰로 인코딩된 데이터(A_PER_Data)가 입력되면 이를 PER 인코딩 룰로 디코딩(A_PER_Decode)하여 모든 인코딩 룰에서 공용으로 사용하는 공통데이터구조(A_Common_Data)로 변환하고, 변환된 공통데이터구조(A_Common_Data)는 BER 인코딩 룰로 인코딩된 데이터(A_BER_Data)로 변환되는 것을 의미한다.
상기의 구성에 의하면, 인코딩룰 간의 자동 상호 변환 기능을 생성해주어, 복잡한 반복작업의 회피로 인한 개발 기간의 단축, 시스템 안정성 향상 등의 장점을 얻을 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 일 실시 예를 상세하게 설명한다.
도 1은 본 발명에 따른 ASN.1 컴파일러의 기능 블록을 나타내는 구성도이다.
도 1을 참조하면, ASN.1 컴파일러는, 어휘분석모듈(10), 구문분석모듈(20), 유효성 분석모듈(30), 파일생성모듈(40), 및 상호변환파일 생성모듈(50)로 구성된다.
어휘분석모듈(10)은 입력된 ASN.1 문서를 분석하여 각 단어들의 의미를 파악한다. 즉, 키워드를 중심으로 모든 단어를 분리하여 각각의 토큰에 저장하게 된다. 여기서, ASN.1 문서는 국제 규격(ITU-T)에서 정의된 데이터 정의를 사용하거나 응용 프로그램 개발자가 자체 정의할 수 있다.
구문분석모듈(20)은 토큰으로 분리된 단어들이 문장을 이룰 때 문법적으로 오류가 없는지 검사한다. 형식화된 이메일을 예로 들면, 시작할 때 인사말이 먼저 나오는지, 서론, 본론, 결론으로 이야기가 전개되는지, 또는 이메일을 종료할 때 보낸 사람의 인적사항이 형식에 맞게 기재되었는지 등 형식을 검사한다.
유효성 분석모듈(30)은 문장의 의미를 분석한다. 구문분석모듈(20)의 결과에 따라 각각의 단어들이 위치를 갖게 되고 나름의 의미를 갖게 된다. 상기의 이메일을 예로 들면, 앞쪽에 기재된 이름은 받는 사람 이름이고, 마지막에 기재된 이름은 보낸 사람으로 인식하는 것이다.
파일생성모듈(40)은 파악된 의미에 따라 프로그램할 수 있는 언어로 변환한다. 파일생성모듈(40)에 의해 구조 파일(*.h)과, 인코딩 및 디코딩 함수(*.c)가 생성된다. 각각의 표현마다 각자의 구조 파일과 함수 파일이 만들어지는데, 예를 들어 A라는 표현이 정의된 경우, A.h와 A.c가 생성되고, A.c에는 A_PER_Encode(), A_PER_Decode(), A_BER_Encode(), A_BER_Decode() 등이 생성된다. 여기서, 기본 부호화 규칙(BER:Basic Encoding Rules), 정규화 부호화 규칙(CER:Canonical Encoding Rules), 식별 부호화 규칙(DER:Distinguished Encoding Rules), XML 부호화 규칙(XER:XML Encoding Rules), 묶음 부호화 규칙(PER:Packed Encoding Rules)은 인코딩 룰을 의미하는데 각각 무선과 유선에서 사용된다.
즉, BER은 ASN.1 형태의 추상 데이터를 네트워크상에 전송할 수 있는 옥텟 형식으로 변환하는 방법으로, 데이터의 형태와 길이에 따라 부호화 방법이 달라지나 모두 식별자, 길이, 내용, 내용 끝을 나타내는 옥텟으로 형성되는 것이다. 또한, CER은 BER의 부호화 옵션을 제한한 것으로 다량의 데이터 부호화 및 전송을 위한 무한정 길이 형식으로 형성되는 것이다. 또한, DER은 한정 길이 형식으로 데이터의 길이가 0~127인 경우에는 짧은 길이를, 128이상 경우에는 긴 길이 형식을 사용하되 그 길이는 최소 옥텟 숫자로 부호화되는 것이다. 디지털 서명과 같이 유일한 옥텟의 부호화가 필요한 응용 프로그램에서 사용될 수 있다. 또한, XER은 확장성 생성 언어(XML) 구문으로 축약된 형태는 아니지만 ASN.1 구문 사용과 XML 도구에 의한 데이터 생성이 가능하고, XER은 XML을 사용하기 때문에 용이하게 알 수 있는 것이다. PER은 데이터 구조에서 BER보다 많은 축약을 위해 데이터 종류 기반의 부호화한 것이다.
상호변환파일 생성모듈(50)은 파일생성모듈(40)에 의해 생성된 인코딩, 디코 딩 함수를 이용하여 상호변환파일을 생성한다.
도 2는 상호변환파일 생성모듈(50)에 의해 적용되는 알고리즘을 설명하는 플로차트이다.
입력된 ASN.1 모듈을 읽어(단계 S21), ASN.1 모듈이 존재하는지 판정하여(단계 S22) 존재하지 않으면 모듈 구동을 완료하고 존재하면 각각에 맞는 구조 파일(*.h)과 함수 파일(*.c)를 생성한다(단계 S23).
이어, 삽입 구문(Import)을 순서대로 읽어(단계 S24) 각각의 #include 구문을 생성한다(단계 S25a). 삽입 구문이 존재하지 않는 것으로 판정하면(단계 S25), 표현(expression)을 순서대로 읽어(단계 S26) 상호변환 구조(*.h)와 상호변환 함수(*.c)를 생성하고(단계 S28, S29), 모든 표현들을 읽어 표현이 존재하지 않은 것으로 판정하면(단계 S27) 다음 ASN.1 모듈로 넘어가 ASN.1 모듈을 읽는 단계로 복귀한다.
이와 같은 루틴으로 모든 ASN.1 모듈의 처리가 완료되면 상기와 같이 모듈 기동을 완료한다.
여기서, 상호변환 함수의 예를 구체적으로 설명한다.
A 라는 표현이 있다고 가정하면 A.h 파일에는 다음과 같은 문장의 구조가 생성된다.
A_BER_Data=A_PER_to_BER_Encode(A_PER_Data)
이 구조의 의미는 표현 A가 PER 인코딩 룰을 사용하여 인코딩된 데이터(A_PER_Data)가 입력될 경우 이를 BER 인코딩 룰을 사용하여 인코딩한 데이 터(A_BER_Data)를 생성하는 것이다.
A.c 파일에는 아래와 같은 문장의 함수가 생성된다.
A_BER_Data = A__PER_to_BER_Encode(A_PER_Data)
{
A_Common_Data=A_PER_Decode(A_PER_Data);
A_BER_Data=A_BER_Encode(A_Common_Data);
}
이 함수의 의미는 PER 인코딩 룰로 인코딩된 데이터(A_PER_Data)가 입력되면 이를 PER 인코딩 룰로 디코딩(A_PER_Decode)하여 모든 인코딩 룰에서 공용으로 사용하는 공통데이터구조(A_Common_Data)로 변환한다. 변환된 공통데이터구조(A_Common_Data)는 BER 인코딩 룰로 인코딩된 데이터(A_BER_Data)로 변환되게 된다.
이상에서는 본 발명의 실시 예를 중심으로 설명하였지만, 당업자의 수준에서 다양한 변경을 가할 수 있음은 물론이다. 따라서, 본 발명의 권리범위는 상기한 실시 예에 한정되어 해석될 수 없으며, 이하에 기재되는 특허청구범위에 의해 해석되어야 한다.
도 1은 본 발명에 따른 ASN.1 컴파일러의 기능 블록을 나타내는 구성도이다.
도 2는 상호변환파일 생성모듈(50)에 의해 적용되는 알고리즘을 설명하는 플로차트이다.

Claims (4)

  1. ASN.1 컴파일러 장치로서,
    입력된 ASN.1 문서를 분석하여 각 단어들의 의미를 파악하는 어휘분석모듈;
    토큰으로 분리된 단어들이 문장을 이룰 때 문법적으로 오류가 없는지 검사하는 구문분석모듈;
    상기 문장의 의미를 분석하는 유효성 분석모듈;
    파악된 의미에 따라 프로그램할 수 있는 언어로 변환하는 파일생성모듈; 및
    상기 파일생성모듈에 의해 생성된 인코딩, 디코딩 함수를 이용하여 상호변환 구조와 상호변환 함수를 포함하는 상호변환파일을 생성하는 상호변환파일 생성모듈을 포함하되;
    상기 상호변환 함수는 다음 문장의 함수를 포함하는 것을 특징으로 하는 ASN.1 컴파일러 장치.
    A_BER_Data = A__PER_to_BER_Encode(A_PER_Data)
    {
    A_Common_Data=A_PER_Decode(A_PER_Data);
    A_BER_Data=A_BER_Encode(A_Common_Data);
    }
    (여기서, 상기 문장의 함수는 PER 인코딩 룰로 인코딩된 데이터(A_PER_Data)가 입력되면 이를 PER 인코딩 룰로 디코딩(A_PER_Decode)하여 모든 인코딩 룰에서 공용으로 사용하는 공통데이터구조(A_Common_Data)로 변환하고, 변환된 공통데이터구조(A_Common_Data)는 BER 인코딩 룰로 인코딩된 데이터(A_BER_Data)로 변환되는 것을 의미한다)
  2. 삭제
  3. 삭제
  4. 삭제
KR1020090027727A 2009-03-31 2009-03-31 Asn.1 컴파일러 장치 KR101142322B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090027727A KR101142322B1 (ko) 2009-03-31 2009-03-31 Asn.1 컴파일러 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090027727A KR101142322B1 (ko) 2009-03-31 2009-03-31 Asn.1 컴파일러 장치

Publications (2)

Publication Number Publication Date
KR20100109227A KR20100109227A (ko) 2010-10-08
KR101142322B1 true KR101142322B1 (ko) 2012-05-17

Family

ID=43130372

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090027727A KR101142322B1 (ko) 2009-03-31 2009-03-31 Asn.1 컴파일러 장치

Country Status (1)

Country Link
KR (1) KR101142322B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105072130A (zh) * 2015-08-26 2015-11-18 广州慧睿思通信息科技有限公司 一种asn.1解码器代码自动生成方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101449657B1 (ko) * 2013-03-05 2014-10-13 한국과학기술연구원 연산자의 값의 범위를 이용한 중간 언어 변환 방법과 그를 위한 시스템 및 컴퓨터로 읽을 수 있는 기록매체

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5649227A (en) 1991-05-15 1997-07-15 Nec Corporation System for supporting a conversion between abstract syntax and transfer syntax
JP2000066980A (ja) 1998-08-21 2000-03-03 Nippon Telegr & Teleph Corp <Ntt> 異種プロトコル対応通信網管理システム
KR20020090512A (ko) * 2001-05-28 2002-12-05 주식회사 하이닉스반도체 Asn.1 컴파일러의 상호 참조 정의 에러 처리 방법
KR20030094632A (ko) * 2002-06-07 2003-12-18 인터내셔널 비지네스 머신즈 코포레이션 변환방식 기계번역시스템에서 사용되는 변환사전을생성하는 방법 및 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5649227A (en) 1991-05-15 1997-07-15 Nec Corporation System for supporting a conversion between abstract syntax and transfer syntax
JP2000066980A (ja) 1998-08-21 2000-03-03 Nippon Telegr & Teleph Corp <Ntt> 異種プロトコル対応通信網管理システム
KR20020090512A (ko) * 2001-05-28 2002-12-05 주식회사 하이닉스반도체 Asn.1 컴파일러의 상호 참조 정의 에러 처리 방법
KR20030094632A (ko) * 2002-06-07 2003-12-18 인터내셔널 비지네스 머신즈 코포레이션 변환방식 기계번역시스템에서 사용되는 변환사전을생성하는 방법 및 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105072130A (zh) * 2015-08-26 2015-11-18 广州慧睿思通信息科技有限公司 一种asn.1解码器代码自动生成方法
CN105072130B (zh) * 2015-08-26 2018-03-06 广州慧睿思通信息科技有限公司 一种asn.1解码器代码自动生成方法

Also Published As

Publication number Publication date
KR20100109227A (ko) 2010-10-08

Similar Documents

Publication Publication Date Title
CN106970820B (zh) 代码存储方法及代码存储装置
JP3368883B2 (ja) データ圧縮装置、データベースシステム、データ通信システム、データ圧縮方法、記憶媒体及びプログラム伝送装置
CN105337968A (zh) 一种跨平台通讯协议代码的转换方法及其系统
US20110153531A1 (en) Information processing apparatus and control method for the same
US20100211867A1 (en) Processing module, a device, and a method for processing of xml data
CN111131403A (zh) 一种物联网设备的消息编解码方法及装置
KR20180126479A (ko) 언어 인식 방법, 디바이스 및 시스템
JP6699200B2 (ja) シンプルデータタイプに対するグラマー生成
KR101142322B1 (ko) Asn.1 컴파일러 장치
CN110020412B (zh) 一种生成imix标准报文的方法、装置及电子设备
CN113162977B (zh) 一种信息处理方法及装置、设备、存储介质
WO2007076676A1 (fr) Procede pour la production automatique de code de codage/decodage des unites de donnees de protocole (pdu) base sur une definition de notation de syntaxe abstraite numero 1 (asn.1)
CN113742294A (zh) 一种asn.1-per信令消息解码方法、系统、装置及介质
CN111782882A (zh) 一种tcp报文转换方法、装置、系统及计算机存储介质
CN110543371B (zh) 一种远程调用接口的方法、装置、电子设备和存储介质
CN101000622B (zh) 一种校验可扩展标记语言模式有效性的方法及装置
US6915352B2 (en) Infrared transmission system with automatic character identification
US7243341B2 (en) Scripting language for processing typed structured data
US20230214577A1 (en) Character string transmission method and device, computer, and readable storage medium
CN110601794B (zh) 一种asn.1编解码模块、报文数据编解码方法
KR20100038028A (ko) 경로 코드를 이용한 xml 문서의 부호화 및 복호화 방법과 장치
CN114390032B (zh) 一种出口网关请求方法、装置、设备及介质
WO1997008616A1 (en) System and method for parsing and building data signals
CN115190184B (zh) 一种二进制消息信元编辑方法、系统及存储介质
JP2004234405A (ja) プロトコル符号化/復号化装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20150427

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160426

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170405

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180416

Year of fee payment: 7