KR100564767B1 - Xml처리 장치 및 이를 적용한 시스템의 xml 처리 방법 - Google Patents

Xml처리 장치 및 이를 적용한 시스템의 xml 처리 방법 Download PDF

Info

Publication number
KR100564767B1
KR100564767B1 KR1020030097243A KR20030097243A KR100564767B1 KR 100564767 B1 KR100564767 B1 KR 100564767B1 KR 1020030097243 A KR1020030097243 A KR 1020030097243A KR 20030097243 A KR20030097243 A KR 20030097243A KR 100564767 B1 KR100564767 B1 KR 100564767B1
Authority
KR
South Korea
Prior art keywords
xml
node
processing
memory
hardware
Prior art date
Application number
KR1020030097243A
Other languages
English (en)
Other versions
KR20050066045A (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 KR1020030097243A priority Critical patent/KR100564767B1/ko
Priority to PCT/KR2004/002759 priority patent/WO2005064489A1/en
Priority to JP2006546809A priority patent/JP4347890B2/ja
Priority to US10/584,733 priority patent/US20070283242A1/en
Publication of KR20050066045A publication Critical patent/KR20050066045A/ko
Application granted granted Critical
Publication of KR100564767B1 publication Critical patent/KR100564767B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/221Parsing markup language streams
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Stored Programmes (AREA)
  • Document Processing Apparatus (AREA)

Abstract

본 발명은 확장성 생성 언어(extensible mark-up language ; XML) 처리에 관한 것으로서, 더욱 상세하게는 독립적인 하드웨어를 기반으로 XML 처리 기능의 일부를 하드웨어적으로 처리하도록 하여 시스템의 부담을 줄이면서도 XML 처리 속도를 개선하는 XML 처리 장치 및 이를 적용한 시스템의 XML 처리 방법에 관한 것이다.
본 발명에 따른 XML 처리 장치는 XML 처리를 수행하기 위한 소프트웨어를 저장하기 위한 제1메모리; XML 처리 기능들 중 XML 파싱에서 사용되는 메모리 할당, 반환, 재할당에 대한 처리를 수행하는 하드웨어 처리 모듈; 상기 하드웨어 처리 모듈이 사용하는 제2메모리; 및 XML 처리기의 전반적인 제어를 담당하는 중앙처리장치를 포함하는 것을 특징으로 한다.
본 발명에 따른 XML 처리기는 독립적인 하드웨어를 기반으로 XML 처리 기능의 일부를 하드웨어적으로 처리하도록 함으로써 기존의 소프트웨어적으로 처리하는 방법에 비하여 XML처리 속도를 개선하고, 시스템의 부담을 줄이는 효과를 가진다.

Description

XML처리 장치 및 이를 적용한 시스템의 XML 처리 방법{XML processing apparatus and XML processing method in the system adapting that}
도 1은 본 발명에 따른 XML 처리 장치와 종래의 소프트웨어에 의한 범용 XML 파서의 동작을 도식적으로 보이고 있다.
도 2는 본 발명에 따른 XML 처리 장치와 종래의 소프트웨어에 의한 특수 용도의 XML 파서의 동작을 도식적으로 보이고 있다.
도 3은 본 발명에 따른 XML 처리기의 처리 용량을 도식적으로 보이는 것이다.
도 4는 본 발명의 XML 처리기의 실시예를 보이는 것이다.
도 5는 도 4에 도시된 XML 처리 장치에 있어서 메모리 관리 기능을 하드웨어적으로 구현하는 방법을 도식적으로 보이는 것이다.
도 6은 도 5에 도시된 장치에서 메모리를 할당하는 절차를 보이는 흐름도이다.
도 7은 도 5에 도시된 장치에서 메모리를 재할당하는 절차를 보이는 흐름도이다.
도 8은 도 5에 도시된 장치에서 메모리를 반환하는 절차를 보이는 흐름도이다.
도 9는 본 발명에 따른 XML 처리기를 활용하는 시스템의 소프트웨어 계층도를 보이는 것이다.
도 10은 대량의 XML 처리를 위한 시스템의 소프트웨어 계층도를 보이는 것이다.
도 11은 본 발명에 따른 XML 처리 방법을 보이는 흐름도이다.
본 발명은 확장성 생성 언어(extensible mark-up language ; XML) 처리에 관한 것으로서, 더욱 상세하게는 독립적인 하드웨어를 기반으로 XML 처리 기능의 일부를 하드웨어적으로 처리하도록 하여 시스템의 부담을 줄이면서도 XML 처리 속도를 개선하는 XML 처리 장치 및 이를 적용한 시스템의 XML 처리 방법에 관한 것이다.
XML은 인터넷상에서 구현되는 전자 상거래, 웹 포털들, 컨텐츠 서비스들 및 정보 처리 어플리케이션들을 위한 언어이다. XML 표준은 XML 문서(document)로 불리는 데이터 객체들의 클래스와 이러한 XML 문서들을 처리하는 방식에 대하여 기술하고 있다.
XML 문서는 문자들로 구성되어 있으며, 그중 몇몇은 문자 데이터를 형성하며, 또 다른 몇몇은 마크업(mark-up)을 형성한다. 마크업은 시작 태그(tag)와 마침 태그의 쌍으로 구성되어 있으며, 문서 레이아웃의 설명 및 XML 문서들 사이의 논리 적인 구조를 제공한다.
한편, XML 파서(parser)는 XML 문서의 조작을 용이하게 하기 위해 사용되는 소프트웨어 라이브러리로 파악할 수 있다. 대부분의 XML 파서들은 XML 문법과 호환하도록 구성된다.
종래의 범용적인 XML 파서들의 중요한 결점은 이들이 XML 표준들과 완벽하게 호환되도록 하기 위하여 비교적 큰 규모의 소프트웨어 구성 요소들을 요구한다는 것이다. 이에 따라 XML 문서들을 처리하는 시스템의 부담이 증가하는 문제점이 있다.
정보화 시대에서 인터넷의 중요성은 날로 증대하고 있으며 특히, 전형적인 PC 이외에 핸드폰, 디지털 가전, 텔레메틱스 단말기, PDA, 웹 TV 등의 다양한 임베디드 장치에서의 웹 사용이 급격하게 증가하고 있다. 이들 임베디드 장치들은 전형적으로 PC에 비해 제한된 컴퓨팅 능력 및 메모리를 가지기 때문에 소프트웨어에 기반한 범용의 XML 파서들은 이들 임베디드 장치에 적합하지 않게 된다.
한편, 비PC 기반의 장치에 적합하도록 특정 용도에 맞춘 XML 파서들이 개발되고 있다. 그렇지만, 이러한 특정 용도에 맞춘 XML 파서들 조차도 기본적으로 소프트웨어 라이브러리로 구성되기 때문에 여전히 비PC 기반의 장치가 XML 처리를 수행하는 것에 부담을 가지게 된다.
이에 따라 보다 원활하게 XML 문서를 처리할 수 있는 방법이 요청되고 있다.
본 발명은 상기의 요구에 부응하기 위하여 고안된 것으로서 독립적인 하드웨 어를 기반으로 XML 처리 기능의 일부를 하드웨어적으로 처리하도록 하여 기존의 소프트웨어적으로 처리하는 방법에 비해 처리 속도를 개선하는 XML 처리 장치를 제공하는 것을 그 목적으로 한다.
본 발명의 다른 목적은 상기의 XML 처리 장치와 소프트웨어에 기반한 XML 처리기를 구비하는 장치에 있어서 효율적으로 XML 처리를 수행할 수 있는 방법을 제공하는 것에 있다.
상기의 목적을 달성하는 본 발명에 따른 XML 처리 장치는
XML 처리를 수행하는 장치에 있어서,
XML 처리를 수행하기 위한 소프트웨어 실행시 필요한 변수, 값들을 저장하기 위한 제1메모리;
XML 처리 기능의 일부를 하드웨어적으로 처리하는 하드웨어 처리 모듈;
상기 하드웨어 처리 모듈이 사용하는 제2메모리;
XML 처리기의 전반적인 제어를 담당하는 중앙처리장치를 포함하는 것을 특징으로 한다.
이하 첨부된 도면을 참조하여 본 발명의 구성 및 동작을 상세히 설명하기로 한다.
본 발명은 시스템의 중앙처리장치에 부담을 많이 주는 XML 처리를 보다 원활히 할 수 있도록 도와주는 XML 처리기를 제공한다.
기존의 XML 처리는 전적으로 소프트웨어로 구현되기 때문에 많은 양의 XML 처리를 수행할 때 CPU에 많은 부담을 주었다. 이는 시스템 전체의 성능을 저하시켜 시스템이 수행하는 다른 기능들에까지 영향을 주며, 결과적으로 시스템의 성능저하에 따른 경제적인 손실로 이어졌다.
또한, 임베디드 시스템 즉, 핸드폰, 디지털 가전, 텔레메틱스 단말기, PDA 등과 같이 CPU 성능이 PC에 비해 상대적으로 낮은 시스템에서의 XML 처리는 시스템의 큰 부담이다.
본 발명은 XML에 대한 처리를 독립적인 하드웨어를 기반으로 고속으로 처리하므로 위와 같은 문제를 해결할 수 있으며, 각 시스템의 특성에 맞게 적용될 수 있다.
도 1은 본 발명에 따른 XML 처리 장치와 종래의 소프트웨어에 의한 범용 XML 파서의 동작을 도식적으로 보이고 있다.
본 발명에 따른 XML 처리기(13)와 종래의 소프트웨어에 의한 범용 XML 파서(11)들은 도 1에 도시된 바와 같이 모두 같은 XML 문서(10)를 입력으로 받아 처리한 후 동일한 결과물(12)을 생성한다.
기존의 소프트웨어를 기반으로 한 범용 XML 파서(11)는 마이크로소프트의 MSXML(Microsoft XML Parser), IBM의 XML for C++, XML for java , 썬마이크로시스템의 JAXP(Java API for XML Processing) 등 W3C(World Wide Web Consortium)의 XML 버전 1.0을 완전히 지원하는 파서이다.
XML 처리기(13)는 XML 처리의 일부분 특히, 메모리 관리에 관한 부분을 하드웨어적으로 처리하므로 기존의 소프트웨어를 기반으로 한 범용 XML 파서(11)에 비 해 파싱 속도가 빠르다.
이에 따라 본 발명에 따른 XML 처리기(13)는 XML 처리시 CPU에 인가되는 로드를 줄여주어서, XML 문서를 자연스럽게 처리하면서도 다른 처리를 원활히 수행할 수 있도록 한다.
도 2는 본 발명에 따른 XML 처리 장치와 종래의 소프트웨어에 의한 특수 용도의 XML 파서의 동작을 도식적으로 보이고 있다.
본 발명에 따른 XML 처리기(17)와 종래의 소프트웨어에 의한 특수 용도의 XML 파서(15)들은 도 2에 도시된 바와 같이 모두 같은 XML 문서(14)를 입력으로 받아 처리한 후 동일한 결과물(16)을 생성한다.
도 3은 본 발명에 따른 XML 처리기의 처리 용량을 도식적으로 보이는 것이다. 도 3을 참조하면, XML 처리 기능이 필요한 각각의 시스템들이 요구되는 XML 처리 용량에 따라서 본 발명에 따른 XML 처리기의 처리 용량을 다양하게 적용될 수 있다는 것을 알 수 있다.
도 3에 있어서, 화살표(34) 방향은 XML 처리 용량이 많아지는 방향을 의미한다. 도 3을 참조하면, 본 발명에 따른 XML 처리기는 처리 용량, 적용될 시스템 특성에 따라서 적합한 형상을 가질 수 있다는 것을 알 수 있다.
도 4는 본 발명의 XML 처리기의 실시예를 보이는 것이다. 도 4에 도시된 장치는 XML 처리기의 전반적인 제어를 담당하는 중앙처리장치(40), 중앙처리장치(40)가 특정 기능을 수행하기 위해 소프트웨어의 실행 및 소프트웨어 실행 시 필요한 변수, 값들을 저장하기 위한 메모리(41), XML 처리 기능 의 일부를 하드웨어적으로 처리하는 하드웨어 처리 모듈(42), 그리고 하드웨어 처리 모듈(42)이 사용하는 메모리(43)가 있다. 또한 이 모든 요소들이 데이터를 주고 받기 위한 버스(44)를 통해서 연결되어 있다.
도 4는 XML 처리 기능들 중 특정 부분이 하드웨어적으로 구현될 수 있음을 보여준다. 예를 들면, 소프트웨어 파서들의 성능에 가장 영향을 많이 미치는 것이 파싱에서 사용되는 메모리 할당, 반환, 재할당에 대한 처리 부분이다.
도 4를 참조하면, 본 발명에 따른 XML 처리기는 XML 처리 성능을 개선하기 위하여 메모리 관리 기능 부분을 하드웨어적으로 구현할 수 있다. 또한, 본 발명에 따른 XML 처리기는 메모리 관리 기능 이외에도 XML 처리에 있어서 많이 사용되는 XML DTD(Data Type Definition) 혹은 XML 스키마에 대한 상태 머신(State Machine)을 하드웨어적으로 구현할 수도 있다.
도 5는 도 4에 도시된 XML 처리 장치에 있어서 메모리 관리 기능을 하드웨어적으로 구현하는 방법을 도식적으로 보이는 것이다.
XML 처리시 XML의 엘리먼트들은 메모리상의 하나의 노드로 표현되며, 이들 노드는 서로 관계(relation)를 갖고 트리 형태를 띠게 된다. 따라서 이들 노드를 위한 메모리 할당, 재할당, 반환에 대한 처리가 필요하다.
노드에 대한 메모리 관리를 위해 가장 중요하게 고려해야 할 것은 노드에서 유지해야 하는 정보들의 구성과 데이터의 크기가 유동적인 정보에 대한 처리이다.
노드가 유지해야 하는 정보는 XML 문서 처리를 위한 W3C 표준 중의 하나인 DOM(Document Object Model)에서 정의하고 것을 따르는 것이 좋다. DOM은 표준이 므로 대부분의 XML 파서들이 이를 지원하고 있어, 다양한 형태의 기존 파서와 의 연동을 보다 쉽게 할 수 있기 때문이다.
DOM에서 노드가 유지해야 할 정보로는 노드 이름, 노드 값, 노드 타입, 부모노드, 자식노드들, 첫번째 자식노드, 마지막 자식 노드, 전 시블링, 후 시블링 애트리뷰트(attribute) 값 등이다. 보다 자세한 사항은 W3C의 DOM 표준을 참고하면 된다.
이 정보들 중에서 데이터의 크기가 유동적인 정보는 노드 타입이 PCDATA인 경우의 노드 값이다. 이외에 데이터 값을 갖는 노드 이름, 타입, 애트리뷰트 값 등은 크기가 크게 유동적이지 않으므로 적정한 사이즈를 고정으로 해서 처리해도 크게 문제가 없다. 또한 나머지 정보들은 포인터 정보이므로 주소정보를 저장할 수 있으면 된다.
이러한 특징들을 만족시키기 위해 하드웨어를 이용한 메모리 관리 기능 부분은 도 5에 도시된 바와 같이 Node Usage Check Table(301), Node Table(302) 그리고 실제 데이터를 유지하기 위한 Memory(303)로 구성될 수 있다. Node Usage Check Table(301)은 노드에서 유지해야 할 데이터의 크기에 따라서 여러 개의 큰 블록으로 나누어져 있으며, 큰 블록 안에 있는 각 칸은 대응되는 Node Table(302)의 사용여부를 표시한다. Node Table(302)은 각 노드가 유지해야 하는 모든 정보들 즉, 노드 이름, 노드 타입, 부모노드, 자식노드들 등을 관리하고 있는 테이블이다. 그러나 이 테이블은 실제 값을 유지하는 것이 아니고 값을 가지고 있는 메모리의 주소나 Node Table(302)의 주소를 유지한다. 따라서 테이블의 각각의 칸이 고정된 크 기로 되어 있어 있을 수 있다.
Memory(303)는 RAM(Random Access Memory)이 될 수 있으며 실제적인 값을 유지하기 위해 사용된다. Node Usage Check Table(301)과 Node Table(302)은 ASIC(Application-Specific Integrated Circuit) 형태로 구현 가능하다.
참고로, 도 5에 도시된 Node Usage Check Table(301)와 Node Table(302)은 서로의 관계가 고정되어 있다. 즉, Node Usage Check Table(301)에서 사용할 메모리 위치가 결정되면 Node Table에서 사용할 블록 위치가 자동으로 결정되는 것이다. 그리고 Node Table(302)은 실제 값을 갖는 부분이 아니고 실제 정보를 갖고 있는 Memory(303) 상의 주소를 저장하며, 이 또한 성능을 최대한 빠르게 하기 위해 고정된 위치로 매핑 될 수 있도록 하는 것이 좋다.
그러나 실제로 Node Table(302) 상에서 실제 값을 갖는 정보는 소수이며, 가변성이 큰 정보는 거의 없으므로 메모리의 크기를 적정하게 설정하면 메모리의 낭비가 크지 않게 될 것이다. 또한, Node Table(302)에 저장될 주소는 Node Table 상의 다른 블록(즉, 다른 Node)에 대한 정보일 수도 있다.
도 6은 도 5에 도시된 장치에서 메모리를 할당하는 절차를 보이는 흐름도이다.
먼저 할당할 메모리의 크기 정보를 포함한 노드 정보를 얻는다.(310과정)
XML 파싱을 하면서 DOM 트리를 만들기 위해 필요한 메모리 할당을 위해서는 할당할 메모리의 크기 정보를 포함한 노드 정보가 필요하다. 이 노드 정보를 기반으로 적절한 데이터 크기를 수용할 수 있는 메모리가 있는지 Node Usage Check Table에서 이용 가능 검사(311)을 해서(311과정), 있으면 Node Usage Check Table(301)에 사용 표시를 하고(313과정), 없다면 오류처리를 한다.(312과정)
Node Usage Check Table(301)과 Node Table(302) 사이의 관계가 고정되어 있으므로, Node Usage Check Table(301)에서 사용할 메모리의 위치를 결정하면 Node Table 상에서 사용할 부분의 주소를 자동으로 알 수 있다. 따라서 해당 Node Table의 주소 반환(314)를 수행해서 메모리 할당 수행은 끝이 난다.(314과정)
도 7은 도 5에 도시된 장치에서 메모리를 재할당하는 절차를 보이는 흐름도이다.
메모리의 재할당은 좀더 큰 데이터나 좀더 적은 데이터를 처리하기 위해 적절한 크기를 갖는 메모리를 할당하는 것이다.
먼저 재할당 정보를 얻는다.(320과정)
재할당 정보는 현재 사용하고 있는 노드 정보와 원하는 메모리 크기를 포함하며, 이를 기반으로 Node Usage Check Table(301)에서 재할당에 필요한 영역 검사를 수행해서 가능 여부를 결정한다.(321과정)
만일 메모리 재할당이 가능하다면 새로 사용한 부분에 대해 Node Usage Check Table(302)에 사용 표시을 하고(323과정), 할당 받은 Node Table(302)에 원본 Node의 정보를 복사한다.(324과정) 그 후 기존에 사용하던 것은 필요하지 않으므로 Node Usage Check Table(301)에서 원본 노드에 해당하는 칸 사용안함 표시를 하고,(325과정) 마지막으로 재할당한 Node Table(302)의 주소 반환(326)을 수행한다.
도 8은 도 5에 도시된 장치에서 메모리를 반환하는 절차를 보이는 흐름도이다.
먼저, 사용 노드 정보를 얻는다.(320과정)
사용 노드 정보(330)을 이용하여 해당 Node Usage Check Table(301)을 찾는다.(331과정)
찾은 Node Usage Check Table(301)에서 노드에 해당하는 칸에 사용안함 표시를 한다.(332과정)
도 9는 본 발명에 따른 XML 처리기를 활용하는 시스템의 소프트웨어 계층도를 보이는 것이다. 본 발명에 따른 XML 처리기를 활용하는 시스템(51)과 XML 처리기(30) 간의 인터페이스 방식(56)은 다양한 방법이 사용 가능하다. 예를 들면, PCI, USB 등과 같은 표준 방식들이 사용될 수 있으며, 이때 주의해야 할 것은 인터페이스의 속도와 안정성이다.
시스템 측의 디바이스 드라이버(55) 계층은 XML 처리기(30)와 데이터를 주고받기 위한 가장 하위 레벨의 프로그램이다. XML 파서 API(Application Programming Interface, 54)가 디바이스 드라이버(55)의 상위에 있으며, 응용 프로그램(52)은 XML 파서 API(54)를 이용하여 XML 처리를 수행한다. 여기서, 언어 적용 계층(53)은 응용 프로그램 개발시 언어의 독립성을 유지할 수 있도록 하기 위한 것이다. 언어 적용 계층(53)은 언어별로 각각 지원되어야 한다.
도 10은 대량의 XML 처리를 위한 시스템의 소프트웨어 계층도를 보이는 것이다. 도 10에 도시된 시스템(60)의 전반적인 구조는 도 5에 도시된 시스템(50)과 거의 같으며, 단지 소프트웨어 XML 파서(62)가 포함되었다.
이는 보다 효과적으로 XML 정보를 처리하기 위해, 처리 조건에 따라서 소프트웨어적으로 처리하는 것이 유리한 경우는 소프트웨어 XML 파서(62)가 처리하고 그렇지 않은 경우는 XML 처리기(30)가 처리하는 구조이다.
이에 대한 구분은 XML 파서 API 계층(61)에서 결정한다. 이에 대한 처리 조건 및 절차가 도 11도을 참조하여 설명된다.
도 11은 본 발명에 따른 XML 처리 방법을 보이는 흐름도이다. 도 11은 도 4 내지 도 6을 참조하여 설명된 본 발명에 따른 XML 처리기 및 소프트웨어 기반의 XML 처리기를 가지는 시스템에 있어서의 XML 처리 방법을 보인다.
먼저, 입력된 XML 파일의 크기를 검사한다.(65과정)
XML 파일 크기 검사(65)를 하는 이유는 특정 크기 이상의 XML 파일을 처리 하는 것은 제한된 메모리를 가지고 있는 XML 처리기의 전반적인 성능에 영향을 줄 수 있기 때문이다. 따라서 이런 경우는 소프트웨어 XML 파서를 이용하여 처리한다. (64과정)
입력된 파일의 크기가 설정된 크기보다 작다면, 다음은 XML 처리 결과로 파싱 트리 필요 여부를 검사한다.(66과정) 파싱 트리 필요 여부를 검사하는 이유는 XML 처리 후 트리를 결과로 제공할 필요가 없으면 소프트웨어 XML 파서로 처리한 성능과 XML 처리기로 처리한 성능이 크게 차이가 없으므로 소프트웨어로 처리하는 것이 바람직하다는 것 때문이다.
XML 처리 결과로 트리가 필요 없을 경우에는, 소프트웨어 XML 파서로 처리 한다.(64과정)
XML 처리 결과로 트리가 필요한 경우에는, 빠른 처리 필요 검사(67)를 한다. 빠른 처리 필요 검사를 하는 이유는 빠른 처리가 필요하지 않은 파일은 소프트웨어적으로 처리하고, 빠른 처리가 필요한 파일을 XML 처리기를 이용하여 처리하는 것이 좋기 때문이다.
빠른 처리가 필요하지 않은 경우에는 소프트웨어 처리기에 의해 처리하고(64과정), 빠른 처리가 필요한 경우에는 XML 처리기를 이용하여 처리한다.(68과정)
본 발명에 따른 XML 처리기는 XML 처리를 필수적으로 요구하는 다양한 시스템에 적용 가능하며, 독립적인 하드웨어를 기반으로 XML 처리 기능의 일부를 하드웨어적으로 처리하도록 함으로써 기존의 소프트웨어적으로 처리하는 방법에 비하여 처리 속도를 개선한다.
본 발명에 따른 XML 처리기가 적용된 시스템에서는 시스템의 중앙처리장치가 XML에 대한 처리 로드를 부담하지 않아도 되므로 시스템의 성능이 크게 향상 되며, 컴퓨팅 파워가 약한 소형의 임베디드 디바이스들의 경우에는 보다 자연스럽게 XML을 처리할 수 있게 된다.
본 발명에 따른 XML 처리기는 XML 처리 성능을 크게 요구하는 시스템에서부터 XML에 대한 처리 성능 요구는 크지 않지만 XML에 대한 처리가 부담이 되는 시스템에서 활용될 수 있다.
즉, 다량의 XML 처리를 요구하는 전자상거래 서버에서부터 디지털 가전, 텔레메틱스 단말, 이동전화 단말 등 소형의 임베디드 시스템까지 본 발명을 포함할 수 있다.
컴퓨팅 파워가 약한 소형의 임베디드 시스템에서 사용되는 파서는 부담스러운 XML 처리를 줄이기 위해 1개 이상의 지정된 XML DTD(Document Type Definition) 이나 스키마를 지원하거나 XML 표준의 일부분만을 지원할 수 있도록 하는 것이 일반적인 방식이다. 그러나 이와 같은 경우에도 보다 자연스러운 XML 처리를 위해 본 발명에 따른 XML 처리기를 포함하도록 할 수 있다.
본 발명에 따른 XML 처리기의 형태는 서버를 위해서는 PCI 카드 형태, 일반 테블릿 PC를 위해서는 USB 스틱 형태, 그리고 스마트폰 이나 디지털 가전 등을 위해서는 SoC(System on Chip) 형태가 될 수도 있다. 이는 XML 처리 용량과 시스템의 특성에 대한 고려를 통하여 적합한 형태로 적용될 수 있음을 의미하며, 또한 시스템과의 인터페이스도 각 시스템의 특성에 맞도록 적용될 수 있음을 의미한다.
상술한 바와 같이 본 발명에 따른 XML 처리기는 독립적인 하드웨어를 기반으로 XML 처리 기능의 일부를 하드웨어적으로 처리하도록 함으로써 기존의 소프트웨어적으로 처리하는 방법에 비하여 XML처리 속도를 개선하고, 시스템의 부담을 줄이는 효과를 가진다.

Claims (9)

  1. 확장성 생성 언어(Extensible mark-up language; XML) 처리를 수행하는 장치에 있어서,
    XML 처리를 수행하기 위한 소프트웨어를 저장하기 위한 제1메모리;
    XML 처리 기능들 중 XML 파싱에서 사용되는 메모리 할당, 반환, 재할당에 대한 처리를 수행하는 하드웨어 처리 모듈;
    상기 하드웨어 처리 모듈이 사용하는 제2메모리; 및
    XML 처리의 전반적인 제어를 담당하는 중앙처리장치를 포함하는 XML 처리 장치.
  2. 삭제
  3. 제1항에 있어서,
    상기 제2메모리는 각 노드가 유지해야 하는 모든 정보들 즉, 노드 이름, 노드 타입, 부모 노드, 자식 노드들 등의 실제 내용을 저장하는 노드 메모리(node memory); 상기 노드 메모리의 각 정보들을 관리하는 노드 테이블(node table); 그리고 상기 노드 테이블의 사용여부를 표시하는 노드 사용 체크 테이블(Node Usage Check Table)이 마련되며;
    상기 하드웨어 처리 모듈은 상기 중앙 처리 장치 및 상기 제2메모리와 동작적으로 연결되며, 할당할 저장 공간의 크기 정보를 포함하는 노드 정보 및 상기 노드 사용 체크 테이블을 참조하여 상기 노드에 대하여 이용가능한 저장 공간을 할당하고, 상기 노드에 대한 재할당 정보 및 상기 노드 사용 체크 테이블을 참조하여 상기 노드에 대해 할당된 저장 공간을 재할당하며 그리고 불필요한 노드에 대해 할당된 저장 공간을 반환하도록 제어하는 것을 특징으로 하는 XML 처리 장치.
  4. 제3항에 있어서, 상기 노드 테이블은 상기 노드 메모리의 어드레스를 가지는 것을 특징으로 하는 XML 처리 장치.
  5. 제3항에 있어서, 상기 노드 테이블과 상기 노드 메모리 사이의 관계는 고정되어 있는 것을 특징으로 하는 XML 처리 장치.
  6. 제1항에 있어서, 상기 노드 사용 체크 테이블은 상기 노드에서 유지할 데이터의 크기에 따라 여러 개의 블록들로 나뉘어져 있는 것을 특징으로 하는 XML 처리 장치.
  7. 삭제
  8. 삭제
  9. 삭제
KR1020030097243A 2003-12-26 2003-12-26 Xml처리 장치 및 이를 적용한 시스템의 xml 처리 방법 KR100564767B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020030097243A KR100564767B1 (ko) 2003-12-26 2003-12-26 Xml처리 장치 및 이를 적용한 시스템의 xml 처리 방법
PCT/KR2004/002759 WO2005064489A1 (en) 2003-12-26 2004-10-29 Xml processor and xml processing method in system having the xml processor
JP2006546809A JP4347890B2 (ja) 2003-12-26 2004-10-29 Xmlプロセッサ及び、xmlプロセッサを有するシステムのxml処理方法
US10/584,733 US20070283242A1 (en) 2003-12-26 2004-10-29 Xml Processor and Xml Processing Method in System Having the Xml Processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030097243A KR100564767B1 (ko) 2003-12-26 2003-12-26 Xml처리 장치 및 이를 적용한 시스템의 xml 처리 방법

Publications (2)

Publication Number Publication Date
KR20050066045A KR20050066045A (ko) 2005-06-30
KR100564767B1 true KR100564767B1 (ko) 2006-03-27

Family

ID=34737890

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030097243A KR100564767B1 (ko) 2003-12-26 2003-12-26 Xml처리 장치 및 이를 적용한 시스템의 xml 처리 방법

Country Status (4)

Country Link
US (1) US20070283242A1 (ko)
JP (1) JP4347890B2 (ko)
KR (1) KR100564767B1 (ko)
WO (1) WO2005064489A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100458786C (zh) * 2006-06-15 2009-02-04 Ut斯达康通讯有限公司 基于应用定制解析xml文档的方法及装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100249849B1 (ko) * 1997-10-14 2000-03-15 이계철 실시간 데이터의 암호화/복호화용 정보 보안 장치
US6938204B1 (en) * 2000-08-31 2005-08-30 International Business Machines Corporation Array-based extensible document storage format
US7013424B2 (en) * 2001-05-04 2006-03-14 International Business Machines Corporation Dedicated processor for efficient processing of documents encoded in a markup language
US7305615B2 (en) * 2001-07-30 2007-12-04 Gigalogix, Inc. Methods and apparatus for accelerating data parsing
US7080094B2 (en) * 2002-10-29 2006-07-18 Lockheed Martin Corporation Hardware accelerated validating parser
US20040083466A1 (en) * 2002-10-29 2004-04-29 Dapp Michael C. Hardware parser accelerator
US20040088262A1 (en) * 2002-11-06 2004-05-06 Alacritech, Inc. Enabling an enhanced function of an electronic device
KR100483497B1 (ko) * 2002-11-26 2005-04-15 한국전자통신연구원 엘리먼트 기반 웹 문서의 파싱시스템 및 그 방법
US7774831B2 (en) * 2002-12-24 2010-08-10 International Business Machines Corporation Methods and apparatus for processing markup language messages in a network
US7124147B2 (en) * 2003-04-29 2006-10-17 Hewlett-Packard Development Company, L.P. Data structures related to documents, and querying such data structures
US20050138381A1 (en) * 2003-08-01 2005-06-23 Stickle Thomas C. Dynamic content security processor system for XML documents
JP4322059B2 (ja) * 2003-08-08 2009-08-26 富士通株式会社 入力データ制限プログラムおよび入力データ制限方法
US7287217B2 (en) * 2004-01-13 2007-10-23 International Business Machines Corporation Method and apparatus for processing markup language information

Also Published As

Publication number Publication date
JP2007520799A (ja) 2007-07-26
WO2005064489A1 (en) 2005-07-14
JP4347890B2 (ja) 2009-10-21
US20070283242A1 (en) 2007-12-06
KR20050066045A (ko) 2005-06-30

Similar Documents

Publication Publication Date Title
US11044140B2 (en) Method and apparatus for serialization and deserialization of message structure
US9075833B2 (en) Generating XML schema from JSON data
US7774752B2 (en) Runtime services for network software platform
US7853593B2 (en) Content markup transformation
US20060123046A1 (en) System and method for unknown type serialization
CN107704615B (zh) 基于中文字体子集化的网页字体显示方法及系统
US8695018B2 (en) Extensible framework for handling different mark up language parsers and generators in a computing device
CN1777886A (zh) 使用资源有限的设备处理电子表单的方法和设备
US7962919B2 (en) Apparatus and method for modifying an initial event queue for extending an XML processor's feature set
US20070234199A1 (en) Apparatus and method for compact representation of XML documents
CN113126990B (zh) 一种页面开发方法、装置、设备及存储介质
CN112650533B (zh) 接口文档的生成方法、装置和终端设备
TW200422881A (en) Method and computer-readable medium for importing and exporting hierarchically structured data
US7313587B1 (en) Method and apparatus for localizing Web applications
US7681175B2 (en) Methods and systems for displaying multiple unique dynamic messages on a user interface
CN115034176A (zh) 文本处理方法、装置、电子设备和计算机可读存储介质
US20030237052A1 (en) Method and an apparatus for styling a web service
US7143101B2 (en) Method and apparatus for self-describing externally defined data structures
KR100564767B1 (ko) Xml처리 장치 및 이를 적용한 시스템의 xml 처리 방법
CN116450134A (zh) 可配置的前端控件校验控制器生成方法及系统
US20060005119A1 (en) Efficient memory usage for unified document object model implementation for java
CN114722781B (zh) 一种将流式文档转换为ofd文档的方法和装置
US9201838B2 (en) Systems and methods for the efficient exchange of hierarchical data
CN107643892B (zh) 接口处理方法、装置、存储介质和处理器
CN113297425B (zh) 文档转换方法、装置、服务器及存储介质

Legal Events

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

Payment date: 20091228

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee