(57)【要約】      （修正有）【課題】プログラムの著作権保護を強靭にする。【解決手段】第一情報処理装置１１と第二情報処理装置１２を具備する情報処理システムであって、前記第一情報処理装置１１は、第一プログラムを読み出し、少なくとも前記第一プログラムを実行し、所定の結果を得る実行部１１０６を具備し、前記実行部１１０６は、前記第一プログラムと一体となり所定の実行結果を得られるプログラムであるサブプログラムを前記第二情報処理装置１２から受信するサブプログラム受信手段１１０６３と、前記サブプログラムを前記第一プログラムに組み込んで実行する実行手段１１０６５を具備し、前記第二情報処理装置１２は、サブプログラムを取得するサブプログラム取得部１２０７と、前記サブプログラム取得部１２０７が取得した前記サブプログラムを、前記第一情報処理装置１１に送信するサブプログラム送信部１２０８を具備する。【選択図】図２
2007249696.tif 000002
【特許請求の範囲】
【請求項１】
第一情報処理装置と第二情報処理装置を具備する情報処理システムであって、
前記第一情報処理装置は、
第一プログラムを格納し得る第一プログラム格納部と、
前記第一プログラム格納部から第一プログラムを読み出し、少なくとも前記第一プログラムを実行し、所定の結果を得る実行部を具備し、
前記実行部は、
前記第一プログラムと一体となり所定の実行結果を得られるプログラムであるサブプログラムを前記第二情報処理装置から受信するサブプログラム受信手段と、
前記サブプログラム受信手段が受信した前記サブプログラムを前記第一プログラムに組み込んで実行する実行手段を具備し、
前記第二情報処理装置は、
1以上のサブプログラムを格納しているサブプログラム格納部と
前記サブプログラム格納部からサブプログラムを取得するサブプログラム取得部と、
前記サブプログラム取得部が取得した前記サブプログラムを、前記第一情報処理装置に送信するサブプログラム送信部を具備する情報処理システム。
【請求項２】
前記実行部は、
前記第一プログラムに記述されている情報であり、サブプログラムを前記第二情報処理装置から取得するための情報であるサブプログラム取得情報を、前記第一プログラムから読み取り、当該サブプログラム取得情報を読み取った場合に、前記サブプログラムを識別する情報であるサブプログラム識別子を含み、前記サブプログラムの送信を要求する情報である要求情報を構成する要求情報構成手段と、
前記要求情報を前記第二情報処理装置に送信する要求情報送信手段とをさらに具備し、
前記サブプログラム受信手段は、前記要求情報の送信に対応して、前記第二情報処理装置から前記サブプログラムを受信し、
前記第二情報処理装置は、
前記第一情報処理装置から前記要求情報を受信する要求情報受信部をさらに具備し、
前記サブプログラム取得部は、
前記要求情報が有するサブプログラム識別子と対になるサブプログラムを、前記サブプログラム情報格納部から取得する請求項1記載の情報処理システム。
【請求項３】
前記サブプログラム送信部は、
前記第一情報処理装置からの要求なしに、前記サブプログラム取得部が取得した前記サブプログラムを、前記第一情報処理装置に送信する請求項1記載の情報処理システム。
【請求項４】
前記実行部は、
前記サブプログラムの送信許可を得るための認証情報を取得する認証情報取得手段と、
前記認証情報を前記第二情報処理装置に送信する認証情報送信手段をさらに具備し、
前記第二情報処理装置は、
前記認証情報を受信する認証情報受信部と、
前記認証情報に対して認証処理し、認証許可であるか認証不許可であるかを判断する認証部と、
前記サブプログラム送信部は、
前記認証部が認証許可であると判断した場合のみ、前記サブプログラムを、前記第一情報処理装置に送信する請求項１から請求項３いずれか記載の情報処理システム。
【請求項５】
前記認証部は、
２以上のサブプログラムを送信する場合に、前記認証情報に対して認証処理し、認証許可であるか認証不許可であるかをサブプログラムごとに判断し、
前記サブプログラム送信部は、
前記認証部が認証許可であると判断した場合のみ、前記各サブプログラムを前記第一情報処理装置に送信する請求項４記載の情報処理システム。
【請求項６】
前記認証情報は、前記第一プログラムを識別する情報である第一プログラム識別子を含み、
前記認証部は、
前記第一プログラム識別子で識別される第一プログラムの正当性を判断し、正当であると判断した場合のみ認証許可とし、不当であると判断した場合は認証不許可であると判断する請求項４または請求項５記載の情報処理システム。
【請求項７】
前記認証情報は、
前記第一情報処理装置のユーザを識別する情報であるユーザ識別子を含み、
前記認証部は、
前記ユーザ識別子で識別されるユーザの正当性を判断し、正当であると判断した場合のみ認証許可とし、不当であると判断した場合は認証不許可であると判断する請求項４または請求項５記載の情報処理システム。
【請求項８】
前記ユーザ識別子は、
前記第一情報処理装置にログインする際に入力したユーザ識別子、または前記第二情報処理装置にアクセスする際に入力したユーザ識別子である請求項７記載の情報処理システム。
【請求項９】
前記実行部は、
前記第二情報処理装置から認証情報を構成する情報である認証構成情報を受信する認証構成情報受信手段をさらに具備し、
前記認証情報取得手段は、
前記認証構成情報を有する認証情報を構成し、
前記第二情報処理装置は、
前記認証構成情報を構成する認証構成情報取得部と、
前記認証構成情報を前記第一情報処理装置に送信する認証構成情報送信部をさらに具備する請求項４から請求項８いずれか記載の情報処理システム。
【請求項１０】
前記第一情報処理装置は、
ホームページのダウンロードの指示を受け付ける受付部と、
前記指示に対応して、ホームページの送信を促すページ要求を送信するページ要求送信部と、
前記ページ要求の送信に対応して、ホームページを受信するホームページ受信部と、
前記ホームページを出力するホームページ出力部を具備し、
前記第一プログラムは、前記ホームページに付属するスクリプトであり、
前記第二情報処理装置は、
1以上のホームページを格納しているホームページ格納部と、
前記ページ要求を受信するページ要求受信部と、
前記ページ要求に対応するホームページと当該ホームページに付属する第一プログラムを前記ホームページ格納部から取得するホームページ取得部と、
前記ホームページ取得部が取得したホームページと第一プログラムを前記第一情報処理装置に送信するホームページ送信部とを具備する請求項１から請求項９いずれか記載の情報処理システム。
【請求項１１】
前記サブプログラム格納部のサブプログラムは、暗号化されており、
前記実行部は、
前記サブプログラム受信手段が受信したサブプログラムを復号化する復号化手段をさらに具備し、
前記実行手段は、前記復号化手段が復号化した前記サブプログラムを前記第一プログラムに組み込んで実行する請求項１から請求項１０いずれか記載の情報処理システム。
【請求項１２】
前記サブプログラムは、関数の実行内容を示す命令列であり、
前記第一プログラムは、１以上の関数の実行内容の記述がなく、
前記実行手段は、
前記サブプログラム受信手段が受信した前記サブプログラムが示す関数の実行内容、または前記復号化手段が復号化した前記サブプログラムが示す関数の実行内容を、前記第一プログラムの空の関数に組み込んで実行する請求項１から請求項１１いずれか記載の情報処理システム。
【請求項１３】
請求項１から請求項１２いずれか記載の情報処理システムを構成する第一情報処理装置。
【請求項１４】
請求項１から請求項１２いずれか記載の情報処理システムを構成する第二情報処理装置。
【請求項１５】
コンピュータに、
格納されている第一プログラムを読み出し、少なくとも前記第一プログラムを実行し、所定の結果を得る実行ステップを実行させ、
前記実行ステップは、
前記第一プログラムと一体となり所定の実行結果を得られるプログラムであるサブプログラムを第二情報処理装置から受信するサブプログラム受信サブステップと、
前記サブプログラム受信サブステップで受信した前記サブプログラムを前記第一プログラムに組み込んで実行する実行サブステップを具備するプログラム。
【請求項１６】
前記実行ステップは、
前記第一プログラムに記述されている情報であり、サブプログラムを前記第二情報処理装置から取得するための情報であるサブプログラム取得情報を、前記第一プログラムから読み取り、当該サブプログラム取得情報を読み取った場合に、前記サブプログラムを識別する情報であるサブプログラム識別子を含み、前記サブプログラムの送信を要求する情報である要求情報を構成する要求情報構成サブステップと、
前記要求情報を前記第二情報処理装置に送信する要求情報送信サブステップとをさらに具備し、
前記サブプログラム受信サブステップは、
前記要求情報の送信に対応して、前記第二情報処理装置から前記サブプログラムを受信する請求項１５記載のプログラム。
【請求項１７】
前記実行ステップは、
前記サブプログラムの送信許可を得るための認証情報を取得する認証情報取得サブステップと、
前記認証情報を前記第二情報処理装置に送信する認証情報送信サブステップをさらに具備する請求項１５または請求項１６記載のプログラム。
【請求項１８】
前記実行ステップは、
前記第二情報処理装置から認証情報を構成する情報である認証構成情報を受信する認証構成情報受信サブステップをさらに具備し、
前記認証情報取得サブステップは、前記認証構成情報を有する認証情報を構成する請求項１５から請求項１７いずれか記載のプログラム。
【請求項１９】
コンピュータに、
格納しているサブプログラムを取得するサブプログラム取得ステップと、
前記サブプログラム取得ステップで取得した前記サブプログラムを、前記第一情報処理装置に送信するサブプログラム送信ステップを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムの全部を外部に公開することなく、プログラムのセキュリティーを担保できる情報処理システム等に関するものである。
【背景技術】
【０００２】
通常、インターネットやＷｅｂの環境で良く利用されているプログラム（スクリプトを含む）であるＪａｖａＳｃｒｉｐｔ（Ｊａｖａは登録商標）について、ユーザはＵＲＬを用いて、プログラムを閲覧できる。具体的には、Ｗｅｂブラウザのソース表示機能を使えばＨＴＭＬのソースが表示され、ＪａｖａＳｃｒｉｐｔファイル（ｊｓファイル）もＨＴＭＬにファイル名が書かれているため簡単にダウンロードされてしまう。また、ブラウザで表示されたＨＴＭＬやＪａｖａＳｃｒｉｐｔなどのファイルは必ずローカルのＰＣにキャッシュされるため、キャッシュファイルからもソースを見られてしまう。そのため、ＨＴＭＬやＪａｖａＳｃｒｉｐｔファイルに直接書かれたプログラムを隠ぺいすることができず、プログラムの著作権が容易に侵害されることがあった。
【０００３】
一方、従来のプログラム隠蔽方法として、プログラム内容の秘匿をソースレベルで行うことができ、且つ特別手を加える必要がなく単にコンパイルするだけでオブジェクトレベルでも隠蔽化できるソースコードを提供する方法があった（例えば、特許文献１参照）。このプログラム隠蔽方法を採用するソースプログラム変換ツールは、ソースコードＳ１に含まれる定数データの初期化部を、可逆な変換処理によって解読困難な状態に変換した代替定数データの初期化部に置き換え、前記定数データが参照される前の箇所に前記代替定数データから元の定数データを復元する逆変換処理のソースを挿入したソースコードＳ２を生成する。
【特許文献１】特開２００３−２８０７５４号公報（第１頁、第１図等）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の情報処理システムにおいては、インターネット等のネットワーク環境で送受信され、実行されるプログラムの隠蔽については、考慮されていなかった。
【０００５】
また、上述したように、インターネット環境において、サーバ装置が保持しているホームページに附属するプログラムは、クライアント装置にダウンロードされた後に、クライアント装置において、自由に閲覧可能となり、そのプログラムの著作権が侵害され易い環境となっていた。
【課題を解決するための手段】
【０００６】
本第一の発明の情報処理システムは、第一情報処理装置と第二情報処理装置を具備する情報処理システムであって、前記第一情報処理装置は、第一プログラムを格納し得る第一プログラム格納部と、前記第一プログラム格納部から第一プログラムを読み出し、少なくとも前記第一プログラムを実行し、所定の結果を得る実行部を具備し、前記実行部は、前記第一プログラムと一体となり所定の実行結果を得られるプログラムであるサブプログラムを前記第二情報処理装置から受信するサブプログラム受信手段と、前記サブプログラム受信手段が受信した前記サブプログラムを前記第一プログラムに組み込んで実行する実行手段を具備し、前記第二情報処理装置は、1以上のサブプログラムを格納しているサブプログラム格納部と前記サブプログラム格納部からサブプログラムを取得するサブプログラム取得部と、前記サブプログラム取得部が取得した前記サブプログラムを、前記第一情報処理装置に送信するサブプログラム送信部を具備する情報処理システムである。
【０００７】
かかる構成により、プログラムの著作権の保護ができる。
【０００８】
また、本第二の発明の情報処理システムは、第一の発明に対して、前記実行部は、前記第一プログラムに記述されている情報であり、サブプログラムを前記第二情報処理装置から取得するための情報であるサブプログラム取得情報を、前記第一プログラムから読み取り、当該サブプログラム取得情報を読み取った場合に、前記サブプログラムを識別する情報であるサブプログラム識別子を含み、前記サブプログラムの送信を要求する情報である要求情報を構成する要求情報構成手段と、前記要求情報を前記第二情報処理装置に送信する要求情報送信手段とをさらに具備し、前記サブプログラム受信手段は、前記要求情報の送信に対応して、前記第二情報処理装置から前記サブプログラムを受信し、前記第二情報処理装置は、前記第一情報処理装置から前記要求情報を受信する要求情報受信部をさらに具備し、前記サブプログラム取得部は、前記要求情報が有するサブプログラム識別子と対になるサブプログラムを、前記サブプログラム情報格納部から取得する情報処理システムである。
【０００９】
かかる構成により、プログラムの著作権の保護ができる。
【００１０】
また、本第三の発明の情報処理システムは、第一の発明に対して、前記サブプログラム送信部は、前記第一情報処理装置からの要求なしに、前記サブプログラム取得部が取得した前記サブプログラムを、前記第一情報処理装置に送信する情報処理システムである。
【００１１】
かかる構成により、第一情報処理装置と第二情報処理装置の通信量を減らして、かつ、プログラムの著作権の保護ができる。
【００１２】
また、本第四の発明の情報処理システムは、第一から第三いずれかの発明に対して、前記実行部は、前記サブプログラムの送信許可を得るための認証情報を取得する認証情報取得手段と、前記認証情報を前記第二情報処理装置に送信する認証情報送信手段をさらに具備し、前記第二情報処理装置は、前記認証情報を受信する認証情報受信部と、前記認証情報に対して認証処理し、認証許可であるか認証不許可であるかを判断する認証部と、前記サブプログラム送信部は、前記認証部が認証許可であると判断した場合のみ、前記サブプログラムを、前記第一情報処理装置に送信する情報処理システムである。
【００１３】
かかる構成により、プログラムの著作権の保護がより強靭にできる。
【００１４】
また、本第五の発明の情報処理システムは、第四の発明に対して、前記認証部は、２以上のサブプログラムを送信する場合に、前記認証情報に対して認証処理し、認証許可であるか認証不許可であるかをサブプログラムごとに判断し、前記サブプログラム送信部は、前記認証部が認証許可であると判断した場合のみ、前記各サブプログラムを前記第一情報処理装置に送信する情報処理システムである。
【００１５】
かかる構成により、サブプログラムごとに、著作権の保護がより強靭にできる。
【００１６】
また、本第六の発明の情報処理システムは、第四、第五いずれかの発明に対して、前記認証情報は、前記第一プログラムを識別する情報である第一プログラム識別子を含み、前記認証部は、前記第一プログラム識別子で識別される第一プログラムの正当性を判断し、正当であると判断した場合のみ認証許可とし、不当であると判断した場合は認証不許可であると判断する情報処理システムである。
【００１７】
かかる構成により、プログラムの著作権の保護がより強靭にできる。
【００１８】
また、本第七の発明の情報処理システムは、第四、第五いずれかの発明に対して、前記認証情報は、前記第一情報処理装置のユーザを識別する情報であるユーザ識別子を含み、前記認証部は、前記ユーザ識別子で識別されるユーザの正当性を判断し、正当であると判断した場合のみ認証許可とし、不当であると判断した場合は認証不許可であると判断する情報処理システムである。
【００１９】
かかる構成により、プログラムの著作権の保護がより強靭にできる。
【００２０】
また、本第八の発明の情報処理システムは、第七の発明に対して、前記ユーザ識別子は、前記第一情報処理装置にログインする際に入力したユーザ識別子、または前記第二情報処理装置にアクセスする際に入力したユーザ識別子である情報処理システムである。
【００２１】
かかる構成により、プログラムの著作権の保護がより強靭にできる。
【００２２】
また、本第九の発明の情報処理システムは、第四から第八いずれかの発明に対して、前記実行部は、前記第二情報処理装置から認証情報を構成する情報である認証構成情報を受信する認証構成情報受信手段をさらに具備し、前記認証情報取得手段は、前記認証構成情報を有する認証情報を構成し、前記第二情報処理装置は、前記認証構成情報を構成する認証構成情報取得部と、前記認証構成情報を前記第一情報処理装置に送信する認証構成情報送信部をさらに具備する情報処理システムである。
【００２３】
かかる構成により、プログラムの著作権の保護がさらに強靭にできる。
【００２４】
また、本第十の発明の情報処理システムは、第一から第九いずれかの発明に対して、前記第一情報処理装置は、ホームページのダウンロードの指示を受け付ける受付部と、前記指示に対応して、ホームページの送信を促すページ要求を送信するページ要求送信部と、前記ページ要求の送信に対応して、ホームページを受信するホームページ受信部と、前記ホームページを出力するホームページ出力部を具備し、前記第一プログラムは、前記ホームページに付属するスクリプトであり、前記第二情報処理装置は、１以上のホームページを格納しているホームページ格納部と、前記ページ要求を受信するページ要求受信部と、前記ページ要求に対応するホームページと当該ホームページに付属する第一プログラムを前記ホームページ格納部から取得するホームページ取得部と、前記ホームページ取得部が取得したホームページと第一プログラムを前記第一情報処理装置に送信するホームページ送信部とを具備する情報処理システムである。
【００２５】
かかる構成により、プログラムの著作権の保護ができる。
【００２６】
また、本第十一の発明の情報処理システムは、第一から第十いずれかの発明に対して、前記サブプログラム格納部のサブプログラムは、暗号化されており、前記実行部は、前記サブプログラム受信手段が受信したサブプログラムを復号化する復号化手段をさらに具備し、前記実行手段は、前記復号化手段が復号化した前記サブプログラムを前記第一プログラムに組み込んで実行する情報処理システムである。
【００２７】
かかる構成により、プログラムの著作権の保護がさらに強靭にできる。
【００２８】
また、本第十二の発明の情報処理システムは、第一から第十一いずれかの発明に対して、前記サブプログラムは、関数の実行内容を示す命令列であり、前記第一プログラムは、１以上の関数の実行内容の記述がなく、前記実行手段は、前記サブプログラム受信手段が受信した前記サブプログラムが示す関数の実行内容、または前記復号化手段が復号化した前記サブプログラムが示す関数の実行内容を、前記第一プログラムの空の関数に組み込んで実行する情報処理システムである。
【００２９】
かかる構成により、プログラムの著作権の保護ができる。
【発明の効果】
【００３０】
本発明による情報処理システムによれば、プログラムの著作権が保護できる。
【発明を実施するための最良の形態】
【００３１】
以下、情報処理システム等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
（実施の形態１）
【００３２】
図１は、本実施の形態における情報処理システムの概念図である。情報処理システムは、第一情報処理装置１１、第二情報処理装置１２を具備する。ここでは、第一情報処理装置１１は、１以上存在するクライアント装置である。第二情報処理装置１２は、例えば、ホームページを格納しているサーバ装置である。第一情報処理装置１１と第二情報処理装置１２は、例えば、インターネットで接続されており、通信可能である。
【００３３】
図２は、本実施の形態における情報処理システムのブロック図である。
【００３４】
第一情報処理装置１１は、受付部１１０１、ページ要求送信部１１０２、ホームページ受信部１１０３、ホームページ出力部１１０４、第一プログラム格納部１１０５、実行部１１０６を具備する。
【００３５】
実行部１１０６は、要求情報構成手段１１０６１、要求情報送信手段１１０６２、サブプログラム受信手段１１０６３、復号化手段１１０６４、実行手段１１０６５を具備する。
【００３６】
第二情報処理装置１２は、ホームページ格納部１２０１、サブプログラム格納部１２０２、ページ要求受信部１２０３、ホームページ取得部１２０４、ホームページ送信部１２０５、要求情報受信部１２０６、サブプログラム取得部１２０７、サブプログラム送信部１２０８を具備する。
【００３７】
受付部１１０１は、ホームページのダウンロードの指示や、何らかの動作の開始指示などを受け付ける。指示等の入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。指示は、例えば、「ＵＲＬ」の情報と、当該「ＵＲＬ」で識別されるホームページの送信を促す指示である。受付部１１０１は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
【００３８】
ページ要求送信部１１０２は、受付部１１０１が受け付けた指示に対応して、ホームページの送信を促すページ要求を送信する。ページ要求は、例えば、コマンド「ページ送信  ｈｔｔｐ：／／ｗｗｗ．ｈｏｗｓ．ｗｓ／」である。ページ要求送信部１１０２は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
【００３９】
ホームページ受信部１１０３は、ページ要求送信部１１０２におけるページ要求の送信に対応して、ホームページを受信する。なお、ホームページは、例えば、ＨＴＭＬやＸＭＬ等で記述されている。ただし、ホームページの記述言語等は問わない。また、ホームページの送受信のプロトコルは、例えば、ｈｔｔｐであるが、問わない。ホームページ受信部１１０３は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
【００４０】
ホームページ出力部１１０４は、ホームページを出力する。ここで、出力とは、ディスプレイへの表示、プリンタへの印字、外部の装置への送信、記録媒体への蓄積等を含む概念である。ホームページ出力部１１０４は、例えば、Ｗｅｂブラウザである。ホームページは、ＨＴＭＬやＸＭＬや、その他のマークアップ言語で記載されている。ただし、ホームページは、マークアップ言語で記載されておらず、タグなしのテキストファイル等でも良い。ホームページのデータ構造や記述言語等は問わない。ホームページは、動画や静止画や音声データや楽音データ等を含んでも良い。本実施の形態において、ホームページとは、Ｗｅｂ上のホームページを想定して説明するが、データ、情報であれば良い。ホームページ出力部１１０４は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。ホームページ出力部１１０４は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
【００４１】
第一プログラム格納部１１０５は、少なくとも一部のプログラム（サブプログラム）が隠蔽されたプログラムである第一プログラムを格納し得る。例えば、第一プログラムは、ホームページに付属するスクリプトである。例えば、第一プログラムは、１以上の関数の実行内容の記述がない、プログラムである。例えば、第一プログラムは、ｊａｖａ（ｊａｖａは登録商標）スクリプトで記載されている。ただし、第一プログラムの言語は、アセンブラ、Ｃ言語、ｐｅｒｌ、Ｃ＋＋等、問わない。また、第一プログラムは、第二情報処理装置１２から受信したプログラムでも良いし、予め格納しているプログラムでも良いし、第三の装置から受信したプログラムでも良いし、記録媒体から読み出したプログラムでも良い。第一プログラム格納部１１０５は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【００４２】
実行部１１０６は、第一プログラム格納部１１０５から第一プログラムを読み出し、少なくとも第一プログラムを実行し、所定の結果を得る。実行部１１０６は、受信したサブプログラムを第一プログラムに組み込んで、当該組み込んだ後のプログラムを実行し、所定の結果を得る。なお、第一プログラムだけでは、所定の結果を得ることができない。サブプログラムは、第一プログラムと一体となり所定の実行結果を得られるプログラムである。サブプログラムは、例えば、関数の実行内容を示す命令列である。サブプログラムの具体例については、後述する。実行部１１０６は、通常、ＭＰＵやメモリ等から実現され得る。実行部１１０６の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００４３】
要求情報構成手段１１０６１は、要求情報を構成する。要求情報構成手段１１０６１は、第一プログラムに記述されているサブプログラム取得情報を読み取った場合に、要求情報を構成する。要求情報は、サブプログラムの送信を要求する情報である。要求情報は、例えば、サブプログラムを識別する情報であるサブプログラム識別子を含む。また、サブプログラム識別子は、例えば、関数名の文字列や、関数名を特定するＩＤや数字などである。サブプログラム取得情報は、第一プログラムに記述されている情報であり、サブプログラムを第二情報処理装置１２から取得するための情報である。要求情報のデータ構造は問わない。要求情報やサブプログラム取得情報の例については後述する。要求情報構成手段１１０６１は、通常、ＭＰＵやメモリ等から実現され得る。要求情報構成手段１１０６１の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００４４】
要求情報送信手段１１０６２は、要求情報構成手段１１０６１が構成した要求情報を第二情報処理装置１２に送信する。要求情報送信手段１１０６２は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
【００４５】
サブプログラム受信手段１１０６３は、第一プログラムと一体となり所定の実行結果を得られるプログラムであるサブプログラムを第二情報処理装置１２から受信する。ここで、「一体」とは、第一プログラムと1以上のサブプログラムをともに実行することにより、所定の結果が得られることを示す。サブプログラム受信手段１１０６３は、通常、要求情報の送信に対応して、第二情報処理装置１２からサブプログラムを受信する。サブプログラム受信手段１１０６３は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
【００４６】
復号化手段１１０６４は、サブプログラム受信手段１１０６３が受信したサブプログラムを復号化する。復号化の方法は、公開鍵による方法、秘密鍵による方法等、問わない。復号化処理は公知技術であるので、説明は省略する。復号化手段１１０６４は、通常、ＭＰＵやメモリ等から実現され得る。復号化手段１１０６４の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００４７】
実行手段１１０６５は、サブプログラム受信手段１１０６３が受信したサブプログラムを第一プログラムに組み込んで（第一プログラムとサブプログラムをともに）実行する。また、実行手段１１０６５は、復号化手段１１０６４が復号化したサブプログラムを第一プログラムに組み込んで（第一プログラムと復号化したサブプログラムをともに）実行しても良い。実行手段１１０６５は、サブプログラム受信手段１１０６３が受信したサブプログラムが示す関数の実行内容、または復号化手段１１０６４が復号化したサブプログラムが示す関数の実行内容を、第一プログラムの空の関数に組み込んで実行する。実行手段１１０６５は、通常、ＭＰＵやメモリ等から実現され得る。実行手段１１０６５の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００４８】
ホームページ格納部１２０１は、1以上のホームページを格納している。ホームページは、当該ホームページに付属する第一プログラムをも有する。ホームページ格納部１２０１は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【００４９】
サブプログラム格納部１２０２は、1以上のサブプログラムを格納している。サブプログラムは、例えば、サブプログラムを識別するサブプログラム識別子を属性値として有する。サブプログラム格納部１２０２は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【００５０】
ページ要求受信部１２０３は、第一情報処理装置１１からページ要求を受信する。ページ要求受信部１２０３は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
【００５１】
ホームページ取得部１２０４は、ページ要求に対応するホームページと当該ホームページに付属する第一プログラムをホームページ格納部１２０１から取得する。ホームページ取得部１２０４は、通常、ＭＰＵやメモリ等から実現され得る。ホームページ取得部１２０４の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００５２】
ホームページ送信部１２０５は、ホームページ取得部１２０４が取得したホームページと第一プログラムを第一情報処理装置１１に送信する。ホームページ送信部１２０５は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
【００５３】
要求情報受信部１２０６は、第一情報処理装置１１から要求情報を受信する。要求情報受信部１２０６は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
【００５４】
サブプログラム取得部１２０７は、サブプログラム格納部１２０２からサブプログラムを取得する。サブプログラム取得部１２０７は、例えば、要求情報が有するサブプログラム識別子と対になるサブプログラムを、サブプログラム情報格納部１２０２から取得する。サブプログラム取得部１２０７は、通常、ＭＰＵやメモリ等から実現され得る。サブプログラム取得部の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００５５】
サブプログラム送信部１２０８は、サブプログラム取得部１２０７が取得したサブプログラムを、第一情報処理装置１１に送信する。サブプログラム送信部１２０８は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
【００５６】
次に、情報処理システムの動作について説明する。まず、第一情報処理装置１１の動作について、図３、図４のフローチャートを用いて説明する。
【００５７】
（ステップＳ３０１）受付部１１０１は、ユーザから指示を受け付けたか否かを判断する。指示を受け付ければステップＳ３０２に行き、指示を受け付けなければステップＳ３０１に戻る。
【００５８】
（ステップＳ３０２）ページ要求送信部１１０２は、ステップＳ３０１で受け付けた指示がホームページの送信を要求する指示であるか否かを判断する。ホームページの送信を要求する指示であればステップＳ３０３に行き、ホームページの送信を要求する指示でなければステップＳ３０８に行く。
【００５９】
（ステップＳ３０３）ページ要求送信部１１０２は、ホームページの送信を促すページ要求を構成する。ページ要求送信部１１０２は、例えば、ユーザがキーボードで入力したＵＲＬを読み出し、当該ＵＲＬを含むページ要求（コマンド）を構成する。
【００６０】
（ステップＳ３０４）ページ要求送信部１１０２は、ステップＳ３０３で構成したページ要求を送信する。
【００６１】
（ステップＳ３０５）ホームページ受信部１１０３は、ステップＳ３０４におけるページ要求の送信に対応して、ホームページを受信したか否かを判断する。ホームページを受信すればステップＳ３０６に行き、ホームページを受信しなければステップＳ３０５に戻る。
【００６２】
（ステップＳ３０６）ホームページ出力部１１０４は、ステップＳ３０５で受信したホームページを出力する。
【００６３】
（ステップＳ３０７）ホームページ出力部１１０４は、出力したホームページに付属する第一プログラムを、第一プログラム格納部１１０５に少なくとも一時格納する。ステップＳ３０１に戻る。
【００６４】
（ステップＳ３０８）実行部１１０６は、ステップＳ３０１で受け付けた指示が、第一プログラムの実行指示であるか否かを判断する。第一プログラムの実行指示であればステップＳ３０９に行き、第一プログラムの実行指示でなければステップＳ３１０に行く。
【００６５】
（ステップＳ３０９）実行部１１０６は、第一プログラムを実行し、ステップＳ３０１に戻る。このプログラム実行の処理について、図４のフローチャートを用いて後述する。
【００６６】
（ステップＳ３１０）図示しない手段は、指示に対応した動作を行う。
【００６７】
なお、図３のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【００６８】
次に、プログラム実行の処理について、図４のフローチャートを用いて説明する。
【００６９】
（ステップＳ４０１）実行部１１０６は、第一プログラム格納部１１０５の第一プログラムを読み込む。
【００７０】
（ステップＳ４０２）実行部１１０６は、カウンタｉに１を代入する。
【００７１】
（ステップＳ４０３）実行部１１０６は、ｉ番目の命令列が存在するか否かを判断する。ｉ番目の命令列が存在すればステップＳ４０４に行き、ｉ番目の命令列が存在しなければ上位関数にリターンする。
【００７２】
（ステップＳ４０４）実行部１１０６は、ｉ番目の命令列がサブプログラム取得情報であるか否か、またはサブプログラム取得情報を含むか否かを判断する。ｉ番目の命令列がサブプログラム取得情報である、またはサブプログラム取得情報を含む場合はステップＳ４０５に行き、そうでない場合はステップＳ４１０に行く。
【００７３】
（ステップＳ４０５）要求情報構成手段１１０６１は、要求情報を構成する。要求情報構成手段１１０６１は、例えば、サブプログラム取得情報を読み取り、当該サブプログラム取得情報が有するサブプログラム識別子を含み、当該サブプログラムを取得する要求を示す命令である要求情報を構成する。要求情報は、例えば、「ｓｅｎｄ＿ｓｕｂｐｒｏｇｒａｍ  関数Ａ」である。
【００７４】
（ステップＳ４０６）要求情報送信手段１１０６２は、ステップＳ４０５で構成した要求情報を第二情報処理装置１２に送信する。
【００７５】
（ステップＳ４０７）サブプログラム受信手段１１０６３は、第二情報処理装置１２からサブプログラムを受信したか否かを判断する。このサブプログラムは、例えば、サブプログラム取得情報に対応するサブプログラムであり、要求情報に含まれるサブプログラム識別子で識別されるサブプログラムである。サブプログラムを受信すればステップＳ４０８に行き、サブプログラムを受信しなければステップＳ４１２に行く。
【００７６】
（ステップＳ４０８）復号化手段１１０６４は、サブプログラム受信手段１１０６３が受信したサブプログラムを復号化する。
【００７７】
（ステップＳ４０９）実行手段１１０６５は、ステップＳ４０８で復号化したサブプログラムを第一プログラムに組み込む。
【００７８】
（ステップＳ４１０）実行手段１１０６５は、組み込んだサブプログラムを実行する。
【００７９】
（ステップＳ４１１）実行手段１１０６５は、カウンタｉを１、インクリメントし、ステップＳ４０３に戻る。
【００８０】
（ステップＳ４１２）サブプログラム受信手段１１０６３は、タイムアウトか否かを判断する。タイムアウトであればステップＳ４１３に行き、タイムアウトでなければステップＳ４０７に戻る。なお、タイムアウトとは、要求情報送信手段１１０６２が要求情報を送信してから、予め決められた所定の時間以上、時間が経過していることである。サブプログラム受信手段１１０６３は、予め決められた所定の時間の情報を保持しており、かつ、要求情報送信手段１１０６２は、要求情報を送信した時刻をサブプログラム受信手段１１０６３に知らせる（決められたメモリ上に時刻を書き込む等）、とする。
【００８１】
（ステップＳ４１３）サブプログラム受信手段１１０６３は、タイムアウトのエラーである旨のエラーメッセージを出力する。上位関数にリターンする。
【００８２】
なお、図４のフローチャートにおいて、エラーメッセージの出力処理等は必須ではない。また、サブプログラムは必ずしも暗号化されていない。サブプログラムが暗号化されていない場合、復号化の処理は必要がない。
【００８３】
次に、第二情報処理装置１２の動作について、図５のフローチャートを用いて説明する。
【００８４】
（ステップＳ５０１）ページ要求受信部１２０３は、第一情報処理装置１１からページ要求を受信したか否かを判断する。ページ要求を受信すればステップＳ５０２に行き、ページ要求を受信しなければステップＳ５０４に行く。
【００８５】
（ステップＳ５０２）ホームページ取得部１２０４は、ステップＳ５０１で受信したページ要求に対応するホームページと当該ホームページに付属する第一プログラムをホームページ格納部１２０１から取得する。
【００８６】
（ステップＳ５０３）ホームページ送信部１２０５は、ステップＳ５０２で取得したホームページと第一プログラムを第一情報処理装置１１に送信し、ステップＳ５０１に戻る。
【００８７】
（ステップＳ５０４）要求情報受信部１２０６は、第一情報処理装置１１から要求情報を受信したか否かを判断する。要求情報を受信すればステップＳ５０５に行き、要求情報を受信しなければステップＳ５０１に戻る。
【００８８】
（ステップＳ５０５）サブプログラム取得部１２０７は、サブプログラム格納部１２０２からサブプログラムを取得する。このサブプログラムは、通常、ステップＳ５０４で受信した要求情報を用いて、特定されるサブプログラムである。要求情報がサブプログラム識別子を有する場合、サブプログラム取得部１２０７は、要求情報が有するサブプログラム識別子で識別されるサブプログラムを取得する。
【００８９】
（ステップＳ５０６）サブプログラム送信部１２０８は、ステップＳ５０５で取得したサブプログラムを、第一情報処理装置１１に送信する。ステップＳ５０１に戻る。
【００９０】
なお、図５のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【００９１】
以下、本実施の形態における情報処理システムの具体的な動作について説明する。情報処理システムの概念図は図１である。
【００９２】
今、第二情報処理装置１２のホームページ格納部１２０１に、図６に示すホームページ等、多数のホームページが存在する。ここで、ホームページは、リンク付けされたページのトップページだけではない、とする。また、ホームページは、ＨＴＭＬで記述されている。また、図６の（１）のホームページには、図７に示すプログラムが付属している。
【００９３】
また、サブプログラム格納部１２０２は、図８に示すサブプログラム管理表を保持している。サブプログラム管理表は、「ＩＤ」「サブプログラム識別子」「サブプログラム」の属性値を有する。「ＩＤ」は、レコードを識別する情報であり、表におけるレコード管理のために存在する。「サブプログラム識別子」は、ここでは、関数名である。「サブプログラム」は、ここでは、関数名で識別される関数に渡すパラメータの集合である。
【００９４】
かかる状況で、ユーザは、第一情報処理装置１１に対して、ＵＲＬ（ここでは、例えば、「ｈｔｔｐ：／／ｗｗｗ．ｈｏｗｓ．ｗｓ／」）を入力し、かつ、ホームページの送信を促す指示をした、とする。
【００９５】
次に、受付部１１０１は、ＵＲＬ（「ｈｔｔｐ：／／ｗｗｗ．ｈｏｗｓ．ｗｓ／」）と、ホームページの送信の指示を受け付ける。そして、ページ要求送信部１１０２は、コマンド「ページ送信  ｈｔｔｐ：／／ｗｗｗ．ｈｏｗｓ．ｗｓ／」を構成し、通信プロトコルｈｔｔｐにより、第二情報処理装置１２に送信する。
【００９６】
次に、第二情報処理装置１２のページ要求受信部１２０３は、第一情報処理装置１１からページ要求（コマンド「ページ送信  ｈｔｔｐ：／／ｗｗｗ．ｈｏｗｓ．ｗｓ／」）を受信する。
【００９７】
そして、ホームページ取得部１２０４は、ページ要求に対応するホームページと当該ホームページに付属する第一プログラムをホームページ格納部１２０１から取得する。ここで、取得したホームページは、図６で表示されているファイルであり、取得した第一プログラムは、図７のプログラムである、とする。
【００９８】
そして、ホームページ送信部１２０５は、取得したホームページ（図６参照）と第一プログラム（図７参照）を第一情報処理装置１１に送信する。
【００９９】
次に、ホームページ受信部１１０３は、ホームページ（図６参照）と第一プログラム（図７参照）を受信する。そして、ホームページ出力部１１０４は、図６のホームページを解釈し、ページを画面に出力する。そして、ホームページ出力部１１０４は、第一プログラムを、第一プログラム格納部１１０５に少なくとも一時格納する（キャッシュする）。この画面への出力例が図９である。なお、このホームページ（図６参照）と第一プログラム（図７参照）は、第一情報処理装置１１でキャッシュされるため、ユーザは、その内容（ＨＴＭＬやプログラムのソース）を見ることができる。また、第一プログラムは、図９における「申込」ボタンが押下された場合に実行される、とする。
【０１００】
次に、ユーザは、マウスで「申込」ボタンを押下した、とする。すると、受付部１１０１は、マウスのイベントを受け付ける。受付部１１０１は、このマウスのイベントを、「実行指示」として受け付ける。そして、実行部１１０６は、第一プログラム格納部１１０５の第一プログラム（図７のプログラム）を読み込む。そして、実行部１１０６は、第一プログラムを、順次、プログラムポインタをずらしながら、実行する。そして、実行部１１０６は、プログラムポインタが図７の（Ａ）にきた段階で、サブプログラム取得情報（「ｎｅｗ  Ｆｕｎｃｔｉｏｎ」を含む文字列）を認識する。
【０１０１】
次に、要求情報構成手段１１０６１は、サブプログラム取得情報（「ｎｅｗ  Ｆｕｎｃｔｉｏｎ」を含む文字列）を読み取り、当該サブプログラム取得情報が有するサブプログラム識別子「ｐｌｕｓ」を含み、当該サブプログラムを取得する要求を示す命令である要求情報「ＧＥＴ  ｐｌｕｓ」を構成する。
【０１０２】
次に、要求情報送信手段１１０６２は、構成した要求情報「ＧＥＴ  ｐｌｕｓ」を第二情報処理装置１２に送信する。
【０１０３】
そして、第二情報処理装置１２の要求情報受信部１２０６は、第一情報処理装置１１から要求情報「ＧＥＴ  ｐｌｕｓ」を受信する。そして、サブプログラム取得部１２０７は、サブプログラム格納部１２０２から、要求情報「ＧＥＴ  ｐｌｕｓ」に対応するサブプログラムを取得する。つまり、サブプログラム取得部１２０７は、要求情報「ＧＥＴ  ｐｌｕｓ」が含む関数名「ｐｌｕｓ」をキーとして、図８のサブプログラム管理表を検索し、サブプログラム「ｖａｌｕｅＡ＝"ａ，ｂ"  ｖａｌｕｅＢ＝"ｒｅｔｕｒｎ  ａ＋ｂ"」を取得する。
【０１０４】
次に、サブプログラム送信部１２０８は、サブプログラム「ｖａｌｕｅＡ＝"ａ，ｂ"  ｖａｌｕｅＢ＝"ｒｅｔｕｒｎ  ａ＋ｂ"」を、第一情報処理装置１１に送信する。
【０１０５】
次に、サブプログラム受信手段１１０６３は、サブプログラム「ｖａｌｕｅＡ＝"ａ，ｂ"  ｖａｌｕｅＢ＝"ｒｅｔｕｒｎ  ａ＋ｂ"」を受信する。
【０１０６】
そして、復号化手段１１０６４は、サブプログラム受信手段１１０６３が受信したサブプログラム「ｖａｌｕｅＡ＝"ａ，ｂ"  ｖａｌｕｅＢ＝"ｒｅｔｕｒｎ  ａ＋ｂ"」が暗号化されていれば、復号化する。
【０１０７】
次に、実行手段１１０６５は、サブプログラム「ｖａｌｕｅＡ＝"ａ，ｂ"  ｖａｌｕｅＢ＝"ｒｅｔｕｒｎ  ａ＋ｂ"」を第一プログラムに組み込む。つまり、図７の「ｐｌｕｓ  ＝  ｎｅｗ  Ｆｕｎｃｔｉｏｎ（ｖａｌｕｅＡ，  ｖａｌｕｅＢ）；」の「ｖａｌｕｅＡ」「ｖａｌｕｅＢ」を、受信したサブプログラムが有する情報に置き換え、「ｐｌｕｓ  ＝  ｎｅｗ  Ｆｕｎｃｔｉｏｎ（"ａ，ｂ"，  "ｒｅｔｕｒｎ  ａ＋ｂ；"）；」を得る。
【０１０８】
次に、実行手段１１０６５は、組み込んだサブプログラムを含む関数「ｐｌｕｓ  ＝  ｎｅｗ  Ｆｕｎｃｔｉｏｎ（"ａ，ｂ"，  "ｒｅｔｕｒｎ  ａ＋ｂ；"）；」を実行する。
【０１０９】
そして、以後も同様に、実行手段１１０６５は、図７のすべての命令列が実行されるまで、第一プログラムのプログラムカウンタの箇所の命令列を実行し、プログラムカウンタを進めていく。
【０１１０】
なお、かかるサブプログラム「ｖａｌｕｅＡ＝"ａ，ｂ"  ｖａｌｕｅＢ＝"ｒｅｔｕｒｎ  ａ＋ｂ"」は、実行時に、一時的にメモリに置かれるだけで、バッファや記録媒体には蓄積されない。したがって、ユーザは、サブプログラム「ｖａｌｕｅＡ＝"ａ，ｂ"  ｖａｌｕｅＢ＝"ｒｅｔｕｒｎ  ａ＋ｂ"」を見ることはできない。
【０１１１】
以上、本実施の形態によれば、ネットワークのサーバ上にサブプログラムを配置し、動的にプログラムを書き換えることにより、重要なプログラム（サブプログラム）の著作権が保護できる。本実施の形態における技術は、特に、Ｗｅｂ等のネットワーク環境において有効である。
【０１１２】
なお、本実施の形態において、ホームページ（例えば、ＨＴＭＬソース）が読み込まれるタイミングで（同期通信により）、第一プログラムが読み込まれた。また、サブプログラムは、非同期通信で(ページの読み込みとは関係なく)、第二情報処理装置（例えば、サーバ装置）から第一情報処理装置（例えば、クライアント）へ送信された。かかる場合、サブプログラムを構成する「ｖａｌｕｅＡ＝"ａ，ｂ"  ｖａｌｕｅＢ＝"ｒｅｔｕｒｎ  ａ＋ｂ"」のうち、「ｖａｌｕｅＡ＝"ａ，ｂ"」と「ｖａｌｕｅＢ＝"ｒｅｔｕｒｎ  ａ＋ｂ"」が同時に送信されても、同時に送信されなくても良い。以上の動的に関数を生成する仕組みにより、関数の中身をソースに記述することなく関数を定義することができる。したがって、関数（サブプログラムの一例）の著作権が保護できる。
【０１１３】
また、本実施の形態において、サブプログラムを構成する「ｖａｌｕｅＡ＝"ａ，ｂ"  ｖａｌｕｅＢ＝"ｒｅｔｕｒｎ  ａ＋ｂ"」のうち、関数の引数（ｖａｌｕｅＡの部分）は特に隠ぺいする必要がない場合も考えられ、その場合は非同期通信で取得するのはｖａｌｕｅＢだけでよい。そのために、サブプログラム格納部１２０２は「ｖａｌｕｅＢ＝"ｒｅｔｕｒｎ  ａ＋ｂ"」のみ格納していても良い。
【０１１４】
また、本実施の形態において、第一情報処理装置１１と第二情報処理装置１２は、サーバクライアントの情報システムであったが、第一情報処理装置１１と第二情報処理装置１２は、ピア・トゥー・ピアで通信を行っても良い。かかることは他の実施の形態でも同様である。
【０１１５】
また、本実施の形態において、サブプログラムは、実行されるプログラムの一部であれば良く、その形式等は問わない。かかることは他の実施の形態でも同様である。
【０１１６】
また、本実施の形態において、サブプログラム取得情報は、上記した例に限らないことは言うまでもない。サブプログラム取得情報は、例えば、「ｘｍｌｈｔｔｐ．ｏｐｅｎ（"ＧＥＴ"，  "ｄｆｕｎｃ．ａｓｐｘ"）；  ｘｍｌｈｔｔｐ．ｓｅｎｄ（ｎｕｌｌ）；」などの、予め決められた関数でも良い。サブプログラム取得情報が、「ｘｍｌｈｔｔｐ．ｏｐｅｎ（"ＧＥＴ"，  "ｄｆｕｎｃ．ａｓｐｘ"）；  ｘｍｌｈｔｔｐ．ｓｅｎｄ（ｎｕｌｌ）；」である場合、例えば、サブプログラムは、ファイル名"ｄｆｕｎｃ．ａｓｐｘ"で識別されるファイルに記述されているプログラムである。なお、サブプログラム取得情報は、第一プログラム内に記述されている。また、「ｘｍｌｈｔｔｐ．ｏｐｅｎ（"ＧＥＴ"，  "ｄｆｕｎｃ．ａｓｐｘ"）」において、"ＧＥＴ"は、ＨＴＴＰメソッド、"ｄｆｕｎｃ．ａｓｐｘ"は、送信先ＵＲＩである。「ｘｍｌｈｔｔｐ．ｓｅｎｄ（ｎｕｌｌ）；」は、データを送信することを示す。
【０１１７】
また、本実施の形態において、第一情報処理装置１１と第二情報処理装置１２の間で送受信する情報は、ホームページでなくても良い。両装置間で送受信する情報は、プレーンなテキスト、動画コンテンツ、音楽コンテンツ、その他の情報でも良い。かかることは、他の実施の形態においても同様である。
【０１１８】
また、本実施の形態において、サブプログラムは、暗号化されているとは限らない。サブプログラムが暗号化されていない場合、復号化手段１１０６４は必要がない。かかることは他の実施の形態でも同様である。
【０１１９】
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをＣＤ−ＲＯＭなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における第一情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、格納されている第一プログラムを読み出し、少なくとも前記第一プログラムを実行し、所定の結果を得る実行ステップを実行させ、前記実行ステップは、前記第一プログラムと一体となり所定の実行結果を得られるプログラムであるサブプログラムを第二情報処理装置から受信するサブプログラム受信サブステップと、前記サブプログラム受信サブステップで受信した前記サブプログラムを前記第一プログラムに組み込んで実行する実行サブステップを具備するプログラムである。
【０１２０】
また、上記プログラムにおいて、前記実行ステップは、前記第一プログラムに記述されている情報であり、サブプログラムを前記第二情報処理装置から取得するための情報であるサブプログラム取得情報を、前記第一プログラムから読み取り、当該サブプログラム取得情報を読み取った場合に、前記サブプログラムを識別する情報であるサブプログラム識別子を含み、前記サブプログラムの送信を要求する情報である要求情報を構成する要求情報構成サブステップと、前記要求情報を前記第二情報処理装置に送信する要求情報送信サブステップとをさらに具備し、前記サブプログラム受信サブステップは、前記要求情報の送信に対応して、前記第二情報処理装置から前記サブプログラムを受信することは好適である。
【０１２１】
また、上記プログラムにおいて、コンピュータに、ホームページのダウンロードの指示を受け付ける受付ステップと、前記指示に対応して、ホームページの送信を促すページ要求を送信するページ要求送信ステップと、前記ページ要求の送信に対応して、ホームページを受信するホームページ受信ステップと、前記ホームページを出力するホームページ出力ステップをさらに実行させ、前記第一プログラムは、前記ホームページに付属するスクリプトであることは好適である。
【０１２２】
また、前記サブプログラムは、暗号化されており、上記プログラムの前記実行ステップは、前記サブプログラム受信サブステップが受信したサブプログラムを復号化する復号化サブステップをさらに具備し、前記実行サブステップは、前記復号化サブステップが復号化した前記サブプログラムを前記第一プログラムに組み込んで実行することは好適である。
【０１２３】
前記サブプログラムは、関数の実行内容を示す命令列であり、前記第一プログラムは、１以上の関数の実行内容の記述がなく、また、上記プログラムの前記実行サブステップは、前記サブプログラム受信サブステップで受信した前記サブプログラムが示す関数の実行内容、または前記復号化サブステップで復号化した前記サブプログラムが示す関数の実行内容を、前記第一プログラムの空の関数に組み込んで実行しても良い。
【０１２４】
また、本実施の形態における第二情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、格納しているサブプログラムを取得するサブプログラム取得ステップと、前記サブプログラム取得ステップで取得した前記サブプログラムを、前記第一情報処理装置に送信するサブプログラム送信ステップを実行させるためのプログラムである。
【０１２５】
また、上記プログラムにおいて、コンピュータに、前記第一情報処理装置から前記要求情報を受信する要求情報受信ステップをさらに実行させ、前記サブプログラム取得ステップは、前記要求情報が有するサブプログラム識別子と対になるサブプログラムを取得することは好適である。
【０１２６】
また、上記プログラムにおいて、コンピュータに、前記ページ要求を受信するページ要求受信ステップと、前記ページ要求に対応するホームページと当該ホームページに付属する第一プログラムを取得するホームページ取得ステップと、前記ホームページ取得ステップで取得したホームページと第一プログラムを前記第一情報処理装置に送信するホームページ送信ステップとを実行させるためのプログラムでも良い。
（実施の形態２）
【０１２７】
本実施の形態における情報処理システムは、サブプログラムのダウンロード前に、認証情報を第一情報処理装置から第二情報処理装置に送信し、第二情報処理装置で認証できた場合のみ、クライアントに送信するシステムである。
【０１２８】
図１０は、本実施の形態における情報処理システムのブロック図である。
【０１２９】
情報処理システムは、第一情報処理装置１０１、第二情報処理装置１０２を具備する。
【０１３０】
第一情報処理装置１０１は、受付部１１０１、ページ要求送信部１１０２、ホームページ受信部１１０３、ホームページ出力部１１０４、第一プログラム格納部１１０５、実行部１０１０６を具備する。
【０１３１】
実行部１０１０６は、要求情報構成手段１１０６１、要求情報送信手段１１０６２、認証構成情報受信手段１０１０６１、認証情報取得手段１０１０６２、認証情報送信手段１０１０６３、サブプログラム受信手段１１０６３、復号化手段１１０６４、実行手段１１０６５を具備する。
【０１３２】
第二情報処理装置１０２は、ホームページ格納部１２０１、サブプログラム格納部１２０２、ページ要求受信部１２０３、ホームページ取得部１２０４、ホームページ送信部１２０５、要求情報受信部１２０６、認証構成情報取得部１０２０１、認証構成情報送信部１０２０２、認証情報受信部１０２０３、認証部１０２０４、サブプログラム取得部１２０７、サブプログラム送信部１２０８を具備する。
【０１３３】
実行部１０１０６は、第一プログラム格納部１１０５から第一プログラムを読み出し、少なくとも第一プログラムを実行し、所定の結果を得る。実行部１０１０６は、認証情報を構成し、当該認証情報を送信し、第二情報処理装置１０２が認証許可の判断を行った場合のみ、第二情報処理装置１０２からサブプログラムを受信し、当該サブプログラムを第一プログラムに組み込んで実行する。また、実行部１０１０６は、後述する認証構成情報を、第二情報処理装置１０２から受信し、当該認証構成情報を利用して認証情報を構成する機能を有しても良い。また、実行部１０１０６は、サブプログラムを復号化する機能も有しても良い。実行部１０１０６は、通常、ＭＰＵやメモリ等から実現され得る。実行部１０１０６の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【０１３４】
認証構成情報受信手段１０１０６１は、第二情報処理装置１０２から認証情報を構成する情報である認証構成情報を受信する。認証情報とは、サブプログラムの送信許可を得るための情報であり、第一情報処理装置１０１の正当性、または／および第一情報処理装置１０１のユーザの正当性、または／および第一プログラムの正当性を確認するための情報である。認証情報は、例えば、第一プログラムを識別する情報である第一プログラム識別子を含む。認証情報は、例えば、第一情報処理装置１０１のユーザを識別する情報であるユーザ識別子を含む。認証情報は、例えば、認証構成情報を有する。認証構成情報は、例えば、第二情報処理装置１０２が構成した情報であり、ランダムな文字列や、時刻の情報などである。認証構成情報は、認証情報がワンタイムパスワードとして機能するために必要である。ただし、認証情報がワンタイムパスワードとして機能しない場合には、認証構成情報は必要ではない。また、ユーザ識別子は、第一情報処理装置１０１にログインする際に、ユーザが入力した識別子、または第二情報処理装置１０２にアクセスする際に、ユーザが入力した識別子である。認証構成情報受信手段１０１０６１は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
【０１３５】
認証情報取得手段１０１０６２は、サブプログラムの送信許可を得るための認証情報を取得する。認証情報取得手段１０１０６２は、例えば、認証構成情報受信手段１０１０６１が受信した認証構成情報を用いて、当該認証構成情報を有する認証情報を構成することにより、認証情報を取得する。認証情報取得手段１０１０６２は、例えば、ユーザが第一情報処理装置１０１へのログイン時に入力したユーザＩＤを取得し、当該ユーザＩＤを含む認証情報を構成することにより、認証情報を取得する。なお、ログイン時に入力したユーザＩＤは、メモリ上に一時蓄積されている、とする。認証情報取得手段１０１０６２は、通常、ＭＰＵやメモリ等から実現され得る。認証情報取得手段１０１０６２の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【０１３６】
認証情報送信手段１０１０６３は、認証情報取得手段１０１０６２が取得した認証情報を第二情報処理装置１０２に送信する。認証情報送信手段１０１０６３は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
【０１３７】
第二情報処理装置１０２を構成する認証構成情報取得部１０２０１は、認証構成情報を構成する。認証構成情報取得部１０２０１は、例えば、図示しない時計から現在時刻の情報を取得し、現在時刻の情報を有する認証構成情報を構成する。認証構成情報取得部１０２０１は、例えば、第一情報処理装置１０１のユーザが第二情報処理装置１０２にアクセスする際に入力したユーザＩＤまたは／およびパスワードを一時記憶しており、当該ユーザＩＤまたは／およびパスワードを有する認証構成情報を構成する。認証構成情報取得部１０２０１は、例えば、乱数を発生させ、当該乱数を認証構成情報としてメモリ上に一時記憶させる。認証構成情報取得部１０２０１は、通常、ＭＰＵやメモリ等から実現され得る。認証構成情報取得部１０２０１の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【０１３８】
認証構成情報送信部１０２０２は、認証構成情報取得部１０２０１が取得した認証構成情報を第一情報処理装置１０１に送信する。認証構成情報を第一情報処理装置１０１に送信するタイミングは、通常、要求情報受信部１２０６が要求情報を受信し、認証構成情報取得部１０２０１が認証構成情報を取得した後であるが、例えば、ホームページ送信部１２０５がホームページを送信した後、直ちにでも良い。認証構成情報送信部１０２０２は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
【０１３９】
認証情報受信部１０２０３は、第一情報処理装置１０１から認証情報を受信する。認証情報受信部１０２０３は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
【０１４０】
認証部１０２０４は、認証情報受信部１０２０３が受信した認証情報に対して認証処理し、認証許可であるか認証不許可であるかを判断する。認証部１０２０４は、２以上のサブプログラムを送信する場合に、認証情報に対して認証処理し、認証許可であるか認証不許可であるかをサブプログラムごとに判断することは好適である。また、認証情報に第一プログラム識別子が含まれる場合、認証部１０２０４は、例えば、第一プログラム識別子で識別される第一プログラムの正当性を判断し、正当であると判断した場合のみ認証許可とし、不当であると判断した場合は認証不許可であると判断する。認証部１０２０４は、第一プログラム識別子を予め格納している。または、認証部１０２０４は、第一プログラムを、ホームページ送信部１２０５が第一情報処理装置１０１に送信した旨を保持している。また、認証情報にユーザ識別子が含まれる場合、認証部１０２０４は、ユーザ識別子で識別されるユーザの正当性を判断し、正当であると判断した場合のみ認証許可とし、不当であると判断した場合は認証不許可であると判断する。なお、かかる場合、認証部１０２０４は、第二情報処理装置１０２にアクセスできるユーザを識別するユーザ識別子を格納している。または、かかる場合、認証部１０２０４は、ユーザが第一情報処理装置１０１から第二情報処理装置１０２にアクセスした際に受け付けたユーザ識別子を保持している。認証部１０２０４における認証アルゴリズムは、問わない。認証部１０２０４は、通常、ＭＰＵやメモリ等から実現され得る。認証部１０２０４の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【０１４１】
次に、情報処理システムの動作について説明する。まず、第一情報処理装置１０１の動作について説明する。第一情報処理装置１０１の動作は、実施の形態１で述べた第一情報処理装置１１の動作と比較してプログラム実行の処理（ステップＳ３０９）のみ異なる。第一情報処理装置１０１の第一のプログラム実行の処理について、図１１のフローチャートを用いて説明する。図１１のフローチャートにおいて、図４のフローチャートと異なるステップについてのみ説明する。
【０１４２】
（ステップＳ１１０１）認証構成情報受信手段１０１０６１は、認証構成情報を受信したか否かを判断する。認証構成情報を受信すればステップＳ１１０２に行き、認証構成情報を受信しなければステップＳ１１０１に戻る。
【０１４３】
（ステップＳ１１０２）認証情報取得手段１０１０６２は、ステップＳ１１０１で受信した、認証構成情報を用いて、認証情報を構成する。認証情報と認証構成情報は同じ情報でも良い。また、認証構成情報が例えば、時刻「２００６／３／７  １８：０７」である場合、認証情報は、例えば、時刻とユーザＩＤ「１２３４５６７」を合成した「２００６／３／７  １８：０７；１２３４５６７」である。なお、ユーザＩＤは、例えば、ユーザが第一情報処理装置１０１にログインする際や、第二情報処理装置１０２にアクセスする際に入力し、第一情報処理装置１０１が保持しているＩＤである。
【０１４４】
（ステップＳ１１０３）認証情報送信手段１０１０６３は、ステップＳ１１０２で取得した認証情報を送信する。
【０１４５】
次に、第二情報処理装置１０２の第一の動作について、図１２のフローチャートを用いて説明する。図１２のフローチャートにおいて、図５のフローチャートと異なるステップについてのみ説明する。
【０１４６】
（ステップＳ１２０１）認証構成情報取得部１０２０１は、認証構成情報を取得する。認証構成情報取得部１０２０１は、例えば、図示しない時計より現在時刻を読み出す。
【０１４７】
（ステップＳ１２０２）認証構成情報送信部１０２０２は、ステップＳ１２０１で構成した認証構成情報を、第一情報処理装置１０１に送信する。
【０１４８】
（ステップＳ１２０３）認証情報受信部１０２０３は、ステップＳ１２０２における認証構成情報の送信に対応して、認証情報を受信したか否かを判断する。認証情報を受信すればステップＳ１２０４に行き、認証情報を受信しなければステップＳ１２０３に戻る。
【０１４９】
（ステップＳ１２０４）認証部１０２０４は、認証処理を行う。なお、認証処理自体は公知技術の方法が多数存在する。認証処理のアルゴリズムは問わない。
【０１５０】
（ステップＳ１２０５）サブプログラム取得部１２０７は、ステップＳ１２０４における認証処理の結果である認証判断が認証許可であるか否かを判断する。認証許可であればステップＳ５０５に行き、認証許可でなければステップＳ５０１に戻る。
【０１５１】
次に、第一情報処理装置１０１の第二のプログラム実行の処理について、図１３のフローチャートを用いて説明する。図１３のフローチャートにおいて、図１１のフローチャートと比較して、認証構成情報を受信するステップ（ステップＳ１１０１）が存在せず、認証情報の構成は、第一情報処理装置１０１内の情報を用いて行う。第一情報処理装置１０１内の情報をとは、例えば、ユーザが第一情報処理装置１０１にログインする際に入力したユーザ識別子や、第一情報処理装置１０１のＩＰアドレスやＭＡＣアドレス等である。
【０１５２】
次に、第二情報処理装置１０２の第二の動作について、図１４のフローチャートを用いて説明する。図１４のフローチャートにおいて、図１２のフローチャートと比較して、認証構成情報を構成し、送信するステップ（ステップＳ１２０１、ステップＳ１２０２）が存在せず、第一情報処理装置１０１から送信された認証情報を用いて認証処理を行う。
【０１５３】
以下、本実施の形態における情報処理システムの具体的な動作について説明する。情報処理システムの概念図は図１である。
【０１５４】
今、第二情報処理装置１０２のホームページ格納部１２０１に、図６に示すホームページ等、多数のホームページが存在する。また、図６の（１）のホームページには、図１５に示すプログラムが付属している、とする。なお、図１５における「ｘｍｌｈｔｔｐ．ｏｐｅｎ（"ＧＥＴ"，  "ｄｆｕｎｃ．ａｓｐｘ？ｐａｒａｍ１＝ａｂｃ"）；  ｘｍｌｈｔｔｐ．ｓｅｎｄ（ｎｕｌｌ）；」は、第一情報処理装置１０１が、"ＧＥＴ"という通信方法で、第二情報処理装置１０２に対して通信を行い、"ｄｆｕｎｃ．ａｓｐｘ？ｐａｒａｍ１＝ａｂｃ"を有する認証情報を第二情報処理装置１０２に送信することを示す。「ｘｍｌｈｔｔｐ．ｏｐｅｎ（"ＧＥＴ"，  "ｄｆｕｎｃ．ａｓｐｘ？ｐａｒａｍ１＝ａｂｃ"）；  ｘｍｌｈｔｔｐ．ｓｅｎｄ（ｎｕｌｌ）；」は、サブプログラム取得情報である。
【０１５５】
また、サブプログラム格納部１２０２は、図１６に示すように、サブプログラムが記載されたファイル群を保持している。
【０１５６】
さらに、認証部１０２０４は、図１７に示す認証処理管理表を保持している。認証処理管理表は、認証処理を行うために使用する情報であり、「ＩＤ」「サブプログラム識別子」「認証キー」の属性値を有する。「ＩＤ」は、レコードを識別する情報であり、表におけるレコード管理のために存在する。「認証キー」は、「サブプログラム識別子」の属性値で識別されるサブプログラムの送信可否を判断するためのキーである。
【０１５７】
かかる状況で、第一の認証処理の例を説明する。まず、ユーザは、第一情報処理装置１０１に対して、ＵＲＬ（ここでは、例えば、「ｈｔｔｐ：／／ｗｗｗ．ｈｏｗｓ．ｗｓ／」）を入力し、かつ、ホームページの送信を促す指示をした、とする。
【０１５８】
次に、受付部１１０１は、ＵＲＬ（「ｈｔｔｐ：／／ｗｗｗ．ｈｏｗｓ．ｗｓ／」）と、ホームページの送信の指示を受け付ける。そして、ページ要求送信部１１０２は、コマンド「ページ送信  ｈｔｔｐ：／／ｗｗｗ．ｈｏｗｓ．ｗｓ／」を構成し、通信プロトコルｈｔｔｐにより、第二情報処理装置１０２に送信する。
【０１５９】
次に、第二情報処理装置１０２のページ要求受信部１２０３は、第一情報処理装置１０１からページ要求（コマンド「ページ送信  ｈｔｔｐ：／／ｗｗｗ．ｈｏｗｓ．ｗｓ／」）を受信する。
【０１６０】
そして、ホームページ取得部１２０４は、ページ要求に対応するホームページと当該ホームページに付属する第一プログラムをホームページ格納部１２０１から取得する。ここで、取得したホームページは、図６（１）のファイルであり、取得した第一プログラムは、図１５のプログラムである、とする。
【０１６１】
そして、ホームページ送信部１２０５は、取得したホームページ（図６（１）参照）と第一プログラム（図１５参照）を第一情報処理装置１１に送信する。
【０１６２】
次に、ホームページ受信部１１０３は、ホームページ（図６（１）参照）と第一プログラム（図１５参照）を受信する。そして、ホームページ出力部１１０４は、図６（１）のホームページを解釈し、ページを画面に出力する。そして、ホームページ出力部１１０４は、第一プログラムを、第一プログラム格納部１１０５に少なくとも一時格納する（キャッシュする）。この画面への出力例が図９である。なお、このホームページ（図６（１）参照）と第一プログラム（図１５参照）は、第一情報処理装置１１でキャッシュされるため、ユーザは、その内容（ＨＴＭＬやプログラムのソース）を見ることができる。また、第一プログラムは、図９における「申込」ボタンが押下された場合に実行される、とする。
【０１６３】
次に、ユーザは、マウスで「申込」ボタンを押下した、とする。すると、受付部１１０１は、マウスのイベントを受け付ける。受付部１１０１は、このマウスのイベントを、「実行指示」として受け付ける。そして、実行部１１０６は、第一プログラム格納部１１０５の第一プログラム（図１５のプログラム）を読み込む。そして、実行部１１０６は、第一プログラムを、順次、プログラムポインタをずらしながら、実行する。そして、実行部１１０６は、プログラムポインタが図１５の（Ｂ）にきた段階で、サブプログラム取得情報の一部（「ｘｍｌｈｔｔｐ．ｏｐｅｎ（"ＧＥＴ"，  "ｄｆｕｎｃ．ａｓｐｘ？ｐａｒａｍ１＝ａｂｃ"）；」）を認識する。
【０１６４】
次に、要求情報構成手段１１０６１は、サブプログラム取得情報を読み取り、当該サブプログラム取得情報が有するサブプログラム識別子「ｄｆｕｎｃ．ａｓｐｘ」を含み、当該サブプログラムを取得する要求を示す命令である要求情報「ｄｆｕｎｃ．ａｓｐｘ？ｐａｒａｍ１＝ａｂｃ」を構成し、上記の"ＧＥＴ"が示すＧＥＴという通信方法で、第二情報処理装置１０２に、要求情報「ｄｆｕｎｃ．ａｓｐｘ？ｐａｒａｍ１＝ａｂｃ」を送信する。
【０１６５】
そして、第二情報処理装置１０２の要求情報受信部１２０６は、第一情報処理装置１０１から要求情報「ｄｆｕｎｃ．ａｓｐｘ？ｐａｒａｍ１＝ａｂｃ」を受信する。そして、認証部１０２０４は、「ｄｆｕｎｃ．ａｓｐｘ」「ａｂｃ」により、図１７に示す認証処理管理表を用いて認証処理を行う。ここで、認証処理管理表には、サブプログラム識別子「ｄｆｕｎｃ．ａｓｐｘ」、認証キー「ａｂｃ」のレコードが存在するので、認証部１０２０４は、認証許可である、と判断する。
【０１６６】
次に、サブプログラム取得部１２０７は、サブプログラム格納部１２０２から、要求情報「ｄｆｕｎｃ．ａｓｐｘ？ｐａｒａｍ１＝ａｂｃ」に対応するサブプログラム（ファイル「ｄｆｕｎｃ．ａｓｐｘ」を取得する。そして、サブプログラム送信部１２０８は、サブプログラム（ファイル「ｄｆｕｎｃ．ａｓｐｘ」）第一情報処理装置１０１に送信する。
【０１６７】
次に、サブプログラム受信手段１１０６３は、サブプログラム（ファイル「ｄｆｕｎｃ．ａｓｐｘ」）を受信する。
【０１６８】
そして、復号化手段１１０６４は、サブプログラム受信手段１１０６３が受信したサブプログラム（ファイル「ｄｆｕｎｃ．ａｓｐｘ」）をオープンし、そのファイルの中の情報を復号化する。復号化した結果、実行手段１１０６５は、実行可能なサブプログラム（関数の記載）を得ることができる。
【０１６９】
次に、実行手段１１０６５は、実行可能なサブプログラムを実行する。
【０１７０】
そして、以後も同様に、実行手段１１０６５は、図１５のすべての命令列が実行されるまで、第一プログラムのプログラムカウンタの箇所の命令列を実行し、プログラムカウンタを進めていく。
【０１７１】
以上により、第一情報処理装置１０１のユーザは、所望の結果を得ることができ、かつ、サーバ側にとって重要なサブプログラムの著作権を保護できる。
【０１７２】
次に、第二の具体例について説明する。第二の具体例は、いわゆるワンタイムパスワードを利用したサブプログラムの送信である。
【０１７３】
第一情報処理装置１０１のユーザがホームページを表示させる処理を行い、ボタンを押下し、第二情報処理装置１０２の要求情報受信部１２０６が、第一情報処理装置１０１から要求情報「ｄｆｕｎｃ．ａｓｐｘ？ｐａｒａｍ１＝ａｂｃ」を受信するまでの処理は、第一の具体例と同様である。
【０１７４】
次に、第二情報処理装置１０２の認証構成情報取得部１０２０１は、図示しない時計から現在時刻である認証構成情報（「２００６／３／７  ２０：０４」）を取得する。次に、認証構成情報送信部１０２０２は、認証構成情報（「２００６／３／７  ２０：０４」）を、第一情報処理装置１０１に送信する。
【０１７５】
次に、第一情報処理装置１０１の認証構成情報受信手段１０１０６１は、認証構成情報（「２００６／３／７  ２０：０４」）を受信する。
【０１７６】
そして、認証情報取得手段１０１０６２は、受信した、認証構成情報（「２００６／３／７  ２０：０４」）を用いて、ユーザＩＤ「１２３４５６７」と合成し、認証情報（「２００６／３／７  ２０：０４，１２３４５６７」）を構成する。そして、認証情報送信手段１０１０６３は、認証情報（「２００６／３／７  ２０：０４，１２３４５６７」）を第二情報処理装置１０２に送信する。
【０１７７】
次に、認証情報受信部１０２０３は、認証構成情報の送信に対応して、認証情報（「２００６／３／７  ２０：０４，１２３４５６７」）を受信する。
【０１７８】
次に、認証部１０２０４は、時計から現在時刻「２００６／３／７  ２０：０５」を取得する。そして、認証情報（「２００６／３／７  ２０：０４，１２３４５６７」）が有する時刻「２００６／３／７  ２０：０４」と、現在時刻「２００６／３／７  ２０：０５」が所定以内の差（１分以内）であるか否かを判断する。両時刻は、所定以内の差（１分以内）であるので、認証部１０２０４は、第一の認証条件（時刻に関する条件）はクリアした、と判断する。次に、認証部１０２０４は、予め格納しているユーザＩＤ群（ユーザＩＤ群は、第二情報処理装置１０２にアクセス可能なユーザを識別するユーザＩＤの集合である。）の中に認証情報（「２００６／３／７  ２０：０４，１２３４５６７」）が有するユーザＩＤ「１２３４５６７」が存在するか否かを判断する。ここで、ユーザＩＤ「１２３４５６７」は、ユーザＩＤ群の中に存在するとし、認証部１０２０４は、第二の認証条件（ユーザに関する条件）はクリアした、と判断する。以上の２つの条件をクリアしたことにより、認証部１０２０４は認証許可と判断する、とする。
【０１７９】
そして、第一の具体例と同様に、サブプログラム取得部１２０７は、サブプログラム格納部１２０２から、要求情報「ｄｆｕｎｃ．ａｓｐｘ？ｐａｒａｍ１＝ａｂｃ」に対応するサブプログラム（ファイル「ｄｆｕｎｃ．ａｓｐｘ」）を取得する。そして、サブプログラム送信部１２０８は、サブプログラム（ファイル「ｄｆｕｎｃ．ａｓｐｘ」）第一情報処理装置１０１に送信する。
【０１８０】
次に、サブプログラム受信手段１１０６３は、サブプログラム（ファイル「ｄｆｕｎｃ．ａｓｐｘ」）を受信する。
【０１８１】
そして、復号化手段１１０６４は、サブプログラム受信手段１１０６３が受信したサブプログラム（ファイル「ｄｆｕｎｃ．ａｓｐｘ」）をオープンし、そのファイルの中の情報を復号化する。復号化した結果、実行手段１１０６５は、実行可能なサブプログラム（関数の記載）を得ることができる。
【０１８２】
次に、実行手段１１０６５は、実行可能なサブプログラムを実行する。
【０１８３】
そして、以後も同様に、実行手段１１０６５は、図１５のすべての命令列が実行されるまで、第一プログラムのプログラムカウンタの箇所の命令列を実行し、プログラムカウンタを進めていく。
【０１８４】
以上により、第一情報処理装置１０１のユーザは、所望の結果を得ることができ、かつ、サーバ側にとって重要なサブプログラムの著作権を保護できる。
【０１８５】
以上、本実施の形態によれば、重要なサブプログラムの著作権を保護できる。
【０１８６】
なお、本実施の形態において、認証部１０２０４はサブプログラムを送信する前に必ず認証処理を行っても良いし、第一情報処理装置１０１が一の第一プログラムを実行する間に、認証部１０２０４は最初のサブプログラムを送信する前のみ認証処理を行っても良い。
【０１８７】
さらに、本実施の形態における第一情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、格納されている第一プログラムを読み出し、少なくとも前記第一プログラムを実行し、所定の結果を得る実行ステップを実行させ、前記実行ステップは、前記第一プログラムと一体となり所定の実行結果を得られるプログラムであるサブプログラムを第二情報処理装置から受信するサブプログラム受信サブステップと、前記サブプログラム受信サブステップで受信した前記サブプログラムを前記第一プログラムに組み込んで実行する実行サブステップを具備するプログラムである。
【０１８８】
また、上記プログラムにおいて、前記実行ステップは、前記第一プログラムに記述されている情報であり、サブプログラムを前記第二情報処理装置から取得するための情報であるサブプログラム取得情報を、前記第一プログラムから読み取り、当該サブプログラム取得情報を読み取った場合に、前記サブプログラムを識別する情報であるサブプログラム識別子を含み、前記サブプログラムの送信を要求する情報である要求情報を構成する要求情報構成サブステップと、前記要求情報を前記第二情報処理装置に送信する要求情報送信サブステップとをさらに具備し、前記サブプログラム受信サブステップは、前記要求情報の送信に対応して、前記第二情報処理装置から前記サブプログラムを受信することは好適である。
【０１８９】
また、上記プログラムにおいて、前記実行ステップは、前記サブプログラムの送信許可を得るための認証情報を取得する認証情報取得サブステップと、前記認証情報を前記第二情報処理装置に送信する認証情報送信サブステップをさらに具備することは好適である。
【０１９０】
また、上記プログラムにおいて、前記実行ステップは、前記第二情報処理装置から認証情報を構成する情報である認証構成情報を受信する認証構成情報受信サブステップをさらに具備し、前記認証情報取得サブステップは、前記認証構成情報を有する認証情報を構成し、ことは好適である。
【０１９１】
また、上記プログラムにおいて、コンピュータに、ホームページのダウンロードの指示を受け付ける受付ステップと、前記指示に対応して、ホームページの送信を促すページ要求を送信するページ要求送信ステップと、前記ページ要求の送信に対応して、ホームページを受信するホームページ受信ステップと、前記ホームページを出力するホームページ出力ステップをさらに実行させ、前記第一プログラムは、前記ホームページに付属するスクリプトであることは好適である。
【０１９２】
また、前記サブプログラムは、暗号化されており、上記プログラムの前記実行ステップは、前記サブプログラム受信サブステップが受信したサブプログラムを復号化する復号化サブステップをさらに具備し、前記実行サブステップは、前記復号化サブステップが復号化した前記サブプログラムを前記第一プログラムに組み込んで実行することは好適である。
【０１９３】
前記サブプログラムは、関数の実行内容を示す命令列であり、前記第一プログラムは、１以上の関数の実行内容の記述がなく、また、上記プログラムの前記実行サブステップは、前記サブプログラム受信サブステップで受信した前記サブプログラムが示す関数の実行内容、または前記復号化サブステップで復号化した前記サブプログラムが示す関数の実行内容を、前記第一プログラムの空の関数に組み込んで実行することは好適である。
【０１９４】
また、本実施の形態における第二情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、格納しているサブプログラムを取得するサブプログラム取得ステップと、前記サブプログラム取得ステップで取得した前記サブプログラムを、前記第一情報処理装置に送信するサブプログラム送信ステップを実行させるためのプログラムである。
【０１９５】
また、上記プログラムにおいて、コンピュータに、前記第一情報処理装置から前記要求情報を受信する要求情報受信ステップをさらに実行させ、前記サブプログラム取得ステップは、前記要求情報が有するサブプログラム識別子と対になるサブプログラムを取得することは好適である。
【０１９６】
また、上記プログラムにおける前記サブプログラム送信ステップは、前記認証ステップで認証許可であると判断した場合のみ、前記サブプログラムを、前記第一情報処理装置に送信することは好適である。
【０１９７】
また、上記プログラムにおいて、前記認証情報は、前記第一プログラムを識別する情報である第一プログラム識別子を含み、前記認証ステップにおいて、前記第一プログラム識別子で識別される第一プログラムの正当性を判断し、正当であると判断した場合のみ認証許可とし、不当であると判断した場合は認証不許可であると判断することは好適である。
【０１９８】
また、上記プログラムにおいて、前記認証情報は、前記第一情報処理装置のユーザを識別する情報であるユーザ識別子を含み、前記認証ステップにおいて、前記ユーザ識別子で識別されるユーザの正当性を判断し、正当であると判断した場合のみ認証許可とし、不当であると判断した場合は認証不許可であると判断することは好適である。
【０１９９】
また、上記プログラムにおいて、前記ユーザ識別子は、前記第一情報処理装置にログインする際に入力したユーザ識別子、または前記第二情報処理装置にアクセスする際に入力したユーザ識別子であることは好適である。
【０２００】
また、上記プログラムにおいて、コンピュータに、前記認証構成情報を構成する認証構成情報取得ステップと、前記認証構成情報を前記第一情報処理装置に送信する認証構成情報送信ステップをさらに実行させることは好適である。
【０２０１】
また、上記プログラムにおいて、コンピュータに、前記ページ要求を受信するページ要求受信ステップと、前記ページ要求に対応するホームページと当該ホームページに付属する第一プログラムを取得するホームページ取得ステップと、前記ホームページ取得ステップで取得したホームページと第一プログラムを前記第一情報処理装置に送信するホームページ送信ステップとを実行させるためのプログラムであることは好適である。
（実施の形態３）
【０２０２】
本実施の形態において、サーバ側からサブプログラムをプッシュする態様について説明する。
【０２０３】
図１８は、本実施の形態における情報処理システムのブロック図である。
【０２０４】
情報処理システムは、第一情報処理装置１８１、第二情報処理装置１８２を具備する。
【０２０５】
第一情報処理装置１８１は、受付部１１０１、ページ要求送信部１１０２、ホームページ受信部１１０３、ホームページ出力部１１０４、第一プログラム格納部１１０５、実行部１８１０６を具備する。
【０２０６】
実行部１８１０６は、サブプログラム受信手段１１０６３、実行手段１１０６５を具備する。
【０２０７】
第二情報処理装置１８２は、ホームページ格納部１２０１、サブプログラム格納部１２０２、ページ要求受信部１２０３、ホームページ取得部１２０４、ホームページ送信部１２０５、サブプログラム取得部１８２０７、サブプログラム送信部１８２０８を具備する。
【０２０８】
第一情報処理装置１８１を構成する実行部１８１０６は、第一プログラム格納部１１０５から第一プログラムを読み出し、少なくとも第一プログラムを実行し、所定の結果を得る。また、実行部１８１０６は、要求することなく、第二情報処理装置１８２からサブプログラムを受信し、当該受信したサブプログラムを第一プログラムに組み込んで、当該組み込んだ後のプログラムを実行し、所定の結果を得る。実行部１８１０６は、通常、ＭＰＵやメモリ等から実現され得る。実行部１８１０６の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【０２０９】
第二情報処理装置１８２を構成するサブプログラム取得部１８２０７は、第一情報処理装置１８１からの要求なしに、サブプログラムを取得する。サブプログラム取得部１８２０７は、例えば、第一情報処理装置１８１に送信したホームページに付随する第一プログラムに組み込まれるサブプログラムを取得する。サブプログラム取得部１８２０７は、通常、ＭＰＵやメモリ等から実現され得る。サブプログラム取得部１８２０７の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【０２１０】
サブプログラム送信部１８２０８は、第一情報処理装置１８１からの要求なしに、サブプログラム取得部１８２０７が取得したサブプログラムを、第一情報処理装置１８１に送信する。サブプログラム送信部１８２０８は、第一情報処理装置１８１にホームページを送信するタイミングとは非同期に、サブプログラムを送信する。サブプログラム送信部１８２０８は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
【０２１１】
次に、情報処理システムの動作について説明する。まず、第一情報処理装置１８１の動作について説明する。第一情報処理装置１８１の動作は、実施の形態１で述べた第一情報処理装置１１の動作と比較してプログラム実行の処理（ステップＳ３０９）のみ異なる。第一情報処理装置１８１の第一のプログラム実行の処理について、図１９のフローチャートを用いて説明する。図１９のフローチャートにおいて、図４のフローチャートと異なるステップについてのみ説明する。なお、第一情報処理装置１８１のサブプログラム受信手段１１０６３は、第二情報処理装置１８２から、ホームページの受信等とは非同期にサブプログラムを受信し、図示しないメモリ上に一時格納する、とする。
【０２１２】
（ステップＳ１９０１）実行手段１１０６５は、サブプログラム受信手段１１０６３が受信し、一時格納しているサブプログラムから、ｉ番目の命令列が有するサブプログラム取得情報に対応するサブプログラムを検索する。
【０２１３】
（ステップＳ１９０２）実行手段１１０６５は、ステップＳ１９０１でサブプログラムを検索できたか否かを判断する。サブプログラムを検索できればステップＳ４０９に行き、サブプログラムを検索できなければステップＳ１９０３に行く。
【０２１４】
（ステップＳ１９０３）サブプログラム受信手段１１０６３は、第二情報処理装置１８２から、ホームページの受信等とは非同期にサブプログラムを受信したか否かを判断する。サブプログラムを受信すればステップＳ１９０４に行き、サブプログラムを受信しなければステップＳ１９０３に戻る。
【０２１５】
（ステップＳ１９０４）実行手段１１０６５は、ステップＳ１９０３で受信したサブプログラムのうち、ｉ番目の命令列が有するサブプログラム取得情報に対応するサブプログラムが存在するか否かを判断する。サブプログラムが存在すればステップＳ４０９に行き、サブプログラムが存在しなければステップＳ１９０３に戻る。
【０２１６】
次に、第二情報処理装置１８２の第一の動作について、図２０のフローチャートを用いて説明する。図２０のフローチャートにおいて、図５のフローチャートと異なるステップについてのみ説明する。
【０２１７】
（ステップＳ２００１）ホームページ送信部１２０５は、送信した第一プログラムを識別する第一プログラム識別子を一時格納する。
【０２１８】
（ステップＳ２００２）サブプログラム取得部１８２０７は、所定時間（例えば、１０秒）ウエイトする。
【０２１９】
（ステップＳ２００３）サブプログラム取得部１８２０７は、ステップＳ２００１で格納された第一プログラム識別子を読み出し、当該第一プログラム識別子で識別される第一プログラムに組み込まれる１以上のサブプログラムを、サブプログラム格納部１２０２から取得する。
【０２２０】
（ステップＳ２００４）サブプログラム送信部１８２０８は、ステップＳ２００３で取得した１以上のサブプログラムを第一情報処理装置１８１に送信する。なお、送信するサブプログラムが２以上ある場合、サブプログラム送信部１８２０８は、同時に２以上のサブプログラムを第一情報処理装置１８１に送信しても良いし、順次、サブプログラムを第一情報処理装置１８１に送信しても良い。
【０２２１】
以下、本実施の形態における情報処理システムの具体的な動作について説明する。情報処理システムの概念図は図１である。
【０２２２】
今、第二情報処理装置１８２のホームページ格納部１２０１に、図６に示すホームページ等、多数のホームページが存在する。また、図６（１）のホームページには、図７に示すプログラム（第一プログラム識別子は、「申込．ｐｒｏｇ」である。）が付属している。
【０２２３】
また、サブプログラム取得部１８２０７は、図２１に示すサブプログラム取得情報表を保持している。サブプログラム取得情報表は、「ＩＤ」「第一プログラム識別子」「サブプログラム識別子」の属性値を有する。「ＩＤ」は、レコードを識別する情報であり、表におけるレコード管理のために存在する。「第一プログラム識別子」の属性値で識別される第一プログラムが動作するためには、「サブプログラム識別子」で識別されるサブプログラムが必要であることを示す。なお、サブプログラム格納部１２０２は、図２２に示すサブプログラムが記載されたファイル群を保持している。
【０２２４】
かかる状況で、ユーザは、第一情報処理装置１８１に対して、ＵＲＬ（ここでは、例えば、「ｈｔｔｐ：／／ｗｗｗ．ｈｏｗｓ．ｗｓ／」）を入力し、かつ、ホームページの送信を促す指示をした、とする。
【０２２５】
そして、第二情報処理装置１８２のページ要求受信部１２０３は、第一情報処理装置１８１からページ要求（コマンド「ページ送信  ｈｔｔｐ：／／ｗｗｗ．ｈｏｗｓ．ｗｓ／」）を受信する。
【０２２６】
そして、ホームページ取得部１２０４は、ページ要求に対応するホームページと当該ホームページに付属する第一プログラムをホームページ格納部１２０１から取得する。ここで、取得したホームページは、図６（１）のファイルであり、取得した第一プログラムは、図７のプログラムである、とする。
【０２２７】
そして、ホームページ送信部１２０５は、取得したホームページ（図６（１）参照）と第一プログラム（図７参照）を第一情報処理装置１８１に送信する。
【０２２８】
そして、ホームページ送信部１２０５は、送信した第一プログラム（図７参照）を識別する第一プログラム識別子「申込．ｐｒｏｇ」をメモリ上に一時格納する。
【０２２９】
次に、サブプログラム取得部１８２０７は、所定時間（例えば、１０秒）ウエイトする。
【０２３０】
次に、サブプログラム取得部１８２０７は、格納された第一プログラム識別子「申込．ｐｒｏｇ」を読み出し、当該第一プログラム識別子で識別される第一プログラムに組み込まれる１以上のサブプログラム識別子をサブプログラム取得情報表から取得する。その結果、サブプログラム取得部１８２０７は、サブプログラム識別子「ｄｆｕｎｃ．ａｓｐｘ」「ｃｃｃ．ａｓｐｃ」・・・を取得する。そして、サブプログラム取得部１８２０７は、サブプログラム識別子「ｄｆｕｎｃ．ａｓｐｘ」「ｃｃｃ．ａｓｐｃ」等をファイル名に有するサブプログラム（ファイル）をサブプログラム格納部１２０２から取得する。
【０２３１】
次に、サブプログラム送信部１８２０８は、取得したサブプログラム「ｄｆｕｎｃ．ａｓｐｘ」「ｃｃｃ．ａｓｐｃ」等を第一情報処理装置１８１に送信する。
【０２３２】
そして、第一情報処理装置１８１のサブプログラム受信手段１１０６３は、ホームページの受信等とは、非同期で、サブプログラム「ｄｆｕｎｃ．ａｓｐｘ」「ｃｃｃ．ａｓｐｃ」等を受信し、メモリ上に一時格納しておく。
【０２３３】
そして、実施の形態１で述べたように、第一情報処理装置１８１は、図６（１）のホームページと、図７の第一プログラムを受信し、図９の画面を表示する。なお、画面の表示と、ブプログラム「ｄｆｕｎｃ．ａｓｐｘ」「ｃｃｃ．ａｓｐｃ」等の受信の順序は問わない。
【０２３４】
次に、ユーザは、マウスで「申込」ボタンを押下した、とする。すると、受付部１１０１は、マウスのイベントを受け付ける。受付部１１０１は、このマウスのイベントを、「実行指示」として受け付ける。そして、実行部１１０６は、第一プログラム格納部１１０５の第一プログラム（図７のプログラム）を読み込む。そして、実行部１１０６は、第一プログラムを、順次、プログラムポインタをずらしながら、実行する。そして、実行部１１０６は、プログラムポインタが図７の（Ａ）にきた段階で、サブプログラム取得情報「ｘｍｌｈｔｔｐ．ｏｐｅｎ（"ＧＥＴ"，  "ｄｆｕｎｃ．ａｓｐｘ"）；ｘｍｌｈｔｔｐ．ｓｅｎｄ（ｎｕｌｌ）；」を認識する、とする。
【０２３５】
次に、実行部１１０６は、サブプログラム「ｄｆｕｎｃ．ａｓｐｘ」をメモリ上から検索し、取得し、実行する。
【０２３６】
実行手段１１０６５は、図７のすべての命令列が実行されるまで、第一プログラムのプログラムカウンタの箇所の命令列を実行し、プログラムカウンタを進めていく。
【０２３７】
以上、本実施の形態によれば、ネットワークのサーバ上にサブプログラムを配置し、動的にプログラムを書き換えること等により、重要なプログラム（サブプログラム）の著作権が保護できる。本実施の形態における技術は、特に、Ｗｅｂ等のネットワーク環境において有効である。
【０２３８】
また、本実施の形態によれば、ホームページの送信とは非同期にサーバからサブプログラムを送信することにより、サブプログラムの著作権が保護できる。
【０２３９】
さらに、本実施の形態によれば、実施の形態１、２の態様と比較して、第一情報処理装置と第二情報処理装置間の通信負荷を減らすことができる。
【０２４０】
なお、本実施の形態によれば、第二情報処理装置のサブプログラムの送信のタイミングは問わない。
【０２４１】
さらに、本実施の形態における第一情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、格納されている第一プログラムを読み出し、少なくとも前記第一プログラムを実行し、所定の結果を得る実行ステップを実行させ、前記実行ステップは、前記第一プログラムと一体となり所定の実行結果を得られるプログラムであるサブプログラムを第二情報処理装置から受信するサブプログラム受信サブステップと、前記サブプログラム受信サブステップで受信した前記サブプログラムを前記第一プログラムに組み込んで実行する実行サブステップを具備するプログラムである。
【０２４２】
また、上記プログラムにおいて、コンピュータに、ホームページのダウンロードの指示を受け付ける受付ステップと、前記指示に対応して、ホームページの送信を促すページ要求を送信するページ要求送信ステップと、前記ページ要求の送信に対応して、ホームページを受信するホームページ受信ステップと、前記ホームページを出力するホームページ出力ステップをさらに実行させ、前記第一プログラムは、前記ホームページに付属するスクリプトであることは好適である。
【０２４３】
また、前記サブプログラムは、暗号化されており、上記プログラムの前記実行ステップは、前記サブプログラム受信サブステップが受信したサブプログラムを復号化する復号化サブステップをさらに具備し、前記実行サブステップは、前記復号化サブステップが復号化した前記サブプログラムを前記第一プログラムに組み込んで実行することは好適である。
【０２４４】
前記サブプログラムは、関数の実行内容を示す命令列であり、前記第一プログラムは、１以上の関数の実行内容の記述がなく、また、上記プログラムの前記実行サブステップは、前記サブプログラム受信サブステップで受信した前記サブプログラムが示す関数の実行内容、または前記復号化サブステップで復号化した前記サブプログラムが示す関数の実行内容を、前記第一プログラムの空の関数に組み込んで実行しても良い。
【０２４５】
また、本実施の形態における第二情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、格納しているサブプログラムを取得するサブプログラム取得ステップと、前記サブプログラム取得ステップで取得した前記サブプログラムを、前記第一情報処理装置に送信するサブプログラム送信ステップを実行させるためのプログラムである。
【０２４６】
また、上記プログラムの前記サブプログラム送信ステップにおいて、前記第一情報処理装置からの要求なしに、前記サブプログラム取得ステップで取得した前記サブプログラムを、前記第一情報処理装置に送信することは好適である。
【０２４７】
また、上記プログラムにおいて、コンピュータに、前記ページ要求を受信するページ要求受信ステップと、前記ページ要求に対応するホームページと当該ホームページに付属する第一プログラムを取得するホームページ取得ステップと、前記ホームページ取得ステップで取得したホームページと第一プログラムを前記第一情報処理装置に送信するホームページ送信ステップとを実行させるためのプログラムでも良い。
【０２４８】
また、上記各実施の形態において、各処理（各機能）は、単一の装置（システム）によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
【０２４９】
なお、上記プログラムにおいて、情報を送信する送信ステップや、情報を受信する受信ステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理（ハードウェアでしか行われない処理）は含まれない。
【０２５０】
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【０２５１】
また、上記各実施の形態において、一の装置に存在する２以上の通信手段（情報送信部など）は、物理的に一の媒体で実現されても良いことは言うまでもない。
【０２５２】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【０２５３】
以上のように、本発明にかかる情報処理システムは、プログラムの著作権の保護ができる、という効果を有し、サーバ・クライアントシステム等として有用である。
【図面の簡単な説明】
【０２５４】
【図１】実施の形態１における情報処理システムの概念図
【図２】同情報処理システムのブロック図
【図３】同第一情報処理装置の動作について説明するフローチャート
【図４】同第一情報処理装置の動作について説明するフローチャート
【図５】同第二情報処理装置の動作について説明するフローチャート
【図６】同第二情報処理装置が格納しているホームページの例を示す図
【図７】同ホームページに付属するプログラムの例を示す図
【図８】同サブプログラム管理表を示す図
【図９】同ホームページの出力例を示す図
【図１０】実施の形態２における情報処理システムのブロック図
【図１１】同第一情報処理装置の動作について説明するフローチャート
【図１２】同第二情報処理装置の動作について説明するフローチャート
【図１３】同第一情報処理装置の動作について説明するフローチャート
【図１４】同第二情報処理装置の動作について説明するフローチャート
【図１５】同ホームページに付属するプログラムの例を示す図
【図１６】同サブプログラムの例を示す図
【図１７】同認証処理管理表を示す図
【図１８】実施の形態３における情報処理システムのブロック図
【図１９】同第一情報処理装置の動作について説明するフローチャート
【図２０】同第二情報処理装置の動作について説明するフローチャート
【図２１】同サブプログラム取得情報表を示す図
【図２２】同サブプログラムの例を示す図
【符号の説明】
【０２５５】
１１、１０１、１８１  第一情報処理装置
１２、１０２、１８２  第二情報処理装置
１１０１  受付部
１１０２  ページ要求送信部
１１０３  ホームページ受信部
１１０４  ホームページ出力部
１１０５  第一プログラム格納部
１１０６、１０１０６、１８１０６  実行部
１２０１  ホームページ格納部
１２０２  サブプログラム格納部
１２０２  サブプログラム情報格納部
１２０３  ページ要求受信部
１２０４  ホームページ取得部
１２０５  ホームページ送信部
１２０６  要求情報受信部
１２０７、１８２０７  サブプログラム取得部
１２０８、１８２０８  サブプログラム送信部
１０２０１  認証構成情報取得部
１０２０２  認証構成情報送信部
１０２０３  認証情報受信部
１０２０４  認証部
１１０６１  要求情報構成手段
１１０６２  要求情報送信手段
１１０６３  サブプログラム受信手段
１１０６４  復号化手段
１１０６５  実行手段
１０１０６１  認証構成情報受信手段
１０１０６２  認証情報取得手段
１０１０６３  認証情報送信手段
【図１】
2007249696.tif 000003
【図２】
2007249696.tif 000004
【図３】
2007249696.tif 000005
【図４】
2007249696.tif 000006
【図５】
2007249696.tif 000007
【図６】
2007249696.tif 000008
【図７】
2007249696.tif 000009
【図８】
2007249696.tif 000010
【図９】
2007249696.tif 000011
【図１０】
2007249696.tif 000012
【図１１】
2007249696.tif 000013
【図１２】
2007249696.tif 000014
【図１３】
2007249696.tif 000015
【図１４】
2007249696.tif 000016
【図１５】
2007249696.tif 000017
【図１６】
2007249696.tif 000018
【図１７】
2007249696.tif 000019
【図１８】
2007249696.tif 000020
【図１９】
2007249696.tif 000021
【図２０】
2007249696.tif 000022
【図２１】
2007249696.tif 000023
【図２２】
2007249696.tif 000024