JP5014212B2 - メッセージ通信装置及びその制御方法及びコンピュータプログラム - Google Patents

メッセージ通信装置及びその制御方法及びコンピュータプログラム Download PDF

Info

Publication number
JP5014212B2
JP5014212B2 JP2008066738A JP2008066738A JP5014212B2 JP 5014212 B2 JP5014212 B2 JP 5014212B2 JP 2008066738 A JP2008066738 A JP 2008066738A JP 2008066738 A JP2008066738 A JP 2008066738A JP 5014212 B2 JP5014212 B2 JP 5014212B2
Authority
JP
Japan
Prior art keywords
message
application
information
elements
memory
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.)
Expired - Fee Related
Application number
JP2008066738A
Other languages
English (en)
Other versions
JP2009223579A5 (ja
JP2009223579A (ja
Inventor
理 佐々木
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2008066738A priority Critical patent/JP5014212B2/ja
Priority to US12/394,460 priority patent/US8739181B2/en
Publication of JP2009223579A publication Critical patent/JP2009223579A/ja
Publication of JP2009223579A5 publication Critical patent/JP2009223579A5/ja
Application granted granted Critical
Publication of JP5014212B2 publication Critical patent/JP5014212B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)

Description

本発明は、メッセージ通信技術に関する。
現在、ネットワークに接続された複数の装置同士がデータを通信する「Webサービス」が実用化されている。Webサービスでは複数の装置上で動作しているアプリケーション同士がアプリケーションで利用するオブジェクトを交換する。送信側の装置はアプリケーションが送信するオブジェクトをXMLの要素に変換し、Webサービスの標準ブロトコルであるSOAPメッセージの一部として送信する。そして、受信側の装置は受信したSOAPメッセージから取り出したXMLの要素をオブジェクトに変換して、そのオブジェクトをアプリケーションが利用する。サービス利用側の装置上のアプリケーションは、サービス提供側のアプリケーションの関数の引数となるオブジェクトを送信し、関数の戻り値のオブジェクトを受信する。また、サービス提供側の装置のアプリケーションは、受信したオブジェクトを引数として自己の関数を実行し、その戻り値のオブジェクトを応答として送信する。Webサービスを利用したデータ通信では、このように、関数呼び出しの形でオブジェクトを交換する方法が一般的である。
前述した関数呼び出しを行うためには、SOAPメッセージとして受信したXMLの要素をアプリケーションが利用できる形態であるオブジェクトに変換する必要がある。この変換は特許文献1に記載の方法のように、SOAPメッセージに含まれるすべてのXMLの要素をメモリに書き込んでからオブジェクトに変換するのが一般的である。図1(a)を用いてこの方式の概要を説明する。図1は受信したSOAPメッセージの処理方式を比較する図である。SOAPメッセージ101には複数のXMLの要素107が含まれる。SOAPメッセージ101を受信した通信装置102は、受信したSOAPメッセージ101に含まれるすべてのXMLの要素107をメモリ105に書き込み、変換部103がオブジェクト108に変換する。図1ではE〜EがXMLの要素を表し、それをオブジェクトに変換したものをそれぞれO〜Oで表す。このオブジェクト108を用いてアプリケーション104は処理を実行する。
特開2006−164264号公報
SOAPメッセージの形式はインターフェース定義文書などで事前に定義することが可能である。しかし、XMLの要素数は関数を実行するときに初めて決定される場合も多く、SOAPメッセージを受信する側の装置はSOAPメッセージの大きさをあらかじめ予想できない。XMLの要素数が多いSOAPメッセージを一括してオブジェクトに変換する場合、特に組み込み装置のようなメモリ容量の少ない環境ではメモリを圧迫する。その結果、SOAPメッセージに含まれるXMLの要素をオブジェクトに変換することができないか、変換できたとしてもメモリ不足でアプリケーションが続行不能となる可能性がある。例えば図1(a)に示す形式では、SOAPメッセージ101に含まれるすべてのXMLの要素107をメモリ105に書き込んでからオブジェクト108に変換する。そのため、XMLの要素107の個数が多い場合には、メモリ105を圧迫することになる。
XMLの要素をオブジェクトに変換せずにアプリケーションがそのまま処理することも可能ではある。例えば図1(b)に示す形式である。ここでは、SOAPメッセージ101を受信したアプリケーションがXMLの要素107を取り出しオブジェクト108に変換する。アプリケーション104はすぐに使用しないオブジェクト109を一時記憶域106に退避させることが可能なため、不必要にメモリを圧迫する心配はない。しかしこの場合、SOAPメッセージを直接扱う処理やXMLの要素をアプリケーションが処理可能なオブジェクトに変換する処理をそれぞれのアプリケーションで実装しなければならない。そのため、アプリケーションの開発効率が著しく低下してしまう。そこで、本発明は、アプリケーションの開発効率を低下せずにメモリを大量に消費することのないメッセージ通信を提供することを目的とする。
本発明に係るメッセージ通信装置は、他の装置から受信したメッセージに含まれる要素をアプリケーションが処理可能な形態の情報に変換するメッセージ通信装置であって、受信したメッセージに含まれる前記要素を記憶するメモリと、前記要素を前記情報に変換する変換手段と、前記要素の個数が複数である場合に、該複数の要素のうちの少なくとも一部を、前記変換手段により前記情報に変換せずに保存する保存手段とを備え、前記変換手段は、前記情報に変換せずに保存された要素を前記アプリケーションからの要求に応じて前記保存手段から読み出し、前記情報に変換して該アプリケーションに提供することを特徴とする。
大量のメモリを消費することがなく、またアプリケーションの開発効率を低下させないメッセージ通信を実現できる。
以下、添付の図面を参照しながら本発明の実施形態について詳細に説明する。なお、以下ではSOAPメッセージを例として扱うが、メッセージの要素をアプリケーションが利用できる形態のオブジェクトに変換するメッセージ通信で使用されるメッセージであればSOAPメッセージに限られない。
<第1の実施形態>
本実施形態ではSOAPメッセージを受信した通信装置に本発明を適用した場合を扱う。
図1(c)を用いて本実施形態の概要を説明する。SOAPメッセージ101を受信した通信装置102は取り出したXMLの要素107をメモリ105に書き込み、変換部103がオブジェクト108に変換する。メモリに書き込んだXMLの要素107の個数が事前に設定した閾値を超えた場合は、SOAPメッセージ101に含まれる残りのXMLの要素110をそのままの形態で一時記憶域106に保存する。その後アプリケーションが関数を実行する。アプリケーション104が未変換のオブジェクトを必要とした場合は、変換部103は一時記憶域106に保存されているXMLの要素110をメモリ105に書き込み、オブジェクト108に変換する。これにより、アプリケーション104はXMLの要素を直接処理することを必要とせず、自身が処理できる形態であるオブジェクトだけを扱って関数を実行できる。以上が本実施形態の概要である。
ネットワークに接続するメッセージの送受信を行う通信装置201の構成の一例とその他のサービスリクエスタ202、サービスプロバイダ203とを含むメッセージ通信システムの構成を、図2を参照して説明する。図2は本実施形態におけるメッセージ通信システムの構成の一例である。
通信装置201はメッセージの送受信を行う通信装置である。サービスリクエスタ202はサービスを利用する側であるクライアントとなるコンピュータ装置である。通信装置201やサービスプロバイダ203にサービスを要求するためのメッセージである要求メッセージを送信し、その返答として応答メッセージを受信する。サービスプロバイダ203はサービスを提供する側であるサーバとなるコンピュータ装置である。通信装置201やサービスリクエスタ202から要求メッセージを受信し、その返答として応答メッセージを送信する。通信装置201はサービスリクエスタ202とサービスプロバイダ203とのどちらの役割として振舞うことも可能である。これらの装置はネットワーク210に接続される。ネットワーク210はメッセージを通信できればどのような形態でもよく、例えばインターネット、WAN、又はLANなどである。
通信装置201はアプリケーション204、オブジェクト変換部205、メッセージ送信部206、メッセージ受信部207、一時記憶部208、及びメモリ209を備える。
アプリケーション204は他の装置に含まれるアプリケーションとオブジェクトを交換する。オブジェクト変換部205はネットワーク210の通信に使用可能な形態であるメッセージに含まれるXMLの要素とアプリケーション204が処理可能な形態であるオブジェクトとを相互に変換する。メッセージ送信部206はオブジェクト変換部205から受け取ったメッセージをネットワーク210に向けて送信する。メッセージ受信部207はネットワーク210から受信したメッセージをオブジェクト変換部205に渡す。一時記憶部208はオブジェクト変換部205から受け取ったメッセージに含まれるXMLの要素の一部をそのままの形態で一時的に保存し、オブジェクト変換部205から要求に応じてメモリ209に書き込む。メモリ209はオブジェクト変換部205の変換やアプリケーション204の関数の実行に使用される作業領域であり、XMLの要素やオブジェクトが格納される。
図3は、通信装置201のハードウェア構成の一例を示すブロック図である。通信装置201は、制御部301、入力部302、出力部303、通信制御部304、及び記憶部305を備える。
制御部301はCPU、ROM、RAM、及び周辺機器などを含み、通信装置201全体を制御する。RAMはメモリ209として使用される。入力部302は、キーボードやマウスなどを接続するためのインターフェースを含み、通信装置201への指示や各種入力を制御する。出力部303は、ディスプレイなどを接続するためのインターフェースを含み、通信装置201の状態や処理結果などの出力を制御する。通信制御部304は、ネットワーク210との間で通信するためのインターフェースを含み、サービスリクエスタ202やサービスプロバイダ203などの他の通信装置との通信を制御する。記憶部305は大容量記憶装置へのアクセスを制御するインターフェースを含み、データなどを記憶する。記憶部305は一時記憶部208として使用される。そして、システムバス310は上述の各部を接続する。
図4はメッセージ401とそのスキーマ定義405との一例である。メッセージ401はサービスリクエスタ202が送信するメッセージであり、XML形式で表現される。本実施形態ではEnvelopeタグがつけられたSOAPメッセージである。内部にBody要素であるメッセージ本文402を含む。メッセージ本文402はアプリケーション同士が交換するメッセージの中身である。本実施形態では内部に配列データ403を含む。配列データ403はXMLの要素404を配列の要素として含む。本実施形態では、XMLの要素404であるmyObject要素が連続することで配列であることを表す。配列の要素数はメッセージ401ごとに異なるため特に制限されない。
スキーマ定義405は、メッセージ401を構成するXML文書の取りうる構造の定義であるスキーマを記述する。本実施形態ではXML Schemaの形式で表現しているが、メッセージ401の構成を定義できればどのような形式であっても本発明を適用可能である。
スキーマ定義部分406は矢印408で対応を示すとおり、メッセージ本文402の取りうる構造を定義する。element要素のname属性でメッセージ本文402の要素名を定義する。ここでは「myOperation」が要素名である。またスキーマ定義部分407は矢印409で対応を示すとおり、配列データ403の取りうる構造を定義する。element要素のname属性が配列データ403の要素を定義する。ここでは「myObject」が要素名である。さらに、maxOccurs属性が「unbounded」になっていることから、「myObject」を要素に持つ配列を構成することがわかる。
通信装置201はメッセージの受信時に図4に示すスキーマ定義405を保持しているとする。通信装置201の記憶部305が事前に保存してもよいし、ネットワーク210上の他の装置から配信を受けてもよい。また、保存される形式も例に示す文書の限りではなくアブリケーションコード等の他の形式で同等の情報で保持しておくことも可能である。
本実施形態では、アプリケーション204が配列の要素であるオブジェクトを取得するためのオブジェクトである配列用オブジェクト501を定義する。図5は配列用オブジェクトの一例を表す模式図である。なお、図5に示す構造は一例であり、これに限定されるものではない。一般にオブジェクトは当該オブジェクトが有する数値や文字列などのデータである「属性」と当該オブジェクトの有する機能である「操作」とを備える。配列用オブジェクト501の属性は要素数504とファイル参照505とを含む。要素数504は配列用オブジェクト501が表す配列の要素数である。ファイル参照505は配列を構成するXMLの要素を格納する一時記憶部208に保存された一時保存ファイル503への参照である。また、配列用オブジェクト501の操作はgetLength506とgetItem507とを含む。getLength506は配列の要素数504を取得する関数である。getItem507は配列の要素番号を引数とし、配列の要素であるオブジェクトを取得する関数である。すでにオブジェクト変換部205により変換済みのオブジェクトが指定された場合はそのオブジェクトをアプリケーション204に戻す。まだ変換されていないオブジェクトは一時保存ファイル503にXMLの要素として保存されている。そこで、未変換のオブジェクトが指定された場合は、オブジェクト変換部205がXMLの要素をオブジェクトに変換してからアプリケーション204に戻す。
このように、アプリケーション204は必要な配列の要素がXMLの要素の形態であったとしても、配列用オブジェクト501を操作するだけで、配列の要素をオブジェクトの形態として取得することが可能となる。
本実施形態におけるメッセージ通信システムにおいて、通信装置201がサービスリクエスタからメッセージとして配列データを受信する場合の制御を、図6を用いて説明する。図6は通信装置201がメッセージを受信する場合の内部動作の一例を示すフローチャートである。なお、図6に示す内部動作は一例であり、これに限定されるものではない。フローチャートは制御部301が記憶部305に保存されたコンピュータプログラムを実行することで処理される。
まずステップS601で、通信装置201のメッセージ受信部207がメッセージの受信を開始し、順次オブジェクト変換部205に渡す。
ステップS602で、オブジェクト変換部205は受信したメッセージのメッセージ本文402に含まれる先頭のXMLの要素404をメモリ209に書き込む。
ステップS603で、オブジェクト変換部205はスキーマ定義405を参照してメモリ209に書き込んだXMLの要素404が配列の要素か否かを判定する。配列の要素でない場合(ステップS603において「NO」)は、ステップS604に移行する。ステップS604で、オブジェクト変換部205はXMLの要素404をオブジェクトに変換し、ステップS613に移行する。
配列の要素である場合(ステップS603において「YES」)は、ステップS605に移行する。ステップS605で、オブジェクト変換部205はメモリ209上に配列用オブジェクト501を作成する。
ステップS606で、オブジェクト変換部205はメモリ209に書き込んだXMLの要素404をオブジェクトに変換し、変換後の要素をメモリ209に書き込む。
ステップS607で、オブジェクト変換部205はメッセージ本文402に含まれるXMLの要素404をすべてオブジェクトに変換したか否かを判定する。すべて変換した場合(ステップS607において「YES」)は、ステップS612に移行する。ステップS612で、オブジェクト変換部205は配列用オブジェクト501に配列の要素数504を記録する。
未変換のXMLの要素404がある場合(ステップS607において「NO」)は、ステップS608に移行する。ステップS608で、オブジェクト変換部205は、これまでに変換したXMLの要素数が事前に設定した閾値を超えたか否かを判定する。閾値を超えていない場合(ステップS608において「NO」)は、ステップS609に移行する。ステップS609で、オブジェクト変換部205は次のXMLの要素404をメモリ209に書き込み、ステップS606に戻る。
閾値を超えている場合(ステップS608において「YES」)、ステップS610で、一時記憶部208は残りのXMLの要素404をそのままの形態で一時保存ファイル503に保存する。なお、一時記憶部208は、このステップS610において、オブジェクトに変換しなかった要素だけでなく、オブジェクトに変換した要素も一時保存ファイル503に保存してもよい。
ステップS611で、オブジェクト変換部205は一時保存ファイル503のファイル参照505をメモリ209上の配列用オブジェクト501の属性に記録する。
ステップS612で、オブジェクト変換部205は配列の要素数504をメモリ209上の配列用オブジェクト501の属性に記録する。
ステップS613で、オブジェクト変換部205はアプリケーション204にオブジェクトを渡す。メッセージ本文402が配列でない場合(ステップS603において「NO」)はステップS604において変換したオブジェクトを渡す。メッセージ本文402が配列であ場合(ステップS603において「YES」)はステップS605において作成した配列用オブジェクト501を渡す。
以上でオブジェクト変換部205はアプリケーション204が処理可能な形態のオブジェクトをアプリケーション204に渡すことができる。
次に、図7を用いて、アプリケーション204が関数を実行するときの動作を説明する。図7はアプリケーション204の関数実行時における通信装置201の動作の一例を示すフローチャートである。フローチャートは制御部301が記憶部305に保存されたコンピュータプログラムを実行することで処理される。ここでは、配列用オブジェクト501の処理を中心に説明し、本発明の本質に影響しないアプリケーション204固有の動作は説明しない。
ステップS701で、アプリケーション204はオブジェクトを引数とした関数の実行を開始する。
ステップS702で、アプリケーション204は関数の実行で必要となったオブジェクトが配列の要素であるか否かを判定する。配列の要素でない場合(ステップS702において「NO」)は、そのオブジェクトはすでにステップS604でオブジェクトに変換済みである。そこで、そのオブジェクトを使用して関数の実行を継続し、ステップS707に移行する。
配列の要素である場合(ステップS702において「YES」)は、ステップS703に移行する。ステップS703で、アプリケーション204は配列用オブジェクト501のgetItem507を用いて配列の要素のオブジェクトをオブジェクト変換部205に要求する。
ステップS704で、オブジェクト変換部205は要求された配列の要素をオブジェクトに変換済みか否かを判定する。
メモリ209上にある要求された要素がオブジェクトに変換済みの場合(ステップS704において「YES」)は、ステップS706に移行して、そのオブジェクトをメモリ209から読み出し、アプリケーション204に渡す。
未変換の場合(ステップS704において「NO」)は、ステップS705に移行する。
ステップS705で、一時記憶部208は対応するXMLの要素404を一時保存ファイル503からメモリ209に書き込み、オブジェクト変換部205がオブジェクトに変換し、変換後の要素をメモリ209に書き込む。また、一時記憶部208は当該XMLの要素404を一時保存ファイル503から削除する。ステップS706で、オブジェクト変換部205は変換したオブジェクトをアプリケーション204に戻す。
ステップS707で、アプリケーション204は関数が終了したか否かを判定する。終了していない場合(ステップS707において「NO」)はステップS702に戻り、実行を継続する。
終了した場合(ステップS707において「YES」)はステップS708で、関数の戻り値のオブジェクトをオブジェクト変換部205に戻す。
ステップS709で、一時記憶部208は、一時保存ファイル503が存在していれば削除する。そして、戻り値のオブジェクトをXMLの要素404に変換して、メッセージに含めてサービスリクエスタ202に送信する。
以上より、本実施形態によればアプリケーション204にメッセージを直接処理させることなく、メモリ209を圧迫しないメッセージ受信が可能となる。
なお、図6に示すステップS608において、配列の要素数が閾値を越えたか否かを判定しているが、その時点でXMLの要素404が使用しているメモリの量を基準に判定してもよい。また、その時点でのメモリの空き容量を基準に判定してもよい。これにより、他の用途で使用しているメモリ209の状況に合わせてオブジェクト変換部205が使用するメモリ量を判断できる。
また、図6に示すステップS603において、XMLの要素404が配列の要素であると判定された直後にステップS610に移行してもよい。これにより、アプリケーション204の関数実行前のオブジェクト変換にかかる時間を短縮できる。この場合もアプリケーション204がメッセージを直接処理できなくてもよいという利点は損なわれない。
<第2の実施形態>
第1の実施形態では、通信装置201が配列データを含むメッセージを受信した場合を説明した。本実施形態では通信装置201が配列データを含むメッセージを送信する場合を説明する。
図8を用いて本実施形態の概要を説明する。図8は送信するSOAPメッセージの処理方式を比較する図である。
図8(a)に示すように、配列の要素であるオブジェクト807をすべてメモリ805に書き込んだ後、変換部803がXMLの要素808に変換するとメモリ805を圧迫する可能性がある。そこで、図8(b)に示すとおり、アプリケーション804がメモリ805に展開したオブジェクトを一つずつ又はメモリを圧迫しない程度の個数をまとめて変換部803がXMLの要素808に変換し、それを一時記憶領域806に保存する。変換済みのオブジェクト807はメモリ805から削除する。また、アプリケーション804は一時記憶領域806から適宜オブジェクトをメモリ805に書き込む。すべてのオブジェクトがXMLの要素に変換し終わったら、変換部803はXMLの要素を含んだSOAPメッセージ801を送信する。
本実施形態におけるシステムの構成やハードウェア構成は第1の実施形態で説明したものと同様のため、説明を省略する。
図9は通信装置201がメッセージを送信する場合の内部動作の一例を示すフローチャートである。フローチャートは制御部301が記憶部305に保存されたコンピュータプログラムを実行することで処理される。
ステップS901で、アプリケーション204は送信するオブジェクトをオブジェクト変換部205に渡す。
ステップS902で、オブジェクト変換部205は、受け取ったオブジェクトが配列用オブジェクト501であるか否かを判定する。配列用オブジェクト501でない場合(ステップS902において「NO」)は、ステップS903に移行する。ステップS903で、オブジェクト変換部205はオブジェクトをXMLの要素404に変換し、ステップS910に移行する。
配列用オブジェクト501である場合(ステップS902において「YES」)は、ステップS904に移行する。
ステップS904で、一時記憶部208は配列の先頭のオブジェクトをメモリ209に書き込む。すでに当該オブジェクトがメモリ209上にある場合には、この操作は必要ない。
ステップS905で、オブジェクト変換部205は配列の要素の当該オブジェクトをXMLの要素404に変換する。
ステップS906で、オブジェクト変換部205は配列に含まれるオブジェクトをすべて変換したか否かを判定する。
未変換のオブジェクトがある場合(ステップS90において「NO」)はステップS907に移行する。
ステップS907で、変換済みでまだメモリ209上にあるXMLの要素404が事前に設定した閾値を超えたか否かを判定する。超えていない場合(ステップS907において「NO」)は、ステップS908で、一時記憶部208は次のオブジェクトをメモリ209に書き込む。すでに当該オブジェクトがメモリ209上にある場合には、この操作は必要ない。その後、ステップS905に戻る。
超えている場合(ステップS907において「YES」)は、ステップS909に移行する。ステップS909で、一時記憶部208は、変換済みのXMLの要素404を一時保存ファイル503に保存し、保存したXMLの要素404をメモリ209から削除する。その後、ステップS908に移行する。
アプリケーション204が送信を要求するすべてのオブジェクトを変換した場合(ステップS905において「YES」)は、ステップS910に移行する。
ステップS910で、オブジェクト変換部205はXMLの要素404含んだSOAPメッセージを作成して、メッセージ送信部206に渡す。一時保存ファイル503にXMLの要素が保存されている場合は、そこからXMLの要素をメモリ209に逐次書き込んでSOAPメッセージを生成する。すべてのXMLの要素をメッセージ送信部206に渡し終わったら、配列用オブジェクト501と一時保存ファイル503とが存在する場合にはそれらを削除する。
以上より、本実施形態によればアプリケーション104にメッセージを処理させることなく、メモリ209を圧迫しないメッセージ送信が可能となる。
<その他の実施形態>
なお、本発明は、複数の機器(例えばホストコンピュータ、インターフェース機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。
また、本発明の目的は、前述した機能を実現するコンピュータプログラムのコードを記録した記憶媒体を、システムに供給し、そのシステムがコンピュータプログラムのコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたコンピュータプログラムのコード自体が前述した実施形態の機能を実現し、そのコンピュータプログラムのコードを記憶した記憶媒体は本発明を構成する。また、そのプログラムのコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した機能が実現される場合も含まれる。
さらに、以下の形態で実現しても構わない。すなわち、記憶媒体から読み出されたコンピュータプログラムコードを、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込む。そして、そのコンピュータプログラムのコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行って、前述した機能が実現される場合も含まれる。
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するコンピュータプログラムのコードが格納されることになる。
受信したSOAPメッセージの処理方式を比較する図である。 本発明の実施形態におけるメッセージ通信システムの構成の一例である。 本発明の実施形態における通信装置201のハードウェア構成の一例を示すブロック図である。 本発明の実施形態におけるメッセージ401401の一例とそのスキーマ定義405の一例である。 本発明の実施形態における配列用オブジェクトの一例を表す模式図である。 本発明の第1の実施形態における通信装置201がメッセージを受信する場合の内部動作を示すフローチャートである。 本発明の第1の実施形態におけるアプリケーション204の関数実行時における通信装置201の動作の一例を示すフローチャートである。 送信するSOAPメッセージの処理方式を比較する図である。 本発明の第2の実施形態における通信装置201がメッセージを送信する場合の内部動作の一例を示すフローチャートである。
符号の説明
101 SOAPメッセージ
102 通信装置
103 変換部
104 アプリケーション
105 メモリ
106 一時記憶域
107 XMLの要素
108 オブジェクト
109 オブジェクト
110 XMLの要素

Claims (7)

  1. 他の装置から受信したメッセージに含まれる要素をアプリケーションが処理可能な形態の情報に変換するメッセージ通信装置であって、
    受信したメッセージに含まれる前記要素を記憶するメモリと、
    記要素を前記情報に変換する変換手段と、
    前記要素の個数が複数である場合に、該複数の要素のうちの少なくとも一部を、前記変換手段により前記情報に変換せずに保存する保存手段と
    を備え、
    前記変換手段は、前記情報に変換せずに保存された要素を前記アプリケーションからの要求に応じて前記保存手段から読み出し、前記情報に変換して該アプリケーションに提供する
    ことを特徴とするメッセージ通信装置。
  2. 前記保存手段は、前記要素の個数が所定の数よりも多い場合に前記複数の要素のうちの少なくとも一部を、前記変換手段により前記情報に変換せずに保存することを特徴とする請求項1に記載のメッセージ通信装置。
  3. 前記変換手段は、前記要素を前記アプリケーションが処理可能なオブジェクトに変換することを特徴とする請求項1に記載のメッセージ通信装置。
  4. 他の装置から受信したメッセージに含まれる要素をアプリケーションが処理可能な形態の情報に変換し、受信したメッセージに含まれる前記要素を記憶するメモリと前記要素を前記情報に変換する変換手段とを備えるメッセージ通信装置の制御方法であって、
    保存手段が、前記要素の個数が複数である場合に該複数の要素のうちの少なくとも一部を、前記変換手段が前記情報に変換せずに前記メモリに保存する保存工程と、
    前記変換手段が、前記保存工程において保存された前記要素を前記アプリケーションからの要求に応じて前記メモリから読み出し、前記情報に変換して該アプリケーションに提供する工程と
    有することを特徴とするメッセージ通信装置の制御方法。
  5. 前記保存工程において、前記要素の個数が所定の数よりも多い場合に前記複数の要素のうちの少なくとも一部を、前記変換手段により前記情報に変換せずに保存することを特徴とする請求項4に記載の制御方法。
  6. 前記変換手段は、前記要素を前記アプリケーションが処理可能なオブジェクトに変換することを特徴とする請求項4に記載の制御方法。
  7. コンピュータを請求項1乃至のいずれか1項に記載のメッセージ通信装置として機能させるためのコンピュータプログラム。
JP2008066738A 2008-03-14 2008-03-14 メッセージ通信装置及びその制御方法及びコンピュータプログラム Expired - Fee Related JP5014212B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008066738A JP5014212B2 (ja) 2008-03-14 2008-03-14 メッセージ通信装置及びその制御方法及びコンピュータプログラム
US12/394,460 US8739181B2 (en) 2008-03-14 2009-02-27 Processing apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008066738A JP5014212B2 (ja) 2008-03-14 2008-03-14 メッセージ通信装置及びその制御方法及びコンピュータプログラム

Publications (3)

Publication Number Publication Date
JP2009223579A JP2009223579A (ja) 2009-10-01
JP2009223579A5 JP2009223579A5 (ja) 2011-04-28
JP5014212B2 true JP5014212B2 (ja) 2012-08-29

Family

ID=41064429

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008066738A Expired - Fee Related JP5014212B2 (ja) 2008-03-14 2008-03-14 メッセージ通信装置及びその制御方法及びコンピュータプログラム

Country Status (2)

Country Link
US (1) US8739181B2 (ja)
JP (1) JP5014212B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5249092B2 (ja) * 2009-03-09 2013-07-31 Necシステムテクノロジー株式会社 情報処理装置、多次元配列の展開処理方法及びプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2413697A1 (en) * 2002-12-06 2004-06-06 Ibm Canada Limited-Ibm Canada Limitee Transformations as web services
US6985910B2 (en) * 2003-02-06 2006-01-10 International Business Machines Corporation Tilting tree spinning cones method and system for mapping XML to n-dimensional data structure using a single dimensional mapping array
JP4114873B2 (ja) * 2004-02-17 2008-07-09 インターナショナル・ビジネス・マシーンズ・コーポレーション サーバ装置、サービス方法、プログラム及び記録媒体
US8296354B2 (en) * 2004-12-03 2012-10-23 Microsoft Corporation Flexibly transferring typed application data
US7359910B2 (en) * 2005-06-30 2008-04-15 Microsoft Corporation Scalable transformation and tree based query language node—set selection
US20070198482A1 (en) * 2006-02-21 2007-08-23 International Business Machines Corporation Dynamic data formatting during transmittal of generalized byte strings, such as XML or large objects, across a network
FI123499B (fi) * 2008-05-05 2013-06-14 Sensinode Oy Menetelmä ja laite viestien prosessoimiseksi

Also Published As

Publication number Publication date
US8739181B2 (en) 2014-05-27
JP2009223579A (ja) 2009-10-01
US20090235279A1 (en) 2009-09-17

Similar Documents

Publication Publication Date Title
CN104866383B (zh) 一种接口调用方法、装置及终端
CN102214099B (zh) 用于autosar的rte代码自动生成方法
CN111046634A (zh) 文档处理方法、装置、计算机设备以及存储介质
JP5014212B2 (ja) メッセージ通信装置及びその制御方法及びコンピュータプログラム
US20050071422A1 (en) Method, system, and computer program product for an automation tool adapter for use with multiple different automation tools
JP2015108857A (ja) システム、その制御方法、情報処理装置、その制御方法及びプログラム
CN100511212C (zh) 电子表格文件的处理方法及处理装置
US20030084008A1 (en) System for purchasing postage electronically in a distributed processing environment
JP2022041717A (ja) 情報処理システム、情報処理システムの制御方法
JP2000284926A (ja) 印刷処理システム及び印刷処理方法
CN101907979A (zh) 图像形成装置
JP4606862B2 (ja) データ変換装置
JP2003308512A (ja) データ処理方法、プログラム及び情報処理装置
JP2001092814A (ja) 文書送信方法および文書送信システム、ならびに文書変換プログラムを記録した記録媒体
JP2006201843A (ja) 通信方法及び装置
CN101930451A (zh) 用于存储高效地搜索至少一个询问数据元素的方法和装置
JP2009205264A (ja) ウェブサービス要求処理装置、ウェブサービス要求処理方法、及びウェブサービス要求処理システム
JP5012760B2 (ja) 情報処理装置
KR100330011B1 (ko) 필터를사용한다중파일을업로드하는방법및시스템
JP2008009575A (ja) Web監視システム及びWeb監視方法
US8055083B2 (en) Portable bitmap rendering systems and methods
JP6381190B2 (ja) クライアント装置、システム、情報処理方法及びプログラム
JPH10198530A (ja) プリンタシステム
KR100448865B1 (ko) 인터넷상에서 서로 다른 시스템 모듈을 가지는 시스템관리 방법
JP4189592B2 (ja) 画像データ管理装置、画像形成装置、及び画像データ管理方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110309

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120426

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120507

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120605

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150615

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 5014212

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150615

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees