(57)【要約】【課題】リソーセス識別子の変更に要する工数を低減できるとともに、生産工場の稼動中にリソーセス識別子の変更に対応できるリソーセス仮想化システムを提供する。【解決手段】各リソーセスに付与されるリソーセス識別子と、リソーセス識別子の仮の名称として設定される仮想リソーセス名とが相互に関連付けられて記憶される仮想ファイル２と、アプリケーションソフトウェア５０から仮想リソーセス名を取得したときに、取得した仮想リソーセス名を用いて、仮想リソーセス名に関連付けられて仮想ファイル２に記憶されているリソーセス識別子を、仮想ファイル２から取得して、取得したリソーセス識別子をアプリケーションソフトウェア５０に渡す仮想ファイルアクセスプログラム３と、を具備する。【選択図】図６
2011186807.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェアを制御するオペレーティングシステムに対して所定の要求を行うアプリケーションソフトウェアで利用される、該オペレーティングシステムのリソーセスを特定するリソーセス識別子を仮想化するリソーセス仮想化方法であって、
前記各リソーセスに付与される前記リソーセス識別子と、該各リソーセス識別子の仮の名称として設定される仮想リソーセス名とを相互に関連付けて、前記ハードウェアの記憶装置に記憶させる仮想リソーセス記憶工程と、
前記仮想リソーセス名を用いて、前記仮想リソーセス記憶工程で前記仮想リソーセス名に関連付けた前記リソーセス識別子を前記ハードウェアの記憶装置から取得する実リソーセス取得工程と、
を含み、
前記仮想リソーセス記憶工程は、
前記アプリケーションソフトウェアが前記リソーセスを利用する前に行われ、
前記実リソーセス取得工程は、
前記アプリケーションソフトウェアが前記リソーセスを利用する際に、該利用対象となるリソーセスの前記リソーセス識別子に対応する前記仮想リソーセス名を用いて、前記アプリケーションソフトウェアにて行われる、
リソーセス仮想化方法。
【請求項２】
前記仮想リソーセス記憶工程では、
前記仮想リソーセス名に対応するパラメータを、該仮想リソーセス名に対してさらに関連付けて前記ハードウェアの記憶装置に記憶させ、
前記実リソーセス取得工程では、
前記仮想リソーセス名を用いて、前記仮想リソーセス記憶工程で前記仮想リソーセス名に関連付けた前記パラメータを前記ハードウェアの記憶装置からさらに取得する、
請求項１に記載のリソーセス仮想化方法。
【請求項３】
ハードウェアを制御するオペレーティングシステムに対して所定の要求を行うアプリケーションソフトウェアで利用される、該オペレーティングシステムのリソーセスを特定するリソーセス識別子を仮想化するリソーセス仮想化システムであって、
前記各リソーセスに付与される前記リソーセス識別子と、該リソーセス識別子の仮の名称として設定される仮想リソーセス名とが相互に関連付けられて記憶される仮想リソーセス記憶手段と、
前記アプリケーションソフトウェアから前記仮想リソーセス名を取得したときに、取得した仮想リソーセス名を用いて、該仮想リソーセス名に関連付けられて前記仮想リソーセス記憶手段に記憶されている前記リソーセス識別子を、前記リソーセス記憶手段から取得して、該取得したリソーセス識別子を前記アプリケーションソフトウェアに渡すリソーセス取得手段と、
を具備し、
前記仮想リソーセス記憶手段は、
前記アプリケーションソフトウェアが前記リソーセスを利用する前に、前記リソーセス識別子と前記仮想リソーセス名とを記憶し、
前記リソーセス取得手段は、
前記アプリケーションソフトウェアが前記リソーセスを利用する際に、該利用対象となるリソーセスの前記リソーセス識別子に対応する前記仮想リソーセス名を用いて、前記リソーセス記憶手段から前記リソーセス識別子を取得する、
リソーセス仮想化システム。
【請求項４】
前記仮想リソーセス記憶手段は、
前記仮想リソーセス名に対応するパラメータが、前記仮想リソーセス名に対してさらに関連付けられて記憶され、
前記リソーセス取得手段は、
前記アプリケーションソフトウェアから前記仮想リソーセス名を取得したときに、取得した仮想リソーセス名を用いて、該仮想リソーセス名に関連付けられた前記パラメータを、前記仮想リソーセス記憶手段からさらに取得する、
請求項３に記載のリソーセス仮想化システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オペレーティングシステムのリソーセスをアプリケーションソフトウェアで利用する技術に関する。
【背景技術】
【０００２】
従来から、コンピューターシステムで所定の業務（例えば、車両の生産ラインにおける業務等）を行う際には、アプリケーションソフトウェアが用いられている。このようなアプリケーションソフトウェアは、ハードウェアを制御するオペレーティングシステム（以下、「ＯＳ」と表記する）上で動作して、ミドルウェア等を介して所定の機能を提供する。
【０００３】
このようなアプリケーションソフトウェアとしては、例えば、特許文献１のようなアプリケーションソフトウェアが開示されている。特許文献１に開示されたアプリケーションソフトウェアは、自動車等の生産ラインにおける業務を行う車両生産システムで用いられる。車両生産システムは、ミドルウェア（データベース等）と、アプリケーションソフトウェア（生産計画システム、紐付け管理システム、現品票発行システム等）と等を具備する。アプリケーションソフトウェアは、一般的に所定の機能を提供するプログラムを有している。
【０００４】
特許文献１に開示されたアプリケーションソフトウェアは、一般的にリソーセス（ファイル、メッセージキュー、共有メモリ、およびセマフォ等）を利用している。このとき、ＯＳより提供されるリソーセスを利用するためのプログラム（以下、「リソーセス利用プログラム」と表記する）を使用している。例えば、図９に示すように、記憶装置１２２にデータを記憶する場合、アプリケーションソフトウェア１５０のプログラム１５２は、リソーセス利用プログラム１３１を使用して、記憶装置１２２にデータを記憶する。
このとき、プログラム１５２は、リソーセス識別子（ファイルの場合にはファイルパス）およびパラメータ等をリソーセス利用プログラム１３１に渡す。そして、リソーセス利用プログラム１３１は、渡されたリソーセス識別子により特定されるリソーセスに対して、パラメータに基づいた所定の処理を行う。
【０００５】
ここで、プログラム１５２は、一般的に所定のプログラミング言語（例えばＣ言語等）を用いて記述されたソースコード１５２ａの内容に従って処理を行う。つまり、リソーセスを利用する場合、ソースコード１５２ａには、リソーセス利用プログラム１３１を使用するように直接記述されるとともに、利用対象となるリソーセスのリソーセス識別子およびパラメータ等が直接記述される。
このソースコード１５２ａをプログラミング言語に対応するコンパイラで翻訳して、コンピュータの演算装置が実行可能な機械語に翻訳する（コンパイルする）ことで、プログラム１５２は、コンピュータ（メモリ）上で動作する。
【０００６】
例えば、アプリケーションソフトウェア１５０を新たに生産工場に導入する場合等において、ファイルパスが変更される場合がある（図９に示す符号Ｂ１参照）。この場合、図９に示すように、プログラム１５２のソースコード１５２ａに直接記述されるファイルパス等を変更する必要がある（図９に示す符号Ｃ２参照）。
また、既にアプリケーションソフトウェア１５０が導入されている生産工場においても、リソーセス識別子が変更される場合がある。このような場合としては、例えば、生産する車両の生産工程が変更された場合等がある。
【０００７】
この場合、変更されるファイルパスが記述されている部分をソースコード１５２ａから探す必要がある。特に、ファイル１２３ｂを格納するディレクトリ（フォルダ）が、ディレクトリ１２３Ｂからディレクトリ１２３Ｃに変更された場合、当該ディレクトリ１２３Ｂに格納される全てのファイルが変更対象となってしまう。つまり、リソーセス識別子の変更に要する工数が増大する可能性があった。
【０００８】
また、ソースコード１５２ａを変更した場合、変更したソースコード１５２ｂをコンパイルする必要があった。コンパイルは、アプリケーションソフトウェア１５０が動作しているときに行うことができない。このため、アプリケーションソフトウェア１５０が停止している間（例えば、生産工場が非稼動となる日およびアプリケーションソフトウェア１５０が停止する時間帯等）に行う必要があった。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００５−１０８０４８
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明は、以上の如き状況を鑑みてなされたものであり、リソーセス識別子の変更に要する工数を低減できるとともに、アプリケーションソフトウェアの稼動中にリソーセス識別子を変更できるリソーセス仮想化方法およびリソーセス仮想化システムを提供するものである。
【課題を解決するための手段】
【００１１】
請求項１においては、ハードウェアを制御するオペレーティングシステムに対して所定の要求を行うアプリケーションソフトウェアで利用される、該オペレーティングシステムのリソーセスを特定するリソーセス識別子を仮想化するリソーセス仮想化方法であって、前記各リソーセスに付与される前記リソーセス識別子と、該各リソーセス識別子の仮の名称として設定される仮想リソーセス名とを相互に関連付けて、前記ハードウェアの記憶装置に記憶させる仮想リソーセス記憶工程と、前記仮想リソーセス名を用いて、前記仮想リソーセス記憶工程で前記仮想リソーセス名に関連付けた前記リソーセス識別子を前記ハードウェアの記憶装置から取得する実リソーセス取得工程と、を含み、前記仮想リソーセス記憶工程は、前記アプリケーションソフトウェアが前記リソーセスを利用する前に行われ、前記実リソーセス取得工程は、前記アプリケーションソフトウェアが前記リソーセスを利用する際に、該利用対象となるリソーセスの前記リソーセス識別子に対応する前記仮想リソーセス名を用いて、前記アプリケーションソフトウェアにて行われる、ものである。
【００１２】
請求項２においては、前記仮想リソーセス記憶工程では、前記仮想リソーセス名に対応するパラメータを、該仮想リソーセス名に対してさらに関連付けて前記ハードウェアの記憶装置に記憶させ、前記実リソーセス取得工程では、前記仮想リソーセス名を用いて、前記仮想リソーセス記憶工程で前記仮想リソーセス名に関連付けた前記パラメータを前記ハードウェアの記憶装置からさらに取得する、ものである。
【００１３】
請求項３においては、ハードウェアを制御するオペレーティングシステムに対して所定の要求を行うアプリケーションソフトウェアで利用される、該オペレーティングシステムのリソーセスを特定するリソーセス識別子を仮想化するリソーセス仮想化システムであって、前記各リソーセスに付与される前記リソーセス識別子と、該リソーセス識別子の仮の名称として設定される仮想リソーセス名とが相互に関連付けられて記憶される仮想リソーセス記憶手段と、前記アプリケーションソフトウェアから前記仮想リソーセス名を取得したときに、取得した仮想リソーセス名を用いて、該仮想リソーセス名に関連付けられて前記仮想リソーセス記憶手段に記憶されている前記リソーセス識別子を、前記リソーセス記憶手段から取得して、該取得したリソーセス識別子を前記アプリケーションソフトウェアに渡すリソーセス取得手段と、を具備し、前記仮想リソーセス記憶手段は、前記アプリケーションソフトウェアが前記リソーセスを利用する前に、前記リソーセス識別子と前記仮想リソーセス名とを記憶し、前記リソーセス取得手段は、前記アプリケーションソフトウェアが前記リソーセスを利用する際に、該利用対象となるリソーセスの前記リソーセス識別子に対応する前記仮想リソーセス名を用いて、前記リソーセス記憶手段から前記リソーセス識別子を取得する、ものである。
【００１４】
請求項４においては、前記仮想リソーセス記憶手段は、前記仮想リソーセス名に対応するパラメータが、前記仮想リソーセス名に対してさらに関連付けられて記憶され、前記リソーセス取得手段は、前記アプリケーションソフトウェアから前記仮想リソーセス名を取得したときに、取得した仮想リソーセス名を用いて、該仮想リソーセス名に関連付けられた前記パラメータを、前記仮想リソーセス記憶手段からさらに取得する、ものである。
【発明の効果】
【００１５】
本発明は、リソーセス識別子を記憶している仮想ファイルを変更するだけで、リソーセス識別子の変更に対応できるため、リソーセス識別子の変更に要する工数を低減できる。また、プログラムのソースコードのコンパイルを行う必要がないため、アプリケーションソフトウェアの稼動中にリソーセス識別子を変更できる、という効果を奏する。
【図面の簡単な説明】
【００１６】
【図１】車両生産指示システムの全体的な構成を示す説明図。
【図２】本実施形態の車両生産指示システムが導入された生産工場の全体的な構成を示す説明図。
【図３】リソーセス仮想化システムがリソーセス識別子を取得する動作を示す説明図。
【図４】仮想ファイルの内容を示す説明図。（ａ）仮想ファイルの定義内容を示す図。（ｂ）仮想ファイルの実体的な内容を示す図。（ｃ）仮想ファイルの実体的な内容を変更する前の図。（ｄ）仮想ファイルの実体的な内容を変更した後の図。
【図５】リソーセス仮想化方法を示すフロー図。
【図６】仮想ファイルの内容を変更した場合における、リソーセス仮想化システムがリソーセス識別子を取得する動作を示す説明図。
【図７】生産ラインに通過ポイントが追加された場合の仮想ファイルの実体的な内容を示す説明図。（ａ）仮想ファイルの内容を変更する前の図。（ｂ）仮想ファイルの内容を変更した後の図。（ｃ）別実施形態の仮想ファイルの内容を変更した後の図。
【図８】通過ポイントの識別子を取得するリソーセス仮想化システムの動作を示す説明図。
【図９】従来のアプリケーションソフトウェアがリソーセスを利用する状態を示す説明図。
【発明を実施するための形態】
【００１７】
以下に、リソーセス仮想化方法が用いられるリソーセス仮想化システムの実施の一形態であるリソーセス仮想化システム１について説明する。
なお、説明の便宜上、本実施形態のリソーセス仮想化システム１は、車両Ｗの生産工場に導入される車両生産指示システム１０で用いられるものとして説明を行う。
【００１８】
まず、車両生産指示システム１０について説明する。図１および図２に示すように、車両生産指示システム１０は、車両Ｗの生産ライン８０等において求められる種々の処理を行うものである。車両生産指示システム１０は、ハードウェア２０、オペレーティングシステム（以下「ＯＳ３０」と表記する）、ミドルウェア４０、アプリケーションソフトウェア５０、クライアント端末６０、およびプリンタ７０を具備する。
【００１９】
ハードウェア２０では、ＣＰＵ等の演算装置２１、ＨＤＤ２３とＲＡＭおよびＲＯＭ等のメモリ２４とを有する記憶装置２２、キーボードおよびディスプレイ等の入出力装置２５がバス等で接続される。
【００２０】
ＯＳ３０は、記憶装置２２に対して所定の情報を記憶させる、および出力装置に情報を表示させる等、ハードウェア２０を制御する。ＯＳ３０は、後述するリソーセスを容易に操作可能となるような機能として、所定のプログラム（以下、「リソーセス利用プログラム３１」と表記する）を備える。
【００２１】
ミドルウェア４０は、例えば、データベース等であり、ＯＳ３０とアプリケーションソフトウェア５０との間に介在し、ＯＳ３０の機能を拡張するものである。ミドルウェア４０は、例えば、アプリケーションソフトウェア５０から要求を受けたとき、当該要求に対応する処理をＯＳ３０に要求する。そして、ＯＳ３０における処理結果をアプリケーションソフトウェア５０に返す。
【００２２】
アプリケーションソフトウェア５０は、ＯＳ３０上で動作するとともに、ＯＳ３０およびミドルウェア４０に対して所定の要求を行うことで、生産ライン８０等で求められる種々の処理を直接的に行う。アプリケーションソフトウェア５０は、車両生産指示システム１０の機能を作業者に提供するためのプログラム５１・５２・５３を有する。
【００２３】
クライアント端末６０（６０Ａ・６０Ｂ・６０Ｃ）は、生産ライン８０に設けられる通過ポイント８１Ａ・８１Ｂ・８１Ｃ等に設置され、インターネットおよびイントラネット等によって、アプリケーションソフトウェア５０およびプリンタ７０に接続され、互いにデータを送受信することが可能に構成される。
【００２４】
プリンタ７０は、通過ポイント８１Ａ・８１Ｂ・８１Ｃ等に設置され、アプリケーションソフトウェア５０にて帳票の発行要求を受けたとき等に、発行要求に対応する帳票を発行する。
【００２５】
このように構成される車両生産指示システム１０は、例えば、作業者がクライアント端末６０にて入力した（あるいは所定の読取装置等で読み込んだ）車両Ｗのシリアル番号と部品のロット番号とを関連付けてデータベースに記憶する処理、および車両Ｗに対してどのような生産工程を行ったか等をデータベースに記憶する処理等を行う。このとき、アプリケーションソフトウェア５０では、処理に対応するプログラム５１・５２・５３が実行されている。
【００２６】
ここで、アプリケーションソフトウェア５０は、リソーセス利用プログラム３１を使用して、適宜ＯＳ３０のリソーセスを利用している。リソーセスの利用に際して、利用対象となるリソーセスを一意に特定するためのリソーセス識別子が必要となる。従って、各リソーセスには、それぞれ対応するリソーセス識別子がＯＳ３０等によって付与されている。
本実施形態のアプリケーションソフトウェア５０で利用されるＯＳ３０のリソーセスは、ファイル、メッセージキュー、共有メモリ、およびセマフォである。
【００２７】
図３に示すように、ファイルは、記憶装置２２のＨＤＤ２３に記憶されているデータである。ファイルは、所定のファイル名が付与された状態で所定のディレクトリ（フォルダ）に格納されている。このようなファイルは、ファイル名およびディレクトリ名からなるファイルパスによって一意に特定される。
つまり、ファイルを利用する場合には、利用対象となるファイルのファイルパスがリソーセスの識別子となる。
例えば、ディレクトリ名が「ｄｉｒＡ」であるディレクトリ２３Ａに格納される、ファイル名が「Ｒｅｓ．ｔｘｔ」であるファイル２３ａのファイルパスは、「／ｄｉｒＡ／Ｒｅｓ．ｔｘｔ」となる。
【００２８】
メッセージキューは、アプリケーションソフトウェア５０のプログラム５１・５２・５３間等でデータを送受信するためのものである。メッセージキューは、メッセージを格納するためのキューが、メモリ２４（あるいはＨＤＤ２３）上に設けられる。当該キューに対してプログラム５１・５２・５３がメッセージ（データ）を送信することで、キュー上（実体的にはメモリ２４やＨＤＤ２３上）にメッセージを登録する。メッセージが登録されたキューからプログラム５１・５２・５３がメッセージを受信することで、データの送受信が行われる。キューは、所定の識別子（キューの識別子）によって一意に特定される。
つまり、メッセージキューを利用する場合には、利用対象となるキューの識別子がリソーセス識別子となる。
【００２９】
共有メモリは、プログラム５１・５２・５３間等で相互に情報を共有するために、各プログラム５１・５２・５３間で共通してアクセス可能となるようなメモリ２４上のメモリ領域である。共有メモリは、所定の識別子（ＩＤナンバー）によって一意に特定される。
つまり、共有メモリを利用する場合には、利用対象となる共有メモリの識別子がリソーセス識別子となる。
【００３０】
セマフォは、例えば、プログラム５１が、共有メモリ上のデータ等を変更する際に、プログラム５２等が同時に変更することを防止するためのものである。つまり、共有メモリ上のデータ等の変更が競合すること等を防止するためのものである。共有メモリ上に設けられるセマフォを操作する（例えば、セマフォに対して１を減算する等）ことで、セマフォに対応するデータ等の変更を許容（あるいは規制）する。セマフォは、所定の識別子によって一意に特定される。
つまり、共有メモリを利用する場合には、利用対象となるセマフォの識別子がリソーセス識別子となる。
【００３１】
図１および図３に示すように、車両生産指示システム１０（より詳細にはプログラム５１・５２・５３）では、このようなリソーセスを利用するときに、リソーセス仮想化システム１を用いる。
本実施形態のプログラム５１・５２ではファイルを利用し、プログラム５３ではメッセージキューを利用する。
【００３２】
以下では、リソーセス仮想化システム１について説明する。リソーセス仮想化システム１は、車両生産指示システム１０のＯＳ３０上で動作して、リソーセス識別子を取得するものである。リソーセス仮想化システム１は、仮想ファイル２および仮想ファイルアクセスプログラム３を具備する。
【００３３】
図３および図４に示すように、仮想ファイル２は、仮想リソーセス名、リソーセス種類、リソーセス識別子、およびパラメータが「，（カンマ）」で区切られたＣＳＶ形式のデータである。仮想ファイル２は、車両生産指示システム１０の機能等に応じてデータが分割された状態で、実体的には記憶装置２２のＨＤＤ２３に記憶されている。つまり、本実施形態のリソーセス仮想化システム１は、複数の仮想ファイル２を具備する。
【００３４】
仮想リソーセス名は、アプリケーションソフトウェア５０（プログラム５１・５２・５３）において使用される、リソーセス識別子の仮の名称として設定されるものである。仮想リソーセス名には、任意の名称が設定される。
【００３５】
リソーセス種類は、車両生産指示システム１０で使用されるリソーセスの種類毎に、つまり、本実施形態ではファイル、メッセージキュー、共有メモリ、およびセマフォ毎に定義される所定の値である。本実施形態のリソーセス種類は、「１」がファイル、「２」がメッセージキュー、「３」が共有メモリ、「４」がセマフォとして設定される。
【００３６】
リソーセス識別子は、仮想リソーセス名に関連付けられたリソーセス識別子であり、例えば記憶装置２２のＨＤＤ２３に記憶されている。具体的には、リソーセスがファイルであった場合にはファイルパスが設定される。リソーセスが共有メモリであった場合には共有メモリの識別子が設定される。リソーセスがメッセージキューであった場合にはメッセージキューの識別子が設定される。リソーセスがセマフォであった場合にはセマフォの識別子が設定される。
【００３７】
パラメータは、リソーセス利用プログラム３１にて用いられるパラメータを設定するものである。このようなパラメータとしては、例えば、リソーセスに設定するアクセス権限等である。
【００３８】
本実施形態では、アクセス権限として「ｒ」を設定することでリソーセスを読み取り可能に、「ｗ」を設定することでリソーセスに対して書き込み可能に、「ｘ」を設定することでリソーセスを実行可能に構成される。
また仮想ファイル２Ａのリソーセス種類「ｒｗ」のように、アクセス権限の種類を複数設定することで、リソーセスに対して複数のアクセス権限を設定可能となる。
【００３９】
仮想ファイルアクセスプログラム３は、仮想リソーセス名から仮想ファイル２に設定されるリソーセス識別子等を取得するものである。仮想ファイル２に対してアクセス（オープンおよびクローズ等）する専用プログラム等を備える。仮想ファイルアクセスプログラム３は、実体的には演算装置２１が実行可能な機械語のデータであり、ＨＤＤ２３に記憶される。また、仮想ファイルアクセスプログラム３は、メモリ２４上で動作する。
【００４０】
このような仮想ファイルアクセスプログラム３は、プログラム５１・５２・５３から利用可能に構成される。つまり、リソーセス仮想化システム１は、リソーセス識別子を取得するための機能をアプリケーションソフトウェア５０に提供する。
【００４１】
以下では、リソーセス仮想化システム１を用いたリソーセス仮想化方法の動作について説明する。
【００４２】
図４（ｂ）、図４（ｃ）、および図５に示すように、まず、仮想リソーセス名とリソーセス識別子とリソーセス識別子に対応するパラメータとを相互に関連付けた状態で仮想ファイル２（２Ａ・２Ｂ）に設定する（Ｓ１１０）。つまり、仮想ファイル２をＨＤＤ２３に記憶させる。
【００４３】
仮想ファイル２を設定した後で、図３および図５に示すように、プログラム５１・５２から、仮想ファイルアクセスプログラム３に対してリソーセス識別子を取得するように要求する（Ｓ１２０）。このとき、仮想ファイルアクセスプログラム３には、プログラム５１・５２より仮想リソーセス名がパラメータとして渡される。
【００４４】
プログラム５１は、仮想ファイルアクセスプログラム３に対して、「１．Ｒｅｓｕｌｔ」を仮想リソーセス名として渡す。
【００４５】
仮想ファイルアクセスプログラム３は、プログラム５１・５２より処理が要求されたとき、渡された仮想リソーセス名から仮想ファイル２のファイルパスを取得する（Ｓ１３０）。仮想ファイルアクセスプログラム３は、仮想リソーセス名に含まれる文字列等から仮想リソーセス名に対応する仮想ファイル２のファイルパスを取得する。
【００４６】
「１．Ｒｅｓｕｌｔ」が仮想リソーセス名として渡された場合、仮想ファイルアクセスプログラム３は、仮想リソーセス名「１．Ｒｅｓｕｌｔ」に対応する仮想ファイル２である仮想ファイル２Ａのファイルパスを取得する。
【００４７】
なお、一つの仮想ファイル２に全ての仮想リソーセス名を記憶した場合、仮想ファイルアクセスプログラム３は、仮想リソーセス名よる仮想ファイル２のファイルパスの取得を行わずに、前記仮想リソーセス名を記憶した仮想ファイル２のファイルパスを取得する。
【００４８】
仮想ファイル２のファイルパスを取得した後で、取得したファイルパスに対応する仮想ファイル２を取得（オープン）する（Ｓ１４０）。このとき、仮想ファイルアクセスプログラム３は、仮想ファイル２に対してアクセスする専用プログラムを使用する。
【００４９】
「１．Ｒｅｓｕｌｔ」が仮想リソーセス名として渡された場合、仮想ファイルアクセスプログラム３は、前記専用プログラムを使用して仮想ファイル２Ａを取得する。
【００５０】
仮想ファイル２を取得した後で、リソーセス識別子（およびパラメータ等）を取得する（Ｓ１５０）。仮想ファイルアクセスプログラム３は、プログラム５１・５２より渡された仮想リソーセス名に紐付くリソーセス識別子（およびパラメータ等）を取得する。
【００５１】
「１．Ｒｅｓｕｌｔ」が仮想リソーセス名として渡された場合、仮想ファイルアクセスプログラム３は、図４（ｂ）に示すように、仮想ファイル２Ａよりリソーセス種類として「１（ファイル）」を取得する。また、仮想ファイル２Ａよりリソーセス識別子（ファイルパス）として「／ｄｉｒＡ／Ｒｅｓ．ｔｘｔ」を取得する。そして、仮想ファイル２Ａよりパラメータ（アクセス権限）として「ｒｗ（読み取りおよび書き込み可能）」を取得する。
【００５２】
図３および図５に示すように、リソーセス識別子（およびパラメータ等）を取得した後で、取得したリソーセス識別子に基づいてリソーセス（仮想リソーセス名に対応する実リソーセス）へのアクセスを行う（Ｓ１６０）。このとき、仮想ファイルアクセスプログラム３は、取得したリソーセス種類に基づいてリソーセスの種類を判断し、当該リソーセスの種類に対応するリソーセス利用プログラム３１を使用する。そして、リソーセス識別子およびパラメータ等をプログラム５１・５２に渡す。これにより、プログラム５１・５２は、リソーセス識別子を取得する。
【００５３】
「１．Ｒｅｓｕｌｔ」が仮想リソーセス名として渡された場合、仮想ファイルアクセスプログラム３は、リソーセス識別子（「／ｄｉｒＡ／Ｒｅｓ．ｔｘｔ」）により特定されるファイル２３ａをオープンする。そして、取得したリソーセス識別子をプログラム５１に渡す。
【００５４】
リソーセスへのアクセスを行った後で、プログラム５１・５２にて、リソーセスに対して所定の処理が行われる（Ｓ１７０）。
【００５５】
仮想ファイルアクセスプログラム３から、リソーセス識別子として「／ｄｉｒＡ／Ｒｅｓ．ｔｘｔ」が渡された場合、プログラム５１は、リソーセス識別子により特定されるファイル２３ａに対して所定の処理を行う（例えば、文字列を追加する等）。
【００５６】
ここで、プログラム５１・５２でリソーセスに対して所定の処理を行う場合、リソーセス識別子が必要となる場合がある。この場合、プログラム５１・５２は、Ｓ１４０にて仮想ファイルアクセスプログラム３より渡されたリソーセス識別子およびパラメータ等に基づいて、適宜リソーセス利用プログラム３１を使用する。
【００５７】
リソーセスに対して処理が行われた後で、仮想ファイルアクセスプログラム３は、リソーセスへのアクセスを終了させる（Ｓ１８０）。つまり、プログラム５１・５２から、仮想ファイルアクセスプログラム３に対してリソーセスへのアクセスを終了するように要求する。このとき、プログラム５１・５２は、対してリソーセス識別子および仮想リソーセス名を仮想ファイルアクセスプログラム３に渡す。
【００５８】
仮想ファイルアクセスプログラム３は、渡されたリソーセス識別子に基づいて、リソーセス利用プログラム３１を使用して、リソーセスへのアクセスを終了させる。そして、仮想リソーセス名に対応する仮想ファイル２に対して、前記仮想ファイル２にアクセスする専用プログラムを使用して、仮想ファイル２をクローズする。
【００５９】
プログラム５１から、リソーセス識別子として「／ｄｉｒＡ／Ｒｅｓ．ｔｘｔ」が、仮想リソーセス名として「１．Ｒｅｓｕｌｔ」が渡された場合、仮想ファイルアクセスプログラム３は、リソーセス識別子に対応するファイル２３ａをクローズする。そして、仮想ファイル２Ａをクローズする。
【００６０】
また、プログラム５２が仮想ファイルアクセスプログラム３に処理を行うように要求した場合には、仮想リソーセス名が「２．Ｒｅｓｕｌｔ」となり、仮想ファイル２Ａが仮想ファイル２Ｂとなり、リソーセスを利用するリソーセス識別子が「／ｄｉｒＢ／Ｒｅｓ．ｔｘｔ」となる。
つまり、リソーセス識別子を取得するための仮想ファイル２が仮想ファイル２Ｂとなり、利用するリソーセスがファイル２３ｂとなる。
【００６１】
なお、仮想ファイルアクセスプログラム３にて仮想ファイル２をオープンおよびクローズする際に、前述したような専用プログラムに代えて、リソーセス利用プログラム３１を用いても構わない。
【００６２】
次に、図６に示すように、ファイル２３ｂを格納するディレクトリが、ディレクトリ名が「ｄｉｒＢ」であるディレクトリ２３Ｂから、ディレクトリ名が「ｄｉｒＣ」であるディレクトリ２３Ｃに変更された場合における、対応手順を説明する（図６に示す符号Ｂ１参照）。
【００６３】
図４（ｃ）および図４（ｄ）に示すように、仮想ファイル２Ｂでは、リソーセス識別子が「／ｄｉｒＢ／Ｒｅｓ．ｔｘｔ」に対応する仮想リソーセス名に関連付けられるリソーセス識別子を、「／ｄｉｒＣ／Ｒｅｓ．ｔｘｔ」に変更する。
なお、説明の便宜上、リソーセス識別子を「／ｄｉｒＣ／Ｒｅｓ．ｔｘｔ」に変更した仮想ファイル２を仮想ファイル２Ｃと表記するが、仮想ファイル２Ｂと仮想ファイル２Ｃとは、実体的には同一のファイルであり、ＨＤＤ２３に記憶される。
【００６４】
ここで、図３に示すように、プログラム５１・５２・５３および仮想ファイルアクセスプログラム３は、所定のプログラミング言語（例えばＣ言語等）を用いて記述されたソースコードの内容に従って処理を行う。
各プログラムは、ソースコードをプログラミング言語に対応するコンパイラによって、演算装置２１が実行可能な機械語に翻訳する（コンパイルする）ことで、機械語のデータとしてＨＤＤ２３に記憶される。
【００６５】
仮想ファイルアクセスプログラム３のソースコードには、パラメータとして渡される仮想リソーセス名に基づいて、仮想ファイル２からリソーセス識別子を取得するように記述されている。また、パラメータとして渡されるリソーセス識別子に基づいて、リソーセス利用プログラム３１を使用するように記述されている。
つまり、ファイル２３ｂに対応するリソーセス識別子が直接記述されている部分はない。従って、仮想ファイルアクセスプログラム３のソースコードを変更する必要はない。
【００６６】
図６に示すように、プログラム５２のソースコード５２ａには、ファイル２３ｂに対応する仮想リソース名（「２．Ｒｅｓｕｌｔ」）は直接記述されているが、ファイル２３ｂに対応するリソーセス識別子（「／ｄｉｒＢ／Ｒｅｓ．ｔｘｔ」）は直接記述されていない。また、仮想ファイルアクセスプログラム３より渡されるリソーセス識別子に基づいて、リソーセス利用プログラム３１を使用するように記述されている。また、プログラム５１では、ファイル２３ｂを利用しないため、ファイル２３ｂに関する記述はない（図３参照）。
つまり、プログラム５１・５２のソースコード５１ａ・５２ａを変更する必要はない。
【００６７】
このように、リソーセス識別子が変更になった場合には、仮想ファイル２Ｂを変更する必要はあるが、仮想ファイルアクセスプログラム３のソースコードおよびプログラム５１・５２のソースコード５１ａ・５２ａを変更する必要はない（図６に示す符号Ｃ１参照）。
【００６８】
例えば、プログラムのソースコードに、ファイルパス（リソーセス識別子）が直接記述されている場合、当該ファイルパス変更に伴って、ソースコードに直接記述されたファイルパス全てを変更する必要がある（図９に示す符号Ｂ１・Ｃ２参照）。
【００６９】
一方、本実施形態のように、仮想ファイル２にリソーセス識別子を記憶する場合、プログラム５１・５２のソースコード５１ａ・５２ａには、仮想リソーセス名が直接記述されている。このため、仮想ファイル２に記述されたリソーセス識別子だけを変更すればよい。
【００７０】
これによれば、アプリケーションソフトウェア５０（プログラム５１・５２）は、リソーセスの利用に際して、仮想ファイルアクセスプログラム３を介して間接的にリソーセス識別子を取得できる（リソーセス識別子を仮想化できる）。つまり、プログラム５１・５２のソースコード５１ａ・５２ａにリソーセス識別子を直接記述する必要がなくなる。
【００７１】
次に、図２に示す通過ポイント８１Ａ・８１Ｂ・８１Ｃが追加あるいは減少した場合の対応手順について説明する。通過ポイント８１Ａ・８１Ｂ・８１Ｃは、生産工場で生産される車両Ｗの生産工程の変更等に伴って、追加あるいは減少する。
【００７２】
以下では、図２に示す生産ライン８０において、通過ポイント８１Ａ・８１Ｂの間に通過ポイント８１Ｃが追加されるとともに、当該通過ポイント８１Ｃにクライアント端末６０Ｃが追加されるものとして説明を行う。
【００７３】
なお、説明の便宜上、通過ポイント８１Ａ・８１Ｂ・８１Ｃおけるメッセージキューのリソーセス識別子を記憶している仮想ファイル２Ｄを変更する場合についてのみ説明を行うが、ファイル、共有メモリ、およびセマフォについても同様に、適宜仮想ファイル２の変更が行われる。
例えば、共有メモリに関する仮想ファイル２の変更としては、クライアント端末６０Ｃの情報を共有メモリに記憶させること等に伴う変更等がある。
【００７４】
まず、通過ポイント８１Ｃが追加される前のリソーセス仮想化システム１によるリソーセス識別子の取得手順について説明する。図７（ａ）および図８に示すように、各クライアント端末６０Ａ・６０Ｂのメッセージキューを管理する仮想ファイル２Ｄに、クライアント端末６０Ａ・６０Ｂに対応する仮想リソーセス名およびリソーセス識別子等が記憶されている。
【００７５】
一方、メッセージキューを利用するプログラム５３のソースコード５３ａには、仮想リソーセス名として「通過ポイント８１」と記述されている。また、仮想ファイルアクセスプログラム３は、仮想リソーセス名として「通過ポイント８１」を渡されたとき、仮想ファイル２Ｄを取得する。
【００７６】
仮想ファイル２Ｄには、「通過ポイント８１」と完全に一致する仮想リソーセス名は記憶されていないが、「通過ポイント８１Ａ」と「通過ポイント８１Ａ」および「通過ポイント８１Ｂ」とは、部分的に一致している。言い換えれば、「通過ポイント８１Ａ」と「通過ポイント８１Ｂ」とは、パラメータとして渡された仮想リソーセス名である「通過ポイント８１」を完全に含んでいる。
この場合、仮想ファイルアクセスプログラム３は、「通過ポイント８１Ａ」と「通過ポイント８１Ｂ」とに関連付けられるリソーセス識別子を取得し、当該リソーセス識別子に対応するリソーセスを取得する。本実施形態では、リソーセス識別子（「１１１１」および「１１１２」）に対応するキュー２４ａ・２４ｂに接続（アクセス）した後で、プログラム５３にリソーセス識別子を渡す。
【００７７】
リソーセス識別子を仮想ファイルアクセスプログラム３より渡されたとき、プログラム５３は、接続されているキュー２４ａ・２４ｂにメッセージを送信する（あるいはメッセージを受信する）。そして、仮想ファイルアクセスプログラム３にてキュー２４ａ・２４ｂへのアクセスを終了し、仮想ファイル２Ｄをクローズする。
プログラム５３では、「通過ポイント８１Ａ」と「通過ポイント８１Ｂ」とのリソーセス識別子に対応するキュー２４ａ・２４ｂを一括して処理する（例えば、繰り返し処理する）。
【００７８】
次に、通過ポイント８１Ｃの追加に伴って、クライアント端末６０Ｃが追加された場合の対応について説明する。
なお、クライアント端末６０Ｃが追加された場合、プログラム５３は、クライアント端末６０Ｃに対してもメッセージを送信（あるいは受信）する必要があるものとする。
【００７９】
このような場合において、図７（ｂ）に示すように、仮想ファイル２に仮想リソーセス名「通過ポイント８１Ｃ」と、仮想リソーセス名に関連付けられるリソーセス識別子およびパラメータ等を追加する。
これにより、仮想ファイルアクセスプログラム３は、仮想リソーセス名として「通過ポイント８１」を渡されたとき、仮想ファイル２Ｄより「通過ポイント８１Ａ」と「通過ポイント８１Ｂ」と「通過ポイント８１Ｃ」とに設定されるリソーセス識別子を取得する。
【００８０】
ここで、仮想ファイルアクセスプログラム３のソースコードには、前述のように、リソーセス識別子が直接記述されている部分はない。つまり、仮想ファイルアクセスプログラム３に変更する部分はない。
また、プログラム５３のソースコード５３ａには、仮想リソース名（「通過ポイント８１」）は直接記述されているが、リソーセス識別子は直接記述されていない。つまり、プログラム５３のソースコード５３ａを変更する必要はない。
【００８１】
つまり、アプリケーションソフトウェア５０（プログラム５３）がリソーセスを利用する前に、仮想ファイル２を変更するだけで、リソーセス識別子の変更に対応できる。
【００８２】
これによれば、リソーセス識別子が変更になった場合において、プログラム５１・５２・５３のソースコード５１ａ・５２ａ・５３ａの変更に伴うコンパイルを行う必要がない。従って、従来技術にあるような、車両生産指示システムが停止している間（生産工場が非稼動となる日、アプリケーションソフトウェア５０が非稼動となる時間帯等）に行う必要がなくなる。つまり、リソーセス識別子の変更等への対応性を向上できる。
【００８３】
仮に２４時間稼動している生産工場に車両生産指示システム１０を導入した場合でも、リソーセス識別子の変更に伴ってアプリケーションソフトウェア５０のプログラム５１・５２・５３のソースコード５１ａ・５２ａ・５３ａのコンパイルを行う必要がないため、生産工場の稼動を停止させることなくリソーセス識別子の変更に対応できる。つまり、変更を行う時間帯等に限定されることなく、柔軟に対応できる。
【００８４】
また、車両生産指示システム１０を新たに生産工場に導入する場合には、導入する生産工場の仕様（設定）に沿って適宜仮想ファイル２を書き換えるだけで、リソーセス識別子の変更を行うことができる。
つまり、車両生産指示システム１０を新たに工場に導入する際に要するリソーセス識別子を変更する作業を簡略化できるとともに、リソーセス識別子の変更に伴うプログラム５１・５２・５３のソースコード５１ａ・５２ａ・５３ａのコンパイルを行う必要がない。このため、リソーセス識別子の変更に要する工数を低減できる。
【００８５】
なお、本実施形態の仮想ファイル２は、記憶装置２２のＨＤＤ２３に記憶されるデータとしたが、これに限定されるものでない。すなわち、仮想ファイル２は、予めデータベースに仮想ファイル２に対応するテーブルを作成しておき、当該テーブルに仮想リソーセス名等を格納しても構わない。また、仮想ファイル２を記憶装置２２のメモリ２４に記憶しても構わない。
【００８６】
仮想ファイル２をデータベースのテーブルに記憶した場合、仮想ファイルアクセスプログラム３では、仮想リソーセス名等を格納しているテーブルに、仮想リソーセス名を検索キーにして問い合わせることで、リソーセス識別子およびパラメータ等を取得できる。
【００８７】
また、本実施形態の仮想ファイル２には、仮想リソーセス名に関連付けられたパラメータを格納したが、これに限定されるものでない。すなわち、仮想ファイル２は、仮想リソーセス名とリソーセス識別子とだけを関連付けて記憶しても構わない。
【００８８】
この場合、仮想ファイルアクセスプログラム３では、取得したリソーセス識別子（あるいは仮想リソーセス名等）に基づいて、リソーセスの種類を判断する。そして、判断したリソーセスの種類に対応するリソーセス利用プログラム３１を使用する。
【００８９】
このように、リソーセス仮想化方法は、各リソーセスに付与されるリソーセス識別子と、各リソーセス識別子の仮の名称として設定される仮想リソーセス名とを相互に関連付けて、ハードウェア２０の記憶装置２２に記憶させる仮想リソーセス記憶工程Ｓ１１０と、仮想リソーセス名を用いて、仮想リソーセス記憶工程Ｓ１１０で仮想リソーセス名に関連付けたリソーセス識別子をハードウェア２０の記憶装置２２から取得する実リソーセス取得工程Ｓ１４０〜Ｓ１６０と、を含む。
また、仮想リソーセス記憶工程Ｓ１１０は、アプリケーションソフトウェア５０がリソーセスを利用する前に行われる。そして、実リソーセス取得工程Ｓ１４０〜Ｓ１６０は、アプリケーションソフトウェア５０がリソーセスを利用する際に、利用対象となるリソーセスのリソーセス識別子に対応する仮想リソーセス名を用いて、アプリケーションソフトウェア５０にて行われる。
【００９０】
リソーセス仮想化システム１は、各リソーセスに付与されるリソーセス識別子と、リソーセス識別子の仮の名称として設定される仮想リソーセス名とが相互に関連付けられて記憶される仮想リソーセス記憶手段としての仮想ファイル２と、アプリケーションソフトウェア５０から仮想リソーセス名を取得したときに、取得した仮想リソーセス名を用いて、仮想リソーセス名に関連付けられて仮想ファイル２に記憶されているリソーセス識別子を、仮想ファイル２から取得して、取得したリソーセス識別子をアプリケーションソフトウェア５０に渡すリソーセス取得手段としての仮想ファイルアクセスプログラム３と、を具備する。
また、仮想ファイル２は、アプリケーションソフトウェア５０がリソーセスを利用する前に、リソーセス識別子と仮想リソーセス名とを記憶する。そして、仮想ファイルアクセスプログラム３は、アプリケーションソフトウェア５０がリソーセスを利用する際に、利用対象となるリソーセスのリソーセス識別子に対応する仮想リソーセス名を用いて、仮想ファイル２からリソーセス識別子を取得する。
【００９１】
このように構成することで、仮想ファイルアクセスプログラム３およびアプリケーションソフトウェア５０のプログラム５１・５２・５３のソースコード５１ａ・５２ａ・５３ａからリソーセス識別子を探して変更する必要がないため、リソーセス識別子の変更に要する工数を低減できる。
また、アプリケーションソフトウェア５０のプログラム５１・５２・５３のソースコード５１ａ・５２ａ・５３ａのコンパイルを行う必要がないため、車両生産指示システム１０が導入されている生産工場の稼動中に、リソーセス識別子を変更できる。つまり、アプリケーションソフトウェア５０の稼動中にリソーセス識別子を変更できる。
さらに、本実施形態のように、リソーセスの設定を仮想ファイル２で全て管理するためプログラム５１・５２・５３のソースコード５１ａ・５２ａ・５３の読み易さが向上する。つまり、関連する記述を並べて仮想ファイル２に記述するため、リソーセス識別子等の変更ミス等に気付き易くなるため、より正確にリソーセス識別子を変更できる。
【００９２】
仮想リソーセス記憶工程Ｓ１１０では、仮想リソーセス名に対応するパラメータを、仮想リソーセス名に対してさらに関連付けてハードウェア２０の記憶装置２２に記憶させる。また、実リソーセス取得工程Ｓ１４０〜Ｓ１６０では、仮想リソーセス名を用いて、仮想リソーセス記憶工程Ｓ１１０で仮想リソーセス名に関連付けたパラメータをハードウェア２０の記憶装置２２からさらに取得する。
【００９３】
仮想ファイル２は、仮想リソーセス名に対応するパラメータが、仮想リソーセス名に対してさらに関連付けられて記憶される。また、仮想ファイルアクセスプログラム３は、アプリケーションソフトウェア５０から仮想リソーセス名を取得したときに、取得した仮想リソーセス名を用いて、仮想リソーセス名に関連付けられたパラメータを、仮想ファイル２からさらに取得する。
【００９４】
このように構成することで、リソーセスのパラメータが変更となった場合にも、仮想ファイル２を変更するだけで、リソーセス識別子に対応するパラメータを変更できる。
【００９５】
なお、仮想ファイル２において、同じ名称の仮想リソーセス名を設定しても構わない。例えば、図７（ｃ）に示すように、仮想ファイル２Ｄの仮想リソーセス名に「通過ポイント８１」を三つ設定しても構わない。この場合、「通過ポイント８１」で設定されるリソーセス識別子は、一つ目にクライアント端末６０Ａに関する情報を記述し、二つ目にクライアント端末６０Ｂに関する情報を記述し、三つ目にクライアント端末６０Ｃに関する情報を記述する。
【００９６】
これにより、仮想ファイルアクセスプログラム３は、仮想リソーセス名として「通過ポイント」が渡されたとき、当該仮想リソーセス名と完全に一致する仮想ファイル２Ｄの三つの「通過ポイント８１」から、リソーセス識別子を取得できる。
【００９７】
本実施形態のリソーセス仮想化システム１では、リソーセスとしてファイル、メッセージキュー、共有メモリ、およびセマフォを仮想化したが、これに限定されるものでない。すなわち、仮想化するリソーセスの種類は、アプリケーションソフトウェア５０にて利用するリソーセスの種類に応じて適宜変更しても構わない。例えば、リソーセスとしてファイルだけを利用するアプリケーションソフトウェア５０でリソーセス仮想化システム１を用いる場合には、ファイルだけを利用するように仮想ファイルアクセスプログラム３を構成しても構わない。
【００９８】
本実施形態では、リソーセスがファイルの場合、ファイルパス（リソーセス識別子）は、ファイルが格納されるディレクトリを階層順に全て記述する絶対パスとしたが、これに限定されるものでない。例えば、仮想ファイルアクセスプログラム３にて基準となるファイルパスを設定する場合、ファイルパス（リソーセス識別子）は、当該設定したファイルパスからの道筋を記述する相対パスであっても構わない。
【符号の説明】
【００９９】
１    リソーセス仮想化システム
２    仮想ファイル（リソーセス記憶手段）
３    仮想ファイルアクセスプログラム（リソーセス取得手段）
１０  車両生産指示システム
２０  ハードウェア
２２  記憶装置
３０  ＯＳ（オペレーティングシステム）
５０  アプリケーションソフトウェア
６０  クライアント端末
８１Ａ・８１Ｂ・８１Ｃ  通過ポイント
【図１】
2011186807.tif 000003
【図２】
2011186807.tif 000004
【図３】
2011186807.tif 000005
【図４】
2011186807.tif 000006
【図５】
2011186807.tif 000007
【図６】
2011186807.tif 000008
【図７】
2011186807.tif 000009
【図８】
2011186807.tif 000010
【図９】
2011186807.tif 000011