KR101674543B1 - System and Method for Improving content Layer in protocol - Google Patents
System and Method for Improving content Layer in protocol Download PDFInfo
- Publication number
- KR101674543B1 KR101674543B1 KR1020150135490A KR20150135490A KR101674543B1 KR 101674543 B1 KR101674543 B1 KR 101674543B1 KR 1020150135490 A KR1020150135490 A KR 1020150135490A KR 20150135490 A KR20150135490 A KR 20150135490A KR 101674543 B1 KR101674543 B1 KR 101674543B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- xml
- subtree
- netconf
- root
- Prior art date
Links
Images
Classifications
-
- G06F17/30923—
-
- G06F17/21—
-
- G06F17/30132—
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Document Processing Apparatus (AREA)
Abstract
Description
본 발명은 NETCONF 프로토콜의 콘텐츠 계층에 관한 것으로, 구체적으로 장비 설정 정보의 종속성에 근거하여 효율성을 높인 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 장치 및 방법에 관한 것이다.The present invention relates to a content layer of a NETCONF protocol, and more particularly, to an apparatus and a method for improving a content layer of a NETCONF protocol that increases efficiency based on dependency of equipment configuration information.
다양한 이기종 장비로 구성되는 현대 네트워크는 구성 상태가 복잡하고 장비들의 종류가 많아서 그 관리 업무는 많은 시간과 인력이 요구된다.Modern networks, which are composed of various heterogeneous equipment, are complicated in configuration and have many types of equipment, so management tasks require a lot of time and manpower.
이를 중앙 집중식으로 수행할 수 있도록 한 것이 NETCONF 프로토콜이며 2006년도에 첫 표준이 공시된 NETCONF는 4 계층 구조를 가진다.The NETCONF protocol is a protocol that can be centrally managed. NETCONF, which is the first standard published in 2006, has a four-layer structure.
이런 4개의 계층 중에 Content 계층은 장비 설정 데이터를 모델링하여 생성하고 장비의 메모리에 저장하는 것과 관련이 있는 계층이다.Among these four layers, the Content layer is a layer related to modeling and creating equipment configuration data and storing it in the device's memory.
그러나 이 Content 계층에는 표준 데이터 모델링 기법으로 정해진 것이 없다. 다만 사실상의 표준으로 YANG이라는 데이터 모델링 언어를 사용하여 XML로 장비 설정 데이터를 모델링 하는 것이 일반적이다.However, there is no standard data modeling technique for this content layer. However, it is common to model equipment configuration data in XML using a data modeling language called YANG as the de facto standard.
그러나 이와 같은 XML로 장비 설정 데이터를 모델링 하는 방법은 다음과 같은 문제가 있다.However, there are the following problems with the method of modeling the equipment configuration data with such XML.
XML 문서를 처리하는 방법은 표준 NETCONF에서 서브트리 필터링과 XPath 기능을 모두 활용할 수 있기는 하지만 XML 문서를 생성할 때의 모델링 방식이 다소 비효율적이어서 데이터를 생성, 검색, 회수, 삭제할 때 장비의 설정 데이터 저장소 전체를 잠그는 형태로 명령을 수행하게 된다.Although the method of processing an XML document can utilize both the subtree filtering and the XPath function in the standard NETCONF, the modeling method for generating the XML document is somewhat inefficient, so that when generating, retrieving, retrieving, and deleting data, The command is executed in the form of locking the entire storage.
즉, 한 개의 NETCONF 매니저가 하나의 NETCONF 에이전트에 접근하였을 때 또 다른 NETCONF 매니저는 자신의 요청을 실행하기 위해서 대기하거나 또는 요청을 전송한 경우 실패 메시지를 받는 경우가 많이 발생한다는 것이다. That is, when one NETCONF manager accesses one NETCONF agent, another NETCONF manager often receives a failure message if it waits to execute its own request or when it sends a request.
이런 상황은 네트워크 규모가 커지는 경우 심각한 문제가 될 수 있는데, 이유는 네트워크 규모가 커지면 관리 업무를 위해 다수의 매니저가 존재하게 되고 동일 장비에 접근하는 확률도 상승하기 때문이다.This situation can be a serious problem if the network size increases because the larger the network size, the larger the number of managers for management tasks and the higher the probability of accessing the same equipment.
따라서 표준 NETCONF에서 사용하는 Content 계층의 데이터 모델링 방식은 매우 비효율적이고 데이터 모델링 방식이 비효율적인 것의 결과로 Operation 계층의 운영도 효율성이 떨어지게 된다.Therefore, the data modeling method of the Content layer used in the standard NETCONF is very inefficient and the data modeling method is inefficient. As a result, the operation level of the operation layer becomes inefficient.
네트워크 장비의 설정 데이터는 여러 개의 매니저가 같은 데이터에 접근하는 것을 막기 위해서 데이터 저장소 전체를 잠그는 것이 기본 동작이다.The network device's configuration data is the default behavior to lock the entire data store to prevent multiple managers from accessing the same data.
그러나 장비의 동일 인터페이스에서도 만약 각기 다른 포트 번호의 서브 넷만 논리적으로 추가하려는 경우 각기 다른 매니저가 자신만의 서브 넷을 추가하는 것이 가능해야 하지만 표준 NETCONF는 이런 경우라도 전체 데이터 저장소(메모리)를 잠그게 되어 하나의 매니저가 메모리에 접근하는 동안 다른 매니저의 접근을 처리할 수 없다. However, even on the same interface of the equipment, if you want to logically add only subnets with different port numbers, it is possible for different managers to add their own subnet, but the standard NETCONF will lock the entire data store So that one manager can not access another manager while accessing the memory.
따라서, Content 계층의 데이터 모델링 방식의 문제점을 개선하기 위한 새로운 방식의 Content 계층의 데이터 모델링 기술의 개발이 요구되고 있다.Therefore, it is required to develop a data modeling technique of a new content layer to improve the problem of the data modeling method of the content layer.
본 발명은 이와 같은 종래 기술의 NETCONF 프로토콜에서의 Content 계층의 데이터 모델링의 문제를 해결하기 위한 것으로, 장비 설정 정보의 종속성에 근거하여 효율성을 높인 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 장치 및 방법을 제공하는데 그 목적이 있다.The present invention solves the problem of data modeling of a content layer in the NETCONF protocol of the related art, and provides an apparatus and method for improving the content layer of the NETCONF protocol, which improves efficiency based on the dependency of the equipment setting information It has its purpose.
본 발명은 장비 설정 정보의 종속성을 기반으로 장비 설정 정보를 가진 XML 문서를 여러 개의 서브트리로 블록(Block)화하고 메모리에 저장되는 데이터를 분할하여 장비 설정 데이터에 대한 부분적인 접근이 가능하도록 한 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 장치 및 방법을 제공하는데 그 목적이 있다.In the present invention, an XML document having equipment configuration information is divided into a plurality of subtrees based on the dependency of the equipment setting information, and the data stored in the memory is divided to allow partial access to the equipment setting data It is an object of the present invention to provide an apparatus and method for improving the content layer of the NETCONF protocol.
본 발명은 장비 설정 데이터에 대한 부분적인 접근이 가능하도록 하여 여러 개의 매니저가 동일한 장비의 설정 변경 작업을 수행할 수 있도록 하고 또한 명령 수행의 반응성을 증가킨 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 장치 및 방법을 제공하는데 그 목적이 있다.The present invention relates to an apparatus and method for improving the content layer of the NETCONF protocol, which allows a plurality of managers to perform setting change operations of the same equipment by making partial access to equipment setting data possible, The purpose is to provide.
본 발명은 표준 NETCONF에 VTD-XML(Vitrual Token Descriptor-XML)을 적용하는 방법과 NETCONF 에이전트 내에서의 위치 및 데이터 모델링을 위한 데이터 모듈을 설계 및 구현하여 NETCONF를 이용한 네트워크 관리 작업의 생산성을 높인 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 장치 및 방법을 제공하는데 그 목적이 있다.The present invention relates to a method of applying VTD-XML (Vitrual Token Descriptor-XML) to a standard NETCONF and designing and implementing a data module for location and data modeling in a NETCONF agent, thereby improving the productivity of NETCONF- And an apparatus and method for improving the content layer of the protocol.
본 발명은 Content 계층에서 장비 설정 데이터를 XML로 생성할 때 서브트리를 기반으로 하는 저장 방법을 사용하는 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 장치 및 방법을 제공하는데 그 목적이 있다.An object of the present invention is to provide an apparatus and method for improving a content layer of a NETCONF protocol using a subtree-based storage method when generating equipment configuration data in XML at a content layer.
본 발명은 장비의 설정 데이터 간 종속성을 XPath에 의한 상대적 경로간의 관계로 만들어서 이를 테이블로 표현하여 모델링하는 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 장치 및 방법을 제공하는데 그 목적이 있다.It is an object of the present invention to provide an apparatus and method for improving the content layer of the NETCONF protocol, which expresses dependency between equipment setup data and a relative path by XPath and expresses it as a table.
본 발명은 오픈 소스로 공개되어 있는 VTD-XML의 확장판을 사용하여 앞의 기법을 고속으로 처리함과 동시에 XML 문서로부터 적합한 데이터를 고속으로 추출하는 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 장치 및 방법을 제공하는데 그 목적이 있다.The present invention provides an apparatus and method for improving the content layer of the NETCONF protocol that processes the above technique at high speed and extracts appropriate data from the XML document at high speed by using an extension of VTD-XML, which is open source, It has its purpose.
본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The objects of the present invention are not limited to the above-mentioned objects, and other objects not mentioned can be clearly understood by those skilled in the art from the following description.
이와 같은 목적을 달성하기 위한 본 발명에 따른 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 장치는 NETCONF 매니저로부터 전달되는 연산을 포함한 XML 문서가 XML 후보 문서를 저장하는 큐에 들어오면 우선순위를 확인하여 분류하는 후보 문서 체크 모듈;후보 문서 체크 모듈에서 분류된 XML 문서를 바이너리 배열로 표현하고 XML의 문서의 모든 원소의 위치와 내용을 저장하는 VTD-XML 모듈;VTD-XML 모듈에 의한 배열의 내용을 갖고 XPath 질의를 통해 필요한 데이터를 추출하는 데이터 추출부;추출된 데이터의 오퍼레이션 계층의 연산을 수행하는 오퍼레이션 계층 연산부;서로 주기적으로 통신하면서 장비 설정 데이터의 종속성에 근거한 장비 설정 데이터를 모델링하고 저장하는 장비 설정 데이터 저장소와 데이터 모듈;을 포함하고, NETCONF 에이전트가 구성되는 것을 특징으로 한다.In order to achieve the above object, an apparatus for improving the content layer of the NETCONF protocol according to the present invention comprises: an XML document including an operation to be delivered from a NETCONF manager, The document check module is a VTD-XML module that represents the XML document classified by the candidate document check module as a binary array and stores the location and contents of all the elements of the document of the XML, the XPath query with the contents of the array by the VTD- An operation layer operation unit for performing operation of the operation layer of the extracted data, a device setting data storing unit for modeling and storing the device setting data based on the dependency of the device setting data while periodically communicating with each other, And a data module; and that a NETCONF agent is configured .
여기서, 후보 문서 체크 모듈은 NETCONF 매니저로부터 전달되는 연산을 포함한 XML 문서가 XML 후보 문서를 저장하는 큐에 들어오면, 후보 문서를 체크하여 매니저의 등급과 XML 문서의 내용을 기반으로 하여 전달되는 XML 문서의 우선순위를 확인하고 이들을 긴급 XML 문서 또는 일반 XML 문서로 분류하는 것을 특징으로 한다.Here, when the XML document including the operation transmitted from the NETCONF manager enters the queue storing the XML candidate document, the candidate document check module checks the candidate document, and transmits the XML document transmitted based on the manager's class and the contents of the XML document And classifies them into an urgent XML document or a general XML document.
그리고 데이터 추출부는 필요한 데이터를 추출하는 과정에서, XPath 질의를 통해 필요한 데이터를 랜덤으로 접근하고 특정 순서 없이 순회할 수 있는 상태에서 필요한 데이터를 추출하는 것을 특징으로 한다.The data extracting unit extracts necessary data in a state in which required data is randomly accessed through an XPath query and can be circulated without a specific order in the process of extracting necessary data.
그리고 데이터 모듈은, 데이터를 모델링할 때 VTD-XML 모듈에 의해 생성된 배열 내의 XML 원소 위치의 주소를 기반으로 하는 것을 특징으로 한다.And the data module is based on the address of the XML element location in the array generated by the VTD-XML module when modeling the data.
그리고 데이터 모듈은, XPath로 표현 가능한 상대 경로를 활용하여 장비 데이터 간의 종속성을 표현하고 종속성을 가진 데이터들을 하나의 서브트리로 구성하는 테이블을 생성하는 것을 특징으로 한다.The data module is configured to express a dependency between equipment data by using a relative path that can be represented by XPath, and to generate a table in which data having a dependency is composed of one subtree.
그리고 각 서브트리는 하나의 저장 단위로서 저장 가능하며, 서브트리-기반 XML 저장에서는 전체 XML 트리가 분할 없이 전체로 저장될 수 있고, 노드별로 완전히 분리되어 저장될 수 있는 것을 특징으로 한다.In addition, each subtree can be stored as a single storage unit. In the subtree-based XML storage, the entire XML tree can be stored entirely without division, and can be stored separately for each node.
그리고 NETCONF 에이전트는, XML 문서로 된 정보를 네트워크 장비에 저장할 때 XPath의 상대경로에 기반한 XML 원소의 서브트리 형태로 분류하는 것을 특징으로 한다.The NETCONF agent is characterized by classifying the information in an XML document into a subtree of an XML element based on the relative path of the XPath when storing the information in the network device.
그리고 NETCONF 에이전트는, 서브트리 기반의 XPath 데이터 저장을 수행하고, XPath 처리를 통한 데이터 저장과 장비 설정 데이터의 종속성을 통합한 데이터 모델링을 수행하고, XPath 처리를 통한 데이터 저장소에서의 질의 처리를 수행하는 것을 특징으로 한다.The NETCONF agent performs XPath data storage based on the subtree, performs data modeling that integrates data storage through XPath processing and dependency of device setup data, and performs query processing in the data store through XPath processing .
다른 목적을 달성하기 위한 본 발명에 따른 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 방법은 NETCONF 에이전트에서의 XML 문서를 서브트리 기반으로 저장 처리하기 위하여, XML 문서를 확장 VTD-XML을 통해 파싱하여 VTD 바이트 배열로 저장하는 단계;문서 내 원소의 위치 주소를 기반으로 각 원소에 레이블링을 하여 할당하는 단계;원소의 중첩 깊이를 레벨로 표현하여 노드화하고 루트 원소를 중심으로 트리 형태로 나타내는 단계;XML 분할 스키마를 적용하여 노드가 반복 또는 선택 원소인지를 확인하는 단계;노드가 반복 또는 선택 원소 중의 하나라면 서브트리 루트로 지정하고 서브트리 루트에 대한 경로 타입으로 지정 후 PathID를 부여하는 단계;서브트리 루트 노드의 레코드를 생성하여 테이블에 저장하는 단계;를 포함하는 것을 특징으로 한다.A method for improving the content layer of the NETCONF protocol according to the present invention for achieving another object is to parse an XML document through extended VTD-XML to store the XML document in a subtree based on the NETCONF agent, A step of labeling and assigning each element based on a position address of an element in a document, a step of representing node depth by representing levels of elements, Determining whether the node is a repetition or a selection element if the node is one of a repetition or a selection element, designating the node as a subtree root, assigning it as a path type for a subtree root, And storing the generated record in a table.
여기서, 노드는 XML 태그 이름 또는 속성으로 분류되는 것을 특징으로 한다.Here, the node is characterized by being classified into an XML tag name or an attribute.
그리고 각 원소에 레이블링을 하여 할당하는 단계에서, 각 원소에 레이블링을 하고 상위 원소와 하위 원소의 포함 및 종속 관계를 레이블링 범위로 표현하고 할당하는 것을 특징으로 한다.In addition, in the step of assigning each element by labeling, each element is labeled, and the inclusion and subordination of the parent element and the subordinate element are expressed and assigned as a labeling range.
그리고 서브트리 루트 노드의 레코드를 생성하여 테이블에 저장하는 단계에서, 서브트리 루트 노드만을 PathID, begin, end, value로 구성되는 레코드를 생성 후 이것을 테이블에 저장하는 것을 특징으로 한다.Then, in the step of generating a record of the subtree root node and storing it in the table, a record consisting of PathID, begin, end, and value is stored in the table.
그리고 노드가 반복 또는 선택 원소가 아니라면 일반 노드로 지정하고 지정된 노드까지 경로를 하나의 타입으로 지정 후 PathID를 부여하는 것을 특징으로 한다.If the node is not an iteration or selection element, it is designated as a general node, a path is designated to a designated node up to a designated node, and a PathID is given.
또 다른 목적을 달성하기 위한 본 발명에 따른 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 방법은 NETCONF 에이전트에서의 질의 처리를 하기 위하여, 질의가 입력되면 토큰화하여 서브트리 루트와 토큰화된 상대 경로의 단어를 대조하는 단계;매칭되는 토큰이 존재하면 그 토큰이 상대 경로의 제일 마지막 단어인지를 확인하는 단계;매칭된 것이 상대 경로의 마지막 단어라면 그것이 서브트리의 루트인지를 확인하는 단계;서브트리의 루트이면 루트 원소의 레이블링 범위를 확인한 후 그 범위만큼의 메모리를 부분적으로 잠그는 단계;잠긴 범위 내에서 할당된 연산을 수행하고, 매니저에 OK 메시지를 발송하고 질의 처리를 종료하는 단계;를 포함하는 것을 특징으로 한다.According to another aspect of the present invention, there is provided a method for improving a content layer of a NETCONF protocol, the method comprising the steps of: when a query is input, tokenize a subtree root and a tokenized relative path word Checking whether the token is the last word of the relative path if the matching token exists, checking whether the token is the root of the subtree if the matching is the last word of the relative path, A step of partially locking the memory of the range after checking the labeling range of the root element, performing an operation allocated within the locked range, sending an OK message to the manager, and terminating the query processing do.
여기서, 매칭되는 토큰이 없을 경우에는 메모리에 없는 질의 또는 잘못된 질의인 것으로 판단하는 것을 특징으로 한다.Here, if there is no matching token, it is determined that the query is not in the memory or is an incorrect query.
그리고 토큰이 상대 경로의 제일 마지막 단어인지를 확인하는 것은 메모리 잠금을 어떤 주소에서 수행할 것인지 결정하기 위한 것임을 특징으로 한다.And determining whether the token is the last word of the relative path is to determine at which address the memory lock is to be performed.
그리고 서브트리의 루트인지를 확인하는 단계에서, 서브트리의 루트가 아니라면 서브트리의 자식 노드 중에 하나인 것으로 판단하여 서브트리로부터 필요한 원소를 추출하고, 그 원소에 대한 레이블링 범위를 확인하고 그 원소의 레이블링 범위만큼의 메모리를 부분적으로 잠그는 것을 특징으로 한다.If it is not the root of the subtree, it is judged to be one of the child nodes of the subtree, extracts the necessary elements from the subtree, checks the labeling range of the element, And partially locking the memory of the labeling range.
그리고 잠긴 범위 내에서 할당된 연산을 수행하는 과정에서, <get>, <get-config>, <edit-config>의 어느 하나 또는 이들의 조합으로 연산을 수행하는 것을 특징으로 한다.In the process of performing an operation assigned within a locked range, an operation is performed using any one of <get>, <get-config>, <edit-config>, or a combination thereof.
그리고 토큰이 상대 경로의 제일 마지막 단어인지를 확인하는 단계에서, 매칭된 단어가 상대 경로의 마지막 단어가 아니라면, 토큰이 서브트리의 루트인지를 확인하여 루트라면 그 루트 노드만큼의 메모리를 잠그고, 레이블링 범위를 확인한 후 다음 토큰으로 이동하는 것을 특징으로 한다.If the matched word is not the last word of the relative path, it is checked whether the token is the root of the subtree. If the matched word is not the last word of the relative path, it is determined whether the token is the root of the subtree. And then moves to the next token after checking the range.
그리고 서브트리의 루트가 아니라면 하위 노드들에 대한 확인 작업 없이 바로 다음 토큰으로 이동하고, 다시 상대 경로의 마지막 단어인지를 확인하는 과정으로 돌아가서 마지막 단어가 나올 때까지 반복 수행하는 것을 특징으로 한다.If it is not the root of the subtree, the process moves to the next token without confirming the lower nodes, and returns to the process of confirming whether it is the last word of the relative path and repeats the process until the last word comes out.
그리고 질의에 대한 데이터 저장구조는, 장비의 데이터 종속성에 의존하여 데이터 블록을 만들고 여러 명의 관리자가 동시에 하나의 장비에 접근할 때에도 개별적으로 잠그면 부분 잠금 연산을 수행할 수 있는 구조인 것을 특징으로 한다.The data storage structure for the query is characterized in that a data block is created depending on the data dependency of the equipment and a partial lock operation can be performed when several administrators simultaneously access one equipment at the same time.
그리고 질의에 대한 데이터 저장구조는, 논리적 부분과 물리적 부분이 완전히 분리되어 있고 네트워크 관리자의 관점에서 볼 때 물리적 부분은 추상화가 되어 있어 XML 문서의 서브트리 저장구조만을 보고 장비 설정 구성이 가능한 구조인 것을 특징으로 한다.In addition, the data storage structure for queries is a structure in which the logical part and the physical part are completely separated from each other, and the physical part is abstracted from the viewpoint of the network manager, .
이와 같은 본 발명에 따른 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 장치 및 방법은 다음과 같은 효과를 갖는다.The apparatus and method for improving the content layer of the NETCONF protocol according to the present invention have the following effects.
첫째, 표준 NETCONF 프로토콜의 콘텐츠 계층의 효율성을 개선할 수 있다.First, the efficiency of the content layer of the standard NETCONF protocol can be improved.
둘째, 장비 설정 정보의 종속성에 근거하여 데이터를 처리하여 NETCONF 프로토콜에서의 Content 계층의 데이터 모델링의 문제를 해결할 수 있다.Second, we can solve data modeling problem of Content layer in NETCONF protocol by processing data based on dependency of equipment setting information.
셋째, 장비 설정 정보의 종속성을 기반으로 장비 설정 정보를 가진 XML 문서를 여러 개의 서브트리로 블록(Block)화하고 메모리에 저장되는 데이터를 분할하여 장비 설정 데이터에 대한 부분적인 접근이 가능하도록 한다.Third, based on the dependency of the equipment configuration information, an XML document having equipment configuration information is divided into blocks of several subtrees, and the data stored in the memory is divided to allow partial access to the equipment configuration data.
넷째, 장비 설정 데이터에 대한 부분적인 접근이 가능하도록 하여 여러 개의 매니저가 동일한 장비의 설정 변경 작업을 수행할 수 있도록 하고 또한 명령 수행의 반응성을 증가시킬 수 있다.Fourth, partial access to equipment configuration data is enabled, allowing multiple managers to perform configuration changes on the same machine, and to increase the responsiveness of command execution.
다섯째, 표준 NETCONF에 VTD-XML(Vitrual Token Descriptor-XML)을 적용하는 방법과 NETCONF 에이전트 내에서의 위치 및 데이터 모델링을 위한 데이터 모듈을 설계 및 구현하여 NETCONF를 이용한 네트워크 관리 작업의 생산성을 높인다.Fifth, the method of applying VTD-XML (Vitrual Token Descriptor-XML) to standard NETCONF and the data module for location and data modeling in NETCONF agent are designed and implemented to increase the productivity of network management work using NETCONF.
여섯째, Content 계층에서 장비 설정 데이터를 XML로 생성할 때 서브트리를 기반으로 하는 저장하고, 장비의 설정 데이터 간 종속성을 XPath에 의한 상대적 경로간의 관계로 만들어서 이를 테이블로 표현하여 네트워크 관리 업무를 위한 제어 데이터를 감소시킬 수 있다.Sixth, when the device configuration data is generated in XML, it is stored based on the subtree, and the dependency between the configuration data of the device is made as a relation between relative paths by XPath, and the table is expressed as a control for the network management task Data can be reduced.
일곱째, 오픈 소스로 공개되어 있는 VTD-XML의 확장판을 사용하여 앞의 기법을 고속으로 처리함과 동시에 XML 문서로부터 적합한 데이터를 고속으로 추출하는 것이 가능하다.
Seventh, it is possible to extract the appropriate data from the XML document at high speed while processing the above technique at high speed, using the open-source VTD-XML extension.
도 1은 본 발명에서 처리하는 XML 문서의 일 예를 나타낸 구성도
도 2는 VTD 레코드의 바이트 배열의 구성도
도 3은 본 발명에 따른 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 장치의 구성도
도 4는 VTD 바이트 배열에 실제 XML 원소가 저장되는 일 예를 나타낸 구성도
도 5는 예시 XML 문서의 트리와 XML 문서의 서브트리 구성도
도 6은 도 5에서 예시한 XML 트리에 대해 레이블 한 XML 문서 트리 구성도
도 7은 도 6에 대한 XPFS(XML path Fragmentation Schema) 트리 구성도
도 8은 에이전트 내에 서브트리 기반으로 자료를 저장하는 처리 과정을 나타낸 플로우 차트
도 9는 NETCONF 질의에 대해서 본 발명에서 제안하는 데이터 저장의 구조를 나타낸 구성도
도 10은 본 발명에 따른 질의에 대한 처리 과정을 나타낸 플로우 차트
도 11은 질의가 처리된 후 메모리 내 저장 상태를 나타낸 구성도
도 12는 질의 처리 후 서브트리의 세부 구조를 나타낸 구성도
도 13은 본 발명에 따른 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 장치 화면 구성도
도 14는 실시 예로서 질의에 대한 처리율을 비교한 그래프
도 15는 실시 예로서 질의에 대한 처리 시간을 비교한 그래프1 is a diagram showing an example of an XML document processed in the present invention
FIG. 2 is a block diagram of a byte array of a VTD record.
3 is a block diagram of an apparatus for improving the content layer of the NETCONF protocol according to the present invention
FIG. 4 is a block diagram showing an example in which an actual XML element is stored in a VTD byte array
FIG. 5 is a diagram showing a tree of an example XML document and a sub tree structure of an XML document
FIG. 6 is a diagram showing a structure of an XML document tree labeled for the XML tree illustrated in FIG.
FIG. 7 is an XML path fragmentation schema (XPFS) tree structure diagram for FIG. 6
8 is a flow chart illustrating a process of storing data in a subtree based on an agent
9 is a diagram showing a structure of data storage proposed by the present invention for a NETCONF query
10 is a flowchart showing a process for a query according to the present invention
11 is a diagram showing a state of storage in memory after a query is processed
12 is a diagram showing a detailed structure of a subtree after a query process
FIG. 13 is a schematic diagram of a device screen for improving the content layer of the NETCONF protocol according to the present invention
FIG. 14 is a graph showing an example in which throughputs of queries are compared
FIG. 15 is a graph showing a comparison of processing times for queries
이하, 본 발명에 따른 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 장치 및 방법의 바람직한 실시 예에 관하여 상세히 설명하면 다음과 같다.Hereinafter, a preferred embodiment of an apparatus and method for improving the content layer of the NETCONF protocol according to the present invention will be described in detail as follows.
본 발명에 따른 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 장치 및 방법의 특징 및 이점들은 이하에서의 각 실시 예에 대한 상세한 설명을 통해 명백해질 것이다.The features and advantages of the apparatus and method for improving the content layer of the NETCONF protocol according to the present invention will be apparent from the following detailed description of each embodiment.
도 1은 본 발명에서 처리하는 XML 문서의 일 예를 나타낸 구성도이고, 도 2는 VTD 레코드의 바이트 배열의 구성도이다.Fig. 1 is a configuration diagram showing an example of an XML document to be processed in the present invention, and Fig. 2 is a configuration diagram of a byte array of a VTD record.
본 발명은 장비 설정 정보의 종속성을 기반으로 장비 설정 정보를 가진 XML 문서를 여러 개의 서브트리로 블록(Block)화하고 메모리에 저장되는 데이터를 분할하여 장비 설정 데이터에 대한 부분적인 접근이 가능하도록 한 것이다.In the present invention, an XML document having equipment configuration information is divided into a plurality of subtrees based on the dependency of the equipment setting information, and the data stored in the memory is divided to allow partial access to the equipment setting data will be.
장비 설정 정보들 사이에는 종속성이라는 것이 존재하는데, 종속성이라는 것은 특정 설정 정보를 변경하는 동안 그 하부의 설정 정보도 하나의 블록으로 취급되어 접근할 수 없는 관계에 있는 데이터를 의미한다.There is a dependency between equipment configuration information. Dependency refers to data whose configuration information underneath it is treated as a block and can not be accessed while changing specific configuration information.
본 발명에서는 이런 종속성을 기반으로 장비 설정 정보를 가진 XML 문서를 여러 개의 서브트리로 블록(Block)화하고 메모리에 저장되는 데이터를 분할하는 구성을 포함한다.In the present invention, an XML document having equipment setting information based on the dependency is divided into a plurality of subtrees and the data stored in the memory is divided.
또한, 서브트리의 루트를 중심으로 하여 범위를 레이블링 한 다음 그 데이터를 테이블 형태로 저장하여 장비 설정 데이터에 대한 부분적인 접근이 가능하도록 하여 이를 통해 여러 개의 매니저가 동일한 장비의 설정 변경 작업을 수행할 수 있도록 하고 또한 명령 수행의 반응성을 증가시킬 수 있도록 한다.Also, by labeling the range around the root of the subtree and then storing the data in a table form, partial access to the equipment setting data is made possible, so that multiple managers can perform setting change of the same equipment And to increase the responsiveness of command execution.
NETCONF 프로토콜의 최상위 계층인 Content 계층에서 데이터 모델링은 현재 YANG을 통해 XML 문서 형태로 표현하는 것이 사실상의 표준이다.Data modeling in the Content layer, the top layer of the NETCONF protocol, is the de facto standard for presenting XML documents through YANG.
이런 표준을 기준으로 하여 본 발명에서는 크게 다음과 같은 기술 구성을 적용하여 장비 설정 정보의 종속성을 이용한 Content 계층의 데이터 모델링을 수행한다.Based on these standards, the present invention largely carries out data modeling of the content layer using dependency of equipment setting information by applying the following technical structure.
한 가지는 Content 계층에서 장비 설정 데이터를 XML로 생성할 때 서브트리를 기반으로 하는 저장 방법을 사용한다. 그리고 장비의 설정 데이터 간 종속성을 XPath에 의한 상대적 경로간의 관계로 만들어서 이를 테이블로 표현하여 모델링한다.One is the subtype-based storage method used to generate device configuration data in XML at the Content layer. Then, the dependency between the set data of the equipment is made as the relation between the relative path by the XPath, and this is represented as a table and modeled.
다른 한 가지는 오픈 소스로 공개되어 있는 VTD-XML(Virtual Token Descriptor for eXtensible Markup Language)의 확장판을 사용하여 앞의 기법을 고속으로 처리함과 동시에 XML 문서로부터 적합한 데이터를 고속으로 추출하는 것이다. The other is to use the extension of VTD-XML (Virtual Token Descriptor for eXtensible Markup Language), which is open source, to process the above technique at high speed and to extract appropriate data from XML document at high speed.
장비의 설정 정보는 최종적으로는 메모리에 저장되지만 실제 CPU 점유나 시간 소모를 하는 것은 설정 데이터인 XML 문서를 파싱(parsing)하고 필요한 데이터를 추출하거나 저장하는 작업이다.The configuration information of the equipment is finally stored in the memory, but the actual CPU occupation or time consuming is the task of parsing the XML document which is setting data and extracting or storing the necessary data.
도 1은 NETCONF로 <get-config> 연산을 수행한 후에 응답을 받는 예시를 나타낸 것이다.FIG. 1 shows an example of receiving a response after performing a < get-config > operation with NETCONF.
구조적으로 보면 <interface> 원소 내에 이름, IP 주소, MAC 주소 등이 트리 형태로 포함되어 있는 것을 알 수 있다. 또한 실제 값은 다르지만 <interface> 원소가 두 번 반복되고 있는 것도 확인이 가능하다.Structurally, it can be seen that the <interface> element contains a name, an IP address, and a MAC address in a tree form. It is also possible to check that the <interface> element is repeated twice, though the actual value is different.
본 발명에서는 서브트리 분할에 기반하고 XPath에서 사용되는 상대경로를 적용하는 데이터 저장법을 제시하여 장비 설정 데이터 종속성을 표현하고 모델링 하는 방법을 도출한다.In the present invention, a method of expressing and modeling equipment configuration data dependency is derived by suggesting a data storage method based on subtree division and applying a relative path used in XPath.
즉, 도 1의 내용을 앞서 언급한 방법을 활용하여 표 1과 같은 형태로 만들고 저장하는 것이다.That is, the contents of FIG. 1 are created and stored in the form shown in Table 1 using the above-mentioned method.
VTD-XML와 XPath를 적용한 데이터 추출에 관하여 설명하면 다음과 같다.The data extraction using VTD-XML and XPath will be described as follows.
VTD-XML 모델에 기반한 XML 파싱은 '가상 토큰 서술자'라 불리는 '비-추출' XML 기술이다.XML parsing based on the VTD-XML model is a 'non-extraction' XML technology called a 'virtual token descriptor'.
'비-추출'이 뜻하는 것은 본래 XML 문서는 도 2에서와 같이 바이너리 형태로 메모리 내로 읽어지고 모든 원소의 위치는 바이트 배열로 분석되어서 그 정보가 기록된다.'Non-extraction' means that an XML document is originally read into memory in binary form as shown in FIG. 2, and the positions of all elements are analyzed as a byte array, and the information is recorded.
XML내에서 적절한 정보를 찾는 순회 연산은 도 2의 바이트 배열 내 정보를 이용하여 이루어진다.A traversal operation to find appropriate information in XML is performed using information in the byte array of FIG.
VTD-XML은 XML 문서를 파싱하고 각 이벤트에 대해서 64 bit 바이너리 포맷의 VTD 레코드(토큰)를 생성한다. VTD-XML을 이용하면 필요한 데이터를 추출할 때 XPath의 표현 유연성의 장점을 그대로 활용할 수 있고, 또한 XPath가 서브트리 방식보다 느린 단점을 보완할 수 있다. VTD-XML parses XML documents and generates VTD records (tokens) in 64-bit binary format for each event. With VTD-XML, you can take advantage of the flexibility of XPath expressions when extracting the necessary data, and XPath can compensate for the slower drawbacks than the subtree method.
또한, VTD-XML은 DOM과 비교하면 더 높은 성능을 보이면서도 더 적은 리소스를 요구하기 때문에(DOM은 원본 문서 크기 대비 5~10배의 메모리 요구, VTD-XML은 원본 문서 대비 1.3~1.5배 정도의 메모리만 요구) 256GB 이상의 크기를 가진 문서로부터 데이터를 추출하는 작업을 처리할 수 있다.Also, because VTD-XML requires less resources while showing better performance compared to the DOM (DOM requires 5 to 10 times the original document size, VTD-XML is 1.3 to 1.5 times the original document Of memory) You can handle the task of extracting data from a document with a size greater than 256GB.
또 VTD-XML은 랜덤 접근 능력을 제공하고 빠른 분석과 순회를 수행할 수 있다. In addition, VTD-XML provides random access capability and enables rapid analysis and traversal.
본 발명에 따른 일 실시 예에서 VTD-XML은 XPath-기반 XML 프로세싱을 지원할 수 있도록 64 비트 JVM과 결합한 확장된 VTD-XML이 사용된다.In one embodiment of the present invention, VTD-XML uses extended VTD-XML combined with a 64-bit JVM to support XPath-based XML processing.
따라서 XPath 질의를 사용할 수 있으며 XPath 질의는 다수의 NETCONF 매니저가 매우 많은 수의 장비 설정 명령을 빈번하게 만들어 낼 때 유용하다. Therefore, XPath queries can be used, and XPath queries are useful when many NETCONF managers frequently create a large number of device configuration commands.
본 발명에서 적용하는 서브트리 기반의 XML 문서 저장과 장비 설정 데이터의 종속성을 이용한 데이터 모델링을 활용하면 XPath 질의를 이용하여 관련 있는 데이터 아이템을 묶을 수 있고 낭비적인 객체의 생성을 회피할 수 있다.Using the subtree-based XML document storage and data modeling using the dependency of the equipment setting data, which is applied in the present invention, it is possible to bundle related data items using the XPath query and avoid generation of wasteful objects.
결과적으로 VTD-XML은 트리 구조를 기반으로 하면서 최종적으로는 표 1과 같은 테이블을 고속으로 생성하는데 적합하다.As a result, VTD-XML is suitable for generating the table as shown in Table 1 at a high speed based on the tree structure.
VTD-XML은 세 개의 컴포넌트로 구성되고 최상위 레벨에 나타나는 VTD-XML을 위한 자바 API가 있다. 세 개의 컴포넌트는 VTD generator, VTD navigator, Autopilot이다. VTD-XML consists of three components and has a Java API for VTD-XML that appears at the top level. The three components are VTD generator, VTD navigator, and Autopilot.
이를 위한 본 발명에 따른 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 장치의 NETCONF 에이전트 구성은 다음과 같다.The NETCONF agent configuration of the apparatus for improving the content layer of the NETCONF protocol according to the present invention is as follows.
도 3은 본 발명에 따른 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 장치의 구성도이다.3 is a block diagram of an apparatus for improving the content layer of the NETCONF protocol according to the present invention.
본 발명에 따른 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 장치의 NETCONF 에이전트(100)의 구성은, 먼저 NETCONF 매니저(200)로부터 전달되는 연산을 포함한 XML 문서가 XML 후보 문서를 저장하는 큐(30)에 들어오면 후보 문서를 체크하여 매니저의 등급과 XML 문서의 내용을 기반으로 하여 전달되는 XML 문서의 우선순위를 확인하고 이들을 긴급 XML 문서(32) 또는 일반 XML 문서(33)로 분류하는 후보 문서 체크 모듈(31)과, XML 문서의 종류에 상관없이 바이너리 배열로 표현되고 XML의 문서의 모든 원소의 위치와 내용을 저장하는 VTD-XML 모듈(34)과, 배열의 내용을 가지고 XPath 질의를 통해 필요한 데이터를 랜덤으로 접근하고 특정 순서 없이 순회할 수 있으며, 필요한 데이터를 추출하는 데이터 추출부(35)와, 오퍼레이션 계층의 연산을 수행하는 오퍼레이션 계층 연산부(36)와, 오퍼레이션 계층의 연산이 수행되면 서로 주기적으로 통신하면서 장비 설정 데이터의 종속성에 근거한 장비 설정 데이터를 모델링하고 저장하는 장비 설정 데이터 저장소(37)와 데이터 모듈(Data Module)(38)을 포함한다.The configuration of the
이와 같은 본 발명에서 적용하려는 VTD-XML과 XPath를 이용한 데이터 추출 및 Content 계층의 데이터 모델링은 전부 NETCONF 에이전트(100) 측에 포함된다. In the present invention, data extraction using VTD-XML and XPath to be applied and data modeling of the content layer are all included in the
NETCONF 매니저(200)로부터 전달되는 연산을 포함한 XML 문서는 XML 후보 문서를 저장하는 큐(30)에 들어와서 후보 문서를 체크하는 후보 문서 체크 모듈(31)로 전달된다. 매니저의 등급과 XML 문서의 내용을 기반으로 하여 전달되는 XML 문서의 우선순위를 확인하고 이들을 긴급 XML 문서(32) 또는 일반 XML 문서(33)로 분류한다. The XML document including the operation transmitted from the
그리고 긴급이든 일반이든 XML 문서의 종류에 상관없이 VTD-XML 모듈(34)을 통해 바이너리 배열로 표현되고 XML의 문서의 모든 원소는 위치와 내용이 저장된다. 그리고 배열의 내용을 가지고 XPath 질의를 통해 필요한 데이터를 랜덤으로 접근하고 특정 순서 없이 순회할 수 있으며, 데이터 추출부(35)에서 필요한 데이터를 추출한다. Regardless of the type of the XML document, whether urgent or general, the VTD-
그리고 오퍼레이션 계층 연산부(36)에서 오버레이션 계층의 연산이 수행되고 장비 설정 데이터 저장소(37)와 데이터 모듈(Data Module)(38)은 주기적으로 통신하면서 장비 설정 데이터의 종속성에 근거한 장비 설정 데이터를 모델링하고 저장한다. The operation of the overlay layer is performed in the operation
여기서, 데이터를 모델링할 때에도 VTD-XML 모듈(34)에 의해 생성된 배열 내의 XML 원소 위치의 주소를 기반으로 한다.Here, also when modeling the data, it is based on the address of the position of the XML element in the array generated by the VTD-
특히 XPath로 표현 가능한 상대 경로를 활용하여 장비 데이터 간의 종속성을 표현하고 종속성을 가진 데이터들을 하나의 서브트리로 구성하는 테이블을 생성하는데 구체적으로 다음과 같다.Especially, it creates a table that expresses the dependency between equipment data by using a relative path expressible by XPath and composes data having dependency into one subtree.
도 4는 VTD 바이트 배열에 실제 XML 원소가 저장되는 일 예를 나타낸 구성도이고, 도 5는 예시 XML 문서의 트리와 XML 문서의 서브트리 구성도이다.FIG. 4 is a diagram illustrating an example of storing actual XML elements in a VTD byte array, and FIG. 5 is a tree diagram of an exemplary XML document and a subtree of an XML document.
그리고 도 6은 도 5에서 예시한 XML 트리에 대해 레이블 한 XML 문서 트리 구성도이고, 도 7은 도 6에 대한 XPFS(XML path Fragmentation Schema) 트리 구성도이다.FIG. 6 is a diagram of an XML document tree labeled with respect to the XML tree illustrated in FIG. 5, and FIG. 7 is a diagram illustrating an XML path fragmentation schema (XPFS) tree diagram of FIG.
[서브트리 기반의 XPath 데이터 저장 방법]은 다음과 같다.[Subtree-based XPath data storage method] is as follows.
XML 문서를 입력받아 그것을 서브트리 형태로 저장하기 위해서 제일 먼저 동작하는 것은 확장 VTD-XML인데, 이것은 오픈 소스로써 일종의 메모리 효율적인 파싱 기법이다. XML 문서가 확장 VTD-XML을 이용하여 VTD 바이너리 배열을 생성하면 도 2에서와 같다.The first thing to do is to enter an XML document and store it in a subtree form. This is VTD-XML, which is an open-source, memory-efficient parsing technique. Extension of the XML document When the VTD binary array is generated using VTD-XML, it is as shown in FIG.
그 다음 도 4와 같은 VTD 바이너리 배열을 이용하여 XML 데이터 저장의 최신 기법인 XML 노드 레이블링(labeling)을 수행한다.Next, XML node labeling, which is the latest technique of storing XML data, is performed using the VTD binary array as shown in FIG.
노드 레이블링을 수행한 예제는 도 6에 있는(2:25, 2)와 같은 표기이다. 이것은 도 5에서 첫 번째 인터페이스(interface)를 나타내는데, 콜론으로 구분되는 앞의 두 숫자는 (시작:끝)을 알리는 노드의 커버 범위이고 뒤의 숫자는 트리 내에서 그 노드의 레벨(깊이)을 뜻한다.An example of node labeling is shown in (2:25, 2) in FIG. This represents the first interface in Figure 5, where the first two numbers separated by a colon are the coverage of the node indicating the (start: end) and the following number is the level (depth) of the node in the tree do.
레이블은 XPath 처리를 진행할 때 구조적 조인을 가능하게 한다. Labels enable structured joins as XPath processing proceeds.
n1,n2 라는 노드가 트리 내에 있다면 그 노드들의 구조적 관계인 조상-후손 또는 부모-자식 관계는 레이블로 결정된다.n 1 , n 2 If the node is in the tree, the ancestor-descendant or parent-child relationship, which is the structural relationship of the nodes, is determined by the label.
즉, n1의 범위가 n2의 범위를 포함한다면 n1은 n2의 조상이 된다.That is, if the range of n 1 includes a range of n 2 , then n 1 is an ancestor of n 2 .
또 조상-후손 쌍인 관계에서 레벨이 1 차이가 있으면 노드 하나는 다른 노드의 부모 노드이다. 도 5에 있는 것과 같은 데이터를 이런 관계로 저장하게 되는데 저장된 아이템은 각각의 노드들로 구성된다. 노드들은 원소의 태그 이름이거나 접두어가 @인 속성 이름이다. Also, if there is a level difference between an ancestor-descendant pair relationship, one node is the parent node of another node. The data such as that shown in FIG. 5 is stored in this relationship, and the stored items are composed of the respective nodes. Nodes are tag names of elements or attribute names with a prefix of @.
그리고 XML 트리의 서브트리는 XML 저장소의 한 저장 단위로 간주할 수 있다.And the subtree of the XML tree can be regarded as a storage unit of the XML repository.
예를 들면, 도 5의 XML 트리에서 선으로 묶은 부분은 XML 트리가 서브트리로 분할된 것을 보이고 있다. 각 서브트리는 하나의 저장 단위로서 저장 가능하며, 서브트리-기반 XML 저장에서는 전체 XML 트리가 분할 없이 전체로 저장될 수 있고, 노드별로 완전히 분리되어 저장될 수도 있다.For example, in the XML tree shown in Fig. 5, a line-bound portion shows that the XML tree is divided into subtrees. Each subtree can be stored as a single storage unit. In the subtree-based XML storage, the entire XML tree can be stored entirely without division, and can be stored completely separately for each node.
XML 데이터를 서브트리에 저장하고 XPath 질의에 대한 서브트리에서의 데이터 추출을 파싱 없이 처리하기 위해 XML path schema와 XML fragmentation schema가 필요하다.We need an XML path schema and an XML fragmentation schema to store XML data in a subtree and process the data extraction in the subtree for XPath queries without parsing.
path schema는 도 7에 나타난 것처럼 트리로 표현될 수 있는데 도 5의 XML 트리로부터 생성할 수 있다. 표기법은 단순한데, 각 노드 의 옆에 접두어 #을 붙여 표기한 숫자는 노드 의 path ID를 의미하며 루트로부터 N 까지의 path type으로서 할당된다.The path schema can be represented as a tree as shown in FIG. 7 and can be generated from the XML tree of FIG. The notation is simple. The prefix # is added next to each node, which indicates the node's path ID and is assigned as the path type from root to N.
예를 들면 도 6에서 path type인/data/interface/ipv4-address는 Path ID로 #5가 할당된다. 이와 같은 과정 과정을 거쳐 만든 것이 도 7에 나타나 있는 XPFS 트리이다. 즉, 도 7은 XML의 경로와 분할을 나타내고 있으며 원래 XML 트리가 서브트리로 어떻게 분할되었는지에 대한 정보를 포함하고 있다.For example, in FIG. 6, the path type / data / interface / ipv4-address is assigned
XPFS 트리에는 두 가지 종류의 노드가 있는데 하나는 단일 원으로 표현된 것이고 다른 하나는 이중 원이다. 이중 원은 저장될 서브트리의 루트를 나타내고 단일 원은 서브트리 t에 소속된 자손 노드를 나타낸다. XPFS에서의 서브트리 정보와 도 6의 레이블링 정보를 포함하여 저장되는 방식을 나타낸 것이 표 1의 내용이다. There are two kinds of nodes in an XPFS tree, one represented by a single circle and the other a double circle. The double circle represents the root of the subtree to be stored, and the single circle represents the descendant node belonging to the subtree t. Table 1 shows the manner in which the subtree information in the XPFS and the labeling information in FIG. 6 are stored.
표 1에는 7개의 서브트리가 저장되어 있다. no 열은 단순한 참조 번호이므로 저장 내용과는 무관하다.In Table 1, seven subtrees are stored. The no column is a simple reference number, so it is not related to the storage contents.
서브트리 (1), (2), (5)는 내부에 다른 서브트리가 있다는 의미의 기호 "$"를 포함한다.The subtrees (1), (2), and (5) include the symbol "$"
본 발명에서는 XML 문서가 특정 DTD를 따른다는 것을 가정하고 있다.In the present invention, it is assumed that an XML document conforms to a specific DTD.
따라서 XML 트리를 서브트리로 분할하는데 있어서 기본 XML 분할 규칙은 '+, *, ?' 로 표기되는 것은 다른 서브트리의 루트가 될 수 있는 반복되거나 또는 선택될 수 있는 원소이다.Therefore, in dividing the XML tree into subtrees, the basic XML segmentation rules are '+, *,?' Is an element that can be repeated or selected that can be the root of another subtree.
예를 들면 도 6의 interface1과 interface2는 반복 원소인데 두 원소는 같은 부모인 노드를 가지며, 따라서 path type은 /data/inteface로 동일하다. 기본 XML 분할 규칙 하에서 두 원소는 서브트리의 루트이다.For example, interface1 and interface2 in FIG. 6 are repeated elements, and both elements have the same parent node, so the path type is the same as / data / inteface. Under the basic XML partitioning rule, both elements are the root of the subtree.
선택 원소에 대해서는, path type이 /data/interface/name에서 태그 이름이 'name'인 XML 노드가 선택적이라면 그들의 각 인스턴스 name1과 name3는 서브트리의 루트이다.For the selected element, if the XML node with the tag name 'name' in the path type / data / interface / name is optional, then each instance name 1 and name 3 of them is the root of the subtree.
이런 방법을 통해 표 1에서와 같이 저장하는 방법의 장점은 데이터 저장 공간을 줄임과 동시에 파싱 없는 XPath 질의를 부분적으로 처리할 수 있다는 점이다. The advantage of storing in this way as shown in Table 1 is that it reduces data storage space and at the same time allows partial processing of XPath queries without parsing.
즉, 서브트리에 접근하는 것은 서브트리의 루트에 접근하는 것으로 충분하며 서브트리 내부의 노드 내에 접근할 때만 파싱이 필요하다.That is, accessing the subtree is sufficient to access the root of the subtree, and parsing is required only when accessing the node inside the subtree.
그리고 노드별로 저장할 때는 XML 원소 하나 당 하나의 노드가 할당되고 그만큼의 메모리가 요구되지만 서브트리에 기반한 저장법에서는 서브트리의 노드에 대한 포인터의 일부만 있으면 전체 데이터를 저장할 수 있기 때문에 메모리 절약도 가능하다.In the case of storing by node, one node is allocated to each XML element and its memory is required. However, in the subtree-based storage method, since only a part of the pointer to the node of the subtree can be stored, the memory can be saved.
본 발명에서는 장비의 설정 정보를 처음 만들고 저장할 때 데이터 사이의 종속성과 이상에서 설명한 서브트리 기반의 XPath 데이터 저장 방법을 적용하는 것이다.In the present invention, the dependency between data and the subtree-based XPath data storage method described above are applied when initially creating and storing equipment setting information.
도 8은 앞서 설명한 XML 문서를 서브트리 기반 저장방식으로 저장하는데 사용된, 즉 에이전트 내에 자료를 저장하는 처리 과정을 나타낸 것이다. FIG. 8 shows a process of storing data in the agent used to store the XML document described above in a subtree-based storage manner.
XML 문서가 확장 VTD-XML을 통해 파싱되어(S801) VTD 바이트 배열(VTD Binary Array or VTD Byte Array)로 저장된다.(S802)The XML document is parsed through extended VTD-XML (S801) and stored as a VTD byte array (VTD Binary Array or VTD Byte Array) (S802)
이 배열 내에 저장된 XML 문서는 문서 내 원소의 위치가 주소로서 파악되게 된다.(S803)In the XML document stored in this array, the position of an element in the document is recognized as an address (S803)
그리고 이 주소를 기반으로 각 원소에 레이블링을 하고 상위 원소와 하위 원소의 포함 및 종속 관계를 레이블링 범위로 표현하고 할당한다.(S804)Then, each element is labeled based on this address, and the inclusion and dependency of the upper and lower elements are expressed and assigned as the labeling range (S804).
그리고 원소의 중첩 깊이를 레벨로 표현한다. 그 이후 원소의 노드화를 수행하고 루트 원소를 중심으로 트리 형태로 나타낸다.(S805)And the depth of overlap of elements is expressed as level. Subsequently, the node is nodeized and represented in a tree form around the root element (S805)
노드는 XML 태그 이름 또는 속성으로 분류되는데(S806) 여기에 기본 XML 분할 스키마를 적용하여(S807) 노드가 반복 또는 선택 원소인지를 확인한다.(S808)The node is classified into an XML tag name or attribute (S806), and a basic XML segmentation schema is applied to it (S807) to check whether the node is a repetition or a selection element (S808)
노드가 반복 또는 선택 원소 중의 하나라면 서브트리 루트로 지정하고(S809) 서브트리 루트에 대한 경로 타입으로 지정 후 PathID를 부여한다.(S810)If the node is one of the repetition or selection elements, it is designated as a subtree root (S809), and designated as a path type for the subtree root, and then a PathID is assigned (S810)
그리고 서브트리 루트 노드만을 PathID, begin, end, value로 구성되는 레코드를 생성 후 이것을 테이블에 저장한다.(S811) 이후 데이터 저장 처리 과정을 종료한다. Then, a record consisting of PathID, begin, end, and value is generated and stored in the table (S811), and then the data storage process is terminated.
만약, 노드가 반복 또는 선택 원소가 아니라면 일반 노드로 지정하고(S812) 지정된 노드까지 경로를 하나의 타입으로 지정 후(S813) PathID를 부여한다.(S814)If the node is not an iteration or selection element, it is designated as a general node (S812), the path is designated as one type up to the designated node (S813), and a PathID is assigned (S814)
그러나 루트 노드처럼 테이블에 저장되지는 않고 데이터 저장 처리 과정이 종료된다.However, the process of storing the data is terminated without being stored in the table like the root node.
이하에서 [XPath 처리를 통한 데이터 저장과 장비 설정 데이터의 종속성을 통합한 데이터 모델링]에 관하여 설명하면 다음과 같다.Hereinafter, data modeling that integrates data storage via XPath processing and dependency of device setting data will be described.
이상에서와 같이 XML 데이터의 서브트리 저장법을 장비 설정 정보 사이의 종속성과 접목하게 되면 초기 네트워크 장비의 설정 정보의 데이터를 모델링할 때 관련 있는 데이터들을 하나의 블록으로 다룰 수 있다.As described above, when the subtree storing method of XML data is combined with the dependency between the equipment setting information, the related data can be handled as one block when modeling the data of the setting information of the initial network equipment.
예를 들어, NETCONF에서 인터페이스와 그 인터페이스 상의 서브 넷(Subnet)에 관련된 작업을 수행하려고 할 때, XML 문서로 표현된 특정 명령어에서 XPath의 질의는 XPath 표현식으로 나타내면 표 2에서와 같은 같은 형태가 될 수 있다.For example, when trying to perform an operation on an interface and a subnet on that interface in NETCONF, the XPath query in a specific command expressed as an XML document would be the same form as shown in Table 2 .
이와 같은 표현식에 대해 특정 인터페이스의 이름, 그리고 서브 넷의 인터페이스 이름을 변경하거나 검색해서서 반환한다고 가정하고, 본 발명에서 제시하는 XML 저장 구조를 사용하여 데이터를 모델링한다고 가정하면 이런 질의에 대해서 도 9와 같은 형태의 논리적인 데이터 구조가 생성된다. Assuming that the name of the specific interface and the name of the interface of the subnet are changed or searched for the expression, and the data is modeled using the XML storage structure proposed in the present invention, A logical data structure of the same type is created.
표 2의 (1)의 질의에 대해서는 도 9의 ①과 같은 사각형 내의 서브트리를 하나의 데이터 블록으로 하여 서브트리의 루트를 기준으로 접근할 수 있다.For the query in (1) of Table 2, the subtree in the rectangle as shown in (1) in Fig. 9 can be accessed based on the subtree root as one data block.
마찬가지로 표 2의 (2)의 질의에 대해서 서브트리 구조는 동일하지만 저장 범위가 다른 사각형 ② 내의 서브트리를 하나의 데이터 블록으로 다룰 수가 있다. Likewise, the query in (2) of Table 2 can treat a subtree in the square (2) having the same subtree structure but different storage ranges as one data block.
다른 질의가 나타나는 경우, 즉 장비의 인터페이스의 모든 이름을 반환하라는 질의에 대해서는 ⓐ의 점선 사각형을 사용하여 데이터를 추출할 수 있다. If another query appears, that is, for queries that return all names of the interface of the instrument, data can be extracted using the dotted rectangle in ⓐ.
이와 같은 데이터 저장구조는 장비의 데이터 종속성에 의존하여 데이터 블록을 만들고 여러 명의 관리자가 동시에 하나의 장비에 접근할 때에도 각각의 사각형 하나를 개별적으로 잠그면(lock 연산) 부분 잠금 연산을 수행할 수 있다.Such a data storage structure creates a data block depending on the data dependency of the apparatus, and even when several administrators access one apparatus at the same time, it can perform a partial lock operation by locking each square individually (lock operation).
그리고 도 9에 구분한 것과 같이 데이터 구조의 논리적 부분과 물리적 부분이 완전히 분리되어 있고 네트워크 관리자의 관점에서 볼 때 물리적 부분은 추상화가 되어 있으므로 XML 문서의 서브트리 저장구조만을 보고 장비 설정 구성이 가능하다. As shown in FIG. 9, since the logical part and the physical part of the data structure are completely separated from each other and the physical part is abstracted from the viewpoint of the network manager, the configuration of the equipment configuration can be made by viewing only the subtree storage structure of the XML document .
그리고 [XPath 처리를 통한 데이터 저장소에서의 질의 처리 과정]은 다음과 같다.[Query processing in data storage through XPath processing] is as follows.
상기한 질의를 처리하는 과정은 다음과 같다.The process of processing the above query is as follows.
질의어를 앞의 상기한 표 2의 (1)과 같이 동일하게 설정한다. The query terms are set to be the same as in Table 1 (1).
(1)/data/interface[@xmlns=“urn:ietf:params:xml:ns:yang:ietf-interfaces1”]//name(1) / data / interface [@ xmlns = "urn: ietf: params: xml: ns:
도 10은 질의에 대한 처리 과정을 나타낸 것이다.10 shows a processing procedure for a query.
질의가 (1)과 같이 입력되면 질의 형식이 XML 상대 경로이므로 토큰화(Tokenising)를 시작한다.(S1001)When the query is input as shown in (1), the query format is an XML relative path, so the tokenization is started (S1001)
저장소(메모리) 내에 있는 서브트리 루트와 토큰화된 상대 경로의 단어를 대조한다.(S1002)The subtree root in the storage (memory) is collated with the word of the tokenized relative path (S1002)
그리고 매칭되는 것이 존재하는 지를 찾는다.(S1003)Then, it is searched whether there is a match (S1003)
여러 개의 매칭되는 토큰이 있을 수도 있고 없을 수도 있는데 매칭되는 토큰이 없을 경우에는 메모리에 없는 질의 또는 잘못된 질의이므로 Manager에 Fail 메시지를 발송하고 질의 처리를 종료한다.(S1009)If there are no matching tokens, there are several matching tokens. If there is no matching token, it is a query that is not in memory or a wrong query. Therefore, a Fail message is sent to the Manager and the query processing is terminated (S1009)
매칭되는 토큰이 존재하면 그 토큰이 상대 경로의 제일 마지막 단어인지를 확인한다.(S1004)If there is a matching token, it is checked whether the token is the last word of the relative path (S1004)
상대 경로의 제일 마지막까지를 확인해야 메모리 잠금을 어떤 주소에서 수행할 것인지 결정할 수 있다.You need to know the end of the relative path before you can decide what address to perform the memory lock on.
매칭된 것이 상대 경로의 마지막 단어라면 그것이 서브트리의 루트인지를 확인하고(S1005) 서브트리의 루트라면 루트 원소의 레이블링 범위를 확인한 후(S1008) 그 범위만큼의 메모리를 부분적으로 잠근다.(S1010)If the matching is the last word of the relative path, it is checked whether it is the root of the subtree (S1005). If it is the root of the subtree, the range of the labeling of the root element is confirmed (S1008)
서브트리의 루트가 아니라면 서브트리의 자식 노드 중에 하나이므로 서브트리로부터 필요한 원소를 추출하여(S1006) 그 원소에 대한 레이블링 범위를 확인하고(S1007) 그 원소의 레이블링 범위만큼의 메모리를 부분적으로 잠근다.(S1010)If it is not the root of the subtree, it is one of the child nodes of the subtree. Therefore, the required element is extracted from the subtree (S1006), the labeling range for the element is confirmed (S1007), and the memory corresponding to the labeling range of the element is partially locked. (S1010)
그리고 잠긴 범위 내에서 할당된 연산, 예를 들면 <get>, <get-config>, <edit-config> 등의 연산을 수행한다.(S1011)And performs operations such as <get>, <get-config>, <edit-config>, etc. that are allocated within the locked range (S1011)
연산이 성공적으로 끝나면 매니저에 OK 메시지를 발송하고 질의 처리를 종료한다.(S1012)When the operation is successfully completed, an OK message is sent to the manager and the query processing is terminated (S1012)
만약, 매칭된 단어가 상대 경로의 마지막 단어가 아니라면 그 토큰의 확인 작업을 수행하는데 그 토큰이 서브트리의 루트인지를 확인하여(S1013) 루트라면 그 루트 노드만큼의 메모리를 잠그고(S1014) 레이블링 범위를 확인한 후(S1015) 다음 토큰으로 이동한다.(S1016)If the matched word is not the last word of the relative path, it is checked whether the token is the root of the subtree (S1013). If the matched word is not the last word of the relative path, (S1015) and moves to the next token (S1016)
서브트리의 루트가 아니라면 하위 노드들에 대한 확인 작업이 필요 없기 때문에 바로 다음 토큰으로 이동한다.(S1016)If it is not the root of the subtree, it moves to the next token because it is not necessary to confirm the child nodes (S1016)
그리고 다시 상대 경로의 마지막 단어인지를 확인하는 과정으로 돌아가서 마지막 단어가 나올 때까지 반복 수행한다. Then, it goes back to the process of confirming whether it is the last word of the relative path and repeats it until the last word comes out.
도 11은 질의(1)가 처리된 후 메모리 내의 저장 형태를 나타낸 것이다.Figure 11 shows the storage format in memory after query (1) has been processed.
모델링된 데이터 결과인 도 9로부터 질의에 대해 반응하는 형태로 ①로 표기된 사각박스의 부분만이 잠긴 상태로 처리되고 있음을 보인다.From Fig. 9, which is the result of the modeled data, it is shown that only the part of the square box indicated by (1) is processed in a locked state in response to the query.
① 박스 내의 ② 박스는 또 다른 서브트리로서 독립적으로 유지된다. 즉, ① 박스가 잠금 상태에 들어가도 ②로의 접근은 허용된다. ① The box inside the box is maintained as another subtree independently. That is, (1) Even if the box is locked, access to (2) is allowed.
도 12는 ① 박스 내의 서브트리인 #2를 루트로 하는 서브트리의 세부 구조이다.12 shows the detailed structure of a subtree rooted at # 2 which is a subtree in a box.
테이블에는 저장되지 않는 #3, #5, #6이 전부 표기되어 있지만 실제로 이것들에 대한 위치 정보는 #2가 포인터로 저장하고 있기 때문에 #2에 대한 접근, 즉 서브트리 루트에 대한 접근만으로 나머지 원소들에 대한 접근이 가능한 것이다.# 3, # 5, and # 6, which are not stored in the table, are all indicated. However, since the location information about these is stored in the
이와 같은 본 발명에 따른 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 장치 및 방법에서 적용한 데이터 모델링 방식의 특성을 설명하면 다음과 같다.The characteristics of the data modeling method applied in the apparatus and method for improving the content layer of the NETCONF protocol according to the present invention will now be described.
성능을 테스트하기 위해서 다음의 환경을 구성한다.To test the performance, configure the following environment.
가상의 스위치를 통해서 하였기 때문에 가상 스위치를 원활하게 기동하고 본 발명에서 제안한 NETCONF 에이전트를 실행할 수 있도록 설정한 Windows 7/64bit 운영체제를 사용하였다.Because the virtual switch was used, we used the
에이전트 컴퓨터의 개략적 구성은 인텔 i7 프로세서와 메모리 4G로 되어 있으며 나머지 요소는 실시 환경에 크게 영향을 주지 않는다. 매니저용 컴퓨터도 에이전트와 같은 설정으로 구성되어 있다. VTD-XML 모듈은 오픈 소스를 활용하였는데 XPath를 지원하는 확장된 VTD-XML 모듈을 사용하였고, 64 bit JVM에서 기동하였다. The schematic configuration of the agent computer consists of the Intel i7 processor and memory 4G, and the remaining elements do not significantly affect the operating environment. The manager computer is also configured with the same settings as the agent. The VTD-XML module uses open source, uses an extended VTD-XML module that supports XPath, and runs on a 64-bit JVM.
바이너리 배열로부터 장비 설정 데이터 종속성에 근거한 데이터 모델링을 위해서 C언어를 사용하여 개발한 알고리즘을 탑재하고 있는 NETCONF GUI 프로그램도 사용하였다. 네트워크 매니저의 수는 10명으로 제한하였고, 본 발명에서 제안하는 서브 트리 저장법 및 VTD-XML을 이용하여 개선된 NETCONF와 장비 종속성만을 사용하는 NETCONF, 그리고 표준 NETCONF를 비교하였다. We also used the NETCONF GUI program that implements the algorithm developed using C language for data modeling based on equipment configuration data dependency from binary array. The number of network managers is limited to 10, and compared with the improved NETCONF using the subtree storage method and VTD-XML proposed in the present invention, NETCONF using only equipment dependency, and the standard NETCONF.
도 13은 GUI 프로그램을 이용하여 가상 스위치와 연결하고 작업하는 화면의 일부이다.13 is a part of a screen for connecting and operating with a virtual switch using a GUI program.
장비 구성 정보 변경 질의의 처리율 비교 실시에서는 여러 개의 NETCONF 매니저가 있다고 가정할 때, 각 NETCONF 매니저가 장비에 대한 구성 정보를 변경하거나 읽어 오거나 하는 명령의 횟수에 대한 실제 처리율을 비교하는 것이다.In order to compare the throughput of query configuration, it is necessary to compare the actual throughput of each NETCONF manager with respect to the number of commands to modify or read the configuration information for the device.
즉, 장비의 설정 정보를 서브트리 기반으로 구성하는 데이터 모델링 기법이 다른 모델링 방법과 부분 잠금에서 어느 정도의 효율성을 보이는지 확인하는 것이다. 실험은 명령어의 수를 100개에서 1000개까지 늘려가면서 명령 수행 성공(OK Message)메시지를 받은 횟수를 측정하였고, 명령어의 종류는 <get-config>와 <edit-config>로 제안하였다. In other words, it is to check how much efficiency the data modeling technique that constructs the setting information of the equipment based on the subtree shows in other modeling method and partial lock. The experiment measured the number of received OK message messages while increasing the number of commands from 100 to 1000, and suggested the types of commands as <get-config> and <edit-config>.
도 14에 나타나 있는 결과를 보면 본 발명에서 제안한 기법을 적용하여 개선한 NETCONF는 명령어가 1000개에 이르는 시점에서도 약 95%의 처리 성공률을 보여주며, 평균적으로는 97%의 명령어 처리율을 보여준다.14, NETCONF improved by applying the technique proposed in the present invention shows a processing success rate of about 95% even when the number of instructions reaches 1000, and shows an average throughput rate of 97%.
본 발명에서의 두 가지 기법을 추가한 NETCONF가 나머지 NETCONF 보다 평균에서 각각 4% 및 10% 정도 높은 처리율을 보이는 것은 확인할 수 있었다.It can be confirmed that the NETCONF having added the two techniques of the present invention has a throughput rate which is 4% and 10% higher than that of the remaining NETCONF, respectively.
도 15에 나타나 있는 질의에 대한 시스템 처리 속도 비교는 질의 숫자 증가에 따른 NETCONF 에이전트의 반응 속도를 비교하는 실시 예로서, 매니저에서 질의를 보내고 에이전트에서 처리한 후 응답을 받을 때까지의 시간을 측정한 것이다. The comparison of the system processing speed with respect to the query shown in FIG. 15 is an embodiment for comparing the response speed of the NETCONF agent according to the increase in the number of queries, and measures the time from when the manager sends the query, will be.
이 시간에 중요한 부분은 XPath 프로세싱 시간으로서, XML 문서의 형태로 구성된 장비의 설정 데이터에 대해 XPath 표현식이 처리되는 시간을 의미한다.An important part of this time is the XPath processing time, which is the time that the XPath expression is processed for the configuration data of the device configured in the form of an XML document.
본 발명에서 제안한 방법을 적용한다면 장비의 설정 데이터는 XML 문서를 테이블 형태의 주소로 표현한 표 1과 같은 상태로 저장되어 있다고 가정할 수 있다. If the method proposed in the present invention is applied, it can be assumed that the configuration data of the equipment is stored in a state as shown in Table 1 in which an XML document is represented by a table-type address.
따라서 실시 예에서는 표 1과 같은 데이터가 이미 구성되어 있다는 것을 가정하고 이후 명령어에 대한 응답이 도달하는 시간만을 측정하였다.Therefore, in the embodiment, it is assumed that the data as shown in Table 1 has already been constructed, and only the time at which the response to the command arrives is measured.
질의의 수가 100개 미만일 경우에는 단일 명령어 처리 평균값에 질의의 수를 곱하는 결과가 나타난다.When the number of queries is less than 100, the result of multiplying the average value of a single instruction processing by the number of queries is displayed.
즉, 도 10에 보인 것과 같이 본 발명에서 개선한 NETCONF와 나머지 두 종류의 NETCONF가 명령어 200개까지는 단일 질의 처리 속도인 20ms에 질의의 수를 곱한 것 보다 조금 더 많은 시간을 소모하고 있다. That is, as shown in FIG. 10, the NETCONF improved in the present invention and the other two types of NETCONF consumes a little more time than the number of queries multiplied by the number of queries in a single query processing speed of 20 ms up to 200 commands.
본 발명에서 제시하는 방법으로 개선된 NETCONF의 경우에는 질의가 1000개가 되는 시점에서도 24ms 정도로 단일 질의를 처리하는 시간과 큰 사이가 없다.In the case of NETCONF improved by the method proposed by the present invention, there is no large difference between the time of processing a single query and the time of processing a single query by about 24 ms even when the number of queries is 1000.
오히려 질의 수가 적을 때는 큰 차이가 없지만 질의 수가 늘어날수록 장비 설정 정보를 서브트리 기반으로 저장하여 모델링한 데이터의 효율성이 높아지고 추가적으로 VTD-XML의 데이터 추출 성능이 높아지기 때문인데, 구체적으로는 장비의 설정 정보를 확인할 때 서브트리의 루트까지를 확인하면 종속 관계에 있는 데이터를 직접 찾을 수 있으며, 부분 잠금 또한 서브트리를 기준으로 빠르게 진행되기 때문에 성능의 하락이 거의 없다. However, as the number of queries increases, the efficiency of the modeled data is increased by storing the device configuration information based on the subtree, and the performance of data extraction of VTD-XML is further enhanced. Specifically, If you check up to the root of the subtree, you can find the dependent data directly, and since the partial lock is also fast based on the subtree, there is almost no drop in performance.
이와 같은 방법을 사용할 경우 NETCONF 매니저가 다수이고 설정을 변경하려는 네트워크 장비가 하나일 때, 부분적인 동시 접근이 허용된다. 표준 NETCONF에서는 사용할 수 없는 방식이다.When this method is used, partial simultaneous access is allowed when there are multiple NETCONF managers and there is one network device to change the setting. It is not available in standard NETCONF.
또한 장비 설정 정보의 종속성에 근거하여 설정 데이터를 블록화하여 저장함으로써 NETCONF의 Operation 계층에 있는 <lock>연산을 부분 <lock>이 가능하도록 할 수 있다. 이는 동일 장비에 복수 개의 매니저가 동시 작업을 수행할 수 있다는 뜻으로 네트워크 관리 작업의 생산성 향상을 가져온다.In addition, the configuration data can be blocked and stored based on the dependency of the device setting information, so that the <lock> operation in the operation layer of the NETCONF can be made partially lockable. This means that multiple managers can perform concurrent operations on the same equipment, thereby improving the productivity of network management tasks.
추가적으로 장비 설정 정보에 대한 생성, 탐색, 변경, 회수, 삭제 같은 연산을 수행할 때 데이터에 대한 접근 속도가 빨라지고 동시 작업이 가능하여 이 또한 네트워크 관리 업무의 생산성 증가로 연결될 수 있다.In addition, when performing operations such as creation, search, change, retrieval, and deletion of equipment configuration information, the access speed of data is increased and simultaneous operation can be performed, which can also be connected to increase productivity of network management task.
그리고 불필요한 정보를 추가적으로 전송할 필요가 없어 네트워크 관리 업무를 위한 제어 데이터(Over Head: 오버헤드)를 감소시켜 네트워크 관리로 인한 과부하를 회피할 수 있다. In addition, since it is unnecessary to transmit unnecessary information additionally, overhead due to network management can be avoided by reducing control data (overhead) for network management service.
이상에서 설명한 본 발명에 따른 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 장치 및 방법은 장비 설정 정보의 종속성을 기반으로 장비 설정 정보를 가진 XML 문서를 여러 개의 서브트리로 블록(Block)화하고 메모리에 저장되는 데이터를 분할하여 장비 설정 데이터에 대한 부분적인 접근이 가능하도록 한 것이다.The apparatus and method for improving the content layer of the NETCONF protocol according to the present invention can block an XML document having equipment setting information into a plurality of subtrees based on the dependency of equipment setting information and store the XML document in a memory The data is divided into partial access to the equipment setting data.
이상에서의 설명에서와 같이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 본 발명이 구현되어 있음을 이해할 수 있을 것이다.As described above, it will be understood that the present invention is implemented in a modified form without departing from the essential characteristics of the present invention.
그러므로 명시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 하고, 본 발명의 범위는 전술한 설명이 아니라 특허청구 범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.It is therefore to be understood that the specified embodiments are to be considered in an illustrative rather than a restrictive sense and that the scope of the invention is indicated by the appended claims rather than by the foregoing description and that all such differences falling within the scope of equivalents thereof are intended to be embraced therein It should be interpreted.
31. 후보 문서 체크 모듈 32. 긴급 XML 문서
33. 일반 XML 문서 34. VTD-XML 모듈
35. 데이터 추출부 36. 오퍼레이션 계층 연산부
37. 장비 설정 데이터 저장소 38. 데이터 모듈31. Candidate
33.
35.
37. Equipment
Claims (22)
후보 문서 체크 모듈에서 분류된 XML 문서를 바이너리 배열로 표현하고 XML의 문서의 모든 원소의 위치와 내용을 저장하는 VTD-XML 모듈;
VTD-XML 모듈에 의한 배열의 내용을 갖고 XPath 질의를 통해 필요한 데이터를 추출하는 데이터 추출부;
추출된 데이터의 오퍼레이션 계층의 연산을 수행하는 오퍼레이션 계층 연산부;
서로 주기적으로 통신하면서 장비 설정 데이터의 종속성에 근거한 장비 설정 데이터를 모델링하고 저장하는 장비 설정 데이터 저장소와 데이터 모듈;을 포함하고, NETCONF 에이전트가 구성되는 것을 특징으로 하는 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 장치.When the XML document including the operation transmitted from the NETCONF manager enters the queue storing the XML candidate document, the candidate document check module for checking and classifying the priority order;
A VTD-XML module that expresses classified XML documents in a binary array in a candidate document check module and stores the positions and contents of all the elements of the XML document;
A data extracting unit for extracting necessary data through an XPath query with the contents of the array by the VTD-XML module;
An operation layer operation unit for performing operation of the operation layer of the extracted data;
A device for setting up a content layer of the NETCONF protocol, comprising a device setting data store and a data module for modeling and storing device setting data based on dependency of device setting data while periodically communicating with each other; .
후보 문서를 체크하여 매니저의 등급과 XML 문서의 내용을 기반으로 하여 전달되는 XML 문서의 우선순위를 확인하고 이들을 긴급 XML 문서 또는 일반 XML 문서로 분류하는 것을 특징으로 하는 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 장치.2. The method of claim 1, wherein the candidate document check module is configured to, when an XML document including an operation transmitted from a NETCONF manager enters a queue storing an XML candidate document,
The candidate document is checked and the priority of the XML document transmitted based on the manager's class and the contents of the XML document is checked and classified into an urgent XML document or a general XML document to improve the content layer of the NETCONF protocol Device.
XPath 질의를 통해 필요한 데이터를 랜덤으로 접근하고 특정 순서 없이 순회할 수 있는 상태에서 필요한 데이터를 추출하는 것을 특징으로 하는 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 장치.The data extracting apparatus according to claim 1, wherein, in the process of extracting necessary data,
Wherein the necessary data is randomly accessed through an XPath query, and necessary data is extracted in a state in which the data can be circulated without a specific order.
데이터를 모델링할 때 VTD-XML 모듈에 의해 생성된 배열 내의 XML 원소 위치의 주소를 기반으로 하는 것을 특징으로 하는 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 장치.2. The method of claim 1,
Wherein the data is based on an address of an XML element location in the array generated by the VTD-XML module when modeling the data.
XPath로 표현 가능한 상대 경로를 활용하여 장비 데이터 간의 종속성을 표현하고 종속성을 가진 데이터들을 하나의 서브트리로 구성하는 테이블을 생성하는 것을 특징으로 하는 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 장치.2. The method of claim 1,
Wherein the dependency between equipment data is expressed using a relative path that can be represented by XPath, and a table in which data having a dependency is composed of one subtree is generated.
XML 문서로 된 정보를 네트워크 장비에 저장할 때 XPath의 상대경로에 기반한 XML 원소의 서브트리 형태로 분류하는 것을 특징으로 하는 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 장치.The method of claim 1, wherein the NETCONF agent comprises:
A device for improving the content layer of a NETCONF protocol, characterized in that when information of an XML document is stored in a network device, it is classified into a subtree of an XML element based on a relative path of XPath.
서브트리 기반의 XPath 데이터 저장을 수행하고, XPath 처리를 통한 데이터 저장과 장비 설정 데이터의 종속성을 통합한 데이터 모델링을 수행하고, XPath 처리를 통한 데이터 저장소에서의 질의 처리를 수행하는 것을 특징으로 하는 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 장치.The method of claim 1, wherein the NETCONF agent comprises:
A data modeling based on subtree-based XPath data storage, data storage through XPath processing and dependency of equipment setting data is performed, and query processing in a data store is performed through XPath processing. A device for improving the content layer of a protocol.
XML 문서를 확장 VTD-XML을 통해 파싱하여 VTD 바이트 배열로 저장하는 단계;
문서 내 원소의 위치 주소를 기반으로 각 원소에 레이블링을 하여 할당하는 단계;
원소의 중첩 깊이를 레벨로 표현하여 노드화하고 루트 원소를 중심으로 트리 형태로 나타내는 단계;
XML 분할 스키마를 적용하여 노드가 반복 또는 선택 원소인지를 확인하는 단계;
노드가 반복 또는 선택 원소 중의 하나라면 서브트리 루트로 지정하고 서브트리 루트에 대한 경로 타입으로 지정 후 PathID를 부여하는 단계;
서브트리 루트 노드의 레코드를 생성하여 테이블에 저장하는 단계;를 포함하는 것을 특징으로 하는 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 방법.In order to store the XML document in the NETCONF agent based on the subtree,
Parsing the XML document via extended VTD-XML and storing the parsed VTD byte array;
Labeling and assigning each element based on a location address of an element in the document;
A step of representing a superimposed depth of an element by a level and nodeized and a tree form centering on a root element;
Applying an XML partitioning scheme to determine whether the node is a repetition or a selection element;
If the node is one of an iteration or a selection element, designating it as a subtree root, designating it as a path type for a subtree root, and assigning a PathID;
Generating a record of a subtree root node and storing the generated record in a table.
각 원소에 레이블링을 하고 상위 원소와 하위 원소의 포함 및 종속 관계를 레이블링 범위로 표현하고 할당하는 것을 특징으로 하는 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 방법.10. The method according to claim 9, wherein in the step of assigning each element by labeling,
And labeling each element, and expressing the inclusion and dependency of the parent element and the subordinate element in a labeling range and allocating the labeling range.
서브트리 루트 노드만을 PathID, begin, end, value로 구성되는 레코드를 생성 후 이것을 테이블에 저장하는 것을 특징으로 하는 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 방법.10. The method according to claim 9, wherein in the step of generating a record of the subtree root node and storing the record in the table,
A record consisting of PathID, begin, end, and value only for the subtree root node, and then storing the record in the table; and a method for improving the content layer of the NETCONF protocol.
질의가 입력되면 토큰화하여 서브트리 루트와 토큰화된 상대 경로의 단어를 대조하는 단계;
매칭되는 토큰이 존재하면 그 토큰이 상대 경로의 제일 마지막 단어인지를 확인하는 단계;
매칭된 것이 상대 경로의 마지막 단어라면 그것이 서브트리의 루트인지를 확인하는 단계;
서브트리의 루트이면 루트 원소의 레이블링 범위를 확인한 후 그 범위만큼의 메모리를 부분적으로 잠그는 단계;
잠긴 범위 내에서 할당된 연산을 수행하고, 매니저에 OK 메시지를 발송하고 질의 처리를 종료하는 단계;를 포함하는 것을 특징으로 하는 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 방법.In order to perform query processing in the NETCONF agent,
If the query is input, tokenize and compare the subtree root with the word of the tokenized relative path;
If the matching token exists, checking whether the token is the last word of the relative path;
Confirming if it is the last word of the relative path if it is the root of the subtree;
Checking the labeling range of the root element if the root of the subtree is present, and partially locking the memory of the range;
Performing an operation assigned in a locked range, sending an OK message to the manager, and terminating the query processing.
서브트리의 루트가 아니라면 서브트리의 자식 노드 중에 하나인 것으로 판단하여 서브트리로부터 필요한 원소를 추출하고,
그 원소에 대한 레이블링 범위를 확인하고 그 원소의 레이블링 범위만큼의 메모리를 부분적으로 잠그는 것을 특징으로 하는 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 방법.15. The method of claim 14, further comprising:
If it is not the root of the subtree, it is judged to be one of the child nodes of the subtree and necessary elements are extracted from the subtree,
Identifying a labeling range for the element and partially locking the memory of the labeling range of the element.
<get>, <get-config>, <edit-config>의 어느 하나 또는 이들의 조합으로 연산을 수행하는 것을 특징으로 하는 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 방법.15. The method of claim 14, wherein in the process of performing the assigned operation within the locked range,
wherein the operation is performed using one of <get>, <get-config> and <edit-config> or a combination thereof.
매칭된 단어가 상대 경로의 마지막 단어가 아니라면,
토큰이 서브트리의 루트인지를 확인하여 루트라면 그 루트 노드만큼의 메모리를 잠그고,
레이블링 범위를 확인한 후 다음 토큰으로 이동하는 것을 특징으로 하는 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 방법.15. The method of claim 14, wherein in determining whether the token is the last word of the relative path,
If the matched word is not the last word of the relative path,
Checks if the token is the root of the subtree, locks the memory of that root node if it is root,
And then moves to the next token after confirming the labeling range.
다시 상대 경로의 마지막 단어인지를 확인하는 과정으로 돌아가서 마지막 단어가 나올 때까지 반복 수행하는 것을 특징으로 하는 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 방법.20. The method of claim 19, wherein if the root of the subtree is not the root of the subtree,
And returning to the process of confirming whether the last word of the relative path is again repeated until the last word is reached.
장비의 데이터 종속성에 의존하여 데이터 블록을 만들고 여러 명의 관리자가 동시에 하나의 장비에 접근할 때에도 개별적으로 잠그면 부분 잠금 연산을 수행할 수 있는 구조인 것을 특징으로 하는 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 방법.15. The system of claim 14, wherein the data storage structure for the query comprises:
Wherein a data block is created depending on data dependency of the device, and a plurality of administrators simultaneously access one device at the same time, the partial lock operation can be performed by individually locking the data block.
논리적 부분과 물리적 부분이 완전히 분리되어 있고 네트워크 관리자의 관점에서 볼 때 물리적 부분은 추상화가 되어 있어 XML 문서의 서브트리 저장구조만을 보고 장비 설정 구성이 가능한 구조인 것을 특징으로 하는 NETCONF 프로토콜의 콘텐츠 계층 개선을 위한 방법.
15. The system of claim 14, wherein the data storage structure for the query comprises:
The content layer of the NETCONF protocol is characterized in that the physical part is completely separated from the logical part and the physical part is abstracted from the viewpoint of the network manager, Lt; / RTI >
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150135490A KR101674543B1 (en) | 2015-09-24 | 2015-09-24 | System and Method for Improving content Layer in protocol |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150135490A KR101674543B1 (en) | 2015-09-24 | 2015-09-24 | System and Method for Improving content Layer in protocol |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101674543B1 true KR101674543B1 (en) | 2016-11-09 |
Family
ID=57528858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150135490A KR101674543B1 (en) | 2015-09-24 | 2015-09-24 | System and Method for Improving content Layer in protocol |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101674543B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107436929A (en) * | 2017-07-13 | 2017-12-05 | 中国物品编码中心 | Expandable mark language XML document analysis method and device |
WO2023136494A1 (en) * | 2022-01-13 | 2023-07-20 | 삼성전자주식회사 | Network management system and operation method thereof |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060087947A (en) | 2005-01-31 | 2006-08-03 | 인하대학교 산학협력단 | A index system and method for xml documents using node-range of integration path |
KR20070057603A (en) | 2005-12-01 | 2007-06-07 | 한국전자통신연구원 | Xml data stream processing system and method for managing the access control using xpath |
KR20130066279A (en) * | 2011-12-12 | 2013-06-20 | 에릭슨 엘지 주식회사 | Automatic method of configuration management function with netconf if operation for network management system |
US20150019991A1 (en) * | 2013-07-09 | 2015-01-15 | Tail-f Systems AB | Customizable graphical user interface for network management |
-
2015
- 2015-09-24 KR KR1020150135490A patent/KR101674543B1/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060087947A (en) | 2005-01-31 | 2006-08-03 | 인하대학교 산학협력단 | A index system and method for xml documents using node-range of integration path |
KR20070057603A (en) | 2005-12-01 | 2007-06-07 | 한국전자통신연구원 | Xml data stream processing system and method for managing the access control using xpath |
KR20130066279A (en) * | 2011-12-12 | 2013-06-20 | 에릭슨 엘지 주식회사 | Automatic method of configuration management function with netconf if operation for network management system |
US20150019991A1 (en) * | 2013-07-09 | 2015-01-15 | Tail-f Systems AB | Customizable graphical user interface for network management |
Non-Patent Citations (1)
Title |
---|
이양민 외 2명, 다수 네트워크 관리자를 고려한 NETCONF 프로토콜의 설정 데이터 갱신 기법 개발 , 인터넷정보학회논문지 4(5), 27-38페이지, 2013.10. * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107436929A (en) * | 2017-07-13 | 2017-12-05 | 中国物品编码中心 | Expandable mark language XML document analysis method and device |
WO2023136494A1 (en) * | 2022-01-13 | 2023-07-20 | 삼성전자주식회사 | Network management system and operation method thereof |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11514032B2 (en) | Splitting a query into native query operations and post-processing operations | |
US8667459B2 (en) | Application specific runtime environments | |
US8392467B1 (en) | Directing searches on tree data structures | |
US7505965B2 (en) | Systems and methods for providing a user interface with an automatic search menu | |
US11249992B2 (en) | Parsing of user queries in a remote network management platform using extended context-free grammar rules | |
US11451629B2 (en) | Distributed metadata management method for distributed file system | |
US11429650B2 (en) | Parsing of user queries in a remote network management platform using linguistic matching | |
US20100042585A1 (en) | Command Interpretation | |
JP2006011739A (en) | Device, computer system and data processing method using ontology | |
US10713252B1 (en) | Methods, systems, and computer readable mediums for performing an aggregated free-form query | |
US7548926B2 (en) | High performance navigator for parsing inputs of a message | |
CN108804100B (en) | Method and device for creating interface element, storage medium and mobile terminal | |
CN115202626A (en) | Low-code front-end development method supporting multi-technology stack components | |
KR101674543B1 (en) | System and Method for Improving content Layer in protocol | |
CN115328611A (en) | Virtual machine management method, device, server and readable storage medium | |
US10243798B2 (en) | Variable SNMP data collection with embedded queries | |
US20090019067A1 (en) | Method, apparatus, and program for inserting node | |
US20060085492A1 (en) | System and method for modifying process navigation | |
CN111680288A (en) | Command execution method, device and equipment for container and storage medium | |
US11507639B1 (en) | Methods for identifying recurring web site accessibility issues and devices thereof | |
US11704099B1 (en) | Discovering matching code segments according to index and comparative similarity | |
US9537736B2 (en) | Methods and systems to generate reports including report references for navigation | |
WO2022164718A1 (en) | Optimized data resolution for web components | |
US20080071735A1 (en) | Method, apparatus, and computer progam product for data transformation | |
Raj et al. | Distributed component-based crawler for AJAX applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20191104 Year of fee payment: 4 |
|
R401 | Registration of restoration |