JP2007249696A - 情報処理システム、情報処理装置、サーバ装置、およびプログラム - Google Patents

情報処理システム、情報処理装置、サーバ装置、およびプログラム Download PDF

Info

Publication number
JP2007249696A
JP2007249696A JP2006073382A JP2006073382A JP2007249696A JP 2007249696 A JP2007249696 A JP 2007249696A JP 2006073382 A JP2006073382 A JP 2006073382A JP 2006073382 A JP2006073382 A JP 2006073382A JP 2007249696 A JP2007249696 A JP 2007249696A
Authority
JP
Japan
Prior art keywords
subprogram
information
program
information processing
authentication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006073382A
Other languages
English (en)
Inventor
Wataru Shoji
渉 庄司
Shuhei Yamamoto
修平 山本
Keiichi Koide
啓一 小出
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HOWS KK
Original Assignee
HOWS KK
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by HOWS KK filed Critical HOWS KK
Priority to JP2006073382A priority Critical patent/JP2007249696A/ja
Publication of JP2007249696A publication Critical patent/JP2007249696A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

【課題】プログラムの著作権保護を強靭にする。
【解決手段】第一情報処理装置11と第二情報処理装置12を具備する情報処理システムであって、前記第一情報処理装置11は、第一プログラムを読み出し、少なくとも前記第一プログラムを実行し、所定の結果を得る実行部1106を具備し、前記実行部1106は、前記第一プログラムと一体となり所定の実行結果を得られるプログラムであるサブプログラムを前記第二情報処理装置12から受信するサブプログラム受信手段11063と、前記サブプログラムを前記第一プログラムに組み込んで実行する実行手段11065を具備し、前記第二情報処理装置12は、サブプログラムを取得するサブプログラム取得部1207と、前記サブプログラム取得部1207が取得した前記サブプログラムを、前記第一情報処理装置11に送信するサブプログラム送信部1208を具備する。
【選択図】図2

Description

本発明は、プログラムの全部を外部に公開することなく、プログラムのセキュリティーを担保できる情報処理システム等に関するものである。
通常、インターネットやWebの環境で良く利用されているプログラム(スクリプトを含む)であるJavaScript(Javaは登録商標)について、ユーザはURLを用いて、プログラムを閲覧できる。具体的には、Webブラウザのソース表示機能を使えばHTMLのソースが表示され、JavaScriptファイル(jsファイル)もHTMLにファイル名が書かれているため簡単にダウンロードされてしまう。また、ブラウザで表示されたHTMLやJavaScriptなどのファイルは必ずローカルのPCにキャッシュされるため、キャッシュファイルからもソースを見られてしまう。そのため、HTMLやJavaScriptファイルに直接書かれたプログラムを隠ぺいすることができず、プログラムの著作権が容易に侵害されることがあった。
一方、従来のプログラム隠蔽方法として、プログラム内容の秘匿をソースレベルで行うことができ、且つ特別手を加える必要がなく単にコンパイルするだけでオブジェクトレベルでも隠蔽化できるソースコードを提供する方法があった(例えば、特許文献1参照)。このプログラム隠蔽方法を採用するソースプログラム変換ツールは、ソースコードS1に含まれる定数データの初期化部を、可逆な変換処理によって解読困難な状態に変換した代替定数データの初期化部に置き換え、前記定数データが参照される前の箇所に前記代替定数データから元の定数データを復元する逆変換処理のソースを挿入したソースコードS2を生成する。
特開2003−280754号公報(第1頁、第1図等)
しかしながら、従来の情報処理システムにおいては、インターネット等のネットワーク環境で送受信され、実行されるプログラムの隠蔽については、考慮されていなかった。
また、上述したように、インターネット環境において、サーバ装置が保持しているホームページに附属するプログラムは、クライアント装置にダウンロードされた後に、クライアント装置において、自由に閲覧可能となり、そのプログラムの著作権が侵害され易い環境となっていた。
本第一の発明の情報処理システムは、第一情報処理装置と第二情報処理装置を具備する情報処理システムであって、前記第一情報処理装置は、第一プログラムを格納し得る第一プログラム格納部と、前記第一プログラム格納部から第一プログラムを読み出し、少なくとも前記第一プログラムを実行し、所定の結果を得る実行部を具備し、前記実行部は、前記第一プログラムと一体となり所定の実行結果を得られるプログラムであるサブプログラムを前記第二情報処理装置から受信するサブプログラム受信手段と、前記サブプログラム受信手段が受信した前記サブプログラムを前記第一プログラムに組み込んで実行する実行手段を具備し、前記第二情報処理装置は、1以上のサブプログラムを格納しているサブプログラム格納部と前記サブプログラム格納部からサブプログラムを取得するサブプログラム取得部と、前記サブプログラム取得部が取得した前記サブプログラムを、前記第一情報処理装置に送信するサブプログラム送信部を具備する情報処理システムである。
かかる構成により、プログラムの著作権の保護ができる。
また、本第二の発明の情報処理システムは、第一の発明に対して、前記実行部は、前記第一プログラムに記述されている情報であり、サブプログラムを前記第二情報処理装置から取得するための情報であるサブプログラム取得情報を、前記第一プログラムから読み取り、当該サブプログラム取得情報を読み取った場合に、前記サブプログラムを識別する情報であるサブプログラム識別子を含み、前記サブプログラムの送信を要求する情報である要求情報を構成する要求情報構成手段と、前記要求情報を前記第二情報処理装置に送信する要求情報送信手段とをさらに具備し、前記サブプログラム受信手段は、前記要求情報の送信に対応して、前記第二情報処理装置から前記サブプログラムを受信し、前記第二情報処理装置は、前記第一情報処理装置から前記要求情報を受信する要求情報受信部をさらに具備し、前記サブプログラム取得部は、前記要求情報が有するサブプログラム識別子と対になるサブプログラムを、前記サブプログラム情報格納部から取得する情報処理システムである。
かかる構成により、プログラムの著作権の保護ができる。
また、本第三の発明の情報処理システムは、第一の発明に対して、前記サブプログラム送信部は、前記第一情報処理装置からの要求なしに、前記サブプログラム取得部が取得した前記サブプログラムを、前記第一情報処理装置に送信する情報処理システムである。
かかる構成により、第一情報処理装置と第二情報処理装置の通信量を減らして、かつ、プログラムの著作権の保護ができる。
また、本第四の発明の情報処理システムは、第一から第三いずれかの発明に対して、前記実行部は、前記サブプログラムの送信許可を得るための認証情報を取得する認証情報取得手段と、前記認証情報を前記第二情報処理装置に送信する認証情報送信手段をさらに具備し、前記第二情報処理装置は、前記認証情報を受信する認証情報受信部と、前記認証情報に対して認証処理し、認証許可であるか認証不許可であるかを判断する認証部と、前記サブプログラム送信部は、前記認証部が認証許可であると判断した場合のみ、前記サブプログラムを、前記第一情報処理装置に送信する情報処理システムである。
かかる構成により、プログラムの著作権の保護がより強靭にできる。
また、本第五の発明の情報処理システムは、第四の発明に対して、前記認証部は、2以上のサブプログラムを送信する場合に、前記認証情報に対して認証処理し、認証許可であるか認証不許可であるかをサブプログラムごとに判断し、前記サブプログラム送信部は、前記認証部が認証許可であると判断した場合のみ、前記各サブプログラムを前記第一情報処理装置に送信する情報処理システムである。
かかる構成により、サブプログラムごとに、著作権の保護がより強靭にできる。
また、本第六の発明の情報処理システムは、第四、第五いずれかの発明に対して、前記認証情報は、前記第一プログラムを識別する情報である第一プログラム識別子を含み、前記認証部は、前記第一プログラム識別子で識別される第一プログラムの正当性を判断し、正当であると判断した場合のみ認証許可とし、不当であると判断した場合は認証不許可であると判断する情報処理システムである。
かかる構成により、プログラムの著作権の保護がより強靭にできる。
また、本第七の発明の情報処理システムは、第四、第五いずれかの発明に対して、前記認証情報は、前記第一情報処理装置のユーザを識別する情報であるユーザ識別子を含み、前記認証部は、前記ユーザ識別子で識別されるユーザの正当性を判断し、正当であると判断した場合のみ認証許可とし、不当であると判断した場合は認証不許可であると判断する情報処理システムである。
かかる構成により、プログラムの著作権の保護がより強靭にできる。
また、本第八の発明の情報処理システムは、第七の発明に対して、前記ユーザ識別子は、前記第一情報処理装置にログインする際に入力したユーザ識別子、または前記第二情報処理装置にアクセスする際に入力したユーザ識別子である情報処理システムである。
かかる構成により、プログラムの著作権の保護がより強靭にできる。
また、本第九の発明の情報処理システムは、第四から第八いずれかの発明に対して、前記実行部は、前記第二情報処理装置から認証情報を構成する情報である認証構成情報を受信する認証構成情報受信手段をさらに具備し、前記認証情報取得手段は、前記認証構成情報を有する認証情報を構成し、前記第二情報処理装置は、前記認証構成情報を構成する認証構成情報取得部と、前記認証構成情報を前記第一情報処理装置に送信する認証構成情報送信部をさらに具備する情報処理システムである。
かかる構成により、プログラムの著作権の保護がさらに強靭にできる。
また、本第十の発明の情報処理システムは、第一から第九いずれかの発明に対して、前記第一情報処理装置は、ホームページのダウンロードの指示を受け付ける受付部と、前記指示に対応して、ホームページの送信を促すページ要求を送信するページ要求送信部と、前記ページ要求の送信に対応して、ホームページを受信するホームページ受信部と、前記ホームページを出力するホームページ出力部を具備し、前記第一プログラムは、前記ホームページに付属するスクリプトであり、前記第二情報処理装置は、1以上のホームページを格納しているホームページ格納部と、前記ページ要求を受信するページ要求受信部と、前記ページ要求に対応するホームページと当該ホームページに付属する第一プログラムを前記ホームページ格納部から取得するホームページ取得部と、前記ホームページ取得部が取得したホームページと第一プログラムを前記第一情報処理装置に送信するホームページ送信部とを具備する情報処理システムである。
かかる構成により、プログラムの著作権の保護ができる。
また、本第十一の発明の情報処理システムは、第一から第十いずれかの発明に対して、前記サブプログラム格納部のサブプログラムは、暗号化されており、前記実行部は、前記サブプログラム受信手段が受信したサブプログラムを復号化する復号化手段をさらに具備し、前記実行手段は、前記復号化手段が復号化した前記サブプログラムを前記第一プログラムに組み込んで実行する情報処理システムである。
かかる構成により、プログラムの著作権の保護がさらに強靭にできる。
また、本第十二の発明の情報処理システムは、第一から第十一いずれかの発明に対して、前記サブプログラムは、関数の実行内容を示す命令列であり、前記第一プログラムは、1以上の関数の実行内容の記述がなく、前記実行手段は、前記サブプログラム受信手段が受信した前記サブプログラムが示す関数の実行内容、または前記復号化手段が復号化した前記サブプログラムが示す関数の実行内容を、前記第一プログラムの空の関数に組み込んで実行する情報処理システムである。
かかる構成により、プログラムの著作権の保護ができる。
本発明による情報処理システムによれば、プログラムの著作権が保護できる。
以下、情報処理システム等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
図1は、本実施の形態における情報処理システムの概念図である。情報処理システムは、第一情報処理装置11、第二情報処理装置12を具備する。ここでは、第一情報処理装置11は、1以上存在するクライアント装置である。第二情報処理装置12は、例えば、ホームページを格納しているサーバ装置である。第一情報処理装置11と第二情報処理装置12は、例えば、インターネットで接続されており、通信可能である。
図2は、本実施の形態における情報処理システムのブロック図である。
第一情報処理装置11は、受付部1101、ページ要求送信部1102、ホームページ受信部1103、ホームページ出力部1104、第一プログラム格納部1105、実行部1106を具備する。
実行部1106は、要求情報構成手段11061、要求情報送信手段11062、サブプログラム受信手段11063、復号化手段11064、実行手段11065を具備する。
第二情報処理装置12は、ホームページ格納部1201、サブプログラム格納部1202、ページ要求受信部1203、ホームページ取得部1204、ホームページ送信部1205、要求情報受信部1206、サブプログラム取得部1207、サブプログラム送信部1208を具備する。
受付部1101は、ホームページのダウンロードの指示や、何らかの動作の開始指示などを受け付ける。指示等の入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。指示は、例えば、「URL」の情報と、当該「URL」で識別されるホームページの送信を促す指示である。受付部1101は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
ページ要求送信部1102は、受付部1101が受け付けた指示に対応して、ホームページの送信を促すページ要求を送信する。ページ要求は、例えば、コマンド「ページ送信 http://www.hows.ws/」である。ページ要求送信部1102は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
ホームページ受信部1103は、ページ要求送信部1102におけるページ要求の送信に対応して、ホームページを受信する。なお、ホームページは、例えば、HTMLやXML等で記述されている。ただし、ホームページの記述言語等は問わない。また、ホームページの送受信のプロトコルは、例えば、httpであるが、問わない。ホームページ受信部1103は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
ホームページ出力部1104は、ホームページを出力する。ここで、出力とは、ディスプレイへの表示、プリンタへの印字、外部の装置への送信、記録媒体への蓄積等を含む概念である。ホームページ出力部1104は、例えば、Webブラウザである。ホームページは、HTMLやXMLや、その他のマークアップ言語で記載されている。ただし、ホームページは、マークアップ言語で記載されておらず、タグなしのテキストファイル等でも良い。ホームページのデータ構造や記述言語等は問わない。ホームページは、動画や静止画や音声データや楽音データ等を含んでも良い。本実施の形態において、ホームページとは、Web上のホームページを想定して説明するが、データ、情報であれば良い。ホームページ出力部1104は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。ホームページ出力部1104は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
第一プログラム格納部1105は、少なくとも一部のプログラム(サブプログラム)が隠蔽されたプログラムである第一プログラムを格納し得る。例えば、第一プログラムは、ホームページに付属するスクリプトである。例えば、第一プログラムは、1以上の関数の実行内容の記述がない、プログラムである。例えば、第一プログラムは、java(javaは登録商標)スクリプトで記載されている。ただし、第一プログラムの言語は、アセンブラ、C言語、perl、C++等、問わない。また、第一プログラムは、第二情報処理装置12から受信したプログラムでも良いし、予め格納しているプログラムでも良いし、第三の装置から受信したプログラムでも良いし、記録媒体から読み出したプログラムでも良い。第一プログラム格納部1105は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
実行部1106は、第一プログラム格納部1105から第一プログラムを読み出し、少なくとも第一プログラムを実行し、所定の結果を得る。実行部1106は、受信したサブプログラムを第一プログラムに組み込んで、当該組み込んだ後のプログラムを実行し、所定の結果を得る。なお、第一プログラムだけでは、所定の結果を得ることができない。サブプログラムは、第一プログラムと一体となり所定の実行結果を得られるプログラムである。サブプログラムは、例えば、関数の実行内容を示す命令列である。サブプログラムの具体例については、後述する。実行部1106は、通常、MPUやメモリ等から実現され得る。実行部1106の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
要求情報構成手段11061は、要求情報を構成する。要求情報構成手段11061は、第一プログラムに記述されているサブプログラム取得情報を読み取った場合に、要求情報を構成する。要求情報は、サブプログラムの送信を要求する情報である。要求情報は、例えば、サブプログラムを識別する情報であるサブプログラム識別子を含む。また、サブプログラム識別子は、例えば、関数名の文字列や、関数名を特定するIDや数字などである。サブプログラム取得情報は、第一プログラムに記述されている情報であり、サブプログラムを第二情報処理装置12から取得するための情報である。要求情報のデータ構造は問わない。要求情報やサブプログラム取得情報の例については後述する。要求情報構成手段11061は、通常、MPUやメモリ等から実現され得る。要求情報構成手段11061の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
要求情報送信手段11062は、要求情報構成手段11061が構成した要求情報を第二情報処理装置12に送信する。要求情報送信手段11062は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
サブプログラム受信手段11063は、第一プログラムと一体となり所定の実行結果を得られるプログラムであるサブプログラムを第二情報処理装置12から受信する。ここで、「一体」とは、第一プログラムと1以上のサブプログラムをともに実行することにより、所定の結果が得られることを示す。サブプログラム受信手段11063は、通常、要求情報の送信に対応して、第二情報処理装置12からサブプログラムを受信する。サブプログラム受信手段11063は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
復号化手段11064は、サブプログラム受信手段11063が受信したサブプログラムを復号化する。復号化の方法は、公開鍵による方法、秘密鍵による方法等、問わない。復号化処理は公知技術であるので、説明は省略する。復号化手段11064は、通常、MPUやメモリ等から実現され得る。復号化手段11064の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
実行手段11065は、サブプログラム受信手段11063が受信したサブプログラムを第一プログラムに組み込んで(第一プログラムとサブプログラムをともに)実行する。また、実行手段11065は、復号化手段11064が復号化したサブプログラムを第一プログラムに組み込んで(第一プログラムと復号化したサブプログラムをともに)実行しても良い。実行手段11065は、サブプログラム受信手段11063が受信したサブプログラムが示す関数の実行内容、または復号化手段11064が復号化したサブプログラムが示す関数の実行内容を、第一プログラムの空の関数に組み込んで実行する。実行手段11065は、通常、MPUやメモリ等から実現され得る。実行手段11065の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
ホームページ格納部1201は、1以上のホームページを格納している。ホームページは、当該ホームページに付属する第一プログラムをも有する。ホームページ格納部1201は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
サブプログラム格納部1202は、1以上のサブプログラムを格納している。サブプログラムは、例えば、サブプログラムを識別するサブプログラム識別子を属性値として有する。サブプログラム格納部1202は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
ページ要求受信部1203は、第一情報処理装置11からページ要求を受信する。ページ要求受信部1203は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
ホームページ取得部1204は、ページ要求に対応するホームページと当該ホームページに付属する第一プログラムをホームページ格納部1201から取得する。ホームページ取得部1204は、通常、MPUやメモリ等から実現され得る。ホームページ取得部1204の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
ホームページ送信部1205は、ホームページ取得部1204が取得したホームページと第一プログラムを第一情報処理装置11に送信する。ホームページ送信部1205は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
要求情報受信部1206は、第一情報処理装置11から要求情報を受信する。要求情報受信部1206は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
サブプログラム取得部1207は、サブプログラム格納部1202からサブプログラムを取得する。サブプログラム取得部1207は、例えば、要求情報が有するサブプログラム識別子と対になるサブプログラムを、サブプログラム情報格納部1202から取得する。サブプログラム取得部1207は、通常、MPUやメモリ等から実現され得る。サブプログラム取得部の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
サブプログラム送信部1208は、サブプログラム取得部1207が取得したサブプログラムを、第一情報処理装置11に送信する。サブプログラム送信部1208は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
次に、情報処理システムの動作について説明する。まず、第一情報処理装置11の動作について、図3、図4のフローチャートを用いて説明する。
(ステップS301)受付部1101は、ユーザから指示を受け付けたか否かを判断する。指示を受け付ければステップS302に行き、指示を受け付けなければステップS301に戻る。
(ステップS302)ページ要求送信部1102は、ステップS301で受け付けた指示がホームページの送信を要求する指示であるか否かを判断する。ホームページの送信を要求する指示であればステップS303に行き、ホームページの送信を要求する指示でなければステップS308に行く。
(ステップS303)ページ要求送信部1102は、ホームページの送信を促すページ要求を構成する。ページ要求送信部1102は、例えば、ユーザがキーボードで入力したURLを読み出し、当該URLを含むページ要求(コマンド)を構成する。
(ステップS304)ページ要求送信部1102は、ステップS303で構成したページ要求を送信する。
(ステップS305)ホームページ受信部1103は、ステップS304におけるページ要求の送信に対応して、ホームページを受信したか否かを判断する。ホームページを受信すればステップS306に行き、ホームページを受信しなければステップS305に戻る。
(ステップS306)ホームページ出力部1104は、ステップS305で受信したホームページを出力する。
(ステップS307)ホームページ出力部1104は、出力したホームページに付属する第一プログラムを、第一プログラム格納部1105に少なくとも一時格納する。ステップS301に戻る。
(ステップS308)実行部1106は、ステップS301で受け付けた指示が、第一プログラムの実行指示であるか否かを判断する。第一プログラムの実行指示であればステップS309に行き、第一プログラムの実行指示でなければステップS310に行く。
(ステップS309)実行部1106は、第一プログラムを実行し、ステップS301に戻る。このプログラム実行の処理について、図4のフローチャートを用いて後述する。
(ステップS310)図示しない手段は、指示に対応した動作を行う。
なお、図3のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、プログラム実行の処理について、図4のフローチャートを用いて説明する。
(ステップS401)実行部1106は、第一プログラム格納部1105の第一プログラムを読み込む。
(ステップS402)実行部1106は、カウンタiに1を代入する。
(ステップS403)実行部1106は、i番目の命令列が存在するか否かを判断する。i番目の命令列が存在すればステップS404に行き、i番目の命令列が存在しなければ上位関数にリターンする。
(ステップS404)実行部1106は、i番目の命令列がサブプログラム取得情報であるか否か、またはサブプログラム取得情報を含むか否かを判断する。i番目の命令列がサブプログラム取得情報である、またはサブプログラム取得情報を含む場合はステップS405に行き、そうでない場合はステップS410に行く。
(ステップS405)要求情報構成手段11061は、要求情報を構成する。要求情報構成手段11061は、例えば、サブプログラム取得情報を読み取り、当該サブプログラム取得情報が有するサブプログラム識別子を含み、当該サブプログラムを取得する要求を示す命令である要求情報を構成する。要求情報は、例えば、「send_subprogram 関数A」である。
(ステップS406)要求情報送信手段11062は、ステップS405で構成した要求情報を第二情報処理装置12に送信する。
(ステップS407)サブプログラム受信手段11063は、第二情報処理装置12からサブプログラムを受信したか否かを判断する。このサブプログラムは、例えば、サブプログラム取得情報に対応するサブプログラムであり、要求情報に含まれるサブプログラム識別子で識別されるサブプログラムである。サブプログラムを受信すればステップS408に行き、サブプログラムを受信しなければステップS412に行く。
(ステップS408)復号化手段11064は、サブプログラム受信手段11063が受信したサブプログラムを復号化する。
(ステップS409)実行手段11065は、ステップS408で復号化したサブプログラムを第一プログラムに組み込む。
(ステップS410)実行手段11065は、組み込んだサブプログラムを実行する。
(ステップS411)実行手段11065は、カウンタiを1、インクリメントし、ステップS403に戻る。
(ステップS412)サブプログラム受信手段11063は、タイムアウトか否かを判断する。タイムアウトであればステップS413に行き、タイムアウトでなければステップS407に戻る。なお、タイムアウトとは、要求情報送信手段11062が要求情報を送信してから、予め決められた所定の時間以上、時間が経過していることである。サブプログラム受信手段11063は、予め決められた所定の時間の情報を保持しており、かつ、要求情報送信手段11062は、要求情報を送信した時刻をサブプログラム受信手段11063に知らせる(決められたメモリ上に時刻を書き込む等)、とする。
(ステップS413)サブプログラム受信手段11063は、タイムアウトのエラーである旨のエラーメッセージを出力する。上位関数にリターンする。
なお、図4のフローチャートにおいて、エラーメッセージの出力処理等は必須ではない。また、サブプログラムは必ずしも暗号化されていない。サブプログラムが暗号化されていない場合、復号化の処理は必要がない。
次に、第二情報処理装置12の動作について、図5のフローチャートを用いて説明する。
(ステップS501)ページ要求受信部1203は、第一情報処理装置11からページ要求を受信したか否かを判断する。ページ要求を受信すればステップS502に行き、ページ要求を受信しなければステップS504に行く。
(ステップS502)ホームページ取得部1204は、ステップS501で受信したページ要求に対応するホームページと当該ホームページに付属する第一プログラムをホームページ格納部1201から取得する。
(ステップS503)ホームページ送信部1205は、ステップS502で取得したホームページと第一プログラムを第一情報処理装置11に送信し、ステップS501に戻る。
(ステップS504)要求情報受信部1206は、第一情報処理装置11から要求情報を受信したか否かを判断する。要求情報を受信すればステップS505に行き、要求情報を受信しなければステップS501に戻る。
(ステップS505)サブプログラム取得部1207は、サブプログラム格納部1202からサブプログラムを取得する。このサブプログラムは、通常、ステップS504で受信した要求情報を用いて、特定されるサブプログラムである。要求情報がサブプログラム識別子を有する場合、サブプログラム取得部1207は、要求情報が有するサブプログラム識別子で識別されるサブプログラムを取得する。
(ステップS506)サブプログラム送信部1208は、ステップS505で取得したサブプログラムを、第一情報処理装置11に送信する。ステップS501に戻る。
なお、図5のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
以下、本実施の形態における情報処理システムの具体的な動作について説明する。情報処理システムの概念図は図1である。
今、第二情報処理装置12のホームページ格納部1201に、図6に示すホームページ等、多数のホームページが存在する。ここで、ホームページは、リンク付けされたページのトップページだけではない、とする。また、ホームページは、HTMLで記述されている。また、図6の(1)のホームページには、図7に示すプログラムが付属している。
また、サブプログラム格納部1202は、図8に示すサブプログラム管理表を保持している。サブプログラム管理表は、「ID」「サブプログラム識別子」「サブプログラム」の属性値を有する。「ID」は、レコードを識別する情報であり、表におけるレコード管理のために存在する。「サブプログラム識別子」は、ここでは、関数名である。「サブプログラム」は、ここでは、関数名で識別される関数に渡すパラメータの集合である。
かかる状況で、ユーザは、第一情報処理装置11に対して、URL(ここでは、例えば、「http://www.hows.ws/」)を入力し、かつ、ホームページの送信を促す指示をした、とする。
次に、受付部1101は、URL(「http://www.hows.ws/」)と、ホームページの送信の指示を受け付ける。そして、ページ要求送信部1102は、コマンド「ページ送信 http://www.hows.ws/」を構成し、通信プロトコルhttpにより、第二情報処理装置12に送信する。
次に、第二情報処理装置12のページ要求受信部1203は、第一情報処理装置11からページ要求(コマンド「ページ送信 http://www.hows.ws/」)を受信する。
そして、ホームページ取得部1204は、ページ要求に対応するホームページと当該ホームページに付属する第一プログラムをホームページ格納部1201から取得する。ここで、取得したホームページは、図6で表示されているファイルであり、取得した第一プログラムは、図7のプログラムである、とする。
そして、ホームページ送信部1205は、取得したホームページ(図6参照)と第一プログラム(図7参照)を第一情報処理装置11に送信する。
次に、ホームページ受信部1103は、ホームページ(図6参照)と第一プログラム(図7参照)を受信する。そして、ホームページ出力部1104は、図6のホームページを解釈し、ページを画面に出力する。そして、ホームページ出力部1104は、第一プログラムを、第一プログラム格納部1105に少なくとも一時格納する(キャッシュする)。この画面への出力例が図9である。なお、このホームページ(図6参照)と第一プログラム(図7参照)は、第一情報処理装置11でキャッシュされるため、ユーザは、その内容(HTMLやプログラムのソース)を見ることができる。また、第一プログラムは、図9における「申込」ボタンが押下された場合に実行される、とする。
次に、ユーザは、マウスで「申込」ボタンを押下した、とする。すると、受付部1101は、マウスのイベントを受け付ける。受付部1101は、このマウスのイベントを、「実行指示」として受け付ける。そして、実行部1106は、第一プログラム格納部1105の第一プログラム(図7のプログラム)を読み込む。そして、実行部1106は、第一プログラムを、順次、プログラムポインタをずらしながら、実行する。そして、実行部1106は、プログラムポインタが図7の(A)にきた段階で、サブプログラム取得情報(「new Function」を含む文字列)を認識する。
次に、要求情報構成手段11061は、サブプログラム取得情報(「new Function」を含む文字列)を読み取り、当該サブプログラム取得情報が有するサブプログラム識別子「plus」を含み、当該サブプログラムを取得する要求を示す命令である要求情報「GET plus」を構成する。
次に、要求情報送信手段11062は、構成した要求情報「GET plus」を第二情報処理装置12に送信する。
そして、第二情報処理装置12の要求情報受信部1206は、第一情報処理装置11から要求情報「GET plus」を受信する。そして、サブプログラム取得部1207は、サブプログラム格納部1202から、要求情報「GET plus」に対応するサブプログラムを取得する。つまり、サブプログラム取得部1207は、要求情報「GET plus」が含む関数名「plus」をキーとして、図8のサブプログラム管理表を検索し、サブプログラム「valueA="a,b" valueB="return a+b"」を取得する。
次に、サブプログラム送信部1208は、サブプログラム「valueA="a,b" valueB="return a+b"」を、第一情報処理装置11に送信する。
次に、サブプログラム受信手段11063は、サブプログラム「valueA="a,b" valueB="return a+b"」を受信する。
そして、復号化手段11064は、サブプログラム受信手段11063が受信したサブプログラム「valueA="a,b" valueB="return a+b"」が暗号化されていれば、復号化する。
次に、実行手段11065は、サブプログラム「valueA="a,b" valueB="return a+b"」を第一プログラムに組み込む。つまり、図7の「plus = new Function(valueA, valueB);」の「valueA」「valueB」を、受信したサブプログラムが有する情報に置き換え、「plus = new Function("a,b", "return a+b;");」を得る。
次に、実行手段11065は、組み込んだサブプログラムを含む関数「plus = new Function("a,b", "return a+b;");」を実行する。
そして、以後も同様に、実行手段11065は、図7のすべての命令列が実行されるまで、第一プログラムのプログラムカウンタの箇所の命令列を実行し、プログラムカウンタを進めていく。
なお、かかるサブプログラム「valueA="a,b" valueB="return a+b"」は、実行時に、一時的にメモリに置かれるだけで、バッファや記録媒体には蓄積されない。したがって、ユーザは、サブプログラム「valueA="a,b" valueB="return a+b"」を見ることはできない。
以上、本実施の形態によれば、ネットワークのサーバ上にサブプログラムを配置し、動的にプログラムを書き換えることにより、重要なプログラム(サブプログラム)の著作権が保護できる。本実施の形態における技術は、特に、Web等のネットワーク環境において有効である。
なお、本実施の形態において、ホームページ(例えば、HTMLソース)が読み込まれるタイミングで(同期通信により)、第一プログラムが読み込まれた。また、サブプログラムは、非同期通信で(ページの読み込みとは関係なく)、第二情報処理装置(例えば、サーバ装置)から第一情報処理装置(例えば、クライアント)へ送信された。かかる場合、サブプログラムを構成する「valueA="a,b" valueB="return a+b"」のうち、「valueA="a,b"」と「valueB="return a+b"」が同時に送信されても、同時に送信されなくても良い。以上の動的に関数を生成する仕組みにより、関数の中身をソースに記述することなく関数を定義することができる。したがって、関数(サブプログラムの一例)の著作権が保護できる。
また、本実施の形態において、サブプログラムを構成する「valueA="a,b" valueB="return a+b"」のうち、関数の引数(valueAの部分)は特に隠ぺいする必要がない場合も考えられ、その場合は非同期通信で取得するのはvalueBだけでよい。そのために、サブプログラム格納部1202は「valueB="return a+b"」のみ格納していても良い。
また、本実施の形態において、第一情報処理装置11と第二情報処理装置12は、サーバクライアントの情報システムであったが、第一情報処理装置11と第二情報処理装置12は、ピア・トゥー・ピアで通信を行っても良い。かかることは他の実施の形態でも同様である。
また、本実施の形態において、サブプログラムは、実行されるプログラムの一部であれば良く、その形式等は問わない。かかることは他の実施の形態でも同様である。
また、本実施の形態において、サブプログラム取得情報は、上記した例に限らないことは言うまでもない。サブプログラム取得情報は、例えば、「xmlhttp.open("GET", "dfunc.aspx"); xmlhttp.send(null);」などの、予め決められた関数でも良い。サブプログラム取得情報が、「xmlhttp.open("GET", "dfunc.aspx"); xmlhttp.send(null);」である場合、例えば、サブプログラムは、ファイル名"dfunc.aspx"で識別されるファイルに記述されているプログラムである。なお、サブプログラム取得情報は、第一プログラム内に記述されている。また、「xmlhttp.open("GET", "dfunc.aspx")」において、"GET"は、HTTPメソッド、"dfunc.aspx"は、送信先URIである。「xmlhttp.send(null);」は、データを送信することを示す。
また、本実施の形態において、第一情報処理装置11と第二情報処理装置12の間で送受信する情報は、ホームページでなくても良い。両装置間で送受信する情報は、プレーンなテキスト、動画コンテンツ、音楽コンテンツ、その他の情報でも良い。かかることは、他の実施の形態においても同様である。
また、本実施の形態において、サブプログラムは、暗号化されているとは限らない。サブプログラムが暗号化されていない場合、復号化手段11064は必要がない。かかることは他の実施の形態でも同様である。
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における第一情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、格納されている第一プログラムを読み出し、少なくとも前記第一プログラムを実行し、所定の結果を得る実行ステップを実行させ、前記実行ステップは、前記第一プログラムと一体となり所定の実行結果を得られるプログラムであるサブプログラムを第二情報処理装置から受信するサブプログラム受信サブステップと、前記サブプログラム受信サブステップで受信した前記サブプログラムを前記第一プログラムに組み込んで実行する実行サブステップを具備するプログラムである。
また、上記プログラムにおいて、前記実行ステップは、前記第一プログラムに記述されている情報であり、サブプログラムを前記第二情報処理装置から取得するための情報であるサブプログラム取得情報を、前記第一プログラムから読み取り、当該サブプログラム取得情報を読み取った場合に、前記サブプログラムを識別する情報であるサブプログラム識別子を含み、前記サブプログラムの送信を要求する情報である要求情報を構成する要求情報構成サブステップと、前記要求情報を前記第二情報処理装置に送信する要求情報送信サブステップとをさらに具備し、前記サブプログラム受信サブステップは、前記要求情報の送信に対応して、前記第二情報処理装置から前記サブプログラムを受信することは好適である。
また、上記プログラムにおいて、コンピュータに、ホームページのダウンロードの指示を受け付ける受付ステップと、前記指示に対応して、ホームページの送信を促すページ要求を送信するページ要求送信ステップと、前記ページ要求の送信に対応して、ホームページを受信するホームページ受信ステップと、前記ホームページを出力するホームページ出力ステップをさらに実行させ、前記第一プログラムは、前記ホームページに付属するスクリプトであることは好適である。
また、前記サブプログラムは、暗号化されており、上記プログラムの前記実行ステップは、前記サブプログラム受信サブステップが受信したサブプログラムを復号化する復号化サブステップをさらに具備し、前記実行サブステップは、前記復号化サブステップが復号化した前記サブプログラムを前記第一プログラムに組み込んで実行することは好適である。
前記サブプログラムは、関数の実行内容を示す命令列であり、前記第一プログラムは、1以上の関数の実行内容の記述がなく、また、上記プログラムの前記実行サブステップは、前記サブプログラム受信サブステップで受信した前記サブプログラムが示す関数の実行内容、または前記復号化サブステップで復号化した前記サブプログラムが示す関数の実行内容を、前記第一プログラムの空の関数に組み込んで実行しても良い。
また、本実施の形態における第二情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、格納しているサブプログラムを取得するサブプログラム取得ステップと、前記サブプログラム取得ステップで取得した前記サブプログラムを、前記第一情報処理装置に送信するサブプログラム送信ステップを実行させるためのプログラムである。
また、上記プログラムにおいて、コンピュータに、前記第一情報処理装置から前記要求情報を受信する要求情報受信ステップをさらに実行させ、前記サブプログラム取得ステップは、前記要求情報が有するサブプログラム識別子と対になるサブプログラムを取得することは好適である。
また、上記プログラムにおいて、コンピュータに、前記ページ要求を受信するページ要求受信ステップと、前記ページ要求に対応するホームページと当該ホームページに付属する第一プログラムを取得するホームページ取得ステップと、前記ホームページ取得ステップで取得したホームページと第一プログラムを前記第一情報処理装置に送信するホームページ送信ステップとを実行させるためのプログラムでも良い。
(実施の形態2)
本実施の形態における情報処理システムは、サブプログラムのダウンロード前に、認証情報を第一情報処理装置から第二情報処理装置に送信し、第二情報処理装置で認証できた場合のみ、クライアントに送信するシステムである。
図10は、本実施の形態における情報処理システムのブロック図である。
情報処理システムは、第一情報処理装置101、第二情報処理装置102を具備する。
第一情報処理装置101は、受付部1101、ページ要求送信部1102、ホームページ受信部1103、ホームページ出力部1104、第一プログラム格納部1105、実行部10106を具備する。
実行部10106は、要求情報構成手段11061、要求情報送信手段11062、認証構成情報受信手段101061、認証情報取得手段101062、認証情報送信手段101063、サブプログラム受信手段11063、復号化手段11064、実行手段11065を具備する。
第二情報処理装置102は、ホームページ格納部1201、サブプログラム格納部1202、ページ要求受信部1203、ホームページ取得部1204、ホームページ送信部1205、要求情報受信部1206、認証構成情報取得部10201、認証構成情報送信部10202、認証情報受信部10203、認証部10204、サブプログラム取得部1207、サブプログラム送信部1208を具備する。
実行部10106は、第一プログラム格納部1105から第一プログラムを読み出し、少なくとも第一プログラムを実行し、所定の結果を得る。実行部10106は、認証情報を構成し、当該認証情報を送信し、第二情報処理装置102が認証許可の判断を行った場合のみ、第二情報処理装置102からサブプログラムを受信し、当該サブプログラムを第一プログラムに組み込んで実行する。また、実行部10106は、後述する認証構成情報を、第二情報処理装置102から受信し、当該認証構成情報を利用して認証情報を構成する機能を有しても良い。また、実行部10106は、サブプログラムを復号化する機能も有しても良い。実行部10106は、通常、MPUやメモリ等から実現され得る。実行部10106の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
認証構成情報受信手段101061は、第二情報処理装置102から認証情報を構成する情報である認証構成情報を受信する。認証情報とは、サブプログラムの送信許可を得るための情報であり、第一情報処理装置101の正当性、または/および第一情報処理装置101のユーザの正当性、または/および第一プログラムの正当性を確認するための情報である。認証情報は、例えば、第一プログラムを識別する情報である第一プログラム識別子を含む。認証情報は、例えば、第一情報処理装置101のユーザを識別する情報であるユーザ識別子を含む。認証情報は、例えば、認証構成情報を有する。認証構成情報は、例えば、第二情報処理装置102が構成した情報であり、ランダムな文字列や、時刻の情報などである。認証構成情報は、認証情報がワンタイムパスワードとして機能するために必要である。ただし、認証情報がワンタイムパスワードとして機能しない場合には、認証構成情報は必要ではない。また、ユーザ識別子は、第一情報処理装置101にログインする際に、ユーザが入力した識別子、または第二情報処理装置102にアクセスする際に、ユーザが入力した識別子である。認証構成情報受信手段101061は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
認証情報取得手段101062は、サブプログラムの送信許可を得るための認証情報を取得する。認証情報取得手段101062は、例えば、認証構成情報受信手段101061が受信した認証構成情報を用いて、当該認証構成情報を有する認証情報を構成することにより、認証情報を取得する。認証情報取得手段101062は、例えば、ユーザが第一情報処理装置101へのログイン時に入力したユーザIDを取得し、当該ユーザIDを含む認証情報を構成することにより、認証情報を取得する。なお、ログイン時に入力したユーザIDは、メモリ上に一時蓄積されている、とする。認証情報取得手段101062は、通常、MPUやメモリ等から実現され得る。認証情報取得手段101062の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
認証情報送信手段101063は、認証情報取得手段101062が取得した認証情報を第二情報処理装置102に送信する。認証情報送信手段101063は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
第二情報処理装置102を構成する認証構成情報取得部10201は、認証構成情報を構成する。認証構成情報取得部10201は、例えば、図示しない時計から現在時刻の情報を取得し、現在時刻の情報を有する認証構成情報を構成する。認証構成情報取得部10201は、例えば、第一情報処理装置101のユーザが第二情報処理装置102にアクセスする際に入力したユーザIDまたは/およびパスワードを一時記憶しており、当該ユーザIDまたは/およびパスワードを有する認証構成情報を構成する。認証構成情報取得部10201は、例えば、乱数を発生させ、当該乱数を認証構成情報としてメモリ上に一時記憶させる。認証構成情報取得部10201は、通常、MPUやメモリ等から実現され得る。認証構成情報取得部10201の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
認証構成情報送信部10202は、認証構成情報取得部10201が取得した認証構成情報を第一情報処理装置101に送信する。認証構成情報を第一情報処理装置101に送信するタイミングは、通常、要求情報受信部1206が要求情報を受信し、認証構成情報取得部10201が認証構成情報を取得した後であるが、例えば、ホームページ送信部1205がホームページを送信した後、直ちにでも良い。認証構成情報送信部10202は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
認証情報受信部10203は、第一情報処理装置101から認証情報を受信する。認証情報受信部10203は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
認証部10204は、認証情報受信部10203が受信した認証情報に対して認証処理し、認証許可であるか認証不許可であるかを判断する。認証部10204は、2以上のサブプログラムを送信する場合に、認証情報に対して認証処理し、認証許可であるか認証不許可であるかをサブプログラムごとに判断することは好適である。また、認証情報に第一プログラム識別子が含まれる場合、認証部10204は、例えば、第一プログラム識別子で識別される第一プログラムの正当性を判断し、正当であると判断した場合のみ認証許可とし、不当であると判断した場合は認証不許可であると判断する。認証部10204は、第一プログラム識別子を予め格納している。または、認証部10204は、第一プログラムを、ホームページ送信部1205が第一情報処理装置101に送信した旨を保持している。また、認証情報にユーザ識別子が含まれる場合、認証部10204は、ユーザ識別子で識別されるユーザの正当性を判断し、正当であると判断した場合のみ認証許可とし、不当であると判断した場合は認証不許可であると判断する。なお、かかる場合、認証部10204は、第二情報処理装置102にアクセスできるユーザを識別するユーザ識別子を格納している。または、かかる場合、認証部10204は、ユーザが第一情報処理装置101から第二情報処理装置102にアクセスした際に受け付けたユーザ識別子を保持している。認証部10204における認証アルゴリズムは、問わない。認証部10204は、通常、MPUやメモリ等から実現され得る。認証部10204の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
次に、情報処理システムの動作について説明する。まず、第一情報処理装置101の動作について説明する。第一情報処理装置101の動作は、実施の形態1で述べた第一情報処理装置11の動作と比較してプログラム実行の処理(ステップS309)のみ異なる。第一情報処理装置101の第一のプログラム実行の処理について、図11のフローチャートを用いて説明する。図11のフローチャートにおいて、図4のフローチャートと異なるステップについてのみ説明する。
(ステップS1101)認証構成情報受信手段101061は、認証構成情報を受信したか否かを判断する。認証構成情報を受信すればステップS1102に行き、認証構成情報を受信しなければステップS1101に戻る。
(ステップS1102)認証情報取得手段101062は、ステップS1101で受信した、認証構成情報を用いて、認証情報を構成する。認証情報と認証構成情報は同じ情報でも良い。また、認証構成情報が例えば、時刻「2006/3/7 18:07」である場合、認証情報は、例えば、時刻とユーザID「1234567」を合成した「2006/3/7 18:07;1234567」である。なお、ユーザIDは、例えば、ユーザが第一情報処理装置101にログインする際や、第二情報処理装置102にアクセスする際に入力し、第一情報処理装置101が保持しているIDである。
(ステップS1103)認証情報送信手段101063は、ステップS1102で取得した認証情報を送信する。
次に、第二情報処理装置102の第一の動作について、図12のフローチャートを用いて説明する。図12のフローチャートにおいて、図5のフローチャートと異なるステップについてのみ説明する。
(ステップS1201)認証構成情報取得部10201は、認証構成情報を取得する。認証構成情報取得部10201は、例えば、図示しない時計より現在時刻を読み出す。
(ステップS1202)認証構成情報送信部10202は、ステップS1201で構成した認証構成情報を、第一情報処理装置101に送信する。
(ステップS1203)認証情報受信部10203は、ステップS1202における認証構成情報の送信に対応して、認証情報を受信したか否かを判断する。認証情報を受信すればステップS1204に行き、認証情報を受信しなければステップS1203に戻る。
(ステップS1204)認証部10204は、認証処理を行う。なお、認証処理自体は公知技術の方法が多数存在する。認証処理のアルゴリズムは問わない。
(ステップS1205)サブプログラム取得部1207は、ステップS1204における認証処理の結果である認証判断が認証許可であるか否かを判断する。認証許可であればステップS505に行き、認証許可でなければステップS501に戻る。
次に、第一情報処理装置101の第二のプログラム実行の処理について、図13のフローチャートを用いて説明する。図13のフローチャートにおいて、図11のフローチャートと比較して、認証構成情報を受信するステップ(ステップS1101)が存在せず、認証情報の構成は、第一情報処理装置101内の情報を用いて行う。第一情報処理装置101内の情報をとは、例えば、ユーザが第一情報処理装置101にログインする際に入力したユーザ識別子や、第一情報処理装置101のIPアドレスやMACアドレス等である。
次に、第二情報処理装置102の第二の動作について、図14のフローチャートを用いて説明する。図14のフローチャートにおいて、図12のフローチャートと比較して、認証構成情報を構成し、送信するステップ(ステップS1201、ステップS1202)が存在せず、第一情報処理装置101から送信された認証情報を用いて認証処理を行う。
以下、本実施の形態における情報処理システムの具体的な動作について説明する。情報処理システムの概念図は図1である。
今、第二情報処理装置102のホームページ格納部1201に、図6に示すホームページ等、多数のホームページが存在する。また、図6の(1)のホームページには、図15に示すプログラムが付属している、とする。なお、図15における「xmlhttp.open("GET", "dfunc.aspx?param1=abc"); xmlhttp.send(null);」は、第一情報処理装置101が、"GET"という通信方法で、第二情報処理装置102に対して通信を行い、"dfunc.aspx?param1=abc"を有する認証情報を第二情報処理装置102に送信することを示す。「xmlhttp.open("GET", "dfunc.aspx?param1=abc"); xmlhttp.send(null);」は、サブプログラム取得情報である。
また、サブプログラム格納部1202は、図16に示すように、サブプログラムが記載されたファイル群を保持している。
さらに、認証部10204は、図17に示す認証処理管理表を保持している。認証処理管理表は、認証処理を行うために使用する情報であり、「ID」「サブプログラム識別子」「認証キー」の属性値を有する。「ID」は、レコードを識別する情報であり、表におけるレコード管理のために存在する。「認証キー」は、「サブプログラム識別子」の属性値で識別されるサブプログラムの送信可否を判断するためのキーである。
かかる状況で、第一の認証処理の例を説明する。まず、ユーザは、第一情報処理装置101に対して、URL(ここでは、例えば、「http://www.hows.ws/」)を入力し、かつ、ホームページの送信を促す指示をした、とする。
次に、受付部1101は、URL(「http://www.hows.ws/」)と、ホームページの送信の指示を受け付ける。そして、ページ要求送信部1102は、コマンド「ページ送信 http://www.hows.ws/」を構成し、通信プロトコルhttpにより、第二情報処理装置102に送信する。
次に、第二情報処理装置102のページ要求受信部1203は、第一情報処理装置101からページ要求(コマンド「ページ送信 http://www.hows.ws/」)を受信する。
そして、ホームページ取得部1204は、ページ要求に対応するホームページと当該ホームページに付属する第一プログラムをホームページ格納部1201から取得する。ここで、取得したホームページは、図6(1)のファイルであり、取得した第一プログラムは、図15のプログラムである、とする。
そして、ホームページ送信部1205は、取得したホームページ(図6(1)参照)と第一プログラム(図15参照)を第一情報処理装置11に送信する。
次に、ホームページ受信部1103は、ホームページ(図6(1)参照)と第一プログラム(図15参照)を受信する。そして、ホームページ出力部1104は、図6(1)のホームページを解釈し、ページを画面に出力する。そして、ホームページ出力部1104は、第一プログラムを、第一プログラム格納部1105に少なくとも一時格納する(キャッシュする)。この画面への出力例が図9である。なお、このホームページ(図6(1)参照)と第一プログラム(図15参照)は、第一情報処理装置11でキャッシュされるため、ユーザは、その内容(HTMLやプログラムのソース)を見ることができる。また、第一プログラムは、図9における「申込」ボタンが押下された場合に実行される、とする。
次に、ユーザは、マウスで「申込」ボタンを押下した、とする。すると、受付部1101は、マウスのイベントを受け付ける。受付部1101は、このマウスのイベントを、「実行指示」として受け付ける。そして、実行部1106は、第一プログラム格納部1105の第一プログラム(図15のプログラム)を読み込む。そして、実行部1106は、第一プログラムを、順次、プログラムポインタをずらしながら、実行する。そして、実行部1106は、プログラムポインタが図15の(B)にきた段階で、サブプログラム取得情報の一部(「xmlhttp.open("GET", "dfunc.aspx?param1=abc");」)を認識する。
次に、要求情報構成手段11061は、サブプログラム取得情報を読み取り、当該サブプログラム取得情報が有するサブプログラム識別子「dfunc.aspx」を含み、当該サブプログラムを取得する要求を示す命令である要求情報「dfunc.aspx?param1=abc」を構成し、上記の"GET"が示すGETという通信方法で、第二情報処理装置102に、要求情報「dfunc.aspx?param1=abc」を送信する。
そして、第二情報処理装置102の要求情報受信部1206は、第一情報処理装置101から要求情報「dfunc.aspx?param1=abc」を受信する。そして、認証部10204は、「dfunc.aspx」「abc」により、図17に示す認証処理管理表を用いて認証処理を行う。ここで、認証処理管理表には、サブプログラム識別子「dfunc.aspx」、認証キー「abc」のレコードが存在するので、認証部10204は、認証許可である、と判断する。
次に、サブプログラム取得部1207は、サブプログラム格納部1202から、要求情報「dfunc.aspx?param1=abc」に対応するサブプログラム(ファイル「dfunc.aspx」を取得する。そして、サブプログラム送信部1208は、サブプログラム(ファイル「dfunc.aspx」)第一情報処理装置101に送信する。
次に、サブプログラム受信手段11063は、サブプログラム(ファイル「dfunc.aspx」)を受信する。
そして、復号化手段11064は、サブプログラム受信手段11063が受信したサブプログラム(ファイル「dfunc.aspx」)をオープンし、そのファイルの中の情報を復号化する。復号化した結果、実行手段11065は、実行可能なサブプログラム(関数の記載)を得ることができる。
次に、実行手段11065は、実行可能なサブプログラムを実行する。
そして、以後も同様に、実行手段11065は、図15のすべての命令列が実行されるまで、第一プログラムのプログラムカウンタの箇所の命令列を実行し、プログラムカウンタを進めていく。
以上により、第一情報処理装置101のユーザは、所望の結果を得ることができ、かつ、サーバ側にとって重要なサブプログラムの著作権を保護できる。
次に、第二の具体例について説明する。第二の具体例は、いわゆるワンタイムパスワードを利用したサブプログラムの送信である。
第一情報処理装置101のユーザがホームページを表示させる処理を行い、ボタンを押下し、第二情報処理装置102の要求情報受信部1206が、第一情報処理装置101から要求情報「dfunc.aspx?param1=abc」を受信するまでの処理は、第一の具体例と同様である。
次に、第二情報処理装置102の認証構成情報取得部10201は、図示しない時計から現在時刻である認証構成情報(「2006/3/7 20:04」)を取得する。次に、認証構成情報送信部10202は、認証構成情報(「2006/3/7 20:04」)を、第一情報処理装置101に送信する。
次に、第一情報処理装置101の認証構成情報受信手段101061は、認証構成情報(「2006/3/7 20:04」)を受信する。
そして、認証情報取得手段101062は、受信した、認証構成情報(「2006/3/7 20:04」)を用いて、ユーザID「1234567」と合成し、認証情報(「2006/3/7 20:04,1234567」)を構成する。そして、認証情報送信手段101063は、認証情報(「2006/3/7 20:04,1234567」)を第二情報処理装置102に送信する。
次に、認証情報受信部10203は、認証構成情報の送信に対応して、認証情報(「2006/3/7 20:04,1234567」)を受信する。
次に、認証部10204は、時計から現在時刻「2006/3/7 20:05」を取得する。そして、認証情報(「2006/3/7 20:04,1234567」)が有する時刻「2006/3/7 20:04」と、現在時刻「2006/3/7 20:05」が所定以内の差(1分以内)であるか否かを判断する。両時刻は、所定以内の差(1分以内)であるので、認証部10204は、第一の認証条件(時刻に関する条件)はクリアした、と判断する。次に、認証部10204は、予め格納しているユーザID群(ユーザID群は、第二情報処理装置102にアクセス可能なユーザを識別するユーザIDの集合である。)の中に認証情報(「2006/3/7 20:04,1234567」)が有するユーザID「1234567」が存在するか否かを判断する。ここで、ユーザID「1234567」は、ユーザID群の中に存在するとし、認証部10204は、第二の認証条件(ユーザに関する条件)はクリアした、と判断する。以上の2つの条件をクリアしたことにより、認証部10204は認証許可と判断する、とする。
そして、第一の具体例と同様に、サブプログラム取得部1207は、サブプログラム格納部1202から、要求情報「dfunc.aspx?param1=abc」に対応するサブプログラム(ファイル「dfunc.aspx」)を取得する。そして、サブプログラム送信部1208は、サブプログラム(ファイル「dfunc.aspx」)第一情報処理装置101に送信する。
次に、サブプログラム受信手段11063は、サブプログラム(ファイル「dfunc.aspx」)を受信する。
そして、復号化手段11064は、サブプログラム受信手段11063が受信したサブプログラム(ファイル「dfunc.aspx」)をオープンし、そのファイルの中の情報を復号化する。復号化した結果、実行手段11065は、実行可能なサブプログラム(関数の記載)を得ることができる。
次に、実行手段11065は、実行可能なサブプログラムを実行する。
そして、以後も同様に、実行手段11065は、図15のすべての命令列が実行されるまで、第一プログラムのプログラムカウンタの箇所の命令列を実行し、プログラムカウンタを進めていく。
以上により、第一情報処理装置101のユーザは、所望の結果を得ることができ、かつ、サーバ側にとって重要なサブプログラムの著作権を保護できる。
以上、本実施の形態によれば、重要なサブプログラムの著作権を保護できる。
なお、本実施の形態において、認証部10204はサブプログラムを送信する前に必ず認証処理を行っても良いし、第一情報処理装置101が一の第一プログラムを実行する間に、認証部10204は最初のサブプログラムを送信する前のみ認証処理を行っても良い。
さらに、本実施の形態における第一情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、格納されている第一プログラムを読み出し、少なくとも前記第一プログラムを実行し、所定の結果を得る実行ステップを実行させ、前記実行ステップは、前記第一プログラムと一体となり所定の実行結果を得られるプログラムであるサブプログラムを第二情報処理装置から受信するサブプログラム受信サブステップと、前記サブプログラム受信サブステップで受信した前記サブプログラムを前記第一プログラムに組み込んで実行する実行サブステップを具備するプログラムである。
また、上記プログラムにおいて、前記実行ステップは、前記第一プログラムに記述されている情報であり、サブプログラムを前記第二情報処理装置から取得するための情報であるサブプログラム取得情報を、前記第一プログラムから読み取り、当該サブプログラム取得情報を読み取った場合に、前記サブプログラムを識別する情報であるサブプログラム識別子を含み、前記サブプログラムの送信を要求する情報である要求情報を構成する要求情報構成サブステップと、前記要求情報を前記第二情報処理装置に送信する要求情報送信サブステップとをさらに具備し、前記サブプログラム受信サブステップは、前記要求情報の送信に対応して、前記第二情報処理装置から前記サブプログラムを受信することは好適である。
また、上記プログラムにおいて、前記実行ステップは、前記サブプログラムの送信許可を得るための認証情報を取得する認証情報取得サブステップと、前記認証情報を前記第二情報処理装置に送信する認証情報送信サブステップをさらに具備することは好適である。
また、上記プログラムにおいて、前記実行ステップは、前記第二情報処理装置から認証情報を構成する情報である認証構成情報を受信する認証構成情報受信サブステップをさらに具備し、前記認証情報取得サブステップは、前記認証構成情報を有する認証情報を構成し、ことは好適である。
また、上記プログラムにおいて、コンピュータに、ホームページのダウンロードの指示を受け付ける受付ステップと、前記指示に対応して、ホームページの送信を促すページ要求を送信するページ要求送信ステップと、前記ページ要求の送信に対応して、ホームページを受信するホームページ受信ステップと、前記ホームページを出力するホームページ出力ステップをさらに実行させ、前記第一プログラムは、前記ホームページに付属するスクリプトであることは好適である。
また、前記サブプログラムは、暗号化されており、上記プログラムの前記実行ステップは、前記サブプログラム受信サブステップが受信したサブプログラムを復号化する復号化サブステップをさらに具備し、前記実行サブステップは、前記復号化サブステップが復号化した前記サブプログラムを前記第一プログラムに組み込んで実行することは好適である。
前記サブプログラムは、関数の実行内容を示す命令列であり、前記第一プログラムは、1以上の関数の実行内容の記述がなく、また、上記プログラムの前記実行サブステップは、前記サブプログラム受信サブステップで受信した前記サブプログラムが示す関数の実行内容、または前記復号化サブステップで復号化した前記サブプログラムが示す関数の実行内容を、前記第一プログラムの空の関数に組み込んで実行することは好適である。
また、本実施の形態における第二情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、格納しているサブプログラムを取得するサブプログラム取得ステップと、前記サブプログラム取得ステップで取得した前記サブプログラムを、前記第一情報処理装置に送信するサブプログラム送信ステップを実行させるためのプログラムである。
また、上記プログラムにおいて、コンピュータに、前記第一情報処理装置から前記要求情報を受信する要求情報受信ステップをさらに実行させ、前記サブプログラム取得ステップは、前記要求情報が有するサブプログラム識別子と対になるサブプログラムを取得することは好適である。
また、上記プログラムにおける前記サブプログラム送信ステップは、前記認証ステップで認証許可であると判断した場合のみ、前記サブプログラムを、前記第一情報処理装置に送信することは好適である。
また、上記プログラムにおいて、前記認証情報は、前記第一プログラムを識別する情報である第一プログラム識別子を含み、前記認証ステップにおいて、前記第一プログラム識別子で識別される第一プログラムの正当性を判断し、正当であると判断した場合のみ認証許可とし、不当であると判断した場合は認証不許可であると判断することは好適である。
また、上記プログラムにおいて、前記認証情報は、前記第一情報処理装置のユーザを識別する情報であるユーザ識別子を含み、前記認証ステップにおいて、前記ユーザ識別子で識別されるユーザの正当性を判断し、正当であると判断した場合のみ認証許可とし、不当であると判断した場合は認証不許可であると判断することは好適である。
また、上記プログラムにおいて、前記ユーザ識別子は、前記第一情報処理装置にログインする際に入力したユーザ識別子、または前記第二情報処理装置にアクセスする際に入力したユーザ識別子であることは好適である。
また、上記プログラムにおいて、コンピュータに、前記認証構成情報を構成する認証構成情報取得ステップと、前記認証構成情報を前記第一情報処理装置に送信する認証構成情報送信ステップをさらに実行させることは好適である。
また、上記プログラムにおいて、コンピュータに、前記ページ要求を受信するページ要求受信ステップと、前記ページ要求に対応するホームページと当該ホームページに付属する第一プログラムを取得するホームページ取得ステップと、前記ホームページ取得ステップで取得したホームページと第一プログラムを前記第一情報処理装置に送信するホームページ送信ステップとを実行させるためのプログラムであることは好適である。
(実施の形態3)
本実施の形態において、サーバ側からサブプログラムをプッシュする態様について説明する。
図18は、本実施の形態における情報処理システムのブロック図である。
情報処理システムは、第一情報処理装置181、第二情報処理装置182を具備する。
第一情報処理装置181は、受付部1101、ページ要求送信部1102、ホームページ受信部1103、ホームページ出力部1104、第一プログラム格納部1105、実行部18106を具備する。
実行部18106は、サブプログラム受信手段11063、実行手段11065を具備する。
第二情報処理装置182は、ホームページ格納部1201、サブプログラム格納部1202、ページ要求受信部1203、ホームページ取得部1204、ホームページ送信部1205、サブプログラム取得部18207、サブプログラム送信部18208を具備する。
第一情報処理装置181を構成する実行部18106は、第一プログラム格納部1105から第一プログラムを読み出し、少なくとも第一プログラムを実行し、所定の結果を得る。また、実行部18106は、要求することなく、第二情報処理装置182からサブプログラムを受信し、当該受信したサブプログラムを第一プログラムに組み込んで、当該組み込んだ後のプログラムを実行し、所定の結果を得る。実行部18106は、通常、MPUやメモリ等から実現され得る。実行部18106の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
第二情報処理装置182を構成するサブプログラム取得部18207は、第一情報処理装置181からの要求なしに、サブプログラムを取得する。サブプログラム取得部18207は、例えば、第一情報処理装置181に送信したホームページに付随する第一プログラムに組み込まれるサブプログラムを取得する。サブプログラム取得部18207は、通常、MPUやメモリ等から実現され得る。サブプログラム取得部18207の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
サブプログラム送信部18208は、第一情報処理装置181からの要求なしに、サブプログラム取得部18207が取得したサブプログラムを、第一情報処理装置181に送信する。サブプログラム送信部18208は、第一情報処理装置181にホームページを送信するタイミングとは非同期に、サブプログラムを送信する。サブプログラム送信部18208は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
次に、情報処理システムの動作について説明する。まず、第一情報処理装置181の動作について説明する。第一情報処理装置181の動作は、実施の形態1で述べた第一情報処理装置11の動作と比較してプログラム実行の処理(ステップS309)のみ異なる。第一情報処理装置181の第一のプログラム実行の処理について、図19のフローチャートを用いて説明する。図19のフローチャートにおいて、図4のフローチャートと異なるステップについてのみ説明する。なお、第一情報処理装置181のサブプログラム受信手段11063は、第二情報処理装置182から、ホームページの受信等とは非同期にサブプログラムを受信し、図示しないメモリ上に一時格納する、とする。
(ステップS1901)実行手段11065は、サブプログラム受信手段11063が受信し、一時格納しているサブプログラムから、i番目の命令列が有するサブプログラム取得情報に対応するサブプログラムを検索する。
(ステップS1902)実行手段11065は、ステップS1901でサブプログラムを検索できたか否かを判断する。サブプログラムを検索できればステップS409に行き、サブプログラムを検索できなければステップS1903に行く。
(ステップS1903)サブプログラム受信手段11063は、第二情報処理装置182から、ホームページの受信等とは非同期にサブプログラムを受信したか否かを判断する。サブプログラムを受信すればステップS1904に行き、サブプログラムを受信しなければステップS1903に戻る。
(ステップS1904)実行手段11065は、ステップS1903で受信したサブプログラムのうち、i番目の命令列が有するサブプログラム取得情報に対応するサブプログラムが存在するか否かを判断する。サブプログラムが存在すればステップS409に行き、サブプログラムが存在しなければステップS1903に戻る。
次に、第二情報処理装置182の第一の動作について、図20のフローチャートを用いて説明する。図20のフローチャートにおいて、図5のフローチャートと異なるステップについてのみ説明する。
(ステップS2001)ホームページ送信部1205は、送信した第一プログラムを識別する第一プログラム識別子を一時格納する。
(ステップS2002)サブプログラム取得部18207は、所定時間(例えば、10秒)ウエイトする。
(ステップS2003)サブプログラム取得部18207は、ステップS2001で格納された第一プログラム識別子を読み出し、当該第一プログラム識別子で識別される第一プログラムに組み込まれる1以上のサブプログラムを、サブプログラム格納部1202から取得する。
(ステップS2004)サブプログラム送信部18208は、ステップS2003で取得した1以上のサブプログラムを第一情報処理装置181に送信する。なお、送信するサブプログラムが2以上ある場合、サブプログラム送信部18208は、同時に2以上のサブプログラムを第一情報処理装置181に送信しても良いし、順次、サブプログラムを第一情報処理装置181に送信しても良い。
以下、本実施の形態における情報処理システムの具体的な動作について説明する。情報処理システムの概念図は図1である。
今、第二情報処理装置182のホームページ格納部1201に、図6に示すホームページ等、多数のホームページが存在する。また、図6(1)のホームページには、図7に示すプログラム(第一プログラム識別子は、「申込.prog」である。)が付属している。
また、サブプログラム取得部18207は、図21に示すサブプログラム取得情報表を保持している。サブプログラム取得情報表は、「ID」「第一プログラム識別子」「サブプログラム識別子」の属性値を有する。「ID」は、レコードを識別する情報であり、表におけるレコード管理のために存在する。「第一プログラム識別子」の属性値で識別される第一プログラムが動作するためには、「サブプログラム識別子」で識別されるサブプログラムが必要であることを示す。なお、サブプログラム格納部1202は、図22に示すサブプログラムが記載されたファイル群を保持している。
かかる状況で、ユーザは、第一情報処理装置181に対して、URL(ここでは、例えば、「http://www.hows.ws/」)を入力し、かつ、ホームページの送信を促す指示をした、とする。
そして、第二情報処理装置182のページ要求受信部1203は、第一情報処理装置181からページ要求(コマンド「ページ送信 http://www.hows.ws/」)を受信する。
そして、ホームページ取得部1204は、ページ要求に対応するホームページと当該ホームページに付属する第一プログラムをホームページ格納部1201から取得する。ここで、取得したホームページは、図6(1)のファイルであり、取得した第一プログラムは、図7のプログラムである、とする。
そして、ホームページ送信部1205は、取得したホームページ(図6(1)参照)と第一プログラム(図7参照)を第一情報処理装置181に送信する。
そして、ホームページ送信部1205は、送信した第一プログラム(図7参照)を識別する第一プログラム識別子「申込.prog」をメモリ上に一時格納する。
次に、サブプログラム取得部18207は、所定時間(例えば、10秒)ウエイトする。
次に、サブプログラム取得部18207は、格納された第一プログラム識別子「申込.prog」を読み出し、当該第一プログラム識別子で識別される第一プログラムに組み込まれる1以上のサブプログラム識別子をサブプログラム取得情報表から取得する。その結果、サブプログラム取得部18207は、サブプログラム識別子「dfunc.aspx」「ccc.aspc」・・・を取得する。そして、サブプログラム取得部18207は、サブプログラム識別子「dfunc.aspx」「ccc.aspc」等をファイル名に有するサブプログラム(ファイル)をサブプログラム格納部1202から取得する。
次に、サブプログラム送信部18208は、取得したサブプログラム「dfunc.aspx」「ccc.aspc」等を第一情報処理装置181に送信する。
そして、第一情報処理装置181のサブプログラム受信手段11063は、ホームページの受信等とは、非同期で、サブプログラム「dfunc.aspx」「ccc.aspc」等を受信し、メモリ上に一時格納しておく。
そして、実施の形態1で述べたように、第一情報処理装置181は、図6(1)のホームページと、図7の第一プログラムを受信し、図9の画面を表示する。なお、画面の表示と、ブプログラム「dfunc.aspx」「ccc.aspc」等の受信の順序は問わない。
次に、ユーザは、マウスで「申込」ボタンを押下した、とする。すると、受付部1101は、マウスのイベントを受け付ける。受付部1101は、このマウスのイベントを、「実行指示」として受け付ける。そして、実行部1106は、第一プログラム格納部1105の第一プログラム(図7のプログラム)を読み込む。そして、実行部1106は、第一プログラムを、順次、プログラムポインタをずらしながら、実行する。そして、実行部1106は、プログラムポインタが図7の(A)にきた段階で、サブプログラム取得情報「xmlhttp.open("GET", "dfunc.aspx");xmlhttp.send(null);」を認識する、とする。
次に、実行部1106は、サブプログラム「dfunc.aspx」をメモリ上から検索し、取得し、実行する。
実行手段11065は、図7のすべての命令列が実行されるまで、第一プログラムのプログラムカウンタの箇所の命令列を実行し、プログラムカウンタを進めていく。
以上、本実施の形態によれば、ネットワークのサーバ上にサブプログラムを配置し、動的にプログラムを書き換えること等により、重要なプログラム(サブプログラム)の著作権が保護できる。本実施の形態における技術は、特に、Web等のネットワーク環境において有効である。
また、本実施の形態によれば、ホームページの送信とは非同期にサーバからサブプログラムを送信することにより、サブプログラムの著作権が保護できる。
さらに、本実施の形態によれば、実施の形態1、2の態様と比較して、第一情報処理装置と第二情報処理装置間の通信負荷を減らすことができる。
なお、本実施の形態によれば、第二情報処理装置のサブプログラムの送信のタイミングは問わない。
さらに、本実施の形態における第一情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、格納されている第一プログラムを読み出し、少なくとも前記第一プログラムを実行し、所定の結果を得る実行ステップを実行させ、前記実行ステップは、前記第一プログラムと一体となり所定の実行結果を得られるプログラムであるサブプログラムを第二情報処理装置から受信するサブプログラム受信サブステップと、前記サブプログラム受信サブステップで受信した前記サブプログラムを前記第一プログラムに組み込んで実行する実行サブステップを具備するプログラムである。
また、上記プログラムにおいて、コンピュータに、ホームページのダウンロードの指示を受け付ける受付ステップと、前記指示に対応して、ホームページの送信を促すページ要求を送信するページ要求送信ステップと、前記ページ要求の送信に対応して、ホームページを受信するホームページ受信ステップと、前記ホームページを出力するホームページ出力ステップをさらに実行させ、前記第一プログラムは、前記ホームページに付属するスクリプトであることは好適である。
また、前記サブプログラムは、暗号化されており、上記プログラムの前記実行ステップは、前記サブプログラム受信サブステップが受信したサブプログラムを復号化する復号化サブステップをさらに具備し、前記実行サブステップは、前記復号化サブステップが復号化した前記サブプログラムを前記第一プログラムに組み込んで実行することは好適である。
前記サブプログラムは、関数の実行内容を示す命令列であり、前記第一プログラムは、1以上の関数の実行内容の記述がなく、また、上記プログラムの前記実行サブステップは、前記サブプログラム受信サブステップで受信した前記サブプログラムが示す関数の実行内容、または前記復号化サブステップで復号化した前記サブプログラムが示す関数の実行内容を、前記第一プログラムの空の関数に組み込んで実行しても良い。
また、本実施の形態における第二情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、格納しているサブプログラムを取得するサブプログラム取得ステップと、前記サブプログラム取得ステップで取得した前記サブプログラムを、前記第一情報処理装置に送信するサブプログラム送信ステップを実行させるためのプログラムである。
また、上記プログラムの前記サブプログラム送信ステップにおいて、前記第一情報処理装置からの要求なしに、前記サブプログラム取得ステップで取得した前記サブプログラムを、前記第一情報処理装置に送信することは好適である。
また、上記プログラムにおいて、コンピュータに、前記ページ要求を受信するページ要求受信ステップと、前記ページ要求に対応するホームページと当該ホームページに付属する第一プログラムを取得するホームページ取得ステップと、前記ホームページ取得ステップで取得したホームページと第一プログラムを前記第一情報処理装置に送信するホームページ送信ステップとを実行させるためのプログラムでも良い。
また、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
なお、上記プログラムにおいて、情報を送信する送信ステップや、情報を受信する受信ステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、上記各実施の形態において、一の装置に存在する2以上の通信手段(情報送信部など)は、物理的に一の媒体で実現されても良いことは言うまでもない。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
以上のように、本発明にかかる情報処理システムは、プログラムの著作権の保護ができる、という効果を有し、サーバ・クライアントシステム等として有用である。
実施の形態1における情報処理システムの概念図 同情報処理システムのブロック図 同第一情報処理装置の動作について説明するフローチャート 同第一情報処理装置の動作について説明するフローチャート 同第二情報処理装置の動作について説明するフローチャート 同第二情報処理装置が格納しているホームページの例を示す図 同ホームページに付属するプログラムの例を示す図 同サブプログラム管理表を示す図 同ホームページの出力例を示す図 実施の形態2における情報処理システムのブロック図 同第一情報処理装置の動作について説明するフローチャート 同第二情報処理装置の動作について説明するフローチャート 同第一情報処理装置の動作について説明するフローチャート 同第二情報処理装置の動作について説明するフローチャート 同ホームページに付属するプログラムの例を示す図 同サブプログラムの例を示す図 同認証処理管理表を示す図 実施の形態3における情報処理システムのブロック図 同第一情報処理装置の動作について説明するフローチャート 同第二情報処理装置の動作について説明するフローチャート 同サブプログラム取得情報表を示す図 同サブプログラムの例を示す図
符号の説明
11、101、181 第一情報処理装置
12、102、182 第二情報処理装置
1101 受付部
1102 ページ要求送信部
1103 ホームページ受信部
1104 ホームページ出力部
1105 第一プログラム格納部
1106、10106、18106 実行部
1201 ホームページ格納部
1202 サブプログラム格納部
1202 サブプログラム情報格納部
1203 ページ要求受信部
1204 ホームページ取得部
1205 ホームページ送信部
1206 要求情報受信部
1207、18207 サブプログラム取得部
1208、18208 サブプログラム送信部
10201 認証構成情報取得部
10202 認証構成情報送信部
10203 認証情報受信部
10204 認証部
11061 要求情報構成手段
11062 要求情報送信手段
11063 サブプログラム受信手段
11064 復号化手段
11065 実行手段
101061 認証構成情報受信手段
101062 認証情報取得手段
101063 認証情報送信手段

Claims (19)

  1. 第一情報処理装置と第二情報処理装置を具備する情報処理システムであって、
    前記第一情報処理装置は、
    第一プログラムを格納し得る第一プログラム格納部と、
    前記第一プログラム格納部から第一プログラムを読み出し、少なくとも前記第一プログラムを実行し、所定の結果を得る実行部を具備し、
    前記実行部は、
    前記第一プログラムと一体となり所定の実行結果を得られるプログラムであるサブプログラムを前記第二情報処理装置から受信するサブプログラム受信手段と、
    前記サブプログラム受信手段が受信した前記サブプログラムを前記第一プログラムに組み込んで実行する実行手段を具備し、
    前記第二情報処理装置は、
    1以上のサブプログラムを格納しているサブプログラム格納部と
    前記サブプログラム格納部からサブプログラムを取得するサブプログラム取得部と、
    前記サブプログラム取得部が取得した前記サブプログラムを、前記第一情報処理装置に送信するサブプログラム送信部を具備する情報処理システム。
  2. 前記実行部は、
    前記第一プログラムに記述されている情報であり、サブプログラムを前記第二情報処理装置から取得するための情報であるサブプログラム取得情報を、前記第一プログラムから読み取り、当該サブプログラム取得情報を読み取った場合に、前記サブプログラムを識別する情報であるサブプログラム識別子を含み、前記サブプログラムの送信を要求する情報である要求情報を構成する要求情報構成手段と、
    前記要求情報を前記第二情報処理装置に送信する要求情報送信手段とをさらに具備し、
    前記サブプログラム受信手段は、前記要求情報の送信に対応して、前記第二情報処理装置から前記サブプログラムを受信し、
    前記第二情報処理装置は、
    前記第一情報処理装置から前記要求情報を受信する要求情報受信部をさらに具備し、
    前記サブプログラム取得部は、
    前記要求情報が有するサブプログラム識別子と対になるサブプログラムを、前記サブプログラム情報格納部から取得する請求項1記載の情報処理システム。
  3. 前記サブプログラム送信部は、
    前記第一情報処理装置からの要求なしに、前記サブプログラム取得部が取得した前記サブプログラムを、前記第一情報処理装置に送信する請求項1記載の情報処理システム。
  4. 前記実行部は、
    前記サブプログラムの送信許可を得るための認証情報を取得する認証情報取得手段と、
    前記認証情報を前記第二情報処理装置に送信する認証情報送信手段をさらに具備し、
    前記第二情報処理装置は、
    前記認証情報を受信する認証情報受信部と、
    前記認証情報に対して認証処理し、認証許可であるか認証不許可であるかを判断する認証部と、
    前記サブプログラム送信部は、
    前記認証部が認証許可であると判断した場合のみ、前記サブプログラムを、前記第一情報処理装置に送信する請求項1から請求項3いずれか記載の情報処理システム。
  5. 前記認証部は、
    2以上のサブプログラムを送信する場合に、前記認証情報に対して認証処理し、認証許可であるか認証不許可であるかをサブプログラムごとに判断し、
    前記サブプログラム送信部は、
    前記認証部が認証許可であると判断した場合のみ、前記各サブプログラムを前記第一情報処理装置に送信する請求項4記載の情報処理システム。
  6. 前記認証情報は、前記第一プログラムを識別する情報である第一プログラム識別子を含み、
    前記認証部は、
    前記第一プログラム識別子で識別される第一プログラムの正当性を判断し、正当であると判断した場合のみ認証許可とし、不当であると判断した場合は認証不許可であると判断する請求項4または請求項5記載の情報処理システム。
  7. 前記認証情報は、
    前記第一情報処理装置のユーザを識別する情報であるユーザ識別子を含み、
    前記認証部は、
    前記ユーザ識別子で識別されるユーザの正当性を判断し、正当であると判断した場合のみ認証許可とし、不当であると判断した場合は認証不許可であると判断する請求項4または請求項5記載の情報処理システム。
  8. 前記ユーザ識別子は、
    前記第一情報処理装置にログインする際に入力したユーザ識別子、または前記第二情報処理装置にアクセスする際に入力したユーザ識別子である請求項7記載の情報処理システム。
  9. 前記実行部は、
    前記第二情報処理装置から認証情報を構成する情報である認証構成情報を受信する認証構成情報受信手段をさらに具備し、
    前記認証情報取得手段は、
    前記認証構成情報を有する認証情報を構成し、
    前記第二情報処理装置は、
    前記認証構成情報を構成する認証構成情報取得部と、
    前記認証構成情報を前記第一情報処理装置に送信する認証構成情報送信部をさらに具備する請求項4から請求項8いずれか記載の情報処理システム。
  10. 前記第一情報処理装置は、
    ホームページのダウンロードの指示を受け付ける受付部と、
    前記指示に対応して、ホームページの送信を促すページ要求を送信するページ要求送信部と、
    前記ページ要求の送信に対応して、ホームページを受信するホームページ受信部と、
    前記ホームページを出力するホームページ出力部を具備し、
    前記第一プログラムは、前記ホームページに付属するスクリプトであり、
    前記第二情報処理装置は、
    1以上のホームページを格納しているホームページ格納部と、
    前記ページ要求を受信するページ要求受信部と、
    前記ページ要求に対応するホームページと当該ホームページに付属する第一プログラムを前記ホームページ格納部から取得するホームページ取得部と、
    前記ホームページ取得部が取得したホームページと第一プログラムを前記第一情報処理装置に送信するホームページ送信部とを具備する請求項1から請求項9いずれか記載の情報処理システム。
  11. 前記サブプログラム格納部のサブプログラムは、暗号化されており、
    前記実行部は、
    前記サブプログラム受信手段が受信したサブプログラムを復号化する復号化手段をさらに具備し、
    前記実行手段は、前記復号化手段が復号化した前記サブプログラムを前記第一プログラムに組み込んで実行する請求項1から請求項10いずれか記載の情報処理システム。
  12. 前記サブプログラムは、関数の実行内容を示す命令列であり、
    前記第一プログラムは、1以上の関数の実行内容の記述がなく、
    前記実行手段は、
    前記サブプログラム受信手段が受信した前記サブプログラムが示す関数の実行内容、または前記復号化手段が復号化した前記サブプログラムが示す関数の実行内容を、前記第一プログラムの空の関数に組み込んで実行する請求項1から請求項11いずれか記載の情報処理システム。
  13. 請求項1から請求項12いずれか記載の情報処理システムを構成する第一情報処理装置。
  14. 請求項1から請求項12いずれか記載の情報処理システムを構成する第二情報処理装置。
  15. コンピュータに、
    格納されている第一プログラムを読み出し、少なくとも前記第一プログラムを実行し、所定の結果を得る実行ステップを実行させ、
    前記実行ステップは、
    前記第一プログラムと一体となり所定の実行結果を得られるプログラムであるサブプログラムを第二情報処理装置から受信するサブプログラム受信サブステップと、
    前記サブプログラム受信サブステップで受信した前記サブプログラムを前記第一プログラムに組み込んで実行する実行サブステップを具備するプログラム。
  16. 前記実行ステップは、
    前記第一プログラムに記述されている情報であり、サブプログラムを前記第二情報処理装置から取得するための情報であるサブプログラム取得情報を、前記第一プログラムから読み取り、当該サブプログラム取得情報を読み取った場合に、前記サブプログラムを識別する情報であるサブプログラム識別子を含み、前記サブプログラムの送信を要求する情報である要求情報を構成する要求情報構成サブステップと、
    前記要求情報を前記第二情報処理装置に送信する要求情報送信サブステップとをさらに具備し、
    前記サブプログラム受信サブステップは、
    前記要求情報の送信に対応して、前記第二情報処理装置から前記サブプログラムを受信する請求項15記載のプログラム。
  17. 前記実行ステップは、
    前記サブプログラムの送信許可を得るための認証情報を取得する認証情報取得サブステップと、
    前記認証情報を前記第二情報処理装置に送信する認証情報送信サブステップをさらに具備する請求項15または請求項16記載のプログラム。
  18. 前記実行ステップは、
    前記第二情報処理装置から認証情報を構成する情報である認証構成情報を受信する認証構成情報受信サブステップをさらに具備し、
    前記認証情報取得サブステップは、前記認証構成情報を有する認証情報を構成する請求項15から請求項17いずれか記載のプログラム。
  19. コンピュータに、
    格納しているサブプログラムを取得するサブプログラム取得ステップと、
    前記サブプログラム取得ステップで取得した前記サブプログラムを、前記第一情報処理装置に送信するサブプログラム送信ステップを実行させるためのプログラム。
JP2006073382A 2006-03-16 2006-03-16 情報処理システム、情報処理装置、サーバ装置、およびプログラム Pending JP2007249696A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006073382A JP2007249696A (ja) 2006-03-16 2006-03-16 情報処理システム、情報処理装置、サーバ装置、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006073382A JP2007249696A (ja) 2006-03-16 2006-03-16 情報処理システム、情報処理装置、サーバ装置、およびプログラム

Publications (1)

Publication Number Publication Date
JP2007249696A true JP2007249696A (ja) 2007-09-27

Family

ID=38593907

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006073382A Pending JP2007249696A (ja) 2006-03-16 2006-03-16 情報処理システム、情報処理装置、サーバ装置、およびプログラム

Country Status (1)

Country Link
JP (1) JP2007249696A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110008124A (zh) * 2019-03-29 2019-07-12 深圳前海微众银行股份有限公司 一种信息处理方法及装置
CN114237769A (zh) * 2021-12-14 2022-03-25 北京人大金仓信息技术股份有限公司 一种程序的执行方法、装置、设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110008124A (zh) * 2019-03-29 2019-07-12 深圳前海微众银行股份有限公司 一种信息处理方法及装置
CN114237769A (zh) * 2021-12-14 2022-03-25 北京人大金仓信息技术股份有限公司 一种程序的执行方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
EP1920354B1 (en) Remotely accessing protected files via streaming
JP4829697B2 (ja) 情報処理装置、情報処理方法、コンピュータプログラム及び記録媒体
KR100920320B1 (ko) 워터마크 인코더 및 디코더를 작동시키는 소프트웨어
JP4025268B2 (ja) クライアント/サーバシステム、クライアントモジュール及び暗号化通信プログラム
US20100082747A1 (en) Real-time collaborative browsing
JP5050055B2 (ja) モバイルデバイスユーザ経験の仮想化
US7487354B2 (en) Methods and systems for using digital signatures in uniform resource locators
JP5966505B2 (ja) サーバ装置、クライアント装置、リクエスト処理方法、サーバ応答処理方法、リクエスト処理プログラム、および、応答処理プログラム
JP6109617B2 (ja) 情報出力装置、情報操作装置、およびプログラム
JP2010102625A (ja) ユニフォームリソースロケータ書換方法及び装置
KR102087268B1 (ko) 웹 컨트롤 인터페이스를 제공하는 장치 및 이의 동작 방법
JP2007280028A (ja) 情報処理装置及びショートカットキーの設定・変更方法
JP4885892B2 (ja) 端末装置、情報提供システム、ファイルアクセス方法およびデータ構造
JP2007249696A (ja) 情報処理システム、情報処理装置、サーバ装置、およびプログラム
JP2009251754A (ja) ページカスタマイズサーバ、ページカスタマイズプログラムおよびページカスタマイズ方法
KR20090079407A (ko) 휴대용 디바이스가 rss 서비스를 제공하는 방법 및 이를위한 장치
JP3941253B2 (ja) ハイパーテキスト・システム及びハイパーテキストを扱う方法
JP2010009334A (ja) 情報処理装置、情報処理方法、及び、情報処理プログラム
JP2011065334A (ja) 中継装置、通信中継プログラム、および通信中継方法
JP5637409B2 (ja) コンテンツ受信装置、コンテンツ受信方法、コンテンツ放送装置、コンテンツ放送方法、プログラム、およびコンテンツ放送システム
WO2008068976A1 (ja) ネットワークシステム、サーバ、クライアント及びネットワークシステムにおける通信方法
JP2003030031A (ja) ネットワークシステムにおける情報取得方法および情報取得を行うためのネットワークシステム
EP4391446A1 (en) Privacy shield
US7523210B2 (en) Information providing server, communication terminal, control method therefor, and information providing system
KR20010087745A (ko) 멀티미디어 전자메일 메시지의 처리방법