JP2010117867A - 情報処理装置及びその方法、通信システム、プログラム、記憶媒体 - Google Patents

情報処理装置及びその方法、通信システム、プログラム、記憶媒体 Download PDF

Info

Publication number
JP2010117867A
JP2010117867A JP2008290325A JP2008290325A JP2010117867A JP 2010117867 A JP2010117867 A JP 2010117867A JP 2008290325 A JP2008290325 A JP 2008290325A JP 2008290325 A JP2008290325 A JP 2008290325A JP 2010117867 A JP2010117867 A JP 2010117867A
Authority
JP
Japan
Prior art keywords
marshalling
information
server
server device
platform
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.)
Granted
Application number
JP2008290325A
Other languages
English (en)
Other versions
JP5222103B2 (ja
JP2010117867A5 (ja
Inventor
Yasuhiko Uehara
康彦 上原
Atsushi Hirahara
厚志 平原
Tadahito Yao
唯仁 八尾
Kazuoki Takenaka
一起 竹中
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 JP2008290325A priority Critical patent/JP5222103B2/ja
Publication of JP2010117867A publication Critical patent/JP2010117867A/ja
Publication of JP2010117867A5 publication Critical patent/JP2010117867A5/ja
Application granted granted Critical
Publication of JP5222103B2 publication Critical patent/JP5222103B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】 通信する装置の機能や用途・目的に応じて適切なマーシャリング方式を自動的に決定することが可能な技術を提供する。
【解決手段】 通信データを整形してサーバ装置と通信する情報処理装置は、前記サーバ装置が対応しているマーシャリング方式の一覧を示す一覧情報を該サーバ装置から受信する受信手段と、受信した前記一覧情報に基づいて、使用するマーシャリング方式を決定する決定手段と、前記サーバ装置と送受信する通信データを、前記決定手段が決定したマーシャリング方式で整形する整形手段と、を備える。
【選択図】 図4

Description

本発明は情報処理装置及びその方法、通信システム、プログラム、記憶媒体に関し、特に、アーキテクチャが異なる計算機間で通信を行う際に通信データを整形する技術に関する。
コンピュータを用いた制御システムにおいては、複数のプログラムを同時並行的に動かして所望の制御を行うケースが多い(マルチタスク、マルチプロセス)。このとき、複数のプログラム間でデータが受け渡されるが、CPUアーキテクチャやオペレーティングシステムが異なる計算機間では、意味的(論理的)には同一のデータであっても計算機ごとに主記憶上に保存されるデータの並びが異なることが一般的である。このため、システム間におけるデータの受け渡しに際してデータレイアウトの変換が必要になる。
データレイアウトは計算機が採用しているCPUアーキテクチャと、計算機が採用しているコンパイラ等によって決定される。計算機が採用しているCPUアーキテクチャとコンパイラの組み合わせを本稿ではプラットフォームと呼ぶことにする。
計算機上での具体的なデータレイアウトは以下の3つによって決定される。
・データ長:int, float, boolなどの型ごとに割り当てられる記憶容量。
例えば、C言語においては、同じint型でもプラットフォームによってデータ長が異なる。
・エンディアン:複数バイトからなるデータ型を主記憶に格納するバイト順。
例えば、10進数で1000という値を表現するときに、主記憶上で
0xE8 0x03 0x00 0x00と配置する方法(リトルエンディアン)。
0x00 0x00 0x03 0xE8と配置する方法(ビッグエンディアン)。
のいずれかが今日一般に用いられている。
・アラインメント:例えば32ビットCPUでは、主記憶装置から4バイトを一度に読み出すことができるため、データ項目の先頭アドレスを4の倍数に揃え、主記憶アクセス高速化をはかる手法がとられている。この場合4バイトに満たないデータは、後方に隙間(パディング)が発生する。
上記のうちエンディアンはCPUによって決定され、データ長とアラインメントはコンパイラによって決定される。
異なるプラットフォーム間の通信では上記のそれぞれのレイアウト要因について変換処理が必要となる。変換処理の手順はシステムごとに若干の差異があるが、ここではその一例を示す。
・データ長:intなど、C言語の組み込み型はプラットフォームごとにサイズが異なるので、int16、int32など、明示的にサイズを規定したデータ型を独自に定義し、通信においてはそれらの独自型を使って送信データを構成することがよく行われる。
・エンディアン:送信側と受信側のエンディアンが異なる場合は、データ項目ごとにバイト順を逆転させる処理が必要となる。変換処理は送信側か受信側のどちらかで行えばよいが、変換の要否を判定するには事前に互いのエンディアンを知る必要がある。このため、ネットワーク上に流すデータは常にビッグエンディアンに変換するという規約(ネットワークバイトオーダ)で運用しているシステムも存在する。
・アラインメント:データ送信時にパディングを抜いた形式に変換しておき(シリアライズ)、受信側でパディングを挿入して(デシリアライズ)自身のアラインメントに合致するように整形する。
このようなエンディアンやアラインメントなどのデータレイアウトの変換処理のことをマーシャリングと呼ぶ。
実際の開発に際してはマーシャリング処理をアプリケーションロジックに組み込むことは通常せず、マーシャリングを専門に処理する仲介プログラム(スタブ、スケルトン)を作成し、制御プログラムとリンクして利用する。仲介プログラムはIDL(Interface Definition Language)等で記述されたインタフェース記述からIDLコンパイラによりソースコードを自動生成する方式が一般的である。
通信相手が固定的な場合は、通信相手にあわせて予め定められたマーシャリング処理を行うことで、プログラム同士の通信が実現できる。しかし、複数の制御プログラムを汎用的に扱うアプリケーションにおいて、制御プログラムに与えるデータ構造を変更したり、新しい制御プログラムを追加したりする場合は、その都度対象プログラムの仲介プログラムを作成する必要がある。さらに、それをリンクするために、アプリケーションを再構築する必要がある。
一方、組み込みシステムではマーシャリングに要する処理コストを抑える目的で、通信プラットフォームの組み合わせごとに最適化した複数のマーシャリング方式を用意している場合がある。このような環境においては、レスポンスを軽くしたい、特定のマーシャリングルーチンのテストを行いたいなど、目的によってマーシャリング方式を切り替えて使用するニーズが存在する。しかし、目的に対する最適なマーシャリング方式は自プラットフォームと接続先プラットフォームとの組み合わせによって変わるため、目的に合わせた最適なマーシャリング方式を選択する必要がある。
また、組み込みシステムの開発においては、安価で開発環境の充実した汎用PCでの開発および単体テストと、CPUが異なる実機でのテストを反復して行うことが多い。この場合、同一プログラムでも稼動プラットフォームが頻繁に変更されるため、マーシャリングの方式が安定しない。したがって、このような環境においても、プラットフォームの変更に伴う設定変更やアプリケーションの再構築を行わずにすむようにしたい。
特許文献1には、複数のマーシャリング方式の中から実際に使用するものを実行時に決定する構成が開示されている。また、特許文献2および特許文献3には、サーバ側の負荷が最小になるようにマーシャリング手順を最適化する構成が開示されている。
特登録02978807号公報 特開2000−20490号公報 特開2001−167059号公報
しかし、特許文献1の構成では、サーバ側サービスと、利用するマーシャリング方式とが、命名サーバ内にて1対1で関連付けられている。このため、このような構成では、クライアントの機能や通信の用途・目的に応じて最適なマーシャリング方式をクライアント側で柔軟に選択することができない。
また、特許文献2、特許文献3の構成においてもサーバの負荷を下げることはできるが、通信する装置の機能や通信の用途・目的に応じて最適なマーシャリング方式を柔軟に選択することができない。
本発明は上記課題に鑑みなされたものであり、通信する装置の機能や用途・目的に応じて適切なマーシャリング方式を自動的に決定することが可能な技術を提供することを目的とする。
上記目的を達成するため、本発明による情報処理装置は以下の構成を備える。即ち、
通信データを整形してサーバ装置と通信する情報処理装置であって、
前記サーバ装置が対応しているマーシャリング方式の一覧を示す一覧情報を該サーバ装置から受信する受信手段と、
受信した前記一覧情報に基づいて、使用するマーシャリング方式を決定する決定手段と、
前記サーバ装置と送受信する通信データを、前記決定手段が決定したマーシャリング方式で整形する整形手段と、
を備える。
また、本発明による情報処理方法は以下の構成を備える。即ち、
通信データを整形してサーバ装置と通信する情報処理装置の情報処理方法であって、
前記サーバ装置が対応しているマーシャリング方式の一覧を示す一覧情報を該サーバ装置から受信する受信工程と、
受信した前記一覧情報に基づいて、使用するマーシャリング方式を決定する決定工程と、
前記サーバ装置と送受信する通信データを、前記決定工程において決定されたマーシャリング方式で整形する整形工程と、
を備える。
また、本発明による通信システムは以下の構成を備える。即ち、
通信データを整形して通信を行う、サーバ装置とクライアント装置とを有する通信システムであって、
前記サーバ装置は、前記クライアント装置からの要求に応じて、当該サーバ装置が対応しているマーシャリング方式の一覧を示す一覧情報を該クライアント装置に送信する送信手段を備え、
前記クライアント装置は、
前記一覧情報を前記サーバ装置から受信する受信手段と、
受信した前記一覧情報に基づいて、使用するマーシャリング方式を決定する決定手段と、
前記サーバ装置と送受信する通信データを、前記決定手段が決定したマーシャリング方式で整形する整形手段と、
を備える。
本発明によれば、通信する装置の機能や用途・目的に応じて適切なマーシャリング方式を自動的に決定することが可能な技術を提供することができる。
以下、添付図面を参照して本発明に係る実施の形態を詳細に説明する。ただし、この実施の形態に記載されている構成要素はあくまでも例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。また、本実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
(装置制御システム)
図1は本実施形態に係る装置制御システム(通信システム)の構成例を示す図である。図1において、クライアント100とサーバ300が通信媒体401で接続されている。また、クライアント200とサーバ300が通信媒体402で接続されている。
ここでクライアント100のプラットフォームをA、クライアント200のプラットフォームをB、サーバ300のプラットフォームをCとする。プラットフォームAはリトルエンディアンのCPU上で動作する汎用PC用のOSである。プラットフォームBはリトルエンディアンのCPU上で動作するUNIX(登録商標)系OSである。プラットフォームCはビッグエンディアンのCPU上で動作するリアルタイムOSである。
本実施形態において、クライアント200とサーバ300は組み込みの制御機器である。組み込み機器に実装されるマーシャリング機構は、リアルタイム性能を確保する必要があるため、従来技術で構築される。具体的には、この両者間の通信におけるマーシャリングは、マーシャリングを専門に処理する仲介プログラムであるスタブ202とスケルトン302の間で行われる。ここで、スタブ202とスケルトン302は、インタフェース記述言語(Interface Definition Language)などで記述されたIDL502をIDLコンパイラ501に読み込ませて生成される。なお、スケルトン302は、サーバ300が使用可能なマーシャリング方式のリスト302aを保持している。
スタブ202はクライアントアプリケーション201とリンクされ、スケルトン302はサーバアプリケーション303とリンクされている。クライアント200とサーバ300との通信は、クライアント側の通信制御部203とサーバ側の通信制御部301を介して行われる。この通信機構は、データのやり取りのほか、クライアントからサーバに対する遠隔関数呼び出し(RPC:Remote Procedure Call)にも使用される。
装置制御アプリケーション101は、クライアント100上で動作するアプリケーションである。本実施形態において、装置制御アプリケーション101は、サーバアプリケーション303に接続して、サーバ300上のプログラムのテストやデバッグを行う用途に用いられる。例えば、サーバ300の状態を監視したり、クライアントアプリケーション201がサーバアプリケーション303に対して呼び出す遠隔関数呼び出しをクライアントアプリケーション201の代わりに実行したりする。組み込み機器はそれ自体に入力装置、表示装置を備えていないものも多いため、このような形態でテスト、デバッグが行われることが多い。
装置制御アプリケーション101は、スタブプログラムを静的にリンクしない。代わりに、IDLコンパイラ501によって生成された接続対象のサーバアプリケーション303のインタフェース情報110を、実行時に外部(501)から読み込んで、通信に使用するメッセージの仕様を決定する。このようにして、インタフェース情報110に情報を追加することにより、多種のサーバアプリケーションへの通信が可能となる汎用性が実現される。
本実施形態に係るクライアント100は、サーバ300との通信に使用するマーシャリング方式を決定するための複数のストラテジを予め記憶しておき、いずれかのストラテジを選択して、そのストラテジに基づいてマーシャリング方式を決定する。108はクライアント100が記憶する複数のストラテジ情報である。本実施形態では、サーバの負荷が最小になるマーシャリング方式を選択するといったポリシーごとに、使用するマーシャリング方式の優先順位が規定されている。ストラテジ情報の詳細は後述する。
102は、複数のストラテジ情報108から使用するストラテジを選択するストラテジ選択部である。ストラテジ選択部102が選択したストラテジは、以下、マーシャリング方式決定ストラテジ103と呼ぶ。
104はマーシャリング方式決定ストラテジ103に基づいて使用するマーシャリング方式105を決定するマーシャリング方式決定部である。
106は装置制御アプリケーション101がサーバと送受信するデータに、決定されたマーシャリング方式105に基づいてマーシャリング処理を行うデータ整形部である。このようにして、装置制御アプリケーション101がサーバと送受信するデータは、データ整形部106でマーシャリング処理が施されて、通信制御部107によりサーバと送受信される。
109はプラットフォーム情報であり、プラットフォームごとに、プラットフォームの識別子、エンディアンのタイプ、データ型ごとのデータ長やアラインメント等を特定する。110はインタフェース情報であり、接続対象のサーバアプリケーション303のインタフェースに関する情報を記述する。
(ハードウェア構成)
上記のクライアント100、クライアント200、サーバ300は、パーソナルコンピュータ(PC)やワークステーション(WS)、携帯情報端末(PDA)等の情報処理装置で実現される。そこでこれらの情報処理装置のハードウェア構成について、図11を参照して説明する。図11は、本実施形態に係る情報処理装置のハードウェア構成例を模式的に示したブロック図である。
図11において、990はCPUである。CPU990は、後述するハードディスク装置995に格納されているアプリケーションプログラム、オペレーティングシステム(OS)や制御プログラム等を実行し、RAM992にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
991はROMであり、内部には基本I/Oプログラム等のプログラム、基本処理において使用するフォントデータ、テンプレート用データ等の各種データを記憶する。992は各種データを一時記憶するためのRAMであり、CPU990の主メモリ、ワークエリア等として機能する。
993は記録媒体へのアクセスを実現するための外部記憶ドライブであり、メディア(記録媒体)994に記憶されたプログラム等を本コンピュータシステムにロードすることができる。尚、メディア994には、例えば、フレキシブルディスク(FD)、CD−ROM、DVD、USBメモリ、MO、フラッシュメモリ等が含まれる。
995は外部記憶装置であり、本実施形態では大容量メモリとして機能するハードディスク装置(以下、HDと呼ぶ)を用いている。HD995には、アプリケーションプログラム、OS、制御プログラム、関連プログラム等が格納される。
996は指示入力装置であり、キーボードやポインティングデバイス(マウス等)、タッチパネル等がこれに相当する。指示入力装置996を用いて、ユーザは、本実施形態に係る情報処理装置に対して、装置を制御するコマンド等を入力指示する。
997はディスプレイであり、指示入力装置996から入力されたコマンドや、それに対する情報処理装置の応答出力等を表示したりするものである。
999はシステムバスであり、情報処理装置内のデータの流れを司るものである。998はインターフェイス(以下、I/Fという)であり、このI/F998を介して外部装置とのデータのやり取りを行う。
尚、以上の各装置と同等の機能を実現するソフトウェアにより、ハードウェア装置の代替として構成することもできる。
本実施形態では、メディア994から本実施形態に係るプログラム及び関連データを直接RAM992にロードして実行させる例を想定するが、これに限られない。例えば、本実施形態に係るプログラムを動作させる度に、既にプログラムがインストールされているHD995からRAM992にロードするようにしてもよい。また、本実施形態に係るプログラムをROM991に記録しておき、これをメモリマップの一部をなすように構成し、直接CPU990で実行することも可能である。
また、本実施形態では、説明の便宜のため、本実施形態に係る情報処理装置を1つの装置で実現した構成について述べるが、複数の装置にリソースを分散した構成によって実現してもよい。例えば、記憶や演算のリソースを複数の装置に分散した形に構成してもよい。或いは、情報処理装置上で仮想的に実現される構成要素毎にリソースを分散し、並列処理を行うようにしてもよい。
(インタフェース情報例)
図2はインタフェース情報の一例を示す図である。図2の例では、インタフェースXが、2階層の深さレベルを有する、合計6つのデータ項目から構成されている。
(マーシャリング方式例)
図3は本実施形態で定義されているマーシャリング方式の一覧を例示する図である。図3のように、本実施形態では、3つのマーシャリング方式例を規定している。
・NONSERIAL_SAMEORDERは、サーバ側プラットフォームのネイティブのデータレイアウトでデータを送受信する方式である。この方式では、サーバ側の処理は最も軽いが、同一プラットフォーム間通信でない場合はクライアント側でマーシャリング処理が必要となる。
・SERIALIZE_SAMEORDERは、データをシリアライズし、エンディアンはサーバ側に合わせて送受信する方式である。この方式では、サーバ側はデータのデシリアライズのみ行う。
・SERIALIZE_DIFFORDERは、データをシリアライズし、サーバ側と異なるエンディアンでデータを送受信する方式である。この方式は、エンディアンの異なるCPU間の通信で、エンディアン変換をサーバ側で行う場合に用いられる。
本実施形態では通信を行うプラットフォームの組み合わせによってマーシャリング方式が決定される。クライアント200とサーバ300はCPUアーキテクチャが異なるため、スタブ202とスケルトン302の間の通信ではSERIALIZE_DIFFORDERが使用される。スタブ202は通信を行う相手が固定(サーバ300のスケルトン302のみ)であるため、実装されるマーシャリング方式はSERIALIZE_DIFFORDERのみである。一方、スケルトン302はクライアント200以外のクライアントからの接続も想定している場合、複数のマーシャリング方式に対応する。例えば、サーバアプリケーション303が同じサーバ300内の別プログラムとも通信を行う場合、スケルトン302はNONSERIAL_SAMEORDERにも対応する。
なお、図3にあげたマーシャリング方式は一例でありこれに限られない。例えば、データのシリアライズを行わないが、サーバ側と異なるエンディアンでデータを送受信する方式を使用してもよい。
(マーシャリング方式決定処理)
図4は、クライアント100のマーシャリング方式決定部104が、サーバプログラム303との通信に使用するマーシャリング方式を決定する処理のフローチャートである。図4の各ステップはクライアント100のCPUの制御に基づいて実行される。
ステップS1001において、通信に先立って初期化処理を行う。初期化処理では、クライアント100は、サーバ300のスケルトンに、エンディアン、プラットフォーム、使用可能マーシャリング方式を問い合わせる。装置制御アプリケーション101がマーシャリングを行って通信をするためには、サーバ300のエンディアン、アラインメントおよびスケルトン302が使用可能なマーシャリング方式に関する情報が必要なためである。
初期化処理では、装置制御アプリケーション101からサーバアプリケーション303に初期化要求メッセージを送信する。初期化要求メッセージを受信すると、サーバアプリケーション303は、サーバ300のプラットフォーム情報(プラットフォーム識別子)および使用可能なマーシャリング方式リスト(一覧情報)302aを含んだ返信メッセージを返す。
なお、この初期化処理中に交換されるメッセージは仕組み上マーシャリングが不可能なため、マーシャリングが不要になるよう、エンディアン、アラインメントの影響を受けない形式で事前に規定されたレイアウトで通信される。
ステップS1002において、マーシャリング方式決定部104は、スケルトン302からの返信メッセージ中のプラットフォーム識別子を読み取り、当該識別子を持つプラットフォーム情報がプラットフォーム情報109の中にあるか確認する。
図5は初期化要求メッセージに対するサーバからの返信メッセージのレイアウト例を示す図である。図5の例ではビット単位でレイアウトを規定しているためエンディアン、アラインメントの影響を受けない。
図5の例では、先頭2ビットにサーバのプラットフォーム識別子を記述している。図5の例では、1〜2ビット目の各ビットの意味は以下のとおりである。
・00:プラットフォームA。
・01:プラットフォームB。
・10:プラットフォームC。
3ビット目にサーバのCPUエンディアンを記述している。例えば、3ビット目のビット値0はリトルエンディアンを示し、ビット値1はビッグエンディアンを示す。
5〜7ビット目に各マーシャリング方式の使用可否を記述している。図5の例では、5ビット目がNONSERIAL_SAMEORDERの使用可否、6ビット目がSERIALIZE_SAMEORDERの使用可否、7ビット目がSERIALIZE_DIFFORDERの使用可否を示している。ビットが立っている(値が1)場合、対応するマーシャリング方式が当該スケルトンにおいて使用可能であることを意味している。
プラットフォームが判明すればCPUエンディアンはおのずと決定するため、3ビット目のエンディアン情報は冗長であるが、未知のプラットフォーム識別子への対応のために情報を持たせてある。図5の例では、9ビット目以降にメッセージ本文が格納される。
ステップS1002においてプラットフォーム情報109の中に当該識別子が見つからない場合は、未知のプラットフォームであると判定してステップS1003に進む。既知である場合は後述するようにステップS1004に進む。
ステップS1003では、返信メッセージ中の使用可能マーシャリング方式を確認した上で、SERIALIZE_SAMEORDERが使用可能であるか確認する。使用可能である場合は、S1004において、使用するマーシャリング方式をSERIALIZE_SAMEORDERと決定し、処理を終了する。
SERIALIZE_SAMEORDERが使用不可である場合は、ステップS1005において、SERIALIZE_DIFFORDERが使用可能であるか確認する。使用可能である場合は、S1006において、使用するマーシャリング方式をSERIALIZE_DIFFORDERと決定し、処理を終了する。
SERIALIZE_DIFFORDERも使用不可の場合は、ステップS1007においてエラーとして終了する。
このように、サーバのプラットフォームが未知の場合、マーシャリング方式が決定したら、メッセージは常にシリアライズし、返信メッセージ中の相手方エンディアン情報を確認し、必要に応じてエンディアン変換を行う。
この初期化メッセージの交換により、装置制御アプリケーション101は、サーバ300のプラットフォームとサーバアプリケーション303に対して使用可能なマーシャリング方式を知ることができる。なお、この初期化メッセージ交換はスタブ202とスケルトン302の間でも行われるが、スタブ202は使用するマーシャリング方式が静的に決定しているため、その決定において返信メッセージ内の情報は特に利用されない。
一方、ステップS1002において、プラットフォーム情報109中からプラットフォームを特定できた場合は、ステップS1008に進む。ステップS1008では、マーシャリング方式ストラテジ103の中から、特定できたプラットフォーム(例えば、プラットフォームC)に対応する優先順位情報を取得する。
次に、ステップS1009において、マーシャリング方式決定ストラテジ103の中から、優先順位の高いマーシャリング方式から順に、返信メッセージと照合して使用可能であるか評価する。
使用可能なマーシャリング方式が見つかった場合は、ステップS1010において、そのマーシャリング方式を使用する方式として決定し、それ以降の評価を打ち切る。一方、使用可能なマーシャリング方式が存在しない場合はステップS1011においてエラーとして終了する。
クライアント100は、上述のように決定したマーシャリング方式を使用して、通信データを整形してサーバ300と通信を行う。
上記のように、クライアント100は、通信データを整形してサーバ300と通信する際に、サーバ300が対応しているマーシャリング方式の一覧を示す一覧情報をサーバ300に要求する。そして、一覧情報をサーバ300から受信すると、受信した一覧情報に基づいて、使用するマーシャリング方式を決定して、サーバ300と送受信する通信データを、決定したマーシャリング方式で整形する。このため、本実施形態の構成によれば、クライアント100、サーバ300の機能や用途・目的に応じて適切なマーシャリング方式を自動的に決定することが可能である。
また、クライアント100は、マーシャリング方式の優先順位を記載したストラテジ情報(優先順位情報)をHD995等の記憶装置に記憶している。そして、受信した一覧情報が示すマーシャリング方式のうち、ストラテジ情報において最も優先順位が高いものを、使用するマーシャリング方式として決定する。このため、本実施形態によれば、適切なストラテジ情報を予め用意しておくことによって、用途に応じた適切なマーシャリング方式を自動的に決定することができる。
また、クライアント100は、サーバ300のプラットフォームを識別するプラットフォーム情報をサーバ300から受信し、このプラットフォーム情報にも基づいて、使用するマーシャリング方式を決定する。このため、サーバ300のプラットフォームに応じた適切なマーシャリング方式を自動的に決定することができる。
また、ストラテジ情報は、プラットフォームの種類ごとにマーシャリング方式の優先順位を記載している。そして、クライアント100は、受信した一覧情報が示すマーシャリング方式のうち、ストラテジ情報において、サーバ300のプラットフォームの種類に対応する優先順位が最も高いものを、使用するマーシャリング方式として決定する。このため、サーバ300のプラットフォームと、クライアント100の方針に応じて適切なマーシャリング方式を自動的に決定することができる。
クライアント100は、ストラテジ選択部102において、サーバ装置との通信ポリシーの選択を受け付ける受付処理を行う。そして、クライアント100は、それぞれ通信ポリシーに対応する複数のストラテジ情報を記憶している。このような構成において、クライアント100は、選択された通信ポリシーに対応するストラテジ情報において、サーバ300のプラットフォームの種類に対応する優先順位が最も高いものを、使用するマーシャリング方式として決定する。このため、クライアント100とサーバ300の間の通信ポリシーに応じて最適なマーシャリング方式を自動的に決定することができる。
(マーシャリング方式決定ストラテジ例)
図6はマーシャリング方式決定ストラテジ103の一例を示す図である。マーシャリング方式決定ストラテジは複数用意しておき、装置制御アプリケーションの使用目的に応じて選択できるようにしておく。例えば、サーバの負荷を下げたい場合にはLIGHTEN_SERVERを選択する。また、クライアントアプリケーション201から呼び出される遠隔関数呼び出しを装置制御アプリケーション101から実行したい場合はEMULATE_Bを選択する。本実施形態では、ストラテジ選択部102を用いて、ストラテジ情報108の中から実際に使用するマーシャリング方式決定ストラテジ103を選択する。
(プラットフォーム情報例)
図7は、プラットフォーム情報の一例を示す図である。プラットフォーム情報109には、プラットフォームごとに、初期化要求メッセージに対するサーバからの返信メッセージにおける識別子、CPUエンディアン、アラインメント規則が記述される。アラインメント規則はNONSERIAL_SAMEORDERで通信する際のデータ整形に用いられる。
(マーシャリング処理例)
図8は本実施形態において、プラットフォームAがクライアントとして動作する場合、クライアント側に発生するマーシャリング処理内容の一例を示す図である。例えば、プラットフォームCのサーバ300にNONSERIAL_SAMEORDERで接続する場合は、通信メッセージ内の項目ごとにバイト順を逆転させるエンディアン変換を行う。また、プラットフォーム情報109に記述されたC式のアラインメント規則にしたがってアラインメント変換を行う。
一方、サーバ300側は受信したメッセージを自プラットフォームの規定のレイアウトに戻す処理(アンマーシャリング)が必要である。NONSERIAL_SAMEORDERで通信を行っている場合、受信したメッセージがすでに規定のレイアウトになっているのでアンマーシャリングは必要ない。SERIALIZE_SAMEORDERで通信を行っている場合は、自プラットフォームのアラインメント規則に従ってデータにパディングを挿入する。SERIALIZE_DIFFORDERで通信を行っている場合は、項目ごとにエンディアン変換を行った上で、自プラットフォームのアラインメント規則に従ってデータにパディングを挿入する。したがって、サーバ側では相手プラットフォームに関係なくアンマーシャリングに要する処理コストは、NONSERIAL_SAMEORDER<SERIALIZE_SAMEORDER<SERIALIZE_DIFFORDERとなる。
(マーシャリング方式決定優先順位例)
図9は本実施形態において、プラットフォームAがクライアントとして動作し、LIGHTEN_SERVERストラテジを選択した場合のマーシャリング方式決定優先順位の一例を示す図である。前述の理由により、サーバ側の負荷を軽くするというストラテジにおける優先順位は、NONSERIAL_SAMEORDER>SERIALIZE_SAMEORDER>SERIALIZE_DIFFORDERとなる。
図10は本実施形態において、プラットフォームAがクライアントとして動作し、LIGHTEN_CLIENTストラテジを選択した場合のマーシャリング方式決定優先順位の一例を示す図である。ここでプラットフォームBに対する決定優先順位について、一例として説明する。クライアントの処理をなるべく軽くするというストラテジから、データアラインメントはサーバ側に合わせるのではなく、シリアライズして送信し、サーバ側でアンマーシャリングを行う。エンディアンはAとBで同じなため、エンディアン変換を行う必要がないので最も優先すべきマーシャリング方式はSERIALIZE_SAMEORDERとなる。さらに他のマーシャリング方式の優先順位を考えると、NONSERIAL_SAMEORDERとSERIALIZE_DIFFORDERのどちらがクライアント負荷を軽くするかはデータアラインメントの差異の大きさに依存し、一概に言えない。本実施形態ではエンディアン変換を行う負荷のほうが、サーバ側のデータアラインメントに合わせてデータを整形する負荷よりも軽いと仮定する。その場合のマーシャリング方式決定優先順位はSERIALIZE_SAMEORDER>SERIALIZE_DIFFORDER>NONSERIAL_SAMEORDERとなる。
上記のように、本実施形態によれば、複数のマーシャリング方式選択ストラテジとストラテジ選択部を持つことによって、装置制御アプリケーションの使用目的に最適なマーシャリング方式の選択を自動化することが可能となる。
また、実行時にサーバに対して動作プラットフォームと使用可能マーシャリング方式を問い合わせ、実行時にマーシャリング方式を決定する。このため、サーバの動作プラットフォームを変更してもクライアント側の装置制御アプリケーションの再構築や設定変更が不要となる。
また、本実施形態では、インタフェースを定義したインタフェース情報を実行時に外部から読み込む。このため、送受信データの項目が変更になってもインタフェース情報を差し替えるだけでよく、装置制御アプリケーションの再構築が不要となる。
本実施形態に係る構成は、装置制御アプリケーションが稼動するクライアントにおいて、使用可能な複数のマーシャリング方式のうち一つを決定するためのマーシャリング方式決定部を備える。このため、本実施形態の構成によれば、通信実行時に適切なマーシャリング方式を自動的に決定して実行することができる。
また、前記のマーシャリング方式決定部がマーシャリング方式を選択するための具体的な基準を定義したマーシャリング方式決定ストラテジを備える。ここでマーシャリング方式決定ストラテジはマーシャリング方式の決定優先順位を数値化したデータの形式でもよいし、マーシャリング方式の決定ロジックを実装したプログラムモジュールの形式でもよい。マーシャリング方式決定ストラテジは装置制御アプリケーションの使用目的に応じてマーシャリング方式の決定優先順位を変化させたものを複数用意しておく。マーシャリング方式決定ストラテジ群は装置制御アプリケーションに静的に組み込んでもよいし、実行時に外部記憶から読み込んでもよい。このため、ストラテジに応じて最適なマーシャリング方式を自動的に決定させることができる。
また、前記の複数のマーシャリング方式決定ストラテジの中から実行時に使用するストラテジを決定するためのストラテジ選択部を備える。ストラテジ選択部は、装置制御アプリケーションの起動引数であってもよいし、装置制御アプリケーションがGUIを持つ場合はコンボボックスのような選択部品を用いてもよい。このため、通信の用途・目的に応じて適切なストラテジ自体を選択して、マーシャリング方式を自動決定させることができる。
また、送受信データの項目を定義したインタフェース定義を外部から読み込み、マーシャリング方式決定ストラテジによって決定されたマーシャリング方式に従って送受信データを加工するデータ整形部を備える。このため、自動決定されたマーシャリング方式に基づいて、通信データを整形することができる。
また、整形された送信データを制御対象プログラムに送信する通信制御部を備える。このため、整形された通信データをサーバ300と送受信することができる。
また、通信開始時において、クライアントからサーバに対して初期化要求メッセージを送信し、サーバからの返信メッセージにはサーバの動作プラットフォームおよび使用可能なマーシャリング方式の一覧が記載され、クライアントに通知される。このため、クライアントはマーシャリング方式の一覧に基づいて最適なマーシャリング方式を決定することができる。
上記の仕組みにより、目的に合わせた最適なマーシャリング方式を自動選択することが可能になる。
<<その他の実施形態>>
また、本発明の目的は、コンピュータプログラムやコンピュータプログラムを格納したコンピュータ読み取り可能な記録媒体によっても実現可能である。例えば、次のようにすることによっても本発明の目的は達成される。すなわち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明の技術的範囲に含まれる。
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も本発明の技術的範囲に含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の各機能が実現される場合も、本発明の技術的範囲に含まれる。
なお、本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートで示される処理を実行するプログラムコードが格納されることになる。
装置制御システムの構成例を示す図である。 インタフェース情報の一例を示す図である。 マーシャリング方式の一覧を例示する図である。 通信に使用するマーシャリング方式を決定する処理のフローチャートである。 初期化要求メッセージに対するサーバからの返信メッセージのレイアウト例を示す図である。 マーシャリング方式決定ストラテジの一例を示す図である。 プラットフォーム情報の一例を示す図である。 マーシャリング処理内容の一例を示す図である。 マーシャリング方式決定優先順位の一例を示す図である。 マーシャリング方式決定優先順位の一例を示す図である。 情報処理装置のハードウェア構成例を模式的に示したブロック図である。

Claims (9)

  1. 通信データを整形してサーバ装置と通信する情報処理装置であって、
    前記サーバ装置が対応しているマーシャリング方式の一覧を示す一覧情報を該サーバ装置から受信する受信手段と、
    受信した前記一覧情報に基づいて、使用するマーシャリング方式を決定する決定手段と、
    前記サーバ装置と送受信する通信データを、前記決定手段が決定したマーシャリング方式で整形する整形手段と、
    を備えることを特徴とする情報処理装置。
  2. マーシャリング方式の優先順位を記載した優先順位情報を記憶する記憶手段をさらに備え、
    前記決定手段は、受信した前記一覧情報が示すマーシャリング方式のうち、前記優先順位情報において最も優先順位が高いものを、前記使用するマーシャリング方式として決定する
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記受信手段は、さらに、前記サーバ装置のプラットフォームを識別するプラットフォーム情報を前記サーバ装置から受信し、
    前記決定手段は、さらに前記プラットフォーム情報に基づいて、前記使用するマーシャリング方式を決定する
    ことを特徴とする請求項2に記載の情報処理装置。
  4. 前記記憶手段が記憶する前記優先順位情報は、プラットフォームの種類ごとにマーシャリング方式の優先順位を記載し、
    前記決定手段は、受信した前記一覧情報が示すマーシャリング方式のうち、前記優先順位情報において、前記プラットフォーム情報が示すプラットフォームの種類に対応する優先順位が最も高いものを、前記使用するマーシャリング方式として決定する
    ことを特徴とする請求項3に記載の情報処理装置。
  5. 前記サーバ装置との通信ポリシーの選択を受け付ける受付手段をさらに備え、
    前記記憶手段は、それぞれ通信ポリシーに対応する複数の前記優先順位情報を記憶し、
    前記決定手段は、受信した前記一覧情報が示すマーシャリング方式のうち、前記選択を受け付けた通信ポリシーに対応する優先順位情報において、前記プラットフォーム情報が示すプラットフォームの種類に対応する優先順位が最も高いものを、前記使用するマーシャリング方式として決定する
    ことを特徴とする請求項4に記載の情報処理装置。
  6. 通信データを整形してサーバ装置と通信する情報処理装置の情報処理方法であって、
    前記サーバ装置が対応しているマーシャリング方式の一覧を示す一覧情報を該サーバ装置から受信する受信工程と、
    受信した前記一覧情報に基づいて、使用するマーシャリング方式を決定する決定工程と、
    前記サーバ装置と送受信する通信データを、前記決定工程において決定されたマーシャリング方式で整形する整形工程と、
    を備えることを特徴とする情報処理方法。
  7. 通信データを整形して通信を行う、サーバ装置とクライアント装置とを有する通信システムであって、
    前記サーバ装置は、前記クライアント装置からの要求に応じて、当該サーバ装置が対応しているマーシャリング方式の一覧を示す一覧情報を該クライアント装置に送信する送信手段を備え、
    前記クライアント装置は、
    前記一覧情報を前記サーバ装置から受信する受信手段と、
    受信した前記一覧情報に基づいて、使用するマーシャリング方式を決定する決定手段と、
    前記サーバ装置と送受信する通信データを、前記決定手段が決定したマーシャリング方式で整形する整形手段と、
    を備えることを特徴とする通信システム。
  8. コンピュータを請求項1から5のいずれか1項に記載の情報処理装置として機能させるためのプログラム。
  9. 請求項8に記載のプログラムを格納したコンピュータ読み取り可能な記録媒体。
JP2008290325A 2008-11-12 2008-11-12 情報処理装置、情報処理方法、通信システム、プログラム Expired - Fee Related JP5222103B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008290325A JP5222103B2 (ja) 2008-11-12 2008-11-12 情報処理装置、情報処理方法、通信システム、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008290325A JP5222103B2 (ja) 2008-11-12 2008-11-12 情報処理装置、情報処理方法、通信システム、プログラム

Publications (3)

Publication Number Publication Date
JP2010117867A true JP2010117867A (ja) 2010-05-27
JP2010117867A5 JP2010117867A5 (ja) 2012-01-05
JP5222103B2 JP5222103B2 (ja) 2013-06-26

Family

ID=42305511

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008290325A Expired - Fee Related JP5222103B2 (ja) 2008-11-12 2008-11-12 情報処理装置、情報処理方法、通信システム、プログラム

Country Status (1)

Country Link
JP (1) JP5222103B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2012164665A1 (ja) * 2011-05-30 2014-07-31 三菱電機株式会社 通信装置
US9544694B2 (en) 2012-04-05 2017-01-10 Nec Tokin Corporation Piezoelectric element, piezoelectric vibration module, and methods of manufacturing the same
JP2018182842A (ja) * 2017-04-07 2018-11-15 三菱電機株式会社 電力系統制御システム、およびその制御方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2978807B2 (ja) * 1996-01-10 1999-11-15 サン・マイクロシステムズ・インコーポレーテッド 遠隔プロシージャ・コール・システムおよび方法
JP2000020490A (ja) * 1998-07-01 2000-01-21 Fujitsu Ltd 遠隔手続き呼出し機構またはオブジェクトリクエストブローカ機構を有する計算機、データ転送方法、および転送方法記憶媒体
JP2001167059A (ja) * 1999-12-09 2001-06-22 Hitachi Ltd サービス要求装置およびデータ変換方法およびクライアントオブジェクトを有する計算機

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2978807B2 (ja) * 1996-01-10 1999-11-15 サン・マイクロシステムズ・インコーポレーテッド 遠隔プロシージャ・コール・システムおよび方法
JP2000020490A (ja) * 1998-07-01 2000-01-21 Fujitsu Ltd 遠隔手続き呼出し機構またはオブジェクトリクエストブローカ機構を有する計算機、データ転送方法、および転送方法記憶媒体
JP2001167059A (ja) * 1999-12-09 2001-06-22 Hitachi Ltd サービス要求装置およびデータ変換方法およびクライアントオブジェクトを有する計算機

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2012164665A1 (ja) * 2011-05-30 2014-07-31 三菱電機株式会社 通信装置
US9544694B2 (en) 2012-04-05 2017-01-10 Nec Tokin Corporation Piezoelectric element, piezoelectric vibration module, and methods of manufacturing the same
JP2018182842A (ja) * 2017-04-07 2018-11-15 三菱電機株式会社 電力系統制御システム、およびその制御方法

Also Published As

Publication number Publication date
JP5222103B2 (ja) 2013-06-26

Similar Documents

Publication Publication Date Title
JP4800413B2 (ja) 情報処理システム
TWI276998B (en) Systems and methods for managing drivers in a computing system
EP2622484B1 (en) Debugger launch and attach on compute clusters
CN102725744B (zh) 用于usb驱动程序接口函数的扩展的方法和系统
US8806506B2 (en) System and method for processing messages using a common interface platform supporting multiple pluggable data formats in a service-oriented pipeline architecture
JP5259924B2 (ja) レガシーコンポーネントのための動的サービスの生成
US7788290B2 (en) Automatic file conversion to a target format
US20040148605A1 (en) Distributed processing system and method using virtual machine
JP5222103B2 (ja) 情報処理装置、情報処理方法、通信システム、プログラム
WO2011158478A1 (ja) データ処理システム及びデータ処理方法
US20100023950A1 (en) Workflow processing apparatus
US20090282150A1 (en) Service flow processing apparatus and method
EP2767904A1 (en) Method, processing modules and system for executing an executable code
JP2008009865A (ja) 分散コンピュータシステム
CN111970349B (zh) 基于远程过程调用的通讯系统、方法、装置、设备及介质
US9367329B2 (en) Initialization of multi-core processing system
JP2005039557A (ja) ソフトウェア無線機
Heydarnoori et al. Towards an automated deployment planner for composition of web services as software components
JP2008305205A (ja) フロー処理構築装置、フロー処理構築方法及びプログラム
KR20040002624A (ko) 실시간 미들웨어 구성을 위한 멀티 프로토콜 연동 장치 및그 방법
Martinaitis et al. Component-based stream processing" in the cloud"
JP5251197B2 (ja) メッセージ処理方法、メッセージ処理装置、及びプログラム
CN117130591A (zh) 一种代码生成方法、系统及相关设备
CN114816672A (zh) 虚拟机的创建方法、装置、电子设备和存储介质
CN117667300A (zh) 计算系统及相关方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111111

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111111

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121112

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130109

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: 20130208

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130308

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

Free format text: PAYMENT UNTIL: 20160315

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 5222103

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: 20160315

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees