以下、本発明による情報処理システムについて、実施の形態を用いて説明する。なお、以下の実施の形態において、同じ符号を付した構成要素及びステップは同一または相当するものであり、再度の説明を省略することがある。
(実施の形態1)
本発明の実施の形態1による情報処理システムについて、図面を参照しながら説明する。本実施の形態による情報処理システムは、ソフトウェアのオプション機能について使用の可否の管理をすることができるものである。
図1は、本実施の形態による情報処理システムの構成を示すブロック図である。本実施の形態による情報処理システムは、1以上の情報処理装置1と、サーバ2とを備える。1以上の情報処理装置1とサーバ2とは、有線または無線の通信回線500によって接続されており、互いに情報を送受信することができる。通信回線500は、例えば、インターネットやイントラネット、公衆電話回線網等であってもよい。
図2は、本実施の形態による情報処理装置1の構成を示すブロック図である。図2において、本実施の形態による情報処理装置1は、ソフトウェア記憶部11と、ソフトウェア実行部12と、表示部13と、受付部14と、要求送信部15と、受信部16とを備える。
ソフトウェア記憶部11では、1以上のソフトウェアが記憶される。そのソフトウェアは、例えば、アプリケーションソフトウェアであってもよく、その他のソフトウェアであってもよい。また、そのソフトウェアは、1以上のオプション機能を有するものであるとする。そのオプション機能は、どのようなものであってもよく、そのソフトウェアの機能の一部であってもよく、そのソフトウェアと関連する機能であってもよく、その他の機能であってもよい。また、その機能は、情報処理装置1においてローカルに提供される機能であってもよく、あるいは、インターネット等を介して提供される機能であってもよい。また、そのソフトウェアには、ボタン画面が含まれていてもよく、そうでなくてもよい。そのボタン画面は、1以上のオプション機能に対応する機能ボタンが表示される画面である。例えば、そのボタン画面に表示される機能ボタンが選択されることによって、その機能ボタンに対応するオプション機能の実行の指示が受け付けられてもよい。なお、オプション機能の実行の指示は、機能ボタンの選択以外の方法によって受け付けられてもよいことは言うまでもなく、例えば、コマンドの入力によって受け付けられてもよく、プルダウンメニューの選択や、その他の方法によって受け付けられてもよい。なお、そのような受け付けは、後述する受付部14によって行われることになる。また、ソフトウェアにボタン画面が含まれるとは、厳密には、そのソフトウェアに、そのボタン画面を表示するための情報が含まれていることである。また、そのソフトウェアの使用中に、そのボタン画面を表示させることができるようになっているものとする。そのボタン画面は、どのように構成されたものであってもよい。例えば、HTMLやXML等のようなマークアップ言語を用いて記述されたものであってもよく、その他の方法で記述されたものであってもよい。
また、ソフトウェア記憶部11では、ソフトウェアを使用するユーザを識別する情報であるユーザ識別情報が記憶されてもよい。このユーザ識別情報は、はじめから記憶されているものであってもよく、あるいは、ログイン時などに入力されたものが蓄積されたものであってもよい。なお、このユーザ識別情報は、ユーザ(人)を識別する情報(例えば、名前や電話番号、社員ID等)であってもよく、情報処理装置1を識別する機器識別情報(例えば、シリアルナンバー、IPアドレス等)であってもよく、その他の情報であってもよい。また、ソフトウェア記憶部11では、オプション機能を識別する情報であるオプション機能識別情報が記憶されてもよい。オプション機能識別情報は、ソフトウェアの各オプション機能に対応付けられていることが好適である。このオプション機能識別情報は、数字や記号の列であってもよく、オプション機能の名称であってもよい。本実施の形態では、後者の場合について説明する。
ソフトウェア記憶部11に1以上のソフトウェア等が記憶される過程は問わない。例えば、記録媒体を介して1以上のソフトウェア等がソフトウェア記憶部11で記憶されるようになってもよく、通信回線等を介して送信された1以上のソフトウェア等がソフトウェア記憶部11で記憶されるようになってもよい。ソフトウェア記憶部11での記憶は、RAM等における一時的な記憶でもよく、あるいは、長期的な記憶でもよい。ソフトウェア記憶部11は、所定の記録媒体(例えば、半導体メモリや磁気ディスク、光ディスクなど)によって実現されうる。
ソフトウェア実行部12は、ソフトウェア記憶部11で記憶されているソフトウェアを適宜読み出し、そのソフトウェアを実行する。ソフトウェアの実行には、そのソフトウェアの1以上のオプション機能の実行も含まれるものとする。その際に、後述するように、ソフトウェア実行部12は、表示部13への情報の表示や、受付部14からの入力の受け付け、要求送信部15からの情報の送信、受信部16からの情報の受信等の制御を行ってもよい。また、ソフトウェア実行部12は、後述する受信部16が受信した判断結果情報に応じて、判断結果情報に対応するオプション機能の実行を制御する。オプション機能の実行の制御とは、オプション機能を実行すること、あるいは実行しないことであってもよい。オプション機能を実行しないことには、オプション機能に関する情報がサーバ等から送信されてこないため実行しないこと、すなわち、結果として実行しないことを含んでもよい。また、オプション機能の実行の制御は、判断結果情報に応じて、オプション機能が実行できたり、実行できなかったりするようにインターフェース等を制御することであってもよい。例えば、オプション機能が実行できる場合には、そのオプション機能の実行のための機能ボタンを表示するように制御し、オプション機能が実行できない場合には、そのオプション機能が実行できない旨の機能ボタン(例えば、機能ボタンをオプション機能の申し込みボタンにする、機能ボタンをグレーアウトする、機能ボタンを表示しないなど)となるように制御することであってもよい。この処理については、実施の形態2において説明する。また、後述する表示部13がHTML等のマークアップ言語によって記述される画面を表示する際に、ソフトウェア実行部12は、その画面に対応する情報の解釈実行を行って、その画面を構成する処理等を行ってもよい。
また、ソフトウェア実行部12は、一のオプション機能の実行開始時に、後述する要求送信部15に対して使用開始情報を送信させ、また、そのオプション機能の実行終了時に、要求送信部15に対して使用終了情報を送信させてもよい。なお、使用開始情報が後述する要求情報で兼ねられている場合には、その使用開始情報の送信に関する制御をソフトウェア実行部12が行わなくてもよい。
表示部13は、ソフトウェア実行部12の制御によって、情報の表示を行う。また、ソフトウェアにボタン画面も含まれる場合には、表示部13は、ソフトウェア実行部12がソフトウェアを実行中に、ボタン画面をも表示してもよい。
なお、表示部13は、それらの表示を行う表示デバイス(例えば、CRTや液晶ディスプレイなど)を含んでもよく、あるいは含まなくてもよい。また、表示部13は、ハードウェアによって実現されてもよく、あるいは表示デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。また、表示対象の情報が最終的に表示されるのであれば、表示部13は、その表示対象の情報を外部の表示デバイス等に送信するものであってもよい。すなわち、表示部13は、実際に表示を行ってもよく、あるいは、他の表示デバイス等での表示のための表示出力を行ってもよい。
受付部14は、入力デバイス(例えば、マウスやキーボード、タッチパネル等)を介した入力を受け付ける。受付部14は、オプション機能の実行の指示を受け付けてもよい。また、表示部13がボタン画面を表示する場合には、受付部14は、機能ボタンが選択されたことを受け付けてもよい。その機能ボタンの選択が、オプション機能の実行の指示となる。機能ボタンの選択は、通常、マウスでクリックすることによる選択であるが、その他の選択であってもよい。その他の選択は、例えば、マウスでダブルクリックすることによる選択であってもよく、選択対象のボタンに対応するラジオボタン等を選択した上で、選択を決定することを示すボタンをクリックすることであってもよい。本実施の形態では、機能ボタンの選択は、機能ボタンのクリックである場合について説明する。
本実施の形態では、受付部14が入力デバイスからの入力を受け付ける場合について説明するが、そうでなくてもよい。例えば、受付部14は、有線もしくは無線の通信回線を介して送信された入力を受信してもよい。なお、受付部14は、受け付けを行うためのデバイス(例えば、モデムやネットワークカードなど)を含んでもよく、あるいは含まなくてもよい。また、受付部14は、ハードウェアによって実現されてもよく、あるいは所定のデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
要求送信部15は、オプション機能の使用の可否の判断を要求する情報である要求情報をサーバ2に送信する。この要求情報の送信のタイミングは問わない。例えば、オプション機能の実行の指示の前であってもよく、後であってもよい。本実施の形態では、オプション機能の実行の指示が受け付けられた後に、そのオプション機能に関する要求情報が送信される場合について説明する。また、その要求情報には、ソフトウェアを使用するユーザに対応するユーザ識別情報と、オプション機能識別情報とが含まれていてもよい。サーバ2のアドレスは、要求送信部15が持っていてもよく、あるいは、ボタン要求情報の送信までに他の構成要素等から受け付けてもよい。また、要求送信部15は、後述する使用開始情報や使用終了情報を送信してもよい。この使用開始情報は、オプション機能の使用の開始を示す情報である。また、この使用終了情報は、オプション機能の使用の終了を示す情報である。その使用開始情報や使用終了情報には、ユーザ識別情報とオプション機能識別情報が含まれていてもよい。
なお、要求送信部15は、要求情報をサーバ2に直接送信してもよく、あるいは、他のサーバ等を介して間接的に送信してもよい。また、要求送信部15は、送信を行うための送信デバイス(例えば、モデムやネットワークカードなど)を含んでもよく、あるいは含まなくてもよい。また、要求送信部15は、ハードウェアによって実現されてもよく、あるいは送信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
受信部16は、要求送信部15による要求情報の送信に応じて、サーバ2から送信された判断結果情報を受信する。判断結果情報は、オプション機能の使用の可否の判断結果に関する情報である。この判断結果情報は、判断結果を示す情報(例えば、使用可能であることを示す情報、あるいは、使用不可能であることを示す情報)であってもよく、あるいは、その判断の結果が「使用可能」である場合に、判断結果情報は、その使用可能なオプション機能に関係する情報(例えば、使用可能である結果、表示されることになる画面の情報や、その表示されることになる画面のアドレスを示す情報など)であってもよい。
なお、受信部16は、受信を行うための有線または無線の受信デバイス(例えば、モデムやネットワークカードなど)を含んでもよく、あるいは含まなくてもよい。また、受信部16は、ハードウェアによって実現されてもよく、あるいは受信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
図3は、本実施の形態によるサーバ2の構成を示すブロック図である。図3において、本実施の形態によるサーバ2は、判断情報記憶部21と、要求受信部22と、判断部23と、送信部24と、更新部25とを備える。
判断情報記憶部21では、オプション機能の使用の可否の判断で用いられる情報である判断情報が記憶される。判断情報記憶部21に判断情報が記憶される過程は問わない。例えば、記録媒体を介して判断情報が判断情報記憶部21で記憶されるようになってもよく、通信回線等を介して送信された判断情報が判断情報記憶部21で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された判断情報が判断情報記憶部21で記憶されるようになってもよい。判断情報記憶部21での記憶は、RAM等における一時的な記憶でもよく、あるいは、長期的な記憶でもよい。判断情報記憶部21は、所定の記録媒体(例えば、半導体メモリや磁気ディスク、光ディスクなど)によって実現されうる。
ここで、判断情報について説明する。判断情報は、例えば、(1)有効期限に関するものであってもよく、(2)使用人数に関するものであってもよく、(3)ユーザ識別情報等に関するものであってもよい。
(1)有効期限に関する判断情報
この場合に、判断情報は、ユーザ識別情報と、オプション機能識別情報と、そのユーザ識別情報及びそのオプション機能識別情報に対応する、オプション機能の有効期限とを有するものであってもよい。そして、その判断情報が2以上、判断情報記憶部21において記憶されていてもよい。その判断情報において、ユーザ識別情報、及びオプション機能識別情報を用いて、それらに対応する有効期限を特定できるのであれば、判断情報のデータ構造は問わない。有効期限は、例えば、2009年9月30日のように年月日を示すものであってもよく、さらに、2009年9月30日24:00のように年月日と時刻とを示すものであってもよい。
(2)使用人数に関する判断情報
この場合には、判断情報は、ユーザ識別情報と、オプション機能識別情報と、そのユーザ識別情報及びそのオプション機能識別情報に対応する、オプション機能を使用しているユーザ数である使用人数とを有するものであってもよい。そして、その判断情報が2以上、判断情報記憶部21において記憶されていてもよい。その判断情報において、ユーザ識別情報、及びオプション機能識別情報を用いて、それらに対応する使用人数を特定できるのであれば、判断情報のデータ構造は問わない。使用人数は、後述する更新部25によって適宜、更新されることになる。使用人数は、そのオプション機能を実行している情報処理装置1の個数であると考えてもよい。
(3)ユーザ識別情報等に関する判断情報
この場合には、判断情報は、ユーザ識別情報と、そのユーザ識別情報に対応する、そのユーザ識別情報で識別されるユーザが使用可能なオプション機能を識別するオプション機能識別情報とを有するものであってもよい。そして、その判断情報が2以上、判断情報記憶部21において記憶されていてもよい。その判断情報において、ユーザ識別情報を用いて、それに対応するオプション機能識別情報を特定できるのであれば(あるいは、逆にオプション機能識別情報を用いて、それに対応するユーザ識別情報を特定できてもよい)、判断情報のデータ構造は問わない。この判断情報において対応付けられているユーザ識別情報とオプション機能識別情報とが、ユーザが使用できるオプション機能を示す情報である。すなわち、あるユーザは、そのユーザを識別するユーザ識別情報に判断情報で対応付けられているオプション機能識別情報で識別されるオプション機能を使用することができる。
また、判断情報に含まれる各情報、例えば、ユーザ識別情報やオプション機能識別情報等は、それらの情報そのものであってもよく、あるいは、それらの情報を特定可能な情報であってもよい。後者の場合には、判断情報に含まれるユーザ識別情報等は、例えば、ユーザ識別情報等が格納されている領域を示すポインタやアドレスであってもよい。また、判断情報において、2以上の情報が対応している場合に、その対応は、他の第3の情報を介した対応であってもよい。例えば、ユーザ識別情報と、使用人数とが対応している場合に、その対応は、ユーザ識別情報とグループ識別情報の対応と、グループ識別情報とオプション機能識別情報と使用人数との対応に分かれてもよい。また、判断情報は、別々に記憶されている2以上の情報から構成されてもよい。例えば、判断情報が、ユーザ識別情報とグループ識別情報とを対応付ける情報、及び、グループ識別情報とオプション機能識別情報と使用人数とを対応付ける情報から構成される場合などである。
また、前述の(2)の場合には、後述する更新部25による使用人数の更新が必要になるが、そうでない場合には、更新部25による使用人数の更新は必要ない。したがって、前述の(2)ではない場合には、サーバ2は、後述する更新部25を備えていなくてもよい。なお、本実施の形態では、説明の便宜上、更新部25の処理についても説明する。
要求受信部22は、情報処理装置1から送信された要求情報を受信する。その要求情報には、例えば、ユーザ識別情報やオプション機能識別情報が含まれていてもよい。また、要求受信部22は、後述する使用開始情報や使用終了情報を受信してもよい。その使用開始情報には、ユーザ識別情報やオプション機能識別情報が含まれていてもよい。なお、要求受信部22は、受信を行うための有線または無線の受信デバイス(例えば、モデムやネットワークカードなど)を含んでもよく、あるいは含まなくてもよい。また、要求受信部22は、ハードウェアによって実現されてもよく、あるいは受信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
判断部23は、要求受信部22が要求情報を受信した場合に、判断情報記憶部21で記憶されている判断情報を用いてオプション機能の使用の可否を判断する。
前述の(1)の場合には、判断部23は、2以上の判断情報を用いて、要求受信部22が受信した要求情報に含まれるユーザ識別情報、オプション機能識別情報に対応する有効期限が満了していない場合に使用可能であると判断し、有効期限が満了している場合に使用不可能であると判断してもよい。その判断のために、判断部23は、図示しないカレンダー部や時計部から、その判断時の年月日や時刻を受け取り、その年月日や時刻が、有効期限よりも前であるかどうかによって、有効期限が満了しているかどうかを判断してもよい。カレンダー部等から受け取った判断時の年月日等が有効期限よりも前である場合には、有効期限が満了していないと判断され、その年月日等が有効期限と同じか、有効期限よりも後である場合には、有効期限が満了していると判断される。なお、要求情報に含まれるユーザ識別情報、オプション機能識別情報に対応する有効期限が存在しない場合、すなわち、要求情報に含まれるユーザ識別情報、オプション機能識別情報に対応する判断情報が存在しない場合にも、判断部23は使用不可能であると判断してもよい。
前述の(2)の場合には、判断部23は、2以上の判断情報を用いて、要求受信部22が受信した要求情報に含まれるユーザ識別情報、オプション機能識別情報に対応する使用人数が上限数に達していない場合(すなわち、使用人数が上限数未満である場合)に使用可能であると判断し、使用人数が上限数に達している場合(すなわち、使用人数が上限数そのものである場合)に使用不可能であると判断してもよい。その判断のために、判断部23は、図示しない記録媒体において記憶されている上限数を読み出して、その判断に用いてもよい。その上限数は、全ての判断について同じ値であってもよく、あるいは、ユーザ識別情報やオプション機能識別情報ごとに異なっていてもよい。なお、要求情報に含まれるユーザ識別情報、オプション機能識別情報に対応する使用人数が存在しない場合、すなわち、要求情報に含まれるユーザ識別情報、オプション機能識別情報に対応する判断情報が存在しない場合にも、判断部23は使用不可能であると判断してもよい。
前述の(3)の場合には、判断部23は、2以上の判断情報を用いて、要求受信部22が受信した要求情報に含まれるユーザ識別情報とオプション機能識別情報とが対応付けられている場合に使用可能であると判断し、そのユーザ識別情報とオプション機能識別情報とが対応付けられていない場合に使用不可能であると判断してもよい。
送信部24は、判断部23による判断結果に関する情報である判断結果情報を情報処理装置1に送信する。なお、判断結果情報は、前述のように、判断結果を示すものであってもよい。また、送信部24は、例えば、要求受信部22が受信した要求情報の送信元のアドレスを送信先のアドレスとして、判断結果情報を送信してもよい。
なお、送信部24は、判断結果情報を情報処理装置1に直接送信してもよく、あるいは、他のサーバ等を介して間接的に送信してもよい。また、送信部24は、送信を行うための送信デバイス(例えば、モデムやネットワークカードなど)を含んでもよく、あるいは含まなくてもよい。また、送信部24は、ハードウェアによって実現されてもよく、あるいは送信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
更新部25は、判断情報記憶部21において使用人数を含む判断情報が記憶されている場合に、要求受信部22が受信した使用開始情報や使用終了情報、要求情報等を用いることによって、その使用人数を更新する。例えば、使用開始情報が要求受信部22で受信された場合に、更新部25は、その使用開始情報に含まれるユーザ識別情報、オプション機能識別情報に対応する使用人数を1だけインクリメントしてもよい。また、例えば、使用終了情報が要求受信部22で受信された場合に、更新部25は、その使用終了情報に含まれるユーザ識別情報、オプション機能識別情報に対応する使用人数を1だけデクリメントしてもよい。また、例えば、要求情報が使用開始情報を兼ねている場合には、要求情報が要求受信部22で受信された場合であって、その要求情報の受信に応じて、オプション機能を使用可能であると判断された場合に、更新部25は、その要求情報に含まれるユーザ識別情報、オプション機能識別情報に対応する使用人数を1だけインクリメントしてもよい。
次に、本実施の形態による情報処理装置1の動作について、図4のフローチャートを用いて説明する。
(ステップS101)ソフトウェア実行部12は、ソフトウェアを起動するかどうか判断する。そして、ソフトウェアを起動する場合には、ステップS102に進み、そうでない場合には、起動すると判断するまでステップS101の処理を繰り返す。なお、ソフトウェア実行部12は、例えば、ソフトウェアを起動する旨の指示を受付部14が受け付けた場合に、ソフトウェアを起動すると判断してもよい。
(ステップS102)ソフトウェア実行部12は、ソフトウェア記憶部11からソフトウェアを読み出して、起動の処理を実行する。なお、ソフトウェア記憶部11で複数のソフトウェアが記憶されている場合には、起動対象となるソフトウェア(例えば、ステップS101において、起動することが指示されたソフトウェア)を読み出して起動の処理を実行することになる。
(ステップS103)ソフトウェア実行部12は、ソフトウェアの起動後に、そのソフトウェアのボタン画面を表示部13に表示させる。その結果、表示部13は、ボタン画面を表示することになる。
(ステップS104)受付部14は、機能ボタンの選択を受け付けたかどうか判断する。そして、機能ボタンの選択を受け付けた場合には、その旨をソフトウェア実行部12に渡してステップS105に進み、そうでない場合には、ステップS109に進む。この判断は、例えば、表示部13がボタン画面を表示している場合に、機能ボタンの位置がクリックされたかどうかを判断することによってなされてもよい。すなわち、機能ボタンの位置がクリックされた際には、機能ボタンが選択されたと判断してもよい。そして、その機能ボタンを識別する情報と、その機能ボタンが選択された旨とをソフトウェア実行部12に渡してもよい。
(ステップS105)ソフトウェア実行部12は、選択の受け付けられた機能ボタンに関する要求情報の送信を要求送信部15に指示する。すなわち、その選択された機能ボタンに対応するオプション機能識別情報と、ステップS101で起動されたソフトウェアを使用中のユーザを識別するユーザ識別情報とをソフトウェア記憶部11から読み出し、それらの識別情報を含む要求情報を送信する旨を要求送信部15に指示する。その指示に応じて、要求送信部15は、ソフトウェア実行部12から受け取った識別情報を含む要求情報をサーバ2に送信する。
(ステップS106)受信部16は、要求情報の送信に応じてサーバ2から送信された判断結果情報を受信したかどうか判断する。そして、判断結果情報を受信した場合には、その判断結果情報をソフトウェア実行部12に渡してステップS107に進み、そうでない場合には、判断結果情報を受信するまでステップS106の処理を繰り返す。なお、要求情報が送信されてから所定の時間が経過しても判断結果情報が受信されない場合には、タイムアウトであると判断してステップS104に戻ってもよい。
(ステップS107)ソフトウェア実行部12は、判断結果情報を用いて、オプション機能の実行が可能であるかどうか判断する。そして、オプション機能の実行が可能である場合には、ステップS108に進み、そうでない場合には、ステップS104に戻る。
(ステップS108)ソフトウェア実行部12は、使用の許可されたオプション機能に関する処理を行う。その処理の際に、受付部14は、入力を受け付けてもよく、表示部13は、情報を表示してもよく、要求送信部15や受信部16は、情報の送受信を行ってもよい。なお、そのオプション機能の使用を終了する際には、要求送信部15は、そのオプション機能を識別するオプション機能識別情報と、ユーザ識別情報とを含む使用終了情報をサーバ2に送信するものとする。そして、ステップS104に戻る。なお、この図4のフローチャートでは、要求情報の送信が、オプション機能の使用開始情報を兼ねることになる。
(ステップS109)受付部14は、他の処理に関する入力を受け付けたかどうか判断する。そして、受け付けた場合には、ステップS110に進み、そうでない場合には、ステップS111に進む。
(ステップS110)ソフトウェア実行部12は、受付部14で受け付けられた入力に応じた処理を行う。その際に、表示部13、受付部14、要求送信部15、受信部16等が用いられてもよい。そして、ステップS104に戻る。
(ステップS111)受付部14は、ソフトウェアの実行を終了する旨の入力を受け付けたかどうか判断する。そして、ソフトウェアの実行を終了する旨の入力を受け付けた場合には、その旨をソフトウェア実行部12に渡す。ソフトウェア実行部12は、ソフトウェアの実行を終了する処理を行ってステップS101に戻る。ソフトウェアの実行を終了する旨の入力を受け付けていない場合には、ステップS104に戻る。なお、ソフトウェアの実行を終了する旨の入力は、例えば、終了ボタンを選択することであってもよい。
なお、図4のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。また、判断情報記憶部21において、前述の(2)の場合の判断情報が記憶されているのではない場合には、ステップS108において、使用終了情報の送信を行わなくてもよい。また、判断情報記憶部21において、前述の(2)の場合の判断情報が記憶されている場合に、要求情報とは別に、使用開始情報を送信してもよい。すなわち、ステップS108のオプション機能の処理を開始する際に、要求送信部15は、ユーザ識別情報と、オプション機能識別情報とを含む使用開始情報をサーバ2に送信してもよい。
次に、本実施の形態によるサーバ2の動作について、図5のフローチャートを用いて説明する。
(ステップS201)要求受信部22は、要求情報を受信したかどうか判断する。そして、要求情報を受信した場合には、ステップS202に進み、そうでない場合には、ステップS206に進む。
(ステップS202)判断部23は、要求情報に含まれるユーザ識別情報、オプション機能識別情報と、判断情報記憶部21で記憶されている2以上の判断情報とを用いて、要求情報に含まれるオプション機能を使用できるかどうか判断する。
(ステップS203)更新部25は、判断部23による判断結果が、オプション機能を使用可能である旨であるかどうか判断する。そして、使用可能である場合には、ステップS204に進み、そうでない場合には、ステップS205に進む。
(ステップS204)更新部25は、要求受信部22が受信した要求情報に含まれるユーザ識別情報、オプション機能識別情報に対応する使用人数を1だけインクリメントする。なお、そのインクリメントの際に、要求情報に含まれるユーザ識別情報、オプション機能識別情報を含む判断情報が存在しない場合には、更新部25は、その判断情報を生成してもよい。その場合に、使用人数は1に設定されるものとする。
(ステップS205)送信部24は、判断部23による判断結果に関する判断結果情報を情報処理装置1に送信する。そして、ステップS201に戻る。
(ステップS206)要求受信部22は、使用終了情報を受信したかどうか判断する。そして、使用終了情報を受信した場合には、ステップS207に進み、そうでない場合には、ステップS201に戻る。
(ステップS207)更新部25は、要求受信部22が受信した使用終了情報に含まれるユーザ識別情報、オプション機能識別情報に対応する使用人数を1だけデクリメントする。そして、ステップS201に戻る。
なお、図5のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。また、図5のフローチャートでは、判断情報記憶部21において、前述の(2)の場合の判断情報が記憶されている場合について説明したが、そうでなくてもよい。判断情報が(2)以外の場合には、使用人数のインクリメントやデクリメントの処理を行わなくてもよい。すなわち、ステップS202からステップS205に進むようにしてもよく、ステップS201でNOの場合には、要求情報を受信するまでステップS201の処理を繰り返すようにしてもよい。また、情報処理装置1から使用開始情報も送信される場合には、図5のフローチャートにおいて、使用開始情報を受信した際に、使用人数をインクリメントする処理を行うようにしてもよい。その場合には、後述する図17のフローチャートにおけるステップS604,S605の処理を、図5のフローチャートでも行うようにしてもよい。また、その場合には、ステップS203,S204の処理は行わなくてもよい。
次に、本実施の形態による情報処理システムの動作について、具体例を用いて説明する。この具体例において、情報処理装置1は、パーソナルコンピュータ(PC)であるとする。また、その情報処理装置1で起動するソフトウェアは、会計管理のソフトウェアであるとする。また、オプション機能としては、勤怠管理の機能や、給与明細照会の機能などが存在するものとする。そのオプション機能は、ウェブサイトで提供されるものであるとする。したがって、そのオプション機能を用いる際に、ソフトウェアの起動や終了等が必要ないことになる。
まず、ユーザが、情報処理装置1を操作して、ソフトウェアのアイコンをダブルクリックすることにより、そのソフトウェアの起動を指示したとする。すると、その指示が受付部14で受け付けられ、ソフトウェア実行部12に渡される。ソフトウェア実行部12は、ソフトウェアを起動すると判断し(ステップS101)、そのソフトウェアをソフトウェア記憶部11から読み出して起動する(ステップS102)。なお、その起動の際に、ソフトウェア実行部12は、ユーザ識別情報とパスワードとの入力を要求するログイン画面を表示部13に表示させる。そのログイン画面において、ユーザが、図6で示されるようにユーザ識別情報「U001」と、パスワードとを入力し、「OK」ボタンをクリックしたとする。すると、そのユーザ識別情報等が受付部14で受け付けられ、ソフトウェア実行部12に渡される。ソフトウェア実行部12は、そのユーザ識別情報等が正当なものであるかどうか判断し、正当なものである場合には、そのユーザ識別情報をソフトウェア記憶部11に蓄積して起動の処理を継続し、正当なものでない場合には、その旨を表示部13に表示させると共に、そのソフトウェアの起動を終了する。なお、この具体例では、正当であると判断されたとする。すると、ソフトウェア実行部12は、ボタン画面をソフトウェア記憶部11から読み出し、そのボタン画面を表示部13に表示させる。その結果、図7で示されるボタン画面がディスプレイに表示される(ステップS103)。図7のボタン画面において、左側にメインメニューが表示されており、右側の一番下に機能ボタンである「ウェブオプション勤怠管理」ボタン51と、「ウェブオプション給与明細照会」ボタン52とが表示されている。そして、ユーザが、マウスを操作することによって「ウェブオプション勤怠管理」ボタン51をクリックしたとする。すると、その入力が受付部14で受け付けられ、オプション機能「勤怠管理」に対応する機能ボタンの選択であると判断される(ステップS104)。なお、クリックの受け付けられた画面がボタン画面であり、そのクリックの受け付けられた位置が、機能ボタン51の位置であるため、その受け付けられた入力が「勤怠管理」に対応する機能ボタンの選択であると判断されることになる。ここで、図7のボタン画面に対応して、機能ボタン51,52の位置と、その位置に対応する、それらのボタンがそれぞれ「勤怠管理」「給与明細照会」に対応するボタンである旨を示す情報とが図示しない記録媒体で記憶されているものとする。したがって、それを用いることによって、クリックされた位置が機能ボタン51の位置であることを知ることができる。
「勤怠管理」に対応する機能ボタン51の選択が受け付けられたため、ソフトウェア実行部12は、その機能ボタン51に対応するオプション機能識別情報「勤怠管理」と、ソフトウェア記憶部11で記憶されているユーザ識別情報「U001」とを読み出して要求送信部15に渡す。要求送信部15は、それらをペイロードに含む要求情報のパケットをサーバ2に送信する(ステップS105)。
その要求情報のパケットは、通信回線500を介して送信され、サーバ2の要求受信部22で受信される(ステップS201)。また、要求受信部22は、そのパケットのペイロードに含まれるユーザ識別情報「U001」と、オプション機能識別情報「勤怠管理」とを判断部23に渡す。また、要求受信部22は、そのパケットのヘッダから送信元のアドレスとポート番号とを読み出して、送信部24に渡す。送信部24は、そのアドレス等を一時的に記憶しておく。
なお、この具体例では、判断情報記憶部21において、図8で示される判断情報が記憶されているものとする。この判断情報は、前述の(1)の場合に対応するものである。したがって、この具体例では、更新部25に関する処理は行われないものとする。図8で示される判断情報は、ユーザ識別情報と、オプション機能識別情報と、両識別情報に対応する有効期限と、両識別情報に対応するURLとを有するものである。URLは、両識別情報に対応するウェブオプションを提供するURLを示すものである。このURLは、例えば、サーバ2のURLであってもよく(この場合には、サーバ2がオプション機能を提供することになる)、他のサーバのURLであってもよい(この場合には、そのサーバがオプション機能を提供することになる)。この具体例では、後者の場合であるとする。
判断部23は、要求受信部22からユーザ識別情報「U001」と、オプション機能識別情報「勤怠管理」とを受け取ると、両者を含む判断情報を検索する。すると、図8の1番目の判断情報がヒットするため、その判断情報から、有効期間「2009年8月31日」を取得する。また、判断部23は、図示しないカレンダー部から、その判断時点の年月日「2009年9月15日」を取得する。そして、判断時点の年月日が、その有効期限を越えているかどうか判断する。この場合には、超えているため、判断部23は、そのオプション機能を使用できないと判断し、その旨を送信部24に渡す(ステップS202)。送信部24は、判断部23から判断結果を受け取ると、オプション機能を使用できない旨の判断結果情報をペイロードに含むパケットを構成し、あらかじめ一時的に記憶していたアドレス等を送信先として送信する(ステップS205)。
そのようにして送信された判断結果情報のパケットは、受信部16で受信され、ソフトウェア実行部12に渡される(ステップS106)。そして、ソフトウェア実行部12によって、オプション機能を使用できないと判断される(ステップS107)。ソフトウェア実行部12は、オプション機能を使用できない旨を示す画面を生成し、その画面を表示部13に表示させる。その結果、図9で示される画面がディスプレイに表示される。そして、ユーザは、勤怠管理のオプション機能を使用できない旨を知ることができる。
一方、ユーザが図7で示されるボタン画面において、「ウェブオプション給与明細照会」ボタン52をクリックしたとする。すると、その入力が受付部14で受け付けられ(ステップS104)、前述の説明と同様にして、要求送信部15は、ユーザ識別情報「U001」と、オプション機能識別情報「給与明細照会」とを含む要求情報のパケットをサーバ2に送信する(ステップS105)。
その要求情報のパケットはサーバ2の要求受信部22で受信され(ステップS201)、判断部23に渡される。判断部23は、このたびは、図8の判断情報を用いて、その判断時点の年月日「2009年9月15日」が、ユーザ識別情報「U001」と、オプション機能識別情報「給与明細照会」とに対応する有効期限「2009年9月30日」を超えていないと判断する(ステップS202)。そして、判断部23は、その判断結果と、ユーザ識別情報「U001」、オプション機能識別情報「給与明細照会」に対応するURL「URL002」を判断情報記憶部21から読み出して送信部24に渡す。すると、送信部24は、オプション機能を使用できる旨と、その受け取ったURLとをペイロードに含む判断結果情報のパケットを構成し、情報処理装置1に送信する(ステップS205)。
その判断結果情報のパケットは、情報処理装置1の受信部16で受信され、そのペイロードがソフトウェア実行部12に渡される(ステップS106)。ソフトウェア実行部12は、判断結果情報によって、オプション機能を使用可能なことが示されるため(ステップS107)、要求送信部15、受信部16を制御することによって、判断結果情報に含まれていたURL002にアクセスすることによって、給与明細照会のオプション機能を使用する。その結果、表示部13は、図10で示される給与明細照会の画面を表示する。また、受付部14は、その画面に関する入力を適宜、受け付けるものとする。また、要求送信部15や、受信部16によって適宜、情報の送信や受信が行われることになる。図10において、「OK」ボタンがクリックされると、図7のボタン画面に戻ることになる(ステップS108)。このようにして、オプション機能ごとに使用の可否を管理することができる。
なお、この具体例では、前述の(1)の場合について説明したが、そうでなくてもよい。前述の(2)の場合には、図11,図12で示される判断情報が判断情報記憶部21で記憶されていてもよい。なお、図11,図12の判断情報では、グループ識別情報を介して、ユーザ識別情報と、オプション機能識別情報と、使用人数と、URLとが対応付けられている。例えば、ユーザ識別情報「U001」とオプション機能識別情報「勤怠管理」とを含む要求情報が要求受信部22で受信された場合(ステップS201)には、判断部23は、そのユーザ識別情報「U001」を検索キーとして図11で示される判断情報を検索し、ヒットしたレコードからグループ識別情報「G001」を読み出す。そして、そのグループ識別情報と、オプション機能識別情報とを用いて、図12の判断情報から、使用人数「10」を読み出す。ここで、使用人数の上限が「10」であるとすると、この場合には、その上限に達しているため、判断部23は、オプション機能を使用できないと判断する(ステップS202)。その後の処理は、前述の説明と同様である。一方、要求情報に含まれていたオプション機能識別情報が「給与明細照会」である場合には、使用人数が「6」であるため、判断部23は、オプション機能を使用できると判断する(ステップS202)。その後の処理は、使用人数の更新以外は前述の説明と同様である。この場合には、使用可能であるため、更新部25は、図12の2番目のレコードの使用人数を「1」だけインクリメントする。また、情報処理装置1において給与明細照会のオプション機能の使用が終了された場合には、その情報処理装置1からサーバ2に対して、ユーザ識別情報「U001」と、オプション機能識別情報「給与明細照会」とを含む使用終了情報が送信される(ステップS108)。その使用終了情報はサーバ2の要求受信部22で受信され(ステップS206)、更新部25に渡される。更新部25は、受け取った使用終了情報に含まれるユーザ識別情報「U001」に対応するグループ識別情報「G001」を読み出し、そのグループ識別情報と、使用終了情報に含まれたオプション機能識別情報「給与明細照会」とに対応する使用人数を「1」だけデクリメントする(ステップS207)。
また、前述の(3)の場合には、図13で示される判断情報が判断情報記憶部21で記憶されていてもよい。例えば、ユーザ識別情報「U001」とオプション機能識別情報「勤怠管理」とを含む要求情報が要求受信部22で受信された場合(ステップS201)には、判断部23は、両識別情報を含む判断情報が存在するかどうか判断する。この場合には、存在しないため、判断部23は、オプション機能を使用できないと判断する(ステップS202)。その後の処理は、前述の説明と同様である。一方、要求情報に含まれていたオプション機能識別情報が「給与明細照会」である場合には、両識別情報を含む判断情報(図13の給与明細管理に対応する1番目のレコード)が存在するため、判断部23は、オプション機能を使用できると判断する(ステップS202)。その後の処理は、前述の説明と同様である。なお、この場合には、URL「URL201」を含む判断結果情報がサーバ2から情報処理装置1に送信されることになる。
以上のように、本実施の形態による情報処理システムによれば、ソフトウェアのオプション機能について、使用の可否を判断することができ、その判断結果に応じて、そのオプション機能を使用したり、使用できなかったりする。したがって、例えば、そのソフトウェアのオプション機能について使用契約が締結されている場合には、そのオプション機能を使用できることになり、その使用契約が締結されていない場合には、そのオプション機能を使用できないことになる。また、その判断を、種々の判断情報を用いて行うことができる。
なお、本実施の形態では、機能ボタンが選択されることによってオプション機能の実行が指示される場合について主に説明したが、そうでなくてもよい。例えば、オプション機能の実行を指示するコマンドが入力されることや、オプション機能の実行を指示するプルダウンメニューによる選択が行われることなどによって、オプション機能の実行が指示されてもよい。
(実施の形態2)
本発明の実施の形態2による情報処理システムについて、図面を参照しながら説明する。本実施の形態による情報処理システムは、判断結果に応じた機能ボタンを有するボタン画面が表示されるものである。
なお、本実施の形態による情報処理システムも、実施の形態1の図1と同様の構成であるとする。また、その情報処理システムを構成する情報処理装置1,サーバ2も、要求情報の送信タイミングや、判断結果情報の受信タイミング、判断結果情報に応じた機能ボタンの表示等の処理が異なる以外は、実施の形態1と同様であり、その説明を省略する。
なお、本実施の形態では、ソフトウェア記憶部11で記憶されるソフトウェアは、1以上のオプション機能に対応する機能ボタンが表示されるボタン画面を含んでいるものとする。また、表示部13は、そのボタン画面を表示するものとする。また、受付部14は、そのボタン画面が表示されている際に、機能ボタンが選択されたことを受け付けるものとする。
また、ソフトウェア実行部12は、使用可能なオプション機能に対応する機能ボタンについては、使用可能であることを示す機能ボタンを表示部13に表示させ、機能ボタンが選択された場合に、機能ボタンに対応するオプション機能に応じた処理を実行するものとする。また、ソフトウェア実行部12は、使用不可能なオプション機能に対応する機能ボタンについては、機能ボタンに対応するオプション機能を申し込むことを示す機能ボタンを表示部13に表示させ、機能ボタンが選択された場合に、機能ボタンに対応するオプション機能の申し込みに関する処理を実行するものとする。オプション機能が使用可能かどうかは、ソフトウェア実行部12は、受信部16が受信した判断結果情報によって知ることができる。したがって、本実施の形態では、要求情報がオプション機能の実行の指示の前に送信されることになる。また、例えば、その機能ボタンの上に表示されているテキストや図形等によって使用可能であることが示されてもよく、その機能ボタンの表示される位置によって、使用可能であることが示されてもよく、機能ボタンのその他の表示に関する属性(例えば、色、点滅するかどうかなど)によって、使用可能であることが示されてもよい。また、例えば、その機能ボタンの上に表示されているテキストや図形等によって、機能ボタンに対応するオプション機能を申し込むことを示されてもよく、その機能ボタンの表示される位置によって、機能ボタンに対応するオプション機能を申し込むことを示されてもよく、機能ボタンのその他の表示に関する属性(例えば、色、点滅するかどうかなど)によって、機能ボタンに対応するオプション機能を申し込むことを示されてもよい。本実施の形態では、ボタン上のテキストによって、使用可能であることや、オプション機能を申し込むことが示されるものとする。
また、オプション機能の申し込みに関する処理とは、例えば、申し込みのための画面を表示し、その画面に入力された申し込みに関する情報を受け付け、その申し込みのための情報である申し込み情報をサーバ2に送信することであってもよい。そして、サーバ2では、その申し込み情報の受信に応じて、その申し込み情報に応じた判断情報を追加してもよい。判断情報の一部の情報を更新することは、更新後の判断情報の追加であると考えてもよい。それらの処理において、表示部13、受付部14、要求送信部15、要求受信部22、更新部25等が適宜、用いられてもよい。
次に、本実施の形態による情報処理装置1の動作について、図14のフローチャートを用いて説明する。
(ステップS301)ソフトウェア実行部12は、ソフトウェアを起動するかどうか判断する。そして、ソフトウェアを起動する場合には、ステップS302に進み、そうでない場合には、起動すると判断するまでステップS301の処理を繰り返す。なお、ソフトウェア実行部12は、例えば、ソフトウェアを起動する旨の指示を受付部14が受け付けた場合に、ソフトウェアを起動すると判断してもよい。
(ステップS302)ソフトウェア実行部12は、ソフトウェア記憶部11からソフトウェアを読み出して、起動の処理を実行する。なお、ソフトウェア記憶部11で複数のソフトウェアが記憶されている場合には、起動対象となるソフトウェア(例えば、ステップS301において、起動することが指示されたソフトウェア)を読み出して起動の処理を実行することになる。
(ステップS303)ソフトウェア実行部12や表示部13は、ボタン画面を表示する処理を行う。なお、この処理の詳細については、図15のフローチャートを用いて後述する。
(ステップS304)受付部14は、使用可能なオプション機能に対応する機能ボタンの選択を受け付けたかどうか判断する。そして、その機能ボタンの選択を受け付けた場合には、その旨をソフトウェア実行部12に渡してステップS305に進み、そうでない場合には、ステップS306に進む。この判断は、例えば、表示部13がボタン画面を表示している場合に、使用可能なオプション機能に対応する機能ボタンの位置がクリックされたかどうかを判断することによってなされてもよい。すなわち、その機能ボタンの位置がクリックされた際には、使用可能なオプション機能に対応する機能ボタンが選択されたと判断してもよい。そして、その機能ボタンを識別する情報と、その機能ボタンが選択された旨とをソフトウェア実行部12に渡してもよい。
(ステップS305)ソフトウェア実行部12は、選択されたオプション機能に関する処理を行う。その処理の際に、受付部14は、入力を受け付けてもよく、表示部13は、情報を表示してもよく、要求送信部15や受信部16は、情報の送受信を行ってもよい。なお、そのオプション機能の使用を開始する際には、要求送信部15は、そのオプション機能を識別するオプション機能識別情報と、ユーザ識別情報とを含む使用開始情報をサーバ2に送信するものとする。また、そのオプション機能の使用を終了する際には、要求送信部15は、そのオプション機能を識別するオプション機能識別情報と、ユーザ識別情報とを含む使用終了情報をサーバ2に送信するものとする。そして、ステップS304に戻る。
(ステップS306)受付部14は、オプション機能を申し込むことを示す機能ボタンの選択を受け付けたかどうか判断する。そして、その機能ボタンの選択を受け付けた場合には、その旨をソフトウェア実行部12に渡してステップS307に進み、そうでない場合には、ステップS308に進む。この判断は、例えば、表示部13がボタン画面を表示している場合に、オプション機能を申し込むことを示す機能ボタンの位置がクリックされたかどうかを判断することによってなされてもよい。すなわち、その機能ボタンの位置がクリックされた際には、オプション機能を申し込むことを示す機能ボタンが選択されたと判断してもよい。そして、その機能ボタンを識別する情報と、その機能ボタンが選択された旨とをソフトウェア実行部12に渡してもよい。
(ステップS307)ソフトウェア実行部12等は、オプション機能に関する申し込みの処理を行う。そして、ステップS303に戻る。この処理の詳細については、図16のフローチャートを用いて後述する。
(ステップS308)受付部14は、他の処理に関する入力を受け付けたかどうか判断する。そして、受け付けた場合には、ステップS309に進み、そうでない場合には、ステップS310に進む。
(ステップS309)ソフトウェア実行部12は、受付部14で受け付けられた入力に応じた処理を行う。その際に、表示部13、受付部14、要求送信部15、受信部16等が用いられてもよい。そして、ステップS304に戻る。
(ステップS310)受付部14は、ボタン画面を表示する旨の指示を受け付けたかどうか判断する。そして、ボタン画面を表示する旨の指示を受け受けた場合には、ステップS303に戻り、そうでない場合には、ステップS311に進む。
(ステップS311)受付部14は、ソフトウェアの実行を終了する旨の入力を受け付けたかどうか判断する。そして、ソフトウェアの実行を終了する旨の入力を受け付けた場合には、その旨をソフトウェア実行部12に渡す。ソフトウェア実行部12は、ソフトウェアの実行を終了する処理を行ってステップS301に戻る。ソフトウェアの実行を終了する旨の入力を受け付けていない場合には、ステップS304に戻る。なお、ソフトウェアの実行を終了する旨の入力は、例えば、終了ボタンを選択することであってもよい。
なお、図14のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
図15は、図14のフローチャートにおけるボタン画面の表示の処理(ステップS303)の詳細を示すフローチャートである。
(ステップS401)ソフトウェア実行部12は、ソフトウェア記憶部11で記憶されているボタン画面に含まれる各機能ボタンに対応するオプション機能を識別するオプション機能識別情報と、ステップS301で起動が指示されたソフトウェアを使用中のユーザを識別するユーザ識別情報とを読み出す。そして、それらの識別情報を含む要求情報を送信する旨を要求送信部15に指示する。その指示に応じて、要求送信部15は、ソフトウェア実行部12から受け取ったオプション機能識別情報と、ユーザ識別情報とを含む要求情報をサーバ2に送信する。
(ステップS402)受信部16は、要求情報の送信に応じてサーバ2から送信された判断結果情報を受信したかどうか判断する。そして、判断結果情報を受信した場合には、その判断結果情報をソフトウェア実行部12に渡してステップS403に進み、そうでない場合には、判断結果情報を受信するまでステップS403の処理を繰り返す。なお、要求情報が送信されてから所定の時間が経過しても判断結果情報が受信されない場合には、タイムアウトであると判断してステップS301に戻ってもよい。
(ステップS403)ソフトウェア実行部12は、判断結果情報を用いて、各機能ボタンの設定を行う。この設定は、判断結果情報によって、使用可能であることが示されるオプション機能に対応する機能ボタンについては、使用可能であることを示す機能ボタンとなるように設定することであり、判断結果情報によって、使用不可能であることが示されるオプション機能に対応する機能ボタンについては、そのオプション機能を申し込むことを示す機能ボタンとなるように設定することである。この設定は、例えば、前者については、「実行」や「使用可能」等のテキストを、ボタン上に表示されるテキストに追加することであってもよく、後者については、「申し込み」等のテキストを、ボタン上に表示されるテキストに追加することであってもよい。
(ステップS404)ソフトウェア実行部12は、機能ボタンの設定を行ったボタン画面を表示部13に渡す。表示部13は、そのボタン画面を表示する。そして、図14のフローチャートに戻る。
図16は、図14のフローチャートにおけるオプション機能の申し込みの処理(ステップS307)の詳細を示すフローチャートである。
(ステップS501)ソフトウェア実行部12は、オプション機能の申し込みに関する情報を受け付けるための画面である申し込み画面をソフトウェア記憶部11から読み出して表示部13に渡す。表示部13は、その申し込み画面を表示する。なお、本実施の形態では、その申し込み画面があらかじめソフトウェア記憶部11において記憶されているものとする。その申し込み画面は、オプション機能ごとに別のものであってもよく、あるいは、共通のものであってもよい。
(ステップS502)受付部14は、表示部13が表示した申し込み画面に対するユーザの入力を受け付けたかどうか判断する。そして、受け付けた場合には、ステップS503に進み、そうでない場合には、ステップS504に進む。
(ステップS503)ソフトウェア実行部12は、受付部14が受け付けた入力内容を図示しない記録媒体において一時的に記憶する。そして、ステップS502に戻る。
(ステップS504)受付部14は、申し込み情報を送信する旨の指示を受け付けたかどうか判断する。そして、受け付けた場合には、ステップS505に進み、そうでない場合には、ステップS502に戻る。なお、申し込み情報を送信する旨の指示は、例えば、「送信」ボタンの選択であってもよい。
(ステップS505)ソフトウェア実行部12は、それまでに一時的に記憶していた申し込み内容を示す情報と、ソフトウェア記憶部11から読み出した、ソフトウェアを使用中のユーザを識別するユーザ識別情報と、ステップS501での申し込み画面が表示される際に選択された機能ボタンに対応するオプション機能を識別するオプション機能識別情報とを含む申し込み情報と、その申し込み情報をサーバ2に送信する旨の指示とを要求送信部15に渡す。要求送信部15は、それらを受け取ると、その申し込み情報をサーバ2に送信する。そして、図14のフローチャートに戻る。
次に、本実施の形態によるサーバ2の動作について、図17のフローチャートを用いて説明する。
(ステップS601)要求受信部22は、要求情報を受信したかどうか判断する。そして、要求情報を受信した場合には、ステップS602に進み、そうでない場合には、ステップS604に進む。
(ステップS602)判断部23は、要求情報に含まれるユーザ識別情報、オプション機能識別情報と、判断情報記憶部21で記憶されている2以上の判断情報とを用いて、要求情報に含まれるオプション機能を使用できるかどうか判断する。要求情報に2以上のオプション機能識別情報が含まれている場合には、その各オプション機能識別情報について判断を行うものとする。
(ステップS603)送信部24は、判断部23による判断結果を示す判断結果情報を情報処理装置1に送信する。そして、ステップS601に戻る。
(ステップS604)要求受信部22は、使用開始情報を受信したかどうか判断する。そして、使用開始情報を受信した場合には、ステップS605に進み、そうでない場合には、ステップS606に進む。
(ステップS605)更新部25は、要求受信部22が受信した使用開始情報に含まれるユーザ識別情報、オプション機能識別情報に対応する使用人数を1だけインクリメントする。そして、ステップS601に戻る。
(ステップS606)要求受信部22は、使用終了情報を受信したかどうか判断する。そして、使用終了情報を受信した場合には、ステップS607に進み、そうでない場合には、ステップS608に進む。
(ステップS607)更新部25は、要求受信部22が受信した使用終了情報に含まれるユーザ識別情報、オプション機能識別情報に対応する使用人数を1だけデクリメントする。そして、ステップS601に戻る。
(ステップS608)要求受信部22は、申し込み情報を受信したかどうか判断する。そして、申し込み情報を受信した場合には、ステップS609に進み、そうでない場合には、ステップS601に戻る。
(ステップS609)更新部25は、要求受信部22が受信した申し込み情報に応じた判断情報を生成し、その判断情報を判断情報記憶部21に蓄積する。そして、ステップS601に戻る。例えば、判断情報記憶部21で記憶されている判断情報が前述の(1)の場合であれば、更新部25は、申し込み情報に含まれるユーザ識別情報と、オプション機能識別情報と、有効期限とを対応付けて有する判断情報を生成して蓄積してもよい。なお、URLについては、更新部25は、新たなURLを発行すると共に、そのURLに対応して、そのユーザ識別情報、オプション機能識別情報に対応するサイトを生成する旨の指示を、オプション機能を提供するウェブサーバ等に送信してもよい。また、例えば、判断情報が前述の(2)の場合であれば、更新部25は、申し込み情報にグループ識別情報が含まれている場合には、そのグループ識別情報に対応付けて、申し込み情報に含まれるユーザ識別情報を蓄積してもよい。一方、申し込み情報にグループ識別情報が含まれていない場合(新規のグループの場合)には、新たなグループ識別情報を発行して、そのグループ識別情報に対応付けてユーザ識別情報を蓄積すると共に、新たに発行したグループ識別情報と、申し込み情報に含まれるオプション機能識別情報と、使用人数「0」と、URLとを対応付けて有する判断情報を生成して蓄積してもよい。なお、URLについては、更新部25は、前述の通りの処理を行ってもよい。また、新たにグループ識別情報を発行した場合には、そのグループ識別情報を情報処理装置1に送信してもよい。また、例えば、判断情報が前述の(3)の場合であれば、更新部25は、申し込み情報に含まれるユーザ識別情報と、オプション機能識別情報とを対応付ける新たな判断情報を生成して蓄積すると共に、URLについては、前述の通りの処理を行ってもよい。
なお、図17のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
また、判断情報が前述の(2)以外のものである場合には、使用開始情報や使用終了情報の送信、また、その使用開始情報や使用終了情報の受信に応じた使用人数の更新の処理(ステップS604〜S607)を行わなくてもよい。
次に、本実施の形態による情報処理システムの動作について、具体例を用いて説明する。この具体例でも、情報処理装置1は、パーソナルコンピュータ(PC)であるとする。また、その情報処理装置1で起動するソフトウェアは、会計管理のソフトウェアであるとする。また、オプション機能としては、勤怠管理の機能や、給与明細照会の機能が存在するものとする。そのオプション機能は、ウェブサイトで提供されるものであるとする。したがって、そのオプション機能を用いる際に、ソフトウェアの起動や終了等が必要ないことになる。
まず、ユーザが、情報処理装置1を操作して、ソフトウェアのアイコンをダブルクリックすることにより、そのソフトウェアの起動を指示したとする。すると、その指示が受付部14で受け付けられ、ソフトウェア実行部12に渡される。ソフトウェア実行部12は、ソフトウェアを起動すると判断し(ステップS301)、そのソフトウェアをソフトウェア記憶部11から読み出して起動する(ステップS302)。なお、その起動の際に、前述のように、ユーザ識別情報「U001」とパスワードとの入力を受け付け、そのユーザ識別情報等が正当なものであると判断された後に、ユーザ識別情報がソフトウェア記憶部11に蓄積されたものとする。
その後、ソフトウェア実行部12等は、ボタン画面を表示する処理を行う(ステップS303)。具体的には、ソフトウェア実行部12は、ボタン画面に表示される機能ボタンに対応するオプション機能識別情報「勤怠管理」「給与明細照会」と、ユーザ識別情報「U001」とをソフトウェア記憶部11から読み出し、それらを含む要求情報を送信する旨の指示を要求送信部15に渡す。その指示に応じて、要求送信部15は、それらをペイロードに含むパケットをサーバ2に送信する(ステップS401)。
その要求情報のパケットはサーバ2の要求受信部22で受信され(ステップS601)、その要求情報に含まれるオプション機能識別情報ごとに、使用の可否の判断が行われる(ステップS602)。この処理は、実施の形態1の具体例と同様であり、その説明を省略する。ここでは、「勤怠管理」については、使用不可と判断され、「給与明細照会」については、使用可能と判断されたとする。すると、送信部24は、オプション機能識別情報「勤怠管理」については使用不可であり、オプション機能識別情報「給与明細照会」については使用可能である旨の判断結果情報のパケットを情報処理装置1に送信する(ステップS603)。なお、使用可能であると判断された「給与明細照会」については、対応するURLも判断結果情報に含まれるものとする。
その判断結果情報のパケットは情報処理装置1の受信部16で受信され(ステップS402)、ソフトウェア実行部12に渡される。ソフトウェア実行部12は、その判断結果情報を用いて、オプション機能識別情報「勤怠管理」に対応する機能ボタンについては、ボタン上に表示されるテキストに対して「申し込み」を追加する。また、ソフトウェア実行部12は、オプション機能識別情報「給与明細照会」に対応する機能ボタンについては、ボタン上に表示されるテキストに対して「実行」を追加する(ステップS403)。その各ボタンがマークアップ言語で記述される場合には、例えば、次のようになる。
<input type="button" name="勤怠管理" value="勤怠管理申し込み">
<input type="button" name="給与明細照会" value="給与明細照会実行">
なお、これらの機能ボタンの設定を行う際に、実行可能なオプション機能については、サーバ2から受信した判断結果情報に含まれるURLを、その機能ボタンに対応するリンク先の情報として設定してもよい。また、実行可能でないオプション機能については、そのオプション機能の申し込み画面のアドレスを、その機能ボタンに対応するリンク先の情報として設定してもよい。
その後、ソフトウェア実行部12は、機能ボタンに関する設定のなされたボタン画面を表示部13に渡す。すると、表示部13は、図18で示されるように、勤怠管理に関する機能ボタン61と、給与明細照会に関する機能ボタン62とを含むボタン画面を表示する(ステップS404)。この表示において、勤怠管理の機能ボタン61には、「申し込み」が表示されているため、ユーザは、そのボタンを選択することによって、勤怠管理の機能の申し込みをすることになる旨を知ることができる。また、給与明細照会の機能ボタン62には、「実行」が表示されているため、ユーザは、そのボタンを選択することによって、給与明細照会の機能を実行することになる旨を知ることができる。
ここで、ユーザが、給与明細照会に対応する機能ボタン62をマウスでクリックしたとする。すると、その機能ボタン62が選択されたことが受付部14で受け付けられ、ソフトウェア実行部12に渡される(ステップS304)。ソフトウェア実行部12は、判断結果情報に含まれていた給与明細照会に対応するURLを用いて、そのアドレスにアクセスすることによって、給与明細照会のオプション機能に関する処理を行う(ステップS305)。なお、サーバ2において記憶されている判断情報が前述の(2)のものである場合には、前述のように、情報処理装置1から使用開始情報や使用終了情報が送信され、サーバ2において、それに応じた使用人数の更新が行われることになる。
次に、図18の表示において、ユーザが勤怠管理に対応する機能ボタン61をクリックしたとする。すると、その機能ボタン61が選択されたことが受付部14で受け付けられ、ソフトウェア実行部12に渡される(ステップS306)。すると、ソフトウェア実行部12は、ソフトウェア記憶部11から申し込み画面を読み出し、それにユーザ識別情報「U001」と、そのクリックされた機能ボタン61に対応するオプション機能識別情報「勤怠管理」とを挿入して表示部13に渡す。表示部13は、その申し込み画面をディスプレイに表示する(ステップS501)。そして、適宜、申し込みに必要な情報を入力する。ここでは、判断情報が前述の(1)のものである場合について説明する。そして、図19で示されるように、有効期限が選択され、その有効期限が一時的に記憶されたものとする(ステップS502,S503)。また、ユーザが、「OK」ボタンをクリックすると、受付部14は、送信の指示を受け付けたと判断し(ステップS504)、その旨をソフトウェア実行部12に渡す。ソフトウェア実行部12は、ユーザ識別情報「U001」と、オプション機能識別情報「勤怠管理」と、有効期限「2009年12月31日」とを含む申し込み情報をサーバ2に送信する指示を要求送信部15に渡す。要求送信部15は、その指示に応じて、その申し込み情報のパケットをサーバ2に送信する(ステップS505)。なお、この申し込みの処理に応じて、ユーザ識別情報「U001」で識別されるユーザに対して、5000円の課金がなされてもよい。課金の処理については公知であり、その説明を省略する。
その申し込み情報のパケットは、サーバ2の要求受信部22で受信され(ステップS608)、ユーザ識別情報等が更新部25に渡される。ここで、判断情報記憶部21では、図8で示される判断情報が記憶されているものとする。すると、更新部25は、受け取ったユーザ識別情報、オプション機能識別情報を用いて検索を行うことによって、1番目の判断情報を特定し、その特定した判断情報の有効期限を「2009年12月31日」で上書きする(ステップS609)。その結果、判断情報は、図20で示されるようになる。また、その後、前述の説明と同様にして、ボタン画面が表示されると、そのボタン画面では、図21で示されるように、勤怠管理に対応する機能ボタン61ついても、使用可能である旨がボタン上に示されることになる。
以上のように、本実施の形態による情報処理システムによれば、ボタン画面において、オプション機能の使用の可否を知ることができるため、機能ボタンを選択した後に、使用できないことが判明する事態を回避することができ、ユーザの利便性が向上されている。また、オプション機能を使用できない場合には、そのオプション機能に対応する機能ボタンが、そのオプション機能の申し込みボタンになることによって、ユーザは、容易にそのオプション機能に関する申し込みを行うことができ、その観点からも利便性が向上されている。
なお、本実施の形態では、オプション機能を使用できる場合には、その旨を示す機能ボタンが表示され、オプション機能を使用できない場合には、そのオプション機能の申し込みを示す機能ボタンが表示される場合について説明したが、そうでなくてもよい。例えば、オプション機能を使用できない場合には、その機能ボタンを表示しなくてもよく、その機能ボタンをグレーアウトするようにしてもよい。
また、上記各実施の形態において、オプション機能の使用の可否の判断を行う2個のタイミングについて主に説明したが、それ以外のタイミングでその判断を行ってもよいことは言うまでもない。例えば、オプション機能を使用した後に、最終的に保存したり登録したりする際に判断を行い、使用不可の場合には、保存や登録を行うことができないようにして、使用可能の場合には、保存や登録を行うことができるようにしてもよい。
また、前述のように、オプション機能の判断で用いられる判断情報は、前述の3個のパターンに限定されるものではなく、他のものであってもよいことは言うまでもない。また、オプション機能の提供形態も問わない。例えば、ソフトウェア自体がオプション機能に応じたプログラムを有していてもよく、あるいは、サーバ2や他のサーバによって、オプション機能が提供されてもよい。また、そのオプション機能は、ウェブサーバによって提供されるものであってもよい。
また、上記各実施の形態では、情報処理装置1においてソフトウェア実行部12が表示や受け付け、送受信の全ての処理を制御する場合について説明したが、そうでなくてもよい。すなわち、各構成要素は、ソフトウェア実行部12の制御を受けないで動作する独立した構成要素であると考えてもよい。例えば、表示部13は、受信部16が受信した情報を、ソフトウェア実行部12を介さないで表示するものであってもよい。
また、上記各実施の形態において、各処理または各機能は、単一の装置または単一のシステムによって集中処理されることによって実現されてもよく、あるいは、複数の装置または複数のシステムによって分散処理されることによって実現されてもよい。
また、上記各実施の形態において、各構成要素が実行する処理に関係する情報、例えば、各構成要素が受け付けたり、取得したり、選択したり、生成したり、送信したり、受信したりした情報や、各構成要素が処理で用いるしきい値や数式、アドレス等の情報等は、上記説明で明記していない場合であっても、図示しない記録媒体において、一時的に、あるいは長期にわたって保持されていてもよい。また、その図示しない記録媒体への情報の蓄積を、各構成要素、あるいは、図示しない蓄積部が行ってもよい。また、その図示しない記録媒体からの情報の読み出しを、各構成要素、あるいは、図示しない読み出し部が行ってもよい。
また、上記各実施の形態において、各構成要素等で用いられる情報、例えば、各構成要素が処理で用いるしきい値やアドレス、各種の設定値等の情報がユーザによって変更されてもよい場合には、上記説明で明記していない場合であっても、ユーザが適宜、それらの情報を変更できるようにしてもよく、あるいは、そうでなくてもよい。それらの情報をユーザが変更可能な場合には、その変更は、例えば、ユーザからの変更指示を受け付ける図示しない受付部と、その変更指示に応じて情報を変更する図示しない変更部とによって実現されてもよい。その図示しない受付部による変更指示の受け付けは、例えば、入力デバイスからの受け付けでもよく、通信回線を介して送信された情報の受信でもよく、所定の記録媒体から読み出された情報の受け付けでもよい。
また、上記各実施の形態において、情報処理装置1やサーバ2に含まれる2以上の構成要素が通信デバイスや入力デバイス等を有する場合に、2以上の構成要素が物理的に単一のデバイスを有してもよく、あるいは、別々のデバイスを有してもよい。
また、上記実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。なお、上記実施の形態における情報処理装置1を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、情報処理装置とサーバとを備えた情報処理システムを構成する情報処理装置として機能させるためのプログラムであって、1以上のオプション機能を有するソフトウェアが記憶されるソフトウェア記憶部で記憶されているソフトウェアを実行するソフトウェア実行部、オプション機能の使用の可否の判断を要求する情報である要求情報をサーバに送信する要求送信部、要求送信部による要求情報の送信に応じて、サーバから送信された使用の可否の判断の結果に関する情報である判断結果情報を受信する受信部として機能させ、ソフトウェア実行部は、受信部が受信した判断結果情報に応じて、判断結果情報に対応するオプション機能の実行を制御する、プログラムである。
なお、上記プログラムにおいて、上記プログラムが実現する機能には、ハードウェアでしか実現できない機能は含まれない。例えば、情報を受信する受信部や、情報を送信する送信部、情報を表示する表示部などにおけるモデムやインターフェースカードなどのハードウェアでしか実現できない機能は、上記プログラムが実現する機能には少なくとも含まれない。
また、このプログラムは、サーバなどからダウンロードされることによって実行されてもよく、所定の記録媒体(例えば、CD−ROMなどの光ディスクや磁気ディスク、半導体メモリなど)に記録されたプログラムが読み出されることによって実行されてもよい。また、このプログラムは、プログラムプロダクトを構成するプログラムとして用いられてもよい。
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
図22は、上記プログラムを実行して、上記各実施の形態による情報処理装置1,サーバ2を実現するコンピュータの外観の一例を示す模式図である。上記各実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムによって実現されうる。
図22において、コンピュータシステム900は、CD−ROM(Compact Disk Read Only Memory)ドライブ905、FD(Floppy(登録商標) Disk)ドライブ906を含むコンピュータ901と、キーボード902と、マウス903と、モニタ904とを備える。
図23は、コンピュータシステム900の内部構成を示す図である。図23において、コンピュータ901は、CD−ROMドライブ905、FDドライブ906に加えて、MPU(Micro Processing Unit)911と、ブートアッププログラム等のプログラムを記憶するためのROM912と、MPU911に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するRAM(Random Access Memory)913と、アプリケーションプログラム、システムプログラム、及びデータを記憶するハードディスク914と、MPU911、ROM912等を相互に接続するバス915とを備える。なお、コンピュータ901は、LANへの接続を提供する図示しないネットワークカードを含んでいてもよい。
コンピュータシステム900に、上記各実施の形態による情報処理装置1,サーバ2の機能を実行させるプログラムは、CD−ROM921、またはFD922に記憶されて、CD−ROMドライブ905、またはFDドライブ906に挿入され、ハードディスク914に転送されてもよい。これに代えて、そのプログラムは、図示しないネットワークを介してコンピュータ901に送信され、ハードディスク914に記憶されてもよい。プログラムは実行の際にRAM913にロードされる。なお、プログラムは、CD−ROM921やFD922、またはネットワークから直接、ロードされてもよい。
プログラムは、コンピュータ901に、上記各実施の形態による情報処理装置1,サーバ2の機能を実行させるオペレーティングシステム(OS)、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム900がどのように動作するのかについては周知であり、詳細な説明は省略する。
また、本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。