KR20070064684A - 확장가능 마크업 언어 문서를 처리하는 시스템 및 방법 - Google Patents

확장가능 마크업 언어 문서를 처리하는 시스템 및 방법 Download PDF

Info

Publication number
KR20070064684A
KR20070064684A KR1020077012212A KR20077012212A KR20070064684A KR 20070064684 A KR20070064684 A KR 20070064684A KR 1020077012212 A KR1020077012212 A KR 1020077012212A KR 20077012212 A KR20077012212 A KR 20077012212A KR 20070064684 A KR20070064684 A KR 20070064684A
Authority
KR
South Korea
Prior art keywords
codebook
document
mobile device
data server
xml
Prior art date
Application number
KR1020077012212A
Other languages
English (en)
Inventor
러셀 엔 오웬
빌 유안
앤드레이 에이 리프치츠
마이클 노우리스
Original Assignee
리서치 인 모션 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 리서치 인 모션 리미티드 filed Critical 리서치 인 모션 리미티드
Publication of KR20070064684A publication Critical patent/KR20070064684A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/986Document structures and storage, e.g. HTML extensions

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Document Processing Apparatus (AREA)
  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

문서를 처리하는 시스템 및 방법이 개시된다. 데이터 서버에서 수신한 문서들은 국부적으로 저장되거가 발생된 코드북을 이용하여 트랜스코드된다. 무선 이동 통신 장치에서 수신한 트랜스코드된 문서의 코드북은 장치의 메모리로부터 검색되거나 또는 데이터 서버로부터 요구된다. 코드북 요구에 응답하여, 데이터 서버는 요구된 코드북을 로컬 메모리로부터 검색하거나 또는 요구된 코드북을 발생하여 요구된 코드북을 요구자에게 복귀시킨다. 무선 이동 통신 장치는 국부적으로 저장된 코드북, 국부적으로 발생된 코드북, 또는 코드북 요구에 응답하여 수신된 코드북을 이용하여 XML 문서를 또한 발생 및 트랜스코드할 수 있다.
데이터 서버, 무선 이동 통신 장치, XML 문서

Description

확장가능 마크업 언어 문서를 처리하는 시스템 및 방법{SYSTEM AND METHOD FOR PROCESSING EXTENSIBLE MARKUP LANGUAGE(XML) DOCUMENTS}
도 1은 무선 이동 통신 장치로부터 정보 소스에 대한 액세스를 제공하는 통신 시스템의 블록도이다.
도 2는 도 1의 이동 장치(12)와 데이터 서버(18)의 내부 요소들을 나타내는 블록도이다.
도 3은 이동 장치(12)로부터의 접속 요구에 응답하여 데이터 서버(18)의 동작을 설명하는 신호 흐름도이다.
도 4는 이동 장치(12)에 의한 문서의 처리를 나타내는 신호 흐름도이다.
도 5는 도 4에 도시된 이동 장치 처리와 관련된 데이터 서버 동작을 나타내는 신호 흐름도이다.
도 6은 수신된 XML 문서의 데이터 서버 처리를 설명하는 흐름도이다.
도 7은 이동 장치에 의한 수신된 트랜스코드 문서의 처리를 나타내는 흐름도이다.
도 8은 본 발명의 다른 태양에 따라 코드북 요구와 관련된 데이터 서버 동작을 나타내는 신호 흐름도이다.
도 9는 도 8에 도시된 본 발명의 실시예에 따른 코드북 요구의 데이터 서버 처리를 나타내는 흐름도이다.
도 10은 도 8 및 도 9에 도시된 코드북 방식을 지원하기 위한 수신 XML 문서의 예시적인 데이터 서버 처리를 설명하는 흐름도이다.
도 11은 이동 장치에서 WBXML 문서를 생성하는 것을 나타내는 신호 흐름도이다.
도 12는 데이터 서버에 의해 이동 장치로부터 수신된 WBXML 문서의 처리를 나타내는 신호 흐름도이다.
도 13은 발생된 XML 문서의 이동 장치 처리를 나타내는 흐름도이다.
도 14는 데이터 서버에 의한 수신 WBXML 문서의 처리를 설명하는 흐름도이다.
도 15는 본 발명에 따른 시스템 및 방법이 구현되는 이동 장치를 나타내는 블록도이다.
본 발명은 일반적으로 무선 통신 및 무선 이동 통신 장치에 관한 것이다. 특히, 본 발명은 무선 통신 장치를 지원하는 확장가능 마크업 언어(Extensible Markup Language; XML)를 발생하는 것과 관련된다.
XML은 상이한 컴퓨터 시스템들 사이에서 데이터를 교환하기 위한 가장 일반적인 방식 중의 하나로 신속하게 되고 있다. 그러나, 무선 또는 다른 협대역 통신 시스템을 통한 전송에 있어서, 전송할 XML 문서의 크기를 줄이기 위해 효율적인 엔코딩 방식이 요구되고 있다. 아마도 무선 전송할 XML 문서를 작성하기 위한 가장 인기있는 엔코딩 방식은 무선 애플리케이션 프로토콜(Wireless Application Protocol: WAP) 바이너리 XML 또는 WBXML일 것이다. WBXML은 XML을 엔코드하고 디코드하기 위해 토큰 테이블(token table) 또는 코드북(code book)에 의존한다. WBXML 명세서는 등가물을 태그하기 위한 한 세트의 토큰을 나타내기 위해 용어 "코드 페이지"를 사용한다. 코드 페이지는 기껏해야 256개를 넘지 않는 엔트리를 가질 수 있으며, 따라서 수 개의 코드 페이지가 있을 수 있다. 이 명세서에서 사용하고 있는 용어 "코드북"은 한 개 또는 복수 개의 코드 페이지의 세트를 나타낸다. 그러므로, 코드북은 XML 태그 또는 속성과 그들의 대응하는 토큰화 등가물 사이를 맵하는 한 세트의 검색 테이블(lookup table)이다.
무선 통신 시스템용의 공지의 XML 솔루션은 토큰 테이블의 2개의 복사본을 사용한다. 하나의 복사본은 전형적으로 정보 게이트웨이, 서버, 또는 XML로부터 WBXML로 트랜스코딩(transcoding) 또는 토큰화(tokenizing)하기 위한 다른 정보 소스(source)에 내장되고, 다른 하나의 복사본은 토큰화한 WBXML을 구문분석(parse) 및/또는 디코드하는 소프트웨어 애플리케이션 코드의 이동 통신 장치측에 내장된다. 사실, 대부분의 공지의 WBXML 클라이언트 소프트웨어 애플리케이션은 구문분석기(parser)에 내장된 엔코딩 방식을 갖는다. 이것은 만일 엔코딩 방식이 잘 알려져 있다면 잘 동작한다. 그러나, 새로운 XML 방언(dialect)에 대해서는 알려진 엔코딩 방식이 없다. 새로운 XML 방언을 사용하기 원하는 소프트웨어 애플리케이션 개발자 는 엔코딩 방식을 고안해야 하고, 및/또는 엔코딩을 행하기 위한 트랜스코더(transcoder) 및 클라이언트 소프트웨어 애플리케이션용의 구문분석기를 생성해야 한다.
그러한 시스템에서, 이동 통신 장치 또는 가능하다면 그러한 장치에 설치된 소프트웨어 애플리케이션은 수신된 WBXML 문서를 처리하기 위하여 WBXML 엔코더에 의해 XML 문서가 어떻게 엔코드되었는지, 즉, 어떤 토큰 테이블이 사용되었는지를 알아야 한다. 이것은 이동 통신 장치의 XML 애플리케이션이 통상적으로 서버 또는 게이트웨이에서 사용되는 엔코딩 방식에 대응하는 특수한 유형의 XML용으로 구성된다는 것을 의미한다. XML 프로세서가 예를 들면 컴퓨터 소프트웨어 코드로 구현될 때, 엔코딩 방식은 전형적으로 소프트웨어 코드에 내장되고, 새로운 XML 문서 유형이 수신될 때마다 서버 소프트웨어 코드와 이동 통신 장치 소프트웨어 코드가 그에 따라서 수정되어야 하는데, 이것은 특히 상이한 엔티티가 서버 동작 및 이동 통신 장치와 애플리케이션에 대하여 책임이 있는 경우에 비용이 많이 들고 시간 소모성이 있으며 에러를 발생하기 쉽다. 또한, WBXML 구문분석기가 이전에 처리한 적이 없는 XML 문서 유형으로부터 발생된 WBXML 문서를 수신하고, 그 특수한 XML 문서 유형에 대한 코드북이 디코더 또는 구문분석기, 또는 디코더 또는 구문분석기가 설치된 이동 통신 장치에 내장되어 있지 않으면, 장치 및 그 장치의 임의의 소프트웨어 애플리케이션은 WBXML 문서를 처리할 수 없게 된다.
그러므로, XML 인에이블된 애플리케이션이 특수한 XML 유형 및 그 엔코딩 방 식과 무관하게 되도록 임의의 특수한 엔코딩 방식에 한정되지 않는 이동 통신 장치에서 범용 XML을 지원하는 시스템 및 방법이 필요하게 된다.
또한, 모든 유형의 XML 문서를 처리하기 위한 시스템 및 방법의 관련된 필요성이 존재한다.
더 나아가서, 장치에서 소프트웨어 코드를 변경할 필요없이 새로운 XML 문서 유형을 지원하는 이동 통신 장치에서 XML을 지원하기 위한 시스템 및 방법의 필요성이 존재한다.
본 발명의 실시예에 따르면, 무선 이동 통신 장치에서 XML 문서를 처리하는 방법은 코드북을 이용하여 XML 문서를 트랜스코딩함으로써 발생되는 처리된 문서를 데이터 서버로부터 수신하는 단계와, 상기 코드북이 무선 이동 통신 장치에 저장되어 있는지를 결정하는 단계와, 코드북이 무선 이동 통신 장치에 저장되어 있지 않은 경우 데이터 서버로부터 코드북을 요구하는 단계와, 데이터 서버로부터 코드북을 수신하는 단계와, XML 문서를 복구하기 위해 코드북을 이용하여 상기 처리된 문서를 트랜스코딩하는 단계를 포함한다.
무선 이동 통신 장치에서 XML 문서를 처리하는 관련 시스템은 코드북을 이용하여 XML 문서를 트랜스코딩함으로써 발생되는 처리된 문서를 데이터 서버로부터 수신하도록 구성된 수신기와, 코드북을 저장하기 위한 캐시를 포함하는 코드북 시스템과, 수신기 및 코드북 시스템에 결합되어 처리된 문서를 구문분석하고, 코드북 시스템으로부터 코드북을 요구하며, XML 문서를 복구하기 위해 코드북을 이용하여 상기 처리된 문서를 트랜스코드하도록 구성된 트랜스코딩 시스템을 포함하고, 상기 코드북 시스템은 코드북이 트랜스코딩 시스템에 의해 요구될 때 코드북이 캐시에 저장되어 있는지를 결정하고, 코드북이 캐시에 저장되어 있는 경우 코드북을 트랜스코딩 시스템에 제공하며, 코드북이 캐시에 저장되어 있지 않은 경우 코드북을 데이터 서버로부터 요구하고, 데이터 서버로부터 코드북을 수신하며 코드북을 트랜스코딩 시스템에 제공하도록 구성되어 있다.
본 발명의 다른 실시예에 따르면, 문서 처리 시스템은 코드북 요구를 수신하고 각각의 코드북 요구에 응답하여 코드북을 제공하도록 구성된 코드북 시스템과, 코드북을 저장하도록 구성된 코드북 시스템 내의 메모리와, 문서들을 수신하고, 각각의 수신된 문서에 대하여, 코드북 시스템으로부터 대응하는 코드북을 요구하며 코드북을 이용하여 수신 문서를 트랜스코드하도록 구성된 트랜스코더 시스템과, 코드북을 발생하도록 구성된 코드북 구축기를 포함하고, 코드북 시스템은, 추가적으로, 요구된 코드북이 메모리에 저장되어 있는지를 결정하고, 요구된 코드북이 메모리에 저장되어 있지 않은 경우 요구된 코드북을 구축하도록 코드북 구축기를 동작시키고 코드북 구축기로부터 요구된 코드북을 수신하도록 구성된다.
본 발명의 추가적인 태양에 따르면, 문서를 처리하는 방법은 정보 소스으로부터 문서를 수신하는 단계와, 문서를 트랜스코딩하기 위한 코드북이 코드북 시스템에 저장되어 있는지를 결정하는 단계와, 문서를 트랜스코딩하기 위한 코드북이 코드북 시스템에 저장되어 있지 않은 경우 코드북을 발생하는 단계와, 코드북을 이용하여 문서를 트랜스코딩하고 트랜스코딩된 문서를 발생하는 단계를 포함한다.
코드북 요구에 응답하여 코드북을 제공하는 시스템은, 요구된 코드북을 식별하는 코드북 요구를 요구자로부터 수신하도록 구성된 수신기와, 복수의 코드북을 저장하는 코드북 캐시와, 요구된 코드북이 코드북 캐시에 저장되어 있는지를 결정하도록 구성된 코드북 시스템과, 요구된 코드북이 코드북 캐시에 저장되어 있지 않은 경우 요구된 코드북을 발생하여 요구된 코드북을 코드북 캐시에 저장하도록 구성된 코드북 구축기와, 요구된 코드북을 요구자에게 전송하도록 구성된 송신기를 포함한다.
본 발명의 추가적인 태양에 따른 XML 문서 처리 방법은, 코드북을 이용하여 XML 문서를 트랜스코딩함으로써 발생되는 처리된 문서를 제1 데이터 서버로부터 수신하는 단계와, 상기 코드북이 코드북 캐시에 저장되어 있는지를 결정하는 단계와, 코드북이 코드북 캐시에 저장되어 있지 않은 경우 제2 데이터 서버로부터 코드북을 요구하는 단계와, 제2 데이터 서버로부터 코드북을 수신하는 단계와, XML 문서를 복구하기 위해 코드북을 이용하여 상기 처리된 문서를 트랜스코딩하는 단계를 포함한다.
무선 네트워크를 통해 전송하기 위하여 무선 이동 통신 장치에서 문서를 처리하는 방법은, 무선 이동 통신 장치에서 문서를 발생하는 단계와, 문서가 참조 문서 데피니션과 관련되는지를 결정하는 단계와, 문서가 참조 문서 데피니션과 관련되는 경우, 참조 문서 데피니션에 대한 코드북이 코드북 캐시에 저장되어 있는지를 결정하고, 코드북이 코드북 캐시에 저장되어 있는 경우 코드북 캐시로부터 코드북을 검색하며, 코드북이 코드북 캐시에 저장되어 있지 않은 경우 데이터 서버로부터 코드북을 요구하고 데이터 서버로부터 코드북을 수신하는 단계와, 코드북을 이용하여 문서를 트랜스코딩하고 트랜스코드된 문서를 발생하는 단계와, 트랜스코드된 문서를 무선 네트워크를 통해 전송하는 단계를 포함한다.
본 발명의 추가적인 특징들은 이하의 상세한 설명에서 설명되거나 명백하게 될 것이다.
도 1은 무선 이동 통신 장치로부터 정보 소스에 대한 액세스를 제공하는 통신 시스템의 블록도이다. 도 1에서, 시스템(10)은 무선 이동 통신 장치(12), 무선 통신 네트워크(14), 무선 네트워크 게이트웨이(15), 광역 네트워크(WAN)(16), 데이터 서버(18) 및 정보 소스(information source)(20)을 포함한다.
이동 장치(12)는, 예를 들면, 적어도 데이터 및 가능하다면 음성 통신 능력을 가진 양방향 통신 장치와 같이, 무선 통신 네트워크(14) 내에서 동작하도록 구성된 무선 이동 통신 장치이다. 이동 장치(12)에 의해 제공되는 기능에 따라서, 이동 장치는 데이터 메세징 장치, 양방향 페이저, 데이터 메세징 기능이 있는 휴대 전화(cellular telephone), 무선 인터넷 설비 또는 데이터 통신 장치(전화 기능이 있거나 없는 것)일 수 있지만, 이후에는 주로 "이동 장치"라고 부른다. 이동 장치(12) 내의 통신 서브시스템(도시 생략)의 특수한 설계는 이동 장치(12)가 동작하고자 하는 통신 네트워크(14)에 의존할 것이다. 예를 들어, 북아메리카 시장에서 사용되는 이동 전화(12)는 MobitexTM 이동 통신 시스템 또는 DataTACTM 이동 통신 시스템 내에서 동작하도록 설계되고, 유럽에서 사용되는 이동 장치(12)는 제너럴 패 킷 라디오 서비스(General Packet Radio Service; GPRS) 통신 서브시스템을 통합할 수 있다. 다른 유형의 이동 장치 및 네트워크가 또한 예상된다. 이 명세서에서 설명하는 시스템 및 방법은 실질적으로 임의의 무선 네트워크(14) 및 이동 장치(12)와 함께 구현될 수 있다.
도 1에 도시된 무선 네트워크 게이트웨이(15)는 무선 네트워크(14)와 예를 들면 인터넷일 수 있는 WAN(16) 사이의 인터페이스를 제공한다. 이동 장치 어드레싱, WAN 프로토콜과 무선 네트워크 프로토콜 사이의 데이터 변환, 이동 장치(12)로/로부터의 데이터 저장 및 전송, 및 다른 인터페이스 기능이 무선 네트워크 게이트웨이에 의해 수행될 수 있다.
데이터 서버(18)는 무선 네트워크(14)와 관련된 네트워크 캐리어 또는 오퍼레이터에 의해 호스트될 수 있다. 이 경우에, 데이터 서버(18)와 무선 네트워크 게이트웨이(15)간의 접속은 WAN(16) 대신에 사설 캐리어 네트워크를 사용할 수 있다. 이 때, WAN(16)은 데이터 서버(18)와 정보 소스(20)간의 통신을 위해 사용될 수 있다. 데이터 서버(18)의 이러한 호스트된 또는 공중 구현(public implementation)은 도 1에 도시된 시스템에 대한 적당한 다른 접근법이다.
데이터 서버(18)는 이동 장치(12)에 정보 소스(20)에 대한 액세스를 효과적으로 제공하는 시스템이다. 데이터 서버(18)를 통하여, 이동 장치(12)는 데이터 서버 (18)와 통신할 수 있는, 예컨대 인터넷 또는 웹 서버와 같은, 임의의 정보 소스(20)을 액세스할 수 있다. 그러므로, 정보 소스(20)은 데이터 서버(18)와 통신하고 이동 장치(12)와는 직접 통신하지 않기 때문에 무선 네트워크 통신을 위한 특수 한 애플리케이션 또는 프로토콜 지원 설비를 요구하지 않는다. 비록 도 1에는 직접 접속된 것으로 도시되어 있지만, 데이터 서버(18)와 정보 소스(20)은 인터넷을 비롯하여 지역 네트워크(LAN) 또는 WAN과 같은 네트워크를 통해서 통신할 수 있다. 다른 실시예에서, 데이터 서버(18)의 기능들은 무선 네트워크 게이트웨이(15) 또는 정보 소스(20)에 통합될 수 있다. 무선 네트워크 게이트웨이(15), 데이터 서버(18) 및 정보 소스(20)의 다른 실시예들은 이 기술에 숙련된 사람들에게 명백할 수 있고, 따라서 그러한 다른 실시예들도 본 발명의 범위 내에 있는 것으로 고려된다.
무선 네트워크와 인터넷은 유사한 어드레싱 방식을 사용하고, 여기에서 무선 네트워크에서의 이동 장치(12)와 같은 통신 설비 또는 데이터 서버(18) 및 가능하다면 정보 소스(20)과 같은 인터넷 접속된 컴퓨터는 수치적 어드레스에 의해 식별된다. 예를 들어, 이동 장치(12)는 모비텍스(Mobitex) 네트워크에서 모비텍스 액세스 넘버(Mobitex Access Number; MAN)를 이용하여 식별되고, 공중 인터넷 노드(public Internet node)는 인터넷 프로토콜(Internet Protocol; IP) 어드레싱 방식을 이용하여 식별된다. 그러나, 무선 네트워크와 인터넷 전송 구조간의 차이는 전형적으로 대부분이 인터넷에 기초를 두는 정보 소스(20)들과 이동 장치(12)와 같은 이동 장치들간의 직접 통신을 못하게 한다. 인터넷 및 다른 WAN 통신 프로토콜은 또한 발송자와 수신자 사이에 통신을 확립하기 위한 몇가지 교환 및 비교적 대량의 오버헤드를 수반하는 "채티"(chatty)일 수 있고, 이들은 무선 네트워크 통신에서 바람직하지 않다. 또한, 정보 소스(20)에 의해 제공된 컨텐트는 주로 유선 통신 네트워크를 통한 전송에 목표를 두고 있다. 전술한 바와 같이, XML 문서는 비교 적 크기 때문에 무선 통신 채널을 통하여 전송하기 위해 압축되어야 한다. 데이터 서버(18)는 인터넷 기반의 정보 소스 및 가능한 다른 정보 소스(20)과 이동 장치(12)와 관련된 무선 네트워크(14) 사이의 갭을 브리징한다. 데이터 서버(18)의 기능들은, 예를 들면, 에드레스 맵핑, 컨텐트 변환 및 증명, 및 프로토콜 맵핑과 최적화를 포함할 수 있다.
비록 도 1에는 이동 장치(12), 무선 네트워크(14) 및 게이트웨이(15)가 도시되어 있지만, 본 발명은 XML 문서를 요구할 수 있는 또는 다른 방식으로 XML 문서를 얻을 수 있는 다른 유형의 이동 장치에 또한 적용할 수 있다. 처리 리소스 및 통신 링크 대역폭은 이동 장치 및 무선 통신 네트워크에 관한 데스크톱 컴퓨터 시스템 및 유선 통신 링크로 제한되지 않는다. 그러나, 여기에서 설명하는 XML 문서의 트랜스코딩은 데이터의 크기를 감소시킬 뿐만 아니라 구문분석기가 더 효율적이고 더 용이하게 기록을 행할 수 있게 한다. 감소된 데이터 크기는 유선 접속을 통한 XML 문서의 고속 전송을 제공하고, 한편 더 간단하고 더 효율적인 구문분석기는 유사하게 데스크톱 컴퓨터 시스템 소프트웨어 애플리케이션 및 임의의 다른 데이터 서버 클라이언트 애플리케이션이 더 쉽게 개발될 수 있게 한다. 그러므로, 여기에서 설명하는 시스템 및 방법은 유선 또는 무선 통신 시스템 및 장치들과 함께 구현될 수 있다는 것을 알아야 한다.
이제, 도 2를 참조하면서 본 발명의 실시예를 설명한다. 도 2는 도 1의 이동 장치(12)와 데이터 서버(18)의 내부 요소들을 나타내는 블록도이다. 도 2에 도시된 바와 같이, 데이터 서버(18)는 프로토콜 번역기(24), 접속 핸들러(26), 트랜스코딩 시스템(28), 코드북 시스템(30), 코드북 서브렛(32), 및 코드북 구축기(34)를 포함한다. 이동 장치(12)는 통신 서브시스템(36), 소프트웨어 애플리케이션(38), WBXML 구문분석기(40), 애플리케이션 핸들러(42) 및 코드북 시스템(44)을 포함한다.
비록 도 2에는 도시하지 않았지만, 도 1에 도시된 무선 네트워크(14), 무선 네트워크 게이트웨이(15) 및 WAN(16) 뿐만 아니라, 이동 장치(12)와 데이터 서버(18)가 통신할 수 있게 하는 임의의 다른 중간 통신 링크 및 네트워크는 일반적으로 무선 전송부(22)로서 표시되어 있다. 이 기술에 숙련된 사람이라면 무선 전송부(22)가 무선 통신 네트워크 내에서 동작하는 이동 장치(12)와 데이터 서버(18)간의 통신이 하나 이상의 유선 또는 무선 통신 링크 또는 네트워크를 통하여 제공하는 임의의 시스템을 나타내려고 한다는 것을 알 것이다. 그러므로, 본 발명은 어떤 방식으로든 도 1의 시스템과 같은 통신 시스템으로 제한되지 않는다는 것은 명백하다. 여기에서 설명하는 시스템 및 방법은 임의의 특수한 통신 네트워크 또는 프로토콜에 의존하는 것이 아니다.
데이터 서버(18)에 있어서, 프로토콜 번역기(24)는 링크(35)를 이용하여 무선 전송부(22)를 통해 이동 장치(12)와 통신하기 위하여 사용되는 프로토콜과, 통신 링크(21)를 통해 정보 소스(20)과 통신하기 위하여 사용되는 프로토콜 사이에서 임의의 필요한 번역(translation)을 수행한다. 본 발명의 하나의 예상된 실시예에 있어서, 데이터 서버(18)는 본 출원의 소유자가 개발한 사유재산적 프로토콜(proprietary protocol)인 소위 IP 프록시 프로토콜(IP Proxy Protocol; IPPP)을 이용하여 링크(35)를 통해 무선 전송부(22)와 통신하고, 한편 정보 소스과의 통신 은 예를 들면 하이퍼텍스트 전송 프로토콜(Hypertext Transfer Protocol; HTTP) 또는 전송 제어 프로토콜(Transmission Control Protocol; TCP)을 사용할 수 있다. 만일 데이터 서버(18)와 무선 전송부(22) 사이 및 데이터 서버(18)와 정보 소스(20) 사이에 동일한 프로토콜을 사용하거나, 또는 데이터 서버(18)의 기능들이 정보 소스(20)에서 구현된다면, 프로토콜 번역기(24)는 필요없을 수 있다.
도 2는 단지 하나의 접속 핸들러(24), 통신 링크(21) 및 정보 소스(20)을 도시하고 있다. 데이터 서버(18)가 정보 소스(20)과 관련되는 집적 시스템에 있어서, 정보 소스(20)이 예를 들면 원격 데이터 액세스 및 트랜트코딩 서비스를 제공하는 경우에 접속(21)은 집적 시스템 내부에서 이루어진다. 그러나, 다른 실시예에서, 접속 핸들러(26) 및 다른 유형의 접속을 위한 가능한 다른 접속 핸들러(도시 생략)들은 데이터 서버(18)가 인터넷 기반 소스를 포함한 각종 정보 소스으로부터의 컨텐트를 동시에 취급 및 처리할 수 있게 한다.
도면 부호 26으로 표시한 것과 같은 접속 핸들러는 데이터 서버(18)에 대한 내향(inbound) 및 외향(outbound) 접속으로부터의 컨텐트를 처리하는 능력을 가진 중간 객체이다. 데이터 서버(18)의 특수한 접속 핸들러(들)는 적당히 교체될 수 있고, 맞춤형(customized) 또는 추가적인 핸들러가 필요에 따라 데이터 서버(18)에 적절히 부가될 수 있다. 접속 핸들러는 정보 컨텐트뿐만 아니라 통신 프로토콜까지도 최적화할 수 있다. 예를 들어, 이동 장치(12)에 정상적으로 보내질 수 있는 어떤 요구(예를 들면 패스워드에 대한 요구 등)는 접속 핸들러(26)에 의해 해결될 수 있다. 이 프로토콜 최적화의 예는 무선 전송부(22)를 통하여 이동 장치(12)에 보내 지는 트래픽량(amounts of traffic)을 감소시키고, 이것에 의해 무선 네트워크 대역폭 제한 및 대기시간(latency)을 감소시킴으로써 더욱 무선 친숙하게 되도록 소위 "채티"(chatty) 프로토콜을 구성할 수 있다.
이동 장치(12)가 아닌 데스크톱 컴퓨터 시스템(도시 생략)의 경우에, 인터넷 서비스 공급자(ISP) 시스템 또는 애플리케이션 서비스 공급자(ASP) 시스템과 같은 게이트웨이는 데이터 서버(18)에 대하여 인터페이스를 제공할 수 있다. 데이터 서버가 유선 클라이언트와 무선 클라이언트를 둘 다 지원하는 경우에, 다른 전송부 및 프로토콜 번역기가 상이한 유형의 클라이언트에 대하여 구현될 수 있다.
외향 접속은 데이터를 예를 들면 인터넷 노드에 보내거나 인터넷 노드로부터 수신하기 위해 이동 장치(12)로부터 만들어진다. 데이터 서버(18)는, 비록 다른 프로토콜이 또한 사용될 수 있지만, 위에서 언급한 사유재산적 프로토콜인 IPPP와 같은 특수한 프로토콜을 이용하여 이동 장치(12)로부터 접속 요구를 수신할 수 있다. 이 때 데이터 서버(18)는 접속 요구에서 이동 장치(12)에 의해 제공된 프로토콜 및 라우팅 정보에 따라 인터넷 접속을 확립하고, 데이터를 양방향으로 전송하는 것을 개시하기 위해 그 접속을 번역 및 맵한다. 트랜스코딩 시스템(28)에서의 여과 및 트랜스코딩은 예를 들면 접속을 통해 전달된 컨텐트의 유형에 기초하여 필요할 때마다 접속 핸들러(26)에 의해 호출(invoke)된다. 데이터 서버(18) 및 이동 장치(12)의 이와 같은 외향 접속 및 동작은 웹 브라우징 동작과 관련하여 뒤에서 상세히 설명된다.
내향 접속은 예를 들면 데이터 푸쉬 모델을 구현하기 위해 사용된다. 이 모 델에서, 이동 장치(12)는 외향 접속의 경우처럼 정보를 인출하도록 요구를 발행함이 없이 정보를 보낸다. 위에서 간단히 설명한 바와 같이, 이동 장치(12)는 인터넷 노드가 아닌 다른 네트워크 구역에 존재할 수 있다. 데이터 서버(18)는 인터넷과 무선 네트워크 구역을 브리징하는 역할을 한다. 따라서, 데이터 서버(18)는 트래픽을 특수한 이동 장치(12)에 라우트하기 위해 특정의 라우팅 정보를 필요로 한다. 푸쉬 동작에서, 이러한 라우팅 정보의 적어도 일부는 내향 접속을 확립하기 위해 요구를 발행하는, 정보 소스(20)과 같은 인터넷 노드에 의해 제공되어야 한다. 데이터 서버(18)는 이메일 또는 IP 번호와 같은 통상적으로 알려진 어드레싱 방식을 의도된 수신자 이동 장치의 적당한 무선 네트워크 어드레스로 변환할 수 있다.
데이터 서버(18)의 접속 핸들러는 스트림 기반 객체(stream-based object)일 수 있다. 외향 또는 내향 접속이 요구될 때, 가상 파이프 스트림이 이동 장치(12)와 적당한 접속 핸들러(26) 사이에서 확립된다. 접속 핸들러(26)는 확립된 접속에 대한 컨텐트의 처리를 개시할 것이다. 접속 핸들러(26)의 로딩은 접속 요구에 기초하여 이루어지고, 이것은 가상 파이프 스트림을 통하여 진행하는 트래픽의 유형을 의미할 수 있는 접속 핸들러 명칭 및 이미 로드되지 않은 경우에 데이터 서버(18)에 의해 로드되어야 할 접속 핸들러(26)의 위치에 대한 참조문(reference)을 포함하는 것이 좋다. 도면 부호 26으로 표시한 것과 같은 접속 핸들러의 기능은 인터넷 또는 기타 정보 소스측 접속 및 이동 장치 접속의 맵핑, 상기 접속들간의 트래픽 전송, 및 이동 장치(12)에 대하여 의도된 정보에 관한 적당한 트랜스코더의 로딩 및 호출을 포함한다.
각각의 접속은 바람직하게 접속 핸들러(26)의 예와 관련된다. 이것은 예를 들면 정보 소스(20)으로부터 수신된 컨텐트가 무선 전송부(22)를 통하여 전송하기 위해 이미 포맷되었을 때, 데이터 서버(18)에 의해 처리되는 컨텐트를 요구하지 않는 접속의 경우에도 진실이다. 이러한 유형의 접속 핸들러는 비록 프로토콜에 대한 수정이 있는 경우에도 컨텐트에 대한 수정의 임의의 분류를 만들지 않고 컨텐트를 순방향 또는 역방향으로 전송한다. 명확히 하기 위해, 이 기술에 숙련된 사람이라면 데이터 또는 컨텐트(이동 장치가 요구한 것 또는 보내는 것)와 프로토콜(데이터를 전달하도록 요구된 "래퍼"(wrapper) 및 컨버젼)간의 차이를 알 수 있을 것이다.
접속 핸들러는 또한 예를 들면 XML 문서를 WBXML로 변환하기 위해 적당한 컨텐트 필터 또는 트랜스코더를 로딩 및 실행하는 역할을 한다. 이 예에서, 만일 정보 소스(20)이 접속 핸들러(26)로부터의 요구에 응답하여 XML 문서를 복귀시키면, 접속 핸들러는 트랜스코딩 시스템(28)에서 XML 대 WBXML(XML to WBXML) 트랜스코더(도시 생략)를 호출한다. 뒤에서 더 상세하게 설명하는 바와 같이, 트랜스코딩 시스템(28)에서 XML 대 WBXML 트랜스코더는 코드북에서 지정된 바와 같이 XML 태그 및 속성들을 WBXML 토큰으로 교체함으로써 XML 컨텐트를 WBXML 컨텐트로 변환한다. 그 다음에, 결과적인 WBXML 컨텐트는, 만일 필요하다면, 프로토콜 번역기(24)를 통하여 접속 핸들러(26)에 의해 이동 장치(12)로 보내진다. WBXML 엔코드 컨텐트는 크기가 더 작고, 따라서 무선 네트워크에서 더 효율적으로 전송될 수 있다.
이전에 처리된 유형의 XML에 대하여, 코드북은 코드북 시스템(30) 내의 데이터 저장장치 또는 캐시(31)에 바람직하게 저장되고, 그 후에 트랜스코딩 시스 템(28)의 XML 대 WBXML 트랜스코더에 의해 액세스될 수 있다. 코드북 캐시(31)는 랜덤 액세스 메모리(RAM)와 같은 메모리 부품, 디스크 드라이브 또는 코드북 데이터가 기록될 수 있는 다른 저장장치에 존재할 수 있다. 메모리 공간을 보존하기 위하여, 가장 최근에 사용된(least recently used; LRU) 교체 방식 또는 다른 메모리 관리 방식은 코드북 시스템(30)에 의해 코드북 캐시용으로 사용될 수 있고, 그래서 가장 빈번하게 사용된 코드북이 캐시(31)에 유지된다. 특히 빈번하게 사용된 코드북은 또한 영구 기억을 위해 표시되거나 또는 지정될 수 있으며, 또는 다른 데이터 저장장치 또는 메모리 요소에 저장될 수 있다. 이와 다르게, 빈번하게 사용될 것으로 기대되는 코드북은 코드북 구축기(34)를 이용하여 발생되고 영구 코드북 캐시(도시 생략)에 저장되는 대신에, 그러한 코드북이 데이터 서버(18)에 이용가능하고 소거되거나 덮어쓰기(overwritten) 되지 않게 하기 위하여, 예를 들면, 판독 전용 메모리(ROM)로 구현될 수 있다.
코드북 구축기(34)는 월드 와이드 웹 컨소시엄(W3C)으로 등록된 MIME 형을 가지며 이와 대응하는 공중적으로(publicly) 이용가능한 코드북을 가지는, 예를 들면 SyncML 메시지와 같은 외부 참조 데피니션(external referenced definition)을 가진 임의의 XML 문서에 대한 코드북을 구축하기 위해 사용될 수 있다. 코드북 구축기(34), XML 문서에 대한 XML 그래머(grammar)를 정의하는 외부 XML 데피니션 (23) 및 접속(25)을 통하여 그러한 외부 데피니션(23)을 검색하는 것은 뒤에서 더 상세하게 설명한다. 코드북 서브렛(servlet)(32)은 도면 부호 12로 표시한 것과 같은 이동 장치로부터의 코드북 요구를 취급하는데, 이것에 대해서도 뒤에서 설명한 다.
이동 장치(12)에 있어서, 통신 서브시스템(36)은 하나 이상의 안테나, 수신기, 송신기 및 관련 회로와 모듈들(도시 생략)과 같은, 이동 장치(12)의 통신 기능과 관련된 부품들을 구비한다. 통신 서브시스템(36)은 다른 유형의 이동 장치에서 다를 수 있고, 이동 장치(12)가 동작하도록 구성되는 특수한 무선 전송부(22)에 의존한다.
이동 장치(12)에는 예를 들면 메세징 애플리케이션, 브라우저, 데이터 동기화 애플리케이션, 카렌다 애플리케이션, 타스크 리스트 애플리케이션 및 계산기를 포함한 하나 이상의 소프트웨어 애플리케이션(38)이 설치될 수 있다. 이들 소프트웨어 애플리케이션 중의 일부, 예를 들면 메세징 애플리케이션은 통신 기능을 포함할 수 있고, 한편 다른 것들은 입력을 수신하고 출력을 제공하기 위하여 이동 장치 - 상주 사용자 인터페이스(도시 생략)를 이용하는 "로컬" 기능일 수 있다. 본 발명은 도면 부호 20으로 표시한 것과 같은 원격 정보 소스으로부터 정보 컨텐트를 수신하는, 도면 부호 12로 표시한 것과 같은 이동 장치에 응용할 수 있기 때문에, 예시적인 소프트웨어 애플리케이션(38)은 WBXML 구문분석기(40)를 통하여, 통신 서브시스템(36)에 대한 링크와 함께 도시되어 있다. 이 예시적인 이동 장치(12)에 있어서, 예컨대 유니폼 리소스 로케이터(Uniform Resource Locator; URL)를 포함한 정보의 요구는 정보가 원격 위치로부터 이동 장치(12)로 다운로드되어야 할 때에 소프트웨어 애플리케이션(38) 또는 그 관련된 애플리케이션 핸들러(42)에 의해 구문분석기(40)에 전달된다. 이것에 의해 소프트웨어 애플리케이션(38)은 통신 서브시 스템(36)을 통해 정보를 수신하거나 보낼 수 있게 된다. 다른 소프트웨어 애플리케이션(도시 생략)이 또한 통신 서브시스템(36)과 상호작용할 수 있고, 소프트웨어 애플리케이션(38)은 예를 들면 이동 장치 키보드나 키패드, 디스플레이 스크린, 메모리 요소, 기타 입력 또는 출력 부품, 및 다른 소프트웨어 애플리케이션을 포함한 다른 이동 장치 부품과 상호작용할 수 있다는 것에 주목하여야 한다.
WBXML 구문분석기(40)는 WBXML 컨텐트를 구문분석하여 임의의 WBXML 토큰이 적절히 인가되고 컨텐트가 소프트웨어 애플리케이션(38) 대신에 애플리케이션 핸들러(42)에 의해 처리될 수 있게 한다. XML 문서를 구문분석하기 위하여 2가지 유형의 구문분석기, 즉 이벤트 기반 구문분석기(Event-based parser)와 트리 기반 구문분석기(tree-based parser)를 이용할 수 있다. 이벤트 기반 구문분석기는 트리 기반 구문분석기보다 더 고속이고 더 적은 메모리를 소비하기 때문에 이동 장치에 더 적합하다. 이벤트 기반 구문분석기는 콜백 방법(callback method)을 통하여 소프트웨어 애플리케이션(38)에 직접 구문 분석 이벤트를 보고한다. 이벤트 기반 구문분석기(40)를 사용하는 소프트웨어 애플리케이션은 구문분석 이벤트를 수신하기 위해 애플리케이션 핸들러(42)와 같은 구문분석기의 이벤트 핸들러를 구현한다. 애플리케이션 핸들러(42)는 구문분석기가 수신된 WBXML 문서의 데이터에 응답하여 호출하는 한 세트의 애플리케이션 지정 콜백이다.
이동 장치 코드북 시스템(44)의 코드북 캐시(45)는, 데이터 서버(18)의 코드북 캐시(31)와 마찬가지로, 새로운 코드북이 기입될 수 있고, 그로부터 이전에 저장된 코드북을 검색할 수 있는 RAM 또는 다른 데이터 저장장치에서 구현될 수 있 다. LRU 교체 방식 또는 다른 메모리 관리 방식은 코드북 캐시(45)의 크기를 제한하기 위해 사용될 수 있다. 위에서 설명한 바와 같이, 특수한 코드북, 특히 가장 빈번하게 사용된 코드북 또는 가장 빈번하게 사용될 것으로 예상되는 코드북은 코드북 캐시(45)의 영구 기억 장치에 지정될 수 있고, 또는 다른 이동 장치 코드북 캐시(도시 생략)에 저장될 수 있다.
WBXML 컨텐트가 이동 장치(12)에 의해 수신될 때, WBXML 구문분석기(40)는 수신된 WBXML 컨텐트를 구문분석하기 위하여 호출된다. 구문분석기(40)는 코드북 시스템(44)으로부터 코드북을 요구한다. 만일 WBXML 문서가 공지된 문서 또는 이전에 처리된 유형의 문서이고 그 대응하는 코드북이 코드북 캐시(45)에 저장되어 있으면, 코드북은 코드북 시스템(44)에 의해 구문분석기(40)에 복귀되고, 수신된 WBXML 문서를 구문분석하기 위해 사용된다. 만일 WBXML 문서가 코드북을 코드북 캐시(45)로부터 이용할 수 없는 유형의 문서이면, 이하에서 더 상세하게 설명하는 본 발명의 태양에 따라, 코드북은 코드북 시스템(44)에 의해 데이터 서버(18)로부터 요구되고, 코드북 캐시(45)에 저장되며, 그 다음에 구문분석기(40)에 복귀되어 WBXML 문서를 구문분석하기 위해 사용된다. 발명의 일실시예에 있어서, 이동 장치 코드북 캐시(45)는 초기에 "영구" 코드북만을 포함할 수 있고, 코드북 시스템(44)은 필요한 때에 데이터 서버(18)로부터 임의의 추가 코드북을 요구한다. 소프트웨어 애플리케이션(38)의 유형 및 그 대응하는 애플리케이션 핸들러(42)에 따라서, 애플리케이션 핸들러(42)는 이동 장치 코드북 시스템(44)으로부터 코드북을 요구하고, 수신된 WBXML 문서 요소를 XML로 트랜스코드할 수 있다. 따라서, 구문분석기 (40)와 애플리케이션 핸들러(42)는 원래의 XML 문서를 복구하기 위해 수신 WBXML 문서를 구문분석하고 트랜스코드하도록 구성된 트랜스코딩 시스템을 이동 장치(12)에 효과적으로 포함한다. 트랜스코딩 시스템은 구문분석기(40)만을 포함하여 구문분석기(40)가 구문분석과 트랜스코딩을 둘 다 수행하게 하거나, 또는 구문분석기 (40)와 애플리케이션 핸들러(42)를 둘 다 포함하여 애플리케이션 핸들러(42)가 트랜스코딩을 수행하게 할 수 있다. 수신된 WBXML 컨텐트의 이동 장치 처리는 뒤에서 상세하게 설명한다.
도 2에 도시된 바와 같이, 코드북 요구는 이동 장치(12)에 의해 만들어질 수 있고, 코드북은 정보 요구 및 문서 전송을 위해 사용된 것과는 다른 프로토콜을 이용해서 다른 링크(37)를 통해 데이터 서버(18)에 의해 이동 장치(12)로 복귀될 수 있다. 도 2에 도시된 예시적인 코드북 요구 및 전송 링크(37)와 그 링크에서 사용된 통신 프로토콜은 데이터 서버(18)에서 코드북 서브렛(32)과의 직접 통신을 제공하고, 따라서 프로토콜 번역기(24)에 의한 프로토콜 번역을 요구하지 않는다. 그러나, 다른 실시예에서, 코드북 요구 및 전송은 프로토콜 번역기(24)를 통하여 달성될 수 있다.
이제, 도 2에 도시된 시스템의 동작을 더 상세하게 설명한다. 도 3은 이동 장치(12)로부터의 접속 요구에 응답하여 데이터 서버의 동작을 설명하는 신호 흐름도이다. 위에서 설명한 바와 같이, 이동 장치(12)는 데이터 서버(18)와 정보 소스(20) 사이에 사용된 프로토콜과 다른 프로토콜, 예를 들면 사유재산적 IPPP를 이용하여 데이터 서버(18)와 통신할 수 있다. 그러한 구성에서, 비록 접속 요구가 특 수한 프로토콜에 대하여 적합하다 하더라도, 요구는 다른 프로토콜과 관련된 접속 유형 또는 특수한 접속 핸들러를 지정할 수 있다. 그러므로, 정보가 예를 들어 HTTP를 통해 데이터 서버(18)에 의해 정보 소스(20)으로부터 요구된 때, 만일 이동 장치(12)로부터 데이터 서버(18)로의 통신이 HTTP를 통해 이루어지면, 이동 장치(12)로부터 보내진 요구는 HTTP 요구일 수 있고, 또는 다른 프로토콜에 적합하지만 HTTP 또는 HTTP 접속 핸들러를 지정하는 요구는 따라서 데이터 서버(18)에 의해 HTTP 요구로서 해석된다. 프로토콜 번역기(24)는 필요할 때마다 이동 장치(12)로부터의 요구를 번역한다.
도 3은 정보 요구 및 응답 동작에 직접 관련된 데이터 서버(18)의 요소들만을 도시하고 있음이 명백할 것이다. 코드북 서브렛(32)은 코드북 요구 관리에 관련되는 것이고, 따라서 도면의 혼잡을 피하기 위해 도 3에 도시하지 않았다.
도 3에 있어서, 이동 장치(12)로부터의 요구는 데이터 서버(18)에 의해 수신되고, 만일 필요하다면, 데이터 서버(18)와 정보 소스(20)간의 통신을 위해 사용되는 프로토콜로 번역된다. 도시된 바와 같이, 이동 장치(12)로부터의 요구는 그 요구에 응답하여 승인된 컨텐트의 유형, 즉 도 3의 예에서는 WBXML을 지정한다. 만일 이동 장치(12)로부터의 요구가 예컨대 HTTP "get" 요구이면, WBXML은 전형적인 HTTP 요구 핸들러의 승인형 필드에서 MIME형으로서 지정될 수 있다. 프로토콜 번역기(24)는 적당한 접속 핸들러(26)를 호출하고, 가능하게 번역된 요구를 접속 핸들러(26)에 전송한다. HTTP 요구, 또는 HTTP 접속이나 HTTP 접속 핸들러를 지정하는 요구에 대하여, 호출된 접속 핸들러(26)는 HTTP 접속 핸들러이다. 이 때, 접속 핸 들러(26)는 직접 접속 또는 하나 이상의 네트워크 접속이 가능한 접속(21)(도 2)을 통해 정보 소스(20)에 상기 요구를 보낸다. 정보 소스(20)은, 예를 들면, 웹 서버 또는 인터넷을 통하여 액세스가능하도록 구성된 다른 시스템일 수 있다.
도 3에서, 이동 장치(12)는 승인된 컨텐트 유형으로서 WBXML을 지정한다. 그러나, 데이터 서버(18)는 수신된 XML 컨텐트를 이동 장치(12)에 의해 승인된 WBXML 컨텐트로 트랜스코드할 수 있고, 따라서, 정보 소스(20)에 보내진 요구의 승인된 컨텐트 유형으로서 WBXML 대신에, 또는 가능하다면 WBXML에 추가하여, XML을 포함할 수 있다. 도 3에 도시된 예에서, 데이터 서버(18)로부터 보내진 요구는 승인된 컨텐트 유형으로서 XML과 WBXML을 둘 다 포함한다. 이 유형의 요구는 예를 들면 정보 소스(20)이 XML 데이터를 WBXML 데이터로 트랜스코드할 수 없는 경우에 유용할 수 있다. 이 때, 정보 소스(20)은, 비록 이동 장치 요구가 승인된 컨텐트 유형으로서 WBXML을 지정하였다 하더라도, 데이터 서버(18)로부터의 요구에 응답하여 WBXML 데이터 대신에 XML 데이터를 복귀시킬 수 있다. 데이터 서버(18)가 정보 소스(20)에 대한 요구에 추가의 승인된 컨텐트 유형을 포함하도록 구성되어 있는 않은 경우에, 정보 소스(20)은 그것에 불구하고 요구된 컨텐트를 요구에서 지정된 것이 아닌 다른 컨텐트 유형으로 복귀시킬 수 있고, 또는 그 대신에, 컨텐트가 승인된 컨텐트 유형으로 제공될 수 없다는 것을 나타내는 에러 또는 고장 메시지를 복귀시킬 수 있다.
정보 소스(20)은 요구된 컨텐트를 도 3에 도시된 예에서 XML 문서로서 접속 핸들러(26)에 복귀시킨다. 접속 핸들러(26)는 수신된 XML 문서를 트랜트코딩 시스 템 (28)에, 특히 XML -> WBXML 트랜스코더(74)에 전달한다. 트랜스코더(74)는, 소프트웨어 코드로서 구현된 때, 정보 소스(20)으로부터 XML 문서를 수신하면 접속 핸들러 (26) 또는 트랜스코더 시스템(74)에 의해 호출될 수 있다.
위에서 설명한 바와 같이, XML -> WBXML 트랜스코더(74)는 특수한 코드북의 맵핑 테이블에 기초하여 XML 태그 및 속성을 토큰으로 변환한다. 데이터 서버(18)의 코드북 캐시(31)는 "공지의" XML 유형, 예를 들면 대응하는 코드북이 캐시에 영구적으로 저장된 XML 유형 및 데이터 서버(18)가 이전에 처리한 유형에 대한 코드북을 저장한다. 캐시(31) 내의 각 코드북은 대응하는 식별자를 이용하여 식별되고 검색될 수 있다. 상기 대응하는 식별자는, 예를 들면, 유효 XML 문서의 DOCTYPE 설명문(statement)에 통상적으로 나타나는 유일한 XML 공중 식별자, 뒤에서 더 자세하게 설명하는 바와 같이 외부적으로 참조되는 데피니션의 검색을 허용하는 URL, MIME 유형, 또는 가능하다면 XML 문서 또는 문서 유형과 관련된 다른 식별자일 수 있다. 도 3의 예에서, 복귀된 XML 문서는 상기한 바와 같은 식별자를 하나 이상 포함한다. 트랜스코더(74)는, 수신된 XML 문서의 식별자를 이용하여, 코드북 시스템 (30)으로부터 코드북을 요구한다. 만일 요구된 코드북이 코드북 시스템(30)의 캐시(31)(도 3에는 도시 생략됨)에 저장되어 있으면, 코드북은 트랜스코더(74)에 복귀되고, XML 문서는 WBXML 문서로 트랜스코드된다. 그러나, 도 3의 예에서는, 설명의 목적상, 정보 소스(20)에 의해 복귀된 XML 문서의 식별자에 대하여 코드북 시스템(30)에서 이용할 수 있는 코드북이 없는 것으로 가정한다.
코드북이 시스템(30)의 캐시(31)에 저장되어 있지 않은 유형의 유효 XML 문 서를 데이터 서버(18)가 수신할 때, 예를 들면, 데이터 서버(18)가 그 유형의 이전에 처리된 XML 문서를 갖고 있지 않을 때, 코드북은 데이터 서버(18)에 의해 발생된다. 그 다음에, 코드북 시스템(30)은, 요구된 코드북이 캐시(31)에서 이용할 수 없다고 결정될 때, 코드북 구축기(34)에 의한 코드북 구축을 개시할 것이다. 코드북 구축기(34)는 그 문서에서 사용된 그래머의 설명 또는 데피니션을 XML 데피니션의 내장된 소스(도시 생략) 또는 외부 소스(23)로부터 검색한다. XML 데피니션(23)의 외부 소스는 예를 들면 문서 유형 데피니션(Document Type Definition; DTD) 서버로서 구현될 수 있다. DTD는 XML 선언문(Declaration Syntax)에서 특수한 문서 유형의 정식 설명이다. 이것은 특수한 문서 유형에서 어떤 명칭과 구조가 사용될 수 있는지를 설명한다. 특수한 유형에 속하고 동일한 DTD를 사용하는 모든 문서들은 일관성있고 적합한 방식으로 구성되고 작명된다. 다른 하나의 가능한 실시예에서, 명칭 공간(namespace)과 엔코딩 개요(encoding schema)의 결합은 외부 데피니션(23)의 소스를 구현할 수 있다. XML 그래머의 외부 설명 또는 데피니션은 또한 다수의 소스 및 많은 포맷으로 분할될 수 있다. 일부 XML 문서에 있어서, 그래머 데피니션은 문서 자체에 내장되어 있어서, 데피니션이 문서로부터 추출된다. 그러므로, 본 발명은 어떤 방식으로든 특수한 유형의 문서 데피니션에 의존하지 않는다는 것은 명백하다. 여기에서 설명하는 기술은 DTD, 개요, 및 현재 공지된 유형 및 미래의 데피니션 유형을 포함한 다른 문서 데피니션과 같은 데피니션 유형을 하나 이상 사용하도록 구성될 수 있다. 일반적으로, 외부 데피니션은 문서에서 발생할 수 있는 유효 스트링의 세트를 정의한다.
도 3에 있어서, 만일 트랜스코더(74)가 코드북 시스템(30)에 저장되어 있지 않은 코드북을 요구하면, XML 문서의 데피니션은 외부 소스(23)로부터 요구된다. 비록 데피니션 요구가 도 3에서 접속 핸들러(26)에 의해 취급되는 것으로 도시되어 있지만, 만일 정보 소스(20)과 데피니션 소스(23)가 다른 프로토콜을 이용하여 통신을 행하도록 구성되어 있으면, 외부 소스(23)로부터 데피니션을 검색하기 위해 다른 접속 핸들러(도시 생략)를 대신에 사용할 수 있다. 코드북 구축기(34)는 도 2에 도시된 링크(25)를 통하는 것처럼 하나 이상의 외부 데피니션 소스(23)와 직접 통신하도록 구성하는 것이 가능하다. 그래머 데피니션은 예를 들면 수신된 문서와 관련된 식별자를 이용하여 도면 부호 23으로 표시한 것과 같은 외부 소스로부터 요구될 수 있다. 도면 부호 23으로 표시한 것과 같은 외부 데피니션 소스에 대하여, 소스(23)의 어드레스가 또한 요구될 수 있다. 이 어드레스는 XML 문서와 함께 정보 소스(20)에 의해 공급될 수 있다. 하나 이상의 외부 데피니션 소스(23)의 어드레스는 또한 데이터 서버(18)에 저장될 수 있다. 데피니션 검색 처리는 데피니션이 검색될 수 있는 URL이 코드북 캐시를 색인하기 위해 문서 유형 식별자로서 사용되는 경우에 단순화될 수 있다. 이 때, 코드북 시스템(30)으로부터 코드북을 요구하고 외부 소스(23)로부터 데피니션을 요구하기 위해 동일한 식별자를 사용한다.
요구된 데피니션이 데피니션 소스(23)에 의해 데이터 서버(18)에 복귀될 때, 상기 요구된 데피니션은 새로운 코드북을 구성하기 위해 코드북 구축기(34)에 의해 사용된다. 코드북 구축기(34)는 수신된 문서 유형을 WBXML 문서로 트랜스코드하기 위해 문서 그래머 데피니션을 맵핑 테이블로 변환한다. 그 다음에, 새로운 코드북 은 코드북 시스템(30)으로 전송되고, 코드북 시스템(30)은 코드북을 트랜스코더 (74)로 복귀하여 코드북을 그 캐시에 또한 저장할 수 있다. 그 다음에, 새로운 코드북은 트랜스코더(74)에 의해 사용되어 XML 문서를 WBXML 문서로 트랜스코드한다.
WBXML은 유효 XML 문서의 공중 ID와 같은 일부 식별자가 통상적으로 무선 마크업 언어(Wireless Markup Language; WML)와 같은 잘 알려진 XML 유형에 대하여 정수(integer) 뿐만 아니라 텍스트 스트링으로서 엔코드될 수 있게 한다. 코드북 시스템(30)에서 코드북 캐시를 색인하기 위해 사용된 문서 유형 식별자는 유사하게 엔코드되어 트랜스코드된 WBXML 문서에 포함될 수 있다. 엔코드된 식별자를 포함한 WBXML 문서는 접속 핸들러(26)로 전달되고, 접속 핸들러(26)는 응답을 포맷하여 그 응답을 프로토콜 번역기(24)에 보낸다. 프로토콜 번역기(24)는 그 응답에 대하여 임의의 필요한 프로토콜 번역을 수행하여 그 응답을 이동 장치(12)에 보낸다. 이동 장치(12)에 보내진 응답의 식별자는, 뒤에서 더 상세하게 설명하는 바와 같이, WBXML 문서를 구문분석하기 위한 정확한 코드북을 검색하기 위해 이동 장치(12)에서 사용된다. 이동 장치(12)에 대한 응답이 능동 접속 핸들러(26) 대신에 프로토콜 번역기(24)에 의해 포맷되도록 데이터 서버(18)를 구성하는 것도 또한 가능하다. 그 다음에, 접속 핸들러(26)는 정보 소스 및 데피니션 소스(23)와 같은 외부 시스템과 데이터 서버(18)간의 요구/응답 동작을 취급하고, 프로토콜 번역기(24)는 이동 장치(12)와의 통신을 취급한다.
어떤 경우에는 정보 소스(20)에 의해 복귀된 XML 문서가 공지의 XML 문서 유형이 아닐 수 있다. 이 기술에 숙련된 사람이라면, 비록 임의의 특수한 유형의 XML 문서에서 이용가능한 마크업을 설명하기 위하여 DTD와 같은 외부 참조 그래머 설명 또는 데피니션을 사용할 수 있지만, 모든 XML 문서가 그러한 외부 설명을 사용하는 것이 아니라는 것을 알 것이다. XML 구문의 규칙을 따르면, 소위 "잘 형성된 유일한"(well-formed-only) XML 문서가 정식 데피니션 대신에 요소들의 사용 및 위치에 의해 그 자신의 마크업을 효과적으로 정의한다. 다른 "잘 형성된"(well-formed) XML 문서는 내장 데피니션을 또한 포함할 수 있다.
만일 외부 데피니션을 갖지 않은 잘 형성된 유일한 또는 잘 형성된 XML 문서가 정보 소스(20)에 의해 데이터 서버(18)에 복귀되면, 코드북은 트랜스코더(74)에 의해 처리되고 코드북 캐시(30)에 저장되는 XML 문서로서 구성된다. 정식 그래머 데피니션이 잘 형성된 유일한 XML 문서에서 이용가능하지 않기 때문에, 코드북은 "연속식"(on the fly)으로 발생된다. 새로운 요소 태그 또는 속성과 만났을 때, 토큰은 트랜스코더(74)에 의해 할당된다. 동일한 태그 또는 속성의 임의의 후속 발생은 이 토큰 할당을 이용하여 토큰화된다. 내장 데피니션을 가진 잘 형성된 문서에 대하여, 데피니션은 그 문서로부터 추출되고 트랜스코더(74)에 의해 코드북 구축기 (34)에 제공된다. 그 다음에, 코드북은 실질적으로 위에서 설명한 것처럼 발생될 수 있다. 다른 방식으로, 트랜스코더(74) 자체는 내장 데피니션을 추출 및 구문분석하고, 문서의 태그에 토큰을 할당하며, 결과적인 태그 대 토큰 맵핑(tag-to-token mapping)을 코드북 캐시(31)에 부가한다.
이 유형의 XML 문서는 DOCTYPE 설명문 및 공중 ID를 포함하지 않으며, 따라서 어떤 다른 독특한 식별자가 코드북 캐시(31) 및 WBXML 문서에서 바람직하게 발 생되고 사용된다. 이러한 발생된 식별자는 그 다음에 어떤 코드북이 WBXML 문서를 구문분석하는데 사용되는지를 결정하기 위해 이동 장치(12)에 의해 사용될 수 있다. 모든 잘 형성된 유일한 문서 또는 내장 데피니션은 임의의 다른 문서와 다른 방식으로 요소들 및 기타 구성들을 정의할 수 있고, 발생된 코드북 및 독특한 식별자는 문서 유형 대신에 특수한 문서와 관련될 수 있다. 그러므로, 그러한 문서가 수신될 때마다 새로운 코드북 및 식별자가 생성될 수 있다.
상기 발생된 식별자들이 상이하게 되는 것을 보장하기 위하여, 잘 형성된 유일한 XML 문서, 내장 데피니션을 가진 문서, 또는 내장 데피니션의 컨텐트에 의존하는 식별자 발생 방식을 사용하는 것이 바람직할 수 있다. 예를 들면, 각각의 상이한 문서에 대한 독특한 식별자를 발생하기 위해 문서 또는 데피니션 컨텐트를 해시(hash)하기 위해 해싱 알고리즘(hashing algorithm)이 사용될 수 있다. 독특한 식별자는, 예를 들면, 이동 장치 식별자, 요구/응답 기간 식별자, 및 요구 및/또는 응답의 타임 스탬프의 어떤 조합을 포함하여, XML 문서가 얻어졌던 요구/응답 동작과 관련된 정보를 이용하여 또한 발생될 수 있다. 다른 데이터 의존성 식별자 발생 방식도 이 기술에 숙련된 사람에게는 자명할 것이고, 따라서 그러한 변형예도 본 발명의 범위 내에 속하는 것으로 고려된다. 문서의 해싱은 식별자 발생을 위한 하나의 가능한 방법의 대표적인 예에 불과하다. 사용하는 특수한 식별자 발생 방식은 발생된 식별자가 공지의 XML 유형과 관련된 임의의 식별자와 동일하게 되지 않도록 바람직하게 선택 또는 구성된다. 그렇지 않으면, 발생된 식별자는 알 수 없는 유형에 대하여 발생된 새로운 코드북 대신에 공지의 문서 유형에 대한 부정확한 코드북 을 액세스할 가능성이 있다.
WBXML 명세서는 또한 태그 및 속성의 문자 엔코딩(literal encoding)을 가능하게 한다. 그러므로, 잘 형성된 유일한 XML 문서를 트랜스코딩하는 다른 예로서, 예를 들면 시작 요소 및 종료 요소와 같은 글로벌 태그만이 토큰화된다. 이 때 다른 태그 및 속성들은 엔코딩에서 문자로서, 즉 토큰화되지 않고 유지된다. 이것은 토큰 할당 및 코드북 발생의 처리 시간을 절약한다. 어떤 환경에서, 이것은 내장된 또는 외부 데피니션을 가진 문서의 실행가능한 다른 엔코딩 방식일 수 있다.
만일 잘 형성된 유일한 XML 문서가 W3C로 등록된 MIME 유형을 가지며 공중적으로 이용가능한 대응하는 토큰 테이블을 가지면, 잘 형성된 유일한 XML 문서의 제3의 선택은 토큰 및 태그 쌍을 입력하고 코드북 "오프라인"을 발생하기 위해 코드북 구축기(34)를 사용하여야 한다. 발생된 코드북은 이어서 코드북 캐시(31)에 임시로 또는 영구적으로 저장되어 상기 MIME 유형의 XML 문서를 트랜스코드할 때마다 이용될 수 있다. 이 경우에, MIME 유형은 코드북 캐시(31)에 대한 색인으로서 사용될 수 있다. 위에서 설명한 것처럼, MIME 유형의 토큰 테이블을 이용할 수 있는 URL 또는 기타 어드레스의 사용은 코드북 및 토큰 테이블 검색 동작을 단순화시키는 장점이 있다.
본 발명에 따른 시스템 및 방법들은 "잘못 형성된"(ill-formed) XML 문서를 또한 지원할 수 있다. 예컨대, 만일 일부 클로징 태그가 문서에서 누락되어 있으면, 잘 형성된 문서에 가까운 XML 문서를 소거하는 것이 가끔 가능하다. XML -> WBXML 트랜스코더(74)는 그러한 XML 문서들을 포맷하여 그 문서들이 WBXML 문서로 변환되기 전에 잘 형성되게 한다.
잘 형성된 유일한 XML 문서 또는 내장된 데피니션을 가진 문서들에 대하여 발생된 코드북이 문서마다 다를 수 있기 때문에, 이동 장치는 XML 문서에 대응하는 WBXML 문서가 수신될 때마다 항상 코드북을 요구하는 것이 가능하다. 그러므로, 그러한 새로운 코드북을 데이터 서버(18)에 저장하는 것이 그다지 유리하지 않을 수 있다. 이 유형의 코드북은 예를 들면 WBXML 문서에 코드북을 프리펜딩(prepending) 또는 첨부(appending)함으로써 데이터 서버(18)로부터 이동 장치에 대한 응답에 대신 포함될 수 있다. 이것은 상기와 같은 1회성 엔트리를 저장하기 위해 코드북 캐시(31)에서 상당한 공간을 사용하는 것을 방지하지만, 상기 코드북들은 만일 그렇지 않은 경우에 항상 이동 장치(12)에 의해 요구될 가능성이 있기 때문에, 임의의 성능 페널티를 필수적으로 수반하지 않는다. 트랜스코드된 문서와 함께 그러한 코드북을 포함하는 것은 코드북 요구와 관련된 리소스의 로딩을 또한 감소시킨다.
공지의 시스템에서처럼 어떤 특수한 공지의 코딩 방식만으로 동작하도록 데이터 서버(18)에 대한 소프트웨어 및 이동 장치(12)에 대한 소프트웨어 애플리케이션을 둘 다 맞춤형으로 구축(custom-building)하는 대신에, 코드북 캐시(31)는 데이터 서버(18) 및 이동 장치(12)의 둘 다에 의해 액세스가능하다. 데이터 서버(18)의 코드북 캐시(31)에 저장된 코드북은 이들이 이동 장치(12)에서 이미 저장되었다는 가정하에 이동 장치(12)에 의해 요구되지 않는 한 이동 장치(12)에 보낼 필요가 없다. 데이터 서버(18)는 이동 장치(12)에 추가의 서비스를 효과적으로 공급하고, 이것에 의해 이동 장치(12)는 데이터 서버(18)로부터 임의의 특수한 문서에 대한 코드북을 요구할 수 있다. 이러한 동작들은 도 4 및 도 5를 참조하면서 뒤에서 상세히 설명된다. 도 4는 이동 장치(12)에 의한 문서의 처리를 나타내는 신호 흐름도이고, 도 5는 도 4에 도시된 이동 장치 처리와 관련된 데이터 서버(18)의 동작을 나타내는 신호 흐름도이다.
도 4에 있어서, 이동 장치(12)의 통신 서브시스템(36)은 WBXML 문서를 포함한 접속 요구(도시 생략)에 대한 응답을 수신한다. 요구/응답 처리는, 예를 들면, 도 3에 도시되고 위에서 설명한 것과 실질적으로 동일할 수 있다. 비록 응답이 도 3에 도시되어 있지만, 수신된 WBXML 문서는 그 대신에 정보 소스에 의해 이동 장치(12)에 푸쉬된 문서일 수 있다는 것을 주목하여야 한다. 도 4에 있어서, 수신된 WBXML 문서는 이동 장치 소프트웨어 애플리케이션(38)에 의해 사용되도록 의도된다.
데이터 서버(18)에 의해 XML 문서를 WBXML 문서로 트랜스코딩하는 것은 이동 장치(12)에서 XML로 작업하기를 원하는 사용자에게는 평이한 것일 수 있다. 이를 위하여, WBXML 문서는 WBXML 구문분석기(40)에 바람직하게 전달된다. WBXML 구문분석기(40)는 애플리케이션 핸들러(42)의 콜백 기능에서 소프트웨어 애플리케이션 (38)을 위해 애플리케이션 핸들러(42)에 모든 구문분석 이벤트를 주입한다. 수신된 문서들은 따라서 구문분석기(40)에 의해 요소들로 구문분석되고, 상기 요소들은 애플리케이션 핸들러(42)에 전달된다. WBXML 문서의 상기 요소들을 XML 문서로 다시 트랜스코딩하는 것은 구문분석기(40)에 의해서 또는 애플리케이션 핸들러(42)에 의해서 취급될 수 있다. 만일 구문분석기(40)가 예를 들어 바이너리 구문분석기이면, 애플리케이션 핸들러(42)는 통상적으로 구문분석기(40)로부터 애플리케이션 핸들러(42)로 전달된 바이너리 요소들을 적당한 코드북을 이용하여 트랜스코드하도록 구성된다. 그러나, 만일 구문분석기(40)가 스트링 구문분석기이면, 구문분석기 (40)는 요소들을 애플리케이션 핸들러(42)에 전달하기 전에, 수신된 WBXML 문서의 구문분석된 스트링 요소들을 트랜스코드할 수 있다. 비록, 도 4에는 명백히 도시하지 않았지만, 이동 장치(12)는 한가지 유형 이상의 구문분석기(40)와 하나 이상의 소프트웨어 애플리케이션(38) 및 관련된 애플리케이션 핸들러(42)를 포함할 수 있다는 것에 주목하여야 한다. 이 때, 각각의 소프트웨어 애플리케이션(38)과 애플리케이션 핸들러(42)는 임의의 하나 이상의 다른 유형의 구문분석기와 함께 동작하도록 구성된다. 도 4에 도시된 예에서, 애플리케이션 핸들러(42)는 문서 요소들을 트랜스코드하기 위해 코드북을 사용한다. 요소들이 구문분석될 때 트랜스코드되거나, 또는 트랜스코딩이 수신된 문서의 전부 또는 일부가 구문분석된 후에 구문분석된 요소들에 대하여 수행될 수 있다는 것이 또한 예상된다.
구문분석기(40)로부터 애플리케이션 핸들러(42)로의 제1 구문분석 콜백 기능은 수신된 WBXML 문서와 관련된 식별자를 포함하는 것이 바람직하다. 그 경우 상기 식별자는 코드북 시스템(44)의 코드북 캐시(45)(도 4에는 도시 생략됨)로부터 적당한 코드북을 검색하기 위한 키(key)로서 애플리케이션 핸들러(42)에 의해 사용된다. 일부 실시예에 있어서, 또는 트랜스코딩이 위에서 설명한 것처럼 구문분석기 (40)에 의해 취급되는 애플리케이션을 수반하는 동작에 대하여, 코드북은 대신에 구문분석기(40)에 의해 요구될 수 있다.
만일 코드북이 코드북 시스템(44)의 코드북 캐시(45)(도 4에서는 도시 생략됨)에 저장되어 있으면, 코드북은 애플리케이션 핸들러(42)에 복귀되고, 수신된 문서의 요소들의 트랜스코딩은 코드북에서 지정된 토큰, 태그 및 속성 맵핑에 기초하여 진행할 수 있다. 위에서 설명한 바와 같이, 어떤 "영구" 코드북, 가장 빈번하게 사용된 코드북, 또는 다수의 가장 최근에 사용된 코드북은 코드북 시스템(44)의 코드북 캐시에 저장될 수 있다. 그러나, 도 4의 예에서, 코드북은 이동 장치(12)의 코드북 시스템(44)에서 이용가능하지 않고, 따라서 데이터 서버(18)로부터 요구되어야 한다. 적어도 수신 문서와 관련된 식별자를 포함하는 코드북 요구는 이동 장치(12)에서 코드북 시스템(44)에 의해 준비되고 통신 서브시스템(36) 및 통신 링크(37)(도 2)를 통하여 데이터 서버(18)에 보내진다.
도 5를 참조하면, 필요한 코드북에 대한 요구는 데이터 서버(18)의 코드북 서브렛(32)에 의해 수신된다. 코드북 서브렛(32)은 이동 장치(12)로부터의 코드북 요구에 포함된 식별자에 기초하여 코드북 시스템(30)의 코드북 캐시(31)(도시 생략)로부터 요구된 코드북을 검색한다. 검색된 코드북은 코드북 서브렛(32)에 복귀되고 WBXML 문서를 구문분석하는데 사용하기 위해 이동 장치(12)로 다시 보내진다. 코드북 요구 및 전송은 만일 필요하다면 프로토콜 번역기(24)를 통하여 코드북 서브렛(32)에 의해 대신 취급될 수 있다. 또한, 비록 코드북 서브렛(32)이 도 5에 도시되어 있지만, 데이터 서버(18)의 코드북 시스템(30)에 대한 다른 인터페이스도 또한 가능하다. 도 5에 도시된 예는 코드북이 코드북 시스템(30)으로부터 이용가능한 것을 가정하고 있다. 만일 그렇지 않다면, 예를 들어 만일 코드북이 코드북 시 스템(30)의 캐시로부터 소멸하거나 코드북 요구가 전송되었던 데이터 서버가 WBXML 문서를 수신한 데이터 서버가 아니면, 그래머 데피니션을 검색하고 그래머 데피니션을 코드북으로 변환하기 위한 추가의 동작이 수행될 것이다. 이것에 대해서는 도 8을 참조하면서 뒤에서 더 상세하게 설명한다.
도 4를 참조하면, 요구된 코드북이 이동 장치(12)의 통신 서브시스템(36)에 의해 수신될 때, 상기 요구된 코드북은, 어떤 부품이 이동 장치(12)에서 구문분석된 WBXML 요소들을 취급하는지에 따라, 코드북을 이동 장치 코드북 캐시에 저장하고 코드북을 애플리케이션 핸들러(42) 및/또는 구문분석기(40)에 제공한다.
도 4에 도시된 예에서, WBXML 문서의 구문분석 및 구문분석된 WBXML 요소들의 트랜스코딩은 코드북이 애플리케이션 핸들러(42)에 대하여 이용가능할 때 계속된다. 구문분석 및 트랜스코딩이 완료된 때, XML 데이터는 소프트웨어 애플리케이션(38), 또는 다른 이동 장치 소프트웨어 애플리케이션 또는 서브시스템(도시 생략)에 보내질 수 있다. 예를 들어, 구문분석된 데이터는 이동 장치 데이터 저장장치에 기억될 수 있고, 이동 장치 소프트웨어 애플리케이션에 의해 추가로 처리되거나 이동 장치 스크린에 표시될 수 있다.
코드북은, 일단 코드북 시스템(44)의 캐시에 저장되면, 영구 저장을 위해 지정되거나 단지 임시로 저장될 수 있다. 이동 장치(12)와 같은 이동 통신 이동 장치의 메모리 리소스가 제한되고 상당한 전력을 소모하는 경향이 있기 때문에, 대부분의 코드북은 임시로 저장될 것이다. 예를 들어, 잘 형성된 유일한 문서들에 대하여 데이터 서버(18)에 의해 발생된 코드북은 잘 형성된 유일한 문서마다 상이할 수 있 고, 따라서 이들은 임시로 저장되는 것이 바람직하다. 위에서 설명한 임의의 메모리 관리 기술은 코드북 시스템(44)의 코드북 캐시에 대하여 구현될 수 있다.
따라서, 본 발명의 태양에 따르면, 코드북은 임의의 애플리케이션이 어느 때든지 코드북을 요구하고 사용할 수 있도록 소프트웨어 애플리케이션으로부터 분리된다. 이것은 특수한 엔코딩 방식이 각각의 소프트웨어 애플리케이션 또는 대응하는 각각의 애플리케이션 핸들러에 내장된 공지의 시스템과 대조적이다.
도 6과 도 7은 본 발명의 태양에 의한 데이터 서버 및 이동 장치 동작의 다른 예를 도시한 것이다. 도 6은 수신된 XML 문서의 데이터 서버 처리를 나타내는 흐름도이다. 도 7은 수신된 트랜스코드된 문서를 이동 장치에 의해 처리하는 것을 보이는 흐름도이다.
도 6에 있어서, 데이터 서버의 처리는 이동 장치용으로 의도된 XML 문서가 정보 소스으로부터 수신될 때 단계 50에서 시작한다. 문서는 이동 장치로부터의 요구에 응답하여 데이터 서버에 의해 수신되고 데이터 서버에 의해 정보 소스으로 전송될 수 있고, 또는 그 대신에 이동 장치에 푸쉬된, 즉 이동 장치에 의해 먼저 요구됨이 없이 전송된 문서일 수 있다.
그 다음에, 데이터 서버는, 단계 52에서, 수신된 문서가 유효 XML 문서와 같이 외부 참조된 정식 그래머 데피니션이 있는 공지의 XML 문서 유형인지를 결정한다. 이것은 예를 들면 DOCTYPE 설명문에서 공중 ID를 찾음으로써 달성될 수 있다. 만일 문서가 DTD와 같은 외부 참조 데피니션을 갖는다면, 단계 54에서 문서의 문서 유형 식별자가 결정되고, 이 문서 유형 식별자는 단계 56에서 데이터 서버의 코드 북 시스템으로부터 문서 유형에 대응하는 코드북을 요구하기 위해 사용된다.
만일 단계 58에서 상기 식별자에 대응하는 코드북이 코드북 시스템의 코드북 캐시에 저장되어 있다고 결정되면, 데이터 서버는 단계 66에서 문서의 트랜스코드를 진행하고 트랜스코드된 문서를 단계 68에서 이동 장치에 보낸다. 수신된 문서의 데이터 서버 처리는 완료되고 그 처리는 단계 70에서 종료한다. 그러나, 만일 상기 식별자에 대응하는 코드북이 코드북 캐시에 저장되어 있지 않으면(단계 58), 그 문서에 대한 데피니션이 단계 60에서 코드북 구축기에 의해 검색되고, 위에서 설명한 바와 같이, 단계 62에서, 상기 문서 유형에 대한 새로운 코드북을 발생하기 위해 사용된다. 그 다음에, 새로운 코드북은 단계 64에서 코드북 캐시에 저장되고, XML 문서는 단계 66에서 코드북을 이용하여 트랜스코드된다. 트랜스코드된 문서는 단계 68에서 이동 장치로 보내지고 처리는 단계 70에서 종료한다.
새로운 유형의 XML 문서와 같은 XML 문서, 정식 데피니션을 사용하지 않는 잘 형성된 유일한 문서, 또는 내장된 그래머 데피니션을 가진 문서들은 단계 52에서 부정적인 결정을 도출한다. 단계 72에서, 예를 들면 문서를 해싱(hashing)함으로써 독특한 식별자가 발생되고, 코드북은 단계 74에서 코드북 시스템으로부터 요구될 수 있다. 만일 코드북이 서버의 코드북 시스템의 캐시에 저장되어 있으면(이것은 단계 76에서 긍정적 결정에 대응함), 문서는 위에서 설명한 바와 같이 트랜스코드되고(단계 66) 이동 장치에 보내지며(단계 68) 처리가 종료한다(단계 70). 만일 발생된 식별자에 대응하는 코드북이 코드북 캐시에서 발견되지 않으면, 처리는 단계 78로 진행하여 수신된 문서 그 자체 또는 만일 응용가능하다면 내장된 데피니 션으로부터 새로운 코드북을 발생한다. 수신된 XML 문서의 내장된 데피니션은 바람직하게 문서로부터 추출되고 새로운 코드북을 발생하기 위해 트랜스코더 또는 코드북 구축기에 의해 사용된다. 그 다음에, 새로운 코드북은 단계 80에서 코드북 캐시에 저장되고, 문서는 트랜스코드되어(단계 66) 이동 장치에 보내지고(단계 68) 처리가 단계 70에서 종료한다. 위에서 설명한 바와 같이, 잘 형성된 유일한 문서의 코드북은 문서가 트랜스코드될 때 발생된다. 그러므로, 단계 78과 단계 66은 동시에 수행될 수 있고, 그 후에 코드북이 단계 80에서 코드북 캐시에 저장될 수 있다.
외부 참조 데피니션이 없는 각각의 수신된 문서에 대한 코드북과 식별자는 상이하여 코드북 캐시에서 잘 형성된 문서에 대한 코드북을 찾아낼 가능성이 비교적 작기 때문에, 단계 74와 단계 76은 본 발명의 일부 실시예에서 바이패스될 수 있다. 그러나, 이러한 유형의 일부 상이한 문서들이 공통 코드북을 가질 가능성도 또한 있다. 예를 들어, 특수한 소스로부터의 문서들은 모두 동일한 내장 데피니션을 사용할 수 있다. 만일 독특한 식별자가 이러한 각각의 문서들에 대하여 발생되면, 문서들 중의 하나가 수신될 때마다 공통 코드북이 발생되고 코드북 캐시에 저장된다. 본 발명의 다른 태양에 따르면, 식별자들은 문서 대신에 코드북 또는 데피니션에 의존하여 그러한 문서에 대하여 발생될 수 있다. 예를 들어, 코드북이 발생되고 그 후에 식별자를 발생하기 위해 해시될 수 있다. 비록 공통 코드북을 공유하는 문서가 수신될 때마다 공통 코드북이 여전히 데이터 서버에서 발생되지만, 코드북의 하나의 복사본만이 데이터 서버에 저장될 것이다. 코드북 의존형 식별자 발생 방식은 뒤에서 더 상세히 설명하는 바와 같이 이동 장치에 대하여 중요한 장점을 또한 제공할 수 있다.
다른 방식으로, 외부 참조 데피니션이 없는 문서의 코드북은, 주로 1회성 코드북 엔트리에 의해 코드북 캐시의 공간을 점유하는 것을 회피하기 위하여 및 임의의 특수한 데이터 서버에 의존하지 않는 일반적인 코드북 요구 동작을 제공하기 위하여, 트랜스코드된 WBXML 문서에 내장되거나 프리펜드되거나 첨부될 수 있다. 이러한 다른 방식은 도 9를 참조하면서 뒤에서 더 상세하게 설명한다.
이제 도 7로 돌아가서, 데이터 서버로부터의 WBXML 문서가 단계 82에서 이동 장치에 의해 수신될 때, 수신된 문서의 식별자가 결정된다(단계 84). 위에서 설명한 바와 같이, 데이터 서버에서 수신된 일부 XML 문서들은 식별자를 포함하지 않을 수 있다. 그러나, 본 발명의 실시예에 따르면, 식별자들은 데이터 서버에서 발생되고 이동 장치에 보내진 모든 WBXML 문서에 포함되어 있는 것이 바람직하다. 그러므로, 이동 장치에서 수신한 WBXML 문서는 식별자를 바람직하게 포함한다. 단계 84에서 결정된 식별자를 이용하여, 코드북은 단계 86에서 이동 장치 코드북 캐시로부터 요구될 수 있다. 만일 요구된 코드북이 캐시에서 발견되면, 수신된 문서는 단계 90에서 구문분석되고 트랜스코드되며, 그 결과적인 XML 데이터가 단계 92에서 이동 장치 소프트웨어 애플리케이션, 또는 데이터 저장장치 및 디스플레이와 같은 다른 이동 장치 리소스에 보내지고, 이동 장치 처리는 단계 94에서 종료한다. 만일 코드북이 이동 장치의 코드북 캐시에서 발견되지 않으면, 코드북은 단계 96에서 데이터 서버로부터 요구된다. 단계 96과 단계 98 사이에 점선으로 표시한 바와 같이 코드북 요구와 관련된 약간의 시간 지연 후에, 코드북은 단계 98에서 데이터 서버로부 터 이동 장치에 의해 수신되고 단계 100에서 이동 장치 코드북 캐시에 저장된다.
이제, 상이한 잘 형성된 유일한 XML 문서로부터 발생되지만 공통의 대응하는 코드북 구조를 가진 2개의 WBXML 문서의 예를 생각한다. 데이터 서버에서, 식별자와 코드북은 각각의 XML 문서에 대하여 발생되었을 것이다. 만일 식별자가 문서 컨텐트 대신에 발생된 코드북에 의존하여 잘 형성된 유일한 문서에 대하여 데이터 서버에 의해 발생되면, 그 결과적인 WBXML 문서는 동일한 문서 유형의 식별자를 갖는다. 제1의 WBXML 문서가 이동 장치에서 수신될 때, 그 코드북은 데이터 서버로부터 요구되고 이동 장치 코드북 캐시에 저장된다. 그러나, 제2의 WBXML 문서가 수신될 때, 만일 코드북 엔트리가 캐시로부터 아직 삭제되지 않았거나 캐시에 덮어쓰기되지 않았으면, 식별자에 대응하는 코드북은 이동 장치 코드북에서 발견되고, 이것에 의해 데이터 서버에 대한 코드북 요구 및 그 관련된 통신 리소스의 사용과, 이동 장치의 전력 소모 및 시간 지연을 회피하게 된다. 특수한 식별자 발생 방식은, 소망하는 데이터 서버와 이동 장치의 행동 및 문서 또는 코드북 처리의 가능한 최적화에 따라서, 이동 장치 통신 서비스 공급자, 무선 통신 네트워크 운용자, 데이터 서버 소유자 또는 서비스 공급자, 애플리케이션 서비스 공급자 등에 의해 결정될 수 있다.
본 발명이 이동 장치 및 서버로 하여금 공지된 유형 및 이전에 알려지지 않은 유형의 XML 문서 둘 다의 전송 및 처리를 제공하는 각각의 코드북 캐시를 구축하게 하는 장점이 있다는 것은 앞의 설명으로부터 명백할 것이다. 이동 장치 및 데이터 서버의 코드북 캐시는 동일할 필요가 없고, 서버나 이동 장치의 폐쇄 또는 임 의의 소프트웨어 또는 하드웨어의 변경없이, 연속식의 새로운 코드북을 포함하도록 갱신될 수 있다. 이동 장치측 소프트웨어 애플리케이션은, 어떤 종류의 XML 문서를 수신하는지 미리 알고 있는 경우에, 설치시에 이동 장치 코드북 캐시를 시드(seed)하는 것이 또한 바람직할 수 있다. 이러한 시딩은 이동 장치에서 코드북을 생성함으로써 또는 코드북 캐시(44)가 임의의 데이터의 전송 전에 데이터 서버로부터 코드북을 검색하게 함으로써 달성될 수 있다.
본 발명의 상기 실시예에서, 이동 장치는 문서에 대응하는 코드북이 이동 장치의 코드북 캐시에서 발견되지 않을 때 데이터 서버로부터 코드북을 요구한다. 그러나, 본 발명은 어떠한 방식으로든 이 유형의 코드북 요구에 한정되지 않는다는 것을 아는 것이 중요하다. 문서와 마찬가지로 코드북은, 예컨대 새로운 문서 유형이 확립되거나 특정 유형의 문서와 빈번하게 마주치거나 마주칠 것으로 기대될 때, 그 코드북 캐시에 저장하기 위해 이동 장치에 또한 푸쉬될 수 있다. 코드북 요구 또는 이동 장치에 대한 코드북의 푸쉬는 이동 장치 코드북 캐시에 특수한 코드북을 프리로딩(pre-loading)하기 위해 다른 예로서 또한 사용될 수 있다. 빈번하게 사용된 코드북 또는 영구적인 코드북의 세트를 이동 장치에 프리로딩하는 대신에, 이동 장치 사용자 또는 소프트웨어 애플리케이션은 이동 장치가 데이터 서버와 함께 동작하도록 먼저 구성된 때 데이터 서버로부터 상기 코드북을 요구할 수 있다. 데이터 서버는 이동 장치가 데이터 서버와 통신하도록 등록되거나 인증되었을 때 미리 정해진 코드북 세트를 이동 장치에 푸쉬하도록 유사하게 구성될 수 있다.
상기 실시예들은 요구된 코드북이 서버의 코드북 캐시에 존재하는 데이터 서 버(18)에 의해 코드북 요구가 수신된 때의 동작을 또한 보여준다. 그러나, 이동 장치(12)는 하나 이상의 데이터 서버(18)와 통신할 수 있다. 그러므로, 코드북 요구는 코드북이 요구되지 않은 유형의 XML 문서를 미리 트랜스코드하지 않은 데이터 서버, 또는 요구된 코드북이 더 이상 코드북 캐시에 저장되어 있지 않은 데이터 서버에 보내질 수 있다. 만일 이동 장치(12)가 WBXML 또는 다른 트랜스코드된 XML 문서를 수신하였던 특수한 데이터 서버(18)로부터 코드북을 요구하도록 구성되어 있으면, 이동 장치(12)에서의 구문분석은 앞에서 설명한 것과 실질적으로 동일하게 진행한다. 이와 다르게, 데이터 서버(18)는 새로운 코드북이 발생되었을 때 그 새로운 코드북을 다른 데이터 서버 또는 복수의 데이터 서버에 액세스가능한 중앙 코드북 저장장치(도시 생략)에 분배하도록 구성될 수 있다. 이것에 의해, 새로운 코드북은 복수의 데이터 서버의 코드북 캐시 또는 적어도 복수의 데이터 서버에 액세스가능한 코드북 캐시에 저장되고, 코드북 요구는 코드북이 이동 장치(12)에 의해 요구된 때 복수의 데이터 서버 중의 임의의 서버에 보내질 수 있다.
트랜스코드된 XML 문서를 수신한 특수한 데이터 서버에만 코드북 요구를 보내는 이동 장치(12)의 제한은, 수신된 문서의 구문분석 및 트랜스코딩이 단일 데이터 서버에 의존한다는 점에서, 최적의 솔루션이 되지 못한다. 만일 데이터 서버가 폐쇄되거나, 그렇지 않고 동작 불능 상태 또는 이동 장치(12)에 대하여 이용할 수 없는 상태로 되면, 이동 장치 코드북 캐시(45)에 코드북이 저장되어 있지 않은 수신된 트랜스코드 XML 문서는 이동 장치(12)에 문서를 보낸 데이터 서버(18)가 다시 서비스 상태로 될 때까지 XML 문서로 다시 트랜스코드될 수 없다. 다수의 데이터 서버 중에서 또는 중앙 코드북 저장 장치에 대한 코드북의 분배는 실질적인 양의 데이터 전송 및 데이터 서버 리소스의 점유를 또한 요구할 수 있다. 또한, 데이터 서버에 의한 새로운 코드북의 분배에 있어서의 임의의 지연은, 예를 들어, 만일 새로운 코드북이 데이터 서버의 코드북 캐시 또는 중앙 코드북 저장 장치에 저장되기 전에 상기 새로운 코드북이 데이터 서버로부터 요구되면, 코드북 요구 처리에서 에러를 야기할 수 있다.
데이터 서버로부터 코드북을 검색하는 유연성을 강화시킴과 동시에 상기 문제점들을 해결하는 다른 방식을 도 8을 참조하여 이하 설명한다. 도 8은 본 발명의 추가의 태양에 따라 코드북 요구와 관련된 데이터 서버 동작을 나타내는 신호 흐름도이다.
도 8에 있어서, 코드북 요구는 이동 장치(12)로부터 데이터 서버(18)에 의해 수신된다. 코드북 요구는 만일 필요하다면 아마도 프로토콜 번역기(24)를 통하여 코드북 서브렛(32)에 의해 수신된다. 그 다음에 코드북 서브렛(32)은 코드북 시스템(30)으로부터 코드북을 요구하고, 코드북 시스템(30)은 요구된 코드북이 코드북 시스템(30)의 서버 코드북 캐시(도시 생략)에 저장되어 있는지를 결정한다. 도 8의 예에서, 요구된 코드북은 코드북 캐시에 저장되어 있지 않다. 이것은, 예를 들면, 이동 장치(12)로부터 코드북 요구를 수신한 데이터 서버(18)가 요구된 코드북과 관련된 유형의 XML 문서를 이전에 트랜스코드하지 않았을 때 발생할 수 있다. 그러나, 코드북이 단지 임시로만 저장되어 있고 코드북이 이동 장치(12)에 의해 요구되기 전에 캐시에 덮어쓰기가 행하여졌거나 캐시로부터 삭제되었으면, 코드북이 서버 코드북 캐시로부터 없어질 수 있다.
본 발명의 이 실시예에 따르면, 코드북 시스템(30)의 서버 코드북 캐시에서 발견되지 않은 코드북은 데이터 서버(18)에 의해 발생된다. 도 8의 예에서, 코드북은 DTD 서버(23a)라고 표시된 외부 데피니션 소스로부터 이용가능한 DTD에 적합한 XML 문서와 관련된다. 요구된 코드북이 그 코드북 캐시로부터 이용할 수 없다고 코드북 시스템(30)이 결정하면, 코드북 구축기(34)가 호출되고 DTD 서버(23a)로부터 그 문서에 대한 DTD를 요구한다. DTD는 적당한 문서 유형 식별자를 이용하여 DTD 서버(23a)로부터 요구된다. 이 때, DTD 서버는 DTD를 코드북 구축기에 복귀시키고, 코드북 구축기는 위에서 설명한 것과 실질적으로 동일하게 DTD를 이용하여 요구된 코드북을 발생한다. 그 다음에, 코드북은 코드북 시스템(30)에 전송되고, 코드북 시스템(30)은 그 캐시에 코드북을 저장한다. 코드북 시스템(30)은 또한 코드북을 코드북 서브렛(32)에 복귀시키고, 코드북은 만일 필요하다면 프로토콜 번역기(24)를 통하여 이동 장치(12)로 복귀된다. 이동 장치(12)에서, 요구된 코드북은 이동 장치 코드북 캐시(45)에 저장되고, 만일 수신된 WBXML 문서의 트랜스코딩을 가능하게 하기 위해 코드북 요구가 이루어졌다면, 코드북은 위에서 설명한 바와 같이 문서를 처리하기 위해 사용된다.
도 8의 코드북 요구 방식에 수반되는 서버 동작은 도 9에 도시되어 있다. 도 9는 도 8에 도시된 본 발명의 실시예에 따라 코드북 요구의 데이터 서버 처리를 나타내는 흐름도이다. 도 9에 있어서, 서버 처리는 코드북 요구가 이동 장치로부터 수신된 때 단계 102에서 시작한다. 그 다음에, 서버는, 단계 104에서, 요구된 코드 북과 관련된 식별자를 결정한다. 위에서 설명한 바와 같이, 이동 장치는 식별자가 바람직하게 요구로부터 추출될 수 있도록 문서 공중 ID 또는 다른 식별자를 코드북 요구에 삽입할 수 있다. 그 다음에, 단계 106에서 식별자를 이용하여, 요구된 코드북이 서버의 코드북 캐시에 있는지를 결정한다. 만일 코드북이 캐시에 있으면, 단계 108에서 코드북이 캐시로부터 검색되고, 단계 110에서 이동 장치로 복귀되며, 단계 112에서 코드북 요구 처리가 종료한다.
코드북이 캐시에 없을 때, 서버는 단계 114에서 데피니션을 검색할 수 있는 외부 데피니션 소스의 어드레스를 결정한다. 이 어드레스가 결정되었을 때, 서버는 단계 116에서 예를 들면 위에서 설명한 바와 같이 요구 및 응답 처리를 통하여 데피니션을 검색한다. 그 다음에, 요구된 코드북이 단계 118에서 발생되고, 단계 120에서 서버 코드북 캐시에 바람직하게 저장되며, 단계 110에서 이동 장치로 복귀된다. 이 때 코드북 요구는 완료되고, 단계 112에서 종료된다.
외부 데피니션을 검색할 수 있는 URL을 이용하는 한가지 장점은 도 8과 도 9로부터 명백할 것이다. 코드북 요구의 식별자가 외부 데피니션의 위치를 지시하면, 데이터 서버는 DTD 서버(23a)와 같은 외부 데피니션 소스의 어드레스를 결정하기 위해 식별자를 분석할 필요가 없다. 이와 같이, 요구는 외부 데피니션을 검색하는데 필요한 모든 정보를 포함하고 있고, 이것은 데이터 서버에 의한 코드북 요구 처리를 단순화시킨다. 더 나아가서, 이 방식은 데이터 서버들 간에 코드북의 임의의 통신 분류를 요구하지 않고 다수의 데이터 서버에 걸쳐 로딩하는 코드북 요구의 분배를 제공한다. 예를 들면, 제1 데이터 서버(DS1)는 XML 문서를 수신하고, DTD를 검색하고, 코드북을 생성하고, XML 문서를 WBXML 문서로 트랜스코드하고, WBXML 문서를 이동 장치에 보낼 수 있다. 그 다음에, 제2 데이터 서버(DS2)는 이동 장치로부터 코드북에 대한 요구를 수신할 수 있다. 만일 코드북이 제2 서버(DS2)의 캐시에 이미 저장되어 있으면, DS1이 코드북을 발생하여 그 캐시에 저장하였기 때문에, DS2는 DTD를 검색하고 코드북을 발생해야 할 것이다. 이 경우에, XML 문서 유형의 식별자로서 DTD의 URL을 사용하는 것은 URL이 DTD를 검색하는데 필요한 모든 것이기 때문에 공중 ID 또는 다른 식별자를 사용하는 것보다 훨씬 더 유용하다.
식별자로서 공중 ID를 사용하는 것은 DS1과 DS2 사이의 통신 또는 위에서 설명한 바와 같이 DS1에만 코드북 요구를 보내도록 이동 장치를 제한하는 것을 필요로 한다. 상기 통신 및 제한은 전체 시스템을 덜 강건하고 덜 스케일러블하게 만들 수 있다. 그러나, 식별자가 데피니션의 URL과 관련되거나 식별자가 그러한 URL로 분석될 수 있으면, 위에서 설명한 잇점들은 식별자를 이용하여 달성된다. 예를 들어, 식별자는 해시일 수 있고 또는 데피니션의 URL의 다른 변형일 수 있으며, 여기에서 데이터 서버는 해시 테이블 또는 다른 검색 테이블을 컨설팅함으로써 URL로 분석할 수 있다.
도 8에 도시한 방식은 관련된 외부 DTD를 가진 XML 문서뿐만 아니라 등록된 MIME 유형 및 공중적으로 이용가능한 토큰 테이블을 가진 문서 또는 외부의 공중적으로 이용가능한 문서 그래머 데피니션에 대한 참조를 가진 임의의 다른 XML 문서에도 적용될 수 있다. 그러나, 잘 형성된 유일한 문서와 같은 다른 XML 문서 및 내장 데피니션을 가진 문서들에 대하여, 코드북은 XML 문서 또는 내장 데피니션을 이 용하여 데이터 서버에 의해 발생된다. 그러므로, 그러한 코드북은 이동 장치(12)에 보내진 트랜스코드된 문서에 내장되거나 첨부된 것이 바람직하다. 그 다음에, 임의의 이동 장치(12)는 유효 XML 문서, 또는 코드북, 토큰 테이블 또는 코드북을 발생할 수 있는 다른 외부 데피니션에 대한 액세스를 가진 임의의 데이터 서버에 의해 코드북을 발생하는 공중적으로 이용가능한 토큰 테이블을 가진 XML 문서와 관련된 그러한 코드북만을 요구한다. 도 8 및 도 9에 도시된 코드북 요구 동작을 제공하기 위하여, 외부 데피니션이 없는 XML 문서에 대한 지원을 유지하면서, 데이터 서버 동작은 도 10에 도시된 바와 같이 수정될 수 있다. 도 10은 도 8 및 도 9의 코드북 요구 방식을 지원하기 위하여, 수신된 XML 문서의 예시적인 데이터 서버 처리를 설명하는 흐름도이다.
도 10에서, 외부 참조 데피니션을 가진 XML 문서의 처리는 도 6에 도시되고 위에서 설명한 것과 실질적으로 동일하며, 따라서 더 구체적으로 설명하지 않겠다. 단계 50에서 정보 소스으로부터 수신된 문서가 외부 참조 데피니션을 갖지 않는 것으로 결정될 때(단계 52), 코드북은 위에서 설명한 바와 같이 단계 78에서 문서 또는 내장 데피니션으로부터 발생된다. 그 다음에, 수신된 문서는 단계 66에서 트랜스코드된다. 또한, 위에서 설명한 바와 같이, 코드북은 문서가 트랜스코드될 때 발생될 수 있고, 단계 66과 단계 78은 사실상 동시 동작일 수 있다. 그 다음에, 코드북은 단계 67에서 트랜스코드된 문서에 내장되거나 프리펜드되거나 첨부되고, 트랜스코드된 문서와 코드북은 단계 69에서 이동 장치로 보내진다. 코드북이 트랜스코드된 문서와 함께 이동 장치로 보내지기 때문에, 식별자는 발생될 필요가 없고 코 드북은 데이터 서버에 반드시 저장될 필요가 없다.
전술한 설명은 XML 문서를 데이터 서버에서 WBXML 문서로 트랜스코드하고, 트랜스코드된 문서를 이동 통신 이동 장치로 보내며, 이동 장치에서 WBXML 문서를 처리하는 것과 관련이 있다. 그러나, 본 발명의 추가의 태양에 따르면, XML 문서는 이동 장치에서 또한 준비될 수 있고, 데이터 서버로 전송하기 위해 WBXML 문서로 트랜스코드될 수 있다. 이 때, 데이터 서버는 이동 장치로부터 수신된 WBXML 문서를 XML 문서로 트랜스코드하여 의도된 수신자에게 전송할 수 있다.
도 11은 이동 장치에서 WBXML 문서의 생성을 나타내는 신호 흐름도이다. 도 11에 도시한 이동 장치(212)는 도 4에 도시한 이동 장치(12)와 유사하지만, XML 문서 및 WBXML 문서의 생성을 제공한다. 통신 서브시스템(236)과 코드북 시스템(244)은 이동 장치(12)에서 유사하게 부호붙여진 부품들과 동일할 수 있다. 소프트웨어 애플리케이션(238)과 그 애플리케이션 핸들러(242)는, 예컨대 만일 소프트웨어 애플리케이션(38)이 XML 컨텐트를 수신하고 발생하도록 구성되면, 도 4의 애플리케이션(38) 및 핸들러(42)와 또한 동일할 수 있다. 그러나, 임의의 이동 장치 소프트웨어 애플리케이션은 XML 데이터를 수신하는 것과 XML 데이터를 발생하는 것 중의 어느 하나 또는 상기 두가지를 모두 행할 수 있고, 이동 장치는 한가지 유형 이상의 소프트웨어 애플리케이션을 포함할 수 있다는 것을 알아야 한다.
WBXML 발생기(241)는, WBXML 문서로부터 문서 요소들을 구문분석하는 대신에 WBXML 발생기(241)가 문서 요소들을 WBXML 문서에 어셈블한다는 점에서, WBXML 구문분석기(40)의 반대 동작을 수행한다. XML 문서 요소들을 WBXML 요소로 트랜스코 드하는 것은 이동 장치(212), 소프트웨어 애플리케이션(238) 및 그 핸들러(242)의 구성에 따라 WBXML 발생기(241) 또는 애플리케이션 핸들러(242)에 의해 취급될 수 있다. 예시적인 이동 장치(212)에서, 애플리케이션 핸들러(242)는, 비록 이동 장치가 상기 유형들 중의 어느 하나의 소프트웨어 애플리케이션 및 관련된 핸들러를 포함할 수 있다 하더라도, XML 문서 요소를 WBXML 문서 요소로 트랜스코드한다.
도 11에 도시된 바와 같이, 소프트웨어 애플리케이션(238)은 XML 데이터를 발생하고, 이 XML 데이터는 애플리케이션 핸들러(242)에 전달된다. 이 데이터는 이동 장치(212)에 미리 저장되어 있을 수 있고, 이동 장치(212)의 키보드, 키패드 또는 다른 입력 장치(도시 생략)를 이용하여 사용자가 입력할 수도 있으며, 또는 컴퓨터에 대한 시리얼 포트 접속과 같은 데이터 전송 시스템을 통해서 또는 적외선 수신기나 블루투스(BluetoothTM)와 같은 단거리 무선 통신 시스템을 통해서 이동 장치(212)에 로드될 수 있다. 소프트웨어 애플리케이션에 의해 발생된 XML데이터는 도 11에 도시된 바와 같이 단일 전송으로 애플리케이션 핸들러(242)에 전송될 수 있고, 또는 각 요소가 발생될 때에 요소마다 전송될 수도 있다.
소프트웨어 애플리케이션(238)으로부터의 일부 또는 모든 XML 데이터가 애플리케이션 핸들러(242)에 의해 수신될 때, XML 데이터를 WBXML 데이터로 트랜스코드하기 위해 필요한 코드북은 소프트웨어 애플리케이션(238)에 의해 발생된 데이터의 XML 유형에 관련된 식별자를 이용하여 코드북 시스템(244)로부터 요구된다. 코드북 시스템(244)은 자신의 캐시(도시 생략)로부터 코드북을 검색함으로써, 또는 코드북 을 자신의 캐시에서 이용할 수 없는 경우에는 데이터 서버로부터 코드북을 요구함으로써, 요구된 코드북을 애플리케이션 핸들러(242)에 복귀시킨다. 아마도 데이터 서버에서 코드북의 발생을 포함하는 코드북 요구 처리는 위에서 설명한 임의의 방식에 의해 달성될 수 있다.
코드북이 애플리케이션 핸들러(242)에 의해 수신될 때, XML 데이터의 WBXML 문서 요소로의 트랜스코딩은 계속된다. 소프트웨어 애플리케이션(238)으로부터의 모든 XML 데이터가 일단 WBXML 요소로 트랜스코드되고 WBXML 발생기(241)에 전송되면, WBXML 발생기(241)는, XML 유형과 관련된 식별자를 비롯해서, WBXML 요소를 WBXML 문서에 어셈블하고, WBXML 문서를 통신 서브시스템(236)에 전송한다. 그 다음에, WBXML 문서는 데이터 서버에 전송된다.
소프트웨어 애플리케이션(238)에 의해 발생된 XML 데이터는 요구된 코드북이 수신될 때까지 이동 장치(212)의 메모리(도시 생략)에 또한 저장될 수 있다. 이것은 이동 장치(212)가 통신 네트워크 유효 범위(coverage) 밖에 있거나 데이터 서버로부터 코드북을 요구 및/또는 수신하는 것이 불가능한 경우에도 이동 장치(212)에서 데이터를 발생할 수 있게 한다. 데이터가 이동 장치(212)에 저장되기 때문에, 비록 발생된 XML 문서가 아직 트랜스코드되거나 데이터 서버에 보내지지 않았다 하더라도 다른 이동 장치 동작, 기능 및 소프트웨어 애플리케이션을 이용할 수 있다. 그 다음에, 저장된 데이터가 트랜스코드되고, 코드북이 수신될 때마다 데이터 서버에 보내질 수 있다.
이동 장치(212)에서 발생된 XML 문서는 데이터 서버와, 예를 들면 웹 서버와 같이, 데이터 서버가 통신하도록 구성되는 의도된 문서 수신자 중의 어느 하나용으로 구성될 수도 있고 양자용으로 구성될 수도 있다. 만일 XML 문서가 데이터 서버에 의해 하나 이상의 수신자에게 전송되어야 한다면, 각 수신자의 어드레스가 이동 장치(212)의 소프트웨어 애플리케이션(238), 애플리케이션 핸들러(242) 또는 가능하다면 WBXML 발생기(241)에 의해 WBXML 문서에 바람직하게 첨부되거나 내장된다.
상기 예시적인 이동 장치(212)와 도 11에 도시된 신호 흐름도는 코드북이 이동 장치(212)에서 또는 데이터 서버로부터 이용가능한 XML 문서의 발생과 관련된다. 위에서 설명한 바와 같이, 공개적으로 이용가능한 그래머 데피니션을 가진 XML 문서용의 코드북은 그래머 데피니션에 대한 액세스를 가진 임의의 데이터 서버에 의해 발생될 수 있다. 이와 같이, 만일 이동 장치 및 이동 장치 소프트웨어 애플리케이션이 단지 공지 유형의 XML만을 발생하도록 구성되어 있으면, 이동 장치에서 WBXML 문서를 발생하기 위해 필요한 임의의 코드북을 데이터 서버로부터 요구할 수 있기 때문에, 이동 장치는 코드북 발생 시스템을 포함할 필요가 없다. 그러나, 이동 장치에서 리소스의 처리가 허용되는 경우, 이동 장치는 잘 형성된 유일한 또는 다른 새로운 유형의 XML 문서를 발생하고, 그 문서에 대한 대응하는 코드북을 발생하며, 문서들을 데이터 서버에 보내기 전에 코드북을 트랜스코드된 WBXML 문서에 내장하거나 프리펜드하거나 또는 첨부할 수 있다. 이와 다르게, 및 데이터 서버 (18)에 대하여 위에서 설명한 바와 같이, 독특한 식별자가 발생될 수 있고, 코드북은 만일 충분한 메모리 공간이 이용가능하다면 이동 장치(212)의 코드북 캐시(도시 생략)에 저장될 수 있다. 만일 코드북이 그러한 XML 문서로부터 발생된 WBXML 문서 에 대하여 데이터 서버에 의해 요구되면, 코드북은 이동 장치로부터 요구될 수 있다. 이 두가지의 변형예 중에서, 코드북을 데이터 서버에 보내는 것은 이동 장치에서의 코드북 요구 관리를 회피하고, 이동 장치가 턴오프되거나 통신 네트워크 유효 범위 밖에 있을 때 이동 장치로부터의 코드북 검색에 있어서의 가능한 시간 지연을 회피하며, 데이터 서버 통신 링크에 대한 이동 장치의 코드북 요구/응답 트래픽의 증가를 회피하기 위해 바람직할 수 있다.
도 12는 데이터 서버에 의해 이동 장치로부터 수신된 WBXML 문서의 처리를 보여주는 신호 흐름도이다. 데이터 서버(218)와 그 부품들은, 트랜스코더 시스템 (228)이 WBXML -> XML 트랜스코더(274)를 포함하는 것을 제외하고, 도 3에 도시되고 위에서 설명한 데이터 서버(18) 및 유사하게 부호붙여진 부품들과 실질적으로 유사하다.
이동 장치(212)는 데이터 서버로부터 이동 장치로의 문서 전송을 위해 사용된 동일한 프로토콜, 예를 들면, 사유재산적 IPPP를 이용하여 데이터 서버(218)에 문서를 전송하는 것이 바람직하지만, 문서를 전송하는 방향에 따라서 상이한 프로토콜이 사용될 수도 있다.
이동 장치(212)로부터의 WBXML 문서는 데이터 서버(218)에 의해 수신되고, 임의의 필요한 프로토콜 번역은 프로토콜 번역기(224)에서 수행된다. 수신된 WBXML 문서는 트랜스코딩 시스템(228)의 트랜스코더(274)에 보내진다. 데이터 서버(218)의 트랜스코딩 시스템(228)이 수신된 문서의 구문분석을 또한 수행할 수 있다는 것은 명백하다. 이것은 위에서 설명한 데이터 서버(18)의 트랜스코딩 시스템(28)의 경우에도 또한 진실이다. 이 기술에 숙련된 사람이라면 본 발명의 범위에서 벗어나지 않고 데이터 서버에 별도의 구문분석 시스템이 또한 제공될 수 있다는 것을 알 것이다.
만일 코드북이 WBXML 문서에 내장되거나 프리펜드되거나 첨부되어 있으면, 트랜스코더(274)는 WBXML 문서 요소를 XML로 트랜스코드하기 위해 코드북을 추출하여 사용하고, 또한 코드북 시스템(230)의 코드북 캐시(도시 생략)에 코드북을 저장할 수 있다. 도 12에 도시한 실시예에서, 수신된 WBXML 문서는 외부 참조 데피니션을 갖는다. 식별자는 코드북 시스템(230)으로부터 그 문서에 대한 코드북을 요구하기 위해 트랜스코더(274)에 의해 사용된다. 코드북 시스템은 코드북이 자신의 코드북 캐시에서 발견되면 요구된 코드북을 복귀시키고, 또는 요구된 코드북을 발생하기 위해 코드북 구축기(234)를 호출한다.
위에서 설명한 바와 같이, 코드북 구축기(234)는 식별자를 이용하여 데피니션을 요구하는데, 상기 식별자는, 바람직하게, 외부 데피니션 소스(223)로부터 데피니션을 검색할 수 있는 URL과 같은 어드레스이다. 데피니션이 코드북 구축기 (234)에 복귀될 때, 상기 데피니션은 요구된 코드북을 발생하기 위해 사용되고, 그 다음에 상기 요구된 코드북은 코드북 시스템(230)에 복귀된다. 코드북 시스템(230)은 새로운 코드북을 자신의 캐시에 저장하고 그 코드북을 트랜스코더(274)에 제공하는 것이 바람직하다. 그 다음에, 구문분석된 WBXML 요소들이 트랜스코드되고 XML 문서에 어셈블된다.
만일 이동 장치(212)로부터의 문서가 데이터 서버(218) 또는 데이터 서버의 다른 부품들에 의해 추가로 처리되어야 한다면, XML 문서는 그러한 다른 데이터 서버 부품들에 보내지고, 또는 가능하다면 후속 처리를 위해 데이터 서버(218)의 메모리(도시 생략)에 저장된다. 만일 수신된 WBXML 문서가 이동 장치(212)에 의해 문서에 내장된 또는 문서가 제공하는 어드레스에 의해 식별된 수신자 시스템(220)용으로 의도된 것이면, 트랜스코드된 문서가 적당한 접속 핸들러(226)를 통하여 수신자 시스템(220)에 보내진다. 데이터 서버(218)와 수신자 시스템(220)간의 통신은 도 12에 도시된 바와 같이 데이터 서버와 외부 데피니션 소스(223)간의 통신을 위해 사용된 접속 핸들러(226)를 통하여 달성될 수 있고, 또는 다른 접속 핸들러를 사용할 수도 있다. 위에서 설명한 이동 장치(12)로부터의 문서 요구와 마찬가지로, 이동 장치(218)는 도면 부호 220으로 표시한 것과 같은 임의의 문서 수신자 시스템, 및 문서를 임의의 수신자 시스템에 전송하기 위해 사용되는 통신 핸들러 및/또는 프로토콜을 지정하기 위해 WBXML 문서와 함께 접속 요구를 보낼 수 있다.
이동 장치(212)에서 발생된 XML 문서는 이것에 의해 데이터 서버(218)에 전송하기 위한 WBXML로 트랜스코드되고, 데이터 서버(218)에 의해 다시 XML로 트랜스코드된다. 이동 장치(212)는 WBXML 문서를 유사하게 인에이블된 이동 장치에 직접 또는 데이터 서버를 통하여 전송할 수 있다는 것이 또한 예상된다. 후자의 경우에, WBXML 문서는 데이터 서버에 의해 XML로 트랜스코드되는 대신에 의도된 수신자 이동 장치로 전송되는 것이 바람직하다. 수신자 이동 장치는 데이터 서버로부터 또는 가능하다면 발송자 이동 장치로부터 필요한 코드북을 요구할 수 있다.
도 11과 도 12에 도시된 컨텐트 처리 방식은 도 13과 도 14에 흐름도 형식으 로 도시되어 있다. 도 13은 발생된 XML 문서의 이동 장치 처리를 나타내는 흐름도이고, 도 14는 데이터 서버에 의한 수신 WBXML 문서의 처리를 나타내는 흐름도이다.
도 13에서, XML 문서는 단계 250에서 이동 장치(212)에서 발생된다. 단계 252에서는 XML 문서가, 유효 XML 문서와 같이, 외부 참조 및 이용가능한 그래머 데피니션이 있는 공지의 XML 문서 유형인지 결정된다. 발생된 XML 문서의 유형은 예를 들면 XML 문서를 발생한 특수한 이동 장치 소프트웨어 애플리케이션에 의존할 수 있다. 만일 XML 문서가 XML 문서의 DOCTYPE 설명문을 탐색함으로써 결정될 수 있는 것처럼 DTD와 같은 외부 참조 데피니션을 갖고 있으면, 문서의 문서 유형 식별자가 단계 254에서 결정되고, 단계 256에서, 이동 장치의 코드북 시스템으로부터 대응하는 코드북을 요구하기 위해 사용된다.
만일 코드북이 단계 258에서 이동 장치 코드북 시스템의 코드북 캐시에 저장되어 있다고 결정되면, XML 문서는 단계 260에서 트랜스코드되고, 그 결과적인 WBXML 문서가 단계 262에서 데이터 서버 및/또는 수신자(들)에 보내지며, 발생된 XML 문서의 이동 장치 처리를 완료한다. 처리는 단계 264에서 종료한다. 그러나, 만일 식별자에 대응하는 코드북이 코드북 캐시에 저장되어 있지 않으면(단계 258), 단계 266에서 코드북이 데이터 서버로부터 요구된다. 단계 266과 단계 268 사이에 점선으로 표시한 약간의 시간 지연 후에, 코드북은 단계 268에서 데이터 서버로부터 수신된다. 그 다음에, 코드북은 단계 270에서 이동 장치의 코드북 캐시에 바람직하게 저장되고, 처리는 위에서 설명한 바와 같이 단계 260, 262 및 264로 종료된 다.
비교적 제한된 처리 능력을 가진 이동 장치는 코드북이 데이터 서버에 의해 발생되거나 이동 장치에서의 코드북 발생을 회피하기 위하여 데이터 서버로부터 요구되는 XML 문서만을 발생하도록 인에이블될 것이다. 이러한 이동 장치에서, 국부적으로 발생된 XML 문서의 처리는 단계 250 및 단계 254 내지 단계 270을 포함한다. 이동 장치가 새로운 유형의 XML 문서와 같은 XML 문서, 정식 데피니션을 사용하지 않는 잘 형성된 유일한 문서, 또는 내장된 그래머 데피니션을 가진 문서에 대하여 코드북을 발생할 수 있을 때, 단계 252에서는 부정적인 결정이 이루어진다. 코드북은 예를 들면 위에서 설명한 것처럼 단계 272에서 문서 또는 내장된 데피니션으로부터 발생되고, 단계 274에서 코드북을 이용하여 XML 문서가 트랜스코드되며, 단계 276에서 코드북이 트랜스코드된 WBXML 문서에 바람직하게 내장되거나 프리펜드되거나 첨부되며, 단계 278에서 WBXML 문서 및 코드북이 데이터 서버 및/또는 수신자(들)에게 보내진다.
다른 방식으로, 단계 272에서 발생된 코드북은 계산된 독특한 식별자를 이용하여 이동 장치의 코드북 캐시에 저장될 수 있다. 그러나, 위에서 상세히 설명한 이유 때문에, XML 문서 또는 내장된 데피니션으로부터 발생된 코드북은 WBXML 문서와 함께 또는 WBXML 문서 내에 포함되어 데이터 서버 또는 임의의 다른 수신자들에게 바람직하게 보내진다.
이제 도 14를 참조하면, 이동 장치에서 발생된 WBXML 문서의 처리가 도시되어 있다. 도 14는 데이터 서버에 의한 수신 WBXML 문서의 처리를 나타내는 흐름도 이다. 도시되어 있는 바와 같이, 이 처리 방법은 단계 280에서 이동 장치로부터의 WBXML 문서가 데이터 서버에 수신될 때 시작한다. 그 다음에, 예를 들면 잘 형성된 유일한 XML 문서에 대하여 사용된 코드북이 WBXML 문서에 내장되거나 프리펜드되거나 첨부되어 있는 경우에 코드북이 문서와 함께 공급되었는지가 결정된다. 만일 코드북이 공급되어 있으면, 단계 284에서 코드북이 추출되고, 단계 286에서 상기 문서는 코드북을 이용하여 구문분석되고 다시 WBXML로 트랜스코드된다. 전술한 바와 같이, 이동 장치로부터 보내진 문서는 데이터 서버에 의해 및 가능하다면 추가적으로 그렇지 않으면 그 대신으로 하나 이상의 수신자에 의해 사용되도록 의도될 수 있다. 그 다음에, 트랜스코드된 문서는 단계 288에서 데이터 서버 내의 부품들에게 및/또는 임의의 의도된 수신자들에게 분배된다. 그 다음에 이 방법은 단계 290에서 종료한다. 만일 문서가 하나 이상의 수신자 이동 장치용으로 의도되어 있으면, 수신된 WBXML 문서는 트랜스코드되지 않고 단계 288에서 이동 장치에 보내질 수 있다. 한편, 트랜스코드된 XML 버젼은, 예를 들면 인터넷과 같은 WAN을 통하여, 데이터 서버가 통신할 수 있는 컴퓨터 시스템과 같은 다른 수신자에게 보내질 수 있다. WBXML은 유선 통신 시스템에 대해서도 통신 리소스의 더욱 효율적인 사용을 제공할 수 있기 때문에, 데이터 서버는 수신된 WBXML 문서를 모든 수신자에게 분배하도록 구성되어, 단계 286에서의 트랜스코딩 동작이 각각의 수신자에 의해 수행되게 하는 것도 가능하다.
만일 코드북이 수신된 WBXML 문서와 함께 이동 장치에 의해 공급되지 않았다고 단계 282에서 결정되면, 데이터 서버는 단계 292에서 수신 문서의 식별자를 결 정한다. 그 다음에, 코드북은 단계 294에서 식별자를 이용하여 데이터 서버 내의 코드북 시스템으로부터 요구된다. 그 다음에, 코드북 시스템은 코드북이 자신의 캐시에 있는지를 단계 296에서 결정한다. 만일 코드북이 캐시에서 발견되면, 처리는 위에서 설명한 바와 같이 단계 286으로 진행한다. 만일 코드북이 캐시에 없으면, 단계 298에서, 식별자와 관련된 데피니션 또는 코드북 자체가 검색된다. 대부분의 구현예에서, 데피니션이 검색되고 코드북이 데이터 서버에 의해 발생되는 것으로 예상된다. 그러나, 본 발명은 어떤 방식으로든 이것으로 제한되지 않는다는 것을 이해하여야 한다. 이동 장치 리소스가 허용되는 경우에, 코드북은 WBXML 문서를 수신하는 이동 장치로부터 요구될 수 있다.
데피니션이 단계 298에서 데이터 서버에 의해 검색될 때, 단계 300에서 코드북이 발생된다. 데이터 서버에 의해 단계 300에서 발생되거나 단계 298에서 검색된 필요한 코드북은 단계 302에서 데이터 서버 코드북에 바람직하게 저장되고, 처리는 위에서 설명한 바와 같이 단계 286, 288 및 290으로 종료한다.
본 발명의 추가적인 태양에 따르면, WBXML 문서는 이동 장치들 사이에서 직접 교환될 수 있다. 수신된 WBXML 문서의 이동 장치 처리는 위에서 설명한 것과 실질적으로 동일할 수 있다. WBXML 문서와 함께 제공되지 않은 또는 이동 장치의 코드북 캐시에서 발견되지 않은 필요한 코드북은 데이터 서버로부터 또는 가능하다면 발송 이동 장치로부터 요구될 수 있다.
도 15는 본 발명에 따른 시스템 및 방법이 구현될 수 있는 이동 통신 이동 장치를 설명하는 블록도이다. 도 15에서, 이동 장치(322)는 통신 서브시스템(336), WBXML 스트링 구문분석기(340), WBXML 스트링 발생기(341), WBXML 바이너리 구문발생기(342), WBXML 바이너리 발생기, 3개의 소프트웨어 애플리케이션(346, 352, 358), 및 코드북 캐시(345)를 포함하는 코드북 시스템을 구비하고, 상기 3개의 소프트웨어 애플리케이션(346, 352, 358)은 각각 실제 소프트웨어 애플리케이션(350, 356, 362)을 구현하는 소프트웨어 코드 및 대응하는 애플리케이션 핸들러(348, 354, 360)를 구비한다. 도 15의 이동 장치(322)는 도 2의 이동 장치(12)와 실질적으로 유사하지만, 복수의 소프트웨어 애플리케이션과 2가지 유형의 WBXML 구문분석기 및 WBXML 발생기를 구비하고 있다.
통신 서브시스템(336)은 링크(335, 337)를 통해 데이터 서버와 통신하기 위해, 즉, 예를 들면 문서를 전송하고 코드북 요구 및 응답을 위해, 그리고 가능하다면 링크(339)를 통해 다른 이동 장치와 통신하기 위해, 이동 장치(322)에서 필요로 하는 부품들을 구비하고 있다. 통신 서브시스템(336)의 정확한 구현은, 위에서 설명한 바와 같이, 이동 장치가 동작하도록 의도하는 통신 시스템 및 프로토콜에 따른다.
WBXML 스트링 구문분석기(340)는 WBXML 문서를 수신하고, 그 문서를 구문분석하여 XML 문서로 다시 트랜스코드한다. 그러므로, 스트링 구문분석기(340)는 코드북 시스템(344)에 접속되어 WBXML 문서가 수신될 때 코드북 검색을 제공한다. 그러나, 만일 코드북이 수신된 문서에 내장되거나 프리펜드되거나 첨부되어 있으면, 코드북 캐시(345)에 저장하기 위하여 그 코드북이 추출되어 코드북 시스템(344)에 전달되고, WBXML 문서를 트랜스코드하기 위해 사용된다. 그 다음에, 구문분석되고 트랜스코드된 XML 데이터는 소프트웨어 애플리케이션(350)에서 사용하기 위해 애플리케이션 핸들러(348)에 전달된다. 애플리케이션(346)은 이동 장치(322)의 XML과 함께 작용하도록 구성되고, 따라서 스트링 구문분석기(340)에 의해 XML 데이터가 전달된다는 것을 알 수 있다. 유사하게, 애플리케이션(346)은 또한 이동 장치(322)에서 XML을 발생하도록 구성된다. 소프트웨어 애플리케이션(350)에서 발생된 XML 데이터는 애플리케이션 핸들러(348)에 의해 WBXML 스트링 발생기(341)로 전달된다. WBXML 스트링 발생기(341)는 코드북 시스템(344)으로부터 관련 코드북을 검색하거나 또는 위에서 설명한 바와 같이 XML 데이터 또는 내장된 데피니션으로부터 코드북을 발생한다. 코드북은 XML 데이터를 WBXML 데이터로 트랜스코드하기 위해 사용되며, WBXML 데이터는 데이터 서버에 또는 가능하다면 다른 이동 장치에 전송하기 위해 WBXML 문서에 어셈블되어 통신 서브시스템(336)에 전달된다. 이동 장치(322)에서 발생된 코드북은 트랜스코드된 WBXML 문서와 함께 보내져서 코드북 시스템 (344)의 캐시(345)에 저장된다.
바이너리 구문분석기(342)와 함께 작용하도록 구성된 소프트웨어 애플리케이션(352)은 트랜스코딩 동작을 취급하는 애플리케이션 핸들러(354)를 포함한다. 애플리케이션(352)에서 사용되는 수신된 WBXML 문서는 구문분석기(342)에 의해 구문분석되고 구문분석된 WBXML 문서 요소들은 애플리케이션 핸들러(354)에 전달된다. 그 다음에, 애플리케이션 핸들러(354)는 코드북 시스템(344)으로부터 코드북을 요구하거나 문서로부터 내장된 코드북을 추출하고, 구문분석된 요소들을 WBXML로 트랜스코드하기 위해 상기 코드북을 이용한다. XML 문서가 소프트웨어 애플리케이션 (356)을 이용하여 발생될 때, 애플리케이션 핸들러(354)는 문서 자체 또는 내장된 데피니션으로부터 적당한 코드북을 발생하거나 코드북 시스템(344)으로부터 코드북을 요구하고, 애플리케이션(356)에 의해 발생된 XML 요소들을 WBXML 바이너리 요소들로 트랜스코드하기 위해 상기 코드북을 이용한다. WBXML 바이너리 발생기(343)는 WBXML 바이너리 구문분석기(342)의 반대 동작을 수행하고, 애플리케이션 핸들러 (354)에 의해 자신에게 전달된 WBXML 요소들을 WBXML 문서에 어셈블한다.
애플리케이션(346, 352)은 본 발명의 태양에 따라서 코드북 시스템(344)과 함께 동작하도록 구성된다. 이러한 애플리케이션이 통합된 이동 장치(322)는 다른 소프트웨어 애플리케이션을 설치하여 그것으로 동작하는 것이 또한 가능하다. 예를 들어, 애플리케이션(358)은, 위에서 설명한 공지 기술에 따라 통상의 것으로 된 것처럼 엔코딩 방식이 내장된 애플리케이션 핸들러(360)를 구비한다. 애플리케이션 (358)은 도 15에 도시된 바와 같이 구문분석기(342) 및 발생기(343)를 이용할 수 있지만, 코드북 시스템(344)과는 상호작용하지 않는다. 이 때문에, 이동 장치에서 본 발명을 구현하는 것은 내장 트랜스코딩 방식을 이용하는 이동 장치 소프트웨어 애플리케이션과의 관계에서 퇴보적인 호환성을 제공할 수 있다.
도 15에 도시된 이동 장치는 단지 설명의 목적으로 의도된 것이고, 본 발명은 어떤 방식으로든 도 15에 도시된 부품들을 포함하는 이동 장치로 제한되지 않는다. 예를 들어, 통신 기능이 가능하거나 통신 기능이 없는 또다른 애플리케이션 뿐만 아니라 XML을 전송하거나 수신하기만 하는 다른 소프트웨어 애플리케이션이 또한 이동 장치에서 구현될 수 있고 또는 대신으로 구현될 수 있다.
위에서의 설명은 단순히 예를 목적으로 하는 양호한 실시예에 관한 것임이 명백하다. 이 기술에 숙련된 사람에게는 본 발명의 많은 변형예가 자명할 것이고, 이러한 자명한 변형예는 명시적으로 설명을 하였거나 하지 않았거나에 상관없이 여기에서 설명한 본 발명의 범위 내에 속하는 것이다.
예를 들면, 비록 도면에서 단일의 이동 장치, 데이터 서버 및 정보 소스이 나타나 있지만, 데이터 서버는 전형적으로 아마도 상이한 무선 통신 네트워크를 통해 복수의 이동 장치에 대한 서비스를 제공할 것이며, 상이한 직접 접속 또는 네트워크 기반 접속을 통해 복수의 정보 소스에 액세스할 것이다. 유사하게 임의의 무선 통신 네트워크 및 임의의 정보 소스이 다수의 데이터 서버와 통신할 수 있다.
덧붙여서, 상기 설명한 시스템 및 방법은 XML 이외의 컨텐트 유형의 트랜스코딩 및 구문분석을 위해 구현될 수 있다. 유사하게, 이들 시스템 및 방법은 WBXML이 아닌 다른 엔코딩 방식용으로 구성될 수 있다. 위에서 설명한 잇점 및 장점들은 예를 들면 유형 길이 엔코딩(type length encoding)과 같은 엔코딩 방식에 대해서도 또한 유도될 수 있다.
비록 데이터 서버와 정보 소스이 별도의 시스템으로 구성되는 것을 주로 위에서 설명하였지만, 데이터 서버와 정보 소스 기능을 둘 다 내포하는 집적 시스템이 또한 예상된다. 이러한 집적 시스템은 기밀 정보 또는 다른 민감한 정보가 정보 소스으로부터 제공될 때 특히 장점을 갖는다. 이 경우에는 이동 장치로 전송하기 위해 정보를 트랜스코드할 때 중간 데이터 서버가 필요없게 된다. 예를 들면, 정보 소스에서 트랜스코드되어 암호화되어 있는 기밀 정보는 이동 장치에서 복호될 때까 지 암호화 상태를 유지하여 단대단 보안성(end-to-end security)을 제공한다.
본 발명에 따르면, XML 인에이블된 애플리케이션이 특수한 XML 유형 및 그 엔코딩 방식과 무관하게 되도록 임의의 특수한 엔코딩 방식에 한정되지 않는 이동 통신 장치에서 범용 XML을 지원하는 시스템 및 방법을 제공할 수 있다.
또한, 본 발명에 따르면, 모든 유형의 XML 문서를 처리하기 위한 시스템 및 방법을 제공할 수 있다.
더 나아가서, 본 발명에 따르면, 장치에서 소프트웨어 코드를 변경할 필요없이 새로운 XML 문서 유형을 지원하는 이동 통신 장치에서 XML을 지원하기 위한 시스템 및 방법을 제공할 수 있다.

Claims (1)

  1. 무선 이동 통신 장치에서 확장가능 마크업 언어(XML) 문서를 처리하는 방법에 있어서,
    처리된 문서를 데이터 서버로부터 수신하는 단계-상기 처리된 문서는 코드북을 이용하여 XML 문서를 트랜스코딩함에 의해 생성됨-와;
    상기 코드북이 상기 무선 이동 통신 장치에 저장되어 있는지를 결정하는 단계와;
    상기 코드북이 상기 무선 이동 통신 장치에 저장되어 있지 않은 경우에 상기 데이터 서버로부터 상기 코드북을 요구하는 단계와;
    상기 데이터 서버로부터 상기 코드북을 수신하는 단계와;
    상기 XML 문서를 복구하기 위해 상기 코드북을 이용하여 상기 처리된 문서를 트랜스코딩하는 단계를 포함하고,
    상기 XML 문서는 문서 데피니션과 관련되고, 상기 데이터 서버는 상기 문서 데피니션을 검색하고 상기 외부 데피니션에 기초하여 상기 코드북을 생성하는 것인 XML 문서 처리 방법.
KR1020077012212A 2001-11-23 2002-11-21 확장가능 마크업 언어 문서를 처리하는 시스템 및 방법 KR20070064684A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US33199801P 2001-11-23 2001-11-23
US60/331,998 2001-11-23

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020047007872A Division KR101026210B1 (ko) 2001-11-23 2002-11-21 확장가능 마크업 언어 문서를 처리하는 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR20070064684A true KR20070064684A (ko) 2007-06-21

Family

ID=23296257

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020047007872A KR101026210B1 (ko) 2001-11-23 2002-11-21 확장가능 마크업 언어 문서를 처리하는 시스템 및 방법
KR1020077012212A KR20070064684A (ko) 2001-11-23 2002-11-21 확장가능 마크업 언어 문서를 처리하는 시스템 및 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020047007872A KR101026210B1 (ko) 2001-11-23 2002-11-21 확장가능 마크업 언어 문서를 처리하는 시스템 및 방법

Country Status (13)

Country Link
US (3) US7636565B2 (ko)
EP (2) EP2031525B1 (ko)
JP (2) JP4286143B2 (ko)
KR (2) KR101026210B1 (ko)
CN (1) CN100390787C (ko)
AT (1) ATE431593T1 (ko)
AU (1) AU2002342483A1 (ko)
CA (1) CA2467782C (ko)
DE (1) DE60232359D1 (ko)
ES (1) ES2326073T3 (ko)
HK (1) HK1069895A1 (ko)
MX (1) MXPA04004909A (ko)
WO (1) WO2003046757A2 (ko)

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7865528B2 (en) * 2001-01-09 2011-01-04 Nextair Corporation Software, devices and methods facilitating execution of server-side applications at mobile devices
US7546298B2 (en) * 2001-01-09 2009-06-09 Nextair Corporation Software, devices and methods facilitating execution of server-side applications at mobile devices
CN1312573C (zh) * 2001-12-07 2007-04-25 株式会社Ntt都科摩 移动通信终端及显示控制方法
US7650576B2 (en) * 2002-03-07 2010-01-19 Business Objects Americas Method and system for creating graphical and interactive representations of input and output data
US7412495B2 (en) * 2002-04-26 2008-08-12 Sun Microsystems, Inc. Method, system, and article of manufacture for a server side application
US7809679B2 (en) * 2003-03-03 2010-10-05 Fisher-Rosemount Systems, Inc. Distributed data access methods and apparatus for process control systems
US20040209610A1 (en) * 2003-04-17 2004-10-21 Adwankar Sandeep M. Method and apparatus for managing wireless terminals
SG164284A1 (en) * 2003-09-17 2010-09-29 Research In Motion Ltd System and method for dynamic content processing with extendable provisioning
ATE443292T1 (de) 2003-10-07 2009-10-15 Nokia Corp Verfahren und vorrichtung zur handhabung von text-und binär-markup-sprachen in einer datenverarbeitungseinrichtung
CA2543236C (en) * 2003-11-26 2012-09-11 Cisco Technology, Inc. Method and apparatus to provide inline encryption and decryption for a wireless station
US6954450B2 (en) * 2003-11-26 2005-10-11 Cisco Technology, Inc. Method and apparatus to provide data streaming over a network connection in a wireless MAC processor
EP1569109A1 (en) * 2004-02-27 2005-08-31 Research In Motion Limited A system and method for mapping between message and data domains using a metadata defined mapping
WO2005089061A2 (en) 2004-03-23 2005-09-29 Nds Limited Optimally adapting multimedia content for mobile subscriber device playback
GB2413461B (en) * 2004-04-23 2006-05-10 Matsushita Electric Ind Co Ltd Crytographic optimisation for duplicate address detection
GB2413462A (en) * 2004-04-23 2005-10-26 Matsushita Electric Ind Co Ltd Duplicate Address Detection Optimisation
WO2005111824A2 (en) * 2004-05-19 2005-11-24 Silverkite Inc. Method and system for processing of text content
US7707498B2 (en) * 2004-09-30 2010-04-27 Microsoft Corporation Specific type content manager in an electronic document
US7559020B2 (en) * 2004-12-30 2009-07-07 Microsoft Corporation Methods and systems for preserving unknown markup in a strongly typed environment
US7617234B2 (en) * 2005-01-06 2009-11-10 Microsoft Corporation XML schema for binding data
US7730394B2 (en) * 2005-01-06 2010-06-01 Microsoft Corporation Data binding in a word-processing application
US7945590B2 (en) * 2005-01-06 2011-05-17 Microsoft Corporation Programmability for binding data
EP1851982A4 (en) * 2005-02-22 2008-03-12 Nextair Corp MOBILE DEVICE WITH EXTENSIBLE SOFTWARE FOR PRESENTING SERVER-SIDED APPLICATIONS, SOFTWARE, AND PROCEDURES
US7668873B2 (en) * 2005-02-25 2010-02-23 Microsoft Corporation Data store for software application documents
US7752224B2 (en) 2005-02-25 2010-07-06 Microsoft Corporation Programmability for XML data store for documents
US7996443B2 (en) * 2005-02-28 2011-08-09 Microsoft Corporation Schema grammar and compilation
US7756839B2 (en) 2005-03-31 2010-07-13 Microsoft Corporation Version tolerant serialization
US7634515B2 (en) * 2005-05-13 2009-12-15 Microsoft Corporation Data model and schema evolution
US7895578B2 (en) * 2005-06-13 2011-02-22 Business Objects Software Ltd. Apparatus and method for using connector components to provide connectivity to interactive graphics representative of input and output data
US7953696B2 (en) * 2005-09-09 2011-05-31 Microsoft Corporation Real-time synchronization of XML data between applications
CN100399335C (zh) * 2005-11-15 2008-07-02 李利鹏 把源文档转换成目标网页文件的方法
KR20070056442A (ko) * 2005-11-29 2007-06-04 삼성전자주식회사 웹 브라우저가 없는 장치를 위한 웹 서비스 제공 시스템 및방법
KR100825736B1 (ko) * 2005-12-07 2008-04-29 한국전자통신연구원 무선 xml 전자 서명 서비스 제공 장치 및 그 방법
CN1859379B (zh) * 2005-12-07 2011-02-09 华为技术有限公司 一种可扩展标记语言文档管理方法及系统
CN1859402B (zh) * 2006-02-10 2010-05-12 华为技术有限公司 Xml文档管理系统及其方法与xml文档访问控制方法
WO2007090332A1 (en) 2006-02-10 2007-08-16 Huawei Technologies Co. , Ltd. A method and system for managing xml document
US20070255714A1 (en) * 2006-05-01 2007-11-01 Nokia Corporation XML document permission control with delegation and multiple user identifications
KR101346734B1 (ko) * 2006-05-12 2014-01-03 삼성전자주식회사 디지털 저작권 관리를 위한 다중 인증서 철회 목록 지원방법 및 장치
US20070288471A1 (en) * 2006-06-09 2007-12-13 Nextair Corporation Remote storage of a markup language document for access by sets of wireless computing devices
US20080046431A1 (en) * 2006-08-15 2008-02-21 Mcgough John David Document processing method
US8037179B2 (en) * 2006-11-02 2011-10-11 Storz Endoskop Produktions Gmbh Device control system employing extensible markup language for defining information resources
US9953103B2 (en) * 2006-11-16 2018-04-24 Oracle International Corporation Client processing for binary XML in a database system
US7886223B2 (en) * 2006-11-17 2011-02-08 International Business Machines Corporation Generating a statistical tree for encoding/decoding an XML document
US7801926B2 (en) 2006-11-22 2010-09-21 Microsoft Corporation Programmable logic and constraints for a dynamically typed storage system
JP4898405B2 (ja) * 2006-12-01 2012-03-14 キヤノン株式会社 文書データ処理方法、文書データ作成装置、及び文書データ処理装置
US8832822B2 (en) * 2007-01-19 2014-09-09 Kryptiq Corporation Smart identifiers
US20080208805A1 (en) * 2007-02-28 2008-08-28 Business Objects, S.A. Apparatus and method for remote querying of data sources
JP5032154B2 (ja) * 2007-03-02 2012-09-26 株式会社東芝 過渡時燃料健全性評価システムおよび過渡時燃料健全性評価方法
US7917515B1 (en) * 2007-03-26 2011-03-29 Lsi Corporation System and method of accelerating processing of streaming data
US8595616B2 (en) * 2007-05-31 2013-11-26 Bank Of America Corporation Data conversion environment
US7933933B2 (en) * 2007-07-30 2011-04-26 Oracle International Corporation Fast path loading of XML data
US20090063530A1 (en) * 2007-09-04 2009-03-05 Lg Telecom Ltd. System and method for mobile web service
KR101424261B1 (ko) * 2007-09-04 2014-07-31 주식회사 엘지유플러스 모바일 웹 서비스를 제공하는 단말기 및 상기 단말기의동작 방법
FR2927711B1 (fr) * 2008-02-19 2010-10-08 B2Boost Com Dispositif d'echange de documents entre deux parties a travers un reseau
US8145608B2 (en) * 2008-04-28 2012-03-27 Infosys Technologies Limited Method and system for rapidly processing and transporting large XML files
US7925643B2 (en) * 2008-06-08 2011-04-12 International Business Machines Corporation Encoding and decoding of XML document using statistical tree representing XSD defining XML document
KR101842209B1 (ko) * 2008-06-18 2018-03-26 톰슨 라이센싱 디지털 문서의 디스플레이와 상기 문서 내에서의 네비게이션을 위해 상기 문서를 준비하는 모바일 디바이스
CN101668000B (zh) * 2008-09-04 2012-11-07 易搜比控股公司 于网络浏览器驱动可扩展标示语言应用程序的方法与系统
CN101902489B (zh) * 2009-06-01 2013-04-17 华为技术有限公司 一种消息发送方法、处理方法、客户端、路由器和系统
US20110093510A1 (en) * 2009-10-20 2011-04-21 Roche Diagnostics Operations, Inc. Methods and systems for serially transmitting records in xml format
US8676966B2 (en) * 2009-12-28 2014-03-18 International Business Machines Corporation Detecting and monitoring server side states during web application scanning
US9165086B2 (en) * 2010-01-20 2015-10-20 Oracle International Corporation Hybrid binary XML storage model for efficient XML processing
US9524513B2 (en) 2010-03-02 2016-12-20 Obelus Media Inc. System and method of advertising for use on internet and/or digital networking capable devices
US8566817B2 (en) * 2010-03-02 2013-10-22 Obelus Media Inc. System and method of advertising for use on internet and/or digital networking capable devices
US9356991B2 (en) * 2010-05-10 2016-05-31 Litera Technology Llc Systems and methods for a bidirectional multi-function communication module
US20120005610A1 (en) * 2010-06-30 2012-01-05 Dirk Michael Schulze Methods, apparatus, systems and computer readable mediums for use in transfering information to and/or from user devices
US8516362B2 (en) * 2010-09-14 2013-08-20 Usablenet Inc. Methods for extending a document transformation server to process multiple documents from multiple sites and devices thereof
US8856540B1 (en) * 2010-12-29 2014-10-07 Amazon Technologies, Inc. Customized ID generation
US10120847B2 (en) * 2012-01-27 2018-11-06 Usablenet Inc. Methods for transforming requests for web content and devices thereof
WO2014120940A1 (en) * 2013-01-30 2014-08-07 Dejene Kebron Video signature system and method
US10616376B2 (en) * 2016-07-20 2020-04-07 Vivint, Inc. Communications protocol
CN107977236B (zh) * 2017-12-21 2020-11-13 上海智臻智能网络科技股份有限公司 问答系统的生成方法、终端设备、存储介质及问答系统
US11144568B2 (en) * 2019-04-24 2021-10-12 EMC IP Holding Company LLC System and method for management of data in distributed systems
US11893818B2 (en) 2021-07-21 2024-02-06 Abbyy Development Inc. Optimization and use of codebooks for document analysis

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05204800A (ja) * 1992-01-30 1993-08-13 Matsushita Electric Ind Co Ltd データ通信装置
JP3325354B2 (ja) * 1993-09-07 2002-09-17 株式会社リコー 感熱製版装置
US5544320A (en) * 1993-01-08 1996-08-06 Konrad; Allan M. Remote information service access system based on a client-server-service model
JPH07244620A (ja) * 1994-03-04 1995-09-19 Hitachi Inf Syst Ltd コンソールメッセージの伝送方法およびそのためのシステム
JPH08190544A (ja) * 1995-01-10 1996-07-23 Mitsubishi Electric Corp 分散処理システム
US5724556A (en) * 1995-04-14 1998-03-03 Oracle Corporation Method and apparatus for defining and configuring modules of data objects and programs in a distributed computer system
US5706434A (en) * 1995-07-06 1998-01-06 Electric Classifieds, Inc. Integrated request-response system and method generating responses to request objects formatted according to various communication protocols
US5987181A (en) * 1995-10-12 1999-11-16 Sharp Kabushiki Kaisha Coding and decoding apparatus which transmits and receives tool information for constructing decoding scheme
JP3306270B2 (ja) * 1995-10-12 2002-07-24 シャープ株式会社 データ復号装置
US5918013A (en) * 1996-06-03 1999-06-29 Webtv Networks, Inc. Method of transcoding documents in a network environment using a proxy server
US5768510A (en) * 1996-07-01 1998-06-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server application enabler system
WO1998041377A1 (en) 1997-03-20 1998-09-24 Toter Incorporated Continuous mold temperature monitoring system and method for rotational mold
US6421733B1 (en) * 1997-03-25 2002-07-16 Intel Corporation System for dynamically transcoding data transmitted between computers
US6081629A (en) * 1997-09-17 2000-06-27 Browning; Denton R. Handheld scanner and accompanying remote access agent
JP3337633B2 (ja) * 1997-12-03 2002-10-21 富士通株式会社 データ圧縮方法及びデータ復元方法並びにデータ圧縮プログラム又はデータ復元プログラムを記録したコンピュータ読み取り可能な記録媒体
EP0928070A3 (en) * 1997-12-29 2000-11-08 Phone.Com Inc. Compression of documents with markup language that preserves syntactical structure
JPH11272655A (ja) * 1998-03-20 1999-10-08 Nippon Telegr & Teleph Corp <Ntt> 日本語多重表記文書変換方法及び装置及び日本語多重表記文書変換プログラムを格納した記憶媒体
US20020087655A1 (en) * 1999-01-27 2002-07-04 Thomas E. Bridgman Information system for mobile users
US6647260B2 (en) * 1999-04-09 2003-11-11 Openwave Systems Inc. Method and system facilitating web based provisioning of two-way mobile communications devices
US6523062B1 (en) * 1999-06-29 2003-02-18 International Business Machines Corporation Facilitating memory constrained client devices by employing deck reduction techniques
JP2001084183A (ja) * 1999-09-17 2001-03-30 Nec Corp データ変換システム
US7020685B1 (en) * 1999-10-08 2006-03-28 Openwave Systems Inc. Method and apparatus for providing internet content to SMS-based wireless devices
US6715129B1 (en) * 1999-10-13 2004-03-30 International Business Machines Corporation Achieving application-specific document content by transcoding using Java Server Pages
GB9925613D0 (en) * 1999-10-29 1999-12-29 Motorola Ltd Mobile station radio telecommunication system and method for operation radio telecommunication system
JP3368883B2 (ja) * 2000-02-04 2003-01-20 インターナショナル・ビジネス・マシーンズ・コーポレーション データ圧縮装置、データベースシステム、データ通信システム、データ圧縮方法、記憶媒体及びプログラム伝送装置
JP3642004B2 (ja) * 2000-05-22 2005-04-27 日本電気株式会社 中継装置、移動体無線通信システム、その障害通知方法、及びその障害通知プログラムを記録した記録媒体
US7069440B2 (en) * 2000-06-09 2006-06-27 Northrop Grumman Corporation Technique for obtaining a single sign-on certificate from a foreign PKI system using an existing strong authentication PKI system
US20020120780A1 (en) * 2000-07-11 2002-08-29 Sony Corporation Two-staged mapping for application specific markup and binary encoding
WO2002015519A2 (en) * 2000-08-17 2002-02-21 Mobileum, Inc. Method and system for wireless voice channel/data channel integration
TW512640B (en) * 2000-08-25 2002-12-01 Phone Inc W Mobile opinion polling system and method
US6985719B2 (en) * 2000-12-21 2006-01-10 Nokia, Inc. Secure wireless backup mechanism
US20020087596A1 (en) * 2000-12-29 2002-07-04 Steve Lewontin Compact tree representation of markup languages
US6988100B2 (en) * 2001-02-01 2006-01-17 International Business Machines Corporation Method and system for extending the performance of a web crawler
US7020721B1 (en) * 2001-04-02 2006-03-28 Palmsource, Inc. Extensible transcoder annotation for transcoding proxy servers
US6934912B2 (en) * 2001-06-04 2005-08-23 Hewlett-Packard Development Company, L.P. System and method for providing a history list of existing imaging compositions
US20020198964A1 (en) * 2001-06-26 2002-12-26 International Business Machines Corporation Method and system for wireless remote monitoring and control of a manufacturing execution system
KR20010088529A (ko) * 2001-08-02 2001-09-28 정회경 전자문서 편집/변환처리장치와 그 방법
US6880014B2 (en) * 2001-09-24 2005-04-12 International Business Machines Corporation Method and system of use of transcode directives for distributed control of transcoding servers
US6944665B2 (en) * 2001-09-24 2005-09-13 International Business Machines Corporation Method and system for delivering accessibility using a distributed environment
US6711740B1 (en) * 2002-01-17 2004-03-23 Cisco Technology, Inc. Generic code book compression for XML based application programming interfaces
US20040150676A1 (en) * 2002-03-25 2004-08-05 Gottfurcht Elliot A. Apparatus and method for simple wide-area network navigation
US6978316B2 (en) * 2002-03-27 2005-12-20 International Business Machines Corporation Messaging system and method with transcoder filtering of baseline message representations
US6895719B1 (en) * 2002-08-22 2005-05-24 Mark S. Herbert Floor-mounted disposable system with moveable dust loosening rib insert
US7570943B2 (en) * 2002-08-29 2009-08-04 Nokia Corporation System and method for providing context sensitive recommendations to digital services
KR100463835B1 (ko) * 2002-10-17 2004-12-29 한국전자통신연구원 무선 단말기에서의 웹 컨텐츠 변환을 위한 인덱스 추출시스템 및 그 방법
US20040203939A1 (en) * 2002-11-07 2004-10-14 Wei Li Character transcoding method for mobile phones

Also Published As

Publication number Publication date
ATE431593T1 (de) 2009-05-15
KR101026210B1 (ko) 2011-03-31
US7636565B2 (en) 2009-12-22
WO2003046757A2 (en) 2003-06-05
CA2467782A1 (en) 2003-06-05
AU2002342483A1 (en) 2003-06-10
US20100057888A1 (en) 2010-03-04
EP1451719B1 (en) 2009-05-13
JP2005510804A (ja) 2005-04-21
EP2031525B1 (en) 2015-01-28
US8010097B2 (en) 2011-08-30
KR20040066134A (ko) 2004-07-23
MXPA04004909A (es) 2004-09-03
EP2031525A1 (en) 2009-03-04
EP1451719A2 (en) 2004-09-01
JP4286143B2 (ja) 2009-06-24
US7904073B2 (en) 2011-03-08
HK1069895A1 (en) 2005-08-26
ES2326073T3 (es) 2009-09-30
US20100050072A1 (en) 2010-02-25
WO2003046757A3 (en) 2004-03-25
CN100390787C (zh) 2008-05-28
JP2008269631A (ja) 2008-11-06
US20050014494A1 (en) 2005-01-20
DE60232359D1 (de) 2009-06-25
CN1618066A (zh) 2005-05-18
CA2467782C (en) 2011-05-10

Similar Documents

Publication Publication Date Title
KR101026210B1 (ko) 확장가능 마크업 언어 문서를 처리하는 시스템 및 방법
US7908317B2 (en) System and method for URL compression
US7730154B2 (en) Method and system for fragment linking and fragment caching
US7987239B2 (en) Method and system for caching role-specific fragments
US8032586B2 (en) Method and system for caching message fragments using an expansion attribute in a fragment link tag
JP4323516B2 (ja) 情報アクセスに関するシステム及び方法
US20140052811A1 (en) Dynamic content assembly on edge-of network servers in a content delivery network
US20060200503A1 (en) Modifying back-end web server documents at an intermediary server using directives
US7587515B2 (en) Method and system for restrictive caching of user-specific fragments limited to a fragment cache closest to a user
US7305626B2 (en) Method and apparatus for DOM filtering in UAProf or CC/PP profiles
US20040255005A1 (en) Web server resident on a mobile computing device
CA2513016A1 (en) A secure method of synchronizing cache contents of a mobile browser with a proxy server
US20020184370A1 (en) System and method for providing links to available services over a network
JP2003141002A (ja) Url長変換システム及びそのプログラム
Law XML on LDAP network database
Tsai Device Profiling Analysis in Device-Aware Network
Specification Version 10-Nov-1999
Gibbins The Architecture of the World Wide Web
Gu Ubiquitous Web caching
Specification WAP-174_100-UAPROF
Abou‐Rizk Protocols for the Web and the Mobile Internet

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20090706

Effective date: 20110823

WITB Written withdrawal of application