以下、情報処理システム等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
図1は、本実施の形態における情報処理システムの概念図である。なお、本実施の形態に係るメッセージ配信システム等は、例えば、企業や組織の主幹業務のシステム等の一部を構成していると考えても良い。かかることは他の実施の形態においても同様である。ただし、情報処理システムがどのような用途や目的のシステムであっても良い。
情報処理システムは、二以上のサーバ装置10、中継サーバ装置20、および2以上の端末装置30を備えている。サーバ装置10、および端末装置30はそれぞれ一以上であれば数は問わない。
二以上のサーバ装置10と中継サーバ装置20、および中継サーバ装置20と二以上の端末装置30は、それぞれ、通信回線やネットワーク等を介して、情報の送受信が可能となるよう接続されている。ここでは、例として、なお、二以上のサーバ装置10と中継サーバ装置20がネットワーク50を介して接続され、中継サーバ装置20と二以上の端末装置30がネットワーク60を介して接続されている例について示している。なお、二以上のサーバ装置10と中継サーバ装置20と二以上の端末装置30とが、一の通信回路やネットワーク等を介して接続されていても良い。各装置は、例えば、インターネットや、無線や有線のLAN等のネットワークで接続されていてもよいし、ブルートゥース(登録商標)等の近距離無線通信により接続されていてもよい。ただし、各装置間の接続方法は問わない。また、情報の送受信の手段は、通信手段でも、放送手段等でも良い。
図2は、本実施の形態における情報処理システム1の、サーバ装置10、中継サーバ装置20の構成を示すブロック図である。
また、図3は、本実施の形態における情報処理システム1の、端末装置30の構成を示すブロック図である。
なお、図2および図3では、説明の便宜上、サーバ装置10および端末装置30が、それぞれ一つの場合を例に挙げて示しているが、実際には複数である。
サーバ装置10は、第一サーバ格納部1001、第一サーバ送信部1002、第二サーバ格納部1003、第二サーバ送信部1004、第三サーバ格納部1005、第三サーバ送信部1006を備えている。
中継サーバ装置20は、第一サーバ側受信部2001、中継端末プログラム蓄積部2002、中継端末プログラム格納部2003、第二サーバ側受信部2004、サーバプログラム蓄積部2005、サーバプログラム格納部2006、第三サーバ側受信部2007、データベース更新情報蓄積部2008、データベース更新情報格納部2009、端末側受信部2010、ユーザ情報格納部2011、許可判断部2012、バージョン管理情報格納部2013、不整合検出部2014、端末側送信部2015、中継プログラム処理部2016、データベース格納部2017、データベース更新部2018を備えている。
端末装置30は、端末プログラム格納部3001、端末プログラム処理部3002、ユーザ識別情報受付部3003、ユーザ識別情報送信部3004、端末送信部3005、端末受信部3006、受信情報処理部3007、および出力部3008を備えている。
サーバ装置10は、主として、中継サーバ装置20と端末装置30とをそれぞれ、所定の処理を行うためのサーバおよびクライアントとして機能させるためのサーバクライアント型のプログラムを、中継サーバ装置20と端末装置30とにそれぞれ提供する装置である。サーバ装置10は、例えばコンピュータ等で実現可能である。サーバクライアント型のプログラムとは、例えば、クライアントとなる装置から送信される要求に応じて、サーバとなる装置が所定の処理を行い、その処理結果をクライアント装置に返す処理を実現させるためのプログラムである。サーバ装置10が提供するプログラムにより実行される所定の処理は、どのような処理であっても良い。所定の処理は、例えば、企業等の主幹業務等に関する処理である。異なるサーバ装置10は、通常、異なる処理を実現するサーバクライアント型のプログラムを提供することが好ましいが、同様の処理を実現するサーバクライアント型のプログラムを提供してもよい。また、一のサーバ装置は、実現する処理の異なる複数のサーバクライアント型のソフトウェアを提供しても良い。各サーバ装置10が提供するソフトウェアの具体例を挙げると、財務ソフトウェアや、給与管理ソフトウェア、人事管理ソフトウェア等である。ただし、これらのソフトウェア以外のソフトウェアであっても良い。
第一サーバ格納部1001は、後述する端末装置30が実行可能なプログラムである一以上の端末プログラム、または当該端末プログラムに関するメッセージ(以下、端末メッセージと称す)の少なくとも一方と、当該端末プログラムを識別する情報である端末プログラム識別情報と、当該端末プログラムのバージョンを示す情報である端末バージョン情報とが対応付けて格納され得る。端末プログラムは、例えば、中継サーバ装置20と端末装置30との間で所定の処理を実現するためのサーバクライアント型プログラムのうちの、クライアント用のプログラムである。通常、一のサーバクライアント型プログラムを構成するクライアント用のプログラムは、サーバ用のプログラムと対をなしている。端末プログラムは、例えば、サーバ用のプログラムに対して情報を送信するための入力インターフェース等を端末装置30に提供するプログラムである。第一サーバ格納部1001には、一の端末プログラムについての、異なるバージョンの端末プログラム、または端末メッセージが格納されても良い。例えば、バージョンが異なる端末プログラムは、対応する端末プログラム識別情報が同じであり、かつ対応する端末バージョン情報が異なるプログラムとして個別に格納される。また、端末プログラムは、バージョンの古い端末プログラムを更新可能な形式のプログラムや、差分データ等のデータ、いわゆるアップデータとして第一サーバ格納部1001に格納されても良い。
端末メッセージは、具体的には、端末プログラムのバージョンに関するメッセージを含むメッセージである。例えば、当該メッセージが対応するバージョンの端末プログラムへの更新を促すためのメッセージや、更新時の注意等の、更新に関するコメント等のメッセージである。ただし、端末メッセージは端末プログラムに関するメッセージであれば、他のメッセージを含んでも良い。端末メッセージは、端末バージョン情報に対応付けられて第一サーバ格納部1001に格納されているメッセージと考えても良い。
端末プログラム識別情報は、端末プログラムを他の端末プログラムから識別可能な情報であればよい。端末プログラム識別情報は、例えば、端末プログラムの名前や、端末プログラムの実行ファイル名や、端末プログラムの製品名や略称等であってもよい。なお、端末プログラム識別情報として、当該端末プログラムを含むサーバクライアント型のプログラムの識別情報を用いるようにしても良い。
端末バージョン情報は、例えば、数値等により、端末プログラムのバージョンを示す情報である。ただし、「最新」、「バグフィックス版」、「β版」等の文字列等でバージョンを示す情報であっても良い。バージョン情報とは、例えば、同じプログラムについての版や改訂数を示す情報である。なお、いわゆるビルド番号や、試用版であることを示す情報や、更新が行われた日時の情報等も、バージョン情報と考えるようにしてもよい。
具体的には、「会計ソフトABC、Ver.2.2」という端末プログラムにおいては、「会計ソフトABC」が端末プログラム識別情報、「Ver.2.2」、あるいは「2.2」が端末バージョン情報である。
第一サーバ格納部1001に、端末プログラムまたは端末メッセージの少なくとも一方と、端末プログラム識別情報と、端末バージョン情報とが蓄積される手段やタイミング等は問わない。例えば、図示しない受付部等を介して受け付けたこれらのデータが、図示しない蓄積部により第一サーバ格納部1001に蓄積される。第一サーバ格納部1001は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
第一サーバ送信部1002は、端末プログラムまたはメッセージの少なくとも一方と、当該端末プログラムまたは端末メッセージに対応付けられた端末プログラム識別情報と端末バージョン情報とを第一サーバ格納部1001から読み出し、中継サーバ装置20に送信する。第一サーバ送信部1002が、どのようなトリガーによって、これらの送信対象となるデータを送信するかは問わない。例えば、予め指定されたタイミングで、これらの情報を送信しても良い。また、サーバ装置10が、図示しない受付部等を介して、ユーザ等から、上記のデータを送信する指示を受け付けた場合にデータを送信しても良い。また、中継サーバ装置20から送信される、上記の情報の送信を要求する情報を、図示しない受信部等が受信した場合、この要求に応じて送信しても良い。なお、第一サーバ送信部1002が送信する端末プログラムまたは端末メッセージ等は、中継サーバ装置20に対して未送信のものや、最新のものに限定するようにしても良い。第一サーバ送信部1002は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
第二サーバ格納部1003は、上述した一以上の端末プログラムに対応してサーバクライアント間の所定の処理を行うためのプログラムである一以上のサーバプログラムまたは当該サーバプログラムに関するメッセージ(以下、サーバメッセージと称す)の少なくとも一方と、当該サーバプログラムのバージョンを示す情報であるサーババージョン情報とが対応付けて格納され得る。サーバプログラムは、上述した端末プログラムと対をなすプログラムであって、中継サーバ装置20において実行可能されて、サーバクライアント間の所定の処理を実現するプログラムである。
サーバプログラムは、例えば、端末プログラムから送信される情報を処理する機能を端末装置30に提供するプログラムである。第二サーバ格納部1003には、一のサーバプログラムについての、異なるバージョンのサーバプログラム、またはサーバメッセージが格納されても良い。例えば、バージョンが異なる端末プログラムは、対応する端末プログラム識別情報が同じであり、かつ対応する端末バージョン情報が異なるプログラムとして個別に格納される。また、サーバプログラムは、バージョンの古いサーバプログラムを更新可能な形式のプログラムや、差分データ等のデータ、いわゆるアップデータとして第二サーバ格納部1003に格納されても良い。
サーバメッセージは、具体的には、サーバプログラムのバージョンに関するメッセージを含むメッセージである。例えば、ユーザが利用するサーバプログラムを、当該メッセージが対応するバージョンのサーバプログラムに更新することを促すためのメッセージや、更新時の注意等の、更新に関するコメント等のメッセージである。ただし、サーバメッセージはサーバプログラムに関するメッセージであれば、他のメッセージを含んでも良い。サーバメッセージは、サーババージョン情報に対応付けられて、第二サーバ格納部1003に格納されているメッセージと考えても良い。
第二サーバ格納部1003に格納され得るサーバメッセージやサーババージョン情報等については、端末プログラムではなくサーバプログラムに関するメッセージやバージョン情報である点を除けば、上述した端末メッセージや端末バージョン情報等と同様であるので、説明は省略する。
また、第二サーバ格納部1003には、一以上のサーバプログラムを識別するための情報であるサーバプログラム識別情報が、前記サーバプログラムまたはサーバメッセージと対応付けて格納されるようにしても良い。サーバプログラム識別情報は、サーバプログラムを他のサーバプログラムから識別可能な情報であればよい。サーバプログラム識別情報は、例えば、端末プログラムの名前や、端末プログラムの実行ファイル名や、端末プログラムの製品名や略称等であってもよい。なお、サーバプログラム識別情報と、当該サーバプログラム識別情報に対応する端末プログラムについての端末プログラム識別情報とを同じ識別情報としても良い。また、サーバプログラム識別情報として、当該サーバプログラムを含むサーバクライアント型のプログラムの識別情報を用いるようにしても良い。この実施の形態においては、サーバプログラム識別情報が格納され得る場合を例に挙げて説明する。第二サーバ格納部1003は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。なお、第一サーバ格納部1001または第二サーバ格納部1003には、対応するサーバプログラムと端末プログラムの、サーバプログラム識別情報と端末プログラム識別情報とを管理する管理情報が格納されるようにしても良い。また、この管理情報は、第一サーバ送信部1002や後述する第二サーバ送信部1004等から中継サーバ装置20に送信されるようにしても良い。なお、第一サーバ格納部1001と第二サーバ格納部1003とを一の格納部で実現するようにしても良い。
第二サーバ送信部1004は、サーバプログラムまたはサーバメッセージの少なくとも一方と、当該サーバプログラムまたはサーバメッセージに対応付けられたサーババージョン情報とを、第二サーバ格納部1003から読み出し、中継サーバ装置20に送信する。さらに、第二サーバ送信部1004は、サーバプログラムまたはサーバメッセージに対応付けられたサーバプログラム識別情報を中継サーバ装置20に送信しても良い。なお、第二サーバ送信部1004が送信するサーバプログラムまたはサーバメッセージ等は、中継サーバ装置20に対して未送信のものや、最新のものに限定するようにしても良い。第二サーバ送信部1004の構成等については、送信する対象がサーバプログラムに関するデータである点を除けば、上記第一サーバ送信部1002と同様であるので、ここでは詳細な説明は省略する。第二サーバ送信部1004は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。なお、第二サーバ送信部1004と第一サーバ送信部1002とを一の送信手段等により実現するようにしても良い。
第三サーバ格納部1005は、中継サーバ装置20が有するデータベースのバージョンを更新するための情報である一以上のデータベース更新情報と、更新の対象となるデータベースのデータベース識別情報と、更新後のデータベースのバージョン情報である更新後バージョン情報と、が対応付けて格納され得る。中継サーバ装置20が有するデータベースについては、後述する。データベースの更新とは、例えばデータ変換やスキーマの変換等である。データベース更新情報は、例えば、データベースの更新を行うプログラムやアップデータやデータベースの変換の際に利用される情報である。例えば、データベースを変換する実行ファイルや、変換後のデータベースの設定情報等である。当該データベース更新情報を用いてデータベースを変換することで、データベースのバージョンアップが行われる。データベース更新情報は、変換後のデータベースバージョン情報を有していても良い。更新後バージョン情報は、データベース更新情報で更新を行って得られるデータベースのバージョン情報である。更新後バージョン情報は、例えば、バージョンを示す数値や文字列を含む情報である。なお、バージョンの高いデータベースが常に下位互換性を有する場合等のように、データベースのバージョンを最も高いバージョンに変更して良い場合等には更新後バージョン情報を省略することもできる。通常、データベース変更情報は、現在のデータベースのバージョンを検出して、そのバージョンにあったバージョンの変換を行う。なお、データベース更新情報が、全てのバージョンのデータベースを更新可能なものでない場合等には、更新対象のデータベースのバージョンを指定するための対象バージョン情報を設けるようにしても良い。対象バージョン情報は、各データベース更新情報が、更新の対象となるデータベースのバージョンを示す情報である。当該対象バージョン情報が指定するバージョンのデータベースを、データベース更新情報を用いて更新することができる。データベース識別情報は、例えば、データベース名である。また、当該データベースを利用するサーバプログラムや端末プログラム等のサーバプログラム識別情報や端末プログラム識別情報等でもよい。各データベース更新情報は、具体的には、対応する対象データベース識別情報と一致する識別情報を有するデータベースであって、対応する更新後バージョン情報が示すバージョンとなるようにデータベースを更新する際に用いられる。第三サーバ格納部1005は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。なお、第一サーバ格納部1001と第二サーバ格納部1003と第三サーバ格納部1005とを、一の格納部により実現するようにしても良い。
第三サーバ送信部1006は、データベース更新情報と、当該データベース更新情報に対応するデータベース識別情報および更新後バージョン情報とを、第三サーバ格納部1005から読み出し、中継サーバ装置20に送信する。また、対象バージョン情報がある場合、当該対象バージョン情報も送信する。第三サーバ送信部1006は、送信するデータがデータベースの更新に関するデータである点を除けば、上述した第一サーバ送信部1002と同様であるので、詳細な説明は省略する。
中継サーバ装置20は、例えば、一以上のサーバプログラムを実行するサーバである。中継サーバ装置20は、例えば、端末プログラムを実行する二以上の端末装置30からそれぞれ適宜送信される要求に応じて、当該端末プログラムに対応したサーバプログラムを実行させて処理を行い、その処理結果を端末装置30に送信する。中継サーバ装置20は、ここでは、省略しているが、例えば、端末装置30から送信される要求や情報等を受信する受信部と、当該要求や情報について実行した処理の結果を端末装置30に送信する送信部等を備えている。また、中継サーバ装置20は、一以上のサーバ装置10に対して、端末プログラムや端末メッセージ、サーバプログラム、サーバメッセージ等の送信を要求する情報を送信する送信部(図示せず)等を備えていてもよい。この送信部から、例えば、未送信である端末プログラムや端末メッセージ、サーバプログラム、サーバメッセージ等の送信を要求する情報を、ユーザが中継サーバ装置20にログインした直後等の所定のタイミングで送信するようにしても良い。中継サーバ装置20は、例えばコンピュータ等で実現可能である。
第一サーバ側受信部2001は、サーバ装置10が送信する一以上の端末プログラムまたは端末メッセージの少なくとも一方と、各端末プログラムまたは端末メッセージに対応する端末プログラム識別情報と、端末バージョン情報とを受信する。第一サーバ側受信部2001は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
中継端末プログラム蓄積部2002は、第一サーバ側受信部2001が受信した一以上の端末プログラムまたは端末メッセージの少なくとも一方と、当該各端末プログラムまたは端末メッセージに対応する端末プログラム識別情報と、端末バージョン情報とを対応付けて、中継端末プログラム格納部2003に蓄積する。中継端末プログラム蓄積部2002は、通常、MPUやメモリ等から実現され得る。中継端末プログラム蓄積部2002の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
中継端末プログラム格納部2003は、一以上の端末プログラムと、当該端末プログラムの端末バージョン情報と、端末プログラム識別情報とが対応付けられて格納され得る。なお、中継端末プログラム格納部2003には、予め端末プログラム等が格納されていても良い。また、上述したように、中継端末プログラム蓄積部が2002や、図示しない受付部等が受け付けた端末用プログラム等が図示しない蓄積部等により蓄積されても良い。中継端末プログラム格納部2003は、不揮発性の記録媒体または揮発性の記録媒体で実現可能である。
第二サーバ側受信部2004は、サーバ装置10が送信する一以上のサーバプログラムまたはサーバメッセージの少なくとも一方と、当該サーバプログラムのサーババージョン情報とを受信する。また、サーバ装置10がサーバプログラムに対応したサーバプログラム識別情報を送信する場合、当該サーバプログラムを受信しても良い。第二サーバ側受信部2004は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
サーバプログラム蓄積部2005は、第二サーバ側受信部2004が受信したサーバプログラムまたは当該サーバプログラムに関するメッセージの少なくとも一方と、サーババージョン情報とを対応付けてサーバプログラム格納部2006に蓄積する。さらに第二サーバ側受信部2004が受信したサーバプログラム識別情報を対応付けて蓄積しても良い。サーバプログラム蓄積部2005は、通常、MPUやメモリ等から実現され得る。なお、サーバプログラムの蓄積は、受信したサーバプログラムをそのまま蓄積することであっても良いし、サーバプログラムが後述する中継プログラム処理部2016で実行可能な状態となるよう蓄積すること、即ちいわゆるインストール等であってもよい。インストールは、圧縮されているプログラムファイルを展開したり、プログラムの設定等を行うこと等である。サーバプログラム蓄積部2005の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
サーバプログラム格納部2006は、一以上のサーバプログラムまたは当該サーバプログラムに関するメッセージの少なくとも一方と、サーババージョン情報とが対応付けられて格納され得る。また、サーバプログラム識別情報が対応付けられて格納されても良い。ここでのサーバプログラムの格納は、実行可能な状態での格納であっても良いし、実行できない状態の格納であっても良い。サーバプログラム格納部2006は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
第三サーバ側受信部2007は、サーバ装置10から送信される一以上のデータベース更新情報と、当該データベース更新情報に対応するデータベース識別情報および更新後バージョン情報を受信する。また、対象バージョン情報も受信しても良い。第三サーバ側受信部2007は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
データベース更新情報蓄積部2008は、第三サーバ側受信部2007が受信した一以上のデータベース更新情報と、当該データベース更新情報に対応するデータベース識別情報および更新後バージョン情報とを対応付けてデータベース更新情報格納部2009に蓄積する。対象バージョン情報を受信した場合、当該対象バージョン情報も蓄積して良い。データベース更新情報蓄積部2008は、通常、MPUやメモリ等から実現され得る。データベース更新情報蓄積部2008の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
データベース更新情報格納部2009は、データベース更新情報と、当該データベース更新情報に対応するデータベース識別情報および更新後バージョン情報とが対応付けられて格納され得る。対象バージョン情報も格納されるようにしても良い。データベース更新情報格納部2009は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
端末側受信部2010は、端末装置30から送信されるユーザ識別情報と、端末プログラム識別情報と、端末バージョン情報とを受信する。ここで述べるユーザとは、個人と考えても良いし、グループや、企業等の組織や団体等と考えても良い。ユーザ識別情報は、例えば、後述する端末装置30の端末プログラムを利用可能なユーザを識別するための情報である。なお、ユーザ識別情報を、サーバプログラムを利用可能なユーザを識別可能な情報と考えても良い。ユーザ識別情報は、例えば、ユーザ名や、社員番号等である。また、グループ名や企業名等のユーザのグループを識別する情報と考えてもよい。ユーザ識別情報として、ユーザが利用する端末装置30の識別情報、例えば機器名や、IPアドレスやMACアドレス等を用いるようにしても良い。端末プログラムを利用するユーザのユーザ識別情報と、ログイン時等のユーザ認証に利用される識別情報とを同じものとしてもよい。ユーザ識別情報と、端末プログラムとの対応関係は一対一に限るものではなく、一対多や多対一で対応していても良い。例えば、一の端末プログラムに対して、当該端末プログラムを利用するためのユーザIDが複数対応付けられていてもよい。端末側受信部2010が受信する端末プログラム識別情報および端末バージョン情報は、具体的には、ユーザ識別情報が示すユーザが利用可能な一以上端末プログラムのそれぞれについての端末プログラム識別情報と端末バージョン情報とである。
なお、端末側受信部2010は、端末装置30から送信されるユーザ識別情報と、端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報とを受信するようにしても良い。この場合の端末プログラム識別情報、端末バージョン情報、およびサーババージョン情報は、具体的には、ユーザ識別情報が示すユーザが利用可能な一以上端末プログラムのそれぞれについての端末プログラム識別情報と、端末バージョン情報と、当該端末プログラムに対して対になるサーバプログラムのサーババージョン情報である。ここでの対になるとは、当該端末プログラムとともにサーバクライアントとして所定の処理を行うことを意味する。この場合、端末側受信部2010は、このサーバプログラムのサーバプログラム識別情報を受信するようにしても良い。
また、端末側受信部2010は、端末装置30から送信されるユーザ識別情報と、端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報と、データベースバージョン情報とを受信してもよい。この場合の、端末プログラム識別情報、端末バージョン情報、サーババージョン情報、およびデータベースバージョン情報は、ユーザ識別情報が示すユーザが利用可能な一以上の端末プログラムの端末プログラム識別情報および端末バージョン情報と、当該端末プログラムと対になるサーバプログラムのサーババージョン情報と、当該端末プログラムと対になるサーバプログラムが利用するデータベースのデータベースバージョン情報である。
データベースは、サーバプログラムが処理を実行する際に利用するデータベースである。データベースは、複数のユーザ(例えば個人やグループや組織等)で共用されていても良いし、サーバプログラムを利用するユーザ毎に設けられていてもよい。また、データベースバージョン情報は、データベースのバージョンを示す情報である。サーバプログラムが利用するデータベースを指定する情報は、サーバプログラム内に格納されていても良いし、中継サーバ装置内の図示しない格納部等に蓄積されていても良い。なお、サーバプログラムが利用するデータベースが複数存在する場合等のように、サーバプログラムが利用するデータベースが端末プログラム識別情報を用いて識別できない場合等においては、データベースに対してデータベースの識別情報であるデータベース識別情報を対応付けるようにし、端末側受信部2010は上記の情報に加えて、データベースバージョン情報に対応したデータベース識別情報を受信するようにしてもよい。かかることは、他の実施の形態等においても同様である。端末側受信部2010が受信したデータ等は図示しない記憶媒体等に蓄積される。
なお、端末側受信部2010は、上記の情報に加えて、端末装置30から送信されるパスワードの情報等を受信しても良い。端末側受信部2010は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
ユーザ情報格納部2011は、端末装置30が実行可能な端末プログラムを利用可能なユーザのユーザ識別情報と、当該ユーザ識別情報に対応するユーザが利用可能な端末プログラムの識別情報である端末プログラム識別情報とが対応付けられて格納され得る。また、ユーザ識別情報と対応付けて、パスワード等の情報が対応付けられて格納されるようにしても良い。ユーザ情報格納部2011にこれらの情報が蓄積される手段やタイミング等は問わない。例えば、予め格納されていても良い。また、サーバ装置10や端末装置30等からの指示に応じて、これらの情報が新規に蓄積されたり更新されても良い。また、ユーザ情報格納部2011には、端末プログラムやサーバプログラムについての更新の要否を指定する情報が対応付けて格納されているようにしてもよい。ユーザ情報格納部2011は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
許可判断部2012は、端末側受信部2010が受信したユーザ識別情報および端末プログラム識別情報と、ユーザ情報格納部2011に格納されているユーザ識別情報および端末プログラム識別情報とを用いて、端末側受信部2010が受信したユーザ識別情報が示すユーザによる端末側受信部2010が受信した端末プログラム識別情報が示す端末プログラムの利用が許可されているか否かを判断する。具体的には、端末側受信部2010が受信したユーザ識別情報と端末プログラム識別情報の組合せと一致するユーザ識別情報と端末プログラム識別情報の組合せをユーザ情報格納部2011において検索し、一致する組合せが検出された場合、受信したユーザ識別情報に対応するユーザによる、受信した端末プログラム識別情報が示す端末プログラムの利用が許可されていると判断し、検出されない場合、許可されていないと判断する。なお、結果的に許可されていることを示している判断結果が得られれば、必ずしも、許可されていることを直接示す判断結果が得られなくても、ここでは、許可されていることが判断されたと考える。なお、端末側受信部2010が受信する情報と、ユーザ情報格納部2011に格納されている情報に、パスワードの情報等が含まれる場合、さらに、このパスワードの情報も一致するか否かを判断するようにし、一致する場合、許可されていると判断するようにしても良い。なお、この許可判断部2012は、プログラムの利用に関する認証処理と考えても良い。許可判断部2012は、通常、MPUやメモリ等から実現され得る。許可判断部2012の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
バージョン管理情報格納部2013には、端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報とが対応付けられた情報であるバージョン管理情報が一以上格納され得る。バージョン管理情報は、具体的には、サーバクライアントとして所定の処理を行うサーバプログラムと端末プログラムとの組が、正常に動作するために必要なサーバプログラムと端末プログラムのバージョンの対応関係を示す情報である。一の端末プログラムに対応して動作するサーバプログラムは、通常予め決まっているため、ここでは、サーバプログラム識別情報は省略しているが、特に一の端末プログラムと動作するサーバプログラムが任意に指定できる場合等には、サーバプログラム識別情報を用いるようにしても良い。なお、バージョン管理情報における端末バージョン情報は、例えば、「バージョン10以上」等の、端末バージョン情報の範囲を示すものであっても良い。
また、サーバプログラムがデータベースを利用するプログラムである場合、バージョン管理情報は、端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報と、前記データベースバージョン情報とが対応付けられた情報としてもよい。このバージョン管理情報は、具体的には、サーバクライアントとして所定の処理を行うサーバプログラムと端末プログラムとデータベースの組が、正常に動作するために必要なサーバプログラムと端末プログラムとデータベースのバージョンの対応関係を示す情報である。なお、バージョン管理情報は、データベースバージョン情報に対応するデータベースを指定するためのデータベース識別情報を有していても良い。バージョン管理情報がどのようにバージョン管理情報格納部2013に格納されるかは問わない。例えば、サーバ装置10の第一サーバ格納部1001や第二サーバ格納部1003や第三サーバ格納部1005に格納されている端末プログラムやサーバプログラムやデータベース更新情報等に対応付けられて一以上のバージョン管理情報が格納されているようにし、端末プログラムやサーバプログラムやデータベース更新情報等が中継サーバ装置20に送信される際に、これらに対応するバージョン管理情報も送信されるようにし、端末プログラムやサーバプログラムやデータベース更新情報等ともに受信したバージョン管理情報を、第一サーバ側受信部2001や第二サーバ側受信部2004や第三サーバ側受信部2007等が、バージョン管理情報格納部2013に蓄積、例えば追記するようにしても良い。バージョン管理情報格納部2013は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
なお、どの端末プログラムとサーバプログラムが対応して動作するかについては、例えば、中継サーバ装置20の図示しない格納部等に、対応して動作するサーバプログラムと端末プログラムの、サーバプログラム識別情報と端末プログラム識別情報とを対応付けて管理する管理情報等を設けるようにして、当該情報を用いて管理しても良いし、上述したように、サーバプログラム識別情報と端末プログラム識別情報を一致する識別情報にするようにして、一致する識別情報を有するサーバプログラムと端末プログラムとがサーバクライアント型のプログラムとして動作するようにしても良い。データベースについても同様である。なお、ここでの一致は完全一致であっても部分一致であっても良い。
不整合検出部2014は、許可判断部2012により端末側受信部2010が受信したユーザ識別情報が示すユーザにより、端末側受信部2010が受信した端末プログラム識別情報に対応した端末プログラムの利用が許可されていると判断された場合に、端末側受信部2010が受信した端末プログラム識別情報と、端末バージョン情報とを用いて、端末装置30が有する端末プログラムに関する不整合を検出する。また、ユーザ識別情報が示すユーザにより端末プログラムの利用が許可されていると判断された場合に、端末側受信部2010が受信した端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報とを用いて、端末装置30が有する端末プログラムに関する不整合を検出してもよい。また、ユーザ識別情報が示すユーザにより端末プログラムの利用が許可されていると判断された場合に、端末側受信部2010が受信した端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報と、データベースバージョン情報を用いて、端末装置30が有する端末プログラムに関する不整合を検出してもよい。不整合とは、例えば、端末側受信部2010が受信した端末バージョン情報が示す端末プログラムのバージョンが、サーバ装置10が提供する同じ端末プログラムのバージョンと一致していないことである。また、例えば、サーババージョン情報が示すサーバプログラムのバージョンが、端末側受信部2010が受信したサーバ装置10が提供する同じサーバプログラムのバージョンと一致していないことである。あるいは、端末バージョン情報が示す端末プログラムのバージョンと、当該端末プログラムに対応するサーバプログラムのバージョンとの関係が、これらのプログラムが正常に動作することを示すバージョンの組合せに対して整合していないことであってもよい。端末プログラムに関する不整合とは端末プログラムに直接関係した不整合でなくてもよく、例えば端末プログラムに対応するサーバプログラムやデータベース等の不整合のように、端末プログラムに間接的に関係した不整合であってもよい。バージョンが一致しているか否かの判断は、例えば、バージョン情報が示す数値や文字列等が一致しているか否かにより判断可能である。
以下、不整合の検出処理の例について説明する。
検出処理例(1)
不整合検出部2014は、例えば、端末側受信部2010が受信した端末プログラム識別情報と端末バージョン情報との組み合わせと、中継端末プログラム格納部2003に格納されている第一サーバ側受信部2001が受信した端末プログラム識別情報とバージョン管理情報との不整合を検出する。具体的には、不整合検出部2014は、端末側受信部2010が受信した端末プログラム識別情報と一致する端末プログラム識別情報を中継端末プログラム格納部内から検出し、当該検出した端末プログラム識別情報と対応付けられたバージョン情報と、端末側受信部2010が受信したバージョン情報とを比較し、一致しているか否かを判断する。一致していない場合、不整合が存在することを検出する。
検出処理例(2)
不整合検出部2014は、例えば、端末側受信部2010が受信した端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報との組み合わせと、バージョン管理情報格納部2013に格納されているバージョン管理情報との不整合を検出する。具体的には、バージョン管理情報の中から、端末側受信部2010が受信した端末プログラム識別情報と一致する端末プログラム識別情報を有するバージョン管理情報を検索し、このバージョン管理情報の端末バージョン情報と、サーババージョン情報との組み合わせと、端末側受信部2010が受信した端末バージョン情報と、サーババージョン情報との組み合わせが一致しているか否かを判断する。一致していない場合、不整合が存在することを検出する。
検出処理例(3)
不整合検出部2014は、端末側受信部2010が受信した、端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報と、データベースバージョン情報との組み合わせと、バージョン管理情報格納部2013に格納されているバージョン管理情報との不整合を検出する。
具体的には、バージョン管理情報の中から、端末側受信部2010が受信した端末プログラム識別情報と一致する端末プログラム識別情報を有するバージョン管理情報を検索し、このバージョン管理情報の端末バージョン情報とサーババージョン情報とデータベース識別情報とデータベースバージョン情報との組み合わせと、端末側受信部2010が受信した端末バージョン情報とサーババージョン情報とデータベース識別情報とデータベースバージョン情報との組み合わせが一致しているか否かを判断する。一致していない場合、不整合が存在することを検出する。
なお、上記において、組合せが一致しているか否かの判断は、どのような順番で判断していっても良い。例えば、端末バージョン情報、サーババージョン情報、データベースバージョン情報の順に、順次一致しているか否かを判断していっても良いし、データベースバージョン情報、端末バージョン情報、サーババージョン情報の順に、順次一致しているか否かを判断していっても良い。
また、上記の検出処理例以外の検出処理を行うようにしても良い。例えば、サーババージョン情報とデータベースバージョン情報との組み合わせが一致するバージョン管理情報があるか否かを判断し、ない場合、不整合を検出しても良い。
また、端末バージョン情報とデータベースバージョン情報との組み合わせが一致するバージョン管理情報があるか否かを判断し、ない場合、不整合を検出しても良い。
なお、複数の端末プログラムやサーバプログラムが一のデータベースを共用している場合等においては、端末側受信部2010が受信した一の端末バージョン情報、サーババージョン情報、およびデータベースバージョン情報等の組について上記と同様の不整合検出の処理を行った結果、データベース更新部2018により一のデータベースが更新された場合、端末側受信部2010が受信した、あるいはこれ以降に受信する、他の端末バージョン情報、サーババージョン情報、及びデータベースバージョン情報等の組から、不整合検出部2014が、当該更新されたデータベースと対応付けられた組を検出し、当該検出した前記端末バージョン情報、サーババージョン情報、およびデータベースバージョン情報との組について、上記と同様のバージョン管理情報を用いて不整合の検出処理等を行うようにしてもよい。このときの不整合の検出処理においては、データベースバージョン情報が一致するバージョン管理情報に対して、端末バージョン情報およびサーババージョン情報が一致するかの判断を行うことが好ましい。これにより、一のサーバプログラムの更新等によって、データベースが更新されて、データベースのバージョンが変更された場合、データベースのバージョンにあわせて、サーババージョン情報や端末バージョン情報を更新することができる。また、データベースのバージョンが更新された場合に、端末装置30に、当該更新されたデータベースのデータベース識別情報に対応付けられた他の端末バージョン情報、サーババージョン情報、及びデータベースバージョン情報等の組を送信させるようにし、当該送信された情報を用いて不整合を判断する処理等を行うようにしても良い。
不整合検出部2014は、通常、MPUやメモリ等から実現され得る。不整合検出部2014の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
端末側送信部2015は、不整合検出部2014による不整合の検出結果に応じて、第一サーバ側受信部2001が受信した端末プログラムまたは端末メッセージの少なくとも一方を、端末側受信部2010が受信した、不整合検出の対象となった端末プログラム識別情報と対応付けられたユーザ識別情報の送信元となる端末装置30に送信する。検出結果に応じて送信するとは、検出結果に応じて送信しないことも含む概念である。
また、端末側送信部2015は、不整合検出部2014による不整合の検出結果に応じて、端末側受信部2010が受信した端末プログラム識別情報が示す端末プログラムと対応付けられたサーババージョン情報を変更する指示、または、端末側受信部2010が受信した端末プログラム識別情報が示す端末プログラムに対応するサーババージョン情報に対応付けられた、サーバプログラム格納部2006に格納されているサーバメッセージを、端末装置30に送信してもよい。
例えば、上記の検出処理例(1)の場合、端末側受信部2010が受信した端末バージョン情報と、中継端末プログラム格納部内から検出した端末バージョン情報とが一致していない場合、中継端末プログラム格納部2003内から検出したバージョン情報に対応する端末プログラムまたは端末メッセージの少なくとも一方を中継端末プログラム格納部2003から読み出し、端末装置30に送信する。端末プログラムまたは端末メッセージのいずれを送信するか、あるいは両方を送信するかについては、予め指定しておくようにする。
また、例えば、上記の検出処理例(2)の場合、端末側受信部2010が受信したサーババージョン情報が一致するバージョン管理情報はあるが、当該一致するバージョン管理情報の中に端末側受信部2010が受信した端末バージョン情報が一致するバージョン管理情報があるか否かを不整合検出部2014または端末側送信部2015が検出し、一致するものがない場合、サーババージョン情報が一致するバージョン管理情報のうちの、端末バージョン情報の値が最新のバージョンであることを示す値であるものを不整合検出部2014または端末側送信部2015が検出し、端末側送信部2015が、当該バージョン管理情報の端末バージョン情報に対応する端末プログラムまたは端末メッセージを、上記と同様に中継端末プログラム格納部2003から読み出し、端末装置30に送信するようにしてもよい。
また、逆に、端末側受信部2010が受信した端末バージョン情報が一致する端末管理情報はあるが、当該一致するバージョン管理情報の中に端末側受信部2010が受信したサーババージョン情報が一致するバージョン管理情報がない場合、端末バージョン情報が一致するバージョン管理情報のうちの、サーババージョン情報の値が最新のバージョンであることを示す値であるものを不整合検出部2014または端末側送信部2015が検出し、端末側送信部2015が、端末装置30に対して、端末プログラムに対して利用するサーバプログラムのバージョンを、当該検出したバージョン管理情報に含まれるサーババージョン情報が示すバージョンに変更する指示、または、当該サーババージョン情報に対応するサーバメッセージを端末装置30に送信するようにしてもよい。送信するサーバメッセージは、サーバプログラム蓄積部2005からサーババージョン情報や端末プログラム識別情報等を用いて取得する。サーババージョン情報に変更する指示は、端末側受信部2010が受信した端末プログラム識別情報と対応付けて送信することが好ましい。
また、例えば、上記の検出処理例(3)の場合、上記検出処理例(2)の場合のように、不整合の原因となっているバージョン情報、即ち一致していないバージョン情報が、端末バージョン情報、サーババージョン情報、データベースバージョン情報のいずれであるかを不整合検出部2014が判断する。そして、不整合の原因が端末バージョン情報である場合、上記と同様に、端末プログラムまたは端末メッセージの少なくとも一方を送信し、不整合の原因がサーババージョン情報である場合、上記と同様に、サーバプログラムのバージョンを変更する指示またはメッセージの少なくとも一方を送信するようにしても良い。
なお、ここで示した判断結果とそれに応じて行われる送信内容との対応関係は一例であって、上記以外の関係によって送信を行うようにしてもよい。端末側送信部2015は、無線または有線の通信手段等で実現され得る。また、端末側送信部2015が、上述したような判断処理を行う場合等には、判断処理を行うためのMPUやメモリ等を備えていても良い。
中継プログラム処理部2016は、サーバプログラム格納部2006に格納されたサーバプログラムを実行する。この実施の形態においては、特に、中継プログラム処理部2016は、端末側受信部2010が受信した端末プログラム識別情報に対応したサーバプログラムであって、端末側受信部2010が受信したサーババージョン情報が示すバージョンのサーバプログラムを用いて、端末側受信部2010が受信したデータベース識別情報が示すデータベースのうちの端末側受信部2010が受信したデータベースバージョン情報が示すバージョンのデータベースを適宜利用して処理を行う。中継プログラム処理部2016は、例えば、中継サーバ装置20の図示しない受信部等が受信した、端末プログラムから送信される処理を要求する情報に応じて、当該端末プログラムに対応したサーバプログラムにより所定の処理を実行する。そして、その処理結果を、中継サーバ装置20の図示しない送信部等から端末装置30に送信する。サーバプログラムを実行する際には、適宜、データベース格納部2017に格納されているデータベースを利用して良い。中継プログラム処理部2016は、通常、MPUやメモリ等から実現され得る。中継プログラム処理部2016の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
データベース格納部2017には、中継プログラム処理部2016がサーバプログラムを実行する際に利用するデータベースと、当該データベースの識別情報であるデータベース識別情報と、当該データベースのバージョン情報であるデータベースバージョン情報とが対応付けられて格納される。データベースは、通常、ユーザ識別情報に対応して設けられる。例えば、一のサーバプログラムを異なるユーザ識別情報を有する異なるユーザが利用する場合、サーバプログラムは、それぞれのユーザ識別情報に対応したデータベースを選択して利用する。データベースと、当該データベースを利用するサーバプログラムとは対応付けられている。例えば、データベース格納部2017とサーバプログラム格納部2006とは一の格納部を構成しており、サーバプログラムと当該サーバプログラムが利用するデータベースとが一のフォルダやディレクトリに格納されているようにすることで、対応関係を判断できるようにしてもよい。また、例えば、データベースにデータベース名等のデータベース識別情報が対応付けられているとすると、サーバプログラム内に、当該サーバプログラムが利用するデータベース識別情報が格納されているようにすることで、サーバプログラムが対応するデータベースを識別できるようにしても良い。また、サーバプログラム識別情報と、当該サーバプログラム識別情報が示すサーバプログラムが利用するデータベース識別情報とを対応付けて管理する管理表等が、中継サーバ装置20の図示しない格納部等に格納されているようにすることで、当該管理表を用いて、サーバプログラムが対応するデータベースを識別できるようにしても良い。なお、データベースとサーバプログラムとは必ずしも一対一で対応している必要はなく、一対多で対応していても、多対一で対応していても良い。データベースとサーバプログラムとが一対多で対応しているということは、一のデータベースを複数のサーバプログラムで利用していることを意味する。データベース格納部2017は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
データベース更新部2018は、不整合検出部2014による不整合の検出結果に応じて、端末側受信部2010が受信した端末プログラム識別情報に対応するデータベースを、データベース更新情報格納部2009に格納されている情報を用いて更新する。不整合の検出結果に応じて更新するとは、不整合の検出結果に応じて更新しないことも含む概念である。
データベース更新部2018は、例えば、バージョン管理情報との比較の結果、不整合の原因がデータベース情報であると判断された場合、端末バージョン情報およびサーババージョン情報が一致するバージョン管理情報のうちの、データベースバージョン情報の値が最新のバージョンであることを示す値であるものを不整合検出部2014またはデータベース更新部2018が検出し、端末側受信部2010が受信したユーザ識別情報に対応する端末プログラムに対応するサーバプログラムが利用するデータベースのバージョンが当該データベースのバージョンとなるように更新する。不整合の原因がデータベース情報であると判断された場合とは、具体的には端末側受信部2010が受信した端末バージョン情報やサーババージョン情報が一致するバージョン管理情報に含まれるデータベースバージョン情報が、端末側受信部2010が受信したデータベースバージョン情報と異なっていた場合等である。例えば、データベース更新部2018は、バージョンの更新対象となるデータベースのデータベース識別情報と同じデータベース識別情報と対応付けられており、かつ対応付けられている更新後バージョン情報が、検出されたバージョン管理情報が示すデータベースバージョン情報が示す値と一致するデータベース更新情報を、データベース更新情報格納部2009から検索等により読み出す。そして、読み出したデータベース更新情報を用いて、更新対象のデータベースを更新する。例えば、データベース更新情報が、実行ファイル等である場合、当該実行ファイル等を実行させることで、データベースのスキーマ等が変換される。なお、どのような不整合の検出結果に応じて、どのようにデータベースを更新するかについては、上述した処理に限るものでなく、適宜設定可能である。また、対象バージョン情報を用いる場合、現在のデータベースのバージョン情報と一致する対象バージョン情報と対応付けられたデータベース更新情報を更新に用いるようにしても良い。
データベースのバージョンの更新を行った場合、データベース更新部2018は、更新されたデータベースのデータベースバージョン情報を、データベース更新情報等から取得し、当該データベースバージョン情報で後述する端末プログラム格納部3001に格納されている同じデータベースについてのデータベースバージョン情報を更新する指示を、図示しない受付部等を介して端末装置30に送信することが好ましい。データベース更新部2018は、通常、MPUやメモリ等から実現され得る。データベース更新部2018の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
端末装置30は、例えば、一以上の端末プログラムを実行する。端末装置30は、コンピュータや、携帯情報端末や、ネットワーク等を介して情報にアクセス可能な携帯電話等で実現可能である。端末装置30は、例えば、図示しない入力デバイス等を介して入力されるユーザからの指示に応じて、中継サーバ装置20に、ユーザが指示する処理の要求等を送信する。そして、要求等に応じて中継サーバ装置20から送信される処理結果のデータを受信して処理する。処理結果の情報は、アプリケーション等も含む概念である。端末装置30は、ここでは省略しているが、要求等の情報を送信する送信部と、処理結果を受信する受信部とを備えている。送信される要求や情報等を受信する受信部と、当該要求や情報について実行した処理の結果を端末装置30に送信する送信部等を備えている。
端末プログラム格納部3001には、一以上の端末プログラムと、当該端末プログラムの端末バージョン情報と、当該端末プログラムの端末プログラム識別情報とが対応付けられて格納され得る。これらの対応付けられた情報は、例えば、一のユーザが利用可能な一以上の端末プログラムと、当該端末プログラムの端末バージョン情報と、端末プログラム識別情報である。
また、端末プログラム格納部3001には、一以上の端末プログラムと、当該端末プログラムの端末バージョン情報と、当該端末プログラムの端末プログラム識別情報と、当該プログラムに対応したサーバプログラムについてのサーババージョン情報とが対応付けられて格納されていてもよい。この場合、これらの対応付けられた情報は、例えば、一のユーザが利用可能な一以上の端末プログラムと、当該端末プログラムの端末バージョン情報と、端末プログラム識別情報と、当該端末プログラムに対応するサーバプログラムのサーババージョン情報である。
また、端末プログラム格納部3001には、一以上の端末プログラムと、当該端末プログラムの端末バージョン情報と、当該端末プログラムの端末プログラム識別情報と、当該プログラムに対応したサーバプログラムについてのサーババージョン情報と、当該サーバプログラムが利用するデータベースのデータベースバージョン情報とが対応付けられて格納されていてもよい。この場合、これらの対応付けられた情報は、例えば、一のユーザが利用可能な一以上の端末プログラムと、当該端末プログラムの端末バージョン情報と、端末プログラム識別情報と、当該端末プログラムに対応するサーバプログラムのサーババージョン情報と、当該サーバプログラムが利用するデータベースのバージョン情報である。なお、サーバプログラムが複数のデータベースを利用するものである場合、データベースバージョン情報がどのデータベースに関するものであるかが識別できるよう、データベース識別情報を上記の情報に対応付けて格納されるようにしても良い。
この実施の形態においては、例えば、一の端末プログラムを実行した場合、プログラム格納部3001に格納されている当該実行した端末プログラムの端末プログラム識別情報に対応したサーババージョン情報に対応するバージョンのサーバプログラムが、当該実行した端末プログラムの端末プログラム識別情報に対応したデータベース識別情報が示すデータベースのうちのデータベースバージョン情報が示すバージョンのデータベースを用いて中継サーバ装置20において実行される。例えば、一の端末プログラムから出力される要求に、これらのサーババージョン情報やデータベース識別情報が含まれるようにしても良いし、端末プログラムの起動時等に、端末プログラム識別情報と対応付けてサーババージョン情報やデータベース識別情報を中継サーバ装置20に送信するようにし、その後は、一の端末プログラムから出力される要求に、端末プログラム識別情報等を付加するようにして、端末プログラムからの要求に応じて、どのバージョンのサーバプログラムやデータベースを利用できるかを指定できるようにしてもよい。
なお、端末プログラム格納部3001に格納されている上記の端末プログラム等を含む情報には、各端末プログラムを利用可能なユーザのユーザ識別情報を対応付けておくようにしても良い。
端末プログラム格納部3001に上述したような情報が蓄積される手段やタイミング等は問わない。また、端末プログラムについては、上述したサーバプログラム格納部2006に格納されているサーバプログラムと同様に、端末装置30において実行可能となるように格納されているようにしても良い。端末プログラム格納部3001は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
端末プログラム処理部3002は、端末プログラム格納部3001に格納された端末プログラムを実行する。端末プログラム処理部3002は、例えば、図示しない入力デバイス等を介してユーザから入力される指示に応じて端末プログラムを実行する。端末プログラム処理部3002は、例えば、適宜、中継サーバ装置20の対応するサーバプログラムに対して、処理の実行を要求する情報を送信する。また、中継サーバ装置20の対応するサーバプログラムが送信する処理結果を受信し、適宜処理を行う。端末プログラム処理部3002は、通常、MPUやメモリ等から実現され得る。端末プログラム処理部3002の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
ユーザ識別情報受付部3003は、端末装置30が実行可能な端末プログラムを利用可能なユーザの識別情報であるユーザ識別情報を受け付ける。具体的には、端末プログラム格納部3001に格納された端末プログラムを利用可能なユーザのユーザ識別情報を受け付ける。例えば、ユーザが端末装置30の端末プログラム格納部3001に格納されている端末プログラムを利用する際に、ユーザID等として入力するユーザ識別情報を受け付ける。端末プログラムを利用するためのユーザ識別情報と、端末装置30を利用する際のログイン等に用いられるユーザID等の識別情報とが一致する場合、端末装置30を利用する際のログイン時等に入力される識別情報を、ユーザ識別情報を受け付けるようにしてもよい。また、ユーザ識別情報受付部3003は、ユーザ識別情報と対をなして入力されるパスワード情報等も受け付けても良い。ここで述べる受付とは、例えば、入力手段からの受付や、他の機器等から送信される入力信号の受信や、記録媒体等からの情報の読み出し等である。ユーザ識別情報の入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。ユーザ識別情報受付部3003が受け付けたユーザ識別情報は、例えば、図示しないメモリ等の記憶媒体に一時記憶される。ユーザ識別情報受付部3003は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
ユーザ識別情報送信部3004は、ユーザ識別情報受付部3003が受け付けたユーザ識別情報を中継サーバ装置20に送信する。ユーザ識別情報送信部3004がユーザ識別情報を送信するタイミングは問わないが、後述する端末送信部3005が情報を送信するタイミングの前後、または同時に送信することが好ましく、さらに、後述する端末送信巣部3005が送信する各端末プログラムに対応した端末プログラム識別情報や端末バージョン情報の組と対応付けて送信することが好ましい。中継サーバ装置20において、ユーザ識別情報を保持しなくて良くなるからである。ユーザ識別情報送信部3004は、無線または有線の通信手段等で実現され得る。
端末送信部3005は、端末プログラム格納部3001に格納されている各端末プログラムにそれぞれ対応付けられた端末プログラム識別情報および端末バージョン情報を読み出し、中継サーバ装置20に送信する。あるいは、各端末プログラムにそれぞれ対応付けられた端末プログラム識別情報、端末バージョン情報およびサーババージョン情報を送信してもよい。また、各端末プログラムにそれぞれ対応付けられた端末プログラム識別情報、端末バージョン情報、サーババージョン情報、およびデータベースバージョン情報を送信してもよい。端末送信部3005は、一の端末プログラムに対応する端末バージョン情報や端末プログラム識別情報等の情報を一の組として送信する。また、この各組に対して、さらに上述したユーザ識別情報をそれぞれ対応付けた組を送信してもよい。端末送信部3005が、どの端末プログラムに対応付けられた端末バージョン情報や端末プログラム識別情報等を、どのようなタイミングで送信するかは問わない。例えば、端末送信部3005は、ユーザ識別情報受付部3003がユーザ識別情報を受け付けた時点等の、予め指定されたタイミングに、端末プログラムに対応付けられた端末バージョン情報や端末プログラム識別情報等の送信を行う。この場合、例えば、ユーザ識別情報受付部3003が受け付けたユーザ識別情報と対応付けられた端末バージョン情報や端末プログラム識別情報等の組を端末プログラム格納部3001から読み出して送信してもよい。あるいは、全ての端末バージョン情報や端末プログラム識別情報等の組を送信してもよい。また、ユーザが一の端末プログラムを起動させた際に、当該端末プログラムに対応付けられた端末バージョン情報や端末プログラム識別情報等の送信を行うようにしてもよい。端末送信部3005は、端末プログラム格納部3001に格納されている各端末プログラムにそれぞれ対応付けられた端末バージョン情報と、端末プログラム識別情報と、サーババージョン情報とを、中継サーバ装置20に送信する。端末送信部3005は、無線または有線の通信手段等で実現され得る。
端末受信部3006は、中継サーバ装置20から送信される端末プログラムまたは端末バージョン情報に対応付けられたメッセージである端末メッセージの少なくとも一方を受信する。また、端末受信部3006は、中継サーバ装置から送信されるサーババージョン情報を変更する指示またはサーババージョン情報に対応付けられたメッセージであるサーバメッセージの少なくとも一方を受信する。また、中継サーバ装置20から送信された更新されたデータベースのデータベースバージョン情報を受信しても良い。端末受信部3006は、無線または有線の通信手段等で実現され得る。
受信情報処理部3007は、端末受信部3006が受信した端末プログラムまたは端末メッセージの少なくとも一方を処理する。また、受信情報処理部3007は、端末受信部3006が受信したサーババージョン情報を変更する指示に応じた処理またはサーバメッセージを出力する処理の少なくとも一方を行う。端末プログラムの処理とは、端末プログラム格納部3001に格納されている、端末受信部3006が受信した端末プログラムと同じ端末プログラムを、端末受信部3006が受信した端末プログラムで更新することである。また、更新に伴い、端末プログラムに対応して格納されている端末バージョン情報も適宜更新後のバージョンを示す端末バージョン情報に更新する。ここでの同じ端末プログラムとは、例えば、少なくとも端末プログラム識別情報が一致するプログラムであり、端末バージョン情報が一致しているか否かは問わない。端末プログラム格納部3001に格納されている端末メッセージの処理とは、具体的には端末メッセージの出力を意味する。サーババージョン情報の変更指示に応じた処理とは、具体的には、端末プログラム格納部3001に格納されているサーババージョン情報を、サーババージョン情報を変更する指示に含まれるサーババージョン情報を用いて更新することである。具体的には、サーババージョン情報の変更は、例えば、サーババージョン情報を変更する指示に対応付けられて受信された端末プログラム識別情報を用いて、当該端末プログラム識別情報と一致する端末プログラム識別情報を、端末プログラム格納部3001において検出し、検出された端末プログラム識別情報に対応付けられたサーババージョン情報を、上書きすることで行われる。端末メッセージやサーバメッセージの出力は、受信情報処理部3007が行ってもよいし、後述する出力部3008等を制御して出力させても良い。ここでは、出力部3008に出力させる場合について説明する。なお、受信情報処理部3007が出力を行う場合、後述する出力部3008と同様の構成を備えているようにすればよい。また、受信情報処理部3007は、端末受信部3006が受信したデータベースバージョン情報に応じて端末プログラム格納部3001に格納されているデータベースバージョン情報を、サーババージョン情報と同様に更新してもよい。受信情報処理部3007は、通常、MPUやメモリ等から実現され得る。受信情報処理部3007の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
出力部3008は、端末受信部3006が受信した端末メッセージやサーバメッセージを出力する。ここで述べる出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタへの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラム等への処理結果の引渡し等を含む概念である。出力部3008は、ディスプレイやプリンタ等の出力デバイスを含むと考えても含まないと考えても良い。出力部3008は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、サーバ装置10の動作の一例について図4のフローチャートを用いて説明する。
(ステップS401)第一サーバ送信部1002は、端末プログラムまたは端末メッセージの少なくとも一方を送信するか否かを判断する。例えば、サーバ装置10の図示しない受信部が中継サーバ装置20から、端末プログラムまたは端末メッセージの少なくとも一方を要求する指示を受け付けた場合に送信を決定する。あるいは予め指定された所定の日時等になった場合に送信を決定する。送信を行う場合、ステップS402に進み、送信を行わない場合、ステップS403に進む。
(ステップS402)第一サーバ送信部1002は、第一サーバ格納部1001に格納されている1以上の端末プログラムまたは端末メッセージの少なくとも一方と、当該端末プログラムと対応付けられた端末プログラム識別情報および端末バージョン情報を読み出し、中継サーバ装置20に送信する。なお、一旦送信した端末プログラム等の情報については、送信済であることを示す情報を与えておくようにし、次回以降の送信時には、送信済であることを示す情報が与えられている情報を読み出さないようにして、重複して送信されることを防ぐようにしても良い。そして、ステップS401に戻る。
(ステップS403)第二サーバ送信部1004は、サーバプログラムまたはサーバメッセージの少なくとも一方を送信するか否かを判断する。例えば、サーバ装置10の図示しない受信部が中継サーバ装置20から、サーバプログラムまたはサーバメッセージの少なくとも一方を要求する指示を受け付けた場合に送信を決定する。あるいは予め指定された所定の日時等になった場合に送信を決定する。送信を行う場合、ステップS404に進み、送信を行わない場合、ステップS405に進む。
(ステップS404)第二サーバ送信部1004は、第二サーバ格納部1003に格納されている1以上のサーバプログラムまたはサーバメッセージの少なくとも一方と、サーババージョン情報とを読み出し、中継サーバ装置20に送信する。なお、一旦送信したサーバプログラム等の情報については、送信済であることを示す情報を与えておくようにし、次回以降の送信時には、送信済であることを示す情報が与えられている情報を読み出さないようにして、重複して送信されることを防ぐようにしても良い。そして、ステップS401に戻る。
(ステップS405)第三サーバ送信部1006は、1以上のデータベース更新情報を送信するか否かを判断する。例えば、サーバ装置10の図示しない受信部が中継サーバ装置20から、データベース更新情報を要求する指示を受け付けた場合に送信を決定する。あるいは予め指定された所定の日時等になった場合に送信を決定する。送信を行う場合、ステップS404に進み、送信を行わない場合、ステップS405に進む。ここでは、対象バージョン情報の送信は省略する。
(ステップS406)第三サーバ送信部1006は、第三サーバ格納部1005に格納されている1以上のデータベース更新情報と、データベース識別情報と、更新後バージョン情報とを読み出し、中継サーバ装置20に送信する。なお、一旦送信したデータベース更新情報等の情報については、送信済であることを示す情報を与えておくようにし、次回以降の送信時には、送信済であることを示す情報が与えられている情報を読み出さないようにして、重複して送信されることを防ぐようにしても良い。そして、ステップS401に戻る。
なお、図4のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、中継サーバ装置20の動作の一例について図5のフローチャートを用いて説明する。なお、ここでは、説明を簡単にするために、端末側受信部2010が、一度に、1組のユーザ識別情報と、端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報と、データベースバージョン情報とを受信する場合に付いて説明する。
(ステップS501)端末側受信部2010は、ユーザ識別情報と、端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報と、データベースバージョン情報を受信したか否かを判断する。これらに加えて、データベース識別情報も受信したか否かを判断するようにしても良い。なお、受信した場合、ステップS502に進み、受信していない場合、ステップS503に進む。
(ステップS502)許可判断部2012は、ステップS501において受信したユーザ識別情報と、端末プログラム識別情報とを用いて、ユーザ識別情報が示すユーザによる、端末プログラム識別情報が示すプログラムの利用が許可されているか否かを判断する。例えば、ユーザ情報格納部2011に格納されている互いに対応付けられたユーザ識別情報と端末プログラム識別情報との組合せと、ステップS501において受信したユーザ識別情報と、端末プログラム識別情報との組合せとが一致するか否かを判断する。一致していない場合、利用が許可されていないこととなり、ステップS501に戻り、一致している場合、利用が許可されていることとなり、ステップS509に進む。
(ステップS503)第一サーバ側受信部2001は、1以上の端末プログラムまたは端末メッセージの少なくとも一方と、当該端末プログラムと対応付けられた端末プログラム識別情報および端末バージョン情報を受信したか否かを判断する。受信した場合、ステップS504に進み、受信していない場合、ステップS505に進む。
(ステップS504)中継端末プログラム蓄積部2002は、ステップS503において受信した1以上の端末プログラムまたは端末メッセージの少なくとも一方と、当該端末プログラムと対応付けられた端末プログラム識別情報および端末バージョン情報を対応付けて、中継端末プログラム格納部2003に蓄積する。そして、ステップS501に戻る。
(ステップS505)第二サーバ側受信部2004は、1以上のサーバプログラムまたはサーバメッセージの少なくとも一方と、サーババージョン情報とを受信したか否かを判断する。受信した場合、ステップS506に進み、受信していない場合、ステップS507に進む。
(ステップS506)サーバプログラム蓄積部2005は、ステップS505において受信した1以上のサーバプログラムまたはサーバメッセージの少なくとも一方と、サーババージョン情報とを、サーバプログラム格納部2006に蓄積する。
(ステップS507)第三サーバ側受信部2007は、1以上のプログラム更新情報と、データベース識別情報と、更新後バージョン情報を受信したか否かを判断する。受信した場合、ステップS508に進み、受信していない場合、ステップS501に戻る。
(ステップS508)データベース更新情報蓄積部2008は、ステップS507において受信した1以上のプログラム更新情報と、データベース識別情報と、更新後バージョン情報とをデータベース更新情報格納部2009に蓄積する。そして、ステップS501に戻る。
(ステップS509)中継サーバ装置20は、ステップS501において受信した端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報と、データベースバージョン情報とを用いて、端末プログラムに関する不整合を検出する。なお、この不整合の検出処理については後述する。そして、ステップS501に戻る。
なお、図5のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、図5のステップS509において示した中継サーバ装置20の不整合を判断する処理について、図6のフローチャートを用いて説明する。
(ステップS601)不整合検出部2014は、ステップS501において受信した端末プログラム識別情報と一致する端末プログラム識別情報を有するバージョン管理情報を、検索等によりバージョン管理情報格納部2013等から検出する。
(ステップS602)不整合検出部2014は、ステップS601において検出したバージョン管理情報の中に、ステップS501において受信した端末バージョン情報と一致する端末バージョン情報を有するバージョン管理情報があるか否かを判断する。ある場合、該当するバージョン管理情報を検出し、ステップS603に進み、ない場合、ステップS611に進む。
(ステップS603)不整合検出部2014は、直前に検出したバージョン管理情報の中に、ステップS601において検出したサーババージョン情報と一致するサーババージョン情報を有するバージョン管理情報があるか否かを判断する。ある場合、該当するバージョン管理情報を検出し、ステップS604に進み、ない場合、ステップS607に進む。
(ステップS604)不整合検出部2014は、直前に検出したバージョン管理情報のデータベースバージョン情報が、ステップS501において受信したデータベースバージョン情報と一致するか否かを判断する。一致する場合、上位の処理に戻る。一致しない場合、ステップS605に進む。
(ステップS605)データベース更新部2018は、直前に検出したバージョン管理情報の中から、データベースバージョン情報が示すバージョンが最も高いもの、例えば、バージョンを示す数値の最も高いものを検出する。
(ステップS606)データベース更新部2018は、データベース更新情報格納部2009から、ステップS605において検出したバージョン管理情報のデータベースバージョン情報が示すバージョンを示している更新後バージョン情報に対応付けられ、かつ、検出されたバージョン管理情報のデータベース識別情報と一致するデータベース識別情報と対応付けられたデータベース更新情報を取得する。そして、当該データベース更新情報を用いて、ステップS501において受信したユーザ識別情報および端末プログラム識別情報に対応するサーバプログラムに対応するデータベースの更新、即ちバージョンアップを行う。バージョンアップ後のデータベースバージョン情報は、ステップS501において受信した端末プログラム識別情報と対応付けて端末装置30に送信する。そして、上位の処理に戻る。
(ステップS607)不整合検出部2014は、ステップS603において検出したバージョン管理情報の中から、サーババージョン情報が示すバージョンの値が最も高いものを検出する。
(ステップS608)不整合検出部2014は、ステップS607で検出したサーババージョン情報が示すバージョンが、ステップS501において受信したサーババージョン情報が示すバージョンよりも高いか否かを判断する。高い場合、ステップS609に進み、高くない場合、ステップS617に進む。
(ステップS609)端末側送信部2015は、直前に検出したバージョン管理情報のサーババージョン情報で、端末装置30のサーババージョン情報を変更する指示を、ステップS501において受信したユーザ識別情報の送信元となる端末装置30に、ステップS501において受信した端末プログラム識別情報と対応付けて送信する。後述する端末プログラム格納部3001に格納されているサーババージョン情報を更新する際には、当該端末プログラム識別情報と一致する端末プログラムと対応付けられたサーババージョン情報が更新される。
(ステップS610)端末側送信部2015は、直前に検出したバージョン管理情報のデータベースバージョン情報と、ステップS501において受信したデータベースバージョン情報とが一致するか否かを判断する。一致する場合、上位の処理に戻り、一致しない場合、ステップS611に進む。
(ステップS611)データベース更新部2018は、データベース更新情報格納部2009から、直前に検出されたバージョン管理情報のデータベースバージョン情報が示すバージョンを示している更新後バージョン情報に対応付けられ、かつ、直前に検出されたバージョン管理情報のデータベース識別情報と一致するデータベース識別情報と対応付けられたデータベース更新情報を取得する。そして、当該データベース更新情報を用いて、ステップS501において受信したユーザ識別情報および端末プログラム識別情報に対応するサーバプログラムに対応するデータベースの更新、即ちバージョンアップを行う。バージョンアップ後のデータベースバージョン情報は、ステップS501において受信した端末プログラム識別情報と対応付けて端末装置30に送信する。そして、上位の処理に戻る。
(ステップS612)不整合検出部2014は、ステップS601において検出したバージョン管理情報の中に、ステップS501において受信したサーババージョン情報と一致するサーババージョン情報を有するバージョン管理情報があるか否かを判断する。ある場合、該当するバージョン管理情報を検出し、ステップS613に進み、ない場合、ステップS615に進む。
(ステップS613)不整合検出部2014は、ステップS612において検出したバージョン管理情報の中から、端末バージョン情報が示すバージョンの値が最も高いものを検出する。
(ステップS614)端末側送信部2015は、ステップS613において検出したバージョン管理情報の端末プログラム識別情報および端末バージョン情報に対応付けられた端末プログラムを中継端末プログラム格納部2003から読み出し、ステップS501において受信したユーザ識別情報の送信元となる端末装置30に、ステップS501において受信した端末プログラム識別情報と対応付けて送信する。また、ステップS613において検出したバージョン管理情報の端末バージョン情報も、端末プログラムに対応付けて送信しても良い。そして、ステップS610に戻る。
(ステップS615)不整合検出部2014は、ステップS601において検出したバージョン管理情報の中から、端末バージョン情報が示すバージョンの値が最も高いものを検出する。
(ステップS616)端末側送信部2015は、ステップS615において検出したバージョン管理情報の端末プログラム識別情報および端末バージョン情報に対応付けられた端末プログラムを中継端末プログラム格納部2003から読み出し、ステップS501において受信したユーザ識別情報の送信元となる端末装置30に、ステップS501において受信した端末プログラム識別情報と対応付けて送信する。また、ステップS615において検出したバージョン管理情報の端末バージョン情報も、端末プログラムに対応付けて送信しても良い。そして、ステップS609に戻る。
(ステップS617)不整合検出部2014は、ステップS601において検出したバージョン管理情報の中から、ステップS501において受信したサーババージョン情報と一致するサーババージョン情報を有するバージョン管理情報を検出する。そして、ステップS613に進む。
なお、図6のフローチャートにおいて、ステップS606やステップS609やステップS611やステップS614やステップS616等において、端末プログラムの送信や、サーババージョン情報の送信や、データベースの更新等を行わずに、端末プログラムや、サーバプログラムやデータベース更新情報等に対応付けられたメッセージを端末装置30に送信する場合、メッセージを送信して、上位の処理に戻るようにしても良い。この場合のメッセージは、例えば、更新等を行うことを促すメッセージである。このような場合、当該メッセージに対応して端末装置30から送信される指示等に応じて、中継サーバ装置20が、端末プログラムの送信や、サーババージョン情報の送信や、データベースの更新等を行うようにしても良い。
また、ステップS606やステップS609やステップS611やステップS614やステップS616等において、端末プログラムの送信や、サーババージョン情報の送信や、データベースの更新等に加えて、端末プログラムや、サーバプログラムやデータベース更新情報等に対応付けられたメッセージを端末装置30に送信する処理を行い、次の処理ステップに進むようにしても良い。この場合のメッセージは、例えば、更新等を行ったことを通知するメッセージである。
また、図6のフローチャートにおいては、中継プログラム処理部2016が実行する、端末装置30からの要求等に応じた処理についての説明は省略する。
なお、図6のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
なお、図6のフローチャートにおいて、ステップS605と、ステップS606との間に、ステップS605において検出したデータベースバージョン情報よりも、ステップS501において受信したデータベースバージョン情報が大きいか否かを判断する処理を行うようにしてもよい。また、ステップS610と、ステップS611との間に、ステップS610において判断に用いられたバージョン管理情報のデータベースバージョン情報よりも、ステップS501において受信したデータベースバージョン情報が大きいか否かを判断する処理を行うようにしてもよい。これらの判断処理は、ステップS501において受信したデータベース識別情報に対応するデータベースバージョン情報について行われる。そして、大きくない場合は、そのまま、ステップS606やステップS611に進むようにし、大きい場合は、ステップS601において検出したバージョン管理情報の中から、ステップS501において受信したデータベース識別情報およびデータベースバージョン情報と同じデータベース識別情報およびデータベースバージョン情報を含むバージョン管理情報を検出する処理を行い、当該検出したバージョン管理情報について、ステップS602以降と同様の処理を行うようにしてもよい。ただし、ここで行われるステップS602以降の処理においては、ステップS602からステップS606までの処理およびステップS610からステップS611までの処理は省略して、上位の処理に戻るようにする。
このようにすることで、一のデータベースを、二以上の端末プログラムやサーバプログラムで共用している場合において、一の端末プログラムやサーバプログラムのバージョンの更新に伴って、データベースのバージョンが更新された場合、当該データベースのバージョンの更新を検出して、当該更新されたデータベースが利用可能となるように、他の端末プログラムやサーバプログラムのバージョンの更新を行うことが可能となる。
また、上述した不整合検出処理等において、端末バージョン情報についての処理と、サーババージョン情報についての処理と、データベースバージョン情報についての処理については、処理の対象となるバージョン情報を適宜入れ替えても良い。例えばステップS602の端末バージョン情報が一致するバージョン管理情報があるか否かの判断の代わりに、サーババージョン情報が一致するバージョン管理情報があるか否かの判断や、データベースバージョン情報が一致するバージョン管理情報があるか否かの判断を行うようにしても良い。また、この入れ替えは適宜行うようにしても良い。
次に、端末装置30の動作の一例について図7のフローチャートを用いて説明する。
(ステップS701)ユーザ識別情報受付部3003は、ユーザ識別情報を受信したか否かを判断する。受信した場合、ステップS702に進み、受信していない場合、ステップS701に戻る。ユーザ識別情報は、例えば、端末プログラムの起動の際に画面等に表示される入力インターフェース等を介して入力される。ユーザ識別情報は、例えば、端末装置30の認証処理等に利用されるものであってもよい。
(ステップS702)ユーザ識別情報受付部3003は、ステップS701において受信したユーザ識別情報を、図示しないメモリ等の格納部に一時記憶する。
(ステップS703)端末送信部3005は、ユーザ識別情報と、端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報と、データベースバージョン情報を送信するか否かを判断する。送信する場合、ステップS704に進み、送信しない場合、ステップS706に進む。例えば、端末送信部3005は、端末プログラム格納部3001に格納されている端末プログラムの一つを起動させた場合に、当該端末プログラムに対応付けて格納されている端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報と、データベースバージョン情報と、ユーザ識別情報とを送信することを決定する。
(ステップS704)ユーザ識別情報送信部3004は、ステップS701で受信したユーザ識別情報を中継サーバ装置20に送信する。
(ステップS705)端末送信部3005は、端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報と、データベースバージョン情報を端末プログラム格納部3001から読み出し、ステップS704において送信したユーザ識別情報と対応付けて、中継サーバ装置20に送信する。なお、端末送信部3005は、一部の端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報と、データベースバージョン情報だけを送信しても良く、例えば、起動した端末プログラムに対応した端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報と、データベースバージョン情報だけを送信しても良い。なお、ユーザ識別情報送信部3004と端末送信部3005を一の端末送信部により構成し、当該端末送信部が、ユーザ識別情報と、端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報と、データベースバージョン情報とを中継サーバ装置20に送信するようにしてもよい。そして、ステップS703に戻る。
(ステップS706)端末受信部3006は、端末プログラムと端末プログラム識別情報とを受信したか否かを判断する。受信した場合、ステップS707に進み、受信していない場合、ステップS708に進む。なお、このステップにおいて、端末バージョン情報を受信しても良い。
(ステップS707)端末装置30の受信情報処理部3007等は、ステップS706において受信した端末プログラム識別情報と同じ端末プログラム識別情報と対応付けられて端末プログラム格納部3001に格納されている端末プログラムを、ステップS706において受信した端末プログラムで更新する。また、ステップS706において受信した端末バージョン情報で、ステップS706において受信した端末プログラム識別情報と同じ端末プログラム識別情報と対応付けられた端末バージョン情報を更新してもよい。そして、ステップS703に戻る。
(ステップS708)端末受信部3006は、サーババージョン情報と端末プログラム識別情報とを受信したか否かを判断する。受信した場合、ステップS709に進み、受信していない場合、ステップS710に進む。
(ステップS709)端末装置30の受信情報処理部3007等は、ステップS708において受信した端末プログラム識別情報と同じ端末プログラム識別情報と対応付けられて端末プログラム格納部3001に格納されているサーババージョン情報を、ステップS708において受信したサーババージョン情報で更新する。そして、ステップS703に戻る。
(ステップS710)端末受信部3006は、データベースバージョン情報と端末プログラム識別情報とを受信したか否かを判断する。受信した場合、ステップS711に進み、受信していない場合、ステップS712に進む。
(ステップS711)端末装置30の受信情報処理部3007等は、ステップS710において受信した端末プログラム識別情報と同じ端末プログラム識別情報と対応付けられて端末プログラム格納部3001に格納されているデータベースバージョン情報を、ステップS708において受信したデータベースバージョン情報で更新する。そして、ステップS703に戻る。
なお、図7のフローチャートにおいては、端末プログラム処理部3002が端末プログラム等を実行する処理についての説明は省略する。
また、図7のフローチャートにおいて、ステップS706やステップS708やステップS710の代わりに、あるいは、これらのステップに加えて、端末プログラムに対応付けられたメッセージや、サーバプログラムに対応付けられたメッセージや、データベースバージョン情報に対応付けられたメッセージを受信したか否かを判断するようにし、受信した場合、受信情報処理部3007が、出力部3008に受信したこれらのメッセージを出力、例えばモニタ等に表示させるようにしてもよい。
なお、図7のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
以下、本実施の形態における情報処理システム1の具体的な動作について説明する。情報処理システムの概念図は図1である。なお、ここでは、端末装置30へのログインの際に入力される識別情報を、そのまま、端末プログラムを利用可能なユーザのユーザ識別情報として用いる場合を例に挙げて説明するが、必ずしも、ログイン時の識別情報を端末プログラムについてのユーザ識別情報として用いる必要はない。例えば、端末装置30、端末プログラムを立ち上げる指示を受けた場合等に、ユーザ識別情報を入力させるための入力インターフェースを画面等に表示させ、当該入力インターフェースを介してユーザ識別情報を受け付けるようにしても良い。かかることは他の具体例においても同様である。
まず、ユーザが一の端末装置30にログインのためにユーザ識別情報を入力すると、ユーザ識別情報受付部3003が、入力されたユーザ識別情報を受け付ける。入力されたユーザ識別情報がここでは、「yamamoto」であったとする。受け付けたユーザ識別情報は図示しない格納部等に一時記憶される。また、端末装置30は、ログイン等の認証処理を行う。
図8は、端末プログラム格納部3001に格納されている端末プログラム管理表を示す図である。端末プログラム管理表は、「ID」と、「端末プログラム」と、「端末プログラム識別情報」と、「端末バージョン情報」と、「サーババージョン情報」と、「データベース識別情報」と、「データベースバージョン情報」という項目を有している。「端末プログラム」は、例えば、実行ファイル等である。「端末プログラム識別情報」は、端末プログラム識別情報である。ここでは、端末プログラムとサーバプログラムとは同じ識別情報と対応付けられているものとする。すなわち、端末プログラム識別情報とサーバプログラムの識別情報とが同じであるとする。つまり、この識別情報をサーバクライアント型のプログラムの識別情報と考えても良い。「ID」は、レコードを管理するための識別情報である。「端末バージョン情報」は、端末プログラムのバージョン情報である。「サーババージョン情報」は、サーバプログラムのバージョン情報である。「データベース識別情報」は、データベースの識別情報である。「データベースバージョン情報」は、データベースバージョン情報である。なお、ここでは、説明を簡単にするために、一のサーバプログラムが一のデータベースを利用する場合を例に挙げて説明する。ただし、複数のデータベースを利用してもよく、この場合、端末プログラム管理表の一のレコードにおいて、複数の「データベース識別情報」と、「データベースバージョン情報」とを管理するようにすればよい。なお、「端末バージョン情報」、「サーババージョン情報」、および「データベースバージョン情報」は、ここでは、バージョンが高い、すなわちバージョンが新しいほど、値が高い数値であるとする。
次に、ユーザが、端末プログラム格納部3001に格納されている端末プログラムの一つを起動させる指示を端末装置30に図示しない入力インターフェース等を介して与えたとすると、ユーザ識別情報送信部3004は、一時記憶されているユーザ識別情報を中継サーバ装置20に、ネットワーク60を介して送信する。また、端末送信部3005は、起動させる指示の対象となる端末プログラムに対応付けられた、端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報と、データベース識別情報と、データベースバージョン情報を読み出し、ユーザ識別情報送信部3004が送信したユーザ識別情報と対応付けて、中継サーバ装置20に、ネットワーク60を介して送信する。
例えば、「給与管理ソフト」という端末プログラム識別情報と対応付けられた端末プログラムを起動する指示が与えられたとすると、ユーザ識別情報である「yamamoto」と、端末プログラム識別情報である「給与管理ソフト」と、端末バージョン情報である「2.1」と、サーババージョン情報である「3.0」と、データベース識別情報である「社員DB」と、データベースバージョン情報である「2.0」とが、対応付けられて中継サーバ装置20に送信される。
中継サーバ装置20の端末側受信部2010は、端末装置30から送信されるユーザ識別情報「yamamoto」と、端末プログラム識別情報「給与管理ソフト」と、端末バージョン情報「2.1」と、サーババージョン情報「3.0」と、データベース識別情報「社員DB」と、データベースバージョン情報「2.0」とを受信する。
図9は、ユーザ情報格納部2011に格納されているユーザ情報を管理するためのユーザ情報管理表である。ユーザ情報管理表は、「ID」と、「ユーザ識別情報」と、「端末プログラム識別情報」とを備えている。「ID」は、レコードを管理するための識別情報である。「ユーザ識別情報」は、ユーザ識別情報である。「端末プログラム識別情報」は、ユーザ識別情報に対応したユーザが利用可能な端末プログラム識別情報である。「利用可能な」とは、例えば、利用するライセンスを受けているということである。
許可判断部2012は、端末側受信部2010が受信したユーザ識別情報「yamamoto」と端末プログラム識別情報「給与管理ソフト」との組み合わせと一致する「ユーザ識別情報」と「端末プログラム識別情報」との組み合わせを含むレコードが、ユーザ情報格納部2011に格納されているか否かを判断する。格納されていない場合、ユーザ識別情報「yamamoto」に対応するユーザによる、「給与管理ソフト」という端末プログラムの利用が許可されていないこととなり、端末プログラム識別情報「給与管理ソフト」に対応したサーバプログラムの利用が拒否される。
ここでは、図9に示したユーザ情報管理表の「ID」が「1」であるレコードの「ユーザ識別情報」と「端末プログラム識別情報」との組み合わせが、ユーザ識別情報「yamamoto」と端末プログラム識別情報「給与管理ソフト」との組み合わせと一致すると判断される。これにより、ユーザ識別情報「yamamoto」に対応するユーザによる、「給与管理ソフト」という端末プログラムの利用が許可されていることとなる。
許可判断部2012が許可されていると判断したため、中継サーバ装置20は、端末プログラムや、サーバプログラムや、データベース更新情報等の送信を要求する情報を、図示しない送信部等から各サーバ装置10に送信する。
図10は、第一サーバ格納部1001に格納されている端末プログラム等の情報を管理する第一管理情報である。第一管理情報は、「ID」、「端末プログラム」、「端末メッセージ」、「端末プログラム識別情報」および「端末バージョン情報」という属性を有している。「ID」は、レコードを管理するための識別情報である。「端末プログラム」、「端末プログラム識別情報」、「端末バージョン情報」については、図8に示した端末プログラム管理表のものと同様である。「端末メッセージ」は、端末プログラムが更新された場合に出力されるメッセージの情報である。
図11は、第二サーバ格納部1003に格納されているサーバプログラム等の情報を管理する第二管理情報である。第二管理情報は、「ID」、「サーバプログラム」、「サーバメッセージ」、「サーバプログラム識別情報」、および「サーババージョン情報」という属性を有している。「ID」は、レコードを管理するための識別情報である。「サーバプログラム」は、サーバプログラムであり、例えば、中継サーバ装置20で実行可能なプログラムである。「サーバプログラム識別情報」は、サーバプログラムの識別情報であり、ここではサーバプログラムが対応する端末プログラム識別情報と同じ識別情報であるとする。「サーバメッセージ」は、端末プログラムで利用するサーバプログラムのバージョンが変更された場合に出力されるメッセージの情報である。「サーババージョン情報」は、サーババージョン情報である。
図12は、第三サーバ格納部1005に格納されているデータベース更新情報等の情報を管理する第三管理情報である。第三管理情報は、「ID」、「データベース更新情報」と、「データベース識別情報」と、「更新後バージョン情報」という属性を有している。「ID」は、レコードを管理するための識別情報である。「データベース識別情報」は、更新対象のデータベースの識別情報である。「データベース更新情報」は、データベース更新情報であり、ここでは、データベースの更新する際に実行される実行ファイルである。「更新後バージョン情報」は、更新後バージョン情報であり、ここでは、更新後のバージョンの数字、あるいは数字の範囲を示す情報である。
各サーバ装置10の図示しない受付部が、端末プログラム等の送信を要求する情報を受け付けると、各サーバ装置10の第一サーバ送信部1002は、図10に示すような第一管理情報で管理されている端末プログラムおよび端末メッセージと、当該端末プログラムと対応付けられた端末プログラム識別情報および端末バージョン情報を第一サーバ格納部1001から読み出し、中継サーバ装置20に送信する。なお、既に送信済みの情報については送信しないようにしても良い。
また、各サーバ装置10の図示しない受付部が、サーバプログラム等の送信を要求する情報を受け付けると、各サーバ装置10の第二サーバ送信部1004は、図11に示すような第二管理情報で管理されているサーバプログラムおよびサーバメッセージと、サーババージョン情報とを、第二サーバ格納部1003から読み出し、中継サーバ装置20に送信する。なお、一旦送信したサーバプログラム等の情報については、送信しないようにしても良い。
また、各サーバ装置10の図示しない受付部が、データベース更新情報等の送信を要求する情報を受け付けると、各サーバ装置10の第三サーバ送信部1006は、図12に示すような第三管理情報で管理されているデータベース更新情報と、更新後のデータベースのバージョン情報である更新後バージョン情報と、データベース識別情報とを第三サーバ格納部1005から読み出し、中継サーバ装置20に送信する。なお、一旦送信したデータベース更新情報等の情報については、送信しないようにしても良い。
中継サーバ装置20の第一サーバ側受信部2001、第二サーバ側受信部2004、および第三サーバ側受信部2007は、それぞれ、第一サーバ送信部1002、第二サーバ送信部1004、第三サーバ送信部1006が送信する情報を受信する。
中継端末プログラム蓄積部2002は、第一サーバ側受信部2001が受信した1以上の端末プログラムおよび端末メッセージと、当該端末プログラムと対応付けられた端末プログラム識別情報および端末バージョン情報とを対応付けて、中継端末プログラム格納部2003に蓄積する。ここでは、中継端末プログラム格納部2003には、初段階では端末プログラム等が格納されていなかったとすると、中継端末プログラム格納部2003に格納されている端末プログラム等の管理情報は、図10に示した第一管理情報と同様のものとなる。ただし、通常は、異なるサーバ装置10から送信された端末プログラム識別情報が異なる端末プログラム等が格納される。
サーバプログラム蓄積部2005は、第二サーバ側受信部2004が受信した1以上のサーバプログラムおよびサーバメッセージと、サーババージョン情報と、サーバ識別情報とを対応付けて、サーバプログラム格納部2006に蓄積する。ここでは、サーバプログラム格納部2006には、初段階ではサーバプログラム等が格納されていなかったとすると、サーバプログラム格納部2006に格納されている端末メッセージ等の管理情報は、図11に示した第二管理情報と同様のものとなる。ただし、通常は、異なるサーバ装置10から送信されたサーバプログラム識別情報が異なるサーバプログラム等が格納される。
データベース更新情報蓄積部2008は、第三サーバ側受信部2007が受信した1以上のプログラム更新情報と、データベース識別情報と、更新後バージョン情報とを対応付けて、データベース更新情報格納部2009に蓄積する。ここでは、データベース更新情報格納部2009には、初段階ではプログラム更新情報等が格納されていなかったとすると、データベース更新情報格納部2009に格納されている端末メッセージ等の管理情報は、図12に示した第三管理情報と同様のものとなる。なお、既にプログラム更新情報等が格納されていた場合、第三サーバ側受信部2007が受信したプログラム更新情報等が追加あるいは更新される。ただし、通常は、異なるサーバ装置10から送信されたデータベース識別情報が異なるデータベース更新情報等が格納される。
図13は、バージョン管理情報格納部2013に格納されているバージョン管理情報を管理するバージョン管理情報管理表である。バージョン管理情報管理表においては、各レコード(行)が、それぞれ一のバージョン管理情報である。バージョン管理情報は、「ID」、「端末プログラム識別情報」と、「端末バージョン情報」と、「サーババージョン情報」と、「データベース識別情報」と、「データベースバージョン情報」という属性を有している。「ID」は、バージョン管理情報を管理するための識別情報である。「端末プログラム識別情報」と、「端末バージョン情報」と、「サーババージョン情報」と、「データベース識別情報」と、「データベースバージョン情報」は、図8に示した端末プログラム管理表の項目と同様である。
次に、不整合検出部2014は、端末側受信部2010が受信した端末プログラム識別情報「給与管理ソフト」、端末バージョン情報「2.1」、サーババージョン情報「3.0」、データベース識別情報「社員DB」、およびデータベースバージョン情報「2.0」と、バージョン管理情報格納部2013に格納されているバージョン管理情報の各レコードの「端末プログラム識別情報」、「端末バージョン情報」、「サーババージョン情報」、「データベース識別情報」、および「データベースバージョン情報」の値とを比較して不整合を検出し、この不整合の検出結果に応じて、端末側送信部2015が、端末プログラムや端末メッセージ等を端末装置30に送信する。
具体的には、まず、端末側受信部2010が受信した端末プログラム識別情報である「給与管理ソフト」と一致する「端末プログラム識別情報」を有するバージョン管理情報を、図13に示したバージョン管理情報管理表において検索する。ここでは、「ID」が「001」から、「005」までのレコード、即ちバージョン管理情報が検出される。
次に、検出されたバージョン管理情報の中から、「端末バージョン情報」の値が、端末側受信部2010が受信した端末バージョン情報である「2.1」と一致するバージョン管理情報を検出する。ここでは、「ID」が「002」と「003」であるバージョン管理情報が検出される。
次に、検出されたバージョン管理情報の中から、「サーババージョン情報」の値が、端末側受信部2010が受信したサーババージョン情報である「3.0」と一致するバージョン管理情報があるか否かを判断する。ここでは、「ID」が「002」と「003」であるバージョン管理情報の「サーババージョン情報」の値は、「2.0」および「2.1」であり、いずれも「3.0」ではないと判断される。
このため、不整合検出部2014は、端末バージョン情報が「2.1」である「ID」が「002」と「003」であるバージョン管理情報の中から、サーババージョン情報の値が最大であるバージョン管理情報である「ID」が「003」のバージョン管理情報を検出する。そして、当該検出したバージョン管理情報のサーババージョン情報の値「2.1」と、端末側受信部2010が受信したサーババージョン情報である「3.0」とを比較して、検出したバージョン管理情報のサーババージョン情報の値「2.1」が、受信したサーババージョン情報よりも大きいか否かを判断する。ここでは、大きくないと判断される。
このため、不整合検出部2014は、端末プログラム識別情報が「給与管理ソフト」であるとして検出した「ID」が「001」から、「005」までのバージョン管理情報の中から、「サーババージョン情報」の値が、端末側受信部2010が受信したサーババージョン情報である「3.0」と一致するバージョン管理情報を検出する。ここでは、「サーババージョン情報」の値が「3.0」である「ID」が「005」であるバージョン管理情報が検出される。
次に、不整合検出部2014は、直前に検出したバージョン管理情報の中から、「端末バージョン情報」の値が最大であるバージョン管理情報を検出する。ここでは、直前に検出されたバージョン管理情報が「ID」が「005」であるバージョン管理情報1つだけであるため、この「ID」が「005」であるバージョン管理情報が検出される。
そして、端末側送信部2015は、検出した「ID」が「005」であるバージョン管理情報の端末プログラム識別情報である「給与管理ソフト」と、端末バージョン情報である「3.0」とを取得し、中継端末プログラム格納部2003に格納されている端末プログラムの中から、端末プログラム識別情報「給与管理ソフト」と、端末バージョン情報「3.0」とに対応付けられた端末プログラムと、端末メッセージと、端末プログラム識別情報と、端末バージョン情報とを読み出す。ここでは、上述したように、中継端末プログラム格納部2003に格納されている端末プログラム等の情報が、図10に示した第一管理情報によって管理されている情報と同様であるとすると、図10の「ID」が「04」のレコードの「端末プログラム」の実行ファイル、「端末プログラム識別情報」である「給与管理ソフト」、「端末バージョン情報」である「3.0」、「端末メッセージ」のメッセージを読み出す。そして読み出した情報を、端末側受信部2010が受信したユーザ識別情報の送信元となる端末装置30に送信する。
さらに、不整合検出部2014は、検出した「ID」が「005」であるバージョン管理情報の「データベース識別情報」の値である「社員DB」と「データベースバージョン情報」の値「3.0」とを取得する。そして、端末側受信部2010が受信したデータベース識別情報と、当該データベース識別情報に対応したデータベースバージョン情報との中から、「社員DB」というデータベース識別情報に対応したデータベースバージョン情報を取得し、取得したデータベースバージョン情報の値が、「3.0」であるか否かを判断する。ここでは、端末側受信部2010が受信したデータベース識別情報と、データベースバージョン情報は、一つずつ、即ち一組であるため、「データベース識別情報」と「データベースバージョン情報」の値が共に一致するか否かを判断しても良い。端末側受信部2010が受信したデータベース識別情報は「社員DB」であるため、「ID」が「005」であるバージョン管理情報の「データベース識別情報」の値と一致するが、端末側受信部2010が受信したデータベースバージョン情報は「2.0」であり、「ID」が「005」であるバージョン管理情報の「データベースバージョン情報」の値「3.0」とは異なる。このため、データベース更新部2018は、データベース識別情報「社員DB」と、更新後バージョン情報「3.0」とに対応付けられたデータベースバージョン情報を、データベース更新情報格納部2009から読み出す。ここでは、上述したように、データベース更新情報格納部2009に格納されているデータベース更新情報等の情報が、図12に示した第三管理情報によって管理されている情報と同様であるとすると、図12の「ID」が「02」のレコードの「データベース更新情報」であるデータベース更新情報と、「データベース識別情報」である「社員DB」、「更新後バージョン情報」である「3.0」を読み出す。そして、データベース更新部2018は、読み出しされたデータベース更新情報を用いて、データベース格納部2017に格納されているデータベースのうちの、端末側受信部2010が受信したユーザ識別情報「yamamoto」に対応付けられたデータベースであって、データベース識別情報が「社員DB」であるデータベースを、バージョンが「3.0」となるよう更新する。また、端末側送信部2015は、データベース識別情報「社員DB」と、更新後バージョン情報「3.0」とを、端末側受信部2010が受信したユーザ識別情報の送信元となる端末装置30に送信する。
端末装置30が、中継サーバ装置20から送信される、「端末プログラム」の実行ファイル、端末プログラム識別情報「給与管理ソフト」、端末バージョン情報「3.0」、および「端末メッセージ」のメッセージを受信すると、受信情報処理部3007は、受信した「端末プログラム」の実行ファイルを用いて、端末プログラム格納部3001に格納されている端末プログラムのうちの、端末プログラム識別情報「給与管理ソフト」と対応付けられている端末プログラムを更新する。例えば上書きする。また、この更新された端末プログラムに対応付けられている端末バージョン情報を、受信した端末バージョン情報「3.0」に更新する。また、受信情報処理部3007は、出力部3008に対して、受信した端末メッセージを出力させる指示を与える。
出力部3008は、受信情報処理部3007の指示に応じて、受信した端末メッセージを、図示しないモニタ等に表示する。
図14は、端末メッセージの表示例を示す図である。
また、端末装置30が、中継サーバ装置20から送信される、データベース識別情報「社員DB」と、更新後バージョン情報「3.0」とを受信すると、受信情報処理部3007は、受信したデータベース識別情報である「社員DB」と同じデータベース識別情報と対応付けられて端末プログラム格納部3001に格納されているデータベースバージョン情報の値を「3.0」に更新する。
なお、仮に、「ID」が「002」および「003」であるバージョン管理情報の中から不整合検出部2014が検出した、サーババージョン情報の値の最大値である「2.1」が、受信したサーババージョン情報よりも大きい値であると判断されたとする。
この場合、端末側送信部2015は、図11に示した第二管理情報により管理されている情報と同様の情報が格納されているサーバプログラム格納部2006から、上記のサーババージョン情報の値が最大であるバージョン管理情報のサーババージョン情報「2.1」と、端末側受信部2010が受信した端末プログラム識別情報「給与管理ソフト」と一致するサーバプログラム識別情報「給与管理ソフト」とに対応付けられたサーバメッセージ、即ち、図11の「ID」が「02」のレコードのサーバメッセージを読み出し、サーババージョン情報の値を上述した最大の値「2.1」に変更する指示と、読み出したサーバメッセージとを、端末側受信部2010が受信した端末プログラム識別情報「給与管理ソフト」と対応付けて、端末側受信部2010が受信したユーザ識別情報の送信元となる端末装置30に送信する。なお、サーババージョン情報の値を変更する指示は、少なくとも変更後のサーババージョン情報を含む情報であれば良い。
また、端末装置30が、中継サーバ装置20から送信される、サーババージョン情報の値を「2.1」に変更する指示と、サーバメッセージと、端末プログラム識別情報「給与管理ソフト」とを受信すると、受信情報処理部3007は、サーババージョン情報の値を「2.1」に変更する指示に応じて、端末プログラム格納部3001に格納されているサーババージョン情報のうちの、受信した端末プログラム識別情報「給与管理ソフト」と対応付けられているサーババージョン情報を「2.1」に更新する。例えば上書きする。また、受信情報処理部3007は、出力部3008に対して、受信したサーバメッセージを出力させる指示を与える。
出力部3008は、受信情報処理部3007の指示に応じて、受信したサーバメッセージを、図示しないモニタ等に表示する。
図15は、サーバメッセージの表示例を示す図である。
ここで、端末プログラム格納部3001に格納されている「社員DB」のデータベースバージョン情報の値を「3.0」に更新された以降に、「人事管理ソフト」をユーザが起動したとすると、図8に示した端末プログラム管理表の「ID」が「03」であるレコードの端末プログラム識別情報「人事管理ソフト」、端末バージョン情報「2.0」、サーババージョン情報「2.0」、データベース識別情報「社員DB」、データベースバージョン情報「3.0」が、端末装置30から中継サーバ装置20に送信される。
このとき、端末プログラム識別情報が「人事管理ソフト」であるバージョン管理ソフトのうちの、データベース識別情報が「社員DB」であってデータベースバージョン情報が「3.0」であるバージョン管理情報の端末バージョン情報が「3.0」、サーババージョン情報が「3.0」であったとすると、中継サーバ装置20から送信された端末バージョン情報と、サーババージョン情報が、いずれもバージョン管理情報の端末バージョン情報と、サーババージョン情報の値と整合していないため、端末プログラムのバージョンが「3.0」、サーバプログラムのバージョンが「3.0」となるように、端末プログラムや端末メッセージ、サーバプログラムの変更指示やサーバメッセージの送信が行われる。これにより、共有するデータベースのバージョンが更新された場合においても、当該データベースを利用する端末プログラムやサーバプログラムのバージョンを、更新されたデータベースのバージョンに適したものとなるように更新させることができる。
以上、本実施の形態によれば、複数のサーバ装置10のように、提供先の異なる複数のプログラムについてアップデートを行う際においても、中継サーバ装置20によりアップデートを行うことができ、プログラムの更新を容易にかつ適切に行うことができる。
また、端末プログラム等のバージョンが、サーバ装置10の提供するバージョンと異なる場合、つまり整合がとれない場合に、端末プログラム等のバージョンを更新したり、更新のためのメッセージをユーザに出力したりすることができる。
また、端末プログラムやサーバプログラムやデータベースのバージョンの組合せ等が、正常に動作可能なバージョンの組合せと異なる場合に、バージョン同士の整合がとれるように、バージョンを更新したり、適切なバージョンの組合せとなるよう、ユーザにメッセージを出力したりすることができる。
なお、本実施の形態においては、端末プログラムやサーバプログラムに関するメッセージと同様に、第三サーバ格納部1005に格納されるデータベース更新情報に対応付けて、当該データベース更新情報に関するメッセージであるデータベースメッセージを格納するようにしても良い。そして、当該データベースメッセージを、データベース更新情報とともに、中継サーバ装置20に送信して、データベース更新情報に格納するようにし、データベース更新情報を用いてデータベースを更新する前後に、用いられるデータベースに対応付けられたデータベース更新情報を、端末装置30に、データベースバージョン情報等と共に送信するようにする。そして、端末装置30の受信情報処理部3007が、受信したデータベースメッセージを出力部3008等に出力させることができるようにしてもよい。データベースメッセージは、例えば、データベースの変更の許可を求めるメッセージや、データベースが変更されたことを示すメッセージ等である。
(実施の形態2)
本実施の形態にかかる情報処理システムは、上述した情報処理システムにおいて、端末装置の端末プログラム格納部3001に端末バージョン情報やサーババージョン情報やデータベース識別情報等が格納されるようにする代わりに、中継サーバ装置のユーザ情報格納部2111に、端末バージョン情報やサーババージョン情報やデータベース識別情報等が格納されるようにしたものである。
本実施の形態における情報処理システム2は、図1に示した情報処理システムにおいて、中継サーバ装置20の代わりに中継サーバ装置21を、端末装置30の代わりに端末装置31を設けるようにしたものである。情報処理システム2は、二以上のサーバ装置10、中継サーバ装置21、および2以上の端末装置31を備えている。サーバ装置10、および端末装置31はそれぞれ一以上であれば数は問わない。
図16は、本実施の形態における情報処理システム1の、サーバ装置10、中継サーバ装置21の構成を示すブロック図である。なお、サーバ装置10の構成に付いては、上記実施の形態と同様であるので、ここでの説明は省略する。
また、図17は、本実施の形態における情報処理システム1の、端末装置31の構成を示すブロック図である。
中継サーバ装置21は、第一サーバ側受信部2101、中継端末プログラム蓄積部2102、中継端末プログラム格納部2103、第二サーバ側受信部2104、サーバプログラム蓄積部2105、サーバプログラム格納部2106、第三サーバ側受信部2107、データベース更新情報蓄積部2108、データベース更新情報格納部2109、端末側受信部2110、ユーザ情報格納部2111、許可判断部2112、バージョン管理情報格納部2113、不整合検出部2114、端末側送信部2115、中継プログラム処理部2116、データベース格納部2117、データベース更新部2118を備えている。
端末装置31は、端末プログラム格納部3101、端末プログラム処理部3102、ユーザ識別情報受付部3103、ユーザ識別情報送信部3104、端末送信部3105、端末受信部3106、受信情報処理部3107、および出力部3108を備えている。
第一サーバ側受信部2101、中継端末プログラム蓄積部2102、中継端末プログラム格納部2103、第二サーバ側受信部2104、サーバプログラム蓄積部2105、サーバプログラム格納部2106、第三サーバ側受信部2107、データベース更新情報蓄積部2108、データベース更新情報格納部2109、許可判断部2112、バージョン管理情報格納部2113、中継プログラム処理部2116、データベース格納部2117、およびデータベース更新部2118の構成等については、上述した第一サーバ側受信部2001、中継端末プログラム蓄積部2002、中継端末プログラム格納部2003、第二サーバ側受信部2004、サーバプログラム蓄積部2005、サーバプログラム格納部2006、第三サーバ側受信部2007、データベース更新情報蓄積部2008、データベース更新情報格納部2009、許可判断部2012、バージョン管理情報格納部2013、中継プログラム処理部2016、データベース格納部2017、およびデータベース更新部2018と同様であるので、ここでは説明を省略する。
端末側受信部2110は、端末装置31から送信される上述したユーザ識別情報と、上述した端末プログラム識別情報とを受信する。その他の構成等については、上記実施の形態の端末側受信部2010と同様であるので、ここでは説明を省略する。
ユーザ情報格納部2111には、端末装置31が実行可能な端末プログラムを利用可能なユーザのユーザ識別情報と、当該ユーザ識別情報に対応するユーザが利用可能な端末プログラムの識別情報である端末プログラム識別情報と、当該端末プログラムの端末バージョン情報とが対応付けられて格納され得る。これらの対応付けられた情報は、例えば、一のユーザが利用可能な一以上の端末プログラムと、当該端末プログラムの端末バージョン情報および端末プログラム識別情報である。
また、ユーザ情報格納部2111には、端末装置31が実行可能な端末プログラムを利用可能なユーザのユーザ識別情報と、当該ユーザ識別情報に対応するユーザが利用可能な端末プログラムの識別情報である端末プログラム識別情報と、当該端末プログラムに対応したサーバプログラムについてのサーババージョン情報とが対応付けられて格納されていてもよい。
また、ユーザ情報格納部2111には、端末装置31が実行可能な端末プログラムを利用可能なユーザのユーザ識別情報と、当該ユーザ識別情報に対応するユーザが利用可能な端末プログラムの識別情報である端末プログラム識別情報と、当該端末プログラムに対応したサーバプログラムについてのサーババージョン情報と、当該サーバプログラムが利用するデータベースのデータベースバージョン情報とが対応付けられて格納されていてもよい。
このように、本実施の形態においては、ユーザ情報格納部2111には、ユーザが利用可能な端末プログラムやサーバプログラムやデータベースについての、バージョンに関する情報が格納されている。つまり、ユーザ情報格納部2111は、ユーザが利用可能な端末プログラムやサーバプログラムやデータベースについてのバージョンを管理するための情報が格納されていると考えても良い。
本実施の形態においては、中継プログラム処理部2116は、例えば、端末装置31において、ユーザ識別情報が示すユーザによって端末プログラム識別情報が示す端末プログラムが実行された場合において、端末プログラムから中継プログラム処理部2116に対して、何らかの要求情報が送信された場合、中継プログラム処理部2116等は、端末側受信部2110が受信したユーザ識別情報と端末プログラム識別情報との組合せに対応付けられてユーザ情報格納部2111に格納されているサーババージョン情報に対応したバージョンのサーバプログラムを実行させて処理を行う。また、例えば、この処理を行う際には、適宜、端末側受信部2110が受信したユーザ識別情報と端末プログラム識別情報との組合せに対応付けられてユーザ情報格納部2111に格納されているデータベース識別情報に対応したデータベースのうちの、データベースバージョン情報に対応したバージョンのデータベースを利用する。
なお、サーバプログラムが複数のデータベースを利用するものである場合、データベースバージョン情報がどのデータベースに関するものであるかが識別できるよう、データベース識別情報を上記の情報に対応付けて格納されるようにしても良い。また、サーババージョン情報に加えて、サーバプログラムの識別情報であるサーバプログラム識別情報が格納されるようにしても良い。なお、上記以外の構成等については、ユーザ情報格納部2011と同様であるので、ここでは説明を省略する。なお、ユーザ情報格納部2111に格納されている端末バージョン情報や、サーババージョン情報や、データベースバージョン情報等は、後述する端末側送信部2115から端末プログラムや端末メッセージやサーバメッセージ等が端末装置31に送信される場合や、サーバプログラムのバージョンを変更する必要があると後述する不整合検出部2114等が検出した場合や、データベースの更新等が行われた場合等に、不整合検出部2114等により適宜更新されるものとする。
不整合検出部2114は、許可判断部2112により、端末側受信部2110が受信したユーザ識別情報が示すユーザにより、端末側受信部2110が受信した端末プログラム識別情報に対応した端末プログラムの利用が許可されていると判断された場合に、端末側受信部2110が受信した端末プログラム識別情報と、当該端末プログラム識別情報を用いてユーザ情報格納部2111から取得した端末バージョン情報とを用いて、端末装置31が有する端末プログラムに関する不整合を検出する。端末側受信部2110が受信した端末プログラム識別情報を用いて、ユーザ情報格納部2111から取得する、とは、端末側受信部2110が受信した端末プログラム識別情報と対応付けられてユーザ情報格納部2111に格納されている端末バージョン情報や、サーババージョン情報やデータベースバージョン情報を取得することを意味する。
また、不整合検出部2114は、許可判断部2112により、端末側受信部2110が受信したユーザ識別情報が示すユーザにより、端末側受信部2110が受信した端末プログラム識別情報に対応した端末プログラムの利用が許可されていると判断された場合に、端末側受信部2110が受信した端末プログラム識別情報と、当該端末プログラム識別情報および端末側受信部2110が受信したユーザ識別情報を用いてユーザ情報格納部2111から取得した端末バージョン情報とを用いて、端末装置31が有する端末プログラムに関する不整合を検出してもよい。また、ユーザ識別情報が示すユーザにより端末プログラムの利用が許可されていると判断された場合に、端末側受信部2110が受信した端末プログラム識別情報と、当該端末プログラム識別情報および端末側受信部2110が受信したユーザ識別情報を用いてユーザ情報格納部2111から取得した端末バージョン情報と、サーババージョン情報とを用いて、端末装置31が有する端末プログラムに関する不整合を検出してもよい。また、ユーザ識別情報が示すユーザにより端末プログラムの利用が許可されていると判断された場合に、端末側受信部2110が受信した端末プログラム識別情報と、当該端末プログラム識別情報および端末側受信部2110が受信したユーザ識別情報を用いてユーザ情報格納部2111から取得した端末バージョン情報と、サーババージョン情報と、データベースバージョン情報を用いて、端末装置31が有する端末プログラムに関する不整合を検出してもよい。端末側受信部2110が受信した端末プログラム識別情報とユーザ識別情報とを用いて、ユーザ情報格納部2111から取得する、とは、端末側受信部2110が受信した端末プログラム識別情報およびユーザ識別情報と対応付けられてユーザ情報格納部2111に格納されている端末バージョン情報や、サーババージョン情報やデータベースバージョン情報を取得することを意味する。
本実施の形態の不整合検出部2114は、端末側受信部2110が受信した端末プログラム識別情報や、ユーザ識別情報を用いて、ユーザ情報格納部2111から端末バージョン情報等を取得し、当該取得した端末バージョン情報等を用いて不整合を検出する点が、端末側受信部2010が受信した端末バージョン情報等を用いて不整合を検出する上述した不整合検出部2014と異なる点であり、これらの違いを除けば、不整合検出部2114の構成および不整合の検出処理等については、上述した不整合検出部2014と同様であるので、ここでは、詳細な説明は省略する。
なお、複数の端末プログラムやサーバプログラムが一のデータベースを共用している場合等においては、端末側受信部2110が受信した一のユーザ識別情報および端末プログラム識別情報等の組に関して、不整合検出の処理が行われた結果、データベース更新部2118により一のデータベースが更新された場合、ユーザ情報格納部2111に格納されている端末バージョン情報、サーババージョン情報、及びデータベースバージョン情報等の組から、当該更新されたデータベースと同じデータベース識別情報および同じユーザ識別情報に対応付けられている端末バージョン情報、サーババージョン情報、及びデータベースバージョン情報等の組を検出し、当該検出した組について、上記と同様のバージョン管理情報を用いて不整合の検出処理を行うようにしてもよい。このときの不整合の検出処理においては、データベースバージョン情報が一致するバージョン管理情報に対して、端末バージョン情報およびサーババージョン情報が一致するかの判断を行うことが好ましい。これにより、一のサーバプログラムの更新等によって、データベースが更新されて、データベースのバージョンが変更された場合、データベースのバージョンにあわせて、サーババージョン情報や端末バージョン情報を更新することができる。また、データベースのバージョンが更新された場合に、端末装置31に、当該更新されたデータベースのデータベース識別情報に対応付けられた他の端末バージョン情報、サーババージョン情報、及びデータベースバージョン情報等の組を送信させるようにし、当該送信された情報を用いて不整合を判断する処理等を行うようにしても良い。
端末側送信部2115は、不整合検出部2114の検出結果に応じて、第一サーバ側受信部2101が受信したユーザ識別情報またはメッセージの少なくとも一方を、端末側受信部2110が受信したユーザ識別情報の送信元となる端末装置31に送信する。また、端末側送信部2115は、不整合検出部2114の検出結果に応じて、第二サーバ側受信部2104が受信したサーバメッセージを、端末側受信部2110が受信したユーザ識別情報の送信元となる端末装置31に送信してもよい。この実施の形態においては、端末側送信部2115は、例えば、サーバプログラムのバージョンを更新する指示や、更新されたデータベースのバージョンを示す情報を、端末装置31に送信しなくてよい点で、上記実施の形態の端末側送信部2015とは異なる。検出結果に応じて送信するとは、検出結果に応じて送信しないことも含む概念である。
端末装置31の端末プログラム処理部3102、ユーザ識別情報受付部3103、ユーザ識別情報送信部3104、および出力部3108の構成および処理については、上記実施の形態の端末装置30の端末プログラム処理部3002、ユーザ識別情報受付部3003、ユーザ識別情報送信部3004、および出力部3008と同様であるので説明を省略する。
端末プログラム格納部3101には、一以上の端末プログラムと、端末プログラム識別情報とが対応付けられて格納され得る。端末プログラム格納部3101は、上述した端末プログラム格納部3001において、少なくとも、一以上の端末プログラムと、端末プログラム識別情報とが対応付けられて格納され得るようにしたものと考えても良い。端末プログラム格納部3101は、不揮発性の記録媒体でも、揮発性の記録媒体でも良い。
端末送信部3105は、端末プログラム格納部3101に格納されている端末プログラム識別情報を中継サーバ装置21に送信する。端末送信部3105が、端末プログラム識別情報を中継サーバ装置21に送信する構成や処理等については、上述した端末送信部3005と同様である。端末送信部3105は、無線または有線の通信手段等で実現され得る。
端末受信部3106は、中継サーバ装置21から送信される端末プログラムまたは端末メッセージの少なくとも一方や、中継サーバ装置21から送信されるサーバメッセージを受信する。端末受信部3106が、端末プログラムまたは端末メッセージの少なくとも一方や、サーバメッセージを受信する動作や処理等については、上述した端末受信部3006と同様である。端末受信部3106は、無線または有線の通信手段等で実現され得る。
受信情報処理部3107は、端末受信部3106が受信した端末プログラムまたは端末メッセージの少なくとも一方を処理する。また、受信情報処理部3107は、端末受信部3106が受信したサーバメッセージを出力する処理を行っても良い。これらの処理に付いては、上述した受信情報処理部3007の処理と同様であるので、ここでは説明を省略する。受信情報処理部3107の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
次に、情報処理システム2の動作について説明する。
サーバ装置10の動作については、上記実施の形態のサーバ装置10と同様であるので、説明は省略する。
まず、中間サーバ装置21の動作について図18のフローチャートを用いて説明する。なお、図18において、図5と同一符号のステップは、同一または相当する処理ステップを示している。
(ステップS1801)端末側受信部2110は、ユーザ識別情報および端末プログラム識別情報を受信したか否かを判断する。受信した場合、ステップS502に進み、受信していない場合、ステップS503に進む。
(ステップS1802)不整合検出部2114は、ユーザ情報格納部2111から、ステップS1801において受信したユーザ識別情報および端末プログラム識別情報の両方に対応付けられた端末バージョン情報と、サーババージョン情報と、データベース識別情報と、データベースバージョン情報とを取得する。
(ステップS1803)中継サーバ装置21は、ステップS1802において取得した端末バージョン情報と、サーババージョン情報と、データベース識別情報と、データベースバージョン情報とを用いて、端末プログラムに関する不整合を検出する。なお、この不整合の検出処理については後述する。そして、ステップS1801に戻る。
なお、図18のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、図18のステップS1803において示した中継サーバ装置21の不整合を判断する処理について、図19のフローチャートを用いて説明する。
(ステップS1901)不整合検出部2114は、ステップS1801において受信したユーザ識別情報および端末プログラム識別情報の両方と一致するユーザ識別情報および端末プログラム識別情報を有するバージョン管理情報を、検索等によりバージョン管理情報格納部2113等から検出する。
(ステップS1902)不整合検出部2114は、ステップS1901において検出したバージョン管理情報の中に、ステップS1802において取得した端末バージョン情報と一致する端末バージョン情報を有するバージョン管理情報があるか否かを判断する。ある場合、該当するバージョン管理情報を検出し、ステップS1903に進み、ない場合、ステップS1911に進む。
(ステップS1903)不整合検出部2114は、直前に検出したバージョン管理情報の中に、ステップS1901において検出したサーババージョン情報と一致するサーババージョン情報を有するバージョン管理情報があるか否かを判断する。ある場合、該当するバージョン管理情報を検出し、ステップS1904に進み、ない場合、ステップS1907に進む。
(ステップS1904)不整合検出部2114は、直前に検出したバージョン管理情報のデータベースバージョン情報が、ステップS1802において取得したデータベースバージョン情報と一致するか否かを判断する。一致する場合、上位の処理に戻る。一致しない場合、ステップS1905に進む。
(ステップS1905)データベース更新部2118は、直前に検出したバージョン管理情報の中から、データベースバージョン情報が示すバージョンが最も高いもの、例えば、バージョンを示す数値の最も高いものを検出する。
(ステップS1906)データベース更新部2118は、データベース更新情報格納部2109から、ステップS1905において検出したバージョン管理情報のデータベースバージョン情報が示すバージョンを示している更新後バージョン情報に対応付けられ、かつ、検出されたバージョン管理情報のデータベース識別情報と一致するデータベース識別情報と対応付けられたデータベース更新情報を取得する。そして、当該データベース更新情報を用いて、ステップS1801において受信したユーザ識別情報および端末プログラム識別情報に対応するサーバプログラムに対応するデータベースの更新、即ちバージョンアップを行う。そして、上位の処理に戻る。
(ステップS1907)不整合検出部2114は、ステップS1903において検出したバージョン管理情報の中から、サーババージョン情報が示すバージョンの値が最も高いものを検出する。
(ステップS1908)不整合検出部2114は、ステップS1907で検出したサーババージョン情報が示すバージョンが、ステップS1802において取得したサーババージョン情報が示すバージョンよりも高いか否かを判断する。高い場合、ステップS1909に進み、高くない場合、ステップS1917に進む。
(ステップS1909)端末側送信部2115は、直前に検出したバージョン管理情報のサーババージョン情報で、ステップS1801において受信したユーザ識別情報と端末プログラム識別情報との両方に対応付けられたサーババージョン情報を更新する。例えば上書きする。
(ステップS1910)端末側送信部2115は、直前に検出したバージョン管理情報のデータベースバージョン情報と、ステップS1802において取得したデータベースバージョン情報とが一致するか否かを判断する。一致する場合、上位の処理に戻り、一致しない場合、ステップS1911に進む。
(ステップS1911)データベース更新部2118は、データベース更新情報格納部2109から、直前に検出されたバージョン管理情報のデータベースバージョン情報が示すバージョンを示している更新後バージョン情報に対応付けられ、かつ、直前に検出されたバージョン管理情報のデータベース識別情報と一致するデータベース識別情報と対応付けられたデータベース更新情報を取得する。そして、当該データベース更新情報を用いて、ステップS1801において受信したユーザ識別情報および端末プログラム識別情報に対応するサーバプログラムに対応するデータベースの更新、即ちバージョンアップを行う。そして、上位の処理に戻る。
(ステップS1912)不整合検出部2114は、ステップS1901において検出したバージョン管理情報の中に、ステップS1802において取得したサーババージョン情報と一致するサーババージョン情報を有するバージョン管理情報があるか否かを判断する。ある場合、該当するバージョン管理情報を検出し、ステップS1913に進み、ない場合、ステップS1915に進む。
(ステップS1913)不整合検出部2114は、ステップS1912において検出したバージョン管理情報の中から、端末バージョン情報が示すバージョンの値が最も高いものを検出する。
(ステップS1914)端末側送信部2115は、ステップS1913において検出したバージョン管理情報の端末プログラム識別情報および端末バージョン情報に対応付けられた端末プログラムを中継端末プログラム格納部2103から読み出し、ステップS1801において受信したユーザ識別情報の送信元となる端末装置31に、ステップS1801において受信した端末プログラム識別情報と対応付けて送信する。そして、ステップS1910に戻る。
(ステップS1915)不整合検出部2114は、ステップS1901において検出したバージョン管理情報の中から、端末バージョン情報が示すバージョンの値が最も高いものを検出する。
(ステップS1916)端末側送信部2115は、ステップS1915において検出したバージョン管理情報の端末プログラム識別情報および端末バージョン情報に対応付けられた端末プログラムを中継端末プログラム格納部2103から読み出し、ステップS1801において受信したユーザ識別情報の送信元となる端末装置31に、ステップS1801において受信した端末プログラム識別情報と対応付けて送信する。そして、ステップS1909に戻る。
(ステップS1917)不整合検出部2114は、ステップS1901において検出したバージョン管理情報の中から、ステップS1802において受信したサーババージョン情報と一致するサーババージョン情報を有するバージョン管理情報を検出する。そして、ステップS1913に進む。
なお、図19のフローチャートにおいて、ステップS1906やステップS1909やステップS1911やステップS1914やステップS1916等において、端末プログラムの送信や、サーババージョン情報の送信や、データベースの更新等を行わずに、端末プログラムや、サーバプログラムやデータベース更新情報等に対応付けられたメッセージを端末装置31に送信する場合、メッセージを送信して、上位の処理に戻るようにしても良い。この場合のメッセージは、例えば、更新等を行うことを促すメッセージである。このような場合、当該メッセージに対応して端末装置31から送信される指示等に応じて、中継サーバ装置21が、端末プログラムの送信や、サーババージョン情報の送信や、データベースの更新等を行うようにしても良い。
また、ステップS1906やステップS1909やステップS1911やステップS1914やステップS1916等において、端末プログラムの送信や、サーババージョン情報の送信や、データベースの更新等に加えて、端末プログラムや、サーバプログラムやデータベース更新情報等に対応付けられたメッセージを端末装置31に送信する処理を行い、次の処理ステップに進むようにしても良い。この場合のメッセージは、例えば、更新等を行ったことを通知するメッセージである。
また、図19のフローチャートにおいては、中継プログラム処理部2116が実行する、端末装置31からの要求等に応じた処理についての説明は省略する。
なお、図19のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
なお、図19のフローチャートにおいて、ステップS1905と、ステップS1906との間に、ステップS1905において検出したデータベースバージョン情報よりも、ステップS1802において受信したデータベースバージョン情報が大きいか否かを判断する処理を行うようにしてもよい。また、ステップS1910と、ステップS1911との間に、ステップS1910において判断に用いたバージョン管理情報のデータベースバージョン情報よりも、ステップS1802において受信したデータベースバージョン情報が大きいか否かを判断する処理を行うようにしてもよい。これらの判断処理は、ステップ1802において取得したデータベース識別情報に対応するデータベースバージョン情報について行われる。そして、大きくない場合は、そのまま、ステップS1906やステップS1911に進むようにし、大きい場合は、ステップS1901において検出したバージョン管理情報の中から、ステップS1802において取得したデータベース識別情報およびデータベースバージョン情報と同じデータベース識別情報およびデータベースバージョン情報を含むバージョン管理情報を検出する処理を行い、当該検出したバージョン管理情報について、ステップS1902以降と同様の処理を行うようにしてもよい。ただし、ここで行われるステップS1902以降の処理においては、ステップS1902からステップS1906までの処理およびステップS1910からステップS1911までの処理は省略して、上位の処理に戻るようにする。
このようにすることで、一のデータベースを、二以上の端末プログラムやサーバプログラムで共用している場合において、一の端末プログラムやサーバプログラムのバージョンの更新に伴って、データベースのバージョンが更新された場合、当該データベースのバージョンの更新を検出して、当該更新されたデータベースが利用可能となるように、他の端末プログラムやサーバプログラムのバージョンの更新を行うことが可能となる。
次に、端末装置31の動作について図20のフローチャートを用いて説明する。
(ステップS2001)ユーザ識別情報受信部3103は、ユーザ識別情報を受信したか否かを判断する。受信した場合、ステップS2002に進み、受信していない場合、ステップS2001に戻る。受信したユーザ識別情報は、例えば、端末装置31の認証処理等に利用される。
(ステップS2002)ユーザ識別情報受信部3103は、ステップS2001において受信したユーザ識別情報を、図示しないメモリ等の格納部に一時記憶する。
(ステップS2003)端末送信部3105は、ユーザ識別情報と、端末プログラム識別情報とを送信するか否かを判断する。送信する場合、ステップS2004に進み、送信しない場合、ステップS2006に進む。例えば、端末送信部3105は、端末プログラム格納部3101に格納されている端末プログラムの一つを起動させた場合に、当該端末プログラムに対応付けて格納されている端末バージョン情報と、ユーザ識別情報を送信することを決定する。
(ステップS2004)ユーザ識別情報送信部3104は、ステップS2001で受信したユーザ識別情報を中継サーバ装置21に送信する。
(ステップS2005)端末送信部3105は、端末プログラム識別情報を端末プログラム格納部3101から読み出し、ステップS2004において送信したユーザ識別情報と対応付けて、中継サーバ装置21に送信する。なお、端末送信部3105は、一部の端末プログラム識別情報だけを送信しても良く、例えば、起動した端末プログラムに対応した端末プログラム識別情報だけを送信しても良い。なお、ユーザ識別情報送信部3104と端末送信部3105とを一の端末送信部により構成し、当該端末送信部が、ユーザ識別情報と、端末プログラム識別情報とを中継サーバ装置21に送信するようにしてもよい。そして、ステップS2003に戻る。
(ステップS2006)端末受信部3106は、端末プログラムと端末プログラム識別情報とを受信したか否かを判断する。受信した場合、ステップS2007に進み、受信していない場合、ステップS2003に戻る。
(ステップS2007)端末装置31の受信情報処理部3107等は、ステップS2006において受信した端末プログラム識別情報と同じ端末プログラム識別情報と対応付けられて端末プログラム格納部3101に格納されている端末プログラムを、ステップS2006において受信した端末プログラムで更新する。そして、ステップS2003に戻る。
なお、図20のフローチャートにおいては、端末プログラム処理部3102が端末プログラム等を実行する処理についての説明は省略する。
また、図20のフローチャートにおいて、ステップS2006の代わりに、あるいはこのステップS2006の処理に加えて、端末プログラムに対応付けられた端末メッセージを受信したか否かを判断するようにし、受信した場合、受信情報処理部3107が、出力部3108が受信した端末メッセージを出力、例えばモニタ等に表示させるようにしてもよい。
また、ステップS2006において、受信していないと判断された場合に、サーバプログラムに対応付けられたサーバメッセージを受信したか否かを判断するようにし、受信した場合、受信情報処理部3107が、出力部3108が受信したサーバメッセージを出力、例えばモニタ等に表示させるようにしてもよい。受信していない場合、ステップS2003に戻る。
なお、図20のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
以下、本実施の形態における情報処理システム2の具体的な動作について説明する。
まず、ユーザが一の端末装置31にログインのためにユーザ識別情報を入力すると、ユーザ識別情報受付部3103が、入力されたユーザ識別情報を受け付ける。入力されたユーザ識別情報がここでは、「yamamoto」であったとする。受け付けたユーザ識別情報は図示しない格納部等に一時記憶される。また、端末装置31は、ログイン等の認証処理を行う。
図21は、端末プログラム格納部3101に格納されている端末プログラム管理表を示す図である。端末プログラム管理表は、「ID」と、「端末プログラム」と、「端末プログラム識別情報」という項目を有している。この端末プログラム管理表は、図8に示した端末プログラム管理表において、「ID」と、「端末プログラム」と、「端末プログラム識別情報」という項目を除いた項目を省略したものであり、項目等の説明は省略する。
次に、ユーザが、端末プログラム格納部3101に格納されている端末プログラムの一つを起動させる指示を端末装置31に図示しない入力インターフェース等を介して与えたとすると、ユーザ識別情報送信部3104は、一時記憶されているユーザ識別情報を中継サーバ装置21に、ネットワーク60を介して送信する。また、端末送信部3105は、起動させる指示の対象となる端末プログラムに対応付けられた、端末プログラム識別情報を読み出し、ユーザ識別情報送信部3104が送信したユーザ識別情報と対応付けて、中継サーバ装置21に、ネットワーク60を介して送信する。
例えば、「給与管理ソフト」という端末プログラム識別情報と対応付けられた端末プログラムを起動する指示が与えられたとすると、ユーザ識別情報である「yamamoto」と、端末プログラム識別情報である「給与管理ソフト」とが、対応付けられて中継サーバ装置21に送信される。
中継サーバ装置21の端末側受信部2110は、端末装置31から送信されるユーザ識別情報「yamamoto」と、端末プログラム識別情報「給与管理ソフト」とを受信する。
図22は、ユーザ情報格納部2111に格納されているユーザ情報を管理するためのユーザ情報管理表である。ユーザ情報管理表は、「ID」と、「ユーザ識別情報」と、「端末プログラム識別情報」と、「端末バージョン情報」と、「サーババージョン情報」と、「データベース識別情報」と、「データベースバージョン情報」という項目を有している。「ID」は、レコードを管理するための識別情報である。「ユーザ識別情報」および「端末プログラム識別情報」は、図21に示した「端末プログラム識別情報」と、「端末バージョン情報」と同様である。「サーババージョン情報」と、「データベース識別情報」と、「データベースバージョン情報」とについては、上記実施の形態において図8において説明した「端末プログラム識別情報」と、「端末バージョン情報」と、「サーババージョン情報」と、「データベース識別情報」と、「データベースバージョン情報」と同様である。
許可判断部2112は、端末側受信部2110が受信したユーザ識別情報「yamamoto」と端末プログラム識別情報「給与管理ソフト」との組み合わせと一致する「ユーザ識別情報」と「端末プログラム識別情報」との組み合わせを含むレコードが、ユーザ情報格納部2111に格納されているか否かを判断する。格納されていない場合、ユーザ識別情報「yamamoto」に対応するユーザによる、「給与管理ソフト」という端末プログラムの利用が許可されていないこととなり、端末プログラム識別情報「給与管理ソフト」に対応したサーバプログラムの利用が拒否される。
ここでは、図21に示したユーザ情報管理表の「ID」が「1」であるレコードの「ユーザ識別情報」と「端末プログラム識別情報」との組み合わせが、ユーザ識別情報「yamamoto」と端末プログラム識別情報「給与管理ソフト」との組み合わせと一致すると判断される。これにより、ユーザ識別情報「yamamoto」に対応するユーザによる、「給与管理ソフト」という端末プログラムの利用が許可されていることとなる。
許可判断部2112が許可されていると判断したため、中継サーバ装置21は、端末プログラムや、サーバプログラムや、データベース更新情報等の送信を要求する情報を、図示しない送信部等から各サーバ装置10に送信して、各サーバ装置10から端末プログラムやサーバプログラムやデータベース更新情報等を取得する。各サーバ装置10から端末プログラムやサーバプログラムやデータベース更新情報等を取得する処理については、上記実施の形態の具体例と同様であるので、ここでは説明を省略する。
なお、取得の結果、中継端末プログラム格納部2103に格納されている端末プログラム等の管理情報は、図10に示した第一管理情報と同様のものとなったとする。また、サーバプログラム格納部2106に格納されている端末メッセージ等の管理情報は、図11に示した第二管理情報と同様のものとなったとする。また、第三サーバ側受信部2107が受信したプログラム更新情報等が追加あるいは更新される。
不整合検出部2114は、ユーザ情報格納部2111から、端末側受信部2110が受信したユーザ識別情報「yamamoto」と端末プログラム識別情報「給与管理ソフト」との組み合わせと一致する「ユーザ識別情報」と「端末プログラム識別情報」との組み合わせと対応付けられた「端末プログラム識別情報」と、「端末バージョン情報」と、「サーババージョン情報」と、「データベース識別情報」と、「データベースバージョン情報」とを取得する。ここでは、例えば、端末側受信部2110が受信したユーザ識別情報「yamamoto」と端末プログラム識別情報「給与管理ソフト」との組み合わせを検索キーとして検索を行うことで、図21に示したユーザ情報管理表に示した「ID」が「1」であるレコードの、端末バージョン情報である「2.1」と、サーババージョン情報である「3.0」と、データベース識別情報である「社員DB」と、データベースバージョン情報である「2.0」とが取得される。取得した情報は、図示しないメモリ等の記憶媒体に一時記憶される。
次に、不整合検出部2114は、端末側受信部2110が受信した端末プログラム識別情報「給与管理ソフト」と、不整合検出部2114が取得した端末バージョン情報「2.1」、サーババージョン情報「3.0」、データベース識別情報「社員DB」、およびデータベースバージョン情報「2.0」と、バージョン管理情報格納部2113に格納されているバージョン管理情報の各レコードの「端末プログラム識別情報」、「端末バージョン情報」、「サーババージョン情報」、「データベース識別情報」、および「データベースバージョン情報」の値とを比較して不整合を検出し、この不整合の検出結果に応じて、端末側送信部2115が、端末プログラムや端末メッセージ等を端末装置31に送信したり、サーバプログラムのバージョンを変更したり、データベースのバージョンを更新したりする。なお、ここでは、バージョン管理情報格納部2113に格納されているバージョン管理情報は、図13に示したものと同様であるとする。
なお、この不整合を検出する処理等の具体的な処理については、上記実施の形態で説明した具体例と同様であるので、説明は省略する。
ただし、ここでは、端末プログラムと端末メッセージとが端末側送信部2115から送信された場合には、当該送信された端末プログラムに対応した端末バージョン情報で、ユーザ情報格納部2111に格納されている「端末バージョン情報」のうちの、端末側受信部2110が受信したユーザ識別情報「yamamoto」と端末プログラム識別情報「給与管理ソフト」との組み合わせに対応付けられた「端末バージョン情報」が更新されるものとする。
また、サーバプログラムの更新が行われ、サーバメッセージが端末側送信部2115から送信される場合には、当該更新された端末プログラムに対応した端末バージョン情報で、ユーザ情報格納部2111に格納されている「端末バージョン情報」のうちの、端末側受信部2110が受信したユーザ識別情報「yamamoto」と端末プログラム識別情報「給与管理ソフト」との組み合わせに対応付けられた「端末バージョン情報」が更新されるものとする。
同様に、データベースの更新が行われる場合には、更新に用いられたデータベース更新情報に対応付けられた変更後バージョン情報を用いて、端末側受信部2110が受信したユーザ識別情報「yamamoto」と対応付けられてユーザ情報格納部2111に格納されている「データベースバージョン情報」のうちの、更新されたデータベースと同じ「データベース識別情報」と対応付けられた「データベースバージョン情報」が更新されるものとする。例えば、変更後バージョン情報の値で、データベースバージョン情報の値が上書きされるものとする。
端末装置31が、中継サーバ装置21から、端末プログラム識別情報「給与管理ソフト」と対応付けられて送信される、端末プログラムの実行ファイル、および端末メッセージを受信すると、受信情報処理部3107は、受信した端末プログラムの実行ファイルを用いて、端末プログラム格納部3101に格納されている端末プログラムのうちの、端末プログラム識別情報「給与管理ソフト」と対応付けられている端末プログラムを更新する。例えば上書きする。また、受信情報処理部3107は、出力部3108に対して、受信した端末メッセージを出力させる指示を与える。これにより、出力部3108は、受信情報処理部3107の指示に応じて、受信した端末メッセージを、図14に示すようにモニタ等に表示する。
また、端末装置31が、中継サーバ装置21から、サーバメッセージを受信すると、受信情報処理部3107は、出力部3108に対して、受信したサーバメッセージを出力させる指示を与える。これにより、出力部3108は、受信情報処理部3107の指示に応じて、受信したサーバメッセージを、図15に示すようにモニタ等に表示する。
ここで、ユーザ情報管理表に格納されているデータベースバージョン情報の値が更新された以降に、当該データベースを共用する端末プログラムをユーザが起動したとする。この場合、端末装置31から、ユーザ識別情報と起動した端末プログラムの端末プログラム識別情報が送信される。
不整合検出部2114は、端末側受信部2110が受信した当該ユーザ識別情報と端末プログラム識別情報に対応した端末バージョン情報、サーババージョン情報、データベース識別情報、および更新されたデータベースバージョン情報をユーザ情報格納部2111から取得する。そして、更新されたデータベースバージョン情報と同じデータベースバージョン情報を含むバージョン管理情報が検出され、当該検出されたバージョン管理情報の端末バージョン情報およびサーババージョン情報と、ユーザ情報格納部2111から取得された端末バージョン情報およびサーババージョン情報との不整合の有無が上記と同様に判断され、不整合が検出された場合、端末プログラムや端末メッセージ、サーバメッセージの送信や、サーバプログラムの変更等が行われる。これにより、共有するデータベースのバージョンが更新された場合においても、当該データベースを利用する端末プログラムやサーバプログラムのバージョンを、更新されたデータベースのバージョンに適したものとなるように更新させることができる。
以上、本実施の形態によれば、複数のサーバ装置10のように、提供先の異なる複数のプログラムについてアップデートを行う際においても、中継サーバ装置21によりアップデートを行うことができ、プログラムの更新を容易にかつ適切に行うことができる。
また、端末プログラム等のバージョンが、サーバ装置10の提供するバージョンと異なる場合、つまり整合がとれない場合に、端末プログラム等のバージョンを更新したり、更新のためのメッセージをユーザに出力したりすることができる。
また、端末プログラムやサーバプログラムやデータベースのバージョンの組合せ等が、正常に動作可能なバージョンの組合せと異なる場合に、バージョン同士の整合がとれるように、バージョンを更新したり、適切なバージョンの組合せとなるよう、ユーザにメッセージを出力したりすることができる。
また、中継サーバ装置21において、ユーザの利用する端末プログラムやサーバプログラムやデータベース等のバージョン等の管理を行うことができ、バージョンの管理等を一元管理できる。
なお、本実施の形態においては、端末プログラムやサーバプログラムに関するメッセージと同様に、第三サーバ格納部1005に格納されるデータベース更新情報に対応付けて、当該データベース更新情報に関するメッセージであるデータベースメッセージを格納するようにしても良い。そして、当該データベースメッセージを、データベース更新情報とともに、中継サーバ装置21に送信して、データベース更新情報に格納するようにし、データベース更新情報を用いてデータベースを更新する前後に、用いられるデータベースに対応付けられたデータベース更新情報を、端末装置31に送信するようにする。そして、端末装置31の受信情報処理部3107が、受信したデータベースメッセージを出力部3108等に出力させることができるようにしてもよい。データベースメッセージは、例えば、データベースの変更の許可を求めるメッセージや、データベースが変更されたことを示すメッセージ等である。
また、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
また、上記各実施の形態において、一の装置に存在する2以上の通信手段(情報送信部など)は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記実施の形態において、各構成要素が実行する処理に関係する情報、例えば、各構成要素が受け付けたり、取得したり、選択したり、生成したり、送信したり、受信したりする情報や、各構成要素が処理で用いるしきい値や数式、アドレス等の情報等は、上記説明で明記していない場合であっても、図示しない記録媒体において、一時的に、あるいは長期にわたって保持されていてもよい。また、その図示しない記録媒体への情報の蓄積を、各構成要素、あるいは、図示しない蓄積部が行ってもよい。また、その図示しない記録媒体からの情報の読み出しを、各構成要素、あるいは、図示しない読み出し部が行ってもよい。
また、上記各実施の形態では、情報処理システムがスタンドアロンである場合について説明したが、情報処理システムは、スタンドアロンの装置であってもよく、サーバ・クライアントシステムにおけるサーバ装置であってもよい。後者の場合には、出力部や受付部は、通信回線を介して入力を受け付けたり、画面を出力したりすることになる。
また、上記各実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。なお、上記各実施の形態における情報処理システムを実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、二以上のサーバ装置と二以上の端末装置と通信可能な中継サーバ装置として機能させるためのプログラムであって、コンピュータを、前記サーバ装置が送信する端末プログラムまたは前記メッセージの少なくとも一方と、当該端末プログラムを識別する情報である端末プログラム識別情報と、当該端末プログラムのバージョンを示す情報である端末バージョン情報とを受信する第一サーバ側受信部と、前記端末装置から送信されるユーザ識別情報と、端末プログラム識別情報と、端末バージョン情報とを受信する端末側受信部と、前記端末側受信部が受信したユーザ識別情報および端末プログラム識別情報と、ユーザ情報格納部に対応付けて格納されている前記端末プログラムを利用可能なユーザのユーザ識別情報と当該ユーザ識別情報に対応するユーザが利用可能な端末プログラムの識別情報である端末プログラム識別情報とを用いて、前記端末側受信部が受信したユーザ識別情報が示すユーザによる前記端末側受信部が受信した端末プログラム識別情報が示す端末プログラムの利用が許可されているか否かを判断する許可判断部と、前記許可判断部により利用が許可されていると判断された場合に、前記端末側受信部が受信した端末プログラム識別情報と端末バージョン情報とを用いて、前記端末装置が有する端末プログラムに関する不整合を検出する不整合検出部と、前記不整合検出部による不整合の検出結果に応じて、前記第一サーバ側受信部が受信した端末プログラムまたはメッセージの少なくとも一方を、前記端末側受信部が受信したユーザ識別情報の送信元となる前記端末装置に送信する端末側送信部として機能させるためのプログラムである。
また、このプログラムは、コンピュータを、中継サーバ装置と通信可能な端末装置として機能させるためのプログラムであって、コンピュータを、端末プログラム格納部に格納されている一以上の端末プログラムを実行する端末プログラム処理部と、ユーザ識別情報を受け付けるユーザ識別情報受付部と、前記ユーザ識別情報受付部が受け付けたユーザ識別情報を前記中継サーバ装置に送信するユーザ識別情報送信部と、前記端末プログラム格納部に各端末プログラムにそれぞれ対応付けて格納されている当該端末プログラムを識別する情報である端末プログラム識別情報と、当該端末プログラムのバージョンを示す情報である端末バージョン情報を、前記中継サーバ装置に送信する端末送信部と、前記中継サーバ装置から送信される端末プログラムまたはメッセージの少なくとも一方を受信する端末受信部と、前記端末受信部が受信した端末プログラムまたはメッセージの少なくとも一方を処理する受信情報処理部として機能させるためのプログラムである。
また、このプログラムは、コンピュータを、二以上のサーバ装置と二以上の端末装置と通信可能な中継サーバ装置として機能させるためのプログラムであって、コンピュータを、前記サーバ装置が送信する端末プログラムまたは前記メッセージの少なくとも一方と、当該端末プログラムを識別する情報である端末プログラム識別情報と、当該端末プログラムのバージョンを示す情報である端末バージョン情報とを受信する第一サーバ側受信部と、前記端末装置から送信されるユーザ識別情報と、端末プログラム識別情報とを受信する端末側受信部と、前記端末側受信部が受信したユーザ識別情報および端末プログラム識別情報と、前記端末プログラムを利用可能なユーザのユーザ識別情報と当該ユーザ識別情報に対応するユーザが利用可能な端末プログラムの識別情報である端末プログラム識別情報と当該端末プログラムの端末バージョン情報とが対応付けられて格納され得るユーザ情報格納部に格納されているユーザ識別情報および端末プログラム識別情報とを用いて、前記端末側受信部が受信したユーザ識別情報が示すユーザによる前記端末側受信部が受信した端末プログラム識別情報が示す端末プログラムの利用が許可されているか否かを判断する許可判断部と、前記許可判断部により利用が許可されていると判断された場合に、前記端末側受信部が受信した端末プログラム識別情報と、当該端末プログラム識別情報を用いて前記ユーザ情報格納部から取得する端末バージョン情報とを用いて、前記端末装置が有する端末プログラムに関する不整合を検出する不整合検出部と、前記不整合検出部による不整合の検出結果に応じて、前記第一サーバ側受信部が受信した端末プログラムまたはメッセージの少なくとも一方を、前記端末側受信部が受信したユーザ識別情報の送信元となる前記端末装置に送信する端末側送信部として機能させるためのプログラムである。
また、このプログラムは、コンピュータを、中継サーバ装置と通信可能な端末装置として機能させるためのプログラムであって、コンピュータを、端末プログラム格納部に格納されている一以上の端末プログラムを実行する端末プログラム処理部と、ユーザ識別情報を受け付けるユーザ識別情報受付部と、前記ユーザ識別情報受付部が受け付けたユーザ識別情報を前記中継サーバ装置に送信するユーザ識別情報送信部と、前記端末プログラム格納部に前記各端末プログラムにそれぞれ対応付けられて格納されている当該端末プログラムの識別情報である端末プログラム識別情報を、前記中継サーバ装置に送信する端末送信部と、前記中継サーバ装置から送信される端末プログラムまたはメッセージの少なくとも一方を受信する端末受信部と、前記端末受信部が受信した端末プログラムまたはメッセージの少なくとも一方を処理する受信情報処理部として機能させるためのプログラムである。
なお、上記プログラムにおいて、上記プログラムが実現する機能には、ハードウェアでしか実現できない機能は含まれない。例えば、情報を取得する取得部や、情報を出力する出力部などにおけるモデムやインターフェースカードなどのハードウェアでしか実現できない機能は、上記プログラムが実現する機能には含まれない。
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
図23は、上記プログラムを実行して、上記実施の形態による中継サーバ装置や端末装置等を実現するコンピュータの外観の一例を示す模式図である。上記実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムによって実現されうる。
図23において、コンピュータシステム900は、CD−ROM(Compact Disk Read Only Memory)ドライブ905、FD(Floppy(登録商標) Disk)ドライブ906を含むコンピュータ901と、キーボード902と、マウス903と、モニタ904とを備える。
図24は、コンピュータシステム900の内部構成を示す図である。図24において、コンピュータ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に、上記実施の形態による中継サーバ装置や端末装置等の機能を実行させるプログラムは、CD−ROM921、またはFD922に記憶されて、CD−ROMドライブ905、またはFDドライブ906に挿入され、ハードディスク914に転送されてもよい。これに代えて、そのプログラムは、図示しないネットワークを介してコンピュータ901に送信され、ハードディスク914に記憶されてもよい。プログラムは実行の際にRAM913にロードされる。なお、プログラムは、CD−ROM921やFD922、またはネットワークから直接、ロードされてもよい。
プログラムは、コンピュータ901に、上記実施の形態による中継サーバ装置や端末装置等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム900がどのように動作するのかについては周知であり、詳細な説明は省略する。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。