(57)【要約】【課題】複数のフレームを参照する場合に、効率良くメモリを使用できる画像処理装置、画像処理方法、プログラム及び記憶媒体を提供すること。【解決手段】  本アプリケーション配布システムは、ネットワーク２０に接続可能な各種サーバ１０、１１、１２及びクライアント３０を備える。本アプリケーション配布システムは、例えば、アプリケーションの各機能を実現するためのファイルのバージョンを管理するバージョン管理手段１５０と、バージョン管理手段１５０により管理されたファイルを実行可能な形式に変換するビルド手段５０と、ネットワーク２０に接続されたクライアント３０からの要求に応じて、ビルド手段５０により実行可能な形式に変換されたファイルのうち、クライアント３０が利用可能なバージョンのファイルの一覧をアプリケーションリストとして生成するアプリケーションリスト生成手段７０と、アプリケーションリストに対するクライアント３０からの要求に応じたファイルを配布する配布手段９０と、を備える。【選択図】  図１
2005174025.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続可能なサーバであって、
アプリケーションの各機能を実現するためのファイルのバージョンを管理するバージョン管理手段と、
前記バージョン管理手段により管理されたファイルを実行可能な形式に変換するビルド手段と、
前記ネットワークに接続されたクライアントからの要求に応じて、前記ビルド手段により実行可能な形式に変換されたファイルのうち、前記クライアントが利用可能なバージョンのファイルの一覧をアプリケーションリストとして生成するアプリケーションリスト生成手段と、
前記アプリケーションリストに対する前記クライアントからの要求に応じたファイルを配布する配布手段と、
を備えることを特徴とするサーバ。
【請求項２】
前記クライアントから送信された認証情報に基づいて、前記ファイルへのアクセス権を制御するアクセス権制御手段を備え、前記配布手段は、前記アクセス権制御手段によりアクセスが許可された前記クライアントに対して前記ファイルを配布することを特徴とする請求項１に記載のサーバ。
【請求項３】
前記アプリケーションは、そのアプリケーションの各機能の実行結果を表示するためのウィンドウを有し、かつ、前記各機能に対応する新旧複数のバージョンのアルゴリズムの実行結果を前記ウィンドウ内に並列して表示する機能を有することを特徴とする請求項１又は請求項２に記載のサーバ。
【請求項４】
前記アプリケーションは、
前記ウィンドウ上に、前記各機能に対応する項目を示すユーザインターフェースを強調表示する第１表示手段と、
前記強調表示されたユーザインターフェースから派生して、前記各機能の新旧複数のバージョンのアルゴリズムを選択的に実行するためのサブユーザインターフェースを表示する第２表示手段と、
前記サブユーザインターフェース上に、前記各機能の新旧複数のバージョンのアルゴリズムを単独で実行するための項目と、前記各機能の新旧複数のバージョンのアルゴリズムを並列で実行するための項目と、を並列して表示する第３表示手段と、
前記サブユーザインターフェース上で、前記単独で実行するための項目が選択されたときに、該項目に対応するバージョンのアルゴリズムを有するプログラムを起動し、その計算結果を表示する第４表示手段と、
前記サブユーザインターフェース上で、前記並列で実行するための項目が選択されたときに、該項目に対応する新旧複数のバージョンのアルゴリズムを有するプログラムを並列で又は順次に起動し、それらの複数の計算結果を並列して表示する第５表示手段と、
を有することを特徴とする請求項３に記載のサーバ。
【請求項５】
前記バージョン設定手段は、前記アプリケーションの各機能のうち、所定バージョンより以前のバージョンのアルゴリズムが存在するファイルを有するものについては、そのファイルを全て前記所定バージョンに設定することを特徴とする請求項１乃至請求項４のいずれか１項に記載のサーバ。
【請求項６】
前記アプリケーションの各機能のアルゴリズムのバージョンを格納したアルゴリズムバージョンテーブルを有し、前記バージョン設定手段は、前記アルゴリズムバージョンテーブルに基づいて前記所定バージョンを設定することを特徴とする請求項１乃至請求項５のいずれか１項に記載のサーバ。
【請求項７】
前記ウィンドウのユーザインターフェースを構成するための情報を含むアプリケーションユーザインターフェース構成リストを有し、前記アプリケーションは、前記アプリケーションユーザインターフェース構成リストに基づいて、前記ユーザインターフェースを表示することを特徴とする請求項１乃至請求項６のいずれか１項に記載のサーバ。
【請求項８】
前記ネットワークに接続可能なクライアントであって、
請求項１乃至請求項７のいずれか１項に記載のサーバから配布された前記ファイルを起動し実行する起動手段と、
前記ファイルの実行時に作成されたデータを暗号化してメモリに格納し、前記起動したファイルを再度実行するときに該メモリから該データを復号化して読み出す入出力管理手段と、
を備えるクライアント。
【請求項９】
ネットワークに接続可能なサーバと、該ネットワークに接続可能なクライアントとを備えるアプリケーション配布システムであって、
前記サーバは、
アプリケーションの各機能を実現するためのファイルのバージョンを管理するバージョン管理手段と、
前記バージョン管理手段により管理されたファイルを実行可能な形式に変換するビルド手段と、
前記ネットワークに接続されたクライアントからの要求に応じて、前記ビルド手段により実行可能な形式に変換されたファイルのうち、前記クライアントが利用可能なバージョンのファイルの一覧をアプリケーションリストとして生成するアプリケーションリスト生成手段と、
前記アプリケーションリストに対する前記クライアントからの要求に応じたファイルを配布する配布手段と、
を備え、
前記クライアントは、
前記サーバから配布された前記ファイルを起動し実行する起動手段を備えることを特徴とするアプリケーション配布システム。
【請求項１０】
前記サーバは、前記クライアントから送信された認証情報に基づいて、前記ファイルへのアクセス権を制御するアクセス権制御手段を備え、前記配布手段は、前記アクセス権制御手段によりアクセスが許可された前記クライアントに対して前記ファイルを配布することを特徴とする請求項９に記載のアプリケーション配布システム。
【請求項１１】
前記アプリケーションは、そのアプリケーションの各機能の実行結果を表示するためのウィンドウを有し、かつ、前記各機能に対応する新旧複数のバージョンのアルゴリズムの実行結果を前記ウィンドウ内に並列して表示する機能を有することを特徴とする請求項９又は請求項１０に記載のアプリケーション配布システム。
【請求項１２】
前記アプリケーションは、
前記ウィンドウ上に、前記各機能に対応する項目を示すユーザインターフェースを強調表示する第１表示手段と、
前記強調表示されたユーザインターフェースから派生して、前記各機能の新旧複数のバージョンのアルゴリズムを選択的に実行するためのサブユーザインターフェースを表示する第２表示手段と、
前記サブユーザインターフェース上に、前記各機能の新旧複数のバージョンのアルゴリズムを単独で実行するための項目と、前記各機能の新旧複数のバージョンのアルゴリズムを並列で実行するための項目と、を並列して表示する第３表示手段と、
前記サブユーザインターフェース上で、前記単独で実行するための項目が選択されたときに、該項目に対応するバージョンのアルゴリズムを有するプログラムを起動し、その計算結果を表示する第４表示手段と、
前記サブユーザインターフェース上で、前記並列で実行するための項目が選択されたときに、該項目に対応する新旧複数のバージョンのアルゴリズムを有するプログラムを並列で又は順次に起動し、それらの複数の計算結果を並列して表示する第５表示手段と、
を有することを特徴とする請求項１１に記載のアプリケーション配布システム。
【請求項１３】
前記サーバは、前記バージョン設定手段は、前記アプリケーションの各機能のうち、所定バージョンより以前のバージョンのアルゴリズムが存在するファイルを有するものについては、そのファイルを全て前記所定バージョンに設定することを特徴とする請求項９乃至請求項１２のいずれか１項に記載のアプリケーション配布システム。
【請求項１４】
前記サーバは、前記アプリケーションの各機能のアルゴリズムのバージョンを格納したアルゴリズムバージョンテーブルを有し、前記バージョン設定手段は、前記アルゴリズムバージョンテーブルに基づいて前記所定バージョンを設定することを特徴とする請求項９乃至請求項１３のいずれか１項に記載のアプリケーション配布システム。
【請求項１５】
前記ウィンドウのユーザインターフェースを構成するための情報を含むアプリケーションユーザインターフェース構成リストを有し、前記アプリケーションは、前記アプリケーションユーザインターフェース構成リストに基づいて、前記ユーザインターフェースを表示することを特徴とする請求項９乃至請求項１４のいずれか１項に記載のアプリケーション配布システム。
【請求項１６】
前記クライアントは、ファイルの実行時に作成されたデータを暗号化してメモリに格納し、前記ファイルを再度実行するときに該メモリから該データを復号化して読み出す入出力管理手段を備えることを特徴とする請求項９乃至請求項１５のいずれか１項に記載のアプリケーション配布システム。
【請求項１７】
ネットワークに接続可能な情報処理装置の制御方法であって、
アプリケーションの各機能を実現するためのファイルのバージョンを管理するバージョン管理工程と、
前記バージョン管理工程で管理されたファイルを実行可能な形式に変換するビルド工程と、
前記ビルド工程で実行可能な形式に変換されたファイルのうち、前記ネットワークに接続されたクライアントが利用可能なバージョンのファイルの一覧をアプリケーションリストとして生成するアプリケーションリスト生成工程と、
前記アプリケーションリストに基づいて前記クライアントに前記ファイルを配布する配布工程と、
を含むことを特徴とする情報処理装置の制御方法。
【請求項１８】
前記配布工程により配布されたファイルを受信する工程と、
前記受信したファイルの新旧複数のバージョンのアルゴリズムの実行結果をウィンドウ内に並列して表示する工程と、
を含むことを特徴とする請求項１７に記載の情報処理装置の制御方法。
【請求項１９】
ネットワークに接続可能なサーバの制御方法であって、
アプリケーションの各機能を実現するためのファイルのバージョンを管理するバージョン管理工程と、
前記バージョン管理工程で管理されたファイルを実行可能な形式に変換するビルド工程と、
前記ビルド工程で実行可能な形式に変換されたファイルのうち、前記ネットワークに接続されたクライアントが利用可能なバージョンのファイルの一覧をアプリケーションリストとして生成するアプリケーションリスト生成工程と、
前記アプリケーションリストに基づいて前記クライアントに前記ファイルを配布する配布工程と、
を含むことを特徴とする情報処理装置の制御方法。
【請求項２０】
前記配布工程により配布された前記ファイルを起動し実行する起動工程を含むことを特徴とする請求項１９に記載の情報処理装置の制御方法。
【請求項２１】
前記起動工程では、前記受信したファイルの新旧複数のバージョンのアルゴリズムの実行結果をウィンドウ内に並列して表示することを特徴とする請求項２０に記載の情報処理装置の制御方法。
【請求項２２】
請求項１７乃至請求項２１のいずれか１項に記載の情報処理装置の制御方法をコンピュータによって実行させることを特徴とするプログラム。
【請求項２３】
請求項１７乃至請求項２１のいずれか１項に記載の情報処理装置の制御方法をコンピュータによって実行させるためのプログラムを格納することを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，ネットワークに接続可能なサーバ、クライアント及びこれらを備えるアプリケーション配布システム、情報処理装置の制御方法、プログラム並びに記録媒体に関するものである。
【背景技術】
【０００２】
従来、インターネットやイントラネットを利用してユーザにアプリケーションを提供するWebサーバやファイルサーバ等のシステムが広く普及している。ユーザは、ネットワーク上のこれらのサーバからアプリケーションをパーソナルコンピュータにダウンロードし，インストールすることによって，パーソナルコンピュータ上でアプリケーションを実行することができる。ユーザは、アプリケーションが更新された場合は、再度アプリケーションをダウンロードし，インストールする必要がある。これに対し、アプリケーションの更新情報を監視し、アプリケーションが更新された場合に、ユーザのパーソナルコンピュータ上のアプリケーションを更新する機能を持つアプリケーションも存在している。
【特許文献１】特開平7-49844号公報
【特許文献２】特開平10-293683号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来では、アプリケーションのバージョン管理、ビルド、ユーザ認証、アクセス制限、配布及び更新は、システム毎に別々に運用されているため、開発から配布まで一貫してバージョン管理等を行うことができず、開発者の意図しないバージョンがユーザに利用されるという問題があった。
【０００４】
また、アプリケーションの実行結果に対して高い精度が要求されるケースでは、利用者（開発者、研究者等）から機能毎に新旧のアルゴリズムによる実行結果を比較したいという要求がしばしば発生するが、これらのシステムによって配布されるアプリケーションで実行結果の比較を行うためには、新旧複数のバージョンのアプリケーションを同時に起動させた後に、それぞれのアプリケーションの画面上で適切なユーザインターフェイス（以下、ＵＩと省略）を選択しなければならない。その結果、操作ステップ数が増大したり、複数のバージョンのアプリケーションを同時に起動することによって画面が煩雑化したりする等の問題があった。
【０００５】
また、アプリケーション配布システムによっては、異なるバージョンのアプリケーションを同時に起動できないものもあった。このようなシステムで実行結果の比較を行うには、あるバージョンのアプリケーション上で所定の機能を実行した後に、アプリケーションのバージョンを変更し（バージョンアップあるいはバージョンダウン）、バージョンを変更した後のアプリケーション上で同様の機能を再度実行しなければならず、比較作業に多大な労力・時間を要していた。
【０００６】
また、特許文献１では、ネットワークに接続された複数の処理装置上で異なるバージョンのプログラムを実行するシステムが開示されているが、これはアクセプタンステストを不要にするためのシステムであり、アプリケーションに組み込まれている機能の処理結果の比較を行う技術とは無関係である。
【０００７】
また、特許文献２では、コンパイラのバージョンの差異によって生じるアセンブリ言語プログラムのコードの相違を解析して、コードに差異がある場合はその部分を表示するシステムが開示されているが、アプリケーションに組み込まれている機能の実行結果の比較を行うことは考慮されていない。
【０００８】
したがって、従来では、新旧複数のバージョンのアルゴリズムの実行結果の比較を容易に行うことができるアプリケーション及びその配布システムはなかった。
【０００９】
本発明は、上記の背景に基づいてなされたものであり、開発者が意図するバージョンのアプリケーションをユーザに提供することを目的とする。また、本発明は、新旧複数のアルゴリズムによる実行結果を容易に比較できることを目的とする。
【課題を解決するための手段】
【００１０】
本発明の第１の側面は、ネットワークに接続可能なサーバに係り、アプリケーションの各機能を実現するためのファイルのバージョンを管理するバージョン管理手段と、前記バージョン管理手段により管理されたファイルを実行可能な形式に変換するビルド手段と、前記ネットワークに接続されたクライアントからの要求に応じて、前記ビルド手段により実行可能な形式に変換されたファイルのうち、前記クライアントが利用可能なバージョンのファイルの一覧をアプリケーションリストとして生成するアプリケーションリスト生成手段と、前記アプリケーションリストに対する前記クライアントからの要求に応じたファイルを配布する配布手段と、を備えることを特徴とする。
【００１１】
本発明の好適な実施の形態によれば、前記クライアントから送信された認証情報に基づいて、前記ファイルへのアクセス権を制御するアクセス権制御手段を備え、前記配布手段は、前記アクセス権制御手段によりアクセスが許可された前記クライアントに対して前記ファイルを配布することが望ましい。
【００１２】
本発明の好適な実施の形態によれば、前記アプリケーションは、そのアプリケーションの各機能の実行結果を表示するためのウィンドウを有し、かつ、前記各機能に対応する新旧複数のバージョンのアルゴリズムの実行結果を前記ウィンドウ内に並列して表示する機能を有することが望ましい。
【００１３】
本発明の好適な実施の形態によれば、前記アプリケーションは、前記ウィンドウ上に、前記各機能に対応する項目を示すユーザインターフェースを強調表示する第１表示手段と、前記強調表示されたユーザインターフェースから派生して、前記各機能の新旧複数のバージョンのアルゴリズムを選択的に実行するためのサブユーザインターフェースを表示する第２表示手段と、前記サブユーザインターフェース上に、前記各機能の新旧複数のバージョンのアルゴリズムを単独で実行するための項目と、前記各機能の新旧複数のバージョンのアルゴリズムを並列で実行するための項目と、を並列して表示する第３表示手段と、前記サブユーザインターフェース上で、前記単独で実行するための項目が選択されたときに、該項目に対応するバージョンのアルゴリズムを有するプログラムを起動し、その計算結果を表示する第４表示手段と、前記サブユーザインターフェース上で、前記並列で実行するための項目が選択されたときに、該項目に対応する新旧複数のバージョンのアルゴリズムを有するプログラムを並列で又は順次に起動し、それらの複数の計算結果を並列して表示する第５表示手段と、を有することが望ましい。
【００１４】
本発明の好適な実施の形態によれば、前記バージョン設定手段は、前記アプリケーションの各機能のうち、所定バージョンより以前のバージョンのアルゴリズムが存在するファイルを有するものについては、そのファイルを全て前記所定バージョンに設定することが望ましい。
【００１５】
本発明の好適な実施の形態によれば、前記アプリケーションの各機能のアルゴリズムのバージョンを格納したアルゴリズムバージョンテーブルを有し、前記バージョン設定手段は、前記アルゴリズムバージョンテーブルに基づいて前記所定バージョンを設定することが望ましい。
【００１６】
本発明の好適な実施の形態によれば、前記ウィンドウのユーザインターフェースを構成するための情報を含むアプリケーションユーザインターフェース構成リストを有し、前記アプリケーションは、前記アプリケーションユーザインターフェース構成リストに基づいて、前記ユーザインターフェースを表示することが望ましい。
【００１７】
本発明の第２の側面は、前記ネットワークに接続可能なクライアントに係り、上記のサーバから配布された前記ファイルを起動し実行する起動手段と、前記ファイルの実行時に作成されたデータを暗号化してメモリに格納し、前記起動したファイルを再度実行するときに該メモリから該データを復号化して読み出す入出力管理手段と、を備えることを特徴とする。
【００１８】
本発明の第３の側面は、ネットワークに接続可能なサーバと、該ネットワークに接続可能なクライアントとを備えるアプリケーション配布システムであって、前記サーバは、アプリケーションの各機能を実現するためのファイルのバージョンを管理するバージョン管理手段と、前記バージョン管理手段により管理されたファイルを実行可能な形式に変換するビルド手段と、前記ネットワークに接続されたクライアントからの要求に応じて、前記ビルド手段により実行可能な形式に変換されたファイルのうち、前記クライアントが利用可能なバージョンのファイルの一覧をアプリケーションリストとして生成するアプリケーションリスト生成手段と、前記アプリケーションリストに対する前記クライアントからの要求に応じたファイルを配布する配布手段と、を備え、前記クライアントは、前記サーバから配布された前記ファイルを起動し実行する起動手段を備えることを特徴とする。
【００１９】
本発明の好適な実施の形態によれば、前記サーバは、前記クライアントから送信された認証情報に基づいて、前記ファイルへのアクセス権を制御するアクセス権制御手段を備え、前記配布手段は、前記アクセス権制御手段によりアクセスが許可された前記クライアントに対して前記ファイルを配布することが望ましい。
【００２０】
本発明の好適な実施の形態によれば、前記アプリケーションは、そのアプリケーションの各機能の実行結果を表示するためのウィンドウを有し、かつ、前記各機能に対応する新旧複数のバージョンのアルゴリズムの実行結果を前記ウィンドウ内に並列して表示する機能を有することが望ましい。
【００２１】
本発明の好適な実施の形態によれば、前記アプリケーションは、前記ウィンドウ上に、前記各機能に対応する項目を示すユーザインターフェースを強調表示する第１表示手段と、前記強調表示されたユーザインターフェースから派生して、前記各機能の新旧複数のバージョンのアルゴリズムを選択的に実行するためのサブユーザインターフェースを表示する第２表示手段と、前記サブユーザインターフェース上に、前記各機能の新旧複数のバージョンのアルゴリズムを単独で実行するための項目と、前記各機能の新旧複数のバージョンのアルゴリズムを並列で実行するための項目と、を並列して表示する第３表示手段と、前記サブユーザインターフェース上で、前記単独で実行するための項目が選択されたときに、該項目に対応するバージョンのアルゴリズムを有するプログラムを起動し、その計算結果を表示する第４表示手段と、前記サブユーザインターフェース上で、前記並列で実行するための項目が選択されたときに、該項目に対応する新旧複数のバージョンのアルゴリズムを有するプログラムを並列で又は順次に起動し、それらの複数の計算結果を並列して表示する第５表示手段と、を有することが望ましい。
【００２２】
本発明の好適な実施の形態によれば、前記サーバは、前記バージョン設定手段は、前記アプリケーションの各機能のうち、所定バージョンより以前のバージョンのアルゴリズムが存在するファイルを有するものについては、そのファイルを全て前記所定バージョンに設定することが望ましい。
【００２３】
本発明の好適な実施の形態によれば、前記サーバは、前記アプリケーションの各機能のアルゴリズムのバージョンを格納したアルゴリズムバージョンテーブルを有し、前記バージョン設定手段は、前記アルゴリズムバージョンテーブルに基づいて前記所定バージョンを設定することが望ましい。
【００２４】
本発明の好適な実施の形態によれば、前記ウィンドウのユーザインターフェースを構成するための情報を含むアプリケーションユーザインターフェース構成リストを有し、前記アプリケーションは、前記アプリケーションユーザインターフェース構成リストに基づいて、前記ユーザインターフェースを表示することが望ましい。
【００２５】
本発明の好適な実施の形態によれば、前記クライアントは、ファイルの実行時に作成されたデータを暗号化してメモリに格納し、前記ファイルを再度実行するときに該メモリから該データを復号化して読み出す入出力管理手段を備えることが望ましい。
【００２６】
本発明の第４の側面は、ネットワークに接続可能な情報処理装置の制御方法に係り、アプリケーションの各機能を実現するためのファイルのバージョンを管理するバージョン管理工程と、前記バージョン管理工程で管理されたファイルを実行可能な形式に変換するビルド工程と、前記ビルド工程で実行可能な形式に変換されたファイルのうち、前記ネットワークに接続されたクライアントが利用可能なバージョンのファイルの一覧をアプリケーションリストとして生成するアプリケーションリスト生成工程と、前記アプリケーションリストに基づいて前記クライアントに前記ファイルを配布する配布工程と、を含むことを特徴とする。
【００２７】
本発明の好適な実施の形態によれば、前記配布工程により配布されたファイルを受信する工程と、前記受信したファイルの新旧複数のバージョンのアルゴリズムの実行結果をウィンドウ内に並列して表示する工程と、を含むことが望ましい。
【００２８】
本発明の第５の側面は、ネットワークに接続可能なサーバの制御方法に係り、アプリケーションの各機能を実現するためのファイルのバージョンを管理するバージョン管理工程と、前記バージョン管理工程で管理されたファイルを実行可能な形式に変換するビルド工程と、前記ビルド工程で実行可能な形式に変換されたファイルのうち、前記ネットワークに接続されたクライアントが利用可能なバージョンのファイルの一覧をアプリケーションリストとして生成するアプリケーションリスト生成工程と、前記アプリケーションリストに基づいて前記クライアントに前記ファイルを配布する配布工程と、を含むことを特徴とする。
【００２９】
本発明の好適な実施の形態によれば、前記配布工程により配布された前記ファイルを起動し実行する起動工程を含むことが望ましい。
【００３０】
本発明の好適な実施の形態によれば、前記起動工程では、前記受信したファイルの新旧複数のバージョンのアルゴリズムの実行結果をウィンドウ内に並列して表示することが望ましい。
【００３１】
本発明の第６の側面は、プログラムに係り、上記の情報処理装置の制御方法をコンピュータによって実行させることを特徴とする。
【００３２】
本発明の第７の側面は、上記の情報処理装置の制御方法をコンピュータによって実行させるためのプログラムを格納することを特徴とする。
【発明の効果】
【００３３】
本発明によれば、開発者が意図するバージョンのアプリケーションをユーザに提供することができる。また、本発明によれば、新旧複数のアルゴリズムによる実行結果を容易に比較できる。
【発明を実施するための最良の形態】
【００３４】
本発明の実施の形態に係るアプリケーション配布システムとして、ネットワークに接続されたアプリケーション管理サーバ、認証サーバ及びバージョン管理サーバを用いて、当該ネットワークに接続されたクライアントに開発者の意図するバージョンのアプリケーションを提供する例を示す。なお、ここでは、サーバーを３つの情報処理装置に分けて説明したが、本実施形態はこれに限定されるものではなく、例えば、これらのサーバを組み合わせた情報処理装置を用いてもよい。
【００３５】
図1は、本発明の好適な実施の形態に係るアプリケーション配布システムの構成を示す概念図である。
【００３６】
図1において，本システムは、ネットワーク２０を介して認証サーバとして機能する情報処理装置１、バージョン管理サーバとして機能する情報処理装置２、アプリケーション管理サーバとして機能する情報処理装置３、アプリケーション管理クライアントとして機能する情報処理装置４で構成されている。
【００３７】
アプリケーション管理サーバ10、認証サーバ11、バージョン管理サーバ12及びアプリケーション管理クライアント30は、これらの情報処理装置に組み込まれており、ネットワーク２０を介して通信する機能を持つ。アプリケーション管理サーバ10は、ネットワーク20を介してアプリケーション管理クライアント30にアプリケーションを配布する。開発ユーザは、アプリケーション管理クライアント30の表示デバイス130上に表示されるバージョン設定フォーム170に、アプリケーションIDとリリースバージョン名とを入力する。入力されたアプリケーションIDとリリースバージョン名とは、バージョン管理サーバ12に送信され、アプリケーションのリリースバージョンが保管されているファイルセット200に、バージョン設定手段40によってアプリケーションのバージョンが設定される。リリースバージョンが設定されると，アプリケーション管理サーバ10のビルド手段50が、リリースバージョンが設定されたファイルセット200を実行可能な形式である実行ファイルセット180に変換する。アプリケーション管理サーバ10のアプリケーション情報管理手段60は，アプリケーション情報ファイル160から利用ユーザに配布するアプリケーションに関する情報を抽出したり，これらの情報を追加したりする。アプリケーション管理サーバ10のアプリケーションリスト生成手段70は，アプリケーション管理サーバ１０にアクセスしているユーザが利用可能なアプリケーションを、アプリケーション情報ファイル160から抽出してリストを作成する。
【００３８】
アプリケーション管理クライアント30は、ユーザによって起動されると、認証情報230が存在するか否かを認証手段100によって確認する。認証情報230が存在しない場合は、アプリケーション管理クライアント30がアプリケーション管理サーバ10にアクセスしてユーザ認証を行う。このユーザ認証は、認証サーバ１１によって行われる。すなわち、アプリケーション管理サーバ10が認証サーバ11にアクセスして、認証サーバ11の認証手段101が起動し、アプリケーション管理クライアント30にログインフォーム210を送信する。ログインフォーム210が表示デバイス130上に表示されると，ユーザが入力デバイス140を介してUser IDとPasswordとを入力する。入力されたUser IDとPasswordとは、認証サーバ11に送信される。認証サーバ11の認証手段101は，アプリケーション管理クライアント30から送信されたUser IDとPasswordとの整合性を、ユーザリスト220に基づいて確認する。アプリケーション管理サーバ10のアクセス権制御手段80は，認証サーバ11から送信されたUser IDのアプリケーションに対するアクセス権をアクセス権リスト190から抽出し，アプリケーションへのアクセスを制御する。アプリケーション管理クライアント30の起動手段110は，ダウンロードしたアプリケーションを実行する。実行したアプリケーション内でデータの入出力要求があった場合では，入出力管理手段120が起動し，入出力データの暗号/復号を行なう。
【００３９】
アプリケーション管理クライアント30は、利用者ＰＣ上でアプリケーションを動作させる情報処理装置４に含まれる。情報処理装置４は、アプリケーション管理クライアント用のソフトウェア30の他に、例えば、アプリケーション・プログラムや入出力データ等を格納するための記憶手段（例えば、不揮発性のメモリ等）103、アプリケーション・プログラムをロードしてデータを処理するメモリ103'、アプリケーション・プログラムの実行結果を表示するための表示デバイス（例えば、ディスプレイ等）130、アプリケーション・プログラムに対して各種の指示やデータを入力するための入力デバイス（例えば、マウスやキーボード等）140、これらを制御するアプリケーション制御手段101で構成される。
【００４０】
次に、開発ユーザが開発しているアプリケーションをビルドし、テストを行なう動作について説明する。
開発ユーザは，アプリケーション管理サーバ10にアクセスして，バージョン設定を要求する。アプリケーション管理サーバ10は、バージョン設定手段40を起動し，バージョン設定処理を行なう。バージョン設定が行われると、ビルド手段50が起動し，バージョン管理サーバ12からファイルセット200を受信し，ファイルセット200を実行可能な形式の実行ファイルセット180に変換する。次に、開発ユーザは，ビルドしたアプリケーションの実行テストを行なうため，アプリケーション管理クライアント30を起動し，テスト可能なアプリケーションリストを送信する。アプリケーション管理サーバ10は，アプリケーションリスト生成手段70を起動し，テスト可能なアプリケーションリストを生成して，アプリケーション管理クライアント30に送信する。アプリケーション管理クライアント30は、表示デバイス130上にアプリケーションリストを表示し，開発ユーザによってテストを行なうアプリケーションが選択される。アプリケーションが選択されと、アプリケーション管理クライアント30は、選択されたアプリケーションのダウンロードをアプリケーション管理サーバ10に要求する。アプリケーション管理サーバ10は、配布手段90を起動して，アプリケーションの実行ファイルセット180をアプリケーション管理クライアント30に送信する。アプリケーション管理クライアント30は、送信された実行ファイルセット180を起動手段110により起動し実行する。次に、開発ユーザは，テストを行なったアプリケーションを利用ユーザが利用できるように公開設定を行なう。まず，アプリケーション管理クライアント30から公開設定要求をアプリケーション管理サーバ10に送信される。アプリケーション管理サーバ10は、アプリケーション情報管理手段60を起動し，アプリケーション情報を抽出して，抽出された情報に公開フラグを設定する。
【００４１】
次に，ユーザがアプリケーションをダウンロードする動作について説明する。
【００４２】
まず、利用ユーザは、アプリケーション管理クライアント30を起動する。アプリケーション管理クライアント30は、認証手段100を起動し，認証情報230が存在するか否かを確認する。認証情報230が存在しない場合は，アプリケーション管理クライアント30は、アプリケーション管理サーバ10にアクセスし，認証を要求する。認証を要求されたアプリケーション管理サーバ10は、認証サーバ11にアクセスする。認証サーバ11は、認証手段101を起動し，認証処理を実行する。認証が終了したら，利用ユーザのUser IDをアプリケーション管理サーバ10に送信する。アプリケーション管理サーバ10は、アクセス権制御手段80を起動し，利用ユーザが利用可能なアプリケーションのリストを生成し，アプリケーション管理クライアント30に送信する。アプリケーション管理クライアント30は、表示デバイス130上にアプリケーションリストを表示する。利用ユーザは、このアプリケーションリストからダウンロードするアプリケーションを選択する。アプリケーション管理サーバ10は、ユーザによりアプリケーションリストから選択されたアプリケーションの実行ファイルセット180をアプリケーション管理クライアント30に送信する。アプリケーション管理クライアント30は、送信された実行ファイルセット180をローカルディスク上に保存する。
【００４３】
次に、アプリケーションを更新する動作について説明する。
【００４４】
まず、利用ユーザは、アプリケーション管理クライアント30が表示するアプリケーションリストから更新したいアプリケーションを選択し，アプリケーション管理サーバ10に更新を要求する。アプリケーション管理クライアント30からアプリケーション管理サーバ10にこのアプリケーションのIDとそのバージョンが送信されると，アプリケーション管理サーバ10は、アプリケーション情報管理手段60を起動し，このアプリケーションの最新バージョンを抽出し，送信されたバージョンと比較する。ここで、アプリケーションが更新されている場合は，最新バージョンをアプリケーション管理クライアント30に送信し，アプリケーション管理クライアント30にダウンロードされる。また，利用ユーザがアプリケーションの起動を要求したときも、アプリケーション管理クライアント30は、アプリケーション管理サーバ10に更新を要求し，更新があった場合はアプリケーションの更新を行なってからアプリケーションを起動する。
【００４５】
次に，アプリケーションのバージョンを戻す動作について説明する。
【００４６】
利用ユーザはアプリケーション管理クライアント30の表示デバイス130上に表示されるアプリケーションリストからバージョンダウンしたいアプリケーションを選択し，バージョンダウンメニューからバージョンダウンを要求する。すると、戻したいバージョン番号を入力するためのウィンドウが表示デバイス130上に表示され，バージョン番号の入力が促される。入力されたバージョン番号は、アプリケーション管理サーバ10に送信されて、そのバージョンのアプリケーションがアプリケーション管理クライアント30にダウンロードされる。これにより，アプリケーションのバージョンを以前のものに戻すことができる。
【００４７】
また，利用ユーザがアプリケーションの起動中に、アプリケーションを用いて作成したデータをパーソナルコンピュータ上に保管する場合には，アプリケーション管理クライアント30は、入出力管理手段120を起動する。入出力管理手段120は，このデータを暗号化して所定のメモリに保存する。更に，その保存したデータをアプリケーションで利用する場合には，入出力管理手段120が起動され，このデータを復号化してアプリケーションにデータを渡す。これによって，利用ユーザは意識することなく，アプリケーションを用いて作成したデータの暗号化/復号化を行なうことができる。
【００４８】
また、本発明の好適な実施の形態に係るアプリケーション配布システムによって配布されるアプリケーションは、図３２、図３３に示すように、新旧複数のバージョンのアルゴリズムを１つのウィンドウ３２０で実行し、その実行結果をこの１つのウィンドウ内に併記することができる。すなわち、当該アプリケーションに組み込まれている複数の機能のうち新旧複数のバージョンのアルゴリズムを有するものについては、利用ユーザが各機能を実行させるためのＵＩの項目１０１０３を選択すると（図３２（ａ）を参照）、アルゴリズム選択実行用のＵＩ１０１０４が表示される（図３２（ｂ）を参照）。利用ユーザは、アルゴリズム選択実行用のＵＩ１０１０４の中から各アルゴリズムの単独で実行するための項目１０１０５、１０１０６を選択すると、図３３（ａ）、（ｂ）に示すように、それぞれに対応するアルゴリズムによる処理結果が表示される。図３３（ａ）は項目１０１０５を選択した場合、図３３（ｂ）は項目１０１０６を選択した場合の実行結果をそれぞれ示す。また、利用ユーザが、アルゴリズム選択実行用のＵＩ１０１０４の中から新旧複数のバージョンのアルゴリズムを並列で実行するための項目１０１０７を選択すると、これらを並列で実行した複数の結果が併記される。その結果、同一機能の新旧複数のアルゴリズムによる実行結果を容易に比較することができる。
【実施例１】
【００４９】
以下に本発明を実施例に基づき説明するが、本発明はこれらの実施例に限定されない。
【００５０】
本実施例は、アプリケーション配布システムに関するものである。図１において、ネットワーク20は，TCP/IPを通信プロトコルとするイントラネットであるものとする。アプリケーション管理サーバ10は，TCP/IP上でアプリケーション管理クライアント30，認証サーバ11及びバージョン管理サーバ12と通信する機能を持つものとする。ユーザは，開発ユーザと利用ユーザが居るものとする。バージョン管理サーバは，CVS(ConcurrentVersion System)サーバであるものとする。アプリケーション情報ファイル160は、図2のようにXML形式で記述されているものとする。なお、これらは本実施例を説明するために例示的に示したものであり、本発明はこれらに限定されない。
【００５１】
ここで，図3〜5を用いて，開発ユーザがリリースバージョンを設定し，実行可能な形式のファイルを生成するまでの処理の流れを具体的に示す。
【００５２】
ステップS1-1では（図では[STEP1-1]で示される。以下も同様に示される。）、開発ユーザは，アプリケーション管理サーバ10にバージョン設定フォーム170を要求する。
【００５３】
ステップS1-2では、アプリケーション管理サーバ10は、バージョン設定手段40を起動する。ここで、バージョン設定手段40は、図４のステップＳ１−２−１〜ステップＳ１−２−６までの処理を実行する．
ステップS1-2-1では、バージョン設定手段40は、バージョン設定フォーム170をアプリケーション管理クライアント30に送信する。
【００５４】
ステップS1-2-2では、アプリケーション管理クライアント30は、送信されたバージョン設定フォーム170を表示デバイス130に表示する。ここで，図6に示すようにバージョン設定フォーム170が表示デバイス130上に表示されているものとする。
【００５５】
ステップS1-2-3では、利用ユーザは、入力デバイス140を用いて，バージョン設定フォーム170中のアプリケーションリストからバージョンを設定するアプリケーションを選択し，テキスト入力部にバージョン番号を入力する。ここで、利用ユーザは、以下の入力を行なったものとする。
選択されたアプリケーションID = 1
バージョン番号 = 1.0.1
次に，利用ユーザは、送信ボタンを選択して，入力した値をアプリケーション管理サーバ10に送信する。
【００５６】
ステップS1-2-4では、アプリケーション管理サーバ10は、バージョン設定手段40にステップS1-2-3で送信されたアプリケーションIDとバージョン番号とを渡す。
【００５７】
ステップS1-2-5では、バージョン設定手段40は，アプリケーション情報管理手段60にアプリケーションIDを渡す。，アプリケーション管理手段６０は、アプリケーション情報ファイル160から，アプリケーションIDに対応するアプリケーション情報を抽出し，そのアプリケーション情報からバージョン管理サーバ１２のアプリケーション特定キーを取得して，このアプリケーション特定キーをバージョン設定手段40に渡す。ここで，以下の値がアプリケーション特定キーとして取得されたものとする。
KEY = “application1”
ステップS1-2-6では、バージョン設定手段40は，バージョン管理サーバ１２が管理しているアプリケーション構成ファイルセットにリリースバージョンを設定する。ここで，バージョン管理サーバ１２はCVSサーバであるので，以下のコマンドを実行することで，KEYで特定されるアプリケーションの構成ファイルセットに対して，リリースバージョンを設定することができる。
cvs tag release-1_0_1
ここで、上記コマンドはCVSサーバに保管されているアプリケーション構成ファイルのその時点での各ファイルの開発バージョンに対して，”release-1_0_1”というリリースバージョンを設定したことを示している。
【００５８】
また、この際、バージョン設定手段40は、図３４に示すようなアルゴリズムバージョンテーブル（アプリケーションの各バージョンが有する機能のアルゴリズムのバージョンを格納したリストで、バージョン管理サーバ12等の適切な場所に格納されているものとする。なお、リスト上で複数バージョンのアルゴリズムが存在する機能には“＊”が付けられている。）を参照し、アプリケーションのリリースバージョンが有する機能（例えば、図中の“機能Ａ”、“機能Ｂ”、“機能Ｄ”、“機能Ｅ”）について、以前のアルゴリズムも含めて“release-1_0_1”というリリースバージョンを設定する。その結果、図中の“＊”を付けたアルゴリズムに関連するファイルについて“release-1_0_1”というリリースバージョンが設定される。なお、現リリースバージョンに組み込まれていない“機能Ｃ”については、そのリスト中の関連ファイルへリリースバージョンを設定しない。
【００５９】
ただし、バージョン設定サーバ（CVSサーバ）がリリースバージョン設定済みファイルに対して、追加して新しいリリースバージョンを設定することが不可能な場合は、バージョン管理サーバ12等が、当該アルゴリズムを含むファイルの複製を作成した後、当該リリースバージョンの設定を行うものとする。
【００６０】
ステップS1-3では、アプリケーションの実行ファイルを生成するため，アプリケーション管理サーバ10は、ビルド手段50にアプリケーションIDを渡し，ビルド手段50を起動する。ビルド手段50は、図５に示すステップＳ１−３−１〜ステップＳ１−３−４までの処理を実行する。
【００６１】
ステップS1-3-1では、ステップS1-2-5と同様にして、アプリケーション特定キーを取得し，取得したアプリケーション特定キーとバージョン番号とをバージョン管理サーバ１２に送信してアプリケーション構成ファイルセット200を要求する。
【００６２】
ここで，バージョン管理サーバ１２は、CVSサーバであるため，ビルド手段50は以下のコマンドを実行することでアプリケーション構成ファイルセット200を取得することができる。
cvs checkout -r release-1_0_1 application1
上記コマンドは，CVSサーバのapplication1以下に保管されているアプリケーション構成ファイルセット200の開発バージョンのうち，リリースバージョン”release-1_0_1”が設定された開発バージョンのファイルを抽出することを示している。
【００６３】
ステップS1-3-2では、バージョン管理サーバ１２は、対象のアプリケーション構成ファイルセット200をアプリケーション管理サーバ10に送信する。
【００６４】
ステップS1-3-3では、ビルド手段50は，ステップS1-3-2で送信されたアプリケーション構成ファイルセット200を実行可能な形式のファイルセット800に変換する。
【００６５】
ここでは、一例として、ステップS1-3-2で送信されたアプリケーション構成ファイルセット200の各ファイルは、Java（登録商標）のソースコードファイルであるものとして説明する。そのため，ビルド手段50は，ソースコードファイルをコンパイルし，クラスファイルを生成する。更に，生成された各クラスファイルを一つのJarファイルにまとめることにより，実行可能な形式に変換できる。 
以下、本実施例では説明を簡略化するために、ＵＩの一例として「メニュー」を扱うが、これに限定されない。
【００６６】
本システムにより利用者に配布されるアプリケーションの典型的な動作内容であるアルゴリズム選択処理を実現するための適切なメニューの構造、すなわち、図８のアプリケーションＵＩ構成リストに示すようなメニューの構造を有するようにビルドを行い、当該アプリケーションの実行形式として取得する。
【００６７】
ただし、このアプリケーションＵＩ構成リストはアプリケーションの各バージョン毎のメニューの構成情報を含むもので、あらかじめ前記アプリケーションアルゴリズムリスト等に基づいて適切に作成されているものとする。
【００６８】
ステップSTEP1-3-4では、ビルド手段50は暗号化プログラムを呼び出し，ステップS1-3-3で生成されたファイルセット800を暗号化する。ここで、作成された暗号化されたJarファイルは，application1.jarという名称で/applications/archive/ 以下に保管されたものとする。
【００６９】
ステップSTEP1-4では、アプリケーション情報ファイル160にアプリケーションを新規登録またはバージョンを追加する。まず、アプリケーション管理サーバ10は、アプリケーション情報管理手段60を起動する。起動されたアプリケーション情報管理手段60は、アプリケーション情報ファイル160にステップS1-2-3で送信されたデータをアプリケーション情報リストに追加する。
【００７０】
図7は、ステップS1-2-3で送信されたデータを追加し，更新したアプリケーション情報ファイル160を表わしている。ここまでが，開発しているアプリケーションの構成ファイルの開発バージョンを管理しているバージョン管理サーバ１２にリリースバージョンを設定し，実行可能な形式を生成するまでの処理の流れである。
【００７１】
次に，図ステップS2-1に進み、開発ユーザがステップS1-1〜S1-4でビルドしたアプリケーションを利用ユーザに公開する前に動作確認し，公開するまでの処理の流れを，図8〜10を用いて具体的に説明する。
【００７２】
ステップS2-1では、ユーザがアプリケーション管理クライアント30を起動し，テスト可能なアプリケーションのリスト（以下「アプリケーションリスト」という。）をアプリケーション管理サーバ10に要求する。
【００７３】
ステップS2-2では、アプリケーション管理サーバ10は、アプリケーションリスト生成手段70を起動する。アプリケーション生成手段は、図９に示すステップＳ２−２−１〜ステップＳ２−２−２までの処理を実行する。
【００７４】
ステップS2-2-1では、アプリケーション情報ファイル160に登録されているアプリケーションのうち，テスト待ち状態のアプリケーションの情報を抽出し，アプリケーション管理クライアント30で表示可能な形式にアプリケーションリストを生成する。
【００７５】
ここで、アプリケーション管理クライアント30は，HTML形式で表示可能であるものとする。テスト待ち状態のアプリケーションは、versionタグのavailable属性で示されており，available=falseのときは，テスト待ち状態であるものとする。ここで、アプリケーション情報ファイル160には，アプリケーションID1のバージョン番号1.0.1とアプリケーションID3のバージョン番号1.0.2のavailable属性がfalseになっているため，図11のようなテスト可能なアプリケーションリストを生成する。
【００７６】
ステップS2-2-2では、STEP2-2-1で生成したアプリケーションリストをアプリケーション管理クライアント30に送信する。
【００７７】
ステップS2-3では、アプリケーション管理クライアント30は，ステップS2-2-3で送信されたアプリケーションリストを表示デバイス130上に表示する。ここで，図12のようにアプリケーションリストが表示デバイス130上に表示されているものとする。
【００７８】
ステップS2-4では、開発ユーザは，入力デバイス140を用いて表示されたアプリケーションリストからテストするアプリケーションを選択し，送信ボタンを押下する。ここで，開発ユーザはアプリケーションID=1のアプリケーションを選択したものとする。アプリケーション管理クライアント30は、アプリケーションIDをアプリケーション管理サーバ10に送信し，アプリケーションIDを持つIDのアプリケーションの実行に必要なファイルセット180を要求する。
【００７９】
ステップS2-5では、アプリケーション管理サーバ10は、配布手段90を起動する。配布手段90は、図１０に示すステップＳ2-5−1〜ステップＳ2-5−2までの処理を実行する。
【００８０】
ステップS2-5-1では、アプリケーション情報管理手段60を起動し，アプリケーション情報ファイル160から，アプリケーション管理クライアント30より送信されたアプリケーションIDを持つアプリケーションの実行に必要なファイルセット180を特定する。ここで，以下のデータが抽出されたものとする。
＜fileset＞
＜filepath=“/applications/archive/appilcation1_1.0.1.jar”/＞
＜file path=“/applications/lib/lib1.jar”/＞
＜file path=“/applications/lib/lib2.jar”/＞
＜/fileset＞
ここで、アプリケーションIDのアプリケーションが実行するのに必要なファイルは，“/applications/archive/”ディレクトリに置かれている“appilcation1_1.0.1.jar”と，“/applications/lib/”ディレクトリに置かれている“lib1.jar”，“lib2.jar”であることが示されている。
【００８１】
ステップS2-5-2では、アプリケーション管理サーバ10は、ステップS2-5-1で特定したファイルセット180をアプリケーション管理クライアント30に送信する。
【００８２】
ステップS2-6では、アプリケーション管理クライアント30は、起動手段110を起動する。起動手段110は、復号プログラムを呼び出し，ステップS2-5-3で送信されたファイルセット180を復号化して実行する。
【００８３】
以上が，開発ユーザがステップS1でビルドしたアプリケーションの動作確認のための環境を開発ユーザに提供するまでの処理の流れである。
【００８４】
次に，図１３のステップS3-1に進み、開発ユーザがステップS1でビルドしたアプリケーションを利用ユーザに公開できるように設定するまでの処理の流れを，図13，14を用いて具体的に説明する。
【００８５】
ステップS3-1では、アプリケーション管理クライアント30は，アプリケーションIDを送信し，アプリケーションIDを持つアプリケーションの公開の設定を要求する。
【００８６】
ステップS3-2では、アプリケーション管理サーバ10は、アプリケーション情報管理手段60を起動する。アプリケーション情報管理手段60は、図１４に示すステップＳ３−２−１〜ステップＳ３−２−３までの処理を実行する。
【００８７】
ステップS3-2-1では、アプリケーションIDと一致するIDをもつアプリケーション情報をアプリケーション情報ファイル160から抽出する。ここで，以下のデータが抽出できたものとする。
＜application id=“1”＞
＜name＞App1＜/name＞
＜versions＞
＜version id=“1.0.1”available=“false”＞
＜/version＞
＜/versions＞
＜/application＞
ステップS3-2-2では、ステップS3-2-1で抽出したアプリケーション情報に公開フラグを設定する。ここで，以下のように公開フラグを設定したものとする。
＜version id=”1.0.1” available=”true”＞
これは，available=”true”とすることにより，リリースバージョン1.0.1に登録されているファイルセット180が利用可能になったことを示している。
【００８８】
ステップS3-3-3では、公開フラグを設定したアプリケーション情報をアプリケーション情報ファイル160に保管する。
【００８９】
ここまでが，開発ユーザがアプリケーションのバージョンを設定し，そのバージョンのアプリケーションの実行可能ファイルを生成し，動作を確認して，アプリケーションを公開するまでの処理の流れである。
【００９０】
次に，図１５のステップS4-1に進み、利用ユーザが公開されたアプリケーションをダウンロードするまでの処理の流れを，図１５を用いて具体的に説明する。
【００９１】
ステップS4-1では、利用ユーザがアプリケーション管理クライアント30を起動する。
【００９２】
ステップS4-2では、アプリケーション管理クライアント30は認証手段100を起動する。認証手段100は、図１６に示すステップＳ４−２−１〜ステップＳ４−２−６までの処理を実行する。
【００９３】
ステップS4-2-1では、認証手段100は、認証情報230が存在するか確認する。存在する場合は（ステップＳ４−２−１でＹＥＳ），図１５に示すステップS4-3に進む。存在しない場合は（ステップＳ４−２−１でＮＯ），ステップS4-2-2 に進む。ここでは，認証情報230は存在しないものとして，ステップS4-2-2に処理を進める。
【００９４】
ステップS4-2-2では、認証手段100は、アプリケーション管理サーバ10にアクセスする。
【００９５】
ステップS4-2-3では、アプリケーション管理サーバ10は認証サーバ１１にアクセスする。
【００９６】
ステップS4-2-4では、認証サーバ１１は、ログインフォーム210をアプリケーション管理クライアント30に送信する。
【００９７】
ステップS4-2-5では、アプリケーション管理クライアント30は、ログインフォーム210を表示デバイス130上に表示する。ここで，ログインフォーム210は、図19のような構成で表示されているものとする。
【００９８】
ステップS4-2-6では、利用ユーザはログインフォーム210中のテキスト入力部にUser IDとPasswordを入力し，送信ボタンを選択し，入力したデータを認証サーバ１１に送信する。ここで，利用ユーザは以下のデータを入力したものとする。
{User ID, Password} = {yoshida, canon}
次に、図１７のステップS4-2-7に進み、ステップS4-2-7では、認証サーバ１１は，ユーザリスト220からUser IDと一致するIDを持つレコードを抽出する。ここで，ユーザリスト220には図20に示すようなデータが保管されているものとする。
【００９９】
ステップS4-2-8では、User IDと一致するIDを持つデータが存在するならば（ステップS4-2-8でＹＥＳ），ステップS4-2-9に進む。存在しないならば（ステップS4-2-8でＮＯ），エラーメッセージをアプリケーション管理クライアント30に送信し，処理を終了する。ここで，以下のデータが取得できたものとする。
{User ID, Password} = {yoshida, canon}
ステップS4-2-9では、図１６に示すステップS4-2-5で送信されたデータと図１７に示すステップS4-2-7で取得したデータを比較し，UserIDとPasswordが一致するかを確認する。
【０１００】
ステップS4-2-10では、User IDとPasswordが一致しないならば（ステップＳ４−２−１０でＮＯ），エラーメッセージをアプリケーション管理サーバ10に送信し，処理を終了する。UserIDとPasswordが一致するならば（ステップＳ４−２−１０でＹＥＳ），ステップＳ４−２−１１に進む。
【０１０１】
ステップＳ４−２−１１では、User IDをアプリケーション管理サーバ10に送信する。ここで，User IDとPasswordが一致しているので，User IDをアプリケーション管理サーバ10に送信する。次に、図１５のステップS4-3に進む。
【０１０２】
ステップS4-3では、アプリケーション管理サーバ10は，アクセス権制御手段80を起動する。起動されたアクセス権制御手段80は，アクセス権リスト190からUser IDと一致するアプリケーションIDとを取得する。一致するアプリケーションIDが存在しないならば，エラーメッセージをアプリケーション管理クライアント30に送信し，処理を終了する。存在するならば，STEP4-4に処理を進める。ここで，以下のアプリケーションIDが取得できたものとする。
Application ID = {1, 3}
これは，User IDを持つユーザがアプリケーションID1と3のアプリケーションがダウンロード可能であることを示す。
【０１０３】
ステップS4-4では、アプリケーション管理サーバ10は，アプリケーションリスト生成手段70を起動する。起動されたアプリケーションリスト生成手段70は、次のステップＳ４−４−１〜Ｓ４−４−３の処理を実行する。
【０１０４】
ステップS4-4-1では、アプリケーション情報リストから，ステップS4-3で取得したアプリケーションIDと一致するアプリケーション情報を取得する。
【０１０５】
ステップＳ４−４−２では、アプリケーションIDと一致するアプリケーション情報が存在するか否かを判断する。存在しない場合は（ステップＳ４−４−２でＮＯ），エラーメッセージをアプリケーション管理クライアント30に送信し，処理を終了し、存在する場合は（ステップＳ４−４−２でＹＥＳ）、ステップＳ４−４−３に進む。
【０１０６】
ステップS4-4-３では、ステップS4-4-1で取得した情報から，アプリケーションリストを生成し，アプリケーション管理クライアント30に送信する。次に、図１５のステップS4-5に進む。
【０１０７】
ステップS4-5では、アプリケーション管理クライアント30は、ステップS4-4-2で送信されたアプリケーションリストを表示デバイス130上に表示する。ここで，表示デバイス130上には図21のように表示されている。
【０１０８】
ステップSTEP4-6では、利用ユーザは、入力デバイス140を用いて，表示されているアプリケーションリストからダウンロードしたいアプリケーションを選択し，ダウンロードを要求する。
【０１０９】
ステップS4-7では、アプリケーション管理クライアント30は、選択されたアプリケーションのアプリケーションIDをアプリケーション管理サーバ10に送信する。
【０１１０】
ステップS4-8では、ステップS2-5と同様の処理を実施する。
【０１１１】
ステップS4-9では、アプリケーション管理クライアント30は，ステップS4-8-3で送信された実行ファイルをアプリケーション保存ディレクトリに保存する。ここで，以下の場所にファイルを保存したものとする。
C:\applications\application1\1.0.1\
ここまでが，ユーザがアプリケーション管理クライアント30を起動してから，利用したいアプリケーションをダウンロードするまでの処理の流れである。
【０１１２】
次に，図２２のステップS5-1に進み、ダウンロードしたアプリケーションを起動し，アプリケーションがバージョンアップしている場合に，アプリケーションを更新する処理の流れを，図22，23を用いて具体的に示す。ここで、ステップS4-1からステップＳ4-5までの処理が終了しているものとする。
【０１１３】
ステップS5-1では、利用ユーザがアプリケーションを選択し，アプリケーションの更新を要求する。ここで，アプリケーション管理クライアント30は、図24のようなウィンドウで表示されているものとする。また，メニューには図25のような項目があるものとする。ここで，利用ユーザは、アプリケーションリストから更新したいアプリケーションを選択し，メニューの更新項目を選択する。
【０１１４】
ステップS5-2では、アプリケーション管理クライアント30は，アプリケーション管理サーバ10にステップS5-1で利用ユーザが選択したアプリケーションのアプリケーションIDと，現在のアプリケーションを保存するディレクトリに保存されているアプリケーションのバージョン番号とを送信し，更新情報を要求する。ここで，アプリケーション保存ディレクトリに保存されているバージョン番号は1.0.1であるので，アプリケーションID=1，バージョン番号=1.0.1をアプリケーション管理サーバ10に送信する。
【０１１５】
ステップS5-3では、アプリケーション管理サーバ10は、アプリケーション情報管理手段60を起動し，起動されたアプリケーション情報管理手段60は、図２３に示す処理ステップＳ５−３−１〜ステップＳ５−３−５を実行する。
【０１１６】
ステップS5-3-1では、送信されたアプリケーションIDと一致するIDを持つアプリケーション情報をアプリケーション情報リストから抽出し，最新のバージョン番号を取得する。ここで、以下のバージョン番号が取得できたものとする。
Version = 1.0.2
ステップS5-3-2では、ステップS5-3-2で取得されたバージョン番号とステップS5-2でアプリケーション管理クライアント30から送信されたバージョン番号とを比較する。
【０１１７】
ステップS5-3-3では、ステップS5-3-2の比較結果に基づいて、バージョン番号が更新されているか否かを判断する。ステップS5-3-1で取得されたバージョン番号の方が大きい場合は（更新されている）ステップS5-3-4に進み（ステップS5-3-3でＹＥＳ），ステップS5-3-1で取得した最新のバージョン番号をアプリケーション管理クライアント30に送信する。そうでない場合はステップS5-3-5に進み（ステップS5-3-3でＮＯ），ステップS5-2に進みアプリケーション管理クライアント30から送信されたバージョン番号をアプリケーション管理クライアント30に送信する。
【０１１８】
ここで、ステップS5-3-1で取得されたバージョン番号とステップS5-2でアプリケーション管理クライアント30から送信されたバージョン番号を比較してみると，バージョン番号はversion = 1.0.1，バージョン番号はversion = 1.0.2でバージョン番号の方が大きいため，ステップS5-3-1で取得したバージョン番号をアプリケーション管理クライアント30に送信する。次に、図２２のステップS5-4に進む。
【０１１９】
ステップS5-4では、アプリケーション管理クライアント30は，ステップS5-3-3で送信されたバージョン番号とステップS5-2で送信されたバージョン番号とを比較し，一致するならばステップS5の処理を終了し（ステップＳ５でＹＥＳ）、異なるならばステップS5-6に進む（ステップＳ５でＮＯ）。ここでは，送信したバージョン番号と異なるため，ステップS5-6に処理を進める。
【０１２０】
ステップS5-6では、アプリケーション管理クライアント30は，アプリケーションIDとステップS5-4で取得したバージョン番号をアプリケーション管理サーバ10に送信し，ダウンロードを要求する。ここまでが，利用ユーザがアプリケーションの更新を要求したときの，更新されるまでの処理の流れである。
【０１２１】
次に，利用ユーザが明示的にアプリケーションの更新を要求するのではなく，アプリケーションの起動を要求した際に，アプリケーションが更新されている場合に保存しているアプリケーションを更新して起動するまでの処理の流れを，図26を用いて具体的に説明する。ここでもステップS4-1〜ステップＳ4-5までの処理が終了しているものとする。
【０１２２】
ステップS6-1では、利用ユーザがアプリケーションを選択し，起動を要求する。ここで，利用ユーザはアプリケーションID=1のアプリケーションを選択したものとする。
【０１２３】
ステップS6-2では、以下，ステップS5-2と同様の処理を行なう。
【０１２４】
ステップS6-3では、アプリケーション管理クライアント30は、起動手段110を起動し，起動された起動手段110は，STEP2-6と同様の処理を行なう。この処理によって，利用ユーザがアプリケーションの更新を意識すること無く，アプリケーションの更新を行なうことが出来る。
【０１２５】
次に，アプリケーションのバージョンを以前のバージョンに戻す処理の流れを，図27を用いて具体的に説明する。ここでもステップS4-1〜ステップＳ4-5までの処理が終了しているものとする。
【０１２６】
ステップS7-1では、利用ユーザがアプリケーションを選択し，バージョンダウンを要求する。ここで，アプリケーション管理クライアント30は、図24のようなウィンドウで表示されているものとする。また，メニューには図25のような項目があるものとする。ここで，利用ユーザはアプリケーションリストからバージョンダウンしたいアプリケーションを選択し，メニューのバージョンダウン項目を選択する。
【０１２７】
ステップS7-2では、アプリケーション管理クライアント30は，バージョン入力ウィンドウを表示デバイス130上に表示する。ここで，バージョン入力ウィンドウは、図28のような表示のウィンドウであるものとする。
【０１２８】
ステップS7-3では、利用ユーザは，バージョン入力ウィンドウのテキスト入力部にバージョン番号を入力し，送信ボタンを選択する。
【０１２９】
ステップS7-4では、以下，ステップS5-6,ステップＳ6と同様の処理を行なう。
【０１３０】
以上の処理により，利用ユーザが要求するバージョンにアプリケーションを戻すことが出来る。
【０１３１】
次に，利用ユーザがアプリケーション利用中にデータをパーソナルコンピュータ上に保存するときと，保存したデータを読み込むときの処理の流れを，図29，30を用いて具体的に説明する。ここでもステップS4-1〜ステップＳ4-5までの処理が行われているものとし，利用ユーザはアプリケーションを実行中であると仮定する。
【０１３２】
ステップS8-1では、利用ユーザがアプリケーションの機能において，データの保存を要求する。ここで、利用ユーザは、データをディレクトリ”C:\applications\data\data1.dat”に保存することを要求したとする。
【０１３３】
ステップS8-2では、アプリケーション管理クライアント30は，入出力管理手段120を起動し，入出力管理手段120は次のステップＳ８−２−１〜ステップＳ８−２−５までの処理を実行する。
【０１３４】
ステップS8-2-1では、実行中のアプリケーションの出力プロセスを取得する。
【０１３５】
ステップS8-2-2では、取得した出力プロセスから，出力データを取得する。
【０１３６】
ステップS8-2-3では、暗号化プログラムを起動し，ステップS8-2-2で取得した出力データを暗号化する。
【０１３７】
ステップS8-2-4では、出力プロセスから，利用ユーザが要求した保存先のファイルパスを取得する。ここで，ステップS8-1で利用ユーザが要求したファイルパスが取得されたものとする。
【０１３８】
ステップS8-2-5では、ステップS8-2-4で取得したファイルパスにステップS8-2-3で暗号化したデータを保存する。ここまでが，アプリケーション利用中に利用ユーザが保存したデータに対する処理である。次に，保存したデータをアプリケーションで利用するまでの処理の流れを，図30，31を用いて具体的に説明する。
【０１３９】
ステップS9-1では、利用ユーザがアプリケーションの機能において，データのロードを要求する。
【０１４０】
ステップS9-2では、アプリケーション管理クライアント30は、入出力管理手段120を起動し，入出力管理手段120は次のステップＳ９−２−１〜ステップＳ９−２−６までの処理を実行する。
【０１４１】
ステップSTEP9-2-1では、実行中のアプリケーションの入力プロセスを取得する。
【０１４２】
ステップS9-2-2では、取得した入力プロセスから，利用ユーザが要求したデータのファイルパスを取得する。ここで，ステップS8で保存したデータの読み込みを利用ユーザが要求したものとする。従って，ここで得られるファイルパスは”C:\applications\data\data1.dat”となる。
【０１４３】
ステップS9-2-3では、ステップS9-2-2で取得したファイルパスから，ファイルを呼び出し，データを読みこむ。
【０１４４】
ステップS9-2-4では、復号プログラムを起動し，ステップS9-2-3で取得したデータを復号する。
【０１４５】
ステップS9-2-5では、入力プロセスにステップS9-2-4で復号したデータを渡す。これにより，ステップS8で暗号化して保存したデータを，アプリケーションが利用可能な形に復号し，アプリケーションで利用することができる。
【０１４６】
以下、アプリケーション利用中にアルゴリズムを選択的に実行する処理について、図１、図３２、図３５及び図３７を用いて具体的に説明する。
【０１４７】
利用ユーザが入力デバイス140によって表示デバイス130の画面上に表示されたアプリケーションの起動用アイコンをクリックすると、アプリケーション・プログラムがメモリ103'に読み込まれ、アプリケーションが起動する。
【０１４８】
図３５のステップS601では、利用ユーザが、アプリケーションの画面上で機能メニュー、例えば、図３２（a）の“ツール”項目10101の階層下にある項目10102,10301のいずれかをマウス等の入力デバイス140により選択する。次に、アプリケーション制御手段101が、ステップＳ601で選択されたメニュー項目による分岐を行う。
【０１４９】
ステップS602では、サブメニューの連結があるか否かを判断する。サブメニューの連結がある項目については（ステップS602でＹＥＳ）ステップS603に進み、サブメニューの連結がない項目については（ステップS602でＮＯ）ステップS605に進む。
【０１５０】
ステップS603では、アプリケーション制御手段101は、図１のメモリ１０３に格納された図３６のアプリケーションＵＩ構成リストを参照し、Ｓ601で選択された項目に対応するサブメニューを、表示デバイス130の画面上に表示する。
【０１５１】
例えば、図３６のアプリケーションＵＩ構成リスト中で10901で示されるサブメニューの階層１は、図３２（ａ）の10102のように表示され（機能Ａ〜機能Ｆが表示されている）、10902で示されるアルゴリズム選択用のサブメニューの階層２は、10104のように表示される。特に限定しないが、10104は、図３２（ｂ）に示すように、“アルゴリズムX―XXを実行”のように、適当なテキストを補ってメニュー項目に表示されるのが望ましい。
【０１５２】
ステップS604では、アプリケーション制御手段101は、図１のメモリ103'に格納されたアプリケーションＵＩ構成リストを参照し、アルゴリズム選択用のサブメニューの階層２（例えば、図３６の10902の項目）を派生する階層１の項目（ここでは、図３６の“機能Ｂ”であり、図３２の10103に対応する）を、例えば他の項目とは異なる表示（例えば、すること等）をして描画することで強調表示する（その他、異なる色を付けたり、異なる色を一定間隔で点滅させたり（ブリンク表示）、明るさを変えたり、することで強調表示してもよい）。
【０１５３】
ステップS605では、アプリケーション制御手段101は、ステップＳ601で選択された項目がアルゴリズム選択用サブメニュー上で選ばれた項目かどうかを判断し、真ならば（ステップＳ６０５でＹＥＳ）ステップS608へ進み、偽ならば（ステップＳ６０５でＮＯ）ステップS607へ進む。
【０１５４】
ステップS607では、アプリケーション制御手段101は、アルゴリズム選択サブメニュー上の項目以外の項目に対応した機能の処理を実行する（この際、必要に応じてパラメータの入力を行う）。
【０１５５】
ステップS608では、アプリケーション制御手段101は、アルゴリズム選択サブメニュー上のどの項目が選択されたかを判断し、その項目に応じて以下の（ａ）〜（ｃ）のいずれかに分岐する。
（ａ）新アルゴリズム（例えばB-003）の実行用の項目10105の場合では、ステップS609へ進む。
（ｂ）旧アルゴリズム（例えばB-001）の実行用の項目10106の場合では、ステップS611へ進む。
（ｃ）新旧アルゴリズム（例えばB-003とB-001）を並列で実行するための項目10107の場合では、ステップS613へ進む。
【０１５６】
ステップS609では、利用者は、キーボード（入力デバイス140）から、新アルゴリズム（例えばB-003）用のパラメータを入力する。
【０１５７】
ステップS610では、アプリケーションは、入力されたパラメータを新アルゴリズム（例えばB-003）のプログラムに入力して処理させ、結果を表示する（図３３(a)参照）。
【０１５８】
ステップS611では、利用者は、キーボード（入力デバイス140）から、旧アルゴリズム（例えばB-001）のパラメータを入力する。
【０１５９】
ステップS612では、アプリケーション制御手段101は、入力されたパラメータを旧アルゴリズム（例えばB-001）のプログラムに入力して処理させ、結果を表示する（図３３(b)参照）。
【０１６０】
ステップS613では、利用者は、入力デバイス140を用いて新旧両アルゴリズム（例えばB-003、B-001）の両方のパラメータを入力する。ただし、両アルゴリズムのパラメータが全く同じ場合は、一度で入力できるように構成されてもよい。
【０１６１】
ステップS614では、アプリケーション制御手段101は、入力されたパラメータを新旧両アルゴリズム（例えばB-003、B-001）の各プログラムに入力して、図３３（ｃ）に示すように、両方の結果を併記して表示する。このとき、両アルゴリズムによる処理を複数のプロセスを生成し、同時並行で処理して結果を表示してもよいし、１つ１つ順番に処理して夫々の結果を時間差を置いて表示してもよい。このように、新旧アルゴリズムの実行結果を１つのウィンドウ内に併記することができるため、画面が煩雑化したり、新旧アルゴリズムの機能を再度実行する必要がなく、アプリケーションが有する機能毎に、新旧のアルゴリズムのバージョンの違いによる処理結果の比較が容易となる。
【０１６２】
以上のように、本発明によれば、アプリケーション開発側のアプリケーション構成ファイルのバージョン管理とアプリケーション配布のためのバージョン管理，ビルド，テスト，公開設定，ユーザ認証・アクセス制御を組したアプリケーションの配布，バージョンアップ，バージョンダウンを一貫して行なうことで，開発者の意図しないバージョンの使用を減らすことができる。
【０１６３】
さらに、本発明のアプリケーション配布システムが配布するアプリケーションは、そのアプリケーションに組み込まれている機能の中で新旧複数のバージョンのアルゴリズムを有するものについては、その機能に対応したメニューやボタン等のユーザインターフェイス（以下ＵＩと省略）の項目を強調表示する手段、同ＵＩ項目の位置から派生してアルゴリズム選択実行用のサブＵＩ（サブメニュー等）を表示する手段、同サブＵＩ上にその機能の新旧複数のバージョンのアルゴリズムを単独で実行するための項目、および新旧複数のアルゴリズムを並列で実行するための項目を並べて表示する手段、前記サブＵＩから前記アルゴリズムを単独で実行するための項目が選択された際には対応するバージョンのアルゴリズムによるプログラムを起動し計算結果を表示する手段、同サブＵＩから前記複数アルゴリズムを並列で実行するための項目が選択された際には対応する複数のプログラムを並列で又は順次に起動し複数の計算結果を併記して表示する手段を有することで、同一機能の新旧のアルゴリズムによる処理結果の比較を容易に行うことができる。
【図面の簡単な説明】
【０１６４】
【図１】本発明の好適な実施の形態に係るシステム構成図である。
【図２】アプリケーション情報ファイルの例を示す図である
【図３】バージョンの設定，ビルド，情報の追加までの処理の流れ図である。
【図４】バージョン設定手段の処理の流れ図である。
【図５】ビルド手段の処理の流れ図である。
【図６】バージョン設定フォームのイメージ図である。
【図７】更新したアプリケーション情報ファイルの例を示す図である。
【図８】アプリケーションテストの処理の流れ図である。
【図９】アプリケーションリスト生成手段の処理の流れ図である。
【図１０】配布手段の処理の流れ図である。
【図１１】テスト可能なアプリケーションリストの例を示す図である。
【図１２】テスト可能なアプリケーションリストのイメージ図である。
【図１３】公開設定の処理の流れ図である。
【図１４】アプリケーション情報管理手段の処理の流れ図である。
【図１５】アプリケーションダウンロードの処理の流れ図である。
【図１６】認証手段の処理の流れ図である。
【図１７】認証手段の処理の流れ図である。
【図１８】アプリケーションリスト生成手段の処理の流れ図である。
【図１９】ログインフォームのイメージ図である。
【図２０】ユーザリストの例を示す図である。
【図２１】ダウンロードアプリケーションリストのイメージ図である。
【図２２】アプリケーション更新の処理の流れ図である。
【図２３】アプリケーション情報管理手段の処理の流れ図である。
【図２４】アプリケーション管理クライアントのイメージ図である。
【図２５】アプリケーション管理クライアントのメニューのイメージ図である。
【図２６】アプリケーションの更新と起動の処理の流れ図である。
【図２７】バージョンダウンの処理の流れ図である。
【図２８】出力データ管理の処理の流れ図である。
【図２９】出力の際の，入出力管理手段の処理の流れ図である。
【図３０】入力データ管理の処理の流れ図である。
【図３１】入力の際の，入出力管理手段の処理の流れ図である。
【図３２】アルゴリズム選択実行処理実行時の画面の様子について示した図である。
【図３３】アルゴリズム選択実行メニューの各項目を選択した際の処理結果の出力の様子について示した図である。
【図３４】アルゴリズムバージョンテーブルについて示した図である。
【図３５】アルゴリズム選択実行処理の流れを示したフロー図である。
【図３６】アプリケーションＵＩ構成リストについて示した図である。
【符号の説明】
【０１６５】
10 アプリケーション管理サーバ
11 認証サーバ
12 バージョン管理サーバ
20 ネットワーク
30 アプリケーション管理クライアント
40 バージョン設定手段
50 ビルド手段
60 アプリケーション情報管理手段
70 アプリケーションリスト生成手段
80 アクセス権制御手段
90 配布手段
100 認証手段
110 起動手段
120 入出力管理手段
130 表示デバイス
140 入力デバイス
150 バージョン管理手段
160 アプリケーション情報ファイル
170 バージョン設定フォーム
180 実行ファイルセット
190 アクセス権リスト
200 ファイルセット
210 ログインフォーム
220 ユーザリスト
230 認証情報
10101 メインメニュー上の“ツール”項目
10102 “ツール”項目を押したときに表示されるサブメニュー
10103 強調表示されたメニュー項目
10104 アルゴリズム選択実行用サブメニュー
10105 新バージョン・アルゴリズムを単独で実行するための項目
10106 旧バージョン・アルゴリズムを単独で実行するための項目
10107 新旧複数バージョンのアルゴリズムを並列で実行するための項目
101 アプリケーション制御手段
102 記憶手段
103, 103'メモリ
10901 サブメニュー用の情報の例
10902 アルゴリズム選択実行用サブメニュー用の情報の例
【図１】
2005174025.tif 000003
【図２】
2005174025.tif 000004
【図３】
2005174025.tif 000005
【図４】
2005174025.tif 000006
【図５】
2005174025.tif 000007
【図６】
2005174025.tif 000008
【図７】
2005174025.tif 000009
【図８】
2005174025.tif 000010
【図９】
2005174025.tif 000011
【図１０】
2005174025.tif 000012
【図１１】
2005174025.tif 000013
【図１２】
2005174025.tif 000014
【図１３】
2005174025.tif 000015
【図１４】
2005174025.tif 000016
【図１５】
2005174025.tif 000017
【図１６】
2005174025.tif 000018
【図１７】
2005174025.tif 000019
【図１８】
2005174025.tif 000020
【図１９】
2005174025.tif 000021
【図２０】
2005174025.tif 000022
【図２１】
2005174025.tif 000023
【図２２】
2005174025.tif 000024
【図２３】
2005174025.tif 000025
【図２４】
2005174025.tif 000026
【図２５】
2005174025.tif 000027
【図２６】
2005174025.tif 000028
【図２７】
2005174025.tif 000029
【図２８】
2005174025.tif 000030
【図２９】
2005174025.tif 000031
【図３０】
2005174025.tif 000032
【図３１】
2005174025.tif 000033
【図３２】
2005174025.tif 000034
【図３３】
2005174025.tif 000035
【図３４】
2005174025.tif 000036
【図３５】
2005174025.tif 000037
【図３６】
2005174025.tif 000038