JP2005228183A - プログラム実行方法、および、プログラム実行のための計算機システム - Google Patents

プログラム実行方法、および、プログラム実行のための計算機システム Download PDF

Info

Publication number
JP2005228183A
JP2005228183A JP2004037804A JP2004037804A JP2005228183A JP 2005228183 A JP2005228183 A JP 2005228183A JP 2004037804 A JP2004037804 A JP 2004037804A JP 2004037804 A JP2004037804 A JP 2004037804A JP 2005228183 A JP2005228183 A JP 2005228183A
Authority
JP
Japan
Prior art keywords
program
function
program execution
execution
server
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
JP2004037804A
Other languages
English (en)
Inventor
Yoshiaki Morimoto
義章 森本
Motoaki Satoyama
元章 里山
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2004037804A priority Critical patent/JP2005228183A/ja
Publication of JP2005228183A publication Critical patent/JP2005228183A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Telephonic Communication Services (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

【課題】サーバと携帯端末からなる計算機システムにおいて、既に広く流布している携帯端末向けのプログラムを修正することなく、携帯端末上での実行の際に課せられる処理速度、メモリ容量などの携帯端末の特性から生ずる様々な制限を取り除きつつ、従来と同様な機能を携帯端末で実行する。
【解決手段】プログラム格納・変換部は、関数呼び出しの変更情報により、該当する関数呼び出しをスタブ関数の呼び出しに変更し、プログラム実行サーバに配布する。携帯端末にも、実行するプログラムを配布し、サーバから、スタブ関数の呼び出しにより、スタブ関数を呼び出して、そのスタブ関数から携帯端末上のプログラムを、通信路を介して実行する。
【選択図】 図1

Description

本発明は、プログラム実行方法に係り、コンピュータプログラムの実行をサーバと携帯端末の双方でおこなえるようにしたプログラム実行方法に関する。
近年、携帯電話やPDA等をはじめとする携帯端末の普及が目覚しい。特に、携帯電話は、初期の通話以外の用途のほかに、様々な機能を持つ携帯機器として進化してきており、インタプリタの実行環境が搭載され、様々な処理がおこなえるようになっている。例えば、ゲームや、予定管理等のアプリケーションをネットワーク経由で携帯電話にダウンロードして使用することが一般的におこなわれている。(以下の非特許文献1に記載)。
NTT DoCoMo社,iアプリコンテンツ作成について,[Online],,[参照:平成15年5月15日],インターネット<http://www.nttdocomo.co.jp/mc-user/i/java/index.html>
携帯端末がプログラムを実行できるようになり、ユーザの利便性は飛躍的に向上した。
しかしながら、携帯端末はその特性上、プログラムを実行するためのリソース、例えば、CPUの処理性能、メモリ量、二次記憶装置容量、ネットワーク性能等の性能が低く、またその機能が制限されていることが多い。このため、規模の大きなプログラムが実行できない場合や、たとえ実行できても処理に時間がかかることが多い。また、無線ネットワークを前提したものが多いため、通信にかかる費用も一般に高く、ネットワークを多用する用途に利用しにくいというコスト的な問題も存在する。
本発明は、上記問題点を解決するためになされもので、その目的は、既に広く流布している携帯端末向けのプログラムを修正することなく、これらの携帯端末上での実行の際に課せられる携帯端末の特性から生ずる様々な制限を取り除きつつ、従来と同様な機能を携帯端末で利用できるようにすることにある。
本発明に係る計算機システムのプログラム実行方法は、第一のプログラム実行装置と第二のプログラム実行装置と記憶装置とからなる計算機システムのプログラム実行方法において、前記記憶装置から第一のプログラムと第二のプログラムとを読み出すステップと、前記記憶装置から前記第一のプログラムと前記第二のプログラムのそれぞれに記述されている関数呼び出しの置換情報を読み出すステップと、読み出された前記第一のプログラムと前記第二のプログラムのそれぞれに記述されている関数呼び出しを、それぞれ前記置換情報に基づき別の関数呼び出しに置換するステップと、前記関数呼び出しを置換された第一のプログラムと第二のプログラムとを、前記第一のプログラム実行装置と前記第二のプログラム実行装置に、それぞれ配布するステップと、前記第一のプログラム実行装置において前記第一のプログラムを実行し、前記第一のプログラムの置換された別の関数呼び出しにより、前記第二のプログラムの置換された関数を呼び出して、前記第二のプログラム実行装置において前記第二のプログラムを実行するステップとを有するようにしたものである。
すなわち、本発明では、上記の課題を解決するために、携帯端末向けのプログラムを格納しているプログラム保存部、携帯端末向けのプログラムの全て、あるいは一部を実行可能なプログラム実行サーバ、および、携帯向けプログラムをプログラム実行サーバで実行可能に変換するプログラム変換部を備える。
携帯端末でプログラムを実行する場合の従来手順は、プログラム格納部から目的のプログラムをネットワーク経由でダウンロードして、その携帯端末上で実行するものであった。
一方、本方式では携帯端末からのプログラムロード要求に対して、プログラム保存部に格納されたプログラムをプログラム変換部に、いったん読み込む。次にプログラム変換部では、プログラムを解析し、プログラム実行サーバで実行するのが妥当と判断できる部分と、携帯端末側で実行するのが妥当と判断できる部分に分離する。
プログラム実行サーバで実行するのが妥当な部分とは、例えば、単純な数値計算や、データベースにアクセスする部分、あるいは、ネットワークにアクセスする部分が考えられる。また携帯端末上で実行するのが妥当な部分としては、例えば、ユーザインターフェースに関係した部分などが考えられる。このうち携帯端末側で実行すべき部分については、プログラム中で当該機能を呼び出している箇所を検出し、スタブ関数(仲介関数)の呼出に変換し、プログラム実行サーバにロードする。携帯端末側には、プログラム実行サーバのスタブ関数からの要求を実行する関数の呼出し手続きを含むプログラムをロードする。
このような構成にしてプログラムを実行するとサーバで実行すべき部分はサーバ上で高速実行される。スタブ関数呼び出しに置き換えられたUI等の処理は、これを呼び出すことでサーバ上のスタブ関数が呼び出され、そのスタブ関数からネットワーク経由の関数呼び出し、すなわち、遠隔関数呼び出し(以下、RPC、Remote Procedure Call)を利用して、携帯端末上の関数呼出し手続きを含むプログラムから、目的とする関数を呼び出し、携帯端末上で処理がおこなわれる。
ユーザの端末操作等の処理についても、スタブ関数とRPCを利用して同様な方法で、携帯端末からスタブ関数を呼び出し、プログラム実行サーバ上のプログラムを実行することによりおこなうことができる。
このような構成と動作によって、既存のプログラムを、その処理の大部分を高速なプログラム実行サーバ部で実行しながら実行し、UI等は従来通り携帯端末を使用することが可能することで、プログラムの利便性を変えることなく高速な処理が可能となる。
本発明によれば、既に広く流布している携帯端末向けのプログラムを修正することなく、これらの携帯端末上での実行の際に課せられる携帯端末の特性から生ずる様々な制限を取り除きつつ、従来と同様な機能を携帯端末で利用できる。
以下、図1ないし図18を用いて本発明に係る一実施形態を説明する。
〔関数呼出しの置換処理をおこなう計算機システム〕
先ず、図1ないし図3を用いて本発明の計算機システムの構成について説明する。
図1は、本発明の計算機システムの構成図である。
図2は、RPC通信部の構成図である。
図3は、オブジェクト管理表を示す図である。
本発明の計算機システムは、プログラム実行サーバ10と、プログラム格納変換部20と、携帯端末30がネットワーク40を介して接続される構成である。携帯端末プログラム代替実行部11は、従来、携帯端末上で実行されていたプログラムをプログラム実行サーバ10で実行されるようにした機構である。このプログラム実行サーバ10は、標準的なコンピュータが備えるように、入力機器2、出力機器3、プログラム、ライブラリファイルからなる。プログラムは、外部記憶装置4等がバスブリッジ1で接続されたコンピュータにおけるメモリ上で実行される。また、ライブラリファイルは、外部記憶装置4に記録されるている。
携帯端末プログラム代替実行部11は、プログラム実行仮想機械12、スタブライブラリ14および実行ライブラリ13からなる。プログラム実行仮想機械12は、オブジェクト管理部121とRPC通信部122を持つ。
オブジョクト管理部121は、システムで扱うオブジェクトを管理する部分であり、後に説明するオブジェクト管理表を有する。ここで、オブジェクトとは、関連するデータの集合と、それに対する手続き(メソッド)をまとまりとして管理したものであり、本実施形態のシステムは、いわゆる「オブジェクト指向」のシステムである。
オブジョクト管理表は、データとプログラムの実行に伴い生成するオブジェクトに一意なオブジェクトIDを振り、これを管理するためのテーブルである。テーブルは、オブジェクトID(1211)とオブジェクトが記録されているアドレス1212を対にして記録する。オブジェクトID(1211)からアドレス1212を検索したり、逆にアドレス1212からオブジェクトID(1211)を検索するこが可能であり、高速化のためにハッシュ表をつかった実装も考えられる。
なお、携帯端末30中のオブジェクト管理部321も同様なテーブルを有する。ここではアドレス1212に格納する情報としてオブジェクトのアドレスを使用したが、プログラム実行環境に存在するオブジェクトを一意に識別できる情報であれば、その他のものでもよい。
RPC通信部122の構成は、図2に示す如くであり、符号化部1221,オブジェクトID取得部1222、複合化部1223、オブジェクト呼出部1224、およびネットワーク通信部1225からなる。
RPC通信部122は、呼出し続き情報を受信すると、オブジェクトID取得部1222から、オブジェクトIDを得て、引数などと合わせて、符号化部1221によって、ネットワーク40で交換可能な形態に変換し、ネットワーク通信部1225からRPCとして送信される。
また、RPCとして送信された情報は、別コンピュータ上のネットワーク通信部1225で受信され、復号化部1223で、元のオブジェクトIDと引数に復元されて、オブジェクト呼出部1224に渡される。オブジェクト呼出部1224は、オブジェクトIDを参照して要求されたオブジェクトに対し、呼び出して引数を渡す。
なお、リモート関数の呼出は上記の方式に限定されるものではなく、既存のリモート関数呼び出し方式を利用しても良く、引数と実行する関数名が指定でき、その結果を返せるものであればいずれの方式も利用可能である。
プログラム格納変換部20は、この計算機システムで動作できるように、プログラムを変換する部分であり、プログラム変換部21と、携帯端末用プログラム格納部22を備える。プログラム変換部これも、プログラム実行サーバ10のように入出力機器がバスブリッジで接続されたコンピュータ上で動作する。
携帯端末30は、プログラム実行サーバ10上のものと同じ携帯端末プログラム実行部31があり、これはプログラム実行仮想機械32、実行ライブラリ33、およびスタブライブラリ34からなる。プログラム実行仮想機械32は、さらにオブジェクト管理部321、および、RPC通信部322を備える。RPC通信部322の構成は、図2で示したものと同様である。
携帯端末プログラム実行部31も、プログラム実行サーバ10のように入出力機器がバスブリッジで接続された携帯端末上で動作する。
また、図1ではプログラム実行サーバ10とプログラム格納・変換部20を別のコンピュータ上で構成する実施形態を示したが、これらが同一のコンピュータ上で動作することも考えられる。
プログラム実行サーバ10上の実行ライブラリ13やスタブライブラリ14、あるいは携帯端末30上の実行ライブラリ33やスタブライブラリ34はストレージ上に存在せず、ネットワークからダウンロードする形態も考えられる。
次に、図4ないし図6を用いて本発明のプログラム実行方法の原理について説明する。
図4は、プログラムあるいはライブラリの構成の例を示した図である。
図5は、関数呼出手続置換設定データの構成を示した図である。
図6は、関数呼出手続の置換の例を示した図である。
本システムのプログラム実行は、関数を呼び出す際に関数の呼出しを別の関数に変更して呼び出す処理を含んでいる。
一般に、図4に示されるように、プログラムあるいはライブラリ5は、一つまたは複数の関数(51〜53)と、関数情報54を持っている。関数情報は、プログラムモジュールに特有な情報を保持している。例えば、呼出規約、関数で利用する局所変数、モジュール名、関数に関連した情報のテーブルなどが考えられる。またオブジェクト指向言語ではクラス名なども考えられる。図4では関数情報をプログラムが内部に保有している構造を記したが、プログラム情報が外部に、例えば、別ファイルとして保持される形式も考えられる。この例としては、コンパイラから出力されるMAPファイルなどが考えられる。
関数呼出手続置換設定データ6は、置き換えられる関数である置換対象関数61と、これを置き換える関数である置換関数62の組からなる。一つの置換関数62に対して複数の置換対象関数61が対応することも考えられる。置換対象関数61および置換関数62の保持する情報は、関数を指定する情報であり、関数名、関数を格納しているライブラリ名またはクラス名、関数へのアドレス、関数のIDなどが考えられる。
また、関数呼出手続置換設定データ6は、適用するプログラム毎、あるいはプログラム実行環境毎に予め定められている場合や、プログラムをロードした際に、プログラムを解析して利用できるリソースや要求される性能などを考慮して作成する方法が考えられる。また、関数置換をおこなった後に実行した結果を考慮することも考えられる。
さて、上記のプログラムあるいはライブラリと関数呼出手続置換設定6データがあるときに、本発明の関数呼出手続の置換は、以下のようにおこなわれる。
ユーザプログラム610は、関数A(611)と関数情報614を持っているとする。関数A(611)からは、関数Bの呼出手続612と関数Cの呼出手続613があるものとする。そして、関数B(621)と関数C(622)はライブラリA(620)内に存在する。
これに対して関数呼出手続置換設定データ6に、置換対象関数61として関数B(641)が、置換関数62として関数D(643)が登録されている。この場合、関数B呼出手続612はライブラリB(630)の関数D(631)への呼出手続に書き換える。以下同様にして関数C呼出613の呼出手続も書き換える。
置換される前のプログラムがライブラリA(620)内の関数だけを呼び出していた場合は、実行にはライブラリA(620)だけが必要であったが、当該変換によってライブラリB(630)の関数も呼び出すようになると、実行時にはライブラリB(630)も必要となる。
このような手法により、プログラムから呼び出す関数を置き換えることが可能となる。また、本説明ではプログラムの呼出手続を直接書き換えたが、関数の呼出手続が関数テーブルを参照しておこなうものであれば、このテーブルを書き換えることでも同様な関数呼び出しの置換が可能である。
関数をソースレベルで置き換えたときには、インタープリタ環境ならそのコードを実行すればよい。コンパイラ環境のときには、コンパイルが必要になる。
次に、図7ないし図11を用いて本発明のプログラム実行をおこなうための計算機システムの動作について説明する。
図7は、本発明の計算機システムで仮想計算機がプログラムを実行するまでの流れを示した図である。
図8は、プログラム実行までの各サイトにおける処理の概要を示したフローチャートである。
図9は、関数呼び出しの置換処理を示したフローチャートである。
図10は、RPC通信部(122,322)がネットワークを使用して遠隔の関数を呼び出す手順を示したフローチャートである。
先ず、図7により本発明で関数呼出しの置換処理した場合のプログラム実行の流れについて説明する。
本実施形態では、システム上で関数αと関数βが実行する場合であって、関数αがプログラム実行サーバ10で実行され、関数βが携帯端末上で実行されるものとする。
携帯端末プログラム代替実行部11のプログラム実行仮想機械A(12)上で動作しているオブジェクト1201が関数αの呼び出し1202を実行した場合には、実行ライブラリ13中の関数α(131)が実行される。
一方、本来の関数β(132)への呼び出しは、スタブライブラリ14中のスタブ関数β(141)への呼び出しに置換されている。このため本来の関数β(132)への呼び出しは、スタブ関数β(141)への呼び出しに変更される。スタブ関数β(141)は、RPC通信部122、ネットワーク40を経由して、オブジェクト1021のオブジェクトID(1211)とスタブ関数β(141)へ渡された引数を渡す。
携帯端末30上のプログラム実行仮想機械B(32)には、関数β呼出手続3202を含んだプログラムがロードされる。そして、プログラム仮想機械B(32)では、渡されたオブジェクトID(3211)から対象となるオブジェクト(3201)を得い、その中の関数βへの関数β呼出手続3202を実行することで、実行ライブラリ33中の関数β(331)が実行される。
このような仕組みで、従来では一つのプログラムから呼出されていた機能を、二つの実行環境に任意に分割し、動作させることが可能となる。
次に、図8を用いてプログラム実行までの各サイトにおける処理の概要について説明する。
携帯端末30のイベント発生などのトリガーなどにより、プログラム格納・置換部20は、実行の対象となるプログラムを選択する(ステップ9010)。
次に、読み込んだプログラムの関数呼び出しを、プログラム変換部21が置換し(ステップ9020)する。
そして、プログラム変換部21は、プログラム実行サーバ10向けには関数呼出手続を置換したプログラムを配布して、プログラム実行サーバ10に実行させる(ステップ9030)。
また、プログラム変換部21は、携帯端末30向けにも関数呼出手続を置換したプログラムを配布して、実行させる(ステップ9040)。
次に、図9を用いて関数呼出しの置換処理について説明する。
最初に、プログラム変換部10は、関数置換データ6を読み込む(ステップ9110)。次に、置換対象のプログラムを解析し(ステップ9120)、設定データ6に指定された関数を呼び出している箇所があるか否かを判定して(ステップ9130)、呼び出している場合には設定データ6に基づき関数呼び出しを変更する(ステップ9140)。これを全てのプログラムに対しておこなう(ステップ9150)。
次に、図10を用いてRPC通信部(122,322)がネットワークを使用して遠隔の関数を呼び出す手順について説明する。
RPCの処理では、最初に対象とするオブジェクトのID(1211)をオブジェクト管理部121から取得する(ステップ9210)。
次に、関数呼び出しの引数、および、オブジェクトIDを通信可能な形式に符号化する(ステップ9220)。そして、この情報と共に携帯端末30のRPC通信部322にデータを送信する(ステップ9230)。
携帯端末30上のRPC通信部322では、引数とオブジェクトIDを復号し(ステップ9240)、得たオブジェクトIDからオブジェクトを取得し(ステップ9250)、オブジェクトの関数を引数と共に呼び出す(ステップ9260)。次に関数が実行されてることによって得られた戻り値を符号化し(ステップ9270)、プログラム実行サーバ10のRPC通信部122に送信する(ステップ9280)。RPC通信部12通信部122は戻り値を復号して(ステップ9290)、その戻り値をオブジェクトに設定して(ステップ9295)、処理を終了する。
〔イベント処理とオブジェクト動作〕
次に、図11ないし図15を用いて本発明のプログラム実行方法におけるイベント処理と関連するオブジェクトの動作について説明する。
本発明のプログラム実行方法は、プログラム実行サーバ10と携帯端末30で機能分担し、両方でプログラムを実行するものであった。そのため、プログラムプログラム実行サーバ10の携帯端末プログラム代替実行部11のプログラム仮想実行部12で関数呼出しをスタブ関数呼出しの手続きに置換して実行するものであった。本システムでのイベント処理も両方のサイトのオブジェクトが以下に説明するようにメッセージを送受信しながらおこなう。
先ず、図11により一般的なボタンなどからのイベントを処理するイベントリスナ方式を説明する。
図11は、一般的なボタンなどからのイベントを処理するイベントリスナ方式を説明する図である。
イベントリスナ方式はイベントの授受に広く利用されている方法である。先ず、イベントを発生するオブジェクト700はリスナテーブル710を持ち、このオブジェクトの発生するイベントを受け取るオブジェクトを登録する。この図ではオブジェクトA(720)と、オブジェクトB(730)が登録されている。例えば、ユーザがボタンを押下するなどしてイベントが発生すると、イベント発生オブジェクト700は、リスナテーブル710に登録されたオブジェクトのイベント処理関数を順番に、あるいは一斉に呼び出す。このような方法でユーザの操作をイベントとしてオブジェクトが受け取ることができる。このようなオブジェクトをリスナオブジェクトと呼ぶ。
またこれとは別の方法として、イベントを処理する専用の関数を設け、その中で必要な処理をおこなうものも存在する。
次に、図12により本発明の計算機システムのオブジェクトの実装とイベント発生時の処理について説明する。
図12は、本発明の計算機システムのオブジェクトの実装状態の一例を示す図である。
先ず、携帯端末30上には、ボタンオブジェクト900とリスナスタブオブジェクト920(仲介オブジェクト)が配置され、一方のプログラム実行サーバ10には、ボタンオブジェクト940とリスナオブジェクトが配置される
ボタンオブジェクト900は、携帯端末30上のボタンをオブジェクト指向により具現化したオブジェクトであり、ボタン押下などのイベントを発生させる。ボタンの表示変更をするときには、メソッドとして表示変更関数が呼び出される。内部には、上記で説明したイベントリスナテーブル710を有しており、リスナスタブオブジェクトA920が登録されている。リスナスタブオブジェクトA920は、ボタンオブジェクトのイベントを処理するためのオブジェクトであり、プログラム実行サーバ10上のリスナオブジェクトA930のスタブ(仲介)となるオブジェクトである。
携帯端末上でボタン押下などのイベントが発生したとする。ボタンオブジェクト900は、上記のイベント発生オブジェクト700に該当し、リスナテーブル910のリスナスタブオブジェクトA920のスタブイベント処理関数A921を呼び出す。リスナスタブオブジェクトA920では、スタブイベント処理関数A921から、ネットワーク経由でRPCによりプログラム実行サーバ10のリスナオブジェクトA930のイベント処理関数A931を呼び出してイベント処理が実行される。
ボタンオブジェクト900の表示を変更する場合には、ボタンスタブオブジェクト940の表示変更スタブ関数941から、ネットワーク経由でRPCによりボタンオブジェクト900の表示変更関数901が呼び出される。
このように、プログラム実行サーバ10と携帯端末30の両者にオブジェクトとスタブオブジェクトを配置して処理の機能分担をおこなうことができる。
次に、図13により本発明の計算機システムのオブジェクトの生成の処理の一例について説明する。
図13は、プログラム実行サーバ10と携帯端末30とに、オブジェクトとそれに対応するスタブオブジェクトを生成する処理を示すフローチャートである。
従来のオブジェクト生成関数は、一つのオブジェクトを生成する関数であったとすると、本発明のプログラム実行方法では、一つのサイトにオブジェクトを生成し、他のサイトにはそれに対応するスタブオブジェクトを生成するようにプログラム変換部21が変換する。
図13に示される例は、携帯端末30上にオブジェクトを生成し、プログラム実行サーバ10にそれに対応するスタブオブジェクトを生成するものである。したがって、プログラム変換部21は、プログラム上の通常のオブジェクト生成関数の呼び出しを、スタブオブジェクトの生成関数の呼び出しに置換する。
このため、プログラム実行サーバ10が、スタブオブジェクトの生成関数の呼び出しをおこなうと(ステップ9410)、RPCによる携帯端末30への通信が発生させ(ステップ9420)、携帯端末30上にオブジェクトを生成するトリガーをかける。
携帯端末30では、この呼び出しを受けて、プログラム実行サーバ10側から指定されたオブジェクトを生成し(ステップ9430)、初期化し(ステップ9440)、一意なオブジェクトIDを決定し(ステップ9445)、オブジェクト管理部321に登録する(ステップ9450)。
そして、この生成結果とオブジェクトIDをRPCによりプログラム実行サーバ10に返し(ステップ9460)、オブジェクトの生成に成功しているならば、プログラム実行サーバ10上でスタブオブジェクトを生成し(ステップ9470)、生成されたスタブオブジェクトのオブジェクトIDをオブジェクト管理部121に登録し、そのオブジェクトIDを戻り値として返して、オブジェクト生成関数の呼び出しが終了する。
ここで、スタブオブジェクトは、プログラム変換部21により元の関数のスタブとして置かれる関数から呼び出されることを意図している。図13の例で言えば、プログラム実行サーバ10には、ボタンスタブオブジェクト940が置かれ、表示変更スタブ関数941をメソッドとして有している。携帯端末30上には、それの本体として、ボタンオブジェクト900と、表示変更関数901がある。このように、異なったスタブオブジェクトとオブジェクトが両方のサイトに置かれる構成は、本発明のプログラム実行方法の関数とスタブ関数により機能の実行を分散させることをサポートする形態であると言うことができる。
次に、図14により携帯端末30上でおこなわれたイベントを処理するための登録処理について説明する。
図14は、プログラム実行サーバ10にリスナオブジェクトを、携帯端末30上にリスナスタブオブジェクトを登録するための処理を示すフローチャートである。
ここでは、図12のモデルを例にとり説明する。
通常のリスナオブジェクトの登録関数の呼び出しは、プログラム変換部21により、予めリスナオブジェクトの登録関数のスタブ関数の呼び出しに置換される。
通常のリスナオブジェクトの登録関数は、オブジェクトをリスナテーブルに登録する関数である。本発明のプログラム実行方法では、リスナオブジェクトの登録関数の呼び出しを、スタブ関数の呼び出しに置換しておく。
プログラム実行サーバ10から置換されたスタブ関数が呼び出されると、先ず、リスナオブジェクトA930を生成する(ステップ9510)。
次に、RPC呼出9520により、携帯端末30上にリスナスタブオブジェクトA920を生成する(ステップ9530)。
そして、リスナスタブオブジェクトA920を、ボタンオブジェクト900のリスナテーブル910に登録する(ステップ9540)。
次に、図15により携帯端末30上でおこなわれたイベントが発生したときの動作について説明する。
図15は、携帯端末30上でおこなわれたイベントが発生したときの動作について説明するフローチャートである。
これは、イベントを処理するための登録処理が完了した後にのプログラム実行サーバ10と携帯端末30上でおこなわれる動作である。
ここでも、図13を例にとり説明する。すなわち、携帯端末30上で画面上に表示されているボタンを操作することによりイベントが発生した場合の処理である。
携帯端末30上で画面上に表示されているボタンが操作されると、イベントが発生し、ボタンオブジェクト900が、イベントリスナ方式によりリスナテーブル910を参照し、リスナスタブオブジェクトA920を呼び出す(ステップ9610)。そして、RPC呼出9620により、プログラム実行サーバ10上のリスナオブジェクトA930が呼び出され(ステップ9630)、イベント処理関数931が実行される。
このようにすることで、携帯端末側で生じたイベントをプログラム実行サーバ側で処理することが可能となる。
〔実行環境・性能を考慮した関数呼出しの置換処理の切り分け〕
次に、図16を用いて本発明のプログラム実行方法で実行環境・性能を考慮した関数呼出しの置換処理の切り分けについて説明する。
図16は、発明のプログラム実行方法で実行環境・性能を考慮した関数呼出しの置換処理の切り分けを説明する図である。
図16の計算機システムには、プログラム実行サーバ10と携帯端末30に、それぞれ実行性能管理部15および35が追加されている。
この実行性能管理部15,35はそれぞれの実行環境情報、要求性能などの情報、例えば、CPU能力、メモリ容量、利用できるハードウェア等のプログラム実行に影響する情報が記録されている。
プログラム格納・変換部20には、プログラム変換切分部23が追加されている。プログラム変換切分部23は、実行性能管理部15,35の情報を利用して、プログラムの関数の置換処理を決定する。
例えば、実行するプログラムに対して携帯端末30のメモリが極端に少ない場合は、ほとんど全ての処理をプログラム実行サーバ10で実行するようにする。メモリに余裕がある場合は、関数呼出しの置換処理をおこなって、サーバ側のスタブ関数から携帯端末30のプログラムを実行するようにして、携帯端末30側での処理を増やすなどが考えられる。このように決定した方針によってプログラム変換をプログラム変換部21でおこない、変換したプログラムをプログラム実行サーバ10と、携帯端末30に配布する。
〔他の計算機システム構成〕
次に、図17および図18を用いて本発明のプログラム実行方法を適用する場合の他の計算機システム構成について説明する。
図17および図18は、本発明のプログラム実行方法を適用する場合の他の計算機システム構成について説明する図である。
図1に示した実施形態は、プログラム実行サーバ10と携帯端末30という二つの異なった種別のプログラム実行装置に適用したものであった。これ以外にも同等の方式で同種のプログラム実行装置を二台利用することも同様に可能である。また二台のプログラム実行装置による処理の分担だけではなく、二台以上のプログラム実行装置に対して適用することも可能である。
図17は、その一例を示したものであり、複数のコンピュータにより、振り分けテーブルを利用してスタブ関数からの呼び出しプログラムが実行される場合である。
この図17の構成では、スタブ関数呼び出し810が呼び出されることにより、スタブライブラリ811中のスタブ関数812が呼び出される。そして、それぞれの関数と処理をおこなうコンピュータの振り分けをするための情報である振り分けテーブル814を参照して、このスタブ関数はRPC通信部813を通じてリモートのコンピュータの関数を呼び出してプログラムを実行する。
図18は、他の一例を示したものであり、リモートコンピュータの関数を呼び出すスタブライブラリをコンピュータ毎に準備する方法である。
この図18の構成では、プログラム実行前に関数呼出をスタブ関数呼び出しに置換する際に、どのコンピュータの関数を呼び出すかによってそれぞれ別のスタブライブラリ上のスタブ関数の呼び出しに変更する。このようにすることで関数呼び出しの置換をおこなった後は、特別な処理をすることなく適切なリモートコンピュータ上の関数呼び出しをおこなうことができる。
本発明の計算機システムの構成図である。 RPC通信部の構成図である。 オブジェクト管理表を示す図である。 プログラムあるいはライブラリの構成の例を示した図である。 関数呼出手続置換設定データの構成を示した図である。 関数呼出手続の置換の例を示した図である。 本発明の計算機システムで仮想計算機がプログラムを実行するまでの流れを示した図である。 プログラム実行までの各サイトにおける処理の概要を示したフローチャートである。 関数呼び出しの置換処理を示したフローチャートである。 RPC通信部(122,322)がネットワークを使用して遠隔の関数を呼び出す手順を示したフローチャートである。 一般的なボタンなどからのイベントを処理するイベントリスナ方式を説明する図である。 本発明の計算機システムのオブジェクトの実装状態の一例を示す図である。 プログラム実行サーバ10と携帯端末30とに、オブジェクトとそれに対応するスタブオブジェクトを生成する処理を示すフローチャートである。 プログラム実行サーバ10にリスナオブジェクトを、携帯端末30上にリスナスタブオブジェクトを登録するための処理を示すフローチャートである。 携帯端末30上でおこなわれたイベントが発生したときの動作について説明するフローチャートである。 発明のプログラム実行方法で実行環境・性能を考慮した関数呼出しの置換処理の切り分けを説明する図である。 本発明のプログラム実行方法を適用する場合の他の計算機システム構成について説明する図である(その一)。 本発明のプログラム実行方法を適用する場合の他の計算機システム構成について説明する図である(その二)。
符号の説明
10…プログラム実行サーバ部,11…携帯端末プログラム仮想実行部,12…プログラム実行仮想機械,13…実行ライブラリ,14…スタブライブラリ,121…オブジェクト管理部,122…RPC通信部,20…プログラム格納・変換部,30…携帯端末,31…携帯端末プログラム実行部,32…プログラム実行仮想機械,33…実行ライブラリ、34…スタブライブラリ,40…ネットワーク。

Claims (11)

  1. 第一のプログラム実行装置と第二のプログラム実行装置と記憶装置とからなる計算機システムのプログラム実行方法において、
    前記記憶装置から第一のプログラムと第二のプログラムとを読み出すステップと、
    前記記憶装置から前記第一のプログラムと前記第二のプログラムのそれぞれに記述されている関数呼び出しの置換情報を読み出すステップと、
    読み出された前記第一のプログラムと前記第二のプログラムのそれぞれに記述されている関数呼び出しを、それぞれ前記置換情報に基づき別の関数呼び出しに置換するステップと、
    前記関数呼び出しを置換された第一のプログラムと第二のプログラムとを、前記第一のプログラム実行装置と前記第二のプログラム実行装置に、それぞれ配布するステップと、
    前記第一のプログラム実行装置において前記第一のプログラムを実行し、前記第一のプログラムの置換された別の関数呼び出しにより、前記第二のプログラムの置換された関数を呼び出して、前記第二のプログラム実行装置において前記第二のプログラムを実行するステップとを有することを特徴とするプログラム実行方法。
  2. 前記計算機システムは、さらに、プログラムを配布する装置と、前記プログラム実行装置と前記プログラムを配布する装置とを接続する通信手段とを有し、
    前記プログラムを配布する装置は、前記通信手段によって前記第一のプログラム実行装置と前記第二のプログラム実行装置とに関数呼出しを置換された前記第一のプログラムと前記第二のプログラムとを、それぞれ配布することを特徴とする請求項1記載のプログラム実行方法。
  3. 前記関数呼び出しの置換情報は、プログラム実行環境情報、要求性能の諸元を含み、これらの情報を参照して、別の関数呼び出しの置換の処理をおこなうことを特徴とする請求項1記載のプログラム実行方法。
  4. プログラムライブラリを有する計算機システムにおいて、
    プログラム実行サーバと、
    プログラム格納・変換部とを有し、
    前記プログラム格納・変換部は、関数呼び出しの置換情報を保持し、前記プログラムライブラリよりプログラムを読み出して、前記関数呼び出しの置換情報により、該当する関数呼び出しを仲介関数の呼び出しに置換し、前記プログラム実行サーバに配布することを特徴とする計算機システム。
  5. さらに、プログラム実行端末を有し、
    前記プログラム格納・変換部は、このプログラム実行端末に実行するプログラムを配布し、
    前記プログラム実行サーバでは、前記関数呼び出しを置換した仲介関数の呼び出しにより、仲介関数を呼び出して、
    前記仲介関数から前記プログラム実行端末上のプログラムを、通信路を介して実行することを特徴とする請求項4記載の計算機システム。
  6. 前記プログラム実行サーバと前記プログラム実行端末のプログラムの実行は、オブジェクトのメソッド実行によりおこなわれることを特徴とする請求項5記載の計算機システム。
  7. 前記プログラム実行サーバと前記プログラム実行端末のプログラムの実行は、前記プログラム実行端末において、オブジェクトがイベントを検知することをトリガーとしておこなわれることを特徴とする請求項5記載の計算機システム。
  8. 前記プログラム実行サーバとプログラム実行端末は、一方にオブジェクト、他方にそれと対となる仲介オブジェクトを有し、
    前記プログラム実行サーバから前記プログラム端末の関数の実行は、それらのオブジェクト間の通信によりおこなわれることを特徴とする請求項5記載の計算機システム。
  9. 前記プログラム実行端末は、そのプログラム実行端末上のイベント発生を検知するリスナ代替オブジェクトを有し、
    前記プログラム実行サーバは、イベントを処理するイベント関数を呼び出すリスナオブジェクトを有し、
    前記プログラム実行端末で、イベント発生したときに、前記リスナ代替オブジェクトは、前記プログラム実行サーバのリスナオブジェクトと通信することにより、前記プログラム実行サーバのイベント処理関数を実行することを特徴とする請求項5記載の計算機システム。
  10. 携帯端末のプログラムを実行するプログラム実行サーバにおいて、
    このプログラム実行サーバは、携帯端末において実行されるプログラムの関数呼び出しの部分を仲介関数呼び出しに置き換えたプログラムを実行し、
    前記仲介関数呼び出しにより、通信路を介して携帯端末上のプログラムの関数を呼び出して実行させることを特徴とするプログラム実行サーバ。
  11. 前記携帯端末において実行されるプログラムは、その携帯端末のユーザインタフェースに関係するプログラムであることを特徴とする請求項10記載のプログラム実行サーバ。
JP2004037804A 2004-02-16 2004-02-16 プログラム実行方法、および、プログラム実行のための計算機システム Pending JP2005228183A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004037804A JP2005228183A (ja) 2004-02-16 2004-02-16 プログラム実行方法、および、プログラム実行のための計算機システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004037804A JP2005228183A (ja) 2004-02-16 2004-02-16 プログラム実行方法、および、プログラム実行のための計算機システム

Publications (1)

Publication Number Publication Date
JP2005228183A true JP2005228183A (ja) 2005-08-25

Family

ID=35002838

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004037804A Pending JP2005228183A (ja) 2004-02-16 2004-02-16 プログラム実行方法、および、プログラム実行のための計算機システム

Country Status (1)

Country Link
JP (1) JP2005228183A (ja)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007164595A (ja) * 2005-12-15 2007-06-28 Toshiba Corp コンピュータシステムの関数呼び出し方法、コンピュータシステムおよびライブラリ
JP2007188468A (ja) * 2005-12-15 2007-07-26 Ricoh Co Ltd 通信装置、電子機器、情報処理システム、アプリケーション実行方法、アプリケーション実行プログラム及び記録媒体
JP2009129133A (ja) * 2007-11-22 2009-06-11 Nec Corp ソフトウェア部分テストシステム、ソフトウェア部分テスト方法およびソフトウェア部分テスト用プログラム
JP2010117793A (ja) * 2008-11-11 2010-05-27 Jfe Steel Corp コンピュータシステムおよびフレームワーク管理装置
JP2011118867A (ja) * 2009-12-03 2011-06-16 Korea Electronics Telecommun 遠隔プラグイン装置、ロボットプラグイン実行エンジン装置及びロボットプラグイン実行システム
JP4968325B2 (ja) * 2007-03-08 2012-07-04 富士通セミコンダクター株式会社 ソフトウェア最適化装置、および最適化方法
WO2013146410A1 (ja) * 2012-03-24 2013-10-03 日本電気株式会社 情報処理システム、情報処理方法、情報処理装置およびその制御方法と制御プログラム
WO2015045108A1 (ja) * 2013-09-27 2015-04-02 三菱電機株式会社 クライアントサーバープログラム生成装置およびクライアントサーバープログラム生成プログラム
JP2019505932A (ja) * 2015-11-27 2019-02-28 カデンス イマジュリー メディカル インコーポレイテッドCadens Imagerie Medicale Inc. サーバを使用してデータを処理するための関数を実行する方法およびシステム
JP2019521430A (ja) * 2016-06-03 2019-07-25 アビニシオ テクノロジー エルエルシー フォーマット特有のデータ処理動作
JP2020064634A (ja) * 2018-10-16 2020-04-23 三星電子株式会社Samsung Electronics Co.,Ltd. ホスト及びストレージサービスの動作方法並びにNVMeSSD
JP2021508117A (ja) * 2017-12-20 2021-02-25 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ソフトウェア・ライブラリへの呼び出しをアクセラレータへの呼び出しに動的に置き換えるための装置及び方法
WO2023203731A1 (ja) * 2022-04-21 2023-10-26 日本電信電話株式会社 演算処理オフロードシステム、演算処理オフロード方法およびプログラム
US12585574B2 (en) 2019-12-23 2026-03-24 Ab Initio Technology Llc Unit testing of components of dataflow graphs

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007164595A (ja) * 2005-12-15 2007-06-28 Toshiba Corp コンピュータシステムの関数呼び出し方法、コンピュータシステムおよびライブラリ
JP2007188468A (ja) * 2005-12-15 2007-07-26 Ricoh Co Ltd 通信装置、電子機器、情報処理システム、アプリケーション実行方法、アプリケーション実行プログラム及び記録媒体
US8763017B2 (en) 2005-12-15 2014-06-24 Ricoh Company, Ltd. Communications device, electronic apparatus, information processing system, application executing method, and recording medium
JP4968325B2 (ja) * 2007-03-08 2012-07-04 富士通セミコンダクター株式会社 ソフトウェア最適化装置、および最適化方法
JP2009129133A (ja) * 2007-11-22 2009-06-11 Nec Corp ソフトウェア部分テストシステム、ソフトウェア部分テスト方法およびソフトウェア部分テスト用プログラム
JP2010117793A (ja) * 2008-11-11 2010-05-27 Jfe Steel Corp コンピュータシステムおよびフレームワーク管理装置
JP2011118867A (ja) * 2009-12-03 2011-06-16 Korea Electronics Telecommun 遠隔プラグイン装置、ロボットプラグイン実行エンジン装置及びロボットプラグイン実行システム
WO2013146410A1 (ja) * 2012-03-24 2013-10-03 日本電気株式会社 情報処理システム、情報処理方法、情報処理装置およびその制御方法と制御プログラム
JP2013200703A (ja) * 2012-03-24 2013-10-03 Nec Corp 情報処理システム、情報処理方法、情報処理装置およびその制御方法と制御プログラム
CN104205074A (zh) * 2012-03-24 2014-12-10 日本电气株式会社 信息处理系统、信息处理方法、信息处理设备以及控制方法及其控制程序
US10037200B2 (en) 2012-03-24 2018-07-31 Nec Corporation Synchronizing installation and execution of a program on a second information processing apparatus with a first information processing apparatus which failed installation of the program
WO2015045108A1 (ja) * 2013-09-27 2015-04-02 三菱電機株式会社 クライアントサーバープログラム生成装置およびクライアントサーバープログラム生成プログラム
JP2019505932A (ja) * 2015-11-27 2019-02-28 カデンス イマジュリー メディカル インコーポレイテッドCadens Imagerie Medicale Inc. サーバを使用してデータを処理するための関数を実行する方法およびシステム
JP6997096B2 (ja) 2015-11-27 2022-01-17 カデンス イマジュリー メディカル インコーポレイテッド サーバを使用してデータを処理するための関数を実行する方法およびシステム
JP2019521430A (ja) * 2016-06-03 2019-07-25 アビニシオ テクノロジー エルエルシー フォーマット特有のデータ処理動作
JP2021508117A (ja) * 2017-12-20 2021-02-25 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ソフトウェア・ライブラリへの呼び出しをアクセラレータへの呼び出しに動的に置き換えるための装置及び方法
JP7252694B2 (ja) 2017-12-20 2023-04-05 インターナショナル・ビジネス・マシーンズ・コーポレーション ソフトウェア・ライブラリへの呼び出しをアクセラレータへの呼び出しに動的に置き換えるための装置及び方法
US11645059B2 (en) 2017-12-20 2023-05-09 International Business Machines Corporation Dynamically replacing a call to a software library with a call to an accelerator
JP2020064634A (ja) * 2018-10-16 2020-04-23 三星電子株式会社Samsung Electronics Co.,Ltd. ホスト及びストレージサービスの動作方法並びにNVMeSSD
JP7250656B2 (ja) 2018-10-16 2023-04-03 三星電子株式会社 ホスト及びストレージサービスの動作方法並びにNVMeSSD
US12585574B2 (en) 2019-12-23 2026-03-24 Ab Initio Technology Llc Unit testing of components of dataflow graphs
WO2023203731A1 (ja) * 2022-04-21 2023-10-26 日本電信電話株式会社 演算処理オフロードシステム、演算処理オフロード方法およびプログラム
JPWO2023203731A1 (ja) * 2022-04-21 2023-10-26
JP7722569B2 (ja) 2022-04-21 2025-08-13 Ntt株式会社 演算処理オフロードシステム、演算処理オフロード方法およびプログラム

Similar Documents

Publication Publication Date Title
CN108009028B (zh) 消息处理方法、装置、设备及计算机可读存储介质
CN108510389A (zh) 基于区块链的智能合约调用方法、设备及可读存储介质
CN110838071A (zh) 保单数据的处理方法、装置及服务器
CN110928548B (zh) 一种数据处理方法以及设备
CN109618176B (zh) 一种直播业务的处理方法、设备和存储介质
JP2005228183A (ja) プログラム実行方法、および、プログラム実行のための計算機システム
CN110933075B (zh) 服务调用方法、装置、电子设备及存储介质
CN113645308B (zh) 移动终端tcp通信、装置、设备及存储介质
US8855583B2 (en) Communication system, communication terminal, server, communication method to be used therein and program therefor
CN113626512A (zh) 数据处理方法、装置、设备及可读存储介质
US20160224322A1 (en) Dynamic agent delivery
CN115145806A (zh) 一种数据采集方法、装置、以及计算机可读存储介质
EP3872630A2 (en) Request processing method and apparatus, electronic device, and computer storage medium
CN115113898B (zh) 微应用的动态更新方法、装置、计算机设备和存储介质
CN114637531A (zh) 应用程序接口动态生成方法及装置
JP2013080404A (ja) クライアントでJavaメソッドを呼び出すシステム、コンピュータ、方法及びプログラム
CN114661762B (zh) 嵌入式数据库的查询方法、装置、存储介质及设备
CN103917951B (zh) 应用调用的方法及操作系统、浏览器
CN111488286B (zh) 一种Android模块独立开发的方法及装置
CN111404979B (zh) 业务请求处理的方法、装置及计算机可读存储介质
Iyer et al. Extending android application programming framework for seamless cloud integration
CN117724852A (zh) 一种云电脑计算资源分配方法及装置
CN115469917A (zh) 文件处理方法、装置、设备及存储介质
CN116931914A (zh) 页面渲染方法、装置、电子设备和计算机可读存储介质
CN116567347B (zh) 视频播放方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070213

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20070213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090316

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090825

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091222