(57)【特許請求の範囲】
【請求項１】
互いに通信手段を介して接続されたクライアント機器とサーバ機器とを備え、上記サーバ機器に保存された上記クライアント機器で実行される命令コードを上記通信手段を介して上記クライアント機器に送る情報処理装置において、
上記クライアント機器は、
上記サーバ機器に上記命令コードを要求する命令コード要求手段と、
自機器の機種に依存する機種依存情報を上記サーバ機器に伝達する機種依存情報伝達手段と、
上記命令コード要求手段の上記命令コードの要求に対して上記サーバ機器から返された上記命令コードを実行する命令コード実行手段とを有し、
上記サーバ機器は、
上記クライアント機器で実行される上記命令コードに関するシンボル情報が予め保存されたシンボル情報保存手段と、
上記クライアント機器の上記機種依存情報伝達手段から伝達された上記機種依存情報に基づいて、上記シンボル情報保存手段に保存されている上記シンボル情報から上記クライアント機器が要求する上記命令コードに関するシンボル情報を選択するシンボル情報選択手段と、
上記シンボル情報選択手段により選択されたシンボル情報を用いて、上記クライアント機器の上記命令コード要求手段から要求された命令コードについてシンボル情報の解決を行うシンボル情報解決手段と、
上記クライアント機器にシンボル情報が解決された上記命令コードを返す命令コード応答手段とを有することを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、
上記サーバ機器は、
上記シンボル情報解決手段によってシンボル情報の解決を行うときに、解決できないシンボル情報があるか否かを判別する未解決シンボル判別手段と、
上記未解決シンボル判別手段が解決できないシンボル情報があると判別すると、未解決のシンボル情報を上記クライアント機器に返す未解決シンボル応答手段とを有し、
上記クライアント機器は、
上記サーバ機器から送られた上記未解決のシンボル情報に対して解決済みのシンボル情報を上記サーバ機器に伝達するシンボル情報伝達手段を有することを特徴とする情報処理装置。
【請求項３】
他の機器と通信手段を介して接続され、上記他の機器から命令コードを受け取り実行する情報処理機器において、
上記他の機器に命令コードを要求する命令コード要求手段と、
上記他の機器に対して自機器の機種に依存する機種依存情報を伝達する機種依存情報伝達手段と、
上記他の機器において、上記機種依存情報伝達手段により伝達された上記機種依存情報に基づいて、上記命令コード要求手段により要求された上記命令コードに関するシンボル情報を選択して、上記他の機器が上記選択されたシンボル情報の解決を行った後に、上記他の機器から受け取った上記シンボル情報が解決された上記命令コードを実行する命令コード実行手段とを有することを特徴とする情報処理装置。
【請求項４】
請求項３に記載の情報処理装置において、上記他の機器からシンボル情報の要求があるとき、要求されたシンボル情報を上記他の機器に伝達するシンボル情報伝達手段とを有することを特徴とする情報処理装置。
【請求項５】
請求項３に記載の情報処理装置の上記命令コード要求手段,命令コード実行手段および機種依存情報伝達手段としてコンピュータを動作させるためのプログラムが記録されていることを特徴とする記録媒体。
【請求項６】
請求項４に記載の情報処理装置の上記命令コード要求手段,シンボル情報伝達手段,命令コード実行手段および機種依存情報伝達手段としてコンピュータを動作させるためのプログラムが記録されていることを特徴とする記録媒体。
【請求項７】
他の機器と通信手段を介して接続され、上記他の機器からの要求に従って命令コードを返す情報処理機器において、
上記他の機器のシンボル情報が予め保存されたシンボル情報保存手段と、
上記他の機器から伝達された機種依存情報に基づいて、上記シンボル情報保存手段に保存されている上記シンボル情報から上記他の機器が要求する上記命令コードに関するシンボル情報を選択するシンボル情報選択手段と、
上記シンボル情報選択手段により選択されたシンボル情報を用いて、上記他の機器から要求された上記命令コードについてシンボル情報の解決を行うシンボル情報解決手段と、
上記他の機器にシンボル情報が解決された命令コードを返す命令コード応答手段とを有することを特徴とする情報処理装置。
【請求項８】
請求項７に記載の情報処理装置において、
上記シンボル情報解決手段によってシンボル情報の解決を行うときに、解決できないシンボル情報があるか否かを判別する未解決シンボル判別手段と、
上記未解決シンボル判別手段が解決できないシンボル情報があると判別すると、未解決のシンボル情報を上記他の機器に返す未解決シンボル応答手段とを有し、
上記シンボル情報解決手段は、上記未解決シンボル応答手段により上記他の機器に返した上記未解決のシンボル情報に対する上記他の機器からの解決済みのシンボル情報を用いて、上記未解決のシンボル情報の解決を行うことを特徴とする情報処理装置。
【請求項９】
請求項７に記載の情報処理装置の上記シンボル情報保存手段,シンボル情報選択手段,シンボル情報解決手段および命令コード応答手段としてコンピュータを動作させるためのプログラムが記録されていることを特徴とする記録媒体。
【請求項１０】
請求項８に記載の情報処理装置の上記シンボル情報保存手段,シンボル情報選択手段,シンボル情報解決手段,命令コード応答手段,未解決シンボル判別手段および未解決シンボル応答手段としてコンピュータを動作させるためのプログラムが記録されていることを特徴とする記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、サーバ機器からクライアント機器にプログラムをダウンロードして実行する情報処理装置および記録媒体に関する。
【０００２】
【従来の技術および発明が解決しようとする課題】
従来、情報処理装置としては、同一のプログラムを異なるＯＳや機器上で動作させるために、プログラムを機種に依存しないスクリプトとして記述するものがある。この情報処理装置に使用されるＪａｖａ等のスクリプトは、中間コード(Ｊａｖａではバイトコードという)で記述されるために機種に依存しないが、機器上で機種依存のマシンコードに変換しなければならないため、実行速度が遅いという欠点がある。特に、メモリが少なく能力の低いＣＰＵ(中央処理装置)を搭載しているような組み込み機器で実行される場合に、十分な性能を得ることは難しい。
【０００３】
そこで、Ｊａｖａの実行速度を向上させる方式として、Ｊａｖａのクラスファイルをメモリ上にロードするときに、そのＣＰＵの実行可能なマシンコードに変換するＪＩＴ(Just In Time compiler)がある。しかしながら、このＪＩＴでは、ロード時にマシンコード(機械語命令)に変換するためにＣＰＵのパワーやメモリを必要とする。また、Ｊａｖａの仮想マシンＶＭ(Vertial Machine)では、予めライブラリをリンクした形で保存して、参照関係の解消を事前に行う方法がある。このときに、ターゲットとなるＣＰＵのマシンコードヘの変換を行えば、より高速な実行が可能になる。
【０００４】
従来、バイトコードで作成されているアプリケーションをネットワークからダウンロードして実行する場合に、必要となるバイトコードを順次ネットワークにあるサーバ機器からクライアント機器にダウンロードしてくる必要がある。このとき、上記クライアント機器では、サーバ機器から送られてきたバイトコードファイルを一旦命令コード記憶手段に記憶し、バイトコードファイルの命令コードを実行してゆく。実行中に、未解決のシンボル情報がある場合、すなわち、バイトコードのアドレス割り当てやバイトコード間の参照関係を定めるリンクができない場合、サーバ機器に対してそれが含まれるバイトコードファイル名の送付を要求し、その要求に対してサーバ機器から送られてきたバイトコードファイル名を同様に命令コード記憶手段に展開して、仮想命令の実行を継続する。上記バイトコードは、必要となった部分だけ逐次的にクライアント機器にダウンロードされるため、バイトコード間でのシンボル情報の解決は、バイトコードをダウンロードするたびにクライアント機器で行っているため、命令コードの実行を行うまでに時間がかかる。
【０００５】
また、ダウンロードしてきたバイトコードをクライアント機器でより高速に実行するために、クライアント機器が直接実行可能な機械語命令に変換し、機械語でのシンボル情報の解決を行う手法も行われているが、同様に、命令コードの実行を行うまでに時間がかかる。
【０００６】
さらに、特開平１０−１９８５７０号公報では、予めクライアント機器に搭載されているバイトコードについてシンボル情報の参照関係を解決しておく手法について開示されている。この特開平１０−１９８５７０号公報では、クライアント機器に搭載されているバイトコードについては、そのシンボル情報の参照関係が解決され、ＣＰＵ能力の低いクライアント機器において、実行速度の向上が図れる。しかしながら、クライアント機器に搭載されておらず、ネットワークを介してサーバ機器からダウンロードしなければならないバイトコードに関しては、クライアント機器でシンボル情報の解決を行わなくてはならない。このため、ＣＰＵ能力の低いクライアント機器では、ダウンロードしてきた命令コードのシンボル情報の解決を行うため、実際に命令コードの実行を行うまでに時間がかかる。
【０００７】
以上のような情報処理装置では、バイトコード間のシンボル情報の解決や、クライアント機器の機械語命令の変換、機械語命令のシンボル解決に、多くのメモリ容量やＣＰＵの能力が必要であり、メモリ容量が少なくＣＰＵの能力が低いクライアント機器では、このようなシンボル参照の処理に多くの時間がかかり、実用上許容できる速さで処理できないという問題がある。
【０００８】
そこで、この発明の目的は、クライアント側の処理が軽減され、実行速度を速くでき、メモリが少なくかつ処理能力の低いクライアント側でも十分に対応できる情報処理装置および記録媒体を提供することにある。
【０００９】
【課題を解決するための手段】
上記目的を達成するため、この第１の発明の情報処理装置は、互いに通信手段を介して接続されたクライアント機器とサーバ機器とを備え、上記サーバ機器に保存された上記クライアント機器で実行される命令コードを上記通信手段を介して上記クライアント機器に送る情報処理装置において、上記クライアント機器は、上記サーバ機器に上記命令コードを要求する命令コード要求手段と、自機器の機種に依存する機種依存情報を上記サーバ機器に伝達する機種依存情報伝達手段と、上記命令コード要求手段の上記命令コードの要求に対して上記サーバ機器から返された上記命令コードを実行する命令コード実行手段とを有し、上記サーバ機器は、上記クライアント機器で実行される上記命令コードに関するシンボル情報が予め保存されたシンボル情報保存手段と、上記クライアント機器の上記機種依存情報伝達手段から伝達された上記機種依存情報に基づいて、上記シンボル情報保存手段に保存されている上記シンボル情報から上記クライアント機器が要求する上記命令コードに関するシンボル情報を選択するシンボル情報選択手段と、上記シンボル情報選択手段により選択されたシンボル情報を用いて、上記クライアント機器の上記命令コード要求手段から要求された命令コードについてシンボル情報の解決を行うシンボル情報解決手段と、上記クライアント機器にシンボル情報が解決された上記命令コードを返す命令コード応答手段とを有することを特徴としている。
【００１０】
上記構成の情報処理装置によれば、上記サーバ機器のシンボル情報保存手段に上記クライアント機器のシンボル情報を予め保存すると共に、クライアント機器の機種依存情報伝達手段により自機器の機種に依存する機種依存情報をサーバ機器に伝達する。上記機種依存情報とは、例えば、クライアント機器がどのような解決済みのシンボル情報を持っているか、どのような命令コードを実行する手段を持っているか、どのようなＣＰＵを搭載しているか等の情報である。そして、上記クライアント機器の命令コード要求手段によりサーバ機器に対して命令コードを要求すると、上記サーバ機器のシンボル情報選択手段は、上記機種依存情報に基づいて、シンボル情報保存手段に保存されているシンボル情報から上記クライアント機器が要求した命令コードに関するシンボル情報を選択する。そして、上記サーバ機器のシンボル情報解決手段は、シンボル情報選択手段により選択されたシンボル情報を用いて、要求された命令コードについてシンボル情報の解決を行う。このシンボル情報の解決とは、その命令コードに関するシンボル情報(変数名や変数の型等の情報を示す)により、命令コードを実行するための実際のアドレスを割り当てたり、その命令コードの参照関係を定めるリンクを行ったりすることである。その後、上記サーバ機器の命令コード応答手段によりシンボル情報の解決がされた命令コードを上記クライアント機器に返す。そうして上記サーバ機器から返された命令コードをクライアント機器の命令コード実行手段により実行する。したがって、処理能力の高いサーバ機器でシンボル情報の解決を行うことによって、クライアント機器側でサーバ機器から送られた命令コードについてシンボル情報の解決を行って実行するよりも、クライアント機器の処理が軽減され、実行速度を速くできる。また、上記クライアント機器の処理が軽くなるので、メモリが少なくかつ能力の低いＣＰＵを搭載したクライアント機器でも十分に対応できる。
【００１１】
また、一実施形態の情報処理装置は、上記サーバ機器は、上記シンボル情報解決手段によってシンボル情報の解決を行うときに、解決できないシンボル情報があるか否かを判別する未解決シンボル判別手段と、上記未解決シンボル判別手段が解決できないシンボル情報があると判別すると、未解決のシンボル情報を上記クライアント機器に返す未解決シンボル応答手段とを有し、上記クライアント機器は、上記サーバ機器から送られた上記未解決のシンボル情報に対して解決済みのシンボル情報を上記サーバ機器に伝達するシンボル情報伝達手段を有することを特徴としている。
【００１２】
上記実施形態の情報処理装置によれば、上記サーバ機器の未解決シンボル判別手段によりシンボル情報の解決のときに解決できないシンボル情報があるか否かを判別し、解決できないシンボル情報があるとき、未解決シンボル応答手段により未解決シンボル情報を上記クライアント機器に返して、クライアント機器に必要なシンボル情報について問い合わせを行う。そうすると、上記クライアント機器のシンボル情報伝達手段は、サーバ機器から送られた上記未解決のシンボル情報に対して解決済のシンボル情報をサーバ機器に伝送するので、そのクライアント機器から送られてきた解決済みのシンボル情報を用いて、サーバ機器のシンボル情報解決手段によりシンボル情報の解決を行うことができる。
【００１３】
また、この第２の発明の情報処理装置は、他の機器と通信手段を介して接続され、上記他の機器から命令コードを受け取り実行する情報処理機器において、上記他の機器に命令コードを要求する命令コード要求手段と、上記他の機器に対して自機器の機種に依存する機種依存情報を伝達する機種依存情報伝達手段と、上記他の機器において、上記機種依存情報伝達手段により伝達された上記機種依存情報に基づいて、上記命令コード要求手段により要求された上記命令コードに関するシンボル情報を選択して、上記他の機器が上記選択されたシンボル情報の解決を行った後に、上記他の機器から受け取った上記シンボル情報が解決された上記命令コードを実行する命令コード実行手段とを有することを特徴としている。
【００１４】
上記構成の情報処理装置によれば、上記機種依存情報伝達手段により自機器の機種に依存する機種依存情報を他の機器(サーバ機器等)に伝達するので、上記命令コード要求手段により他の機器に対して命令コードを要求すると、上記他の機器は、上記機種依存情報によって、要求された命令コードについてシンボル情報の解決を行うことが可能となる。その後、上記他の機器よりシンボル情報が解決された命令コードを受け取り、受け取った命令コードを上記命令コード実行手段により実行する。したがって、上記他の機器でシンボル情報の解決を行うことによって、この情報処理装置側で他の機器から送られた命令コードについてシンボル情報の解決を行う必要がなくなり、情報処理装置の処理が軽減され、実行速度を速くできる。また、処理が軽くなるので、メモリが少なくかつ能力の低いＣＰＵを搭載した情報処理装置でも十分に対応できる。
また、一実施形態の情報処理装置は、上記他の機器からシンボル情報の要求があるとき、要求されたシンボル情報を上記他の機器に伝達するシンボル情報伝達手段とを有することを特徴としている。
また、一実施形態の記録媒体は、上記命令コード要求手段,命令コード実行手段および機種依存情報伝達手段としてコンピュータを動作させるためのプログラムが記録されていることを特徴としている。
【００１５】
また、一実施形態の記録媒体は、上記命令コード要求手段,シンボル情報伝達手段,命令コード実行手段および機種依存情報伝達手段としてコンピュータを動作させるためのプログラムが記録されていることを特徴としている。
【００１６】
上記実施形態の記録媒体によれば、記録されたプログラムをコンピュータに読み込んで、そのプログラムを実行することによって、上記第２の発明の情報処理装置を実現できる。
【００１７】
また、この第３の発明の情報処理装置は、他の機器と通信手段を介して接続され、上記他の機器からの要求に従って命令コードを返す情報処理機器において、上記他の機器のシンボル情報が予め保存されたシンボル情報保存手段と、上記他の機器から伝達された機種依存情報に基づいて、上記シンボル情報保存手段に保存されている上記シンボル情報から上記他の機器が要求する上記命令コードに関するシンボル情報を選択するシンボル情報選択手段と、上記シンボル情報選択手段により選択されたシンボル情報を用いて、上記他の機器から要求された上記命令コードについてシンボル情報の解決を行うシンボル情報解決手段と、上記他の機器にシンボル情報が解決された命令コードを返す命令コード応答手段とを有することを特徴としている。
【００１８】
上記構成の情報処理装置によれば、上記シンボル情報保存手段に上記他の機器のシンボル情報を予め保存すると共に、他の機器(クライアント機器等)からの機種に依存する機種依存情報を機種依存情報保存手段に保存する。そして、上記命令コード受諾手段が他の機器からの命令コードの要求を受けると、上記シンボル情報選択手段は、上記機種依存情報に基づいて、シンボル情報保存手段に保存されているシンボル情報から上記他の機器が要求した命令コードに関するシンボル情報を選択する。そして、上記シンボル情報解決手段は、シンボル情報選択手段により選択されたシンボル情報を用いて、要求された命令コードについてシンボル情報の解決を行う。その後、上記命令コード応答手段によりシンボル情報が解決された命令コードを上記他の機器に返す。そうして、上記命令コード応答手段から返された命令コードを他の機器で実行する。したがって、この情報処理装置でシンボル情報の解決を行うことによって、他の機器側でこの情報処理装置から送られた命令コードについてシンボル情報の解決を行う必要がなくなり、他の機器の処理が軽減され、他の機器の実行速度を速くできる。また、上記他の機器の処理が軽くなるので、メモリが少なくかつ能力の低いＣＰＵを搭載した他の機器でも十分に対応できる。
【００１９】
また、一実施形態の情報処理装置は、上記シンボル情報解決手段によってシンボル情報の解決を行うときに、解決できないシンボル情報があるか否かを判別する未解決シンボル判別手段と、上記未解決シンボル判別手段が解決できないシンボル情報があると判別すると、未解決のシンボル情報を上記他の機器に返す未解決シンボル応答手段とを有し、上記シンボル情報解決手段は、上記未解決シンボル応答手段により上記他の機器に返した上記未解決のシンボル情報に対する上記他の機器からの解決済みのシンボル情報を用いて、上記未解決のシンボル情報の解決を行うことを特徴としている。
【００２０】
上記実施形態の情報処理装置によれば、上記未解決シンボル判別手段によりシンボル情報の解決のときに解決できないシンボル情報があるか否かを判別し、解決できないシンボル情報があるとき、上記未解決シンボル応答手段により未解決シンボル情報を上記他の機器に返して、他の機器に解決に必要なシンボル情報について問い合わせを行う。そうすると、上記他の機器は、上記未解決のシンボル情報に対してシンボル情報をこの情報処理装置に返すことによって、その他の機器からの解決済みのシンボル情報を用いて、上記シンボル情報解決手段によりシンボル情報の解決を行うことができる。
【００２１】
また、一実施形態の記録媒体は、上記シンボル情報保存手段,シンボル情報選択手段,シンボル情報解決手段および命令コード応答手段としてコンピュータを動作させるためのプログラムが記録されていることを特徴としている。
【００２２】
上記実施形態の記録媒体によれば、記録されたプログラムをコンピュータに読み込んで、そのプログラムを実行することによって、上記第３の発明の情報処理装置を実現できる。
【００２３】
また、一実施形態の記録媒体は、上記シンボル情報保存手段,シンボル情報選択手段,シンボル情報解決手段,命令コード応答手段,未解決シンボル判別手段および未解決シンボル応答手段としてコンピュータを動作させるためのプログラムが記録されていることを特徴としている。
【００２４】
上記実施形態の記録媒体によれば、記録されたプログラムをコンピュータに読み込んで、そのプログラムを実行することによって、上記第３の発明の情報処理装置を実現でき、さらに、他の機器からのシンボル情報を用いて、未解決のシンボル情報についてシンボル情報の解決を行うことができる。
【００２５】
【００２６】
【００２７】
【００２８】
【００２９】
【００３０】
【００３１】
【００３２】
【００３３】
【００３４】
【００３５】
【発明の実施の形態】
以下、この発明の情報処理装置および記録媒体を図示の実施の形態により詳細に説明する。
【００３６】
図１はこの発明の実施の一形態の情報処理装置の全体構成図を示している。この情報処理装置は、Ｊａｖａのバイトコードを実行するクライアント機器１０１と、クライアント機器１０１と通信回線１０３を介して接続され、実行したいバイトコードを保持しているサーバ機器１０２とを備えている。上記通信回線１０３には、ＲＳ２３２Ｃ(米国電子工業会規格)やＩｒＤＡ(Infrared Data Asssociation)のようなサーバ機器１０２とクライアント機器１０１が直接接続される場合や、ＴＣＰ／ＩＰ(Transmission Control Protocol/Internet Protocol)を使ったネットワークで接続される場合もある。この実施の形態では、クライアント機器１０１とサーバ機器１０２とがＴＣＰ／ＩＰを使ったネットワークによって接続されていることを想定して説明を行う。このときのＴＣＰ／ＩＰによる接続は、１対１の接続であるため、直接接続された場合にも同様の処理にて実現可能である。
【００３７】
図２は図１に示すクライアント機器１０１の構成図を示しており、２０１は上記通信回線１０３を介してサーバ機器１０２と通信を行う通信制御手段、２０２は上記通信制御手段２０１を介してサーバ機器１０２に命令コードを要求する命令コード要求手段、２０３は上記サーバ機器１０２に自機器の機種に依存する機種依存情報を伝達する機種依存情報伝達手段、２０４は上記サーバ機器１０２からの命令コードを実行する命令コード実行手段、２０５は上記サーバ機器１０２にシンボル情報を伝達するシンボル情報伝達手段、２０６は上記サーバ機器１０２からの命令コードを自機器で実行可能な命令コードに変換するクライアント側命令コード変換手段、２０７は上記サーバ機器１０２からの命令コードを記憶する命令コード記憶手段、２０８は上記サーバ機器１０２からの命令コードが機種に依存しない命令コードか否かを判別する命令コード判別手段である。
【００３８】
また、図３は図１に示すサーバ機器１０２の構成図を示しており、３０１は上記通信回線１０３を介して上記クライアント機器１０１と通信を行う通信制御手段、３０２は上記クライアント機器１０１で実行される命令コードに関するシンボル情報が保存されたシンボル情報保存手段、３０３は上記クライアント機器１０１が要求する命令コードに関するシンボル情報をシンボル情報保存手段３０２から選択するシンボル情報選択手段、３０４は上記クライアント機器１０１から要求された命令コードについてシンボル情報を解決するシンボル情報解決手段、３０５は上記クライアント機器１０１からの命令コードの要求を受ける命令コード要求受諾手段、３０６は上記シンボル情報解決手段３０４によりシンボル情報が解決された命令コードをクライアント機器１０１に返す命令コード応答手段、３０７は上記シンボル情報解決手段３０４によって解決できないシンボル情報があるか否かを判別する未解決シンボル判別手段、３０８はサーバ側命令コード変換判別手段、３０９はサーバ側命令コード変換手段、３１０は上記クライアント機器１０１で実行される命令コードを含むバイトファイルコードを保存するバイトコードファイル保存手段、３１１は上記クライアント機器１０１からの機種依存情報を保存する機種依存情報保存手段、３１２は上記未解決シンボル判別手段３０７が解決できないシンボル情報があると判別すると、その未解決のシンボル情報をクライアント機器１０１に返す未解決シンボル応答手段である。
【００３９】
上記通信回線１０３,クライアント機器１０１の通信制御手段２０１およびサーバ機器１０２の通信制御手段３０１で通信手段を構成している。
【００４０】
上記構成の情報処理装置において、バイトコードが含まれたバイトコードファイルをサーバ機器１０２からクライアント機器１０１に転送する方式は、クライアント機器１０１からサーバ機器１０２に要求を出して結果を受け取ることを繰り返す方式であり、転送するバイト数等の付加情報を転送できる方式がある。この実施形態では、ＷＷＷ(World Wide Web)で用いられているＨＴＴＰ(Hypertext Ttansfer Protocol)プロトコルを用いて説明する。なお、ＨＴＴＰプロトコルに限らず、ファイル転送機能と付加情報を転送できる機能があれば使用できる。
【００４１】
以下の説明では、上記で示した通信経路が確立されたものとして説明する。
【００４２】
上記サーバ機器１０２からクライアント機器１０１に送られるバイトコードファイルには、以下の情報が含まれる。
・ファイルヘッダ
・クラス構造
・メソッド構造
・クラス変数構造
・インスタンス変数構造
・命令コード
・シンボル情報
上記ファイルヘッダは、そのバイトコードファイルに含まれる情報の先頭へのポインタがあり、バイトコードファイルの中の情報を検索するために用いる。上記クラス構造は、このバイトコードファイルが保持しているコードが含まれるクラス名と、メソッド、クラス変数、インスタンス変数の個数等の情報を持っている。また、上記メソッド構造では、個々のメソッドごとにメソッド名とメソッドの命令コードヘのポインタを持っており、上記クラス変数構造では、変数名と変数の型等の情報を示すシンボル情報へのポインタを持っている。インスタンス変数も同様である。また、上記命令コードには、クライアント機器１０１で実行されるバイトコードまたは機械語命令が入っている。
【００４３】
図４に上記クライアント機器１０１における命令コードの要求とダウンロードの手順について説明する。図４において、クライアント機器１０１は、命令コード要求手段２０２によって、最初にダウンロードを行うバイトコードファイル名をサーバ機器１０２に要求する(Ｓ４０１)。次に、サーバ機器１０２では、指定されたバイトコードファイル名をバイトコードファイル保存手段３１０から取り出して、クライアント機器１０１に送り、クライアント機器１０１では、サーバ機器１０２から得たバイトコードファイルを命令コード記憶手段２０７に保存する(Ｓ４０２)。
【００４４】
また、図５は上記クライアント機器１０１におけるダウンロードしたバイトコードファイルの実行の手順を示している。図５に示すように、クライアント機器１０１では、命令コード記憶手段２０７に保存されたバイトコードファイルを取り出し(Ｓ５０１)、さらに、そのバイトコードファイルから命令コードを取り出して(Ｓ５０２)、命令コード実行手段２０４によって順次命令コードを実行してゆく(Ｓ５０３)。そして、終了命令を実行するまで(Ｓ５０４)、次の命令を順次取り出して(Ｓ５０５)、命令コードの実行を繰り返す(Ｓ５０３)。
【００４５】
図６は上記クライアント機器１０１の命令コード実行中の処理(Ｓ５０３)において未解決シンボル情報がある場合の処理を示している。
【００４６】
図６に示すように、命令コード実行時に命令コードを解釈し(Ｓ６０１)、命令コード判別手段２０８によって、命令コードのオペランドの情報に未解決のシンボル情報があるか否かを判別する(Ｓ６０２)。そして、未解決のシンボル情報がある場合は、そのシンボル情報が命令コード記憶手段２０７にあるか否かを判別し(Ｓ６０３)、シンボル情報がある場合は、未解決のシンボル情報に対して命令コード記憶手段２０７のシンボル情報に含まれるアドレスを設定する(Ｓ６０８)。一方、シンボル情報が命令コード記憶手段２０７にない場合は、未解決のシンボル情報を解決するためにバイトコードが含まれるバイトコードファイル名を取り出し(Ｓ６０４)、得られたバイトコードファイル名を図４に示した手順によりサーバ機器１０２に要求する(Ｓ６０５)。その結果、サーバ機器１０２から得られたバイトコードファイルを命令コード記憶手段２０７に保存する(Ｓ６０６)。ここでは、解決しようとしているシンボル情報が未解決のままなので、他の未解決のシンボル情報があるか否かを判別する(Ｓ６０７)ことによって、再度、手順Ｓ６０３に戻り、上記手順Ｓ６０３〜６０６およびＳ６０８を行うことにより、ダウンロードされたバイトコードファイルに含まれるシンボル情報を使って解決が行われる。
【００４７】
以上、サーバ機器１０２からバイトコードをダウンロードして実行する手順について説明したが、すべてのバイトコードファイルをサーバ機器１０２からダウンロードすることは、実際のアプリケーションでは実行効率が悪いため、通常は共通的に使われるバイトコードファイルをクライアント機器１０１側で予め持っておくことが行われる。
【００４８】
この場合に、図６に示した未解決のシンボル情報がある場合にサーバ機器１０２に要求する手順Ｓ６０５において、まず、クライアント機器１０１自身がそのバイトコードファイルを持っているか調べ、クライアント機器１０１側ですでにあればそれを使うということを行う。
【００４９】
上記クライアント機器１０１は、機種依存情報伝達手段２０３によりクライアント機器１０１がどのような解決済みのシンボル情報を持っているか、どのような命令コード実行手段を持っているか、どのようなＣＰＵを搭載しているか等の機種依存情報を通信回線１０３を介してサーバ機器１０２側に伝達する。そして、上記サーバ機器１０２は、クライアント機器１０１から通信回線１０３を介して伝達された機種依存情報を機種依存情報保存手段３１１に保存する。また、上記命令コード要求受諾手段３０５によりクライアント機器１０１の情報を取得し、シンボル情報選択手段３０３によりクライアント機器１０１のシンボル情報を取得して、シンボル情報解決手段３０４によりシンボル情報の解決を行う。
【００５０】
以下、詳しい手順の説明を行う。
【００５１】
まず、クライアント機器１０１が持っているライブラリについて、予め作成された解決済みのシンボル情報、クライアント機器１０１のＣＰＵの種別、命令コードを実行する手段の種別にＩＤ(識別子)を夫々割り当てる。
【００５２】
例えば、ライブラリに関しては、１から順に割り当ててもよい。また、ＣＰＵに関しては、バイトコードを機械語命令に変換するときに必要になるため、適切な機械語命令を生成するクロスコンパイラを特定できるようなＩＤであればよい。最後に、機械語命令を生成する場合には、命令コード実行手段２０４(図２に示す)が持っている内部の値を参照したり、機能を呼び出す場合があるので、命令コード実行手段２０４のシンボル情報を特定するための符合をＩＤに割り当てる。
【００５３】
次に、バイトコードファイルをサーバ機器１０２からクライアント機器１０１にダウンロードするときに、サーバ機器１０２においてダウンロードするバイトコードのシンボル情報の参照関係を解決するには、対象となっている解決済みのシンボル情報をサーバ機器１０２側で持っておく必要がある。そこで、上記クライアント機器１０１が持っている解決済みシンボル情報を上記ＩＤと共に、サーバ機器１０２のシンボル情報保存手段３０２に保存する。
【００５４】
図７はバイトコードファイルをダウンロードするときのクライアント機器１０１側の手順について示しており、図８はサーバ機器１０２側の手順について示している。
【００５５】
上記クライアント機器１０１がサーバ機器１０２からバイトコードをダウンロードする場合に、通常、ＨＴＴＰプロトコルを用い、実際にダウンロードしたいバイトコードファイルのファイル名だけでなく、さまざまな付加情報をサーバ機器１０２に送付する。上記サーバ機器１０２にクライアント機器１０１の機種依存情報を伝達するには、ＨＴＴＰプロトコルで送付することになっているタグのうち、例えばAgentタグを使用する。このAgentタグは、クライアント機器１０１側がどのようなアプリケーションであるかをサーバ機器１０２側に通知するために用いられている。例えば、
User−Agent：  ｌｉｂ＝１，ｃｐｕ＝ｓｈ，ｖｍ＝１．０
とすることにより、１のライブラリでＣＰＵは“ｓｈ”で、ｖｍは“１．０”であることをサーバ機器１０２に通知することができる。
【００５６】
すなわち、クライアント機器１０１では、図７に示すように、命令コード要求手段２０２により、自機器の機種依存情報を付加して命令コードを要求する(Ｓ７０１)。ここで、「命令コードを要求する」とは、バイトコードファイルのダウンロードを要求することであり、バイトコードファイル名と機種依存情報をサーバ機器１０２に送る。
【００５７】
次に、サーバ機器１０２から返答を受け取る(Ｓ７０２)。すなわち、要求した命令コードを含むバイトコードファイルを受け取る。
【００５８】
そして、バイトコードファイルのダウンロード要求に対してサーバ機器１０２からエラーコードが返され、そのエラーコードが６００番台である場合は、サーバ機器１０２からシンボル情報の要求があったと解釈する(Ｓ７０３)。
【００５９】
そして、エラーコードの本文中のシンボル情報を取り出し、クライアント機器１０１の命令コード記憶手段２０７に含まれるシンボル情報と比較し、要求されたシンボル情報を命令コード記憶手段２０７から取り出す(Ｓ７０４)。
【００６０】
取り出したシンボル情報をサーバ機器１０２に送付する場合には、バイトコードファイル名と、その後に、各シンボル名とその値を列挙する形のリクエストを出す。例えば、ＨＴＴＰプロトコルなら、
ｇｅｔ  バイトコードファイル名 ？ シンボルド１＝値１，シンボル２＝値２
として、シンボル情報伝達手段２０５および命令コード要求手段２０２により、シンボル情報を付加して再度命令コードを要求する(Ｓ７０５)。
【００６１】
そして、サーバ機器１０２から返答(バイトコードファイル)を受け取り(Ｓ７０６)、サーバ機器１０２から送られてきたバイトコードファイルの内容を、通常の処理に従って命令コード記憶手段２０７に展開する(Ｓ７０７)。
【００６２】
これに対して、サーバ機器１０２では、図８に示すように、ＨＴＴＰプロトコルによってクライアント機器１０１から送られてきたリクエストから、ダウンロード対象となっているクライアント機器１０１からのバイトコードファイル名と機種依存情報を受け取り(Ｓ８０１)、機種依存情報を解釈して(Ｓ８０２)、ヘッダ情報に含まれる機種依存情報に基づいて、解決済シンボル情報の種別を特定する。
【００６３】
上記サーバ機器１０２では、機種依存情報からシンボル情報保存手段３０２に対応する解決済シンボル情報を持っているか否か判別し(Ｓ８０３)、解決済シンボル情報を持っていないと判別すると、命令コード応答手段３０６により、要求されたバイトコードファイルをそのままクライアント機器１０１に返す(Ｓ８０９)。
【００６４】
一方、シンボル情報保存手段３０２に解決済シンボル情報を保持している場合は、その解決済シンボル情報をシンボル情報保存手段３０２から取り出し、シンボル情報解決手段３０４によって、対応するシンボル情報を用いて要求されたバイトコードファイルに含まれるシンボル情報を解決する(Ｓ８０４)。そして、未解決シンボル判別手段３０７によって、すべてのシンボル情報が解決できているか否かを判別し(Ｓ８０５)、すべてのシンボル情報が解決済みならば、シンボル情報を解決したバイトコードファイルを、命令コード応答手段３０６により通信制御手段３０１を介してクライアント機器１０１に転送する(Ｓ８１０)。
【００６５】
上記バイトコードファイルが転送されたクライアント機器１０１では、そのバイトコードファイルの内容を、通常の処理に従って命令コード記憶手段２０７に展開する(図７のＳ７０７)。その後、通常通り、クライアント機器１０１でシンボル情報を解決しようとするが、すべて解決されているので、実際の参照関係の解決処理は必要ない。
【００６６】
ところで、上記サーバ機器１０２側の手順Ｓ８０５でシンボル情報解決手段３０４より解決できないシンボル情報がある場合、そのシンボル情報については、クライアント機器１０１側に持っている可能性がある。そこで、現在の参照解決の状態を一旦破棄して、未解決となったシンボル情報をまとめて未解決シンボル応答手段３１２によりクライアント機器１０１に送る(Ｓ８０６)。この場合の未解決となったシンボル情報をクライアント機器１０１に送付する具体的な方法としては、ＨＴＴＰプロトコルで規定されているエラーコードを返す方法がある。このＨＴＴＰプロトコルでは、エラーコードとして５００番台まで決められているので、例えば、６００番台のエラーコードを返すこととして、そのエラーコードの本文の中に、参照解決ができなかったシンボル情報を入れて返す。
【００６７】
そうすると、クライアント機器１０１では、バイトコードファイルのダウンロードの要求に対してサーバ機器１０２から返されたエラーコードが６００番台である場合に、サーバ機器１０２からシンボル情報の要求があったと解釈して、要求されたシンボル情報を取り出し、シンボル情報を付加して再度命令コードを要求する(図７のＳ７０３〜Ｓ７０５)。
【００６８】
次に、サーバ機器１０２では、クライアント機器１０１からシンボル情報を受け取り(Ｓ８０７)、指定されたバイトコードファイル名の後にシンボル情報が追加されていた場合は、そのシンボル情報を用いて一時的なシンボル情報を作成する。
【００６９】
その後は、機種依存情報と、受け取ったシンボル情報とを用いて、シンボル情報の解決を行う(Ｓ８０８)。
【００７０】
この場合でも、未解決のシンボル情報が発生した場合は、そのシンボル情報は、別途ダウンロードが必要なバイトコードファイルに含まれている可能性があるため、未解決のままとして、クライアント機器１０１に送る。
【００７１】
このように、処理能力の高いサーバ機器１０２でシンボル情報の解決を行うことによって、クライアント機器１０１側でサーバ機器１０２から送られた命令コードについてシンボル情報の解決を行って実行するよりも、クライアント機器１０１の処理が軽減され、実行速度を速くできる。また、上記クライアント機器１０１の処理が軽くなるので、メモリが少なくかつ能力の低いＣＰＵを搭載したクライアント機器でも十分に対応することができる。
【００７２】
次に、クライアント機器１０１の実行を高速化するために、バイトコードの仮想命令をクライアント機器１０１のＣＰＵが直接実行できる機械語命令にサーバ機器１０２側で変換する処理について以下に説明する。この実施の形態では、クライアント機器１０１からのＣＰＵの種別やシンボル情報をサーバ機器１０２に送付しているので、サーバ機器１０２側で機械語命令への変換が可能である。
【００７３】
図９はクライアント機器１０１が直接実行できる機械語命令への変換を行うときのクライアント機器１０１側の手順を示しており、図１０はサーバ機器１０２側の手順を示している。
【００７４】
まず、クライアント機器１０１では、命令コード要求手段２０２により、機種依存情報を付加して命令コードを要求する(Ｓ９０１)。次に、サーバ機器１０２からバイトコードファイルを受け取り(Ｓ９０２)、命令コード判別手段２０８によりそのバイトコードファイルに含まれる命令コードが直接実行可能か否かを判別する(Ｓ９０３)。そして、上記命令コード判別手段２０８が命令コードが直接実行可能でないと判別すると、クライアント側命令コード変換手段２０６により命令コードを実行可能な形式に変換して(Ｓ９０４)、命令コード実行手段２０４により命令コードを実行する(Ｓ９０５)。一方、上記命令コード判別手段２０８が命令コードが直接実行可能であると判別すると、命令コード実行手段２０４によりそのまま命令コードを実行する(Ｓ９０５)。
【００７５】
これに対して、サーバ機器１０２では、図１０に示すように、クライアント機器１０１からバイトコードファイル名と機種依存情報を含む命令コードの要求を受け取り(Ｓ１００１)、機種依存情報を解釈して(Ｓ１００２)、クライアント機器１０１からのUser‐Agentタグに含まれるＣＰＵの種別をサーバ側命令コード変換判別手段３０８によって識別し、クライアント機器１０１の機械語命令に変換可能であるか否かを判別する(Ｓ１００３)。すなわち、サーバ機器１０２が、得られたＣＰＵ種別の機械語命令への変換手段(クロスコンパイラ)を持っているか否か判別するのである。そして、機械語命令への変換が可能であるならば、サーバ側命令コード変換手段３０９により、要求されたバイトコードファイルをクライアント機器１０１のＣＰＵに対応した機械語命令に変換する(Ｓ１００４)。そして、クライアント機器１０１が直接実行できる形式に変換して、バイトコードファイルをクライアント機器１０１に返す(Ｓ１００５)。一方、機械語命令に変換できないときは、機種に依存しない仮想命令のままバイトコードファイルを返す(Ｓ１００６)。
【００７６】
このように、処理能力の高いサーバ機器１０２でクライアント機器１０１が実行可能な命令コードの変換を行うことによって、クライアント機器１０１側でサーバ機器１０２から送られた命令コードの変換を行って実行するよりも、クライアント機器１０１の処理が軽減され、実行速度を速くできる。また、上記クライアント機器１０１の処理が軽くなるので、メモリが少なくかつ能力の低いＣＰＵを搭載したクライアント機器でも十分に対応することができる。
【００７７】
また、上記クライアント機器１０１またはサーバ機器１０２は、プログラムとして実現される。このプログラムはコンピュータで読み取り可能な記録媒体に格納されており、上記プログラムによって各手段の処理は実現される。なお、上記記録媒体は、メモリ(例えばＲＡＭやＲＯＭのようなもの)であってもよいし、外部記憶装置としてプログラム読み取り装置が設けられ、そこに記録媒体を挿入することで読み取り可能なプログラムメディアであってもよい。上記プログラムメディアとしては、磁気テープやカセットテープ等のテープ系、フロッピーディスクやハードディスク等の磁気ディスクやＣＤ−ＲＯＭ(Conpact Disc Read Only Memory)／ＭＯ(Magnetic Optical Disc)／ＭＤ(Mini Disc)／ＤＶＤ(Digital Versatile Disc)等の光ディスク等からなるディスク系、ＩＣ(集積回路)カードや光カード等のカード系、マスクＲＯＭ、ＦＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュＲＯＭ等による半導体メモリを含めた固定的にプログラムを担持する媒体のいずれであってもよい。
【００７８】
また、この発明の情報処理機器をインターネットを含む通信ネットワークと接続することによって、通信ネットワークからプログラムをダウンロードするような流動的にプログラムを担持する媒体かプログラムメディアであってもよい。なお、このように通信ネットワークからプログラムをダウンロードする場合には、そのダウンロード用プログラムは、予め装置本体に格納しておいてもよいし、あるいは別の記録媒体からインストールされるものであってもよい。
【００７９】
なお、記録媒体に格納されている内容としては、プログラムに限定されず、データであってもよい。
【００８０】
上記実施の形態では、オブジェクト指向のプログラミング言語であるＪａｖａの実行環境を備えた情報処理装置について説明したが、プログラミング言語はＪａｖａに限らず、サーバ機器に保存されたクライアント機器で実行される命令コードを通信手段を介してクライアント機器に送る情報処理装置において用いられるプログラム言語であればよい。
【００８１】
また、上記実施の形態では、クライアント機器１０１が命令コードを要求するときに機種依存情報伝達手段２０５により機種依存情報をサーバ機器１０２に伝達したが、命令コードの要求とは別に、前もって機種依存情報をサーバ機器に伝達し、サーバ機器側で機種依存情報を保存しておき、必要に応じて保存された機種依存情報を用いてもよい。
【００８２】
また、上記実施の形態では、クライアント機器１０１とサーバ機器１０２とが通信回線１０３を介して１対１で接続された情報処理装置について説明したが、１つのサーバ機器に複数のクライアント機器が通信手段を介して接続された情報処理装置にこの発明を適用してもよいし、複数のクライアント機器と複数のサーバ機器が互いに通信手段を介して接続された情報処理装置にこの発明を適用してもよい。
【００８３】
【発明の効果】
以上より明らかなように、この発明の情報処理装置および記録媒体によれば、ネットワークから命令コードをダウンロードする形態の実行環境において、メモリに余裕があり高速なＣＰＵを有する処理能力の高いサーバ機器が、シンボル情報の解決およびクライアント機器が実行可能な命令コードの変換を行うことによって、クライアント機器側でサーバ機器から送られた機種に依存しない命令コードについてシンボル情報の解決および実行可能な命令コードの変換を行う必要がなく、クライアント機器の処理が軽減され、実行速度を速くできる。また、上記クライアント機器の処理が軽くなるので、メモリが少なくかつ低能力のＣＰＵを搭載したクライアント機器でも十分に対応できる。
【図面の簡単な説明】
【図１】  図１はこの発明の実施の一形態の情報処理装置の全体構成図である。
【図２】  図２は上記情報処理装置のクライアント機器の構成図である。
【図３】  図３は上記情報処理装置のサーバ機器の構成図である。
【図４】  図４は上記クライアント機器の命令コードの要求とダウンロード手順を示すフローチャートである。
【図５】  図５は上記クライアント機器のバイトコード実行の手順を示すフローチャートである。
【図６】  図６は上記クライアント機器のシンボル情報の解決手順を示すフローチャートである。
【図７】  図７はバイトコードファイルをダウンロードするときのクライアント側の手順を示すフローチャートである。
【図８】  図８はバイトコードファイルをクライアントにダウンロードするときのサーバ機器側の手順を示すフローチャートである。
【図９】  図９は上記クライアント機器が直接実行できる機械語命令への変換を行うときのクライアント機器側の手順を示すフローチャートである。
【図１０】  図１０は上記クライアント機器が直接実行できる機械語命令への変換を行うときのサーバ機器側の手順を示すフローチャートである。
【符号の説明】
１０１…クライアント機器、
１０２…サーバ機器、
１０３…通信回線、
２０１…通信制御手段、
２０２…命令コード要求手段、
２０３…機種依存情報伝達手段、
２０４…命令コード実行手段、
２０５…シンボル情報伝達手段、
２０６…クライアント側命令コード変換手段、
２０７…命令コード記憶手段、
２０８…命令コード判別手段、
３０１…通信制御手段、
３０２…シンボル情報保存手段、
３０３…シンボル情報選択手段、
３０４…シンボル情報解決手段、
３０５…命令コード要求受諾手段、
３０６…命令コード応答手段、
３０７…未解決シンボル判別手段、
３０８…サーバ側命令コード変換判別手段、
３０９…サーバ側命令コード変換手段、
３１０…バイトコードファイル保存手段、
３１１…機種依存情報保存手段、
３１２…未解決シンボル応答手段。
【図１】
0003703350.tif 000002
【図２】
0003703350.tif 000003
【図３】
0003703350.tif 000004
【図４】
0003703350.tif 000005
【図５】
0003703350.tif 000006
【図６】
0003703350.tif 000007
【図７】
0003703350.tif 000008
【図８】
0003703350.tif 000009
【図９】
0003703350.tif 000010
【図１０】
0003703350.tif 000011