(57)【要約】【課題】ＣＡＤが更新されて設計データの様式が新しくなっても、サーバもクライアントも改変することなく、その新しい様式の設計データをサーバの既存ＡＰＩで処理することができるクライアントサーバ型ＣＡＤデータ管理システムを提供する。【解決手段】このシステム１０は、サーバ１２とクライアント１４との間にプロキシ１６を介在させ、サーバ１２のＡＰＩ１〜ＡＰＩｎをフックするアドインＡＩ１〜ＡＩｍをプロキシ１６に追加し、アドインＡＩ１〜ＡＩｍがＡＰＩ１〜ＡＰＩｎを呼び出すと、引数を変更したり、戻り値を変更したりする。アドインＡＩ１〜ＡＩｍがフックするＡＰＩ１〜ＡＰＩｎは、ＡＰＩ・アドインマップ２６に登録される。【選択図】図１
2010067156.tif 000002
【特許請求の範囲】
【請求項１】
サーバと、クライアントと、前記サーバ及び前記クライアント間に接続されるプロキシとを備えるクライアントサーバシステムであって、
前記サーバは、複数のＡＰＩを含み、
前記クライアントは、前記複数のＡＰＩの中から所望のＡＰＩを呼び出すＡＰＩ呼出手段を含み、
前記プロキシは、
前記複数のＡＰＩに対応し、各々が、対応するＡＰＩをフックし、かつ、対応するＡＰＩを呼び出して引数及び／又は戻り値を変更する複数のアドインと、
前記複数のアドインの中から前記ＡＰＩ呼出手段により呼び出されたＡＰＩに対応するアドインを特定するアドイン特定手段と、
前記アドイン特定手段により特定されたアドインを呼び出すアドイン呼出手段とを含む、クライアントサーバシステム。
【請求項２】
請求項１に記載のクライアントサーバシステムであって、
前記プロキシはさらに、
前記ＡＰＩをフックしているアドインを登録したＡＰＩ・アドインマップと、
前記ＡＰＩ呼出手段により呼び出されたＡＰＩをフックしているアドインが前記ＡＰＩ・アドインマップに登録されているか否かを判断する登録判断手段と、
前記登録判断手段による判断の結果、当該アドインが登録されていない場合、前記ＡＰＩ呼出手段により呼び出されたＡＰＩを呼び出すＡＰＩ呼出手段とを含み、
前記登録判断手段による判断の結果、当該アドインが登録されている場合、前記アドイン特定手段は当該アドインを特定する、クライアントサーバシステム。
【請求項３】
請求項２に記載のクライアントサーバシステムであって、
前記プロキシはさらに、
前記アドインがフック可能なＡＰＩを前記アドインに問い合わせて前記ＡＰＩ・アドインマップを作成するマップ作成手段を含む、クライアントサーバシステム。
【請求項４】
サーバ及びクライアント間に接続されるプロキシであって、
前記サーバに搭載される複数のＡＰＩに対応し、各々が、対応するＡＰＩをフックし、かつ、対応するＡＰＩを呼び出して引数及び／又は戻り値を変更する複数のアドインと、
前記複数のアドインの中から前記クライアントから呼び出されたＡＰＩに対応するアドインを特定するアドイン特定手段と、
前記アドイン特定手段により特定されたアドインを呼び出すアドイン呼出手段とを備える、プロキシ。
【請求項５】
請求項４に記載のプロキシであってさらに、
前記ＡＰＩをフックしているアドインを登録したＡＰＩ・アドインマップと、
前記ＡＰＩ呼出手段により呼び出されたＡＰＩをフックしているアドインが前記ＡＰＩ・アドインマップに登録されているか否かを判断する登録判断手段と、
前記登録判断手段による判断の結果、当該アドインが登録されていない場合、前記ＡＰＩ呼出手段により呼び出されたＡＰＩを呼び出すＡＰＩ呼出手段とを備え、
前記登録判断手段による判断の結果、当該アドインが登録されている場合、前記アドイン特定手段は当該アドインを特定する、プロキシ。
【請求項６】
請求項５に記載のプロキシであってさらに、
前記アドインが可能なＡＰＩを前記アドインに問い合わせて前記ＡＰＩ・アドインマップを作成するマップ作成手段を備える、プロキシ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアントサーバシステムに関し、さらに詳しくは、ＣＡＤ(Computer Aided Design)用の設計データを管理するクライアントサーバ型ＣＡＤデータ管理システムに関する。
【背景技術】
【０００２】
ＣＡＤ（アプリケーションプログラム）で作成された設計データの管理には、ＣＡＤとは別に、専用のデータ管理プログラムが用いられる。このデータ管理プログラムは、作成された設計データを保存したり、検索したり、参照したり、再利用したりする機能を有し、チームで１つの製品を設計するためには必須のソフトウェア（以下、「管理ソフト」という。）である。この管理ソフトはＣＡＤベンダから提供されているが、ＣＡＤベンダ以外のベンダからも提供されている。
【０００３】
データ管理プログラムを用いたクライアントサーバ型ＣＡＤデータ管理システムは、設計者がＣＡＤを操作して設計データを作成するクライアントコンピュータ（以下、単に「クライアント」という。）と、設計データを一元的に管理するサーバコンピュータ（以下、単に「サーバ」という。）とを備える。このシステムにおいては、サーバが各種ＡＰＩ(Application Programming Interface)を備え、クライアントがその中から所望のＡＰＩを呼び出す。したがって、ＣＡＤが更新されれば、これらのＡＰＩも更新されなければならない。
【０００４】
しかしながら、データ管理プログラムの複雑化に伴い、ＣＡＤベンダによる更新の対応が遅れているのが現状である。また、ＡＰＩを追加できるように設計されてないデータ管理プログラムの場合、ＣＡＤベンダしかＡＰＩを追加することができない。したがって、ＣＡＤベンダが対応しなければ、管理ソフトベンダはＡＰＩを追加することができない。また、ＡＰＩを追加できるように設計されているデータ管理プログラムの場合であっても、ＡＰＩを追加すると、ＣＡＤやデータ管理プログラムが更新されるたびに、追加したＡＰＩのメンテナンスをしなければならない。また、ＡＰＩ自体を改変することは更新されたＣＡＤを熟知しているＣＡＤベンダにとっては容易であるが、更新されたＣＡＤを熟知していない管理ソフトベンダにとっては困難である。
【０００５】
なお、特開２０００−２２２３２４号公報（特許文献１）には、テキスト、イメージ、プログラム、ハイパーリンク、表、アプレットなど、ＨＴＭＬで記述できる全ての種類のオブジェクトを追加できるウェブページカスタマイズシステムが開示されている。このシステムは、ユーザのコンピュータから、カスタマイズしたいページをプロキシサーバを介して要求し、プロキシサーバが、要求されたページにカスタマイズのためのプログラムを埋め込み、コンピュータのブラウザにより、該プログラムの埋め込まれたページを表示し、該プログラムが、カスタマイズ操作のための制御パネルを表示し、制御パネルを用いたユーザのカスタマイズ操作に応じて、ページをカスタマイズするように構成されている。しかしながら、同公報には、後述する本発明の課題及びその解決手段は何ら開示も示唆もされていない。
【特許文献１】特開２０００−２２２３２４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、あるアプリケーションプログラムが更新され、そのプログラムで作成されるデータの様式が新しくなっても、サーバもクライアントも改変することなく、その新しい様式のデータをサーバの既存ＡＰＩで処理することができるクライアントサーバシステムを提供することである。
【課題を解決するための手段及び発明の効果】
【０００７】
本発明によるクライアントサーバシステムは、サーバと、クライアントと、サーバ及びクライアント間に接続されるプロキシコンピュータ（以下、単に「プロキシ」という。）とを備える。サーバは、複数のＡＰＩを含む。クライアントは、複数のＡＰＩの中から所望のＡＰＩを呼び出すＡＰＩ呼出手段を含む。プロキシは、複数のアドインと、アドイン特定手段と、アドイン呼出手段とを含む。複数のアドインは、複数のＡＰＩに対応する。各アドインは、対応するＡＰＩをフックし、かつ、対応するＡＰＩを呼び出して引数及び／又は戻り値を変更する。アドイン特定手段は、複数のアドインの中からＡＰＩ呼出手段により呼び出されたＡＰＩに対応するアドインを特定する。アドイン呼出手段は、アドイン特定手段により特定されたアドインを呼び出す。
【０００８】
本発明によれば、サーバ及びクライアント間にプロキシを接続し、サーバのＡＰＩをフックするアドインをプロキシに追加し、アドインがＡＰＩを呼び出して引数及び／又は戻り値を変更するようにしているため、処理対象となるデータの様式が更新されても、クライアント及びサーバを改変することなく、その新しい様式のデータを既存のＡＰＩで処理することができる。
【０００９】
好ましくは、プロキシはさらに、ＡＰＩ・アドインマップと、登録判断手段と、ＡＰＩ呼出手段とを含む。ＡＰＩ・アドインマップには、ＡＰＩをフックしているアドインが登録される。登録判断手段は、ＡＰＩ呼出手段により呼び出されたＡＰＩをフックしているアドインがＡＰＩ・アドインマップに登録されているか否かを判断する。ＡＰＩ呼出手段は、登録判断手段による判断の結果、当該アドインが登録されていない場合、ＡＰＩ呼出手段により呼び出されたＡＰＩを呼び出す。一方、登録判断手段による判断の結果、当該アドインが登録されている場合、アドイン特定手段は当該アドインを特定する。
【００１０】
この場合、アドインがサーバのＡＰＩをフックしていれば、プロキシがアドインを呼び出すが、アドインがサーバのＡＰＩをフックしていなければ、クライアントがプロキシをスルーしてサーバのＡＰＩを呼び出す。
【００１１】
好ましくは、プロキシはさらに、アドインがフック可能なＡＰＩをアドインに問い合わせてＡＰＩ・アドインマップを作成するマップ作成手段を含む。
【００１２】
この場合、ＡＰＩ・アドインマップは自動的に作成される。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照し、本発明の実施の形態を詳しく説明する。図中同一又は相当部分には同一符号を付してその説明は繰り返さない。
【００１４】
図１を参照して、本発明の実施の形態によるクライアントサーバ型ＣＡＤデータ管理システム１０は、サーバ１２と、１又は２以上のクライアント１４と、プロキシ１６とを備える。プロキシ１６は、サーバ１２及びクライアント１４の間に接続され、サーバ１２に対してクライアントとして機能し、クライアント１４に対してサーバとして機能する。
【００１５】
サーバ１２には、ＣＡＤデータ管理用のサーバプログラム１８がインストールされ、複数のＡＰＩ１〜ＡＰＩｎが搭載される。各クライアント１４には、ＣＡＤデータ管理用のクライアントプログラム２２がインストールされる。サーバプログラム１８、ＡＰＩ１〜ＡＰＩｎ及びクライアントプログラム２２は、ＣＡＤソフトベンダから提供されている既存のもので、設計データの保存、検索、参照、再利用などの基本機能をサーバ１２及びクライアント１４に実現させるためのものである。
【００１６】
プロキシ１６には、プロキシプログラム２４がインストールされ、さらに複数のアドインプログラム（以下、単に「アドイン」という。）ＡＩ１〜ＡＩｍが追加インストールされる。アドインＡＩ１〜ＡＩｍは、サーバ１２のＡＰＩ１〜ＡＰＩｎをフックし、上記基本機能と異なる各種拡張機能をプロキシ１６に実現させるためのもので、必要に応じて追加、削除、有効化、無効化などが可能である。プロキシ１６にはまた、プロキシプログラム２４によって作成されるＡＰＩ・アドインマップ２６が記憶される。
【００１７】
なお、サーバ１２、クライアント１４及びプロキシ１６は全てコンピュータであるから、図示は省略するが、ＣＰＵ(Central Processing Unit)、メモリ、ハードディスク、各種入出力装置などを備える。サーバプログラム１８、クライアントプログラム２２、ＡＰＩ１〜ＡＰＩｎ、アドインＡＩ１〜ＡＩｍ、及びＡＰＩ・アドインマップ２６は、各コンピュータのハードディスク又はメモリに記憶される。
【００１８】
以下、ＣＡＤデータ管理システム１０の動作を説明する。
［初期化処理］
まず図２を参照して、初期化処理を説明する。
【００１９】
プロキシ１６はプロキシプログラム２４に従ってステップＳ１１〜Ｓ１６を実行し、アドインＡＩ１に従ってステップＳ２１〜Ｓ２２を実行し、アドインＡＩｍに従ってステップＳ２３〜Ｓ２４を実行する。その他のアドインも同様である。以下、より具体的に説明する。
【００２０】
プロキシプログラム２４は、あらかじめ作成されている初期設定ファイル２８を読み込み、以下のステップで呼び出すべきアドインを決定する（Ｓ１１）。初期設定ファイル２８には、プロキシ１６に追加インストールされている全てのアドインＡＩ１〜ＡＩｍの識別情報が優先順位とともにあらかじめ登録されている。
【００２１】
プロキシプログラム２４は、決定したアドインＡＩ１〜ＡＩｍのうち最初のアドインＡＩ１を呼び出す（Ｓ１２）。この呼出に応じて、アドインＡＩ１は起動する（Ｓ２１）。プロキシプログラム２４は、起動したアドインＡＩ１に対し、アドインＡＩ１がフック可能なＡＰＩを問い合わせる（Ｓ１３）。この問合せに応じて、アドインＡＩ１は、自身がフック可能なＡＰＩをプロキシプログラム２４に返答する（Ｓ２２）。
ここで、一部の特殊なアドイン（たとえば後述するログアドイン）は、プロキシプログラム２４からの問合せに応じて、逆にプロキシ２４に実装されている全てのＡＰＩ１〜ＡＰＩｎを表した一覧を要求する。プロキシプログラム２４は、この特殊なアドインからの要求に応じて、全てのＡＰＩ１〜ＡＰＩｎを表した一覧を提供する。この場合、特殊なアドインはサーバ１２に追加又は変更されたＡＰＩ１〜ＡＰＩｎを知らなくてもＡＰＩ１〜ＡＰＩｎをフックすることができる。
【００２２】
プロキシプログラム２４は、その他のアドインについても上記と同様の処理を繰り返した後、最後のアドインＡＩｍを呼び出す（Ｓ１４）。この呼出に応じて、アドインＡＩｍは起動する（Ｓ２３）。プロキシプログラム２４は、起動したアドインＡＩｍに対し、アドインＡＩｍがフック可能なＡＰＩを問い合わせる（Ｓ１５）。この問合せに応じて、アドインＡＩｍは、自身がフック可能なＡＰＩをプロキシプログラム２４に返答する（Ｓ２４）。
【００２３】
そして、プロキシプログラム２４は、アドインＡＩ１〜ＡＩｍからの返答に基づいて、ＡＰＩ・アドインマップ２６を作成する（Ｓ１６）。作成されたＡＰＩ・アドインマップ２６の一例を図３に示す。ＡＰＩ・アドインマップ２６には、各アドインがフックするＡＰＩが登録される。たとえば図３に示した例では、アドインＡＩ１はＡＰＩ１及びＡＰＩ３をフックし、アドインＡＩ２はＡＰＩ２のみをフックし、アドインＡＩ３は全てのＡＰＩ１〜ＡＰＩｎをフックし、アドインＡＩｍはＡＰＩｎ−１をフックしている。各アドインは、１つだけでなく複数のＡＰＩをフックする場合がある。また、複数のアドインが同じＡＰＩをフックする場合もある。
【００２４】
この初期化処理によれば、後述するプロキシ１６の介入処理に必要なＡＰＩ・アドインマップ２６があらかじめ自動的に作成される。
【００２５】
［要求時の介入処理］
次に図４を参照して、クライアント１４からサーバ１２への要求時におけるプロキシ１６の介入処理を説明する。
【００２６】
クライアント１４は、クライアントプログラム２２に従ってステップＳ３１〜Ｓ３３を実行する。プロキシ１６は、プロキシプログラム２４に従ってステップＳ４１〜Ｓ５０を実行し、かつ、アドインプログラムＡＩ１〜ＡＩｍに従ってステップＳ６１を実行する。サーバ１２は、サーバプログラム１８に従ってステップＳ７１〜Ｓ７４を実行する。以下、より具体的に説明する。
【００２７】
クライアント１４は、サーバ１２のＡＰＩｘ（ｘ＝１〜ｎ）を呼び出すために、コールコマンドをサーバ１２に向けて送信する（Ｓ３１）。サーバ１２とクライアント１４との間にはプロキシ１６が介在しているため、プロキシ１６はクライアント１４からサーバ１２への要求を遮ってコールコマンドを受信する（Ｓ４１）。プロキシプログラム２４は、受信したコールコマンドを解析し、クライアント１４が呼び出そうとしているＡＰＩｘに対応する１又は２以上のアドインＡＩｙ（ｙ＝１〜ｍ）がＡＰＩ・アドインマップ２６に登録されているか否かを判断する（Ｓ４２）。
【００２８】
対応するアドインＡＩｙが登録されていない場合（Ｓ４２でＮＯ）、プロキシプログラム２４はそのコールコマンドをそのまま通過させることにより、サーバ１２のＡＰＩｘを呼び出す（Ｓ４３）。サーバ１２はそのコールコマンドを受信し（Ｓ７１）、ＡＰＩｘの実行を開始する（Ｓ７２）。
【００２９】
一方、対応する１又は２以上のアドインＡＩｙが登録されている場合（Ｓ４２でＹＥＳ）、プロキシプログラム２４は、そのアドインＡＩｙを特定し（Ｓ４４）、そのアドインＡＩｙがフックしているＡＰＩｘを正規化し、引数と戻り値のインターフェイスを所定の書式に合わせる（Ｓ４５）。
【００３０】
続いて、プロキシプログラム２４は、特定したアドインＡＩｙを順番に呼び出し（Ｓ４６，Ｓ４８）、これにより要求された処理をアドインＡＩｙに移譲する。この呼出に応じて、アドインＡＩｙは、特有の拡張機能を実行する他、コールコマンドに含まれる引数を変更した上でＡＰＩｘに引き渡したり、ＡＰＩｘから引き渡された戻り値を変更した上でプロキシプログラム２４に返却したりする（Ｓ６１，Ｓ６３）。アドインＡＩ１〜ＡＩｍの中には、特有の拡張機能を実行する他、引数のみを変更するもの、戻り値のみを変更するもの、引数及び戻り値の両方を変更するもの、あるいは戻り値を独自に作成するものがある。ここで、戻り値を独自に作成するとは、アドインＡＩｙがクライアント１４からの呼出内容に関係なく所定の戻り値を作成することであり、戻り値を変更することの一種である。そして、アドインＡＩｙは、ＡＰＩｘの呼出を中止するか否かを判断する（Ｓ６２，Ｓ６４）。
【００３１】
アドインＡＩｙがＡＰＩｘの呼出を中止すると判断した場合（Ｓ６２，Ｓ６４でＹＥＳ）、プロキシプログラム２４は、アドインＡＩｙが返した戻り値をクライアント１４に返却する（Ｓ４７，Ｓ４９）。クライアント１４は、プロキシ１６から返却された戻り値を受信し、ＡＰＩｘの呼出を完了する（Ｓ３２，Ｓ３２）。
【００３２】
一方、ステップＳ４４で特定された１又は２以上のアドインＡＩｙの全てがＡＰＩｘの呼出を中止すると判断した場合（Ｓ６２，Ｓ６４でＮＯ）、プロキシプログラム２４はクライアント１４からの呼出をそのまま通過させ、原則通りサーバ１２のＡＰＩｘを呼び出す（Ｓ５０）。サーバ１２はこの呼出を受信し（Ｓ７３）、ＡＰＩｘの実行を開始する（Ｓ７４）。
【００３３】
［応答時の介入処理］
次に図５を参照して、サーバ１２からクライアント１４への応答時におけるプロキシ１６の介入処理を説明する。
【００３４】
クライアント１４は、クライアントプログラム２２に従ってステップＳ３４〜Ｓ３５を実行する。プロキシ１６は、プロキシプログラム２４に従ってステップＳ５１〜Ｓ５８を実行し、かつ、アドインプログラムＡＩ１〜ＡＩｍに従ってステップＳ６５〜Ｓ６６を実行する。サーバ１２は、サーバプログラム１８に従ってステップＳ７５を実行する。以下、より具体的に説明する。
【００３５】
サーバ１２はＡＰＩｘの実行を開始し（Ｓ７２，Ｓ７４）、完了すると、その戻り値をクライアント１４に向けて送信する（Ｓ７５）。しかし、サーバ１２とクライアント１４との間にはプロキシ１６が介在しているため、プロキシ１６はサーバ１２からクライアント１４への応答を遮って戻り値を受信する（Ｓ５１）。
【００３６】
プロキシプログラム２４は、ＡＰＩｘに対応するアドインＡＩｙ（ｙ＝１〜ｍ）がＡＰＩ・アドインマップ２６に登録されているか否かを判断する（Ｓ５２）。この判断はステップＳ４２の判断と同じである。
【００３７】
対応するアドインＡＩｙが登録されていない場合（Ｓ５２でＮＯ）、プロキシプログラム２４はその戻り値をそのまま通過させてクライアント１４に返却する（Ｓ５３）。クライアント１４はその戻り値を受信し、ＡＰＩｘの実行を完了する（Ｓ３４）。
【００３８】
一方、対応するアドインＡＩｙが登録されている場合（Ｓ５２でＹＥＳ）、プロキシプログラム２４は、そのアドインＡＩｙを特定し（Ｓ５４）、そのアドインＡＩｙがフックしているＡＰＩｘを正規化する（Ｓ５２）。
【００３９】
続いて、プロキシプログラム２４は、特定した１又は２以上のアドインＡＩｙを順番に呼び出し、これにより要求された処理をアドインＡＩｙに移譲する（Ｓ５６，Ｓ５７）。この呼出に応じて、アドインＡＩｙは、特有の拡張機能を実行する他、戻り値を変更した上でプロキシプログラム２４に返却する（Ｓ６５，Ｓ６６）。
【００４０】
プロキシプログラム２４は、アドインＡＩｙから返却された戻り値をクライアント１４に返却する（Ｓ５８）。クライアント１４は、プロキシ１６から返却された戻り値を受信し、ＡＰＩｘの呼出を完了する（Ｓ３５）。
【００４１】
［アドインの具体例］
上記アドインＡＩ１〜ＡＩｍが有する特有の拡張機能は特に限定されないが、以下、拡張機能の具体例を２つ紹介する。
【００４２】
（１）セキュリティアドイン
セキュリティアドインは、ファイル削除ＡＰＩをフックする。ファイル削除ＡＰＩは、指定されたファイルをサーバ１２から削除する特有の拡張機能を有する。ファイル削除ＡＰＩの引数は、削除すべきファイルを特定する識別子「ＩＤ」である。ファイル削除ＡＰＩの戻り値は、ファイルの削除に成功した場合は「０」になり、失敗した場合はそれ以外の値になる。セキュリティアドインは、クライアント１４からサーバ１２への要求時にのみ処理を行い、サーバ１２からクライアント１４への応答時には処理を行わない。以下、図６を参照して、より具体的に説明する。
【００４３】
ファイル削除ＡＰＩをフックするアドインとしてセキュリティアドインが初期設定ファイル２８に登録され、図２に示した初期化処理により、ファイル削除ＡＰＩをフックするアドインとしてセキュリティアドインがＡＰＩ・アドインマップ２６に登録される。
【００４４】
まず、クライアント１４は、サーバ１２のファイル削除ＡＰＩ「DeleteFile（ＩＤ）」の呼出を開始する（Ｓ３１）。プロキシプログラム２４は、クライアント１４が呼び出そうとしているファイル削除ＡＰＩに対応するアドインがＡＰＩ・アドインマップ２６に登録されていると判断する（Ｓ４２）。
【００４５】
プロキシプログラム２４は、ファイル削除ＡＰＩに対応するアドインとしてセキュリティアドインを特定し（Ｓ４４）、ファイル削除ＡＰＩを正規化する（Ｓ４５）。
【００４６】
続いて、プロキシプログラム２４は、特定したセキュリティアドインを呼び出し、これにより要求された処理をセキュリティアドインに移譲する（Ｓ４６）。具体的には、ファイル削除ＡＰＩの関数名「DeleteFile」、引数「ＩＤ」及び戻り値をセキュリティアドインに伝達する。この呼出に応じて、セキュリティアドインは、引数「ＩＤ」で特定されるファイルが削除されないように保護されているか否かを判断する（Ｓ６０）。
【００４７】
ファイルが保護されている場合（Ｓ６０でＹＥＳ）、セキュリティアドインは、戻り値を「１」に変更する。戻り値「１」はファイルの削除に失敗したことを意味する。セキュリティアドインは、変更した戻り値「１」をプロキシプログラム２４に引き渡し、以降のアドインが誤動作しないようにＡＰＩの呼出中止を依頼する（Ｓ６２）。
【００４８】
プロキシプログラム２４は、セキュリティアドインから返却された戻り値「１」をクライアント１４に返却する（Ｓ４７）。クライアント１４は、プロキシ１６から返却された戻り値「１」を受信し、ファイル削除ＡＰＩ「DeleteFile（ＩＤ）」の呼出を完了する（Ｓ３２）。
【００４９】
一方、ファイルが保護されていない場合（Ｓ６０でＮＯ）、プロキシプログラム２４は、サーバ１２のファイル削除ＡＰＩ「DeleteFile（ＩＤ）」を呼び出す（Ｓ５０）。この呼出に応じて、サーバ１２はファイル削除ＡＰＩの実行を開始する（Ｓ７４）。
【００５０】
（２）ログアドイン
ログアドインは、サーバ１２のファイルダウンロードＡＰＩをフックする。ファイルダウンロードＡＰＩは、指定されたファイルをサーバ１２からダウンロードする機能を有する。ファイルダウンロードＡＰＩの引数は、ダウンロードすべきファイルを特定する識別子「ＩＤ」である。ファイルダウンロードＡＰＩの戻り値は、指定されたファイルのバイナリデータである。ログアドインは、サーバ１２からクライアント１４への応答時にのみ処理を行い、クライアント１４からサーバ１２への要求時には処理を行わない。以下、図７を参照して、より具体的に説明する。
【００５１】
ファイルダウンロードＡＰＩをフックするアドインとしてログアドインが初期設定ファイル２８に登録され、図２に示した初期化処理により、ファイルダウンロードＡＰＩをフックするアドインとしてログアドインがＡＰＩ・アドインマップ２６に登録される。
【００５２】
サーバ１２はファイルダウンロードＡＰＩ「DownloadFile（ＩＤ）」の実行を完了すると、その戻り値をクライアント１４に向けて送信する（Ｓ７５）。プロキシプログラム２４は、サーバ１２から送信された戻り値を受信し、ファイルダウンロードＡＰＩに対応するアドインがＡＰＩ・アドインマップ２６に登録されていると判断する（Ｓ５２）。
【００５３】
プロキシプログラム２４は、ファイルダウンロードＡＰＩに対応するアドインとしてログアドインを特定し（Ｓ５４）、ファイルダウンロードＡＰＩを正規化する（Ｓ５５）。
【００５４】
続いて、プロキシプログラム２４は、特定したログアドインを呼び出し、これにより要求された処理をログアドインに移譲する（Ｓ５６）。この呼出に応じて、ログアドインは、ファイルダウンロードＡＰＩはどのクライアント１４により呼び出されたのかをプロキシ１６に問い合わせるために、プロキシ１６に接続クライアント情報を要求する（Ｓ６７）。接続クライアント情報は、ファイルダウンロードＡＰＩを呼び出したクライアントの識別情報であって、プロキシ１６で管理されている。
【００５５】
プロキシプログラム２４は、この要求に応じて、接続クライアント情報をログアドインに返答する（Ｓ５９）。ログアドインは、返答された接続クライアント情報に基づいて、ファイルのダウンロードを実行した日時、ユーザ、クライアントＩＰ、ＡＰＩなどを記録する（Ｓ６８）。
【００５６】
プロキシプログラム２４は、アドインＡＩｙから返却された戻り値をクライアント１４に返却する（Ｓ５８）。クライアント１４は、プロキシ１６から返却された戻り値を受信し、ファイルダウンロードＡＰＩの呼出を完了する（Ｓ３５）。
【００５７】
以上のように、本発明の実施の形態によれば、サーバ１２とクライアント１４との間にプロキシ１６を介在させ、サーバ１２のＡＰＩ１〜ＡＰＩｎをフックするアドインＡＩ１〜ＡＩｍをプロキシ１６に追加し、アドインＡＩ１〜ＡＩｍがＡＰＩ１〜ＡＰＩｎを呼び出し、引数を変更したり、戻り値を変更したりしているため、ＣＡＤが更新されて設計データの様式が新しくなっても、サーバ１２もクライアント１４も改変することなく、その新しい様式の設計データを既存のＡＰＩ１〜ＡＰＩｎで処理することができる。
【００５８】
上記実施の形態では、サーバ１２のＡＰＩ１〜ＡＰＩｎと同じＡＰＩ１〜ＡＰＩｎがプロキシ１６にも実装されているが、サーバ１２及びプロキシ１６がＡＰＩ１〜ＡＰＩｎを共用するようにしてもよい。
【００５９】
また、上記実施の形態では、プロキシ１６はサーバ１２を構成するコンピュータとは別のコンピュータで構成されているが、プロキシプログラム２４及びアドインＡＩ１〜ＡＩｍをサーバ１２と同じコンピュータにインストールすることにより、サーバ１２及びプロキシ１６を１台のコンピュータで構成してもよい。また、サーバプログラム１８、クライアントプログラム１４、プロキシプログラム２４及びアドインＡＩ１〜ＡＩｍを全て同じコンピュータにインストールすることにより、サーバ１２、クライアント１４及びプロキシ１６を１台のコンピュータで構成してもよい。
【００６０】
また、上記実施の形態はＣＡＤ用の設計データを管理しているが、本発明はこれに限定されることなく、たとえば文書管理、画像管理、動画管理、スケジュール管理、地理情報管理、顧客管理、販売管理、会計情報管理、生産管理、製品管理、部品管理、資産管理、施設管理、プロジェクト管理など、各種データを管理するシステムにも適用可能である。
【００６１】
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。
【図面の簡単な説明】
【００６２】
【図１】本発明の実施の形態によるクライアントサーバ型ＣＡＤデータ管理システムの全体構成を示す機能ブロック図である。
【図２】図１に示したＣＡＤデータ管理システムの初期化処理を示すフロー図である。
【図３】図３に示した初期化処理で作成されるＡＰＩ・アドインマップを示す図である。
【図４】図１に示したＣＡＤデータ管理システムにおいて、クライアントからサーバへの要求時におけるプロキシの介入処理を示すフロー図である。
【図５】図１に示したＣＡＤデータ管理システムにおいて、サーバからクライアントへの応答時におけるプロキシの介入処理を示すフロー図である。
【図６】図４に示したプロキシの介入処理のうちセキュリティアドインの例を示すフロー図である。
【図７】図５に示したプロキシの介入処理のうちログアドインの例を示すフロー図である。
【符号の説明】
【００６３】
１０  データ管理システム
１２  サーバ
１４  クライアント
１６  プロキシ
１８  サーバプログラム
２２  クライアントプログラム
２４  プロキシプログラム
２６  ＡＰＩ・アドインマップ
２８  初期設定ファイル
【図１】
2010067156.tif 000003
【図２】
2010067156.tif 000004
【図３】
2010067156.tif 000005
【図４】
2010067156.tif 000006
【図５】
2010067156.tif 000007
【図６】
2010067156.tif 000008
【図７】
2010067156.tif 000009