(57)【要約】【課題】  環境の違う場所で動作している複数の業務システムにおいて、情報資源の共有にファイルシステムを利用している際に、その情報資源の排他制御方法を提供することを目的とする。【解決手段】  ＯＳやプログラム開発環境が違う場所で動作する複数の業務システム間において、情報資源の共有にファイルを利用し、それぞれが当該共有ファイルに対してファイル内に記載された情報資源を更新可能な処理システムにおいて、共有ファイル内の情報資源が更新処理中であるか更新可能状態であるかをファイルの拡張子を利用して管理する。予め共有ファイルが更新可能状態であることを示す拡張子と各業務システム毎にその業務システムによる更新処理中状態であることを示す拡張子とをそれぞれ定めておき、各業務システムが共有ファイルを更新しようとする場合には、その共有ファイルの拡張子が更新可能状態であることを確認する。【選択図】  図２
2005071158.tif 000002
【特許請求の範囲】
【請求項１】
同一コンピュータ上またはネットワークで接続されているコンピュータ上で動作している複数の業務システム間で情報資源の共有にファイルを利用し、各業務システムのそれぞれが共有ファイル内に記載された情報資源を更新可能なシステムにおけるファイル排他制御方法であって、
共有ファイル内の情報資源が更新処理中であるか、更新可能状態であるかを、当該共有ファイルの拡張子を用いて管理することを特徴とするファイル排他制御方法。
【請求項２】
同一コンピュータ上またはネットワークで接続されているコンピュータ上で動作している複数の業務システム間で情報資源の共有にファイルを利用し、各業務システムのそれぞれが共有ファイル内に記載された情報資源を更新可能なシステムにおけるファイル排他制御方法であって、
予め、共有ファイルが更新可能状態であることを示す拡張子と、各業務システム毎にその業務システムによる更新処理中状態であることを示す拡張子とを、それぞれ定めておき、
各業務システムが共有ファイルにアクセスし該共有ファイル内に記載された情報資源を更新する際には、所定のプログラムを実行することにより、
（ａ）アクセスしようとする共有ファイルの拡張子が更新可能状態であることを示す拡張子であることをチェックするステップと、
（ｂ）更新可能状態であることを示す拡張子であったとき、その拡張子を、自業務システムによる更新処理中状態であることを示す拡張子に、変更するステップと、
（ｃ）前記拡張子の変更の後、該共有ファイル内に記載された情報資源を更新するステップと、
（ｄ）前記情報資源の更新の後、該共有ファイルの拡張子を更新可能状態であることを示す拡張子に戻すステップと
を実行することを特徴とするファイル排他制御方法。
【請求項３】
請求項１または２に記載のファイル排他制御方法において、
前記共有ファイルが更新処理中状態であったとき、所定の待ち時間だけウエイトし、その後、再び該共有ファイルが更新可能状態であるか否かをチェックするステップと、
所定のタイムアウト時間が経過した後も、前記共有ファイルが更新処理中状態であったときは、タイムアウトしたことを示す情報を上位プログラムに返して共有ファイルのアクセス処理を終了するステップと
をさらに備えたことを特徴とするファイル排他制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の業務システムが情報資源の共有を行なう際に、共有されたファイルを排他制御する方法に関する。
【背景技術】
【０００２】
従来、ファイルを利用した排他制御方法として、例えば、特許文献１に記載の技術が知られている。これは、レコードの概念を持たないファイルを複数のプログラムが同時にアクセスすることを許すシステムにおいて、ファイル内の範囲指定によるデータの排他制御機構を実現することにより、レコードの概念を持たないファイルに対してデータの整合性をとるものである。
【０００３】
一方、オペレーティングシステム（ＯＳ）は、通常、ファイルに対する排他制御の機能を備えており、あるタスクがアクセスしているファイルに別のタスクがアクセスできないようにする管理などを行なっている。
【特許文献１】特開平６−２３１０２７号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記特許文献１に記載の技術は、複数のプログラムが１つのファイルにアクセス可能なシステムにおいて当該ファイル内の範囲指定によってデータの排他制御構造を実現しているものの、ＯＳやアプリケーションの開発言語などの実行環境が違う別々のシステム上で動作する業務システム間においては、共有ファイルの排他制御構造の実現が難しいという問題がある。上述したように、ＯＳの汎用的な機能として排他制御が実現されているが、この排他制御機能は当該ＯＳの下で実現されるものであるので、実行環境が異なる複数のシステム間でファイルを共有したい場合には実現が難しい。例えば、異なるＯＳの下で複数の業務プログラムが１つのファイルを共有したい場合には、それらのＯＳ間で排他制御を行なう仕組みを新たに作らなければならない。
【０００５】
本発明の目的は、ＯＳやアプリケーション開発環境が違う下で動作する複数の業務システム間で情報資源の共有にファイルを利用しており、それぞれが当該ファイルに対してファイル内に記載された情報資源の更新を実行することができる処理システムなどにおいて、上記共有ファイルの側で、共有ファイル内の情報資源が更新処理中であるか、更新可能状態であるかを管理することにより、上記複数の業務システムがお互いに排他的に共有ファイルを処理することができる簡易な仕組みのファイル排他制御方法を提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は、オペレーティングシステムやプログラム開発環境が違う場所で動作する複数の業務システム間において、情報資源の共有にファイルを利用しており、それぞれが当該共有ファイルに対してファイル内に記載された情報資源の更新を実行することができる処理システムにおいて、共有ファイル内の情報資源が更新処理中であるか、更新可能状態であるかを、共有ファイルの拡張子を利用して管理することを特徴とする。
【０００７】
すなわち、予め、共有ファイルが更新可能状態であることを示す拡張子と、各業務システム毎にその業務システムによる更新処理中状態であることを示す拡張子とを、それぞれ定めておき、各業務システムが共有ファイルを更新しようとする場合には、その共有ファイルの拡張子が更新可能状態であることを示す拡張子であることを確認する。更新可能状態であれば、その共有ファイルの拡張子を、自業務システムによる更新処理中状態であることを示す拡張子に変更し、その後、その共有ファイルを更新する。更新が終わったら、拡張子を更新可能状態に戻す。拡張子のチェックで、他業務システムによる更新処理中状態であった場合は、所定時間ウエイトし、その後再び拡張子のチェックを行なう。
【０００８】
なお、本発明の適用対象である複数の業務システムを連携したシステムとしては、例えば第１のＯＳの元でＰＯＳ会計システムが稼働し、別の第２のＯＳの元で会計システムが稼働し、それらが連携して動作するようなシステムが例示される。各ＯＳの元でファイルを共有するためにファイルインターフェイスしか存在しない場合などに適用して好適である。
【発明の効果】
【０００９】
本発明によれば、共有ファイルの拡張子を利用した簡単な制御により、共有ファイル内の情報資源が更新処理中であるか、更新可能状態であるかを管理することができ、かつ、複数の業務システムが排他的にファイル内の更新処理を行なうことができる。また、情報資源の共有に利用する共有ファイルが複数存在する場合でも、異なる共有ファイルの保存先や異なるファイル名にすることで対応が可能となるため、複数業務システム間の連携や複数業務システム内で扱う共有ファイルの増加に対しても極めて容易に対処することができる。さらに、ファイルを共有する方法自体は各ＯＳやハードウェアなどが提供する様々なファイル共有サービスをそのまま利用でき、ＯＳの違いやハードウェアの違いを業務システム側で考慮する必要がなく、共有ファイルにアクセスできる環境の整備のみで本発明が利用できるため、非常に移植性にすぐれている。
【発明を実施するための最良の形態】
【００１０】
以下、本発明を実施する場合の一形態例を図面を参照して具体的に説明する。
【００１１】
図１は、本発明の実施の一形態例であるファイル排他制御方法を実現するシステムのブロック図である。図１において、１は複数の業務システム（プログラム）からアクセス可能な共有ファイルであり、複数存在する場合もある。
【００１２】
「プログラムA」と記した矩形内は、業務プログラムであるプログラムAが実行されているコンピュータシステムの概略構成を示す。このコンピュータシステムは、中央処理装置１０６、メモリ１０７、ディスプレイ装置１０８、キー入力装置１０９、及び外部インターフェース入出力制御装置１１０を備えている。中央処理装置１０６は、システム全体の動作を制御する処理装置であり、特にメモリ１０７上の各種のプログラムを実行する。メモリ１０７は、各種のプログラムをロードして実行する記憶手段である。メモリ１０７には、業務プログラムであるプログラムAがロードされて実行されているものとし（不図示）、さらに該業務プログラムAに組み込まれているファイルアクセス機構１０１、状態チェック部１０２、排他制御部１０３、更新部１０４、及び排他解除制御部１０５の各プログラムがロードされ必要に応じて実行されるようになっている。ディスプレイ装置１０８は、キャラクタ及びグラフィック画面を有し、ＣＰＵ１０６の指示に応じて各種データを表示する。キー入力装置１０９は、ユーザからの入力を受け付けるキーボードなどの入力装置である。外部インターフェース入出力制御装置１１０は、ファイルの入出力処理を行なうもので更新部１０４のサブルーチンとして機能する。
【００１３】
ファイルアクセス機構１０１は共有ファイル１に対してデータアクセスを行なうプログラムであり、ここでは所定の処理を実行する業務プログラムAの本体からの要求に従い共有ファイル１内のデータを更新する機構として示している。状態チェック部１０２は、共有ファイル１が更新可能状態になっているか否かのチェックを行なう。ここでは、共有ファイル１の拡張子を参照して、更新対象のファイルが他のプログラムによって更新中か否かのチェックを行なう方式を採るものである。排他制御部１０３は、共有ファイル１に対して他のプログラムからのアクセスを実行できないように制御する。ここでは、共有ファイル１の拡張子を更新可能状態から更新中状態へ変更することにより排他制御する方式を採っている。更新部１０４は、共有ファイル１のファイル内のデータの参照や更新を行なう部分であり、ここでは共有ファイル１内のデータの更新を行なう。排他解除制御部１０５は、共有ファイル１に対して他のプログラムからのアクセスが可能となるように制御する。なお、共有ファイル１に対しては、プログラムAと同様のロジックを有する他の業務プログラムB，C，D，…などがアクセスしてその内容を更新できる。
【００１４】
図２は、図１のシステムにおいてプログラムAとプログラムBが１つの共有ファイル１にアクセスする際の動作例を説明するための図である。１は複数の業務システム（プログラム）からアクセス可能な共有ファイルを示す。２０１は、複数ある業務システム（プログラム）の中の一つであるプログラムAを示し、２０２は、プログラムAと共有ファイル１の情報資源を排他的に共有するプログラムBを示す。図中、(1)、(2)、(3)…はそれぞれのプログラムの処理概要を示し、それに伴い共有ファイル１の拡張子が時系列で変更される状態を示す。ファイル拡張子が拡張子Xのときは、当該ファイルに対してプログラムAが更新処理中状態であることを示す。また、ファイル拡張子が拡張子Yのときは、当該ファイルに対してプログラムBが更新処理中状態であることを示す。さらに、拡張子Zはどのプログラムも当該ファイルの更新を行なっていない中立的な状態を示す。このように、中立状態を示す拡張子や、各プログラムそれぞれの更新処理中状態を示す各拡張子は、予め決めてある。各プログラムA，B，C，…は、少なくとも中立状態を示す拡張子と自プログラムの更新処理中状態を示す拡張子は認識している。なお、図２の(1)、(2)、…の処理の流れについては後に詳しく説明する。
【００１５】
図３は、図１のプログラムAのシステムから共有ファイルへのデータ更新処理を行なう際の処理手順を示すフローチャートである。プログラムB，C，…もそれぞれ同様の処理手順で共有ファイルにアクセスする。
【００１６】
図３に示す３０１は処理の開始を示す。ステップ３０２で、ファイルアクセス機構１０１がアクセスすべきファイル１を指定する。ここでファイル１の位置は、絶対位置もしくは相対位置で指定する。ファイル１がネットワーク上などで共有されたファイルである場合は、URI（Uniform Resource Identifier）を用いて絶対位置で指定する。ステップ３０３では、状態チェック部１０２により当該ファイル１が更新可能か否かのチェックを行なう。これは、指定されたファイルがすでに他のプログラムで更新処理中状態となっているか否かのチェックである。具体的には、当該ファイル１の拡張子が中立状態を示す拡張子である場合は更新可能と判断し、他のプログラムの更新処理中状態を示す拡張子である場合は更新不可と判断する。
【００１７】
更新可能な場合は、ステップ３０４で、排他制御部１０３により当該ファイル１を他のプログラムから更新ができない状態へ変更する。具体的には、当該ファイル１の拡張子を、自プログラムの更新処理中状態を示す拡張子に変更する。次に、ステップ３０５では、更新部１０４により当該ファイル１内の情報資源（データ）を更新する。更新の後、ステップ３０６で、排他解除制御部１０５により当該ファイル１を他のプログラムからの更新ができる状態へ変更する。具体的には、当該ファイル１の拡張子を中立状態を示す拡張子に戻す。ステップ３０７は、ファイル１の状態が更新不可状態の場合のウェイトとタイムアウトを行なうステップであり、状態チェック部１０２で行なわれる。３０８は処理の終了を示す。
【００１８】
次に、特に図２を参照して、図１のシステムで１つの共有ファイルにアクセスする動作例を説明する。ここではプログラムAとプログラムBが１つの共有ファイル１にアクセスする場合について説明する。プログラムA２０１及びプログラムB２０２のそれぞれで図３の処理が実行されているものである。
【００１９】
複数の業務システムにおいてそれぞれ動作するプログラムにより情報資源の共有にファイル１を使用し、当該ファイル１に対して当該ファイル内に記載されたデータの更新を行なう場合、ファイル内のデータの整合性をとるためには、ファイル毎にアクセスを管理し、ファイル単位での排他制御を行なう。本実施形態で特徴となるのは、排他制御のためのファイルを識別する手段として、ファイル１の拡張子で管理することである。
【００２０】
図２において、プログラムA２０１のファイルアクセス機構１０１からファイル１内のデータ更新の指定があると（図３のステップ３０２）、状態チェック部１０２は、指定されたファイル１が別のプログラムで更新処理中であるか否かをチェックする（図３のステップ３０３、図２の(1)状態チェック）。ここではファイル１の拡張子は中立状態を示すZであるので更新可能状態と判断されて、排他制御部１０３に制御が渡される。排他制御部１０３は、当該ファイル１の拡張子を自プログラムAの更新中状態を示すXに変更し（図３のステップ３０４、図２の(2)排他制御）、次に更新部１０４が当該ファイル１の更新を行なう（図３のステップ３０５、図２の(4)データ書き込み）。ファイル１内の更新が完了したならば、排他解除制御部１０５へ制御が渡される。排他解除制御部１０５は、当該ファイル１の拡張子を更新可能状態すなわち中立状態を示すZへ変更する（図２の(6)排他制御（解除））。以上でプログラムAのファイル１への更新が終了する。
【００２１】
一方、プログラムAとは独立にプログラムBも共有ファイル１に更新をかける。いまプログラムAが(2)排他制御を行なってファイル１の拡張子がXであるときに、プログラムBの状態チェック部１０２が当該ファイル１が別のプログラムで更新処理中であるか否かをチェックしたとする（図３のステップ３０３、図２の(3)状態チェック）。このとき拡張子から他のプログラムで更新処理中のため更新不可と判断され（図２の２０３）、ウェイトとタイムアウト処理（図３のステップ３０７）に制御が渡される。所定時間のウェイトを経たあと指定されたタイムアウト時間内であれば、再び状態チェック部１０２による状態チェック（図２の(5)）が行なわれる。タイムアウト時間を過ぎている場合は、終了３０８へ制御が渡され、プログラムはその旨を処理終了コードとして受け取る。本例では、(7)状態チェックで拡張子が中立状態のZであることを検出するので、以下プログラムBでも、(8)排他制御、(9)データ書き込み、及び(10)排他制御（解除）のように処理が行なわれる。ここでプログラムBの更新中状態を示す拡張子はYであるので、ファイル１の拡張子はZからYに変更され、更新の後、再びZに戻されている。
【００２２】
上記のようにファイルの拡張子を変更することによって、複数業務システム（プログラム）での排他制御が可能となり、ファイル内の情報資源（データ）の整合性が取れる。
【図面の簡単な説明】
【００２３】
【図１】本発明の一実施の形態の概略構成を示すブロック図
【図２】上記実施例おける動作例を示す図
【図３】上記実施例における共有ファイルへのデータ更新処理手順を示すフローチャートを示す図
【符号の説明】
【００２４】
１…ファイル、１０１…ファイルアクセス機構（プログラム）、１０２…状態チェック部、１０３…排他制御部、１０４…更新部、１０５…排他解除制御部、１０６…中央制御装置、１０７…メモリ、１０８…ディスプレイ装置、１０９…キー入力装置、１１０…外部インターフェース入出力制御装置、２０１…プログラムA、２０２…プログラムB、２０３…更新不可状態、３０１…処理の開始、３０２…アクセスファイル指定、３０３…状態チェック、３０４…排他制御処理、３０５…ファイル更新処理、３０６…排他解除制御処理、３０７…ウェイトとタイムアウト。
【図１】
2005071158.tif 000003
【図２】
2005071158.tif 000004
【図３】
2005071158.tif 000005