(57)【要約】【課題】データの送受信量を削減するとともに、ＸＭＬデータ生成のために使用するメモリ消費量を抑える。【解決手段】クライアント１００は、変換部１０２において、ひとつの処理の対象又は結果であるバイナリデータをテキストデータに変換し、タグ付与部１０４において、変換されたテキストデータに対して、当該テキストデータを一要素として定義するためのタグを付与し、送受信部１０６において、タグが付与されたテキストデータをＡＰサーバ２００に対して送信する。【選択図】図１
2011002905.tif 000002
【特許請求の範囲】
【請求項１】
通信回線を介して受信装置に対してテキストデータを送信する送信装置であって、
ひとつの処理の対象又は結果であるバイナリデータをテキストデータに変換する変換手段と、
前記変換手段により変換された前記テキストデータに対して、前記テキストデータを一要素として定義するためのタグを付与するタグ付与手段と、
前記タグ付与手段によりタグが付与された前記テキストデータを前記受信装置に対して送信する送信手段とを有することを特徴とする送信装置。
【請求項２】
前記変換手段により変換された前記テキストデータを分割する分割手段を更に有し、
前記タグ付与手段は、前記分割手段により前記テキストデータが分割された場合、分割された各テキストデータに対して、前記各テキストデータの夫々を一要素として定義するためのタグを付与することを特徴とする請求項１に記載の送信装置。
【請求項３】
通信回線を介して受信装置に対してテキストデータを送信する送信装置の制御方法であって、
ひとつの処理の対象又は結果であるバイナリデータをテキストデータに変換する変換ステップと、
前記変換ステップにより変換された前記テキストデータに対して、前記テキストデータを一要素として定義するためのタグを付与するタグ付与ステップと、
前記タグ付与ステップによりタグが付与された前記テキストデータを前記受信装置に対して送信する送信ステップとを含むことを特徴とする送信装置の制御方法。
【請求項４】
通信回線を介して受信装置に対してテキストデータを送信する送信装置の制御方法をコンピュータに実行させるためのプログラムであって、
同一処理の対象又は結果であるバイナリデータをテキストデータに変換する変換ステップと、
前記変換ステップにより変換された前記テキストデータに対して、前記テキストデータを一要素として定義するためのタグを付与するタグ付与ステップと、
前記タグ付与ステップによりタグが付与された前記テキストデータを前記受信装置に対して送信する送信ステップとをコンピュータに実行させるためのプログラム。
【請求項５】
送信装置と受信装置とが通信回線を介してデータの送受信を行う情報処理システムであって、
前記送信装置は、
バイナリデータをテキストデータに変換するシリアライズ処理手段と、
前記シリアライズ処理手段により変換されたテキストデータに対して、前記テキストデータを一要素として定義するためのタグを付与するタグ付与手段と、
前記タグ付与手段によりタグが付与された前記テキストデータを前記受信装置に対して送信する送信手段とを有し、
前記受信装置は、
ネットワークを介して前記送信装置からタグが付与された前記テキストデータを受信する受信手段と、
受信した前記テキストデータからタグを除去し、オブジェクトデータに変換するデシリアライズ処理手段とを有することを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信回線を介して受信装置に対してテキストデータを送信する際に使用される技術に関するものである。
【背景技術】
【０００２】
Ｗｅｂサービスでは、クライアント／サーバ間ではＳＯＡＰ（Simple Object Access Protocol）が使われ、ＸＭＬ（Xtensible Markup Language）による汎用性の高い通信が可能となっている。なお、ここでいうＷｅｂサービスとは、ｈｔｔｐ上でＳＯＡＰを使ってＸＭＬをやりとりすることにより、分散したアプリケーション同士が緩やかに連携して協働する仕組みである。また、ＳＯＡＰとは、他のコンピュータにあるデータやサービスを呼び出すためのプロトコルで、ＸＭＬでメッセージの交換がなされる。ＳＯＡＰを用いると、異なる環境のコンピュータ間でも通信が可能となる。
【０００３】
図５は、ＳＯＡＰによるＸＭＬデータでの通信方法の概略を説明するための図である。図５では、クライアント５００からネットワークを介してアプリケーションサーバ（以下"ＡＰサーバ"）６００に接続されたデータベース（ＤＢ）に登録や検索の処理指示を行い、その結果を再度ネットワークを介してクライアント５００が受信するという例を挙げて説明する。
【０００４】
例えばデータ登録処理であると、クライアント５００のアプリケーション（図示せず）は、登録するデータをオブジェクト（バイナリデータ）として生成し、ＳＯＡＰの通信機能に渡す。ＳＯＡＰの通信機能は、このオブジェクトをｈｔｔｐで送信可能なＸＭＬデータ（テキストデータ）に変換する。このようにバイナリデータであるオブジェクトをテキストデータであるＸＭＬデータに変換する処理を「シリアライズ」という。続いて、ＳＯＡＰの通信機能は、ＸＭＬデータをＡＰサーバ６００に送信する。
【０００５】
ＡＰサーバ６００では、テキストデータであるＸＭＬデータをオブジェクトに戻す。このようにＸＭＬデータをバイナリデータであるオブジェクトに戻す処理を「デシリアライズ」という。ＡＰサーバ６００ではオブジェクトに戻されたデータをＤＢに登録する処理等を行う。
【０００６】
反対に、ＡＰサーバ６００からクライアント５００への処理結果（例えば、登録結果や検索結果）の送信処理においては、例えばＡＰサーバ６００がＤＢから検索したオブジェクトをＸＭＬデータに変換する処理（シリアライズ）を行う。そして、ＡＰサーバ６００はＸＭＬデータをクライアント５００に送信する（返す）。クライアント５００では、ＸＭＬデータをオブジェクトに変換する処理（デシリアライズ）を行う。
【０００７】
なお、バイナリデータをテキストデータに変換するシリアライズ、そしてその逆にテキストデータをバイナリデータに変換するデシリアライズについては、一般的に良く使われる技術であるため、ここでは詳細な情報処理についての説明は省略する。
【０００８】
ところで、ＸＭＬデータは汎用性が高いというメリットがあるが、その一方でＸＭＬデータでの通信はタグ付けされたテキストデータで行われるため、バイナリデータよりデータサイズが大きくなり、データの送受信量が大きくなってしまう。従って、一般的には大規模データ処理にはそれほど向いてはいない。
【０００９】
図６は、シリアライズによってオブジェクトから生成されるＸＭＬデータを具体的に説明するための図である。なお、本説明では理解しやすくするためにオブジェクトの例では文字で表示された「学生」「名前ＡＡ」など、人が読めるテキストデータで表現しているが、実際にはバイナリデータで構成されている。このバイナリデータであるオブジェクトをシリアライズすることによってテキストデータで構成されたＸＭＬデータが生成される。
【００１０】
図６に示すように、シリアライズによってオブジェクトから生成されるＸＭＬデータには、オブジェクト内の属性毎に対応したタグ、例えば「名前」という属性に対しては＜名前＞＜／名前＞というタグが多数配置される。これらのタグで挟まれた部分には個々のデータ例えば「ＡＡ」や「男」などが記載されている。このようにＸＭＬデータは、タグが多数付与されたテキストデータであるため、同じ内容の情報であってもバイナリコードと比較してデータサイズが大きくなり、データの送受信量が大きくなってしまうという特性がある。
【００１１】
特にＳＯＡＰではＸＭＬデータでの通信を行うためクライアント及びサーバでシリアライズ／デシリアライズの処理が必要になるというデメリットもある。これによってシリアライズ／デシリアライズの処理により、メモリ消費量が増大し、パフォーマンス低下の要因となってしまうという課題がある。
【００１２】
特許文献１には、デシリアライズによる処理コスト増、即ちメモリ消費やそれに伴うハングアップ等の危険の影響を避けるために工夫した技術が開示されている。例えば、クライアントから何かリクエストすると、Ｗｅｂサービス側からＸＭＬデータが戻ってくるが、通常であればここでクライアントはＸＭＬデータに対してデシリアライズするところを、ＸＭＬデータのままクライアントのアプリケーションに渡す、ということを行う。これによってクライアントでのデシリアライズを省略でき、処理コストの低減を図ることができる。
【００１３】
しかしながら、これはクライアントとＷｅｂサービスで行われる一連のシリアライズ→デシリアライズ→シリアライズ→デシリアライズという処理の流れの最後のデシリアライズを行わないという効果しか得ることができない。従って、ＸＭＬデータに含まれる多数のタグに起因するデータ送受信量の増加、ＸＭＬデータ生成のためのメモリ消費量の増大を抑えることはできない。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００６−２６０２２０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
以上のように、Ｗｅｂサービスで、ＸＭＬへのデータ変換を行った上でデータ送受信するような仕組みには多くの課題があり、特に大規模データを送受信して情報処理を行う場合には影響が大きい。
【００１６】
そこで、本発明の目的は、ＳＯＡＰによるデータの送受信量を削減するとともに、ＸＭＬデータ生成のために使用するメモリ消費量を抑えることにある。
【課題を解決するための手段】
【００１７】
本発明の送信装置は、通信回線を介して受信装置に対してテキストデータを送信する送信装置であって、ひとつの処理の対象又は結果であるバイナリデータをテキストデータに変換する変換手段と、前記変換手段により変換された前記テキストデータに対して、前記テキストデータを一要素として定義するためのタグを付与するタグ付与手段と、前記タグ付与手段によりタグが付与された前記テキストデータを前記受信装置に対して送信する送信手段とを有することを特徴とする。
本発明の送信装置の制御方法は、通信回線を介して受信装置に対してテキストデータを送信する送信装置の制御方法であって、ひとつの処理の対象又は結果であるバイナリデータをテキストデータに変換する変換ステップと、前記変換ステップにより変換された前記テキストデータに対して、前記テキストデータを一要素として定義するためのタグを付与するタグ付与ステップと、前記タグ付与ステップによりタグが付与された前記テキストデータを前記受信装置に対して送信する送信ステップとを含むことを特徴とする。
本発明のプログラムは、通信回線を介して受信装置に対してテキストデータを送信する送信装置の制御方法をコンピュータに実行させるためのプログラムであって、ひとつの処理の対象又は結果であるバイナリデータをテキストデータに変換する変換ステップと、前記変換ステップにより変換された前記テキストデータに対して、前記テキストデータを一要素として定義するためのタグを付与するタグ付与ステップと、前記タグ付与ステップによりタグが付与された前記テキストデータを前記受信装置に対して送信する送信ステップとをコンピュータに実行させることを特徴とする。
【発明の効果】
【００１８】
本発明においては、ひとつのリクエストに対する処理の対象又は結果であるバイナリデータをテキストデータに変換し、当該テキストデータに対して当該テキストデータを一要素として定義するためのタグを付与することにより、送信するテキストデータに付与するタグの量を大幅に削減するようにしている。従って、本発明によれば、データの送受信量を削減することが可能となるとともに、ＸＭＬデータ生成のために使用するメモリ消費量を抑えることが可能となる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施形態に係る情報処理システムの機能的な構成を示すブロック図である。
【図２】クライアント、ＡＰサーバのハードウェア構成を示すブロック図である。
【図３】クライアント、ＡＰサーバのＸＭＬデータ送信に係る処理の流れを示すフローチャートである。
【図４】クライアント、ＡＰサーバにおけるデータの変換処理を説明するための図である。
【図５】ＳＯＡＰによるＸＭＬデータでの通信方法の概略を説明するための図である。
【図６】シリアライズによってオブジェクトから生成されるＸＭＬデータを具体的に説明するための図である。
【発明を実施するための形態】
【００２０】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【００２１】
図１は、本発明の実施形態に係る情報処理システムの機能的な構成を示すブロック図である。図１に示すように、本実施形態に係る情報処理システムは、クライアント１００とＡＰサーバ２００とがインターネットなどのネットワークを介して接続され、ＡＰサーバ２００はＬＡＮによってＤＢ３００に接続されている。
【００２２】
クライアント１００は、ＡＰサーバ２００に対してデータ検索等のリクエストを行う端末である。ＡＰサーバ２００は、クライアント１００からのリクエストに応じてＤＢ３００に対するデータ検索等を行い、検索結果をレスポンスとしてクライアント１００に返す。
【００２３】
クライアント１００は、その機能構成として、変換部１０２、タグ付与部１０４、送受信部１０６及びデシリアライズ部１０８を備える。なお、図１には図示しないが、後述するようにクライアント１００にはそのほかにも各種機能が備わっており、上記リクエストは例えばアプリケーションソフトウェア等がユーザの指示を受けて発するものである。
【００２４】
変換部１０２は、例えばクライアント１００がＤＢ登録を要求するバイナリデータ（オブジェクト）１０１をテキストデータ１０３に変換する。なお、従来のシリアライズとは情報処理が異なる。詳細については後述する。
【００２５】
タグ付与部１０４は、ＤＢ登録対象となるバイナリデータ１０１から変換部１０２によって変換されたテキストデータ１０３に対してタグを付与することにより、ＸＭＬデータ１０５を生成する。このＸＭＬデータを生成する処理も従来のシリアライズとは情報処理が異なるが、詳細については後述する。
【００２６】
送受信部１０６は、タグ付与部１０４により生成されたＸＭＬデータ１０５をＡＰサーバ２００に送信したり、ＡＰサーバ２００からＤＢ検索結果のバイナリデータ２０６に対応するＸＭＬデータ１０７を受信する。
【００２７】
デシリアライズ部１０８は、送受信部１０６がＡＰサーバ２００から受信したＸＭＬデータ１０７をバイナリデータ１０９に変換する処理（デシリアライズ）を行う。ここで生成されるバイナリデータ１０９が例えばＤＢ３００の検索結果である。
【００２８】
ＡＰサーバ２００は、その機能構成として、送受信部２０１、タグ付与部２０３、変換部２０５及びデシリアライズ部２０７を備える。上記クライアント１００と同様、図１には図示しないが、後述するようにＡＰサーバ２００にはそのほかにも各種機能が備わっている。
【００２９】
送受信部２０１は、クライアント１００からリクエストのバイナリデータ１０１に対応するＸＭＬデータ１０５を受信したり、後述するタグ付与部２０３により生成されたＸＭＬデータ２０８をクライアント１００に送信したりする。
【００３０】
デシリアライズ部２０７は、送受信部２０１がクライアント１００から受信したＸＭＬデータ２０２をバイナリデータ２０６に変換する処理（デシリアライズ）を行う。ここで生成されるバイナリデータ２０６が例えばＤＢ３００への登録対象となるデータである。なお、クライアントから発するＸＭＬデータ１０５と、送受信部２０１が受信したＸＭＬデータ２０２は同一のものであるが、説明の便宜上、別の符号を付して説明する。
【００３１】
変換部２０５は、クライアント１００からのリクエストに対応する検索結果であるバイナリデータ（オブジェクト）２０６をテキストデータ２０４に変換する。例えば、リクエストがＤＢ３００へのデータ登録である場合、その登録が完了した旨の登録結果をテキストデータ２０４に変換する。なお、従来のシリアライズとは情報処理が異なる。詳細については後述する。
【００３２】
タグ付与部２０３は、変換部２０５で変換されたテキストデータ２０４に対してタグを付与することにより、ＸＭＬデータ２０８を生成する。このＸＭＬデータを生成する処理も従来のシリアライズとは情報処理が異なるが、詳細については後述する。
【００３３】
上述したクライアント１００の送受信部１０６とＡＰサーバ２００の送受信部２０１との間におけるＸＭＬデータの送受信は、ＳＯＡＰによって行われる。
【００３４】
図２は、本実施形態に係るクライアント１００、ＡＰサーバ２００のハードウェア構成を示すブロック図である。
【００３５】
ＣＰＵ３０１は、システムバスに接続される各デバイスやコントローラを統括的に制御する。ＲＯＭ３０３又はＨＤ（ハードディスク）３０９には、ＣＰＵ３０１の制御プログラムであるＢＩＯＳ（Basic Input / Output System）やオペレーティングシステムプログラム、最適解算出装置が実行する例えば図３に示す処理のプログラム等が記憶されている。
【００３６】
なお、図２の例では、ＨＤ３０９はクライアント１００、ＡＰサーバ２００の内部に配置された構成としているが、他の実施形態としてＨＤ３０９に相当する構成がクライアント１００、ＡＰサーバ２００の外部に配置された構成としてもよい。また、本実施形態に係る例えば図３に示す処理を行うためのプログラムは、フレキシブルディスク（ＦＤ）やＣＤ−ＲＯＭ等、コンピュータ読み取り可能な記録媒体に記録され、それらの記録媒体から供給される構成としてもよいし、インターネット等の通信媒体を介して供給される構成としてもよい。
【００３７】
ＲＡＭ３０２は、ＣＰＵ３０１の主メモリ、ワークエリア等として機能する。ＣＰＵ３０１は、処理の実行に際して必要なプログラム等をＲＡＭ３０２にロードして、プログラムを実行することで各種動作を実現するものである。
【００３８】
ＨＤ３０９やＦＤ３０８は、外部メモリとして機能する。ＣＰＵ３０１は、処理の実行に際して必要なプログラム等をＲＡＭ３０２にロードして、プログラムを実行することで各種動作を実現するものである。
【００３９】
ディスクコントローラ３０７は、ＨＤ３０９やＦＤ３０８等の外部メモリへのアクセスを制御する。通信Ｉ／Ｆコントローラ３０６は、インターネットやＬＡＮと接続し、例えばＴＣＰ／ＩＰによって外部との通信を制御するものである。
【００４０】
ディスプレイコントローラ３１０は、ディスプレイ３１１における画像表示を制御する。
【００４１】
ＫＢコントローラ３０４は、ＫＢ（キーボード）３０５からの操作入力を受け付け、ＣＰＵ３０１に対して送信する。なお、図示していないが、ＫＢ３０５の他に、マウス等のポインティングデバイスもユーザの操作手段として本実施形態に係るクライアント１００、ＡＰサーバ２００に適用可能である。
【００４２】
なお、図１に示す変換部１０２、タグ付与部１０４、送受信部１０６、デシリアライズ部１０８、送受信部２０１、タグ付与部２０３、変換部２０５、デシリアライズ部２０７は、例えばＨＤ３０９内に記憶され、必要に応じてＲＡＭ３０２にロードされるプログラム及びそれを実行するＣＰＵ３０１によって実現される構成である。
【００４３】
図３は、クライアント１００、ＡＰサーバ２００のＸＭＬデータ送信に係る処理の流れを示すフローチャートである。図４は、クライアント１００、ＡＰサーバ２００におけるデータの変換処理を説明するための図である。以下では、図３及び図４を用いてクライアント１００、ＡＰサーバ２００の処理を個別に説明する。
【００４４】
先ず、クライアント１００の動作から説明する。クライアント１００の変換部１０２は、例えばＤＢ登録対象のバイナリデータ１０１をテキストデータ１０３に変換する（ステップＳ３０１）。図４に示すように、ここでバイナリデータ１０１は、改行コードなどが取り除かれ、バイナリデータ１０１内に示される文字列のみのテキストデータ１０３に変換される。なお、本説明では理解しやすくするためにバイナリデータ１０１の例では文字で表示された「学生」「名前ＡＡ」など、人が読めるテキストデータで表現しているが、実際にはバイナリデータで構成されている。
【００４５】
続いて、クライアント１００のタグ付与部１０４は、テキストデータ１０３に対して、当該テキストデータ１０３を一要素として定義するためのタグを付与することにより、ＸＭＬデータ１０５を生成する（ステップＳ３０２）。図４に示すように、ここでテキストデータ１０３の先頭部分と最終部分のみにタグとして＜ＤＡＴＡ＞と＜／ＤＡＴＡ＞が付与されたＸＭＬデータ１０５が生成される。従来技術で説明した図６のＸＭＬデータと比較すると大幅にタグの数を減らしている。なお、この＜ＤＡＴＡ＞と＜／ＤＡＴＡ＞というタグはあくまでも例示でありＸＭＬに適合した方式であれば具体的なタグ名は問わない。
【００４６】
続いて、クライアント１００の送受信部１０６は、ＸＭＬデータ１０５をＡＰサーバ２００に対して送信する（ステップＳ３０３）。
【００４７】
次に、ＡＰサーバ２００の動作について説明する。送受信部２０１は、クライアント１００からＤＢ登録対象のバイナリデータ１０１に対応するＸＭＬデータ２０２を受信する。受信したＸＭＬデータ２０２をデシリアライズ部２０７がバイナリデータ２０６に変換する。このデシリアライズ処理によって図４のテキストデータが再製されることになる。
【００４８】
このようにして当初クライアントで生成されたバイナリデータ１０１と同じバイナリデータ２０６が再製されて、ＤＢ３００への登録対象のデータの登録処理を行うことができる。なお、ＤＢへの登録処理や検索処理は一般的に行われている情報処理をそのまま利用できるものであり、詳述は省略する。
【００４９】
次に、ＤＢ３００への登録処理や検索処理が行われた後に、その処理結果をクライアントに返す処理について説明する。ＡＰサーバ２００の変換部２０５は、例えばＤＢ検索結果のバイナリデータ２０６をテキストデータ２０４に変換する（ステップＳ３０１）。図４に示すように、ここでバイナリデータ２０６は、バイナリデータ２０６内に示される文字列のみのテキストデータ２０４に変換される。
【００５０】
続いて、ＡＰサーバ２００のタグ付与部２０３は、テキストデータ２０４に対して、当該テキストデータ２０４を一要素として定義するためのタグを付与することにより、ＸＭＬデータ２０８を生成する（ステップＳ３０２）。図４に示すように、ここでテキストデータ２０４の先頭部分と最終部分のみにタグが付与されたＸＭＬデータ２０８が生成される。
【００５１】
続いて、ＡＰサーバ２００の送受信部２０１は、ＸＭＬデータ２０８をクライアント１００に対して送信する（ステップＳ３０３）。以降、クライアント１００で受信したデータの処理については、上述したＡＰサーバ２００でのデータ受信後の処理と同じである。
【００５２】
上述した実施形態においては、ひとつのリクエストに対する処理（ＤＢ登録、ＤＢ検索等）の対象又は結果であるバイナリデータをテキストデータに変換し、当該テキストデータに対して当該テキストデータを一要素として定義するためのタグを付与することにより、送信するＸＭＬデータ内のタグの量を大幅に削減するようにしている。従って、本実施形態によれば、データの送受信量を削減することが可能となるとともに、ＸＭＬデータ生成のために使用するメモリ消費量を抑えることが可能となる。
【００５３】
また、クライアント１００及びＡＰサーバ２００に、変換部１０２、２０５によって生成されたテキストデータ１０３、２０４を任意のデータサイズで分割する分割部を備えてもよい。例えば、テキストデータ１０３、２０４がメモリ等に記憶された所定の閾値より大きなデータサイズである場合等に、分割部がテキストデータ１０３、２０４を分割することが考えられる。分割部でテキストデータ１０３、２０４が分割された場合、タグ付与部１０４、２０３は、分割された各テキストデータに対して、各テキストデータの夫々を一要素として定義するためのタグを付与することにより、各テキストデータ毎にＸＭＬデータを生成する。
【００５４】
このような分割処理を行ったうえでテキストデータ毎にＸＭＬデータを生成した場合、受信側では分割された各テキストデータを結合するという処理が発生する。そこで、分割してＸＭＬデータを生成する場合に備えて、送受信側のそれぞれのコンピュータには結合処理部も備える。分割してＸＭＬデータを生成する場合には、タグ付与部１０４、２０３は、そのタグとして＜ＤＡＴＡ１＞、＜ＤＡＴＡ２＞・・・などと、所定のルールでタグ自体に番号を付与するなどしておき、受信側のコンピュータの結合処理部は、当該＜ＤＡＴＡ１＞、＜ＤＡＴＡ２＞・・・というタグを受信した場合にはＸＭＬデータを一つに結合した後にデシリアライズ部でタグを取り除いてバイナリデータ化するという処理を行う。
【符号の説明】
【００５５】
１００：クライアント
１０１、１０９、２０６：バイナリデータ
１０２、２０５：変換部
１０３、２０４：テキストデータ
１０４、２０３：タブ付与部
１０５、１０７、２０２、２０８：ＸＭＬデータ
１０６、２０１：送受信部
１０８、２０７：デシリアライズ部
２００：ＡＰサーバ
３００：ＤＢ
【図１】
2011002905.tif 000003
【図２】
2011002905.tif 000004
【図３】
2011002905.tif 000005
【図４】
2011002905.tif 000006
【図５】
2011002905.tif 000007
【図６】
2011002905.tif 000008