KR100938226B1 - Method for storing data according to a size of asn.1 file - Google Patents

Method for storing data according to a size of asn.1 file Download PDF

Info

Publication number
KR100938226B1
KR100938226B1 KR1020080093726A KR20080093726A KR100938226B1 KR 100938226 B1 KR100938226 B1 KR 100938226B1 KR 1020080093726 A KR1020080093726 A KR 1020080093726A KR 20080093726 A KR20080093726 A KR 20080093726A KR 100938226 B1 KR100938226 B1 KR 100938226B1
Authority
KR
South Korea
Prior art keywords
asn
file
data
size
info
Prior art date
Application number
KR1020080093726A
Other languages
Korean (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 KR1020080093726A priority Critical patent/KR100938226B1/en
Application granted granted Critical
Publication of KR100938226B1 publication Critical patent/KR100938226B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

PURPOSE: A data storing method for storing an ASN.1 file at low cost is provided to efficiently store an ANS.1 file according to the size of the ANS.1 file and to reduce the cost of the ASN.1. CONSTITUTION: A data storing method confirms whether the size of an ASN.1 file is greater than a specified value(S210). If the ASN.1 file is greater than a specific value, information about the ASN.1 file is stored in a general tree structure(S211). If the ASN.1 file is smaller than a specific value, information about ASN.1 file is stored in an array table structure(S220). The ASN.1 file is compiled using the related stored information(S230). A source file and a header file are generated(S240).

Description

ASN.1 파일의 크기에 따른 데이터 저장 방법 {Method for storing data according to a size of ASN.1 file}How to save data according to the size of the AS.1 file {Method for storing data according to a size of ASN.1 file}

본 발명은 데이터를 저장하는 방법에 관한 것으로서, 더 상세하게는 ASN.1 파일의 크기에 따라 소규모 ASN.1 파일(ASN.1을 사용하여 정의된 문서임)을 어레이 구조로 저장하는 방법에 관한 것이다. The present invention relates to a method for storing data, and more particularly, to a method for storing a small ASN.1 file (which is a document defined using ASN.1) in an array structure according to the size of the ASN.1 file. will be.

ASN.1은 Abstract Syntax Notation #1을 말하는 것으로서, 국제전기통신 연합(ITU)에서 정의한 네트워크상의 데이터 교환을 정의한 프로토콜로 X.680에 정의되어 있다. OSI 참조 모델에서 ASN.1은 네트워크 관리 시스템에 있는 관리되는 개체와 같이 데이터 구조를 기술하는데 사용되는 표시법이다.ASN.1 stands for Abstract Syntax Notation # 1, defined in X.680 as a protocol that defines the exchange of data over networks defined by the International Telecommunication Union (ITU). In the OSI reference model, ASN.1 is a notation used to describe data structures, such as managed entities in a network management system.

네트워크상에 존재하는 다양한 종류의 시스템들은 각각 데이터를 표현하는 독특한 방식을 가지고 있다. 따라서 네트워크 상에서 메시지를 교환하기 위해서는 모든 시스템에서 받아들일 수 있는 형태의 호환성있는 데이터 표현방식을 정의할 필요가 있다. 이러한 제반 환경에 의해서 ASN.1이 정의되었으며, 이 ASN.1에서는 Integer나 각종 String형태의 데이터를 비롯하여 그러한 ASN.1 content들의 모임인 Sequence나 Set등의 데이터 표현방식이 정의된다. 따라서, 대부분의 네트워크 상에서 교환되어지는 메시지들을 ASN.1 방식에 따라서 표현할 수 있게 되었다.The different kinds of systems on the network each have their own unique way of representing data. Thus, to exchange messages over a network, it is necessary to define a compatible data representation that is acceptable to all systems. In this environment, ASN.1 is defined. In this ASN.1, Integer or String-type data is defined, and the data representation method such as Sequence or Set, which is a collection of such ASN.1 contents, is defined. Therefore, messages exchanged on most networks can be represented according to the ASN.1 method.

그런데, 일반적으로 ASN.1 파일(ASN.1 문서라고도 할 수 있음)에 정의된 ASN.1 정보 객체들(Object)을 컴파일하는 과정에서 객체 상호간의 참조 관계, Data Type, 제약사항 등의 정보(Meta Data)가 저장되어야 하는데, 이는 컴파일러가 최종 출력물을 생성하는데 필수적으로 쓰이게 된다. 이 메타 데이터는 트리(tree)형태의 종속성을 가지기 때문에, 통상적으로 컴파일러는 트리 구조를 가지는 저장 구조체에 메타 데이터를 저장한다. However, in general, information such as reference relations, data types, and constraints between objects in the process of compiling ASN.1 information objects defined in the ASN.1 file (also referred to as ASN.1 document) Meta Data) must be stored, which is essential for the compiler to produce the final output. Since this metadata has a tree-type dependency, the compiler typically stores the metadata in a storage structure having a tree structure.

이와 같이 트리 구조는 컴파일러의 일반적인 정보저장 구조로 활용되고 있다. 그러나 트리 구조 방식으로 데이터를 저장하기 위해서는 비교적 많은 시스템 자원의 할당이 필요하며 처리 시간 역시 증가하게 된다. 이는 트리 정보를 구성하기 위한 필수 기능인 삽입, 삭제, 검색등의 기능 구현이 복잡하기 때문이다. As such, the tree structure is used as a general information storage structure of the compiler. However, in order to store data in a tree structure method, a relatively large amount of system resources need to be allocated, and processing time also increases. This is because complex implementation of functions such as insert, delete, and search, which are essential functions for configuring tree information, are complicated.

본 발명은 위에 기술된 종래 기술의 단점을 해결하고자 제안된 것으로서, ASN.1 파일을 효과적으로 저장하기 위한 방법을 제공하는데 그 목적이 있다. The present invention has been proposed to solve the disadvantages of the prior art described above, and an object thereof is to provide a method for effectively storing an ASN.1 file.

또한, ASN.1 파일을 저비용으로 저장하고, 컴파일 시간을 줄일 수 있는 방법을 제공하는데 다른 목적이 있다. Another object is to provide a way to save ASN.1 files at low cost and reduce compilation time.

이를 위해, 본 발명은 ASN.1 파일의 크기에 따른 데이터 저장 방법. 을 제공한다. 이 저장 방법은, ASN.1 파일을 읽어 들이는 단계와, ASN.1 파일의 크기가 설정값 이상인지를 확인하는 단계와, 설정값 이상이면 ASN.1 파일의 관련 정보를 일반적인 트리 구조로 저장하는 단계와, 설정값 이하이면 ASN.1 파일의 관련 정보를 어레이 테이블 구조로 저장하는 단계와, 저장된 관련 정보를 이용하여 ASN.1 파일을 컴파일함으로써 소스 및 헤더 파일을 생성하는 단계를 포함한다. To this end, the present invention is a data storage method according to the size of the ASN.1 file. To provide. This storage method includes the steps of reading an ASN.1 file, checking whether the size of the ASN.1 file is greater than or equal to the set value, and storing the relevant information of the ASN.1 file in a general tree structure if the size is larger than the set value. And storing the related information of the ASN.1 file in an array table structure if it is less than the set value, and generating a source and header file by compiling the ASN.1 file using the stored related information.

물론, 어레이 테이블 구조를 위해서는, 관련 정보를 트리 구조에 상응하는 동급 데이터와 구성요소로 구별하는 단계와, 현재 데이터를 기준으로 상기 현재 데이터로부터 동급 데이터 및 구성요소 중 적어도 하나까지의 소정 거리를 지정하는 단계가 포함될 수 있다. Of course, for the array table structure, distinguishing the relevant information into equivalent data and components corresponding to the tree structure, and designating a predetermined distance from the current data to at least one of the equivalent data and components based on the current data. A step may be included.

이때, 소정 거리는, 현재 데이터와 다음 동급 데이터 간의 거리, 또는 현재 데이터와 첫 번째 구성요소간의 거리가 될 수 있다. In this case, the predetermined distance may be a distance between the current data and the next equivalent data, or a distance between the current data and the first component.

따라서, 어레이 테이블 구조로부터 트리 구조로 재구성하는 것이 가능해 진다. Therefore, it becomes possible to reconstruct from the array table structure into the tree structure.

본 발명에 따르면, 본 발명은 컴파일하고자 하는 ANS.1 파일의 크기에 따라 중규모 이상의 ANS.1 파일은 트리 구조를 이용하여 저장을 수행하고, 소규모의 파 일인 경우 어레이 테이블에 메타 데이터를 저장함으로써 효율적으로 ANS.1의 문서를 저장할 수 있는 효과를 갖는다. According to the present invention, according to the present invention, according to the size of the ANS.1 file to be compiled, the ANS.1 file of medium size or more is stored using a tree structure, and in the case of a small file, the metadata is efficiently stored in an array table. This has the effect of saving a document from ANS.1.

또한, 본 발명은 ANS.1 파일의 크기에 따라 저장함으로써, 소규모 시스템 자원으로도 구현이 가능하며, 컴파일 시간을 줄일 수 있는 다른 효과를 갖는다.In addition, the present invention can be implemented as a small system resources by storing according to the size of the ANS.1 file, and has another effect of reducing the compilation time.

또한, 본 발명은 어레이 테이블 구조를 사용함으로써, 검색이 편리하고, 정보의 구조에 대한 논리 관계를 명확하게 파악할 수 있는 또 다른 효과가 있다. In addition, the present invention is advantageous in that the search is convenient by using the array table structure, and the logical relationship to the structure of the information can be clearly understood.

이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 기술하기로 한다. Hereinafter, exemplary embodiments of the present invention will be described with reference to the accompanying drawings.

도 1은 일반적으로 ASN.1 컴파일러를 이용하여 응용 프로그램을 개발하는 과정을 설명하는 도면이다. 이를 이해하기 쉽도록 순서 번호를 붙여 설명하면, 다음과 같다.1 is a diagram illustrating a process of developing an application program using an ASN.1 compiler in general. In order to make it easier to understand the sequence number is described as follows.

1) ASN.1 컴파일러(110)에 입력할 수 있도록 작성된 형태가 ASN.1 파일(즉 ASN.1 정의 문서)(100)이다. ASN.1 파일(100)은 국제 규격(ITU-T)에서 정의된 데이터 정의를 사용하거나 응용 프로그램 개발자가 자체 정의할 수 있다. 1) An ASN.1 file (ie, an ASN.1 definition document) 100 is created so that it can be input to the ASN.1 compiler 110. The ASN.1 file 100 can use data definitions defined in the International Standard (ITU-T) or can be defined by the application developer itself.

따라서, 응용 프로그램 개발자는 사용하고자 할 ASN.1 파일(100)을 작성하면, 이는 ANS.1 컴파일러(110)에 컴파일링될 수 있다. Therefore, when an application developer creates an ASN.1 file 100 to be used, it can be compiled into the ANS.1 compiler 110.

2) ASN.1 컴파일러(110)는 ASN.1 파일(100)을 입력받아 이를 분석하여 관련 인코딩/디코딩 등 함수를 포함한 소스(.c) 파일 및 헤더(.h) 파일(120)을 생성한 다. 2) The ASN.1 compiler 110 receives the ASN.1 file 100 and analyzes the generated ASN.1 file 100 to generate a source (.c) file and a header (.h) file 120 including functions such as encoding / decoding. All.

보통, ASN.1 컴파일러는 ASN.1의 C 소스 코드 컴파일러가 된다. 즉, 이 컴파일러는 ASN.1의 소스 파일을 입력으로 취하며, 헤더(.h) 파일은 C typedefs를 포함하고, 소스(.c) 파일은 인코딩과 디코딩 함수들을 포함하게 된다. Normally, the ASN.1 compiler is the C source code compiler for ASN.1. That is, the compiler takes the source file of ASN.1 as input, the header (.h) file contains C typedefs, and the source (.c) file contains encoding and decoding functions.

3) 응용 프로그램 개발자는 ASN.1 컴파일러(110)가 생성한 함수를 바탕으로 하여 데이터 교환 패킷을 생성하고 해석하는 프로그램, 통신 흐름, 그리고 기타 필요한 프로그램을 작성할 수 있게 된다.3) The application developer can write a program, a communication flow, and other necessary programs that generate and interpret data exchange packets based on the functions generated by the ASN.1 compiler 110.

4) 응용 프로그램 개발자는 타겟 시스템에 적합한 C 언어 컴파일러(130)를 사용하여 개발자가 직접 작성한 프로그램(121), ASN.1 컴파일러(110)가 생성한 소스(120), 그리고 데이터 처리 소프트웨어에서 제공한 라이브러리(122)를 함께 컴파일링하여 실행할 수 있는 응용 프로그램(140)을 생성한다. 4) The application program developer uses the C language compiler 130 suitable for the target system, the program 121 written by the developer, the source 120 generated by the ASN.1 compiler 110, and the data processing software. The library 122 generates an application program 140 that can be compiled and executed together.

간단히 요약하자면, ASN.1 컴파일러(110)를 사용하는 경우, ASN.1 데이터에 관련한 인코딩/디코딩 함수를 자동으로 생성하며 해당 기능을 제공할 수 있는 프로그램의 수동 개발을 피하면서 개발 기간 단축 및 프로그램의 에러를 최대 줄일 수 있게 된다. In short, when using the ASN.1 compiler 110, it automatically generates encoding / decoding functions related to ASN.1 data and reduces development time and avoids manual development of programs that can provide such functionality. It is possible to reduce the error of the maximum.

즉, ASN.1 컴파일러는 사용자가 ASN.1을 이용하여 데이터 구성을 정의하는 ASN.1 파일을 생성하면 이것을 프로그램에서 적용할 수 있도록 파싱하여 원하는 프로그램 소스 형태로 생산하는 역할을 하게 된다. 즉, ASN.1 컴파일러 특성에 따라서 ASN.1 파일을 C, C++, Java, C#형태의 소스로 출력하고 응용 프로그램 개발자는 프로젝트에 해당 소스를 첨가형 프로그래밍하기만 하면 된다.That is, the ASN.1 compiler plays the role of parsing the ASN.1 file that defines the data structure using ASN.1 to produce it in the form of the desired program source. In other words, according to the ASN.1 compiler characteristics, ASN.1 files are output as C, C ++, Java, and C # sources, and application developers only need to program the sources in the project.

이제, 도 1의 이해를 바탕으로, 본 발명을 구현하기 위한 실시예를 설명하기로 한다. 도 2는 본 발명의 일실시예에 따른 ASN.1 파일의 크기에 따라 컴파일하는 과정을 보여주는 순서도이다. 이를 설명하면 다음과 같다. Based on the understanding of FIG. 1, an embodiment for implementing the present invention will now be described. 2 is a flowchart illustrating a process of compiling according to the size of an ASN.1 file according to an embodiment of the present invention. This is described as follows.

앞서 기술한 바와 같이, 도 1의 ASN.1 파일(100)이 작성되거나 제공되는 경우를 상정한다. 즉,국제 규격에서 정의된 데이터 정의를 사용하거나 응용 프로그램 개발자가 자체 정의할 수 있음을 상기하자. As described above, it is assumed that the ASN.1 file 100 of FIG. 1 is created or provided. Recall that you can use data definitions defined in international standards or you can define your own by the application developer.

도 1의 ASN.1 컴파일러(110)는 ASN.1 파일(100)을 읽어 들인다(단계 S200). 이때, ASN.1 파일(100)에 정의된 ASN.1 정보 객체들(Object)을 컴파일하는 과정에서 객체 상호간의 참조 관계, Data Type, 제약사항 등의 정보(Meta Data:메타데이터)를 저장하여야 하는데, 이들은 컴파일러가 최종 출력물을 생성하는데 필수적으로 쓰이게 된다. 이 메타 데이터는 트리 형태의 종속성을 가지기 때문에, 통상적으로는 컴파일러는 보통 트리 구조를 가지는 저장 구조체(이하에서는, 트리 저장 구조체라고 하자)에 메타 데이터를 저장한다. 이 트리 구조에 대한 예가 도 3에 도시된다. The ASN.1 compiler 110 of FIG. 1 reads the ASN.1 file 100 (step S200). At this time, during the compilation of the ASN.1 information objects defined in the ASN.1 file 100, information (meta data) such as reference relations, data types, and constraints between the objects must be stored. These are essential for the compiler to produce the final output. Since this metadata has a tree-type dependency, the compiler usually stores the metadata in a storage structure having a tree structure (hereinafter, referred to as a tree storage structure). An example of this tree structure is shown in FIG.

따라서, 컴파일러(110)는 ASN.1 파일(100)이 큰 사이즈인지를 확인하는 과정을 거치게 된다(단계 S210). 만일 ASN.1 파일(100)의 사이즈가 크면(즉, 설정된 값 보다 큰 경우), 트리 저장 구조체에 메타 데이터를 저장하게 된다(단계 S211). 즉, 도 3에 도시된 트리 구조체 방식으로 메타 데이터가 저장된다. Therefore, the compiler 110 goes through a process of checking whether the ASN.1 file 100 is a large size (step S210). If the size of the ASN.1 file 100 is large (that is, larger than the set value), the meta data is stored in the tree storage structure (step S211). That is, metadata is stored in the tree structure shown in FIG. 3.

이와 달리, 만일 ASN.1 파일(100)의 사이즈가 크지 않으면(즉, 설정된 값보다 작은 경우), 메타 데이터는 어레이 테이블 저장 구조체에 저장된다(단계 S220). 이를 보여주는 예가 도 4와 5에 도시된다. 즉, 도 3에 도시된 트리 구조를 어레이 구조로 표현하여, 메타 데이터를 저장하는 과정이 필요하게 되는데, 이에 대하여는, 본 발명의 명확하고 용이한 이해를 위해 후술하기로 한다. Alternatively, if the size of the ASN.1 file 100 is not large (i.e., smaller than the set value), the meta data is stored in the array table storage structure (step S220). Examples of this are shown in FIGS. 4 and 5. That is, a process of storing meta data by expressing the tree structure shown in FIG. 3 as an array structure is required, which will be described later for clear and easy understanding of the present invention.

트리 저장 구조체에 저장되든지 어레이 테이블 저장 구조체에 저장되든지, 메타 데이터의 저장이 완료되면, ASN.1 파일(100)에 대한 컴파일이 수행된다(단계 S230). Whether the data is stored in the tree storage structure or the array table storage structure, when the storing of the meta data is completed, compilation of the ASN.1 file 100 is performed (step S230).

컴파일이 완료되면, 응용 프로그램에 사용될 수 있도록 파일 쓰기(write file)가 수행된다(단계 S240). 즉, 응용 프로그램에 적용할 수 있도록 파싱하여 원하는 프로그램 소스 형태로 생산하는 과정이 수행된다. 즉, ASN.1 컴파일러 특성에 따라 ASN.1 파일(100)을 C, C++, Java, C# 형태의 소스/헤더(120)가 생성된다. 따라서, 이 소스/헤더(120)를 해당 프로젝트에 적용하면, 본 발명의 구현이 가능하게 된다. When the compilation is completed, a write file is performed to be used for the application program (step S240). In other words, a process of parsing the application to an application program and producing it in the form of a desired program source is performed. That is, the source / header 120 of C, C ++, Java, or C # type is generated in the ASN.1 file 100 according to the ASN.1 compiler characteristics. Thus, applying this source / header 120 to the project enables implementation of the present invention.

이제, 도 3 내지 도 5를 참조하여 본 발명의 특징인 ASN.1 파일의 사이즈가 소규모 크기인 경우, 어레이 테이블 방식으로 데이터를 저장하는 과정을 기술하기로 한다. 먼저, 이를 이해 하기 위해 데이터를 저장하는 일반적인 트리 구조를 보면, 도 3과 같다. 도 3은 본 발명의 일실시예에 따른 중대규모 크기인 ASN.1 파일을 저장하는 트리 구조를 보여주는 도면이다.3 to 5, a process of storing data in an array table method when the size of the ASCII file, which is a feature of the present invention, is small. First, a general tree structure for storing data to understand this is as shown in FIG. 3 is a diagram illustrating a tree structure for storing ASN.1 files of medium and large sizes according to an embodiment of the present invention.

즉, 최상위인 노드 0으로 시작하여, 이 노드 0으로부터, 노드 2와 노드 5가 하위 노드로 구성되고, 이 노드 2에는, 노드 2, 노드 3, 노드 4가 구성되고, 노드 5에는 노드 6, 노드 7로 구성된다. 물론, 도 3의 예는 이해를 위한 것으로, 하위노 드는 더 많이 구성될 수 있고, 이와 다른 트리 구조를 보일 수도 있다. 따라서, 본 발명은 이에 한정되지 않음을 당업자라면 이해할 수 있을 것이다. That is, starting with node 0, which is the highest level, from this node 0, node 2 and node 5 are composed of subordinate nodes, and node 2 is configured with node 2, node 3, node 4, node 5 is node 6, It consists of node 7. Of course, the example of FIG. 3 is for the sake of understanding, and the subnodes may be configured more and may have a different tree structure. Therefore, it will be understood by those skilled in the art that the present invention is not limited thereto.

도 3의 트리 구성을 참조하여, 어레이 테이블 방식으로 표현하기 위해 먼저 트리구조를 어레이 테이블로 표현하는 개념을 보면 다음 표 1과 같다. Referring to the tree structure of FIG. 3, the concept of first expressing a tree structure as an array table in order to express the array table is as shown in Table 1 below.

노드Node 구성요소Component 동급 데이터Equivalent data 00 1One -- 1One 22 55 22 -- 33 33 -- 44 44 -- -- 55 66 -- 66 -- 77 77 -- --

여기서, 구성요소는 포함관계가 있는 데이터를, 동급 데이터는 포함관계가 없는 데이터를 나타낸다. Here, the component represents data having an inclusion relationship, and the equivalent data represents data having no inclusion relationship.

위 표 1은 트리 구조를 어레이 테이블로 표현하기 위한 정의로 볼 수 있다. 그러므로, 이러한 정의를 이용하여 어레이 테이블을 구현하는 과정을 이해하기 쉽도록 도면으로 도시한 것이 도 4이다. Table 1 above can be seen as a definition for representing a tree structure as an array table. Therefore, FIG. 4 is a diagram to help understand the process of implementing the array table using this definition.

즉, 도 4는 본 발명의 일실시예에 따른 소규모 크기인 ASN.1파일을 저장하는 어레이 테이블과의 관계를 표시하는 표를 보여주는 도면이다. 이를 설명하면, 표 1에서, 구성요소의 경우, [1], [2], [6]은 "1"로 표시하는데, 이는 구성요소가 있음을 나타내고, [-]는 "0"으로 표시하는데 본 항목이 없음을 의미한다. 동급 데이터의 경우에는 [5] -> "4"가 되고, [3], [4], [7]은 "1"로 표시한다. 즉, 동급 데이터가 있고 거리가 가까우면 "1"로 표시한 것이다. 물론, [-]는 "0"으로 표시한다. 이는 이해를 위한 것으로서 본 발명은 이에 한정되지 않는다. That is, FIG. 4 is a table showing a relationship with an array table for storing ASN.1 files having a small size, according to an embodiment of the present invention. To illustrate this, in Table 1, for components, [1], [2], and [6] are denoted by "1", indicating that there is a component, and [-] by "0". This means that there is no item. In the case of equivalent data, it becomes [5]-> "4", and [3], [4], and [7] are represented by "1". In other words, if there is similar data and the distance is close, it is indicated as "1". Of course, [-] is represented by "0". This is for the purpose of understanding and the present invention is not limited thereto.

그러면, 위 과정을 프로그램으로 작성하여 구현하는 과정을 개략적으로 설명하기로 한다. Then, the process of creating and implementing the above process as a program will be described in outline.

먼저 테이블을 보면 다음과 같다. First, look at the table:

struct ASN1_INFO_Tablestruct ASN1_INFO_Table

{{

ASN1_INFO * asn1_info;ASN1_INFO * asn1_info;

int diff_neighbor;int diff_neighbor;

int diff_child;int diff_child;

}}

여기서, asn_info는 ASN.1 데이타 정보를 저장하는 변수이고, diff_neighbor 는 어레이 중 , 현재 데이타와 다음 동급 데이타간의 거리이고, diff_child는 어레이 중,현재 데이타와 첫 번쩨 구성 요소간의 거리를 정의한다. Here, asn_info is a variable that stores ASN.1 data information, diff_neighbor is the distance between the current data and the next equivalent data in the array, and diff_child defines the distance between the current data and the first component in the array.

물론, ASN 정의는 아래와 같다.Of course, the ASN definition is

A::= SEQUENCEA :: = SEQUENCE

{{

b B,b B,

f Ff F

}}

B::= SEQUENCEB :: = SEQUENCE

{{

c C,c C,

d D,d D,

e E   e E

}}

F::= SEQUENCEF :: = SEQUENCE

{{

g G,g G,

h H   h H

}}

즉, ASN 정의는 도 4에 도시된 트리 구조를 나타낸다. That is, the ASN definition represents the tree structure shown in FIG.

struct ASN1_INFO_Table * T =struct ASN1_INFO_Table * T =

{{

{asn1_info_A, 1, 0},{asn1_info_A, 1 , 0} ,

{asn1_info_B, 1, 4},{asn1_info_B, 1 , 4} ,

{asn1_info_C, 0, 1},{asn1_info_C, 0 , 1} ,

{asn1_info_D, 0, 1},{asn1_info_D, 0 , 1} ,

{asn1_info_E, 0, 0},{asn1_info_E, 0 , 0} ,

{asn1_info_F, 1, 0},{asn1_info_F, 1 , 0} ,

{asn1_info_G, 0, 1},{asn1_info_G, 0 , 1} ,

{asn1_info_H, 0, 0},{asn1_info_H, 0 , 0} ,

}}

A에 관련 정보는 다음과 같다.The relevant information in A is as follows.

struct ASN1_INFO_Table *A_info = &T+0;struct ASN1_INFO_Table * A_info = & T + 0;

B에 관련 정보는 다음과 같다:The relevant information in B is as follows:

struct ASN1_INFO_Table * B_info = &T+1;struct ASN1_INFO_Table * B_info = & T + 1;

F에 관련 정보는 다음과 같다:The relevant information in F is as follows:

struct ASN1_INFO_Table * F_info = &T+5;struct ASN1_INFO_Table * F_info = & T + 5;

즉, 구성요소가 있는 것만을 나타내면 되므로, 위와 같이 작성하면 된다. In other words, it is necessary to indicate only that there is a component, so the above can be written.

그러면, B를 이용하여, 전체 트리 구조를 재조구성할 수 있도록 하려면, B에 관련 정보asn1_info_B의 내용은 다음과 같다.Then, in order to be able to reconstruct the entire tree structure using B, the contents of the related information asn1_info_B in B are as follows.

struct ASN1_INFO_Table * B_info =struct ASN1_INFO_Table * B_info =

{{

{asn1_info_B, 1, 4},//B의 구성요소 및 동급 데이터에 대한 정보, 1이므로 구성요소가 있고 현재 위치에서 +4를 하면 동급 데이터에 대한 정보가 있음Information about the component and equivalent data of {asn1_info_B, 1, 4}, // B, and there is a component because it is 1, and +4 at the current position has information about the equivalent data.

{asn1_info_C, 0, 1},//B의 구성요소로서 동급 데이터가 1만큼 떨어진 곳에 있음Component of {asn1_info_C, 0 , 1} , // B, where equivalent data is 1 apart

{asn1_info_D, 0, 1},// B의 구성요소로서 동급 데이터가 1만큼 떨어진 곳에 있음Component of {asn1_info_D, 0 , 1} , // B, where equivalent data is 1 apart

{asn1_info_E, 0, 0},// B의 구성요소로서 동급 데이터가 없음{asn1_info_E, 0, 0}, // A component of B, no equivalent data

}}

즉, 이는 이해하기 쉽도록 개념적으로 나타내면 도 5와 같다. 즉, 도 5에 도시된 B만의 트리를 위의 "ASN1_INFO_Table * B_info" 구조체에 저장해 놓으면, 전체 트리 구조(즉, 도 3을 참조)를 도출할 수 있게 된다. That is, this is conceptually shown in FIG. 5 for easy understanding. That is, if the tree of only B shown in FIG. 5 is stored in the "ASN1_INFO_Table * B_info" structure above, the entire tree structure (ie, see FIG. 3) can be derived.

이상 첨부된 도면을 참조하여 본 발명의 일실시예를 기술하였으나, 기술된 실시예들은 단지 예시적인 것이며, 한정적이 아님을 이 기술분야의 당업자라면 이해할 것이다. 또한, 이 기술분야의 당업자라면 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서도 수많은 변형과 변경이 가능함을 이해할 것이다. 따라서, 본 발명의 한계는 청구범위에 기술된 내용과 이에 대한 균등물에 의해 정해 져야 할 것이다. While an embodiment of the present invention has been described above with reference to the accompanying drawings, it will be understood by those skilled in the art that the described embodiments are merely exemplary and not limiting. In addition, those skilled in the art will understand that the present invention can be modified and modified in many ways without changing the technical spirit or essential features. Therefore, the limitations of the present invention should be defined by the contents described in the claims and their equivalents.

도 1은 일반적으로 ASN.1 컴파일러를 이용하여 응용 프로그램을 개발하는 과정을 설명하는 도면이다.1 is a diagram illustrating a process of developing an application program using an ASN.1 compiler in general.

도 2는 본 발명의 일실시예에 따른 ASN.1 파일의 크기에 따라 컴파일하는 과정을 보여주는 순서도이다. 2 is a flowchart illustrating a process of compiling according to the size of an ASN.1 file according to an embodiment of the present invention.

도 3은 본 발명의 일실시예에 따른 ASN.1 파일을 저장하는 일반적인 트리 구조를 보여주는 도면이다.3 is a diagram illustrating a general tree structure for storing an ASN.1 file according to an embodiment of the present invention.

도 4는 본 발명의 일실시예에 따른 소규모 크기인 ASN.1 파일을 저장하는 어레이 테이블과의 관계를 표시하는 표를 보여주는 도면이다. 4 is a table showing a relationship with an array table storing an ASN.1 file having a small size according to an embodiment of the present invention.

도 5는 본 발명의 일실시예에 따른 전체 트리 구조를 재구성하기 위한 일부 트리의 구조를 보여주는 도면이다. 5 is a diagram illustrating the structure of some trees for reconstructing the entire tree structure according to an embodiment of the present invention.

Claims (5)

ASN.1 파일을 읽어 들이는 단계와,Reading the ASN.1 file, 상기 ASN.1 파일의 크기가 설정값 이상인지를 확인하는 단계와,Checking whether a size of the ASN.1 file is equal to or larger than a set value; 설정값 이상이면 상기 ASN.1 파일의 관련 정보를 일반적인 트리 구조로 저장하는 단계와,Storing the related information of the ASN.1 file in a general tree structure if the set value is higher than the set value; 설정값 이하이면 상기 ASN.1 파일의 관련 정보를 어레이 테이블 구조로 저장하는 단계와,Storing the related information of the ASN.1 file in an array table structure if the set value is less than the set value; 저장된 관련 정보를 이용하여 상기 ASN.1 파일을 컴파일함으로써 소스 및 헤더 파일을 생성하는 단계Generating a source and header file by compiling the ASN.1 file using the stored related information 를 포함하는 ASN.1 파일의 크기에 따른 데이터 저장 방법. Data storage method according to the size of the ASN.1 file including. 제 1 항에 있어서,The method of claim 1, 상기 어레이 테이블 구조로 저장하는 단계는, Storing in the array table structure, 상기 관련 정보를 상기 트리 구조에 상응하는 동급 데이터와 구성요소로 구별하는 단계와, Distinguishing the related information into equivalent data and components corresponding to the tree structure; 현재 데이터를 기준으로 상기 현재 데이터로부터 상기 동급 데이터 및 구성요소 중 적어도 하나까지의 소정 거리를 지정하는 단계를 포함하는 ASN.1 파일의 크기에 따른 데이터 저장 방법. And specifying a predetermined distance from the current data to at least one of the equivalent data and the component based on the current data. 제 2 항에 있어서,The method of claim 2, 상기 소정 거리는, 현재 데이터와 다음 동급 데이터 간의 거리, 또는 현재 데이터와 첫 번째 구성요소간의 거리인 ASN.1 파일의 크기에 따른 데이터 저장 방법. The predetermined distance is a data storage method according to a size of an ASN.1 file, which is a distance between current data and next equivalent data, or a distance between current data and a first component. 제 3 항에 있어서,The method of claim 3, wherein 상기 어레이 테이블 구조로부터 상기 트리 구조로 재구성하는 단계를 더 포함하는 ASN.1 파일의 크기에 따른 데이터 저장 방법. And reconstructing the array table structure from the array table structure to the tree structure. 제 1 항에 있어서,The method of claim 1, 상기 관련 정보는 메타 데이터로서 객체 상호간의 참조 관계, 데이터 타입, 제약사항을 포함하고, The related information is metadata and includes reference relationships, data types, and constraints between objects, 상기 소스 및 헤더 파일은 C, C++, Java, C#형태 중 하나인 ASN.1 파일의 크기에 따른 데이터 저장 방법. The source and header file is a data storage method according to the size of the ASN.1 file of the C, C ++, Java, C # form.
KR1020080093726A 2008-09-24 2008-09-24 Method for storing data according to a size of asn.1 file KR100938226B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080093726A KR100938226B1 (en) 2008-09-24 2008-09-24 Method for storing data according to a size of asn.1 file

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080093726A KR100938226B1 (en) 2008-09-24 2008-09-24 Method for storing data according to a size of asn.1 file

Publications (1)

Publication Number Publication Date
KR100938226B1 true KR100938226B1 (en) 2010-01-22

Family

ID=41810140

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080093726A KR100938226B1 (en) 2008-09-24 2008-09-24 Method for storing data according to a size of asn.1 file

Country Status (1)

Country Link
KR (1) KR100938226B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040050420A (en) * 2002-12-10 2004-06-16 한국전자통신연구원 System for data processing of ASN.1 editor and method thereof

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040050420A (en) * 2002-12-10 2004-06-16 한국전자통신연구원 System for data processing of ASN.1 editor and method thereof

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
한국정보과학회 학술발표논문집한국정보과학회 1994년도 가을 학술발표논문집 제21권 제2호(B), pp.509-512 (4pages) 선창호(ChangHo Sun)외"ASN.1 인터프리터 설계및 구현"(1994. 10.)

Similar Documents

Publication Publication Date Title
US8997070B2 (en) Extension mechanism for scripting language compiler
US5745897A (en) Method and system for compiling management information base specifications
CN111666526A (en) Page generation method, device, equipment and storage medium
CN102447585B (en) Method and device for converting network configuration protocol response message into command line
US8667506B2 (en) Object oriented management device for ASN.1 message
CN104484216A (en) Method and device for generating service interface document and on-line test tool
US10666744B2 (en) Managing discovery and selection of service interface specifications
US20110134939A1 (en) Method for processing tlv format of communication data
CN102981941A (en) Alarm handling method and alarm handling device
CN107609302B (en) Method and system for generating product process structure
CN113515278A (en) Low code model processing method, system, electronic device and storage medium
CN111338637A (en) Code generation method and device
CN106713469B (en) Dynamic loading method, device and system for distributed container
CN100511140C (en) Method for script language calling multiple output parameter interface by component software system
US20200210488A1 (en) Automatic resource management for build systems
CN111966340A (en) Code generation method, device, equipment and medium based on Mybatis framework
CN111966718B (en) System and method for data propagation tracking of application systems
CN112416612B (en) Service calling method and device, computer equipment and readable storage medium
JP2014504469A (en) Network element configuration management
CN116301813A (en) Low-code platform development method and system
KR100938226B1 (en) Method for storing data according to a size of asn.1 file
CN109947435A (en) The dispositions method and system of server cluster software environment
CN103246671A (en) Processing method and device for abstract syntax notation files
JP7059757B2 (en) API processing method, terminal, API processing program
US20060253833A1 (en) System and method for efficient hosting of wireless applications by encoding application component definitions

Legal Events

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

Payment date: 20130114

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140114

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160114

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170110

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190114

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20191230

Year of fee payment: 11