JP2006216024A - 交換フォーマットメッセージの効率的な変換 - Google Patents

交換フォーマットメッセージの効率的な変換 Download PDF

Info

Publication number
JP2006216024A
JP2006216024A JP2006005191A JP2006005191A JP2006216024A JP 2006216024 A JP2006216024 A JP 2006216024A JP 2006005191 A JP2006005191 A JP 2006005191A JP 2006005191 A JP2006005191 A JP 2006005191A JP 2006216024 A JP2006216024 A JP 2006216024A
Authority
JP
Japan
Prior art keywords
message
units
converted
computer system
initial set
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2006005191A
Other languages
English (en)
Inventor
Douglas A Walter
エー.ウォルター ダグラス
Giovanni Della-Libera
デラ−リベラ ジョヴァンニ
Vaithiakingam B Balayoghan
ビー.バラヨガン バイシアリンガム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2006216024A publication Critical patent/JP2006216024A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/84Mapping; Conversion
    • G06F16/88Mark-up to mark-up conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】交換フォーマットメッセージに効率的な変換を提供すること。
【解決手段】コンピュータ化されたシステムにおいて、送信側コンピュータシステムと受信側コンピュータシステムが、リソース効率の良いやり方で交換フォーマットメッセージを交換する。例えば、送信側コンピュータシステムにおける変換ライタは、メッセージの複数のユニットのうち1つまたは少数だけを一度に選択し変換する。変換されたメッセージユニットは、次いで、例えばXMLメッセージの場合には正規化基準などの、該当する変換基準に従って、受信側コンピュータシステムにストリームされる。受信側コンピュータシステムにおける変換リーダは、受け取られたメッセージユニットに対して充分に大きなバッファを使用してメッセージを変換し、変換したユニットをファイルに渡す。したがって、変換ライタは、メッセージを渡すためのストリームライタの役割をし、変換リーダは、受信側コンピュータシステムにおけるストリームリーダの役割をする。
【選択図】図1

Description

本発明は、送信側と受信側の間で効率的にXMLメッセージなどの交換ファイルフォーマットメッセージを変換するためのシステム、方法、およびコンピュータプログラム製品に関する。
XMLなどの交換ファイルフォーマットは、様々なコンピューティングプラットフォームにわたってデータの閲覧または表示をすることができるオプションも理由となって、ますます普及しつつある。いくつかの異なるタイプの交換フォーマットファイルがあり、それらの一部は、画像データに適合し、他のいくつかは音に適合し、さらに他のいくつかは一般のテキストに適合している。いずれにしても、交換データフォーマットは、複雑さの低いインスタントメッセージ交換から、複雑さの高いセキュアな電子商取引交換まで及ぶ、幅広いデータ交換に共通して使用される。
一般に、交換データフォーマットは、適切なリーダを用いて任意のコンピューティングプラットフォームによって仮想的に読み取ることができる、XMLにおける名前空間コードなど一連の要素およびコードを含む。例えば、交換フォーマットで表されるファイルは、そのファイルが交換フォーマットファイルであることを示す1つまたは複数の要素、ならびに、メッセージのファイルのタイプ(すなわち、テキスト、オーディオ、ビデオなど)を示す識別子を含むことができる。交換フォーマットのタイプは、与えられたメッセージに関連するいくつかの可視プロパティおよび隠しプロパティを示すファイル内の特定のコードを指定することもできる。例えば、ドキュメントに関連する可視プロパティは、いくつかのタイプのテキストがどのように表示されるかについての、例えば、色、フォントサイズ、および配列などに関係することがある情報を含むことができる。一方、隠れプロパティは、ドキュメントを作成したエンティティ、ドキュメントを表示することを目的とするエンティティ、およびセキュリティ情報などを含むことができる。
送信側と受信側の間で期待されるように、送信され受信されて表示されるドキュメントに関して、送信側は、たいてい、該当する交換フォーマットに適切なメッセージ全体を変換する。次いで、受信側が特定の交換フォーマットを読み取る能力があることが想定されるとき、受信側は、ファイルを受け取り次第読み取る。XMLなどの交換フォーマットとともにしばしば使用される1つのタイプの変換方法は、「正規化(canonicalization)」と呼ばれ、重要でない差異を除去または最小限にするために、メッセージまたはメッセージユニットが正規形に縮減されるように変換する。例えば、XMLメッセージユニットの事例では、正規化規則は、レンダリングのための名前空間選択、改行正規化(linefeed normalization)、文字変換、および内部コマンドの範囲などに対する特有の規則を含む。
遺憾なことに、いくつかの通信モードは、不意に介在する変更に対して他のモードより敏感であり、その結果、所期の受信者が、メッセージを適切に見ることに失敗する、あるいは第1のインスタンスでメッセージを受け取ることになる。例えば、高度なセキュリティの実装において、少量の変動で変換されるまたは一方の終端で一致しないデータは、所期の受信者によって適切に見るまたは受け取ることができず、あるいは第1のインスタンスで変換することさえできない。同様に、送信側で適切に変換することができない高度なセキュリティデータは、許容される方法で発生しうる移行中のデータの変更のため、やはり受信側で適切に受け取ることができない。
したがって、正確で一貫した変換方法は、交換フォーマットデータ転送、特にセキュア通信などの敏感な分野でますます重要となる。遺憾なことに、少なくとも部分的には、メッセージを適切に変換するために必要な措置に起因して、変換方法は、コンピュータ制御システムの処理の費用のかかる側面を構成しうる。
例えば、メッセージが送られる前にメッセージを変換しようとするときに、メッセージ全体のサイズに比例したサイズでバッファが作成される。次いで、メッセージ全体の表現が、バッファにロードされ、そのメッセージ表現のためのリーダおよびライタが作成される。XMLメッセージの事例では、メッセージ表現は、ドキュメントオブジェクトモデル(「DOM」)コンポーネントにロードすることもでき、このコンポーネントは、メッセージの各要素をバッファ内に読み取り、続いて、単一の変換された出力としてメッセージを書き出す。いずれにしても、次いで、変換された出力は、受信側に送られる。
この手法に関する少なくとも1つの問題は、メッセージ全体を読み取るために充分な大きさのバッファ、および、変換されたメッセージ全体を受け取るために充分な大きさのバッファを作成する必要があることである。いくつかの事例では、メッセージが受信側に送られる前に、あるいは、メッセージが受け取られた後に受信側のコンピュータシステムにおいて、1つまたは複数のバッファが、メッセージ全体の変換されたバージョンと非変換のバージョンの両方に割り当てられる。特に、より大きいギガバイトの規模に及びうるメッセージについては、このようなバッファの割当ては、多数の要求を取り扱うコンピュータ化されたシステムの処理およびメモリリソースに大きな負担をかけるおそれがある。送信側コンピュータシステムは、通常、その書出し可能な速度よりかなり遅く読取りをするが、送信プロセスのために読取りおよび書込み機能の両方を実装するため、いくつかの事例では、上記および他の同様の問題は、さらに悪化する。
同様の複雑な問題を有する逆のプロセスが、受信側で行われる。具体的には、受信側コンピュータシステムは、送信側から一度に小さなかたまりのメッセージしか受け取らなくても、一般に、メッセージ全体に対して充分に大きなバッファを割り当てる必要がある。いくつかの事例では、受信側コンピュータシステムは、重複したバッファスペースを割り当てることもあり、したがって、受け取るメッセージ全体について変換されたバージョンと変換されないバージョンに対するバッファが存在する。さらに、受信コンピュータシステムは、メッセージの要素の読取りおよび書出しに加え、変換されたメッセージをバッファ内にロードする追加のリソースを消費する必要がある。受信側コンピュータシステムでは、送信側コンピュータシステムと同様だが逆の問題があり、一般に、読取りよりもかなり低速で書出しが行われる。したがって、いくつかの大きなバッファの割当てと、送信側と受信側の両方のコンピュータシステムについての読取と書出しの両方の処理機能の作成は、処理リソースおよびメモリリソースに対するかなりの負担を意味する。
したがって、送信および受信側の両方で交換フォーマットデータの効率的変換を提供するシステム、方法、およびコンピュータプログラム製品によって、当技術分野における利点を実現することができる。特に、それぞれのメッセージ全体をメモリに読み込むことなくデータを変換する方法は、当技術分野における利点となる。さらに、送信側コンピュータシステムまたは受信側コンピュータシステムの相対的強みを利用する、データ変換方法が、当技術分野における利点となる。
本発明は、上記の従来技術における問題の1つまたは複数を、交換フォーマットメッセージを効率的に変換するように構成されたシステム、方法、およびコンピュータプログラム製品によって解決する。特に、本発明の実装形態は、一態様では、メッセージ全体を変換し送信する前に、割り当てられたバッファにメッセージ全体を読み込むのではなく、交換メッセージユニット(例えば、正規化されたメッセージユニット)を、データストリームの離散コンポーネントに変換することに関する。
例えば、本発明の一実装形態による、送信側コンピュータの側からのメッセージを変換する方法は、複数の異なるメッセージユニットを含む交換フォーマットメッセージにアクセスすることを含む。一実装形態では、送信側コンピュータシステムにおける変換ライタが、1つまたは複数のメッセージユニットの初期セットをメッセージから選択し、変換基準に基づいて初期セットを変換する。次いで、変換ライタは、そのメッセージから1つまたは複数のユニットの次の異なるセットを選択し、基準に基づいて次のセットを変換する。それらのユニットが選択され処理されるとき、変換されたメッセージユニット(および、適切な場合は対応するダイジェスト)もまた、出力のためにユニットの変換されたセットを渡す。このように、交換メッセージは、一度に単一または少数のユニットごとに変換され、その結果、少なくともバッファの割当てならびに他のシステムリソースを、大幅に節約することができる。さらに、送信側コンピュータシステムは、交換フォーマットデータの書出しを主にするように構成され、それが、送信側コンピュータシステムの機能的利点の役割をする。
受信側コンピュータから見て、受信され変換されたメッセージユニットを変換する方法は、メッセージの1つまたは複数の変換されたユニットの初期セットをメモリに受け取ることを含む。ユニットの初期セットは、メッセージ内のすべてのユニットより少数のユニットであり、したがって、割り当てられたメモリは、メッセージ全体あるいは該当する場合はメッセージ全体とそれに伴うダイジェストを受け取るのではなく、単にユニットの初期セットを受け取るために充分な大きさがあればよい。次いで、受信側コンピュータシステムは、受け取った変換されたユニットの初期セットを、適切な変換基準に基づいて変換し、交換フォーマットメッセージの対応する初期部分をファイルに渡す。次いで、受信コンピュータシステムは、交換フォーマットメッセージの1つまたは複数の変換されたユニットの後続のセットをメモリ内に受け取り、この後続セットを変換し、それをファイルに渡す。したがって、受信側コンピュータシステムは、受信側コンピュータシステムの機能的利点の役割をする交換フォーマットデータの読取りを主に行うように構成される。
本発明の例示的実装形態のさらなる特徴および利点は、以下の説明に示され、部分的にはその説明から明瞭となり、あるいは、その例示的実装形態を実施することによって理解されうる。このような実施形態の特徴および利点は、添付の特許請求の範囲で詳細に示される手段および組合せによって理解し獲得することができる。上記および他の特徴は、以下の説明および添付の特許請求の範囲から、より完全に明らかにされ、あるいは、以下に示す例示的実装形態の実施によって理解されうる。
本発明の上記および他の利点を得ることができる方法を説明するために、添付の図面に示される本発明の特定の実施形態を参照することにより、上記で簡潔に説明した本発明のより詳細な説明を与える。これらの図面は、本発明の一般的な実施形態のみを示し、したがって本発明の範囲を限定するとは見なされないという理解のもとで、添付の図面を使用して、本発明は追加の特性および詳細とともに記述し説明される。
本発明は、交換フォーマットメッセージを効率的に変換するように構成されたシステム、方法、およびコンピュータプログラム製品に及ぶ。特に、本発明の実装形態は、一態様では、割り当てられたバッファにメッセージ全体を読み込むのではなく、交換メッセージユニット(例えば、正規化されたメッセージユニット)を、データストリームの離散コンポーネントに変換することに関する。
本明細書および特許請求の範囲から理解されるように、本発明の一態様は、1つまたは複数のメッセージユニットを対応するシステムに変換するなどのように、一度にメッセージの数ビットのみをストリームに変換することを含む。一般に、要約が、変換プロセスと結合され、したがって、メッセージの選択されたユニットごとに再使用することができるとき、種々の変換コンポーネントに対して、メッセージ全体のサイズと独立して比較的小さいバッファのみが変換ライタによって割り振られることが必要となりうる。次いで、各メッセージユニットは、単純に、変換され、ストリームアキュムレータ(stream accumulator)などに渡され直接出力される。
本発明の他の態様では、変換されたメッセージユニットは、変換された後すぐに受信側に送られ、事例によっては、変換、要約、および署名がされた後すぐに受信側に送られる。本発明のさらに他の態様では、受信者がストリームされたメッセージユニットを受け取るように構成されていない場合、変換されたユニットを、受信側に送る前に他のバッファにさらに蓄積することができる。したがって、大きなメッセージに対して大きなバッファを必ずしも作成する必要なしに、メッセージを選択し、変換し、受信側に送ることができる様々な方法が存在する。
受信側では、受信側コンピュータシステムが、ストリームとして受信される変換されたユニットを受け取り、次いで、変換されたユニットを処理する。本発明の一態様では、受信側コンピュータシステムは、個々のユニットごとにバッファを使用し、そのバッファは、同じバッファであっても異なるバッファであってもよいが、いずれにしてもメッセージ内のすべてのユニットを保持するために必要なサイズより小さい。本発明の他の態様では、受信側コンピュータシステムは、変換されたユニットを、正規化コンポーネントに直接読み取り、次いで、そのユニットを、ストレージ内のファイルなどのアプリケーションまたはファイルに渡す。本発明のさらに他の態様では、受信側コンピュータシステムは、送信側コンピュータシステムで要約された、変換されたユニットを要約し、それぞれのダイジェストを比較する。
例えば、図1は、1つまたは複数のユニット110、115、および120を有する交換フォーマットメッセージ105が、変換され、送信側コンピュータシステム100から受信側コンピュータシステム155に送られる概要のブロック図を示す。一般に、メッセージ105は、XML、HTML、GIF、WAV、または他のタイプの任意の交換フォーマットを有するが、ここでは、XMLメッセージをしばしば参照する。少なくとも1つの実装形態では、メッセージ105のユニット(110、115、120)は、XMLやHTMLドキュメントにおけるようなネストされた要素を一般に意味するものとして理解されたい。このような各ユニットそれぞれはまた、一般に、例えばXMLでは要素型および属性名としてのURI参照によって識別される名前の集合を表す1つまたは複数の名前空間を含む。とはいえ、XMLにおける「名前空間」は、時として他の交換フォーマットに比べて独自の意味を有することがある。しがしながら、他のファイルフォーマットにおける同様のデータ構造に、本明細書に記載の同様の取り扱いを適用できることは理解されよう。
本発明に従って、送信側100が、メッセージ105を受信側155に送る場合、送信側100の変換ライタ125は、一度に単一または少数のメッセージユニット(すなわち、ユニットの初期または後続のセット)のみを選択する。一般に、変換ライタ125は、アプリケーションに関連付けられたプログラムクラスなどのコンピュータ実行可能命令のセットとして理解されよう。図1に示されるように、例えば、変換ライタ125は、メッセージ105にアクセスし、一連の間隔で、メッセージユニット110を選択し、次いでメッセージユニット115を選択し、その次にメッセージユニット120を選択し、以下同様に行う。
少なくとも一つの実装形態では、変換ライタ125は、メッセージ105全体のサイズとは独立しているが、予め定められた量のメッセージ選択に対して充分なサイズのバッファメモリを割り当てる。例えば、変換ライタ125が、アクセスされたメッセージから一度に100バイトを選択することが適切であると決定した場合、バッファは、およそ100バイトかそれより少し大きければよい。次いで、割り当てられたバッファは、選択されたメッセージユニットごとに再使用することができ、選択された各メッセージユニットは、およそ100バイトもしくは少なくとも割り当てられたバッファのパラメータサイズの範囲内となり、したがって、割り当てられたバッファに収まる。選択物のサイズについては、処理に使用可能なリソースや接続帯域幅などいくつかのファクタに基づくことが可能である。したがって、変換ライタ125は、変換され送信される必要のあるメッセージごとに、処理およびメモリリソースを必ずしも調整する必要なしに、任意の時点で適切なメモリおよび処理リソースを効率的に使用することができる。
与えられたユニット、例えばユニット110を選択後、変換ライタ125は、メッセージ内のXML属性を識別し管理する、属性マネージャ123と対話する。変換ライタ125はまた、追跡エンジン130と対話する。追跡エンジン130は、XMLメッセージの事例ではドキュメントオブジェクトモデル(「DOM」)を使用せずに、与えられたユニットごとに名前空間(図示せず)を管理する。一般に、各ユニット110、115、120は、最終的にシステムアキュムレータ150内に表現される、1つまたは複数の名前空間を有することになる。ただし、先行のユニットにおける同一の名前空間が、既にレンダリングされている場合があるため、与えられたユニットのすべての名前空間が、直ちに必要とされるわけではなく、あるいは、レンダリングされる必要が生じるわけではない。したがって、追跡エンジン130は、レンダリングすべき名前空間、および/または、適切な変換プロトコルにおいてレンダリングされないが使用可能な名前空間を、識別するように構成される。
説明のため、名前空間がレンダリングされるかどうかは、変換プロトコルに応じている。例えば、XML正規化は、通常、「排他的(exclusive)」と「包含的(inclusive)」の2つのバージョンを含む。「排他的正規化(exclusive canonicalization)」では、名前空間は、それが直ちに利用され、かつ認識できる先祖のコンテキスト(ancestral context)で既にレンダリングされていない場合のみ、レンダリングされる。これは、「包含的プレフィックスリスト(inclusive prefixes list)」によって洗練することができ、このリストにより、名前空間が直ちに使用されない場合でも、既にレンダリングされてはいない場合、名前空間がレンダリングされるようになる。
いずれにしても、選択されたユニット(例えばユニット110)は、次いで、正規化コンポーネント135に渡され、正規化コンポーネント135は、変換基準に基づいてそのユニットを変換する。例えば、変換基準として正規化を用いる場合、正規化コンポーネント135は、c14n正規化基準に従って、ユニット110を変換することができる。一般に、変換基準は、特定の交換フォーマットを読み取ることが意図される任意のオペレーティングシステムによって読み取ることができるユニバーサルな可読フォーマットで、テキストファイルの文字列や文字などのデータを送る方法を規定する。例えば、正規化基準は、「foo」などの文字列がそのままで渡され、「<」などの文字が「<」として出力で表現されうることを指示することができる。
セキュア交換メッセージについて、送信ライタ125は、1つまたは複数のユニットを選択するステップと、選択された各ユニットの所期の送信および受信が効果的に行われることが保証されるように1つまたは複数のユニットを変換するステップとを追加して実行することができる。例えば、メッセージ105が、セキュアメッセージの場合、メッセージ内の1つまたは複数の部分またはユニットにおいてメッセージヘッダなどに識別子を有するが、残りの他の各ユニットにおいては必ずしも識別子を有していない。通常、メッセージ105の少数の部分に識別子を有するだけで、従来の変換プロトコルを使用する場合には充分である。
しかし、本発明の実装形態では、別個に各ユニットを受信者に渡すことを伴うため、変換ライタ125は、セキュアメッセージのすべてのユニットがそれぞれ関連する識別子を有するようにデジタルで署名されることを保証する必要がありうる。したがって、変換ライタ125は、セキュアメッセージの、メッセージヘッダを表すユニットなど個々のユニットをスキャンして、各ユニットが識別子を有するかどうかを検出することができる。ユニットが、セキュアメッセージの一部分であるが関連する識別子を含まない場合、変換ライタ125は、識別子をそのユニット内に挿入することができる。少なくとも1つの実装形態において、変換ライタ125は、識別子をスキャンするステップと、識別子を挿入するステップと、ユニットの単一パスにおいてユニットを変換するステップとを実行する。
変換されたメッセージユニットは、次いで、例えば、受信側コンピュータシステム155との接続によって開始したストリームソケットに直接送信され、ストリームアキュムレータ150に直接送信される。他の事例では、特にセキュアメッセージについて、変換されたユニットは、ハッシュアキュムレータ(hash accumulator)145に渡され、ハッシュアキュムレータ145は、エラー検出のために、ユニットごとに対応するダイジェスト157を作成し、次いで、生のオクテット153とそれに対応するダイジェスト157を対として出力を渡す。他の事例では、例えば、受信者155が、個々のメッセージユニットのストリームを受け取るように構成されていない場合、「メッセージ蓄積(Accumulate Message)」コンポーネント140にメッセージをバッファすることもできる。
そのような状況においても、この実装形態では、変換ライタ125がメッセージ105を最初に選択したとき、同様のサイズにされたバッファは、第1のインスタンスに同様に作成する必要はないため、効率利得を実現することができる。次いで、蓄積されたメッセージを、ストリームアキュムレータ150に直接渡すことができ、あるいは、ハッシュアキュムレータ145に渡し、それからダイジェストと対でストリームアキュムレータ150に渡すことができる。しかし、出力に送られると、その結果の生のオクテット153は、受信側コンピュータシステム155の入力160にストリームされる。一実装形態では、データストリームは、連続した20バイトのチャンクのデータを含む。
次に、受信側コンピュータシステム155を参照すると、データのストリームを、変換リーダ165を介してメッセージ105の対応する表現に読み込むとき、逆の順序の機能が実行される。変換リーダ165は、変換ライタ125と同様に、アプリケーションプログラムと関連付けられたプログラムクラスなどの1組のコンピュータ実行可能命令である。受信側コンピュータシステム155は、変換されたユニットまたはユニットのセット(例えば、変換されたユニット110)を受け取るとき、受信側コンピュータシステムにおける変換リーダ165は、バッファ(図示せず)を割り当てるが、そのバッファは、通常、受け取った各変換されたユニットに対して充分なサイズであるが、メッセージ105全体に対して充分な大きさのサイズではない。したがって、受信側コンピュータシステム155は、割り当てられたバッファを簡単に再使用することができ、したがって、追加の着信メッセージユニットごとに、新しいバッファを必ずしも作成する必要がない。一実装形態では、特に大きなメッセージに関する場合、これにより、かなりのメモリ空間および処理の節約となりうる。
受信側コンピュータシステム155の変換リーダ165は、処理用の適切な1つまたは複数のコンポーネントまたはモジュールを介して、受信した変換されたユニットを渡すこともできる。例えば、受信側コンピュータシステム155は、ダイジェストと関連付けられていないような一般的な変換されたユニットを受け取り、変換リーダ165は、入力160から変換されたユニットを受け取って正規化コンポーネント135に渡す。あるいは、XMLメッセージなどの事例では、受け取った変換ユニットにダイジェストが含まれるとき、受信側コンピュータシステム155の正規化コンポーネント135が、受け取ったデータを、受信側コンピュータシステム155のハッシュアキュムレータ145に渡し、ハッシュアキュムレータ145が、変換されたユニット上の他のダイジェスト170を計算する。次いで、送信側コンピュータシステム100から受け取ったダイジェスト157が、計算されたダイジェスト170と比較される。この2つのダイジェストが一致した場合、受信側コンピュータシステム155の正規化コンポーネント135は、正規化基準に基づいて、変換されたユニットを変換し、そのユニットが対応するファイルに渡される。
XMLメッセージの事例では、変換リーダ165は、属性マネージャ123によって、着信メッセージユニットの属性を管理することもできる。変換リーダ165は、さらに、受信側コンピュータシステムの追跡エンジン130と同様の名前空間の追跡機能を実行し、名前空間をレンダリングするかそれともレンダリングせずに使用可能かを調べるために、各ユニットの名前空間を比較することができる。次いで、ユニットは、個別に読み取られ、対応する蓄積ファイルに渡され、最終的にはメッセージ105を表すことになる。一例では、受信側コンピュータシステム155は、システムメモリ内に蓄積ファイルを作成する。このファイルは、複数のユニット(例えば、ユニット110、115、および120など)が受け取られ元の表現に変換されたあとに、それらを蓄積するために充分な大きさのメモリバッファである。しかし、他の事例では、蓄積ファイルは、ハードドライブストレージに位置し、したがって、着信メッセージユニットが受け取られ変換されるとき、それらのユニットのために追加のシステムメモリバッファを作成する必要がない。
図2は、リソース効率の良いやり方でメッセージを交換する方法における、送信側コンピュータシステムの側からの一連の動作を示す。図2の動作は、図1に関連して後で述べる。例えば、図2は、本発明の実装形態による方法が、交換フォーマットメッセージを選択する動作200を含む。動作200は、複数の異なるメッセージユニットを含む交換フォーマットメッセージを選択することを含む。例えば、XMLメッセージ105は、複数のユニット110、115、および120を含むことができる。
この方法は、メッセージから1つまたは複数のユニットの初期セットを選択する動作210をさらに含む。動作210は、複数の異なるメッセージユニットのうちすべてより少ないユニットが選択されるように、メッセージから、1つまたは複数のユニットの初期セットをメモリ内に選択する。例えば、変換ライタ125は、メッセージ内の選択可能なすべてのユニットを選択することはできないが、ユニット110および/またはユニット115などを選択することができ、選択したユニットを、メッセージ105のサイズとは独立したサイズの割り当てられたメモリ部分に配置する。セキュアな実装形態などのような他の実装形態では、変換ライタ125は、識別子を探してユニット110をスキャンし、必要な場合はユニット110に識別子を挿入する。したがって、変換ライタ125は、特に、受信側コンピュータシステムに送られる非常に大きなメッセージを変換することが必要なとき、メッセージを抽出する際に、さもなければ必要となるよりも非常に小さいメモリ空間だけを使用することによって、コンピュータ化されたシステムに対する要求を軽減することができる。
さらに、図2の方法は、初期セットを変換する動作220を含む。動作200は、初期セットの1つまたは複数のユニットを、基準に基づいて、1つまたは複数の変換されたユニットからなる変換された初期セットに変換することを含む。例えば、XMLメッセージ105の事例では、セット内の各ユニットのレンダリングされたまたは予めレンダリングされた名前空間は、正規化コンポーネント135に渡され、正規化コンポーネント135は、初期セットの各ユニットを正規化して正規化ユニットにし、ストリームアキュムレータ150に渡すことができる。正規化されたユニットはまた、ストリームアキュムレータ150に渡す前にハッシュアキュムレータ145に渡すことや、ハッシュアキュムレータ145に渡す前にメッセージ蓄積コンポーネント140に渡すこともでき、あるいは、受信側の必要に応じてストリームアキュムレータ150に直接ストリームすることができる。
さらに、図2の方法は、1つまたは複数のユニットからなる後続の異なるセットを選択する動作230を含む。動作230は、複数の異なるメッセージユニットのうちすべてより少ないユニットが選択されるように、メッセージから、1つまたは複数のユニットの後続セットをメモリ内に選択することを含む。例えば、ユニット110および/または115の選択(または選択および変換)の後、変換ライタ125は、後続の1つの異なるメッセージユニット120を選択することができ、これは、もちろん、メッセージ105内の複数のユニット(すなわち、110、115、120など)のすべてよりも少ない。
後続の異なるメッセージユニット120が、同様の一連の動作によって渡される。特に、図2の方法は、後続の異なるセットを変換する動作240を同様に含む。動作240は、異なる後続のセットの1つまたは複数のユニットを、1つまたは複数の変換されたユニットからなる変換された後続セットに変換することを含む。例えば、XMLメッセージ105の事例では、後続セットのレンダリングされたまたは予めレンダリングされたユニット120の名前空間は、正規化コンポーネント135に渡され、正規化コンポーネント135は、正規化基準に基づいて後続セットのユニット120の1つまたは複数の名前空間を正規化する。変換されたユニットの後続セットは、次いで、ストリームアキュムレータ150に直接渡されるか、ハッシュアキュムレータ145に渡され次いでストリームアキュムレータ150に渡されるか、あるいは、メッセージ蓄積コンポーネント140に渡され次いでハッシュアキュムレータ145および/またはストリームアキュムレータ150に渡される。いくつかの事例では、さらに、後続セットのユニットを処理して、選択された1つまたは複数のユニットの初期セットと使用された、以前に割り当てられたメモリに渡すことも伴う。したがって、図2は、送信側コンピュータシステム100の変換ライタ125などのコンポーネントが、主にストリームライタとして振る舞い、与えられたメッセージ105の各要素を読み取るために必ずしもリソースを消費する必要がないことを示している。
図3は、図2の方法の受信側での一連の動作を含む方法を示す。図3の動作は、以下で図1のコンポーネントおよびモジュールに関連して論じられる。特に、受け取られた交換フォーマットメッセージをリソース効率の良いやり方で変換する方法は、変換された初期ユニットを受け取る動作300を含む。動作300は、メモリ内への交換フォーマットメッセージの、少なくとも1つの変換された初期ユニットを受け取ることを含み、少なくとも1つの交換された初期ユニットは、メッセージ内の複数の変換されたユニットのうちすべてより少ないユニットである。
例えば、受信側コンピュータシステム155は、メッセージ105の1つまたは複数の変換されたユニット110、115を受け取ることができ、それらはやはり、メッセージ105全体の複数の変換されたユニット(例えば、110、115、120など)のうちすべてより少ないユニットである。したがって、変換リーダ165は、受け取ったユニットの初期セットのサイズに対して充分であるが複数のすべてのユニットに対しては充分でないサイズのメモリのみを割り当てる。例えば、変換された初期ユニットのサイズが約20バイトの場合、変換リーダ165は、変換された初期ユニットを収容するために、約20バイトまたはそれ以上のメモリを割り当てる。
図3の方法はまた、初期ユニットを変換する動作310を含む。動作310は、変換された初期ユニットを、基準に基づいて、交換フォーマットメッセージの対応する初期の部分に変換する。例えば、XMLメッセージの事例では、入力コンポーネント160においてオクテットとして受け取った変換されたユニット110を、正規化コンポーネント135に渡しそしてハッシュアキュムレータ145に渡すことができ、ダイジェスト157を伴わない場合は正規化コンポーネント135のみに渡すことができる。ダイジェスト157が生のオクテット153とともに受け取られた場合、計算されたダイジェスト170と受け取られたダイジェスト157を比較することなどによるエラー検出のために、ハッシュアキュムレータ145を使用して、受け取られたユニット157の計算されたダイジェスト170を生成することができる。次いで、正規化コンポーネント135は、c14n正規化基準に基づいて正規化されたユニット110を、XMLメッセージ105の一部分に変換することができる。例えば、与えられた要素の文字列「foo」をそのまま渡す一方で、文字「<」を文字「<」に変換することができる。
図3の方法はまた、対応する初期の部分をファイルに渡す動作320を含む。動作320は、交換フォーマットメッセージの対応する初期の部分をファイルに渡すことを含む。例えば、ユニット110が正規化コンポーネント135を経由して渡された後、変換リーダ165が、ユニット110を読み取りファイル内またはアプリケーションに渡す。システムメモリのリソースを節約するために、ファイルをシステムメモリではなくストレージに割り当てられたバッファとすることができる。この時点では、送信側コンピュータシステム100から、メッセージ105の複数の変換されたユニットのうち1つ(または、すべてより少数)のみが受け取られており、変換リーダ165によってユニット110が送られる先のファイル(例えば、受信側コンピュータシステム155におけるメッセージ105)は、不完全である。
したがって、図3の方法はまた、変換された後続ユニットを受け取る動作330を含む。動作330は、交換フォーマットメッセージの少なくとも1つの変換された後続ユニットを受け取る。この少なくとも1つの変換された後続ユニットは、メッセージ内の複数の変換されたユニットのすべてより少数のユニットである。例えば、ユニット110を入力160における初期のオクテットとして受け取ったあと、受信側コンピュータシステム155は、変換されたユニット115および/または120などを含む後続のオクテットをさらに受け取ることができる。後続のオクテットは、送信側コンピュータシステムにおける元のメッセージ105すべてに存在するよりも少数を表しているので、受信側コンピュータシステム155は、比較的小さなメモリ部分に後続のオクテットを配置することができる。最終的に、ファイルが、送信側100からの元のすべてのユニットを含むとき、そのファイルは、受信側コンピュータシステム155におけるメッセージ105と等しくなり、送信側コンピュータシステム100におけるメッセージ105の実質的な表現となる。
上記の図および方法は、本発明の原理と一貫する任意の様々な方法によって変更されうることは理解されよう。例えば、交換メッセージ105は、XMLやHTML以外の任意の様々な交換フォーマットとすることができ、該当するファイルを変換するための基準は、正規化以外の基準にすることもできる。さらに、上記の方法および図を、変換ライタ125が主としてストリームライタとして振る舞い、変換リーダ165が主としてストリームリーダとして振舞う限り、セキュアメッセージなどに関係しうるメッセージの様々な単純さまたは複雑さに対応するためにさらに修正することができる。
したがって、送信側コンピュータシステムと受信側コンピュータシステムは、メモリ割当て要件を大幅に軽減すること、相対的な書込みおよび読取り速度の強みを利用すること、および、従来の変換方法の多数を単一のルーチンで達成することによって、かなりの効率性の利得を得ることができる。したがって、本明細書および特許請求の範囲は、コンピューティングリソースに過度の負担をかけることなく、XMLやHTMLなどの交換フォーマットメッセージを、送信側システムから受信側システムに渡すための新規の方法、システム、および装置を提供する。
図4および以下の議論では、本発明を実装することができる適切なコンピューティング環境についての簡潔な一般的な説明を与える。必須ではないが、ネットワーク環境におけるコンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的コンテキストにおいて本発明を説明する。一般に、プログラムモジュールには、特定のタスクを実行するかまたは特定の抽象データ形を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、およびデータ構造などが含まれる。コンピュータ実行可能命令、関連するデータ構造、およびプログラムモジュールは、本明細書に開示の方法のステップを実行するためのプログラムコード手段の例である。このような実行可能命令や関連するデータ構造の特定のシーケンスは、開示の方法のステップとして記述される機能を実装するための対応する動作の例である。
本発明を、パーソナルコンピュータ、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラマブル家庭用電化製品、ネットワークPC、およびミニコンピュータ、メインフレームコンピュータなどを含む、多数のタイプのコンピュータシステム構成のネットワークコンピューティング環境において実施することができることは当業者には理解されよう。本発明をローカルおよびリモートの処理装置が、タスクを実行し、通信ネットワークを介して(有線リンク、無線リンク、または有線リンクと無線リンクの組合せによって)リンクされている、分散コンピューティング環境において実施することもできる。分散コンピューティング環境では、プログラムモジュールは、ローカルとリモート両方のメモリ記憶装置に配置されうる。
図4を参照すると、本発明を実装するための例示的システムは、処理装置421、システムメモリ422、および、システムメモリ422から処理装置421までを含む様々なシステムコンポーネントに結合したシステムバス423を含め、従来のコンピュータ420の形態を取る汎用コンピューティングデバイスを含む。システムバス423を、様々なバスアーキテクチャのうち任意のアーキテクチャを使用した、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含めて、いくつかのタイプのうち任意のバス構造とすることができる。システムメモリは、ROM(読取り専用メモリ)424、およびRAM(ランダムアクセスメモリ)425を含む。始動時などにコンピュータ420内の要素間で情報を転送する助けとなる基本ルーチンを含むBIOS(基本入出力システム)426は、ROM424に格納することができる。
コンピュータ420は、磁気ハードディスク439から読み取りまたはそれに書き込む磁気ハードディスクドライブ427、リムーバル磁気ディスク429から読み取りまたはそれに書き込む磁気ディスクドライブ428、および、CD‐ROMまたは他の光媒体などのリムーバル光ディスク431から読み取りまたはそれに書き込む光ディスクドライブ430を含むこともできる。磁気ハードディスクドライブ427、磁気ディスクドライブ428、および光ディスクドライブ430はそれぞれ、ハードディスクドライブインターフェース432、磁気ディスクドライブインターフェース433、および光ドライブインターフェース434によってシステムバス423に接続されている。これらのドライブおよび関連するコンピュータ可読媒体は、コンピュータ420のためのコンピュータ実行可能命令、データ構造、プログラムモジュール、および他のデータの不揮発性のストレージを提供する。本明細書に記載の例示的環境では、磁気ハードディスク439、リムーバル磁気ディスク429、およびリムーバル光ディスク431が用いられているが、磁気カセット、フラッシュメモリカード、DVD、ベルヌーイ(Bernoulli)カートリッジ、RAM、ROMなどを含めて他のタイプのデータを格納するためのコンピュータ可読媒体を使用することもできる。
オペレーティングシステム435、1つまたは複数のアプリケーションプログラム436、他のプログラムモジュール437、およびプログラムデータ438を含めて、1つまたは複数のプログラムモジュールを含むプログラムコード手段を、ハードディスク439、磁気ディスク429、光ディスク431、ROM424、またはRAM425に格納することができる。ユーザは、キーボード440、ポインティングデバイス442、あるいは、マイク、ジョイスティック、ゲームパッド、サテライトディッシュ、またはスキャナなど他の入力装置(図示せず)を介して、コマンドおよび情報をコンピュータ420に入力することができる。上記および他の入力装置は、しばしば、システムバス423に結合されたシリアルポートインターフェース446を介して処理装置421に結合される。あるいは、入力装置を、パラレルポート、ゲームポート、またはUSB(ユニバーサルシリアルバス)など他のインターフェースによって結合することもできる。モニタ447または他の表示装置も、ビデオアダプタ448などのインターフェースを介してシステムバス423に結合される。モニタに加え、通常、パーソナルコンピュータは、スピーカやプリンタなど他の出力周辺装置(図示せず)を含む。
コンピュータ420は、リモートコンピュータ449aおよび449bなどの1つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク環境において動作することができる。リモートコンピュータ449aおよび449bはそれぞれ、他のパーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の一般的なネットワークノードとすることができ、通常、コンピュータ420に関係する上記の要素の多数またはすべてを含むが、図4では、メモリ記憶装置450aおよび450bとそれらに関連するアプリケーションプログラム436aおよび436bのみを図示している。図4に示す論理接続には、限定ではなく例として、LAN(ローカルエリアネットワーク)451、およびWAN(ワイドエリアネットワーク)452が含まれる。このようなネットワーク環境は、オフィスまたは企業規模のコンピュータネットワーク、イントラネット、およびインターネットにおいて一般的なものである。
LANネットワーク環境で使用する場合、コンピュータ420は、ネットワークインターフェースまたはアダプタ453を介してローカルネットワーク451に接続される。WANネットワーク環境で使用する場合、コンピュータ420は、モデム454、無線リンク、またはインターネットなどの広域ネットワーク452を介して通信を接続するための他の手段を含むことができる。モデム454は、内蔵または外部であり、シリアルポートインターフェース446を介してシステムバス423に接続される。ネットワーク環境では、コンピュータ420またはその部分に関係して示されたプログラムモジュールは、リモートメモリ記憶装置に格納することができる。示されているネットワーク接続は、例示であり、WAN452を介して接続を確立する他の手段も使用することができることは理解されよう。
本発明を、その趣旨または本質的特徴から逸脱することなく、他の特定の形態で実施することができる。上記の実施形態を、すべての点において例示に過ぎず、限定するものと見なすべきではない。したがって、本発明の範囲は、以上の記述によってではなく添付の特許請求の範囲によって示される。特許請求の範囲と等価な意味および範囲に含まれるすべての変更は、特許請求の範囲に包含されるべきである。
本発明の実装形態による、変換された交換フォーマットメッセージの送信および受信の概要を示すブロック図である。 本発明の実装形態による、変換された交換フォーマットメッセージを送信する方法を示す図である。 本発明の実装形態による、変換された交換フォーマットメッセージを受信するための方法を示す図である。 本発明による使用に適した例示的コンピューティング環境を示すブロック図である。
符号の説明
100 送信側
105 メッセージ
110 ユニット
115 ユニット
120 ユニット
123 属性マネージャ
125 変換ライタ
130 追跡エンジン
135 正規化コンポーネント
140 メッセージ蓄積
145 ハッシュアキュムレータ
150 ストリームアキュムレータ
153 生のオクテット(Raw Octets)
155 受信側
157 ダイジェスト
160 入力
165 変換リーダ
170 計算されたダイジェスト
200 交換ファイルフォーマットメッセージにアクセスする
210 メッセージから1つまたは複数のユニットの初期セットを抽出する
220 初期セットを変換する
230 1つまたは複数のユニットの後続の異なるセットを抽出する
240 後続の異なるセットを変換する
300 変換された初期ユニットを受け取る
310 変換された初期ユニットを変換する
320 対応する初期部分をファイルに渡す
330 変換された後続ユニットを受け取る
420 コンピュータ
421 処理装置
422 システムメモリ
423 システムバス
424 (ROM)
425 (RAM)
426 BIOS
427 磁気ハードディスクドライブ
428 磁気ディスクドライブ
429 リムーバル磁気ディスク
430 光ディスクドライブ
431 リムーバル光ディスク
432 ハードドライブインターフェース
433 磁気ディスクドライブインターフェース
434 光ドライブインターフェース
435 オペレーティングシステム
436 アプリケーションプログラム
436a アプリケーションプログラム
436b アプリケーションプログラム
437 他のプログラムモジュール
438 プログラムデータ
439 磁気ハードディスク
440 キーボード
442 ポインティングデバイス
446 シリアルポートインターフェース
447 モニタ
448 ビデオアダプタ
449a リモートコンピュータ
449b リモートコンピュータ
450a メモリ記憶装置
450b メモリ記憶装置
451 LAN
452 WAN
453 ネットワークインターフェース
454 モデム

Claims (20)

  1. 送信側コンピュータシステムと受信側コンピュータシステムが交換フォーマットで1つまたは複数のメッセージを交換することができる、コンピュータ化された環境における、送信側コンピュータシステムにおいて、リソース効率の良いやり方で交換フォーマットメッセージを変換する方法であって、
    交換フォーマットメッセージにアクセスする動作であって、前記交換フォーマットメッセージは、複数の異なるメッセージユニットを含む動作と、
    前記複数の異なるメッセージユニットのうちすべてより少ないユニットが選択されるように、前記メッセージから1つまたは複数のメッセージの初期のセットを選択する動作と、
    前記初期セットの前記1つまたは複数の選択されたメッセージユニットを、基準に基づいて、1つまたは複数の変換されたユニットの変換された初期セットに変換する動作と、
    複数の異なるメッセージユニットのうちすべてより少ないユニットが選択されるように、メモリ内の前記メッセージから、1つまたは複数のユニットの後続の異なるセットを選択する動作と、
    前記後続の異なるセットの前記1つまたは複数のユニットを、1つまたは複数の変換されたユニットの変換された後続セットに変換する動作とを備えることを特徴とする方法。
  2. 1つまたは複数の選択されたメッセージユニットの前記初期および後続のセットは、追加のバッファリングまたは構文解析のコストが発生しないように、各選択された1つまたは複数の初期または後続のユニットに関連する変換ライタを使用して変換されることを特徴とする請求項1に記載の方法。
  3. 1つまたは複数のメッセージユニットの前記変換された初期セットを、受信側に送る動作をさらに備えることを特徴とする請求項1に記載の方法。
  4. 前記交換フォーマットメッセージは、XMLメッセージであることを特徴とする請求項1に記載の方法。
  5. 前記基準は、排他的正規化基準または包含的正規化基準の一方であり、前記初期または後続セットの前記1つまたは複数のメッセージユニットを変換する動作は、前記初期または後続セットの前記1つまたは複数のメッセージユニットを正規化する動作を含むことを特徴とする請求項4に記載の方法。
  6. 前記メッセージ内の少なくとも前記初期セットの1つまたは複数のユニットを受け取るために充分であるが前記メッセージ内の前記複数のユニットのすべてには充分ではない、システムメモリの一部分を割り当てる動作をさらに備えることを特徴とする請求項1に記載の方法。
  7. 1つまたは複数のユニットの前記後続セットをメモリ内に選択する動作は、
    1つまたは複数のメッセージユニットの前記初期セットが変換された後、前記割り当てられたメモリ部分を開放する動作と、
    1つまたは複数のメッセージユニットの前記初期セットによって占められた前記割り当てられたメモリ部分を、1つまたは複数のユニットの前記後続セットによって上書きする動作とを含むことを特徴とする請求項6に記載の方法。
  8. 前記選択された1つまたは複数のユニットのサイズは、現在使用可能な処理リソース、システムメモリリソース、または接続帯域幅に基づくことを特徴とする請求項6に記載の方法。
  9. 前記アクセスされるメッセージは、セキュアメッセージであり、
    前記初期セットの前記1つまたは複数のユニットを、識別子を求めてスキャンする動作と、
    識別子が前記ユニットに必要とされるが見つからない場合、前記初期セットの前記1つまたは複数のユニットの任意のユニットに識別子を挿入する動作と、
    識別子のスキャン、前記識別子の挿入、および変換が単一のパスで達成されるように、各前記1つまたは複数のメッセージユニットを同時に変換する動作とを備えることを特徴とする請求項1に記載の方法。
  10. 前記初期セットの前記1つまたは複数のユニットのうち少なくとも1つは、XMLメッセージのメッセージヘッダであることを特徴とする請求項9に記載の方法
  11. 前記初期セットの前記1つまたは複数のユニットを要約する動作と、
    前記初期セットの前記1つまたは複数のユニットをデジタルで署名する動作とをさらに備えることを特徴とする請求項9に記載の方法。
  12. 前記アクセスされたメッセージの所期の受信者が、前記メッセージ全体のストリームを必要とすることを識別する動作と、
    前記メッセージの前記複数の各ユニットを、それらが変換されるときに蓄積する動作と、
    前記蓄積された、前記メッセージの変換されたユニットを、ストリームする動作とをさらに備えることを特徴とする請求項1に記載の方法。
  13. 1つまたは複数のメッセージユニットの前記初期セットを選択する前記動作と、1つまたは複数のユニットの前記初期セットを変換する前記動作は、変換ライタによって行われ、前記変換ライタは、アプリケーションに関連付けられたプログラムクラスであることを特徴とする請求項1に記載の方法。
  14. 受信側コンピュータシステムと送信側コンピュータシステムが交換フォーマットで1つまたは複数のメッセージを交換することができる、コンピュータ化された環境における、受信側コンピュータシステムにおいて、リソース効率の良いやり方で受信された交換フォーマットメッセージを変換する方法であって、
    交換フォーマットメッセージの1つまたは複数の変換されたユニットの初期セットをメモリ内に受け取る動作であって、前記初期セットは、前記メッセージ内の複数の変換されたユニットのうちすべてより少ないユニットである動作と、
    前記受け取った変換されたユニットの初期セットを、基準に基づいて、前記交換フォーマットメッセージの対応する初期部分に変換する動作と、
    前記交換フォーマットメッセージの前記対応する初期部分を、ファイルに渡す動作と、
    前記交換フォーマットメッセージの1つまたは複数の変換されたユニットの後続セットをメモリ内に受け取る動作であって、前記後続セットのユニットは、前記メッセージ内の前記複数の変換されたユニットのうちすべてよりも少ないユニットである動作とを備えることを特徴とする方法。
  15. 前記初期または後続のセットを受け取るために充分なメモリの一部分を割り当てる動作をさらに備えることを特徴とする請求項14に記載の方法。
  16. 前記初期セットのダイジェストを計算する動作と、前記受信側コンピュータシステムで前記計算されたダイジェストを、1つまたは複数の変換されたユニットの前記初期セットについて、前記送信側コンピュータシステムにより送られたダイジェストと比較する動作とをさらに含むことを特徴とする請求項14に記載の方法。
  17. 前記メッセージの前記複数の変換されたユニットのすべてが受け取られた後、前記ファイルは、前記交換フォーマットメッセージの実質的表現であることを特徴とする請求項14に記載の方法。
  18. 前記交換フォーマットメッセージは、XMLメッセージであり、前記基準は、正規化基準であることを特徴とする請求項14に記載の方法。
  19. 1つまたは複数の変換されたユニットの前記初期セットを変換する前記動作と、1つまたは複数の変換されたユニットの前記初期セットを渡す前記動作は、変換リーダによって行われ、前記変換リーダは、アプリケーションに関連付けられたプログラムクラスであることを特徴とする請求項14に記載の方法。
  20. 送信側コンピュータシステムと受信側コンピュータシステムが交換フォーマットで1つまたは複数のメッセージを交換することができる、コンピュータ化された環境における、送信側コンピュータシステムにおいて使用するためのコンピュータプログラム製品であって、リソース効率の良いやり方で交換フォーマットメッセージを変換する方法を実装するためのコンピュータプログラム製品であって、コンピュータ実行可能命令を格納している1つまたは複数のコンピュータ可読媒体を含み、前記コンピュータ実行可能命令は、プロセッサによって実行されるとき、
    複数の異なるメッセージユニットを含む交換フォーマットメッセージにアクセスすること、
    前記複数の異なるメッセージユニットのうちのすべてより少ないユニットが選択されるように、前記メッセージから1つまたは複数のメッセージユニットの初期セットを選択すること、
    前記初期セットの前記1つまたは複数の選択されたメッセージユニットを、基準に基づいて、1つまたは複数の変換されたユニットの変換された初期セットに変換すること、
    前記複数の異なるメッセージユニットのうちのすべてより少ないユニットが選択されるように、前記メッセージから1つまたは複数のユニットの後続の異なるセットをメモリ内に選択すること、および、
    前記後続の異なるセットの前記1つまたは複数のユニットを、1つまたは複数の変換されたユニットの変換された後続セットに変換することを、前記送信側コンピュータシステムに実行させることを特徴とするコンピュータプログラム製品。
JP2006005191A 2005-02-02 2006-01-12 交換フォーマットメッセージの効率的な変換 Pending JP2006216024A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/049,157 US7860989B2 (en) 2005-02-02 2005-02-02 Efficient transformation of interchange format messages

Publications (1)

Publication Number Publication Date
JP2006216024A true JP2006216024A (ja) 2006-08-17

Family

ID=36237290

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006005191A Pending JP2006216024A (ja) 2005-02-02 2006-01-12 交換フォーマットメッセージの効率的な変換

Country Status (5)

Country Link
US (1) US7860989B2 (ja)
EP (1) EP1689146A3 (ja)
JP (1) JP2006216024A (ja)
KR (1) KR20060088816A (ja)
CN (1) CN1816020A (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060272006A1 (en) * 2005-05-27 2006-11-30 Shaohong Wei Systems and methods for processing electronic data
US8473455B2 (en) * 2008-09-03 2013-06-25 Microsoft Corporation Query-oriented message characterization
US10216709B2 (en) 2015-05-22 2019-02-26 Microsoft Technology Licensing, Llc Unified messaging platform and interface for providing inline replies
US20160344677A1 (en) 2015-05-22 2016-11-24 Microsoft Technology Licensing, Llc Unified messaging platform for providing interactive semantic objects
US10608951B2 (en) * 2017-09-30 2020-03-31 Oracle International Corporation Live resegmenting of partitions in distributed stream-processing platforms

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003223390A (ja) * 2002-01-29 2003-08-08 Fujitsu Social Science Laboratory Ltd データ抽出・構造変換処理プログラム、コンテンツ生成処理プログラム、データ抽出・構造変換処理プログラム記録媒体、コンテンツ生成処理プログラム記録媒体、およびコンテンツ再構築処理システム
WO2004036449A1 (en) * 2002-10-15 2004-04-29 Samsung Electronics Co., Ltd. Method for managing metadata
JP2004171574A (ja) * 2002-11-19 2004-06-17 Microsoft Corp メッセージの微細分割方法
JP2005025295A (ja) * 2003-06-30 2005-01-27 Fujitsu Ltd コンテンツ変換プログラム、コンテンツ変換方法、およびコンテンツ変換装置
JP2005301527A (ja) * 2004-04-08 2005-10-27 Internatl Business Mach Corp <Ibm> Webサービス・システム、リクエスタ、soapメッセージ用中間処理装置、リクエスタのリクエスト用soapメッセージ処理方法、リクエスタのレスポンス用soapメッセージ処理方法、soapメッセージ用中間処理装置のリクエスト用soapメッセージ処理方法、soapメッセージ用中間処理装置のレスポンス用soapメッセージ処理方法、及びプログラム
JP2006018376A (ja) * 2004-06-30 2006-01-19 Canon Inc ネットワーク通信方式

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10026478A1 (de) * 2000-05-27 2001-12-20 Abb Patent Gmbh Verfahren zur Generierung anwendungsspezifischer Eingabedateien
US20020111963A1 (en) * 2001-02-14 2002-08-15 International Business Machines Corporation Method, system, and program for preprocessing a document to render on an output device
US6542911B2 (en) 2001-03-01 2003-04-01 Sun Microsystems, Inc. Method and apparatus for freeing memory from an extensible markup language document object model tree active in an application cache
US20040168124A1 (en) 2001-06-07 2004-08-26 Michael Beisiegel System and method of mapping between software objects & structured language element-based documents
US7200548B2 (en) 2001-08-29 2007-04-03 Intelliden System and method for modeling a network device's configuration
US20040205520A1 (en) * 2001-12-20 2004-10-14 Ec Outlook, Inc. System and method for introducing programming constructs into computer intelligible electronic data
US20040131082A1 (en) * 2002-02-08 2004-07-08 Evans James C. Construction of middleware adapters
US7721202B2 (en) * 2002-08-16 2010-05-18 Open Invention Network, Llc XML streaming transformer
GB0306610D0 (en) * 2003-03-21 2003-04-30 British Telecomm Conversion of structured information
US9286275B2 (en) * 2004-08-23 2016-03-15 Oracle America, Inc. System and method for automatically generating XML schema for validating XML input documents

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003223390A (ja) * 2002-01-29 2003-08-08 Fujitsu Social Science Laboratory Ltd データ抽出・構造変換処理プログラム、コンテンツ生成処理プログラム、データ抽出・構造変換処理プログラム記録媒体、コンテンツ生成処理プログラム記録媒体、およびコンテンツ再構築処理システム
WO2004036449A1 (en) * 2002-10-15 2004-04-29 Samsung Electronics Co., Ltd. Method for managing metadata
JP2004171574A (ja) * 2002-11-19 2004-06-17 Microsoft Corp メッセージの微細分割方法
JP2005025295A (ja) * 2003-06-30 2005-01-27 Fujitsu Ltd コンテンツ変換プログラム、コンテンツ変換方法、およびコンテンツ変換装置
JP2005301527A (ja) * 2004-04-08 2005-10-27 Internatl Business Mach Corp <Ibm> Webサービス・システム、リクエスタ、soapメッセージ用中間処理装置、リクエスタのリクエスト用soapメッセージ処理方法、リクエスタのレスポンス用soapメッセージ処理方法、soapメッセージ用中間処理装置のリクエスト用soapメッセージ処理方法、soapメッセージ用中間処理装置のレスポンス用soapメッセージ処理方法、及びプログラム
JP2006018376A (ja) * 2004-06-30 2006-01-19 Canon Inc ネットワーク通信方式

Also Published As

Publication number Publication date
US7860989B2 (en) 2010-12-28
EP1689146A2 (en) 2006-08-09
EP1689146A3 (en) 2006-08-23
CN1816020A (zh) 2006-08-09
US20060173899A1 (en) 2006-08-03
KR20060088816A (ko) 2006-08-07

Similar Documents

Publication Publication Date Title
US8332751B2 (en) Removal of redundant information from electronic documents
US7716306B2 (en) Data caching based on data contents
US5499109A (en) System for transferring messages between input and output devices in a communication device
US8363731B2 (en) Encoding and decoding methods and systems
JPH10116236A (ja) 遅延コード化データ伝送
US8909675B2 (en) Executing transcription requests on files
JP2008537259A (ja) 資源間の関係の効率的記述
KR20110027845A (ko) 세션 기술 메시지 확장
CN1574795A (zh) 为改进客户机服务器通信使用分组压缩缓冲器的系统和方法
JP2004215279A (ja) サーバとクライアントとの間でデータをストリームするための方法
KR20140009175A (ko) 서버로부터의 문서의 부분 로딩 및 편집
US20040205216A1 (en) Efficient message packaging for transport
US10783412B1 (en) Smart page encoding system including linearization for viewing and printing
JPH11168498A (ja) ネットワークシステム、電子メール補助装置及び記録媒体
US20030137689A1 (en) Remote printer driver server
JP2006216024A (ja) 交換フォーマットメッセージの効率的な変換
US6804700B1 (en) Methods and systems for assigning human-readable and unique uniform resource locators to objects
US20020059382A1 (en) System and method for sending electronic mail and computer readable storage medium
KR101224684B1 (ko) 패키징 모델의 컴포넌트와 패키지의 물리적 표현의 피처간의 매핑 방법 및 시스템
US7424509B2 (en) System and method for printing from a web application
US7814408B1 (en) Pre-computing and encoding techniques for an electronic document to improve run-time processing
US6473526B1 (en) Image processing system and control method of the same, image processing apparatus and control method of the same, and computer readable memory
US11087188B2 (en) Smart page decoding system including linearization for viewing and printing
US6714950B1 (en) Methods for reproducing and recreating original data
US20040167961A1 (en) Fragment response cache

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110405

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110628

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110928

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111220