(57)【要約】【課題】アプリケーションソフトウエアのソースコードを変更せず、更に既存ＯＳ毎にシステム環境を用意しなくともアプリケーションソフトウエアを複数の既存のＯＳに簡単に実装できるアプリケーションソフトウエア実装システムを提供する。【解決手段】  アプリケーションソフトウエア１からの共通システムコールを受け、既存ＯＳ３にシステムコールを発行するプラットフォーム共通ライブラリ２を有し、プラットフォーム共通ライブラリ２は、共通システムコールを受ける上位インターフェース部４と、共通システムコールを受けシステムコールが利用可能ならＯＳ固有のフォーマットに変換し変換後のシステムコールを呼び出す下位インターフェース部５とを備え、下位インターフェース部５は、ＯＳ認識部７と、ＯＳ依存システムコール部６を備える。【選択図】図１
2006171821.tif 000002
【特許請求の範囲】
【請求項１】
プログラム言語で記述されたアプリケーションソフトウエアを複数の既存オペレーティングシステムに実装するアプリケーションソフトウエア実装システムにおいて、
前記アプリケーションソフトウエアからのオペレーティングシステムによらない共通システムコールを受け、前記既存オペレーティングシステムに該システムコールを発行するプラットフォーム共通ライブラリを有し、
該プラットフォーム共通ライブラリは、
前記アプリケーションソフトウエアから前記オペレーティングシステムによらない共通システムコールを受ける上位インターフェース部と、
該上位インターフェース部からの共通システムコールを受け前記既存オペレーティングシステム固有のシステムコールを呼び出す下位インターフェース部を備え、
該下位インターフェース部は、
あらかじめ前記既存オペレーティングシステムの種類を認識し利用可能な前記既存オペレーティングシステムのシステムコールを決定しておくＯＳ認識部と、
前記共通システムコールを前記ＯＳ認識部から通知された利用可能な前記既存オペレーティングシステムのシステムコールに変換するＯＳ依存システムコール部を備えることを特徴とするアプリケーションソフトウエア実装システム。
【請求項２】
前記ＯＳ認識部は、前記プラットフォーム共通ライブラリが起動するときに現在利用可能な前記既存オペレーティングシステムの種類を認識し、その結果を前記ＯＳ依存システムコール部に通知することを特徴とする請求項１記載のアプリケーションソフトウエア実装システム。
【請求項３】
前記ＯＳ依存システムコール部は、あらかじめ前記複数の既存オペレーティングシステム固有のシステムコールを登録しておき、前記上位インターフェースからの共通システムコールを受け、該システムコールが利用可能とされたシステムコールかどうかをチェックし、利用可能なら前記共通システムコールを前記ＯＳ認識部から通知された利用可能な前記既存オペレーティングシステムのシステムコールに変換し、利用不可ならアラームとすることを特徴とする請求項１記載のアプリケーションソフトウエア実装システム。
【請求項４】
前記上位インターフェース部は、前記アプリケーションソフトウエアに対して前記オペレーティングシステムの種類によらない共通システムコールを提供することを特徴とする請求項１記載のアプリケーションソフトウエア実装システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム言語で記述されたアプリケーションソフトウエアを複数の既存オペレーティングシステムに実装するアプリケーションソフトウエア実装システムに関する。
【背景技術】
【０００２】
従来、オペレーティングシステム（以下ＯＳという）にアプリケーションソフトウエアを実装するには、そのＯＳ固有のシステムコールをアプリケーションソフトウエアから直接呼び出さなければならなかった。しかし、この方法では異なるＯＳにアプリケーションソフトウエアを実装するときは、アプリケーションソフトウエアのシステムコールの部分のソースコードを書き替える必要があり、手間と時間がかかっていた。なお、ここで「実装する」とは、アプリケーションソフトウエアをＯＳに適合させ、そのＯＳ上で動作できるようにすることを意味する。
これに対し特許文献１では、既存のＯＳ毎に他の手続き等に置き換える情報を記述した置換情報記述部を有し、プログラム本体と置換情報記述部に記述された置換情報を、既存ＯＳ用コンパイラを利用して、仮想実行環境上で実行可能な実行可能プログラムに翻訳する翻訳部と、既存ＯＳを利用して実行可能プログラムを実行する実行部とを備えるように構成していて、アプリケーションソフトウエアのソースコードを変更することなく複数の既存のＯＳにアプリケーションソフトウエアを実装することが可能である。
しかし、種々のＯＳに対応するためには、既存のＯＳ毎に置換情報記述部と既存ＯＳ用コンパイラと仮想実行環境上で実行可能な実行可能プログラムに翻訳する翻訳部と既存ＯＳを利用して実行可能プログラムを実行する実行部とをＯＳ毎に用意しなければならない。
【特許文献１】特開平０８−６３３６３号公報（第６頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来のアプリケーションソフトウエア実装システムでは、種々のＯＳにアプリケーションソフトウエアを実装するときは、アプリケーションソフトウエアのソースコードを変更するか、ＯＳ毎に置換情報記述部と既存ＯＳ用コンパイラと仮想実行環境上で実行可能な実行可能プログラムに翻訳する翻訳部と既存ＯＳを利用して実行可能プログラムが実行する命令を実行する実行部というようなシステム環境を用意しなければならないため、種々のＯＳに対応するには手間と時間がかかる。
本発明は、このような問題に鑑み、アプリケーションソフトウエアのソースコードを変更せず、更に既存ＯＳ毎にシステム環境を用意しなくともアプリケーションソフトウエアを複数の既存のＯＳに簡単に実装できるアプリケーションソフトウエア実装システムを提供することを目的とする。
【課題を解決するための手段】
【０００４】
上記問題を解決するため、本発明のアプリケーションソフトウエア実装システムは、プログラム言語で記述されたアプリケーションソフトウエアを複数の既存オペレーティングシステムに実装するアプリケーションソフトウエア実装システムにおいて、前記アプリケーションソフトウエアからのオペレーティングシステムによらない共通システムコールを受け、前記既存オペレーティングシステムに該システムコールを発行するプラットフォーム共通ライブラリを有し、該プラットフォーム共通ライブラリは、前記アプリケーションソフトウエアから前記オペレーティングシステムによらない共通システムコールを受ける上位インターフェース部と、該上位インターフェース部からの共通システムコールを受け前記既存オペレーティングシステム固有のシステムコールを呼び出す下部インターフェース部を備え、該下位インターフェース部は、あらかじめ前記既存オペレーティングシステムの種類を認識し利用可能な前記既存オペレーティングシステムのシステムコールを決定しておくＯＳ認識部と、前記共通システムコールを前記ＯＳ認識部から通知された利用可能な前記既存オペレーティングシステムのシステムコールに変換するＯＳ依存システムコール部を備えることを特徴としている。
また、前記ＯＳ認識部は、前記プラットフォーム共通ライブラリが起動するときに現在利用可能な前記既存オペレーティングシステムの種類を認識し、その結果を前記ＯＳ依存システムコール部に通知することを特徴としている。
また、前記ＯＳ依存システムコール部は、あらかじめ前記複数の既存オペレーティングシステム固有のシステムコールを登録しておき、前記上位インターフェースからの共通システムコールを受け、該システムコールが利用可能とされたシステムコールかどうかをチェックし、利用可能なら前記共通システムコールを前記ＯＳ認識部から通知された利用可能な前記既存オペレーティングシステムのシステムコールに変換し、利用不可ならアラームとすることを特徴としている。
また、前記上位インターフェース部は、前記アプリケーションソフトウエアに対して前記オペレーティングシステムの種類によらない共通システムコールを提供することを特徴としている。
【発明の効果】
【０００５】
本発明によれば、既存ＯＳを自動認識することで、アプリケーションソフトウエアを構成するために必要なシステムコールを自動で切り替えることができるため、アプリケーションソフトウエアのソースコードを変更せず、更に既存ＯＳ毎にシステム環境を用意しなくともアプリケーションソフトウエアを複数の既存のＯＳに簡単に実装できるアプリケーションソフトウエア実装システムを提供することができる。
【発明を実施するための最良の形態】
【０００６】
以下、図面を参照して、本発明の実施例の詳細を説明する。
【実施例１】
【０００７】
図１は本発明のアプリケーションソフトウエア実装システムのブロック図である。図１において、１はアプリケーションソフトウエア、２は種々の既存ＯＳに対し共通なソフトウエアライブラリであるプラットフォーム共通ライブラリ、３は既存ＯＳである。プラットフォーム共通ライブラリ２の中には、上位インターフェース部４と下位インターフェース部５がある。上位インターフェース部４は、実装するアプリケーションソフトウエア１にオペレーティングシステムの種類によらない共通システムコールを提供する共通インターフェースで、アプリケーションソフトウエア１はこの共通インターフェースを通じて種類にかかわらず既存ＯＳのシステムコールにアクセスすることができる。また、下位インターフェース部５は、ＯＳ依存システムコール部６と、ＯＳ認識部７から構成されている。ＯＳ依存システムコール部６は、第１既存ＯＳシステムコール８、第２既存ＯＳシステムコール９、第３既存ＯＳシステムコール１０を有する。なお、これらシステムコールは３種類に限定されるものではなく、それ以上持つことも可能であるが、システムで対応するために必要な既存ＯＳの種類の数だけ実装すれば良い。
ＯＳ認識部７は、既存ＯＳ３の種類が何であるかを認識し、その結果をＯＳ依存システムコール部６に伝える。ＯＳ依存システムコール部６では、ＯＳ認識部７から伝えられた結果を基に、既存ＯＳのシステムコールのどれを使い既存ＯＳ３とインターフェースするかを決める。タイマ１１は、既存ＯＳ３の種類を認識するときに用いるシステムコールの呼び出しがタイムアウトになったかどうかを監視するためのタイマである．
【０００８】
図２はプラットフォーム共通ライブラリ２の初期起動時のフローチャートである。
プラットフォーム共通ライブラリ２の初期起動時では既存ＯＳの認識処理が行われるので、プラットフォーム共通ライブラリ２を利用するアプリケーションソフトウエア1がプラットフォーム共通ライブラリ２の初期起動ソフトを呼び出す。
プラットフォーム共通ライブラリ２がアプリケーションソフトウエア1によって起動されると、ステップＳ１でシステムコールの呼び出しがタイムアウトするかどうかを監視してタイマ１１をカウントする。次にステップＳ２に進みＯＳ認識部７で本システムが実装されている既存ＯＳの種類を認識する。ここで、既存ＯＳとしてはＷｉｎｄｏｗｓＸＰ（登録商標）、Ｗｉｎｄｏｗｓ２０００（登録商標）、Ｗｉｎｄｏｗｓ−ＮＴ（登録商標）、ＵＮＩＸ（登録商標）、ＳＯＬＡＲＩＳ（登録商標）、ＬＩＮＵＸ（登録商標）などを利用することができる。
ＯＳ認識部７で既存ＯＳの種類を認識する方法として、以下の手順を行う。
すなわち、既存ＯＳで利用可能なシステムコールを一つずつ試していく。ＯＳ依存システムコール部６で実装されている既存ＯＳのシステムコールをＯＳ認識部７を介して呼び出す。このとき、システムコールの呼び出しに失敗した場合、またはシステムコールの呼び出し中にタイマ１１がタイムアウトを検知した場合、他に実装している既存ＯＳのシステムコールを呼び出す。以上を繰り返して既存ＯＳの種類を認識する。
【０００９】
ステップＳ３では、認識されたＯＳのシステムコールがＯＳ依存システムコール部６に存在するかどうかチェックする。（第１既存ＯＳシステムコール８〜第３既存ＯＳシステムコール１０のどれかに該当するかどうか）
存在する場合ステップＳ４に進み、存在するＯＳのシステムコールを利用可能状態とする。
認識されたシステムコールが第１既存ＯＳシステムコール８〜第３既存ＯＳシステムコール１０のいずれにも該当しない場合、ステップＳ５に進みＯＳ依存システムコール部６の使用を不可にして、アプリケーションソフトウエア１からのシステムコールの呼び出しに対してはすべてエラーを返すようにする。
【００１０】
また、ＯＳ依存システムコール部６に既存ＯＳのシステムコールの実装がなされていない場合、ＯＳ依存システムコール部６に新たなＯＳのシステムコールの実装を行うことで、それまで認識が不可能だった既存ＯＳのシステムコールを呼び出すことが可能となる。
【００１１】
図３はプラットフォーム共通ライブラリ２のシステムコール時のフローチャートである。
プラットフォーム共通ライブラリ２の初期起動処理が終了した後、アプリケーションソフトウエア１は上位インターフェース４を介して既存ＯＳ３のシステムコールを呼び出すことができる。プラットフォーム共通ライブラリ２はステップＳ１１に進み上位インターフェース部４でアプリケーションソフトウエア１からのシステムコールを受取る。ステップＳ１２で上位インターフェース部４は、ＯＳ依存システムコール部６に対しシステムコールを呼び出す。
ステップＳ１３でＯＳ依存システムコール部６は受取ったＯＳのシステムコールが利用可能かどうかチェックする。利用可能ならステップＳ１４で、受取ったシステムコールを利用可能な第１既存ＯＳシステムコール８〜第３既存ＯＳシステムコール１０のいずれかにフォーマット変換し、呼び出す。
【００１２】
また、ＯＳ認識部７で既存ＯＳの種類が認識されなかった場合、ＯＳ依存システムコール部６ではすべてのシステムコールが利用不可となっているため、上位インターフェース４を介してのシステムコールはすべてエラーとなる。（ステップＳ１５）
このように、既存ＯＳを自動認識することで、アプリケーションソフトウエアを構成するために必要なシステムコールを自動で切り替えることができるため、アプリケーションソフトウエアのソースコードを変更せず、更に既存ＯＳ毎にシステム環境を用意しなくともアプリケーションソフトウエアを複数の既存のＯＳに簡単に実装できるアプリケーションソフトウエア実装システムを提供することができるのである。
【図面の簡単な説明】
【００１３】
【図１】本発明のアプリケーションソフトウエア実装システムのブロック図
【図２】プラットフォーム共通ライブラリの初期起動時のフローチャート
【図３】プラットフォーム共通ライブラリのシステムコール時のフローチャート
【符号の説明】
【００１４】
１  アプリケーションソフトウエア
２  プラットフォーム共通ライブラリ
３  既存ＯＳ
４  上位インターフェース部
５  下位インターフェース部
６  ＯＳ依存システムコール部
７  ＯＳ認識部
８  第１既存ＯＳシステムコール
９  第２既存ＯＳシステムコール
１０  第３既存ＯＳシステムコール
１１ タイマ
【図１】
2006171821.tif 000003
【図２】
2006171821.tif 000004
【図３】
2006171821.tif 000005