(57)【要約】【課題】仮想システム上で仮想システム上のアプリケーションと同様に、ネイティブアプリケーションのＬｉｆｅ  Ｃｙｃｌｅ  Ｍａｎａｇｅｍｅｎｔを行う。【構成】フレームワーク１１５によってＬｉｆｅ  Ｃｙｃｌｅ  Ｍａｎａｇｅｍｅｎｔが行われるバンドル１１６を、Ｂｕｎｄｌｅ  Ａｃｔｉｖａｔｏｒであるクラスと、ネイティブコードライブラリと、ネイティブアプリケーションを含めて構成する。Ｂｕｎｄｌｅ  Ａｃｔｉｖａｔｏｒであるクラスのバンドルのスタート／ストップ時に呼び出されるＳｔａｒｔ（）／Ｓｔｏｐ（）メソッドには、ネイティブコードライブラリのライブラリ関数ＳｔａｒｔＡＰ（）／ＳｔｏｐＡｐ（）を呼び出す処理を記述し、ライブラリ関数ＳｔａｒｔＡＰ（）／ＳｔｏｐＡｐ（）には、ネイティブオペレーティングシステム１１３のＡＰＩを利用してネイティブアプリケーションを起動／終了する処理を記述する。【選択図】図４
2004318459.tif 000002
【特許請求の範囲】
【請求項１】
ネイティブオペレーティングシステムと、前記ネイティブオペレーティングシステム上で稼働する仮想システムとを備え、前記仮想システムにおいて、前記仮想システム上のアプリケーションの単位であるバンドルのライフタイムのマネージメントを行うと共に、前記バンドルに前記ネイティブオペレーティングシステム上で前記仮想システムを介さずに実行されるライブラリとの間のインタフェースを提供するコンピュータシステムにおいて、前記ネイティブオペレーティングシステム上で前記仮想システムを介さずに実行されるネイティブアプリケーションのライフタイムを、仮想システムにおいてマネージメントする方法であって、
仮想システム上で実行されるプログラムである仮想システム上プログラムと、前記ライブラリとを含むバンドルを、前記仮想システムが、当該仮想システム上にインストールするステップと、
前記バンドルを起動／終了する際に、前記仮想システムが前記仮想システム上プログラムにバンドルの起動／終了を要求するステップと、
バンドルの起動／終了を要求された前記仮想システム上プログラムが、前記ライブラリに前記ネイティブアプリケーションの起動／終了を要求するステップと、
前記ネイティブアプリケーションの起動を要求された前記ライブラリが、前記ネイティブアプリケーションを起動／終了するステップとを有することを特徴とする仮想システムにおけるネイティブアプリケーションのライフタイムマネージメント方法。
【請求項２】
請求項１記載の仮想システムにおけるネイティブアプリケーションのライフタイムマネージメント方法であって、
前記バンドルは、前記ネイティブアプリケーションを含むことを特徴とする仮想システムにおけるネイティブアプリケーションのライフタイムマネージメント方法。
【請求項３】
ネイティブオペレーティングシステムと、前記ネイティブオペレーティングシステム上で稼働する仮想システムとを備え、前記仮想システムにおいて、前記仮想システム上のアプリケーションの単位であるバンドルのライフタイムのマネージメントを行うと共に、前記バンドルに前記ネイティブオペレーティングシステム上で前記仮想システムを介さずに実行されるライブラリとの間のインタフェースを提供するコンピュータシステムによって読みとられ実行されるコンピュータプログラムであって、
当該コンピュータプログラムは前記バンドルであって、
当該バンドルは、仮想システム上で実行されるプログラムである仮想システム上プログラムと、前記ライブラリと、前記ネイティブオペレーティングシステム上で前記仮想システムを介さずに実行されるネイティブアプリケーションとを含み、
前記ライブラリは、前記ネイティブアプリケーションを起動するライブラリ関数と、前記ネイティブアプリケーションを終了するライブラリ関数とを含み、
前記仮想システム上プログラムは、前記ライブラリのネイティブアプリケーションを起動するライブラリ関数を呼び出す処理が規定された、前記バンドルのスタート時に呼び出されるメソッドと、前記ライブラリのネイティブアプリケーションを終了するライブラリ関数を呼び出す処理が規定された、前記バンドルのストップ時に呼び出されるメソッドとを含むことを特徴とするコンピュータプログラム。
【請求項４】
コンピュータシステムによって読みとられ実行されるコンピュータプログラムであって、
当該コンピュータプログラムは、ＯＳＧＩ  Ｓｅｒｖｉｃｅ  Ｐｌａｔｆｏｒｍ  Ｓｐｅｃｉｆｉｃａｔｉｏｎに規定されたバンドル（Ｂｕｎｄｌｅ）であって、
当該バンドルは、Ｂｕｎｄｌｅ  Ａｃｔｉｖａｔｏｒとして機能するクラスと、前記コンピュータシステムのネイティブオペレーティングシステム上でＪａｖａ仮想マシンを介さずに実行されるライブラリと、ネイティブオペレーティングシステム上でＪａｖａ仮想マシンを介さずに実行されるネイティブアプリケーションとを含み、
前記ライブラリは、前記ネイティブアプリケーションを起動するライブラリ関数と、前記ネイティブアプリケーションを終了するライブラリ関数とを含み、
前記クラスは、前記ライブラリのネイティブアプリケーションを起動するライブラリ関数を呼び出す処理が規定された、前記バンドルのスタート時に呼び出されるメソッドと、前記ライブラリのネイティブアプリケーションを終了するライブラリ関数を呼び出す処理が規定された、前記バンドルのストップ時に呼び出されるメソッドとを含むことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネイティブオペレーティングシステム上で稼働する仮想システムを利用して、様々なサービスの配信と実行の環境を提供する技術に関するものである。
【０００２】
【従来の技術】
ネイティブオペレーティングシステム上で稼働する仮想システムを利用して、様々なサービスの配信と実行の環境を提供する技術としては、ＯＳＧＩ  Ｓｅｒｖｉｃｅ  Ｐｌａｔｆｏｒｍと呼ばれる技術が知られている。
ＯＳＧＩ  Ｓｅｒｖｉｃｅ  Ｐｌａｔｆｏｒｍは、ＷＡＮからＬＡＮやデバイスに様々なサービスを配信する標準規格の策定を目的として設立されたＯｐｅｎ  Ｓｅｒｖｉｃｅｓ  Ｇａｔｅｗａｙ  Ｉｎｉｔｉａｔｉｖｅ（ＯＳＧＩ）が提唱する規格である。この規格では、Ｊａｖａバーチャルマシン（ＪＶＭ）上に、様々なサービスの配信と実行の環境を提供するフレームワークを実装することにより、ネイティブオペレーティングシステムなどのプラットホームに依存しない、様々なサービスの配信と実行の環境を提供を実現している（「ＪＡＶＡ」は登録商標である）。
【０００３】
このＯＳＧＩ  Ｓｅｒｖｉｃｅ  Ｐｌａｔｆｏｒｍでは、サービスを提供するアプリケーション等はバンドルと呼ばれ、このようなバンドルのインストール、アップデート、アンインストール、スタート、ストップを管理、制御する、Ｌｉｆｅ  Ｃｙｃｌｅ  Ｍａｎａｇｅｍｅｎｔとして総称される機能を、フレームワークは備えている。
【０００４】
ここで、バンドルには、クラスやパッケージ等のＪａｖａプログラムの他、３２ビットＷｉｎｄｏｗｓ系オペレーティングシステムにおけるＤＬＬやＵＮＩＸ系オペレーティングシステムにおけるＳｈａｒｅｄ  Ｌｉｂｒａｒｙなどの、ネイティブオペレーティングシステム上で直接実行されるライブラリをＮａｔｉｖｅ  Ｃｏｄｅとして含めることができる。そして、ＪＶＭは、このようなＤＬＬやＳｈａｒｅｄ  Ｌｉｂｒａｒｙなどのネイティブオペレーティングシステム上で直接実行されるライブラリを、Ｊａｖａプログラムから利用することを可能とする、Ｊａｖａ  Ｎａｔｉｖｅ  Ｉｎｔｅｒｆａｃｅ  （ＪＮＩ）と呼ばれるＡＰＩを、Ｊａｖａプログラムに提供する（「Ｗｉｎｄｏｗｓ」、「ＵＮＩＸ」は登録商標である）。
【０００５】
また、ＯＳＧＩ  Ｓｅｒｖｉｃｅ  Ｐｌａｔｆｏｒｍに関するものではなないが、ネイティブオペレーティングシステム上で直接実行されるネイティブアプリケーションとＪａｖａアプリケーションとを、ソケット通信を介して協調動作させる技術も知られている（たとえば、特開２００１？２０８５４７号公報）。
【０００６】
この出願の発明に関連する先行技術文献情報としては以下のものがある。
【０００７】
【特許文献１】
特開２００２？２４５７６２号公報
【０００８】
【非特許文献１】
ｈｔｔｐ：／／ｗｗｗ．ｏｓｇｉ．ｏｒｇ／ｒｅｓｏｕｒｃｅｓ／ｓｐ−ｒ３／ｒ３．ｂｏｏｋ．ｐｄｆ
「ＯＳＧｉ  Ｓｅｒｖｉｃｅ  Ｐｌａｔｆｏｒｍ，  Ｒｅｌｅａｓｅ  ３」
【０００９】
【発明が解決しようとする課題】
ここで、前記ＯＳＧＩ  Ｓｅｒｖｉｃｅ  Ｐｌａｔｆｏｒｍのフレームワークを実装する装置によっては、装置上で、ネイティブオペレーティングシステム上で直接実行されるネイティブアプリケーションを利用しなければならない、または、利用することが好ましい場合がある。たとえば、既存の装置の後継機に、新たにＪＶＭやフレームワークを実装する場合などに、既存の装置で利用していたネイティブアプリケーションの資産を活用したい場合や、特定の機能については、ネイティブアプリケーションで装置に実装することが、ピュアなＪａｖａプログラムで実装するよりも機能や性能やコストの面で好ましい場合などである。
【００１０】
しかしながら、前記ＯＳＧＩ  Ｓｅｒｖｉｃｅ  Ｐｌａｔｆｏｒｍの技術では、フレームワークにおいて、このようなネイティブアプリケーションのインストール、アップデート、アンインストール、スタート、ストップといったＬｉｆｅ  Ｃｙｃｌｅ  Ｍａｎａｇｅｍｅｎｔを始めとする各種管理、制御を行うことができない。
【００１１】
そして、このために、ネイティブアプリケーションとフレームワークの双方を実装した場合に、フレームワークを利用した、バンドルとネイティブアプリケーションとの一元的な管理、制御を行うことができないという問題が生じる。
そこで、本発明は、ネイティブオペレーティングシステム上で稼働する仮想システムによって、仮想システム上で実行されるアプリケーションと同様に、ネイティブオペレーティングシステム上で直接実行されるネイティブアプリケーションの管理、制御を可能とすることを課題とする。
【００１２】
【課題を解決するための手段】
前記課題達成のために、本発明は、ネイティブオペレーティングシステムと、前記ネイティブオペレーティングシステム上で稼働する仮想システムとを備え、前記仮想システムにおいて、前記仮想システム上のアプリケーションの単位であるバンドルのライフタイムのマネージメントを行うと共に、前記バンドルに前記ネイティブオペレーティングシステム上で前記仮想システムを介さずに実行されるライブラリとの間のインタフェースを提供するコンピュータシステムにおいて、前記ネイティブオペレーティングシステム上で前記仮想システムを介さずに実行されるネイティブアプリケーションのライフタイムを、仮想システムにおいてマネージメントする方法として、仮想システム上で実行されるプログラムである仮想システム上プログラムと、前記ネイティブアプリケーションと、前記ライブラリとを含むバンドルを、前記仮想システムが、当該仮想システム上にインストールするステップと、前記バンドルを起動／終了する際に、当該仮想システムが前記仮想システム上プログラムにバンドルの起動／終了を要求するステップと、バンドルの起動／終了を要求された前記仮想システム上プログラムが、前記ライブラリに前記ネイティブアプリケーションの起動／終了を要求するステップと、前記ネイティブアプリケーションの起動を要求された前記ライブラリが、前記ネイティブアプリケーションを起動／終了するステップとを有することを特徴とする仮想システムにおけるネイティブアプリケーションのライフタイムマネージメント方法を提供する。
【００１３】
ここで、このようなライフタイムマネージメント方法は、前記ライブラリに、前記ネイティブアプリケーションを起動するライブラリ関数と、前記ネイティブアプリケーションを終了するライブラリ関数とを含め、前記仮想システム上プログラムに、前記ライブラリのネイティブアプリケーションを起動するライブラリ関数を呼び出す処理が規定された、前記バンドルのスタート時に呼び出されるメソッドと、前記ライブラリのネイティブアプリケーションを終了するライブラリ関数を呼び出す処理が規定された、前記バンドルのストップ時に呼び出されるメソッドとを含めることなどにより実現できる。
【００１４】
より具体的には、前記コンピュータプログラムは、ＯＳＧＩ  Ｓｅｒｖｉｃｅ  Ｐｌａｔｆｏｒｍ  Ｓｐｅｃｉｆｉｃａｔｉｏｎに規定されたバンドル（Ｂｕｎｄｌｅ）であってよく、この場合には、当該バンドルに、Ｂｕｎｄｌｅ  Ａｃｔｉｖａｔｏｒとして機能するクラスと、前記コンピュータシステムのネイティブオペレーティングシステム上でＪａｖａ仮想マシンを介さずに実行されるライブラリと、前記ネイティブオペレーティングシステム上でＪａｖａ仮想マシンを介さずに実行されるネイティブアプリケーションとを含め、前記ライブラリに、前記ネイティブアプリケーションを起動するライブラリ関数と、前記ネイティブアプリケーションを終了するライブラリ関数とを含め、前記クラスに、前記ライブラリのネイティブアプリケーションを起動するライブラリ関数を呼び出す処理が規定された、前記バンドルのスタート時に呼び出されるメソッドと、前記ライブラリのネイティブアプリケーションを終了するライブラリ関数を呼び出す処理が規定された、前記バンドルのストップ時に呼び出されるメソッドとを含めるようにすればよい。
【００１５】
これらのライフタイムマネージメント方法やコンピュータプログラムによれば、バンドルにネイティブアプリケーションを含めたので、仮想システムが行うバンドルのインストールやアップデートやアンインストールに関するライフタイムマネージメントによって、ネイティブアプリケーションについても、そのインストールやアップデートやアンインストールのライフタイムマネージメントを行うことができる。
【００１６】
また、バンドルのスタート時にライブラリを介してネイティブアプリケーションを起動し、バンドルの終了時にライブラリを介してネイティブアプリケーションの終了を行うようにしたので、仮想システムが行うバンドルのスタートやストップに関するライフタイムマネージメントによって、ネイティブアプリケーションの起動や終了についても、その起動、終了のライフタイムマネージメントを行うことができる。
【００１７】
なお、仮想システムによってネイティブアプリケーションのインストールやアンインストールやアップデートを管理等する必要がない場合には、前記ネイティブアプリケーションは前記バンドルに含めずに、バンドルとは別に別途ネイティブオペレーティングシステム上にインストールするようにしても良い。
【００１８】
【発明の実施の形態】
以下、一例として、本発明の実施形態を車載の情報システムへの適用を例にとり説明する。
図１に、本実施形態に係るサービスシステムの構成を示す。
図示するように、サービスシステムは、各々の自動車に搭載された情報システム１と、サービスプロバイダシステム２と、情報システム１とサービスプロバイダシステム２を接続する無線ＷＡＮ３を備えている。
図２に、情報システム１の機能構成を示す。
図示するように、情報システム１は、無線ＷＡＮ３と車内ＬＡＮ１２に接続したサービスゲートウエイ装置１１と、車内ＬＡＮ１２に接続したデバイス１３とを有している。デバイス１３は、たとえば、ＡＶ機器やエアコンディショナなどの電子機器などであり、これらは車内ＬＡＮ１２を介してサービスゲートウエイ装置１１によって制御される。ただし、サービスゲートウエイ装置１１は、たとえば、ナビゲーション装置などの、それ自身がデバイス１３としてサービスを直接ユーザに提供する装置であってもよい。
【００１９】
次に、サービスゲートウエイ装置１１は、ハードウエア的には、ＣＰＵや主記憶や外部記憶装置や無線ＷＡＮ３と通信を行うための無線通信装置や車内ＬＡＮ１２と通信を行うための通信インタフェース装置などを備えた一般的な電子計算機である。
【００２０】
また、サービスゲートウエイ装置１１は、機能的には、以上のようなハードウエア１１１、個々のハードウエア１１１を制御するドライバ１１２を実装したネイティブオペレーティングシステム１１３、ネイティブオペレーティングシステム１１３上で稼働するＪＶＭ（Ｊａｖａ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）１１４、ＪＶＭ１１４上に実装されたＯＳＧＩ  Ｓｅｒｖｉｃｅ  Ｐｌａｔｆｏｒｍに従ったフレームワーク１１５、そして、フレームワーク１１５やＪＶＭ１１４やネイティブオペレーティングシステム１１３の機能を利用し、サービスを提供するＯＳＧＩ  Ｓｅｒｖｉｃｅ  Ｐｌａｔｆｏｒｍ  Ｓｐｅｃｉｆｉｃａｔｉｏｎに言うバンドル（Ｂｕｎｄｌｅ）１１６とを有する。
【００２１】
次に、本実施形態で用いるバンドル１１６の構成を図２に示す。
図示するように、バンドル１１６は、マニフェストファイルＭＡＮＩＦＥＳＴ．ＭＦと、ＪａｖａクラスファイルＮｅｗＢｕｎｄｌｅＡｃｔｉｖａｔｏｒ．ｃｌａｓｓと、ネイティブコードライブラリＣｒｅａｔｅＰｒｏｃｅｓｓ．ｄｌｌと、ネイティブアプリケーションＮａｔｉｖｅＡｐｐｌｉｃａｔｉｏｎ．ｅｘｅとを含む。ただし、ここでは、ネイティブオペレーティングシステム１１３が、３２ビットＷｉｎｄｏｗｓ系オペレーティングシステムである場合を例にとり説明する。
【００２２】
ＪａｖａクラスファイルＮｅｗＢｕｎｄｌｅＡｃｔｉｖａｔｏｒ．ｃｌａｓｓは、フレームワーク１１５からバンドル１１６のスタート時に呼び出されるＳｔａｒｔ（）メソッドと、フレームワーク１１５からバンドル１１６のスタート時に呼び出されるＳｔｏｐ（）メソッドを含んだ、Ｂｕｎｄｌｅ  Ａｃｔｉｖａｔｏｒのクラスである。
【００２３】
また、ネイティブコードライブラリＣｒｅａｔｅＰｒｏｃｅｓｓ．ｄｌｌは、ネイティブオペレーティングシステム１１３上で実行されるＤＬＬ（Ｄｙｎａｍｉｃ  Ｌｉｎｋ  Ｌｉｂｒａｒｙ）でありネイティブアプリケーションＮａｔｉｖｅＡｐｐｌｉｃａｔｉｏｎ．ｅｘｅを起動するライブラリ関数ＳｔａｒｔＡＰ（）と、ネイティブアプリケーションＮａｔｉｖｅＡｐｐｌｉｃａｔｉｏｎ．ｅｘｅを終了させるライブラリ関数ＳｔｏｐＡＰ（）を含んでいる。
【００２４】
また、ネイティブアプリケーションＮａｔｉｖｅＡｐｐｌｉｃａｔｉｏｎ．ｅｘｅは、ネイティブオペレーティングシステム１１３上で実行される実行形式のアプリケーションファイルである。
そして、マニフェストファイルＭＡＮＩＦＥＳＴ．ＭＦは、バンドル１１６の各種パラメータを記述したファイルであり、バンドル１１６の名前やバージョンやベンダーや著作権表示やカテゴリやアップデートの提供元ＵＲＬなどのバンドル１１６の管理情報の記述を含む他、Ｂｕｎｄｌｅ  Ａｃｔｉｖａｔｏｒとなるバンドル１１６内のクラスの指定や、バンドル１１６がＪａｖａライブラリとして使用するバンドル１１６内のパッケージのパスの指定や、バンドル１１６がフレームワーク１１５にエクスポートするバンドル１１６内のパッケージの記述や、バンドル１１６がフレームワーク１１５からインポートするパッケージの記述や、バンドル１１６が必要とするネーティブコードライブラリの指定などのＤｅｐｅｎｄｅｎｃｙの記述などが含まれる。
【００２５】
なお、バンドル１１６からフレームワーク１１５にエクスポートされたパッケージは、他のバンドル１１６がインポートして利用することができる。
なお、サービスゲートウエイ装置１１では、以上に示した構成を有するバンドル１１６の他、マニフェストファイルと、Ｊａｖａクラスファイルやパッケージ化されたＪａｖａライブラリやネイティブコードライブラリやその他のデータを選択的に含むことのできるリソースとよりなる、ＯＳＧＩ  Ｓｅｒｖｉｃｅ  Ｐｌａｔｆｏｒｍ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ標準の構成を有するバンドル１１６も用いられる。
【００２６】
以下、図３に示した構成を有するバンドル１１６の動作について説明する。
図４ａに示すように、フレームワーク１１５は、フレームワーク１１５がＡＰＩとして提供するインストールＩｎｓｔａｌｌ（）やアップデートＵｐｄａｔｅ（）やアンインストールＵｎｉｎｓｔａｌｌ（）メソッドがバンドル１１６等より呼び出されると、呼び出し元から指定されたバンドル１１６のインストールやアップデートやアンインストールを行う。また、インストールやアップデートの際には、マニフェストファイルに記述されたＤｅｐｅｎｄｅｎｃｙが満たされている状態にあるかかどうかをチェックするＲｅｓｏｌｖｅなども行う。
【００２７】
さて、このようなバンドル１１６のインストールやアップデートやアンインストールは、たとえば、フレームワーク１１５上で稼働するリモートマネージメントエージェントとして機能するバンドル１１６を設け、図１に示すサービスプロバイダシステム２が無線ＷＡＮ３を介してリモートマネージメントエージェントと通信を行い、リモートマネージメントエージェントに、所望のバンドル１１６のインストールやアップデートやアンインストールを、フレームワーク１１５に、前述のインストールＩｎｓｔａｌｌ（）やアップデートＵｐｄａｔｅ（）やアンインストールＵｎｉｎｓｔａｌｌ（）メソッドの呼び出しによって要求させることにより行うことができる。
【００２８】
ここで、このようなバンドル１１６のインストールやアップデートやアンインストールは、バンドル単位に行われる。したがって、図３に示した構成を有するバンドル１１６によれば、ネイティブアプリケーションのインストールやアップデートやアンインストールを、ＯＳＧＩ  Ｓｅｒｖｉｃｅ  Ｐｌａｔｆｏｒｍ規格標準の構成を有するバンドル１１６と全く同様に行うことができる。
【００２９】
次に、図４ｂに示すように、フレームワーク１１５は、フレームワーク１１５がＡＰＩとして提供するＳｔａｒｔ（ＢｕｎｄｌｅＣｏｎｔｅｘｔ）メソッドが呼び出されると、指定されたバンドル１１６のＢｕｎｄｌｅ  ＡｃｔｉｖａｔｏｒであるクラスＮｅｗＢｕｎｄｌｅＡｃｔｉｖａｔｏｒ．ｃｌａｓｓのＳｔａｒｔ（）メソッドを呼び出す。Ｓｔａｒｔ（）メソッドにはネイティブコードライブラリＣｒｅａｔｅＰｒｏｃｅｓｓ．ｄｌｌのライブラリ関数ＳｔａｒｔＡＰ（）を呼び出す処理が定義されており、呼び出されたＳｔａｒｔ（）メソッドはこの定義に従い、ネイティブコードライブラリＣｒｅａｔｅＰｒｏｃｅｓｓ．ｄｌｌのライブラリ関数ＳｔａｒｔＡＰ（）を呼び出す。ここで、この呼び出しは、ＪＶＭ１１４のＪＮＩ（Ｊａｖａ  Ｎａｔｉｖｅ  Ｉｎｔｅｒｆａｃｅ）を用いて行われる。
【００３０】
次に、ネイティブコードライブラリＣｒｅａｔｅＰｒｏｃｅｓｓ．ｄｌｌのライブラリ関数ＳｔａｒｔＡＰ（）には、ネイティブオペレーティングシステム１１３のＡＰＩであるＣｒｅａｔｅＰｒｏｃｅｓｓ（）などを利用してネイティブアプリケーションＮａｔｉｖｅＡｐｐｌｉｃａｔｉｏｎ．ｅｘｅのネイティブオペレーティングシステム１１３上のプロセスを起動する処理が記述されており、呼び出されたライブラリ関数ＳｔａｒｔＡＰ（）は、この定義に従いネイティブアプリケーションＮａｔｉｖｅＡｐｐｌｉｃａｔｉｏｎ．ｅｘｅのネイティブオペレーティングシステム１１３上のプロセスを起動する。
【００３１】
次に、フレームワーク１１５は、フレームワーク１１５がＡＰＩとして提供するＳｔｏｐ（ＢｕｎｄｌｅＣｏｎｔｅｘｔ）メソッドが呼び出されると、指定されたバンドル１１６のＢｕｎｄｌｅ  ＡｃｔｉｖａｔｏｒであるクラスＮｅｗＢｕｎｄｌｅＡｃｔｉｖａｔｏｒ．ｃｌａｓｓのＳｔｏｐ（）メソッドを呼び出す。Ｓｔｏｐ（）メソッドにはネイティブコードライブラリＣｒｅａｔｅＰｒｏｃｅｓｓ．ｄｌｌのライブラリ関数ＳｔｏｐＡＰ（）を呼び出す処理が定義されており、呼び出されたＳｔｏｐ（）メソッドはこの定義に従い、ネイティブコードライブラリＣｒｅａｔｅＰｒｏｃｅｓｓ．ｄｌｌのライブラリ関数ＳｔｏｐＡＰ（）を呼び出す。ここで、この呼び出しは、ＪＶＭ１１４のＪＮＩを用いて行われる。
【００３２】
次に、ネイティブコードライブラリＣｒｅａｔｅＰｒｏｃｅｓｓ．ｄｌｌのライブラリ関数ＳｔｏｐＡＰ（）には、ネイティブオペレーティングシステム１１３のＡＰＩであるＥｘｉｔＰｒｏｃｅｓｓ（）などを利用してネイティブアプリケーションＮａｔｉｖｅＡｐｐｌｉｃａｔｉｏｎ．ｅｘｅのネイティブオペレーティングシステム１１３上のプロセスを終了する処理が記述されており、呼び出されたライブラリ関数ＳｔａｒｔＡＰ（）は、この定義に従いネイティブアプリケーションＮａｔｉｖｅＡｐｐｌｉｃａｔｉｏｎ．ｅｘｅのネイティブオペレーティングシステム１１３上のプロセスを終了する。
【００３３】
このように、図３に示した構成を有するバンドル１１６によれば、Ｂｕｎｄｌｅ  ＡｃｔｉｖａｔｏｒであるクラスのＳｔａｒｔ（）、Ｓｔｏｐメソッドの呼び出しにより行われるＯＳＧＩ  Ｓｅｒｖｉｃｅ  Ｐｌａｔｆｏｒｍ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ標準の構成を有するバンドル１１６の起動、終了の制御によって、ネイティブアプリケーションの起動や終了を制御することができる。
【００３４】
したがって、以上示した本実施形態によれば、ネイティブアプリケーションのインストール、アップデート、アンインストール、スタート、ストップといったＬｉｆｅ  Ｃｙｃｌｅ  Ｍａｎａｇｅｍｅｎｔを、フレームワーク１１５のバンドル１１６のＬｉｆｅ  Ｃｙｃｌｅ  Ｍａｎａｇｅｍｅｎｔによって行うことができる。
【００３５】
【発明の効果】
以上のように、本発明によれば、ネイティブオペレーティングシステム上で稼働する仮想システムによって、仮想システム上で実行されるアプリケーションと同様に、ネイティブオペレーティングシステム上で直接実行されるネイティブアプリケーションの管理、制御を行うことができる。
【図面の簡単な説明】
【図１】本発明の実施形態に係るサービスシステムの構成を示すブロック図である。
【図２】本発明の実施形態に係るサービスゲートウエイ装置の構成を示すブロック図である。
【図３】本発明の実施形態に係るバンドルの構成を示す図である。
【図４】本発明の実施形態に係るバンドルの動作を示す図である。
【符号の説明】
１…情報システム、２…サービスプロバイダシステム、３…無線ＷＡＮ、１１…サービスゲートウエイ装置、１２…車内ＬＡＮ、１３…デバイス、１１１…ハードウエア、１１２…ドライバ、１１３…ネイティブオペレーティングシステム、１１４…ＪＶＭ、１１５…フレームワーク、１１６…バンドル。
【図１】
2004318459.tif 000003
【図２】
2004318459.tif 000004
【図３】
2004318459.tif 000005
【図４】
2004318459.tif 000006