(57)【要約】      （修正有）【課題】ユーザがプログラムに必要な更新を適切に行える情報システムを提供する。【解決手段】中継サーバ装置２０は、端末装置３０が送信した情報を用いて、端末プログラムに関する不整合を検出する不整合検出部と、不整合の検出結果に応じてサーバ装置１０が送信する端末プログラムまたはメッセージを端末装置３０に送信する端末側送信部とを備え、端末装置３０は、ユーザ識別情報を中継サーバ装置２０に送信するユーザ識別情報送信部と、各端末プログラムに対応付けられた端末バージョン情報および端末プログラム識別情報を中継サーバ装置２０に送信する端末送信部と、中継サーバ装置２０から送信される端末プログラムまたはメッセージを処理する受信情報処理部とを備えた。【選択図】図１
2010146476.tif 000002
【特許請求の範囲】
【請求項１】
二以上のサーバ装置と、中継サーバ装置と、二以上の端末装置とを備えた情報処理システムであって、
前記サーバ装置は、
前記端末装置が実行可能なプログラムである端末プログラム、または当該端末プログラムに関するメッセージの少なくとも一方と、当該端末プログラムを識別する情報である端末プログラム識別情報と、当該端末プログラムのバージョンを示す情報である端末バージョン情報とが対応付けて格納され得る第一サーバ格納部と、
前記端末プログラムまたは前記メッセージの少なくとも一方と、前記端末プログラム識別情報と、端末バージョン情報とを前記中継サーバ装置に送信する第一サーバ送信部とを備え、
前記中継サーバ装置は、
前記サーバ装置が送信する端末プログラムまたは前記メッセージの少なくとも一方と、前記端末プログラム識別情報と、前記端末バージョン情報とを受信する第一サーバ側受信部と、
前記端末プログラムを利用可能なユーザのユーザ識別情報と、当該ユーザ識別情報に対応するユーザが利用可能な端末プログラムの識別情報である端末プログラム識別情報とが対応付けられて格納され得るユーザ情報格納部と、
前記端末装置から送信されるユーザ識別情報と、端末プログラム識別情報と、端末バージョン情報とを受信する端末側受信部と、
前記端末側受信部が受信したユーザ識別情報および端末プログラム識別情報と、前記ユーザ情報格納部に格納されているユーザ識別情報および端末プログラム識別情報とを用いて、前記端末側受信部が受信したユーザ識別情報が示すユーザによる前記端末側受信部が受信した端末プログラム識別情報が示す端末プログラムの利用が許可されているか否かを判断する許可判断部と、
前記許可判断部により利用が許可されていると判断された場合に、前記端末側受信部が受信した端末プログラム識別情報と端末バージョン情報とを用いて、前記端末装置が有する端末プログラムに関する不整合を検出する不整合検出部と、
前記不整合検出部による不整合の検出結果に応じて、前記第一サーバ側受信部が受信した端末プログラムまたはメッセージの少なくとも一方を、前記端末側受信部が受信したユーザ識別情報の送信元となる前記端末装置に送信する端末側送信部とを備え、
前記端末装置は、
一以上の前記端末プログラムと、当該端末プログラムの端末バージョン情報と、端末プログラム識別情報とが対応付けられて格納され得る端末プログラム格納部と、
前記端末プログラムを実行する端末プログラム処理部と、
前記ユーザ識別情報を受け付けるユーザ識別情報受付部と、
前記ユーザ識別情報受付部が受け付けたユーザ識別情報を前記中継サーバ装置に送信するユーザ識別情報送信部と、
前記端末プログラム格納部に格納されている各端末プログラムにそれぞれ対応付けられた端末バージョン情報および端末プログラム識別情報を、前記中継サーバ装置に送信する端末送信部と、
前記中継サーバ装置から送信される端末プログラムまたはメッセージの少なくとも一方を受信する端末受信部と、
前記端末受信部が受信した端末プログラムまたはメッセージの少なくとも一方を処理する受信情報処理部とを備えた情報処理システム。
【請求項２】
前記サーバ装置は、
前記端末プログラムに対応してサーバクライアント間の所定の処理を行うためのプログラムであるサーバプログラムまたは当該サーバプログラムに関するメッセージの少なくとも一方と、当該サーバプログラムのバージョンを示す情報であるサーババージョン情報とが対応付けて格納され得る第二サーバ格納部と、
前記サーバプログラムまたはメッセージの少なくとも一方と、前記サーババージョン情報とを前記中継サーバ装置に送信する第二サーバ送信部とをさらに備え、
前記中継サーバ装置は、
前記サーバプログラムまたは当該サーバプログラムに関するメッセージの少なくとも一方と、前記サーババージョン情報とを受信する第二サーバ側受信部と、
一以上の前記サーバプログラムまたは当該サーバプログラムに関するメッセージの少なくとも一方と、前記サーババージョン情報とが対応付けられて格納され得るサーバプログラム格納部と、
前記第二サーバ側受信部が受信した前記サーバプログラムまたは当該サーバプログラムに関するメッセージの少なくとも一方と、前記サーババージョン情報とを前記サーバプログラム格納部に蓄積するサーバプログラム蓄積部と、
前記サーバプログラム格納部に格納されたサーバプログラムを実行する中継プログラム処理部と、
前記端末プログラム識別情報と、前記端末バージョン情報と、前記サーババージョン情報とが対応付けられた情報であるバージョン管理情報が一以上格納され得るバージョン管理情報格納部とを更に備え、
前記端末側受信部は、前記端末装置から送信される前記端末プログラム識別情報と、前記端末バージョン情報と、前記サーババージョン情報とを受信し、
前記不整合検出部は、前記端末側受信部が受信した、端末プログラム識別情報と、端末バージョン情報と、前記サーババージョン情報との組み合わせと、バージョン管理情報格納部に格納されているバージョン管理情報との不整合を検出し、
前記端末プログラム格納部は、一以上の前記端末プログラムと、当該端末プログラムの端末バージョン情報と、当該端末プログラムの端末プログラム識別情報と、当該プログラムに対応した前記サーバプログラムについてのサーババージョン情報とが対応付けられて格納されており、
前記端末送信部は、前記端末プログラム格納部に格納されている各端末プログラムにそれぞれ対応付けられた端末バージョン情報と、端末プログラム識別情報と、前記サーババージョン情報とを、前記中継サーバ装置に送信する請求項１記載の情報処理システム。
【請求項３】
前記端末側送信部は、前記不整合検出部による不整合の検出結果に応じて、前記端末側受信部が受信した端末プログラム識別情報が示す端末プログラムと対応するサーババージョン情報を変更する指示、または、前記端末側受信部が受信した端末プログラム識別情報が示す端末プログラムに対応するサーババージョン情報に対応付けられて前記サーバプログラム格納部に格納されているメッセージを、前記端末装置に送信し、
前記端末受信部は、前記中継サーバ装置から送信されるサーババージョン情報を変更する指示またはサーババージョン情報に対応付けられたメッセージの少なくとも一方を受信し、
前記受信情報処理部は、前記端末受信部が受信したサーババージョン情報を変更する指示に応じた処理またはサーババージョン情報に対応付けられたメッセージを出力する処理の少なくとも一方を行う請求項２記載の情報処理システム。
【請求項４】
前記中継サーバ装置は、
前記中継プログラム処理部が前記サーバプログラムを実行する際に利用するデータベースと、当該データベースのバージョン情報であるデータベースバージョン情報とが格納されるデータベース格納部を更に備え、
前記バージョン管理情報格納部には、前記端末プログラム識別情報と、前記端末バージョン情報と、前記サーババージョン情報と、前記データベースバージョン情報とが対応付けられた情報であるバージョン管理情報が一以上格納されており、
前記端末側受信部は、前記端末装置から送信される端末プログラム識別情報と、端末バージョン情報と、前記サーババージョン情報と、前記データベースバージョン情報とを受信し、
前記不整合検出部は、前記端末側受信部が受信した、端末プログラム識別情報と、端末バージョン情報と、前記サーババージョン情報と、前記データベースバージョン情報との組み合わせと、バージョン管理情報格納部に格納されているバージョン管理情報との不整合を検出し、
前記端末プログラム格納部は、一以上の前記端末プログラムと、当該端末プログラムの端末バージョン情報と、当該端末プログラムの端末プログラム識別情報と、当該プログラムに対応した前記サーバプログラムについてのサーババージョン情報と、当該サーバプログラムが利用するデータベースのデータベースバージョン情報とが対応付けられて格納されており、
前記端末送信部は、前記端末プログラム格納部に格納されている各端末プログラムにそれぞれ対応付けられた前記端末バージョン情報と、前記端末プログラム識別情報と、前記サーババージョン情報と、前記データベースバージョン情報とを、前記中継サーバ装置に送信する請求項２記載の情報処理システム。
【請求項５】
前記サーバ装置は、
前記データベースのバージョンを更新するための情報であるデータベース更新情報と、更新の対象となるデータベースを識別する情報であるデータベース識別情報とが対応付けて格納され得る第三サーバ格納部と、
前記データベース更新情報と、前記データベース識別情報とを前記中継サーバ装置に送信する第三サーバ送信部とをさらに備え、
前記中間サーバ装置は、
前記データベース更新情報と、前記データベース識別情報とを受信する第三サーバ側受信部と、
前記データベース更新情報と、前記データベース識別情報とが対応付けられて格納され得るデータベース更新情報格納部と、
前記第三サーバ側受信部が受信した前記データベース更新情報と、前記データベース識別情報とを前記データベース更新情報格納部に蓄積するデータベース更新情報蓄積部と、
前記不整合検出部による不整合の検出結果に応じて、前記端末側受信部が受信した端末プログラム識別情報に対応するデータベースを、前記データベース更新情報格納部に格納されている情報を用いて更新するデータベース更新部とを更に備えた請求項４記載の情報処理システム。
【請求項６】
二以上のサーバ装置と、中継サーバ装置と、二以上の端末装置とを備えた情報処理システムであって、
前記サーバ装置は、
前記端末装置が実行可能なプログラムである端末プログラム、または当該端末プログラムに関するメッセージの少なくとも一方と、当該端末プログラムを識別する情報である端末プログラム識別情報と、当該端末プログラムのバージョンを示す情報である端末バージョン情報とが対応付けて格納され得る第一サーバ格納部と、
前記端末プログラムまたは前記メッセージの少なくとも一方と、前記端末プログラム識別情報と、端末バージョン情報とを前記中継サーバ装置に送信する第一サーバ送信部とを備え、
前記中継サーバ装置は、
前記サーバ装置が送信する端末プログラムまたは前記メッセージの少なくとも一方と、前記端末プログラム識別情報と、前記端末バージョン情報とを受信する第一サーバ側受信部と、
前記端末プログラムを利用可能なユーザのユーザ識別情報と、当該ユーザ識別情報に対応するユーザが利用可能な端末プログラムの識別情報である端末プログラム識別情報と、当該端末プログラムの端末バージョン情報とが対応付けられて格納され得るユーザ情報格納部と、
前記端末装置から送信されるユーザ識別情報と、端末プログラム識別情報とを受信する端末側受信部と、
前記端末側受信部が受信したユーザ識別情報および端末プログラム識別情報と、前記ユーザ情報格納部に格納されているユーザ識別情報および端末プログラム識別情報とを用いて、前記端末側受信部が受信したユーザ識別情報が示すユーザによる前記端末側受信部が受信した端末プログラム識別情報が示す端末プログラムの利用が許可されているか否かを判断する許可判断部と、
前記許可判断部により利用が許可されていると判断された場合に、前記端末側受信部が受信した端末プログラム識別情報と、当該端末プログラム識別情報を用いて前記ユーザ情報格納部から取得する端末バージョン情報とを用いて、前記端末装置が有する端末プログラムに関する不整合を検出する不整合検出部と、
前記不整合検出部による不整合の検出結果に応じて、前記第一サーバ側受信部が受信した端末プログラムまたはメッセージの少なくとも一方を、前記端末側受信部が受信したユーザ識別情報の送信元となる前記端末装置に送信する端末側送信部とを備え、
前記端末装置は、
一以上の前記端末プログラムと、端末プログラム識別情報とが対応付けられて格納され得る端末プログラム格納部と、
前記端末プログラムを実行する端末プログラム処理部と、
前記ユーザ識別情報を受け付けるユーザ識別情報受付部と、
前記ユーザ識別情報受付部が受け付けたユーザ識別情報を前記中継サーバ装置に送信するユーザ識別情報送信部と、
前記端末プログラム格納部に格納されている各端末プログラムにそれぞれ対応付けられた端末プログラム識別情報を、前記中継サーバ装置に送信する端末送信部と、
前記中継サーバ装置から送信される端末プログラムまたはメッセージの少なくとも一方を受信する端末受信部と、
前記端末受信部が受信した端末プログラムまたはメッセージの少なくとも一方を処理する受信情報処理部とを備えた情報処理システム。
【請求項７】
前記サーバ装置は、
前記端末プログラムに対応してサーバクライアント間の所定の処理を行うためのプログラムであるサーバプログラムまたは当該サーバプログラムに関するメッセージの少なくとも一方と、当該サーバプログラムのバージョンを示す情報であるサーババージョン情報とが対応付けて格納され得る第二サーバ格納部と、
前記サーバプログラムまたはメッセージの少なくとも一方と、前記サーババージョン情報とを前記中継サーバ装置に送信する第二サーバ送信部とをさらに備え、
前記中継サーバ装置は、
前記サーバプログラムまたは当該サーバプログラムに関するメッセージの少なくとも一方と、前記サーババージョン情報とを受信する第二サーバ側受信部と、
一以上の前記サーバプログラムまたは当該サーバプログラムに関するメッセージの少なくとも一方と、前記サーババージョン情報とが対応付けられて格納され得るサーバプログラム格納部と、
前記第二サーバ側受信部が受信した前記サーバプログラムまたは当該サーバプログラムに関するメッセージの少なくとも一方と、前記サーババージョン情報とを前記サーバプログラム格納部に蓄積するサーバプログラム蓄積部と、
前記サーバプログラム格納部に格納されたサーバプログラムを実行する中継プログラム処理部と、
前記端末プログラム識別情報と、前記端末バージョン情報と、前記サーババージョン情報とが対応付けられた情報であるバージョン管理情報が一以上格納され得るバージョン管理情報格納部とを更に備え、
前記ユーザ情報格納部には、前記端末プログラムを利用可能なユーザのユーザ識別情報と、当該ユーザ識別情報に対応するユーザが利用可能な端末プログラムの識別情報である端末プログラム識別情報と、当該端末プログラムの端末バージョン情報と、当該端末プログラムに対応したサーバプログラムのサーババージョン情報とが対応付けられて格納され得るものであり、
前記不整合検出部は、前記端末側受信部が受信した端末プログラム識別情報と、当該端末プログラム識別情報を用いて前記ユーザ情報格納部から取得する端末バージョン情報およびサーババージョン情報との組合せと、バージョン管理情報格納部に格納されているバージョン管理情報との不整合を検出する請求項６記載の情報処理システム。
【請求項８】
前記端末側送信部は、前記不整合検出部による不整合の検出結果に応じて、前記端末側受信部が受信した端末プログラム識別情報が示す端末プログラムと対応するサーババージョン情報を変更する指示、または、前記端末側受信部が受信した端末プログラム識別情報が示す端末プログラムに対応するサーババージョン情報に対応付けられて前記サーバプログラム格納部に格納されているメッセージを、前記端末装置に送信し、
前記端末受信部は、前記中継サーバ装置から送信されるサーババージョン情報を変更する指示またはサーババージョン情報に対応付けられたメッセージの少なくとも一方を受信し、
前記受信情報処理部は、前記端末受信部が受信したサーババージョン情報を変更する指示に応じた処理またはサーババージョン情報に対応付けられたメッセージを出力する処理の少なくとも一方を行う請求項７記載の情報処理システム。
【請求項９】
前記中継サーバ装置は、
前記中継プログラム処理部が前記サーバプログラムを実行する際に利用するデータベースと、当該データベースのバージョン情報であるデータベースバージョン情報とが格納されるデータベース格納部を更に備え、
前記バージョン管理情報格納部には、前記端末プログラム識別情報と、前記端末バージョン情報と、前記サーババージョン情報と、前記データベースバージョン情報とが対応付けられた情報であるバージョン管理情報が一以上格納されており、
前記不整合検出部は、前記端末側受信部が受信した端末プログラム識別情報と、当該端末プログラム識別情報を用いて前記ユーザ情報格納部から取得する端末バージョン情報およびサーババージョン情報との組合せと、バージョン管理情報格納部に格納されているバージョン管理情報との不整合を検出する請求項８記載の情報処理システム。
【請求項１０】
前記サーバ装置は、
前記データベースのバージョンを更新するための情報であるデータベース更新情報と、更新の対象となるデータベースを識別する情報であるデータベース識別情報とが対応付けて格納され得る第三サーバ格納部と、
前記データベース更新情報と、前記データベース識別情報とを前記中継サーバ装置に送信する第三サーバ送信部とをさらに備え、
前記中間サーバ装置は、
前記データベース更新情報と、前記データベース識別情報とを受信する第三サーバ側受信部と、
前記データベース更新情報と、前記データベース識別情報とが対応付けられて格納され得るデータベース更新情報格納部と、
前記第三サーバ側受信部が受信した前記データベース更新情報と、前記データベース識別情報とを前記データベース更新情報格納部に蓄積するデータベース更新情報蓄積部と、
前記不整合検出部による不整合の検出結果に応じて、前記端末側受信部が受信した端末プログラム識別情報に対応するデータベースを、前記データベース更新情報格納部に格納されている情報を用いて更新するデータベース更新部とを更に備えた請求項９記載の情報処理システム。
【請求項１１】
請求項１から請求項１０のいずれか記載の情報処理システムを構成する中間サーバ装置。
【請求項１２】
請求項１から請求項１０のいずれか記載の情報処理システムを構成する端末装置。
【請求項１３】
二以上のサーバ装置と二以上の端末装置と通信可能な中継サーバ装置であって、第一サーバ側受信部と、前記端末装置が実行可能なプログラムである端末プログラムを利用可能なユーザのユーザ識別情報と、当該ユーザ識別情報に対応するユーザが利用可能な端末プログラムの識別情報である端末プログラム識別情報とが対応付けられて格納され得るユーザ情報格納部と、端末側受信部と、許可判断部と、不整合検出部と、端末側送信部とを備えた中継サーバ装置を用いて行われる中継サーバ処理方法であって、
前記第一サーバ側受信部が、前記サーバ装置が送信する端末プログラムまたは前記メッセージの少なくとも一方と、前記端末プログラム識別情報と、当該端末プログラムのバージョンを示す情報である端末バージョン情報とを受信する第一サーバ側受信ステップと、
前記端末側受信部が、前記端末装置から送信されるユーザ識別情報と、端末プログラム識別情報と、端末バージョン情報とを受信する端末側受信ステップと、
前記許可判断部が、前記端末側受信ステップにより受信したユーザ識別情報および端末プログラム識別情報と、前記ユーザ情報格納部に格納されているユーザ識別情報および端末プログラム識別情報とを用いて、前記端末側受信ステップにより受信したユーザ識別情報が示すユーザによる前記端末側受信ステップにより受信した端末プログラム識別情報が示す端末プログラムの利用が許可されているか否かを判断する許可判断ステップと、
前記不整合検出部が、前記許可判断ステップにより利用が許可されていると判断された場合に、前記端末側受信ステップにより受信した端末プログラム識別情報と端末バージョン情報とを用いて、前記端末装置が有する端末プログラムに関する不整合を検出する不整合検出ステップと、
前記端末側送信部が、前記不整合検出ステップによる不整合の検出結果に応じて、前記第一サーバ側受信ステップにより受信した端末プログラムまたはメッセージの少なくとも一方を、前記端末側受信ステップにより受信したユーザ識別情報の送信元となる前記端末装置に送信する端末側送信ステップとを備えた中継サーバ処理方法。
【請求項１４】
中継サーバ装置と通信可能な端末装置であって、一以上の前記端末プログラムと、当該端末プログラムのバージョンを示す情報である端末バージョン情報と、当該端末プログラムを識別する情報である端末プログラム識別情報とが対応付けられて格納され得る端末プログラム格納部と、端末プログラム処理部と、ユーザ識別情報受付部と、ユーザ識別情報送信部と、端末送信部と、端末受信部と、受信情報処理部とを備えた端末装置を用いて行われる端末処理方法であって、
前記端末プログラム処理部が、前記端末プログラムを実行する端末プログラム処理ステップと、
前記ユーザ識別情報受付部が、前記端末装置が実行可能なプログラムである端末プログラムを利用可能なユーザの識別情報であるユーザ識別情報を受け付けるユーザ識別情報受付ステップと、
前記ユーザ識別情報送信部が、前記ユーザ識別情報受付部が受け付けたユーザ識別情報を前記中継サーバ装置に送信するユーザ識別情報送信ステップと、
前記端末送信部が、前記端末プログラム格納部に格納されている各端末プログラムにそれぞれ対応付けられた端末バージョン情報および端末プログラム識別情報を、前記中継サーバ装置に送信する端末送信ステップと、
前記端末受信部が、前記中継サーバ装置から送信される端末プログラムまたはメッセージの少なくとも一方を受信する端末受信ステップと、
前記受信情報処理部が、前記端末受信ステップにより受信した端末プログラムまたはメッセージの少なくとも一方を処理する受信情報処理ステップとを備えた端末処理方法。
【請求項１５】
二以上のサーバ装置と二以上の端末装置と通信可能な中継サーバ装置であって、第一サーバ側受信部と、前記端末プログラムを利用可能なユーザのユーザ識別情報と、当該ユーザ識別情報に対応するユーザが利用可能な端末プログラムの識別情報である端末プログラム識別情報と、当該端末プログラムのバージョンを示す情報である端末バージョン情報とが対応付けられて格納され得るユーザ情報格納部と、端末側受信部と、許可判断部と、不整合検出部と、端末側送信部とを備えた中継サーバ装置を用いて行われる中継サーバ処理方法であって、
前記第一サーバ側受信部が、前記サーバ装置が送信する端末プログラムまたは前記メッセージの少なくとも一方と、前記端末プログラム識別情報と、前記端末バージョン情報とを受信する第一サーバ側受信ステップと、
前記端末側受信部が、前記端末装置から送信されるユーザ識別情報と、端末プログラム識別情報とを受信する端末側受信ステップと、
前記許可判断部が、前記端末側受信ステップにより受信したユーザ識別情報および端末プログラム識別情報と、前記ユーザ情報格納部に格納されているユーザ識別情報および端末プログラム識別情報とを用いて、前記端末側受信により受信したユーザ識別情報が示すユーザによる前記端末側受信により受信した端末プログラム識別情報が示す端末プログラムの利用が許可されているか否かを判断する許可判断ステップと、
前記不整合検出部が、前記許可判断ステップにより利用が許可されていると判断された場合に、前記端末側受信ステップにより受信した端末プログラム識別情報と、当該端末プログラム識別情報を用いて前記ユーザ情報格納部から取得する端末バージョン情報とを用いて、前記端末装置が有する端末プログラムに関する不整合を検出する不整合検出ステップと、
前記端末側送信部が、前記不整合検出ステップによる不整合の検出結果に応じて、前記第一サーバ側受信ステップにより受信した端末プログラムまたはメッセージの少なくとも一方を、前記端末側受信ステップにより受信したユーザ識別情報の送信元となる前記端末装置に送信する端末側送信ステップとを備えた中継サーバ処理方法。
【請求項１６】
中継サーバ装置と通信可能な端末装置であって、一以上の前記端末プログラムと、当該端末プログラムを識別する情報である端末プログラム識別情報とが対応付けられて格納され得る端末プログラム格納部と、端末プログラム処理部と、ユーザ識別情報受付部と、ユーザ識別情報送信部と、端末送信部と、端末受信部と、受信情報処理部とを備えた端末装置を用いて行われる端末処理方法であって、
前記端末プログラム処理部が、前記端末プログラムを実行する端末プログラム処理ステップと、
前記ユーザ識別情報受付部が、前記端末装置が実行可能なプログラムである端末プログラムを利用可能なユーザの識別情報であるユーザ識別情報を受け付けるユーザ識別情報受付ステップと、
前記ユーザ識別情報送信部が、前記ユーザ識別情報受付ステップにより受け付けたユーザ識別情報を前記中継サーバ装置に送信するユーザ識別情報送信ステップと、
前記端末送信部が、前記端末プログラム格納部に格納されている各端末プログラムにそれぞれ対応付けられた当該端末プログラム識別情報を、前記中継サーバ装置に送信する端末送信ステップと、
前記端末受信部が、前記中継サーバ装置から送信される端末プログラムまたはメッセージの少なくとも一方を受信する端末受信ステップと、
前記受信情報処理部が、前記端末受信ステップにより受信した端末プログラムまたはメッセージの少なくとも一方を処理する受信情報処理ステップとを備えた端末処理方法。
【請求項１７】
コンピュータを、二以上のサーバ装置と二以上の端末装置と通信可能な中継サーバ装置として機能させるためのプログラムであって、
コンピュータを、
前記サーバ装置が送信する端末プログラムまたは前記メッセージの少なくとも一方と、当該端末プログラムを識別する情報である端末プログラム識別情報と、当該端末プログラムのバージョンを示す情報である端末バージョン情報とを受信する第一サーバ側受信部と、
前記端末装置から送信されるユーザ識別情報と、端末プログラム識別情報と、端末バージョン情報とを受信する端末側受信部と、
前記端末側受信部が受信したユーザ識別情報および端末プログラム識別情報と、ユーザ情報格納部に対応付けて格納されている前記端末プログラムを利用可能なユーザのユーザ識別情報と当該ユーザ識別情報に対応するユーザが利用可能な端末プログラムの識別情報である端末プログラム識別情報とを用いて、前記端末側受信部が受信したユーザ識別情報が示すユーザによる前記端末側受信部が受信した端末プログラム識別情報が示す端末プログラムの利用が許可されているか否かを判断する許可判断部と、
前記許可判断部により利用が許可されていると判断された場合に、前記端末側受信部が受信した端末プログラム識別情報と端末バージョン情報とを用いて、前記端末装置が有する端末プログラムに関する不整合を検出する不整合検出部と、
前記不整合検出部による不整合の検出結果に応じて、前記第一サーバ側受信部が受信した端末プログラムまたはメッセージの少なくとも一方を、前記端末側受信部が受信したユーザ識別情報の送信元となる前記端末装置に送信する端末側送信部として機能させるためのプログラム。
【請求項１８】
コンピュータを、中継サーバ装置と通信可能な端末装置として機能させるためのプログラムであって、
コンピュータを、
端末プログラム格納部に格納されている一以上の端末プログラムを実行する端末プログラム処理部と、
ユーザ識別情報を受け付けるユーザ識別情報受付部と、
前記ユーザ識別情報受付部が受け付けたユーザ識別情報を前記中継サーバ装置に送信するユーザ識別情報送信部と、
前記端末プログラム格納部に各端末プログラムにそれぞれ対応付けて格納されている当該端末プログラムを識別する情報である端末プログラム識別情報と、当該端末プログラムのバージョンを示す情報である端末バージョン情報を、前記中継サーバ装置に送信する端末送信部と、
前記中継サーバ装置から送信される端末プログラムまたはメッセージの少なくとも一方を受信する端末受信部と、
前記端末受信部が受信した端末プログラムまたはメッセージの少なくとも一方を処理する受信情報処理部として機能させるためのプログラム。
【請求項１９】
コンピュータを、二以上のサーバ装置と二以上の端末装置と通信可能な中継サーバ装置として機能させるためのプログラムであって、
コンピュータを、
前記サーバ装置が送信する端末プログラムまたは前記メッセージの少なくとも一方と、当該端末プログラムを識別する情報である端末プログラム識別情報と、当該端末プログラムのバージョンを示す情報である端末バージョン情報とを受信する第一サーバ側受信部と、
前記端末装置から送信されるユーザ識別情報と、端末プログラム識別情報とを受信する端末側受信部と、
前記端末側受信部が受信したユーザ識別情報および端末プログラム識別情報と、前記端末プログラムを利用可能なユーザのユーザ識別情報と当該ユーザ識別情報に対応するユーザが利用可能な端末プログラムの識別情報である端末プログラム識別情報と当該端末プログラムの端末バージョン情報とが対応付けられて格納され得るユーザ情報格納部に格納されているユーザ識別情報および端末プログラム識別情報とを用いて、前記端末側受信部が受信したユーザ識別情報が示すユーザによる前記端末側受信部が受信した端末プログラム識別情報が示す端末プログラムの利用が許可されているか否かを判断する許可判断部と、
前記許可判断部により利用が許可されていると判断された場合に、前記端末側受信部が受信した端末プログラム識別情報と、当該端末プログラム識別情報を用いて前記ユーザ情報格納部から取得する端末バージョン情報とを用いて、前記端末装置が有する端末プログラムに関する不整合を検出する不整合検出部と、
前記不整合検出部による不整合の検出結果に応じて、前記第一サーバ側受信部が受信した端末プログラムまたはメッセージの少なくとも一方を、前記端末側受信部が受信したユーザ識別情報の送信元となる前記端末装置に送信する端末側送信部として機能させるためのプログラム。
【請求項２０】
コンピュータを、中継サーバ装置と通信可能な端末装置として機能させるためのプログラムであって、
コンピュータを、
端末プログラム格納部に格納されている一以上の端末プログラムを実行する端末プログラム処理部と、
ユーザ識別情報を受け付けるユーザ識別情報受付部と、
前記ユーザ識別情報受付部が受け付けたユーザ識別情報を前記中継サーバ装置に送信するユーザ識別情報送信部と、
前記端末プログラム格納部に前記各端末プログラムにそれぞれ対応付けられて格納されている当該端末プログラムの識別情報である端末プログラム識別情報を、前記中継サーバ装置に送信する端末送信部と、
前記中継サーバ装置から送信される端末プログラムまたはメッセージの少なくとも一方を受信する端末受信部と、
前記端末受信部が受信した端末プログラムまたはメッセージの少なくとも一方を処理する受信情報処理部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの更新や更新の通知等を行う情報処理システム等に関するものである。
【背景技術】
【０００２】
従来の情報処理システムにおいて、プログラムの更新をネットワーク経由で行うものが知られていた。（例えば、特許文献１参照）。
【特許文献１】特開２００８−２６２４５４号公報（第１頁、第１図等）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来の情報処理システムにおいては、提供先の異なる複数のプログラムについてアップデートを行う際には、それぞれのプログラムを提供するサーバ等にアクセスしてアップデートを行う必要があるため、手間と時間がかかり、ユーザがプログラムにとって必要な更新を、適切に行うことができないという課題があった。
【課題を解決するための手段】
【０００４】
本発明の情報処理システムは、二以上のサーバ装置と、中継サーバ装置と、二以上の端末装置とを備えた情報処理システムであって、前記サーバ装置は、前記端末装置が実行可能なプログラムである端末プログラム、または当該端末プログラムに関するメッセージの少なくとも一方と、当該端末プログラムを識別する情報である端末プログラム識別情報と、当該端末プログラムのバージョンを示す情報である端末バージョン情報とが対応付けて格納され得る第一サーバ格納部と、前記端末プログラムまたは前記メッセージの少なくとも一方と、前記端末プログラム識別情報と、端末バージョン情報とを前記中継サーバ装置に送信する第一サーバ送信部とを備え、前記中継サーバ装置は、前記サーバ装置が送信する端末プログラムまたは前記メッセージの少なくとも一方と、前記端末プログラム識別情報と、前記端末バージョン情報とを受信する第一サーバ側受信部と、前記端末プログラムを利用可能なユーザのユーザ識別情報と、当該ユーザ識別情報に対応するユーザが利用可能な端末プログラムの識別情報である端末プログラム識別情報とが対応付けられて格納され得るユーザ情報格納部と、前記端末装置から送信されるユーザ識別情報と、端末プログラム識別情報と、端末バージョン情報とを受信する端末側受信部と、前記端末側受信部が受信したユーザ識別情報および端末プログラム識別情報と、前記ユーザ情報格納部に格納されているユーザ識別情報および端末プログラム識別情報とを用いて、前記端末側受信部が受信したユーザ識別情報が示すユーザによる前記端末側受信部が受信した端末プログラム識別情報が示す端末プログラムの利用が許可されているか否かを判断する許可判断部と、前記許可判断部により利用が許可されていると判断された場合に、前記端末側受信部が受信した端末プログラム識別情報と端末バージョン情報とを用いて、前記端末装置が有する端末プログラムに関する不整合を検出する不整合検出部と、前記不整合検出部による不整合の検出結果に応じて、前記第一サーバ側受信部が受信した端末プログラムまたはメッセージの少なくとも一方を、前記端末側受信部が受信したユーザ識別情報の送信元となる前記端末装置に送信する端末側送信部とを備え、前記端末装置は、一以上の前記端末プログラムと、当該端末プログラムの端末バージョン情報と、端末プログラム識別情報とが対応付けられて格納され得る端末プログラム格納部と、前記端末プログラムを実行する端末プログラム処理部と、前記ユーザ識別情報を受け付けるユーザ識別情報受付部と、前記ユーザ識別情報受付部が受け付けたユーザ識別情報を前記中継サーバ装置に送信するユーザ識別情報送信部と、前記端末プログラム格納部に格納されている各端末プログラムにそれぞれ対応付けられた端末バージョン情報および端末プログラム識別情報を、前記中継サーバ装置に送信する端末送信部と、前記中継サーバ装置から送信される端末プログラムまたはメッセージの少なくとも一方を受信する端末受信部と、前記端末受信部が受信した端末プログラムまたはメッセージの少なくとも一方を処理する受信情報処理部とを備えた情報処理システムである。
【０００５】
かかる構成により、例えば、提供先の異なる複数のプログラムについてアップデートを行う際においても、中継サーバ装置によりアップデートを行うことができ、プログラムの更新を容易にかつ適切に行うことができる。また、例えば、端末プログラムのバージョンが、サーバ装置１０の提供するバージョンと整合がとれない場合に、端末プログラム等のバージョンを更新したり、更新のためのメッセージをユーザに出力したりすることができる。
【０００６】
また、本発明の情報処理システムは、前記情報処理システムにおいて、前記サーバ装置は、前記端末プログラムに対応してサーバクライアント間の所定の処理を行うためのプログラムであるサーバプログラムまたは当該サーバプログラムに関するメッセージの少なくとも一方と、当該サーバプログラムのバージョンを示す情報であるサーババージョン情報とが対応付けて格納され得る第二サーバ格納部と、前記サーバプログラムまたはメッセージの少なくとも一方と、前記サーババージョン情報とを前記中継サーバ装置に送信する第二サーバ送信部とをさらに備え、前記中継サーバ装置は、前記サーバプログラムまたは当該サーバプログラムに関するメッセージの少なくとも一方と、前記サーババージョン情報とを受信する第二サーバ側受信部と、一以上の前記サーバプログラムまたは当該サーバプログラムに関するメッセージの少なくとも一方と、前記サーババージョン情報とが対応付けられて格納され得るサーバプログラム格納部と、前記第二サーバ側受信部が受信した前記サーバプログラムまたは当該サーバプログラムに関するメッセージの少なくとも一方と、前記サーババージョン情報とを前記サーバプログラム格納部に蓄積するサーバプログラム蓄積部と、前記サーバプログラム格納部に格納されたサーバプログラムを実行する中継プログラム処理部と、前記端末プログラム識別情報と、前記端末バージョン情報と、前記サーババージョン情報とが対応付けられた情報であるバージョン管理情報が一以上格納され得るバージョン管理情報格納部とを更に備え、前記端末側受信部は、前記端末装置から送信される前記端末プログラム識別情報と、前記端末バージョン情報と、前記サーババージョン情報とを受信し、前記不整合検出部は、前記端末側受信部が受信した、端末プログラム識別情報と、端末バージョン情報と、前記サーババージョン情報との組み合わせと、バージョン管理情報格納部に格納されているバージョン管理情報との不整合を検出し、前記端末プログラム格納部は、一以上の前記端末プログラムと、当該端末プログラムの端末バージョン情報と、当該端末プログラムの端末プログラム識別情報と、当該プログラムに対応した前記サーバプログラムについてのサーババージョン情報とが対応付けられて格納されており、前記端末送信部は、前記端末プログラム格納部に格納されている各端末プログラムにそれぞれ対応付けられた端末バージョン情報と、端末プログラム識別情報と、前記サーババージョン情報とを、前記中継サーバ装置に送信する情報処理システムである。
【０００７】
かかる構成により、例えば、端末プログラムやサーバプログラムのバージョンの組合せ等が、正常に動作可能なバージョンの組合せと異なる場合に、バージョン同士の整合がとれるように、端末プログラムのバージョンを更新したり、適切なバージョンの組合せとなるよう、ユーザにメッセージを出力したりすることができ、プログラムの更新を容易にかつ適切に行うことができる。
【０００８】
また、本発明の情報処理システムは、前記情報処理システムにおいて、前記端末側送信部は、前記不整合検出部による不整合の検出結果に応じて、前記端末側受信部が受信した端末プログラム識別情報が示す端末プログラムと対応するサーババージョン情報を変更する指示、または、前記端末側受信部が受信した端末プログラム識別情報が示す端末プログラムに対応するサーババージョン情報に対応付けられて前記サーバプログラム格納部に格納されているメッセージを、前記端末装置に送信し、前記端末受信部は、前記中継サーバ装置から送信されるサーババージョン情報を変更する指示またはサーババージョン情報に対応付けられたメッセージの少なくとも一方を受信し、前記受信情報処理部は、前記端末受信部が受信したサーババージョン情報を変更する指示に応じた処理またはサーババージョン情報に対応付けられたメッセージを出力する処理の少なくとも一方を行う情報処理システムである。
【０００９】
かかる構成により、例えば、端末プログラムやサーバプログラムのバージョンの組合せ等が、正常に動作可能なバージョンの組合せと異なる場合に、バージョン同士の整合がとれるように、サーバプログラムのバージョンを更新したり、適切なバージョンの組合せとなるよう、ユーザにメッセージを出力したりすることができ、プログラムの更新を容易にかつ適切に行うことができる。
【００１０】
また、本発明の情報処理システムは、前記情報処理システムにおいて、前記中継サーバ装置は、前記中継プログラム処理部が前記サーバプログラムを実行する際に利用するデータベースと、当該データベースのバージョン情報であるデータベースバージョン情報とが格納されるデータベース格納部を更に備え、前記バージョン管理情報格納部には、前記端末プログラム識別情報と、前記端末バージョン情報と、前記サーババージョン情報と、前記データベースバージョン情報とが対応付けられた情報であるバージョン管理情報が一以上格納されており、前記端末側受信部は、前記端末装置から送信される端末プログラム識別情報と、端末バージョン情報と、前記サーババージョン情報と、前記データベースバージョン情報とを受信し、前記不整合検出部は、前記端末側受信部が受信した、端末プログラム識別情報と、端末バージョン情報と、前記サーババージョン情報と、前記データベースバージョン情報との組み合わせと、バージョン管理情報格納部に格納されているバージョン管理情報との不整合を検出し、前記端末プログラム格納部は、一以上の前記端末プログラムと、当該端末プログラムの端末バージョン情報と、当該端末プログラムの端末プログラム識別情報と、当該プログラムに対応した前記サーバプログラムについてのサーババージョン情報と、当該サーバプログラムが利用するデータベースのデータベースバージョン情報とが対応付けられて格納されており、前記端末送信部は、前記端末プログラム格納部に格納されている各端末プログラムにそれぞれ対応付けられた前記端末バージョン情報と、前記端末プログラム識別情報と、前記サーババージョン情報と、前記データベースバージョン情報とを、前記中継サーバ装置に送信する情報処理システムである。
【００１１】
端末プログラムやサーバプログラムやデータベースのバージョンの組合せ等が、正常に動作可能なバージョンの組合せと異なる場合に、バージョン同士の整合がとれるように、バージョンを更新したり、適切なバージョンの組合せとなるよう、ユーザにメッセージを出力したりすることができる。
【００１２】
また、本発明の情報処理システムは、前記情報処理システムにおいて、前記サーバ装置は、前記データベースのバージョンを更新するための情報であるデータベース更新情報と、更新の対象となるデータベースを識別する情報であるデータベース識別情報とが対応付けて格納され得る第三サーバ格納部と、前記データベース更新情報と、前記データベース識別情報とを前記中継サーバ装置に送信する第三サーバ送信部とをさらに備え、前記中間サーバ装置は、前記データベース更新情報と、前記データベース識別情報とを受信する第三サーバ側受信部と、前記データベース更新情報と、前記データベース識別情報とが対応付けられて格納され得るデータベース更新情報格納部と、前記第三サーバ側受信部が受信した前記データベース更新情報と、前記データベース識別情報とを前記データベース更新情報格納部に蓄積するデータベース更新情報蓄積部と、前記不整合検出部による不整合の検出結果に応じて、前記端末側受信部が受信した端末プログラム識別情報に対応するデータベースを、前記データベース更新情報格納部に格納されている情報を用いて更新するデータベース更新部とを更に備えた情報処理システムである。
【００１３】
端末プログラムやサーバプログラムやデータベースのバージョンの組合せ等が、正常に動作可能なバージョンの組合せと異なる場合に、バージョン同士の整合がとれるように、データベースのバージョンを更新することができ、データベースの更新を容易にかつ適切に行うことができる。
【００１４】
また、本発明の情報処理システムは、二以上のサーバ装置と、中継サーバ装置と、二以上の端末装置とを備えた情報処理システムであって、前記サーバ装置は、前記端末装置が実行可能なプログラムである端末プログラム、または当該端末プログラムに関するメッセージの少なくとも一方と、当該端末プログラムを識別する情報である端末プログラム識別情報と、当該端末プログラムのバージョンを示す情報である端末バージョン情報とが対応付けて格納され得る第一サーバ格納部と、前記端末プログラムまたは前記メッセージの少なくとも一方と、前記端末プログラム識別情報と、端末バージョン情報とを前記中継サーバ装置に送信する第一サーバ送信部とを備え、前記中継サーバ装置は、前記サーバ装置が送信する端末プログラムまたは前記メッセージの少なくとも一方と、前記端末プログラム識別情報と、前記端末バージョン情報とを受信する第一サーバ側受信部と、前記端末プログラムを利用可能なユーザのユーザ識別情報と、当該ユーザ識別情報に対応するユーザが利用可能な端末プログラムの識別情報である端末プログラム識別情報と、当該端末プログラムの端末バージョン情報とが対応付けられて格納され得るユーザ情報格納部と、前記端末装置から送信されるユーザ識別情報と、端末プログラム識別情報とを受信する端末側受信部と、前記端末側受信部が受信したユーザ識別情報および端末プログラム識別情報と、前記ユーザ情報格納部に格納されているユーザ識別情報および端末プログラム識別情報とを用いて、前記端末側受信部が受信したユーザ識別情報が示すユーザによる前記端末側受信部が受信した端末プログラム識別情報が示す端末プログラムの利用が許可されているか否かを判断する許可判断部と、前記許可判断部により利用が許可されていると判断された場合に、前記端末側受信部が受信した端末プログラム識別情報と、当該端末プログラム識別情報を用いて前記ユーザ情報格納部から取得する端末バージョン情報とを用いて、前記端末装置が有する端末プログラムに関する不整合を検出する不整合検出部と、前記不整合検出部による不整合の検出結果に応じて、前記第一サーバ側受信部が受信した端末プログラムまたはメッセージの少なくとも一方を、前記端末側受信部が受信したユーザ識別情報の送信元となる前記端末装置に送信する端末側送信部とを備え、前記端末装置は、一以上の前記端末プログラムと、端末プログラム識別情報とが対応付けられて格納され得る端末プログラム格納部と、前記端末プログラムを実行する端末プログラム処理部と、前記ユーザ識別情報を受け付けるユーザ識別情報受付部と、前記ユーザ識別情報受付部が受け付けたユーザ識別情報を前記中継サーバ装置に送信するユーザ識別情報送信部と、前記端末プログラム格納部に格納されている各端末プログラムにそれぞれ対応付けられた端末プログラム識別情報を、前記中継サーバ装置に送信する端末送信部と、前記中継サーバ装置から送信される端末プログラムまたはメッセージの少なくとも一方を受信する端末受信部と、前記端末受信部が受信した端末プログラムまたはメッセージの少なくとも一方を処理する受信情報処理部とを備えた情報処理システムである。
【００１５】
かかる構成により、例えば、提供先の異なる複数のプログラムについてアップデートを行う際においても、中継サーバ装置によりアップデートを行うことができ、プログラムの更新を容易にかつ適切に行うことができる。また、例えば、端末プログラムのバージョンが、サーバ装置１０の提供するバージョンと整合がとれない場合に、端末プログラム等のバージョンを更新したり、更新のためのメッセージをユーザに出力したりすることができる。また、中継サーバ装置において、ユーザの利用する端末プログラムやサーバプログラムやデータベース等のバージョン等の管理を行うことができ、バージョンの管理等を一元管理でき、情報の管理が容易となる。
【００１６】
また、本発明の情報処理システムは、前記情報処理システムにおいて、前記サーバ装置は、前記端末プログラムに対応してサーバクライアント間の所定の処理を行うためのプログラムであるサーバプログラムまたは当該サーバプログラムに関するメッセージの少なくとも一方と、当該サーバプログラムのバージョンを示す情報であるサーババージョン情報とが対応付けて格納され得る第二サーバ格納部と、前記サーバプログラムまたはメッセージの少なくとも一方と、前記サーババージョン情報とを前記中継サーバ装置に送信する第二サーバ送信部とをさらに備え、前記中継サーバ装置は、前記サーバプログラムまたは当該サーバプログラムに関するメッセージの少なくとも一方と、前記サーババージョン情報とを受信する第二サーバ側受信部と、一以上の前記サーバプログラムまたは当該サーバプログラムに関するメッセージの少なくとも一方と、前記サーババージョン情報とが対応付けられて格納され得るサーバプログラム格納部と、前記第二サーバ側受信部が受信した前記サーバプログラムまたは当該サーバプログラムに関するメッセージの少なくとも一方と、前記サーババージョン情報とを前記サーバプログラム格納部に蓄積するサーバプログラム蓄積部と、前記サーバプログラム格納部に格納されたサーバプログラムを実行する中継プログラム処理部と、前記端末プログラム識別情報と、前記端末バージョン情報と、前記サーババージョン情報とが対応付けられた情報であるバージョン管理情報が一以上格納され得るバージョン管理情報格納部とを更に備え、前記ユーザ情報格納部には、前記二以上の端末プログラムを利用可能なユーザのユーザ識別情報と、当該ユーザ識別情報に対応するユーザが利用可能な端末プログラムの識別情報である端末プログラム識別情報と、当該端末プログラムの端末バージョン情報と、当該端末プログラムに対応したサーバプログラムのサーババージョン情報とが対応付けられて格納され得るものであり、前記不整合検出部は、前記端末側受信部が受信した端末プログラム識別情報と、当該端末プログラム識別情報を用いて前記ユーザ情報格納部から取得する端末バージョン情報およびサーババージョン情報との組合せと、バージョン管理情報格納部に格納されているバージョン管理情報との不整合を検出する情報処理システムである。
【００１７】
かかる構成により、例えば、端末プログラムやサーバプログラムのバージョンの組合せ等が、正常に動作可能なバージョンの組合せと異なる場合に、バージョン同士の整合がとれるように、端末プログラムのバージョンを更新したり、適切なバージョンの組合せとなるよう、ユーザにメッセージを出力したりすることができ、プログラムの更新を容易にかつ適切に行うことができる。
【００１８】
また、本発明の情報処理システムは、前記情報処理システムにおいて、前記端末側送信部は、前記不整合検出部による不整合の検出結果に応じて、前記端末側受信部が受信した端末プログラム識別情報が示す端末プログラムと対応するサーババージョン情報を変更する指示、または、前記端末側受信部が受信した端末プログラム識別情報が示す端末プログラムに対応するサーババージョン情報に対応付けられて前記サーバプログラム格納部に格納されているメッセージを、前記端末装置に送信し、前記端末受信部は、前記中継サーバ装置から送信されるサーババージョン情報を変更する指示またはサーババージョン情報に対応付けられたメッセージの少なくとも一方を受信し、前記受信情報処理部は、前記端末受信部が受信したサーババージョン情報を変更する指示に応じた処理またはサーババージョン情報に対応付けられたメッセージを出力する処理の少なくとも一方を行う情報処理システムである。
【００１９】
かかる構成により、例えば、端末プログラムやサーバプログラムのバージョンの組合せ等が、正常に動作可能なバージョンの組合せと異なる場合に、バージョン同士の整合がとれるように、サーバプログラムのバージョンを更新したり、適切なバージョンの組合せとなるよう、ユーザにメッセージを出力したりすることができ、プログラムの更新を容易にかつ適切に行うことができる。
【００２０】
また、本発明の情報処理システムは、前記情報処理システムにおいて、前記中継サーバ装置は、前記中継プログラム処理部が前記サーバプログラムを実行する際に利用するデータベースと、当該データベースのバージョン情報であるデータベースバージョン情報とが格納されるデータベース格納部を更に備え、前記バージョン管理情報格納部には、前記端末プログラム識別情報と、前記端末バージョン情報と、前記サーババージョン情報と、前記データベースバージョン情報とが対応付けられた情報であるバージョン管理情報が一以上格納されており、前記不整合検出部は、前記端末側受信部が受信した端末プログラム識別情報と、当該端末プログラム識別情報を用いて前記ユーザ情報格納部から取得する端末バージョン情報およびサーババージョン情報との組合せと、バージョン管理情報格納部に格納されているバージョン管理情報との不整合を検出する情報処理システムである。
【００２１】
端末プログラムやサーバプログラムやデータベースのバージョンの組合せ等が、正常に動作可能なバージョンの組合せと異なる場合に、バージョン同士の整合がとれるように、バージョンを更新したり、適切なバージョンの組合せとなるよう、ユーザにメッセージを出力したりすることができる。
【００２２】
また、本発明の情報処理システムは、前記情報処理システムにおいて、前記サーバ装置は、前記データベースのバージョンを更新するための情報であるデータベース更新情報と、更新の対象となるデータベースを識別する情報であるデータベース識別情報とが対応付けて格納され得る第三サーバ格納部と、前記データベース更新情報と、前記データベース識別情報とを前記中継サーバ装置に送信する第三サーバ送信部とをさらに備え、前記中間サーバ装置は、前記データベース更新情報と、前記データベース識別情報とを受信する第三サーバ側受信部と、前記データベース更新情報と、前記データベース識別情報とが対応付けられて格納され得るデータベース更新情報格納部と、前記第三サーバ側受信部が受信した前記データベース更新情報と、前記データベース識別情報とを前記データベース更新情報格納部に蓄積するデータベース更新情報蓄積部と、前記不整合検出部による不整合の検出結果に応じて、前記端末側受信部が受信した端末プログラム識別情報に対応するデータベースを、前記データベース更新情報格納部に格納されている情報を用いて更新するデータベース更新部とを更に備えた情報処理システムである。
【００２３】
端末プログラムやサーバプログラムやデータベースのバージョンの組合せ等が、正常に動作可能なバージョンの組合せと異なる場合に、バージョン同士の整合がとれるように、データベースのバージョンを更新することができ、データベースの更新を容易にかつ適切に行うことができる。
【００２４】
また、本発明の情報処理システムは、前記情報処理システムを構成する中間サーバ装置である。
【００２５】
かかる構成により、プログラムの更新を容易にかつ適切に行うことができる。
【００２６】
また、本発明の情報処理システムは、前記情報処理システムを構成する端末装置である。
【００２７】
かかる構成により、プログラムの更新を容易にかつ適切に行うことができる。
【発明の効果】
【００２８】
本発明による情報処理システム等によれば、プログラムの更新を適切に行うことができる。
【発明を実施するための最良の形態】
【００２９】
以下、情報処理システム等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
【００３０】
（実施の形態１）
図１は、本実施の形態における情報処理システムの概念図である。なお、本実施の形態に係るメッセージ配信システム等は、例えば、企業や組織の主幹業務のシステム等の一部を構成していると考えても良い。かかることは他の実施の形態においても同様である。ただし、情報処理システムがどのような用途や目的のシステムであっても良い。
【００３１】
情報処理システムは、二以上のサーバ装置１０、中継サーバ装置２０、および２以上の端末装置３０を備えている。サーバ装置１０、および端末装置３０はそれぞれ一以上であれば数は問わない。
【００３２】
二以上のサーバ装置１０と中継サーバ装置２０、および中継サーバ装置２０と二以上の端末装置３０は、それぞれ、通信回線やネットワーク等を介して、情報の送受信が可能となるよう接続されている。ここでは、例として、なお、二以上のサーバ装置１０と中継サーバ装置２０がネットワーク５０を介して接続され、中継サーバ装置２０と二以上の端末装置３０がネットワーク６０を介して接続されている例について示している。なお、二以上のサーバ装置１０と中継サーバ装置２０と二以上の端末装置３０とが、一の通信回路やネットワーク等を介して接続されていても良い。各装置は、例えば、インターネットや、無線や有線のＬＡＮ等のネットワークで接続されていてもよいし、ブルートゥース（登録商標）等の近距離無線通信により接続されていてもよい。ただし、各装置間の接続方法は問わない。また、情報の送受信の手段は、通信手段でも、放送手段等でも良い。
【００３３】
図２は、本実施の形態における情報処理システム１の、サーバ装置１０、中継サーバ装置２０の構成を示すブロック図である。
【００３４】
また、図３は、本実施の形態における情報処理システム１の、端末装置３０の構成を示すブロック図である。
【００３５】
なお、図２および図３では、説明の便宜上、サーバ装置１０および端末装置３０が、それぞれ一つの場合を例に挙げて示しているが、実際には複数である。
【００３６】
サーバ装置１０は、第一サーバ格納部１００１、第一サーバ送信部１００２、第二サーバ格納部１００３、第二サーバ送信部１００４、第三サーバ格納部１００５、第三サーバ送信部１００６を備えている。
【００３７】
中継サーバ装置２０は、第一サーバ側受信部２００１、中継端末プログラム蓄積部２００２、中継端末プログラム格納部２００３、第二サーバ側受信部２００４、サーバプログラム蓄積部２００５、サーバプログラム格納部２００６、第三サーバ側受信部２００７、データベース更新情報蓄積部２００８、データベース更新情報格納部２００９、端末側受信部２０１０、ユーザ情報格納部２０１１、許可判断部２０１２、バージョン管理情報格納部２０１３、不整合検出部２０１４、端末側送信部２０１５、中継プログラム処理部２０１６、データベース格納部２０１７、データベース更新部２０１８を備えている。
【００３８】
端末装置３０は、端末プログラム格納部３００１、端末プログラム処理部３００２、ユーザ識別情報受付部３００３、ユーザ識別情報送信部３００４、端末送信部３００５、端末受信部３００６、受信情報処理部３００７、および出力部３００８を備えている。
【００３９】
サーバ装置１０は、主として、中継サーバ装置２０と端末装置３０とをそれぞれ、所定の処理を行うためのサーバおよびクライアントとして機能させるためのサーバクライアント型のプログラムを、中継サーバ装置２０と端末装置３０とにそれぞれ提供する装置である。サーバ装置１０は、例えばコンピュータ等で実現可能である。サーバクライアント型のプログラムとは、例えば、クライアントとなる装置から送信される要求に応じて、サーバとなる装置が所定の処理を行い、その処理結果をクライアント装置に返す処理を実現させるためのプログラムである。サーバ装置１０が提供するプログラムにより実行される所定の処理は、どのような処理であっても良い。所定の処理は、例えば、企業等の主幹業務等に関する処理である。異なるサーバ装置１０は、通常、異なる処理を実現するサーバクライアント型のプログラムを提供することが好ましいが、同様の処理を実現するサーバクライアント型のプログラムを提供してもよい。また、一のサーバ装置は、実現する処理の異なる複数のサーバクライアント型のソフトウェアを提供しても良い。各サーバ装置１０が提供するソフトウェアの具体例を挙げると、財務ソフトウェアや、給与管理ソフトウェア、人事管理ソフトウェア等である。ただし、これらのソフトウェア以外のソフトウェアであっても良い。
【００４０】
第一サーバ格納部１００１は、後述する端末装置３０が実行可能なプログラムである一以上の端末プログラム、または当該端末プログラムに関するメッセージ（以下、端末メッセージと称す）の少なくとも一方と、当該端末プログラムを識別する情報である端末プログラム識別情報と、当該端末プログラムのバージョンを示す情報である端末バージョン情報とが対応付けて格納され得る。端末プログラムは、例えば、中継サーバ装置２０と端末装置３０との間で所定の処理を実現するためのサーバクライアント型プログラムのうちの、クライアント用のプログラムである。通常、一のサーバクライアント型プログラムを構成するクライアント用のプログラムは、サーバ用のプログラムと対をなしている。端末プログラムは、例えば、サーバ用のプログラムに対して情報を送信するための入力インターフェース等を端末装置３０に提供するプログラムである。第一サーバ格納部１００１には、一の端末プログラムについての、異なるバージョンの端末プログラム、または端末メッセージが格納されても良い。例えば、バージョンが異なる端末プログラムは、対応する端末プログラム識別情報が同じであり、かつ対応する端末バージョン情報が異なるプログラムとして個別に格納される。また、端末プログラムは、バージョンの古い端末プログラムを更新可能な形式のプログラムや、差分データ等のデータ、いわゆるアップデータとして第一サーバ格納部１００１に格納されても良い。
【００４１】
端末メッセージは、具体的には、端末プログラムのバージョンに関するメッセージを含むメッセージである。例えば、当該メッセージが対応するバージョンの端末プログラムへの更新を促すためのメッセージや、更新時の注意等の、更新に関するコメント等のメッセージである。ただし、端末メッセージは端末プログラムに関するメッセージであれば、他のメッセージを含んでも良い。端末メッセージは、端末バージョン情報に対応付けられて第一サーバ格納部１００１に格納されているメッセージと考えても良い。
【００４２】
端末プログラム識別情報は、端末プログラムを他の端末プログラムから識別可能な情報であればよい。端末プログラム識別情報は、例えば、端末プログラムの名前や、端末プログラムの実行ファイル名や、端末プログラムの製品名や略称等であってもよい。なお、端末プログラム識別情報として、当該端末プログラムを含むサーバクライアント型のプログラムの識別情報を用いるようにしても良い。
【００４３】
端末バージョン情報は、例えば、数値等により、端末プログラムのバージョンを示す情報である。ただし、「最新」、「バグフィックス版」、「β版」等の文字列等でバージョンを示す情報であっても良い。バージョン情報とは、例えば、同じプログラムについての版や改訂数を示す情報である。なお、いわゆるビルド番号や、試用版であることを示す情報や、更新が行われた日時の情報等も、バージョン情報と考えるようにしてもよい。
【００４４】
具体的には、「会計ソフトＡＢＣ、Ｖｅｒ．２．２」という端末プログラムにおいては、「会計ソフトＡＢＣ」が端末プログラム識別情報、「Ｖｅｒ．２．２」、あるいは「２．２」が端末バージョン情報である。
【００４５】
第一サーバ格納部１００１に、端末プログラムまたは端末メッセージの少なくとも一方と、端末プログラム識別情報と、端末バージョン情報とが蓄積される手段やタイミング等は問わない。例えば、図示しない受付部等を介して受け付けたこれらのデータが、図示しない蓄積部により第一サーバ格納部１００１に蓄積される。第一サーバ格納部１００１は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【００４６】
第一サーバ送信部１００２は、端末プログラムまたはメッセージの少なくとも一方と、当該端末プログラムまたは端末メッセージに対応付けられた端末プログラム識別情報と端末バージョン情報とを第一サーバ格納部１００１から読み出し、中継サーバ装置２０に送信する。第一サーバ送信部１００２が、どのようなトリガーによって、これらの送信対象となるデータを送信するかは問わない。例えば、予め指定されたタイミングで、これらの情報を送信しても良い。また、サーバ装置１０が、図示しない受付部等を介して、ユーザ等から、上記のデータを送信する指示を受け付けた場合にデータを送信しても良い。また、中継サーバ装置２０から送信される、上記の情報の送信を要求する情報を、図示しない受信部等が受信した場合、この要求に応じて送信しても良い。なお、第一サーバ送信部１００２が送信する端末プログラムまたは端末メッセージ等は、中継サーバ装置２０に対して未送信のものや、最新のものに限定するようにしても良い。第一サーバ送信部１００２は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
【００４７】
第二サーバ格納部１００３は、上述した一以上の端末プログラムに対応してサーバクライアント間の所定の処理を行うためのプログラムである一以上のサーバプログラムまたは当該サーバプログラムに関するメッセージ（以下、サーバメッセージと称す）の少なくとも一方と、当該サーバプログラムのバージョンを示す情報であるサーババージョン情報とが対応付けて格納され得る。サーバプログラムは、上述した端末プログラムと対をなすプログラムであって、中継サーバ装置２０において実行可能されて、サーバクライアント間の所定の処理を実現するプログラムである。
【００４８】
サーバプログラムは、例えば、端末プログラムから送信される情報を処理する機能を端末装置３０に提供するプログラムである。第二サーバ格納部１００３には、一のサーバプログラムについての、異なるバージョンのサーバプログラム、またはサーバメッセージが格納されても良い。例えば、バージョンが異なる端末プログラムは、対応する端末プログラム識別情報が同じであり、かつ対応する端末バージョン情報が異なるプログラムとして個別に格納される。また、サーバプログラムは、バージョンの古いサーバプログラムを更新可能な形式のプログラムや、差分データ等のデータ、いわゆるアップデータとして第二サーバ格納部１００３に格納されても良い。
【００４９】
サーバメッセージは、具体的には、サーバプログラムのバージョンに関するメッセージを含むメッセージである。例えば、ユーザが利用するサーバプログラムを、当該メッセージが対応するバージョンのサーバプログラムに更新することを促すためのメッセージや、更新時の注意等の、更新に関するコメント等のメッセージである。ただし、サーバメッセージはサーバプログラムに関するメッセージであれば、他のメッセージを含んでも良い。サーバメッセージは、サーババージョン情報に対応付けられて、第二サーバ格納部１００３に格納されているメッセージと考えても良い。
【００５０】
第二サーバ格納部１００３に格納され得るサーバメッセージやサーババージョン情報等については、端末プログラムではなくサーバプログラムに関するメッセージやバージョン情報である点を除けば、上述した端末メッセージや端末バージョン情報等と同様であるので、説明は省略する。
【００５１】
また、第二サーバ格納部１００３には、一以上のサーバプログラムを識別するための情報であるサーバプログラム識別情報が、前記サーバプログラムまたはサーバメッセージと対応付けて格納されるようにしても良い。サーバプログラム識別情報は、サーバプログラムを他のサーバプログラムから識別可能な情報であればよい。サーバプログラム識別情報は、例えば、端末プログラムの名前や、端末プログラムの実行ファイル名や、端末プログラムの製品名や略称等であってもよい。なお、サーバプログラム識別情報と、当該サーバプログラム識別情報に対応する端末プログラムについての端末プログラム識別情報とを同じ識別情報としても良い。また、サーバプログラム識別情報として、当該サーバプログラムを含むサーバクライアント型のプログラムの識別情報を用いるようにしても良い。この実施の形態においては、サーバプログラム識別情報が格納され得る場合を例に挙げて説明する。第二サーバ格納部１００３は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。なお、第一サーバ格納部１００１または第二サーバ格納部１００３には、対応するサーバプログラムと端末プログラムの、サーバプログラム識別情報と端末プログラム識別情報とを管理する管理情報が格納されるようにしても良い。また、この管理情報は、第一サーバ送信部１００２や後述する第二サーバ送信部１００４等から中継サーバ装置２０に送信されるようにしても良い。なお、第一サーバ格納部１００１と第二サーバ格納部１００３とを一の格納部で実現するようにしても良い。
【００５２】
第二サーバ送信部１００４は、サーバプログラムまたはサーバメッセージの少なくとも一方と、当該サーバプログラムまたはサーバメッセージに対応付けられたサーババージョン情報とを、第二サーバ格納部１００３から読み出し、中継サーバ装置２０に送信する。さらに、第二サーバ送信部１００４は、サーバプログラムまたはサーバメッセージに対応付けられたサーバプログラム識別情報を中継サーバ装置２０に送信しても良い。なお、第二サーバ送信部１００４が送信するサーバプログラムまたはサーバメッセージ等は、中継サーバ装置２０に対して未送信のものや、最新のものに限定するようにしても良い。第二サーバ送信部１００４の構成等については、送信する対象がサーバプログラムに関するデータである点を除けば、上記第一サーバ送信部１００２と同様であるので、ここでは詳細な説明は省略する。第二サーバ送信部１００４は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。なお、第二サーバ送信部１００４と第一サーバ送信部１００２とを一の送信手段等により実現するようにしても良い。
【００５３】
第三サーバ格納部１００５は、中継サーバ装置２０が有するデータベースのバージョンを更新するための情報である一以上のデータベース更新情報と、更新の対象となるデータベースのデータベース識別情報と、更新後のデータベースのバージョン情報である更新後バージョン情報と、が対応付けて格納され得る。中継サーバ装置２０が有するデータベースについては、後述する。データベースの更新とは、例えばデータ変換やスキーマの変換等である。データベース更新情報は、例えば、データベースの更新を行うプログラムやアップデータやデータベースの変換の際に利用される情報である。例えば、データベースを変換する実行ファイルや、変換後のデータベースの設定情報等である。当該データベース更新情報を用いてデータベースを変換することで、データベースのバージョンアップが行われる。データベース更新情報は、変換後のデータベースバージョン情報を有していても良い。更新後バージョン情報は、データベース更新情報で更新を行って得られるデータベースのバージョン情報である。更新後バージョン情報は、例えば、バージョンを示す数値や文字列を含む情報である。なお、バージョンの高いデータベースが常に下位互換性を有する場合等のように、データベースのバージョンを最も高いバージョンに変更して良い場合等には更新後バージョン情報を省略することもできる。通常、データベース変更情報は、現在のデータベースのバージョンを検出して、そのバージョンにあったバージョンの変換を行う。なお、データベース更新情報が、全てのバージョンのデータベースを更新可能なものでない場合等には、更新対象のデータベースのバージョンを指定するための対象バージョン情報を設けるようにしても良い。対象バージョン情報は、各データベース更新情報が、更新の対象となるデータベースのバージョンを示す情報である。当該対象バージョン情報が指定するバージョンのデータベースを、データベース更新情報を用いて更新することができる。データベース識別情報は、例えば、データベース名である。また、当該データベースを利用するサーバプログラムや端末プログラム等のサーバプログラム識別情報や端末プログラム識別情報等でもよい。各データベース更新情報は、具体的には、対応する対象データベース識別情報と一致する識別情報を有するデータベースであって、対応する更新後バージョン情報が示すバージョンとなるようにデータベースを更新する際に用いられる。第三サーバ格納部１００５は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。なお、第一サーバ格納部１００１と第二サーバ格納部１００３と第三サーバ格納部１００５とを、一の格納部により実現するようにしても良い。
【００５４】
第三サーバ送信部１００６は、データベース更新情報と、当該データベース更新情報に対応するデータベース識別情報および更新後バージョン情報とを、第三サーバ格納部１００５から読み出し、中継サーバ装置２０に送信する。また、対象バージョン情報がある場合、当該対象バージョン情報も送信する。第三サーバ送信部１００６は、送信するデータがデータベースの更新に関するデータである点を除けば、上述した第一サーバ送信部１００２と同様であるので、詳細な説明は省略する。
【００５５】
中継サーバ装置２０は、例えば、一以上のサーバプログラムを実行するサーバである。中継サーバ装置２０は、例えば、端末プログラムを実行する二以上の端末装置３０からそれぞれ適宜送信される要求に応じて、当該端末プログラムに対応したサーバプログラムを実行させて処理を行い、その処理結果を端末装置３０に送信する。中継サーバ装置２０は、ここでは、省略しているが、例えば、端末装置３０から送信される要求や情報等を受信する受信部と、当該要求や情報について実行した処理の結果を端末装置３０に送信する送信部等を備えている。また、中継サーバ装置２０は、一以上のサーバ装置１０に対して、端末プログラムや端末メッセージ、サーバプログラム、サーバメッセージ等の送信を要求する情報を送信する送信部（図示せず）等を備えていてもよい。この送信部から、例えば、未送信である端末プログラムや端末メッセージ、サーバプログラム、サーバメッセージ等の送信を要求する情報を、ユーザが中継サーバ装置２０にログインした直後等の所定のタイミングで送信するようにしても良い。中継サーバ装置２０は、例えばコンピュータ等で実現可能である。
【００５６】
第一サーバ側受信部２００１は、サーバ装置１０が送信する一以上の端末プログラムまたは端末メッセージの少なくとも一方と、各端末プログラムまたは端末メッセージに対応する端末プログラム識別情報と、端末バージョン情報とを受信する。第一サーバ側受信部２００１は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
【００５７】
中継端末プログラム蓄積部２００２は、第一サーバ側受信部２００１が受信した一以上の端末プログラムまたは端末メッセージの少なくとも一方と、当該各端末プログラムまたは端末メッセージに対応する端末プログラム識別情報と、端末バージョン情報とを対応付けて、中継端末プログラム格納部２００３に蓄積する。中継端末プログラム蓄積部２００２は、通常、ＭＰＵやメモリ等から実現され得る。中継端末プログラム蓄積部２００２の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００５８】
中継端末プログラム格納部２００３は、一以上の端末プログラムと、当該端末プログラムの端末バージョン情報と、端末プログラム識別情報とが対応付けられて格納され得る。なお、中継端末プログラム格納部２００３には、予め端末プログラム等が格納されていても良い。また、上述したように、中継端末プログラム蓄積部が２００２や、図示しない受付部等が受け付けた端末用プログラム等が図示しない蓄積部等により蓄積されても良い。中継端末プログラム格納部２００３は、不揮発性の記録媒体または揮発性の記録媒体で実現可能である。
【００５９】
第二サーバ側受信部２００４は、サーバ装置１０が送信する一以上のサーバプログラムまたはサーバメッセージの少なくとも一方と、当該サーバプログラムのサーババージョン情報とを受信する。また、サーバ装置１０がサーバプログラムに対応したサーバプログラム識別情報を送信する場合、当該サーバプログラムを受信しても良い。第二サーバ側受信部２００４は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
【００６０】
サーバプログラム蓄積部２００５は、第二サーバ側受信部２００４が受信したサーバプログラムまたは当該サーバプログラムに関するメッセージの少なくとも一方と、サーババージョン情報とを対応付けてサーバプログラム格納部２００６に蓄積する。さらに第二サーバ側受信部２００４が受信したサーバプログラム識別情報を対応付けて蓄積しても良い。サーバプログラム蓄積部２００５は、通常、ＭＰＵやメモリ等から実現され得る。なお、サーバプログラムの蓄積は、受信したサーバプログラムをそのまま蓄積することであっても良いし、サーバプログラムが後述する中継プログラム処理部２０１６で実行可能な状態となるよう蓄積すること、即ちいわゆるインストール等であってもよい。インストールは、圧縮されているプログラムファイルを展開したり、プログラムの設定等を行うこと等である。サーバプログラム蓄積部２００５の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００６１】
サーバプログラム格納部２００６は、一以上のサーバプログラムまたは当該サーバプログラムに関するメッセージの少なくとも一方と、サーババージョン情報とが対応付けられて格納され得る。また、サーバプログラム識別情報が対応付けられて格納されても良い。ここでのサーバプログラムの格納は、実行可能な状態での格納であっても良いし、実行できない状態の格納であっても良い。サーバプログラム格納部２００６は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【００６２】
第三サーバ側受信部２００７は、サーバ装置１０から送信される一以上のデータベース更新情報と、当該データベース更新情報に対応するデータベース識別情報および更新後バージョン情報を受信する。また、対象バージョン情報も受信しても良い。第三サーバ側受信部２００７は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
【００６３】
データベース更新情報蓄積部２００８は、第三サーバ側受信部２００７が受信した一以上のデータベース更新情報と、当該データベース更新情報に対応するデータベース識別情報および更新後バージョン情報とを対応付けてデータベース更新情報格納部２００９に蓄積する。対象バージョン情報を受信した場合、当該対象バージョン情報も蓄積して良い。データベース更新情報蓄積部２００８は、通常、ＭＰＵやメモリ等から実現され得る。データベース更新情報蓄積部２００８の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００６４】
データベース更新情報格納部２００９は、データベース更新情報と、当該データベース更新情報に対応するデータベース識別情報および更新後バージョン情報とが対応付けられて格納され得る。対象バージョン情報も格納されるようにしても良い。データベース更新情報格納部２００９は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【００６５】
端末側受信部２０１０は、端末装置３０から送信されるユーザ識別情報と、端末プログラム識別情報と、端末バージョン情報とを受信する。ここで述べるユーザとは、個人と考えても良いし、グループや、企業等の組織や団体等と考えても良い。ユーザ識別情報は、例えば、後述する端末装置３０の端末プログラムを利用可能なユーザを識別するための情報である。なお、ユーザ識別情報を、サーバプログラムを利用可能なユーザを識別可能な情報と考えても良い。ユーザ識別情報は、例えば、ユーザ名や、社員番号等である。また、グループ名や企業名等のユーザのグループを識別する情報と考えてもよい。ユーザ識別情報として、ユーザが利用する端末装置３０の識別情報、例えば機器名や、ＩＰアドレスやＭＡＣアドレス等を用いるようにしても良い。端末プログラムを利用するユーザのユーザ識別情報と、ログイン時等のユーザ認証に利用される識別情報とを同じものとしてもよい。ユーザ識別情報と、端末プログラムとの対応関係は一対一に限るものではなく、一対多や多対一で対応していても良い。例えば、一の端末プログラムに対して、当該端末プログラムを利用するためのユーザＩＤが複数対応付けられていてもよい。端末側受信部２０１０が受信する端末プログラム識別情報および端末バージョン情報は、具体的には、ユーザ識別情報が示すユーザが利用可能な一以上端末プログラムのそれぞれについての端末プログラム識別情報と端末バージョン情報とである。
【００６６】
なお、端末側受信部２０１０は、端末装置３０から送信されるユーザ識別情報と、端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報とを受信するようにしても良い。この場合の端末プログラム識別情報、端末バージョン情報、およびサーババージョン情報は、具体的には、ユーザ識別情報が示すユーザが利用可能な一以上端末プログラムのそれぞれについての端末プログラム識別情報と、端末バージョン情報と、当該端末プログラムに対して対になるサーバプログラムのサーババージョン情報である。ここでの対になるとは、当該端末プログラムとともにサーバクライアントとして所定の処理を行うことを意味する。この場合、端末側受信部２０１０は、このサーバプログラムのサーバプログラム識別情報を受信するようにしても良い。
【００６７】
また、端末側受信部２０１０は、端末装置３０から送信されるユーザ識別情報と、端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報と、データベースバージョン情報とを受信してもよい。この場合の、端末プログラム識別情報、端末バージョン情報、サーババージョン情報、およびデータベースバージョン情報は、ユーザ識別情報が示すユーザが利用可能な一以上の端末プログラムの端末プログラム識別情報および端末バージョン情報と、当該端末プログラムと対になるサーバプログラムのサーババージョン情報と、当該端末プログラムと対になるサーバプログラムが利用するデータベースのデータベースバージョン情報である。
【００６８】
データベースは、サーバプログラムが処理を実行する際に利用するデータベースである。データベースは、複数のユーザ（例えば個人やグループや組織等）で共用されていても良いし、サーバプログラムを利用するユーザ毎に設けられていてもよい。また、データベースバージョン情報は、データベースのバージョンを示す情報である。サーバプログラムが利用するデータベースを指定する情報は、サーバプログラム内に格納されていても良いし、中継サーバ装置内の図示しない格納部等に蓄積されていても良い。なお、サーバプログラムが利用するデータベースが複数存在する場合等のように、サーバプログラムが利用するデータベースが端末プログラム識別情報を用いて識別できない場合等においては、データベースに対してデータベースの識別情報であるデータベース識別情報を対応付けるようにし、端末側受信部２０１０は上記の情報に加えて、データベースバージョン情報に対応したデータベース識別情報を受信するようにしてもよい。かかることは、他の実施の形態等においても同様である。端末側受信部２０１０が受信したデータ等は図示しない記憶媒体等に蓄積される。
【００６９】
なお、端末側受信部２０１０は、上記の情報に加えて、端末装置３０から送信されるパスワードの情報等を受信しても良い。端末側受信部２０１０は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
【００７０】
ユーザ情報格納部２０１１は、端末装置３０が実行可能な端末プログラムを利用可能なユーザのユーザ識別情報と、当該ユーザ識別情報に対応するユーザが利用可能な端末プログラムの識別情報である端末プログラム識別情報とが対応付けられて格納され得る。また、ユーザ識別情報と対応付けて、パスワード等の情報が対応付けられて格納されるようにしても良い。ユーザ情報格納部２０１１にこれらの情報が蓄積される手段やタイミング等は問わない。例えば、予め格納されていても良い。また、サーバ装置１０や端末装置３０等からの指示に応じて、これらの情報が新規に蓄積されたり更新されても良い。また、ユーザ情報格納部２０１１には、端末プログラムやサーバプログラムについての更新の要否を指定する情報が対応付けて格納されているようにしてもよい。ユーザ情報格納部２０１１は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【００７１】
許可判断部２０１２は、端末側受信部２０１０が受信したユーザ識別情報および端末プログラム識別情報と、ユーザ情報格納部２０１１に格納されているユーザ識別情報および端末プログラム識別情報とを用いて、端末側受信部２０１０が受信したユーザ識別情報が示すユーザによる端末側受信部２０１０が受信した端末プログラム識別情報が示す端末プログラムの利用が許可されているか否かを判断する。具体的には、端末側受信部２０１０が受信したユーザ識別情報と端末プログラム識別情報の組合せと一致するユーザ識別情報と端末プログラム識別情報の組合せをユーザ情報格納部２０１１において検索し、一致する組合せが検出された場合、受信したユーザ識別情報に対応するユーザによる、受信した端末プログラム識別情報が示す端末プログラムの利用が許可されていると判断し、検出されない場合、許可されていないと判断する。なお、結果的に許可されていることを示している判断結果が得られれば、必ずしも、許可されていることを直接示す判断結果が得られなくても、ここでは、許可されていることが判断されたと考える。なお、端末側受信部２０１０が受信する情報と、ユーザ情報格納部２０１１に格納されている情報に、パスワードの情報等が含まれる場合、さらに、このパスワードの情報も一致するか否かを判断するようにし、一致する場合、許可されていると判断するようにしても良い。なお、この許可判断部２０１２は、プログラムの利用に関する認証処理と考えても良い。許可判断部２０１２は、通常、ＭＰＵやメモリ等から実現され得る。許可判断部２０１２の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００７２】
バージョン管理情報格納部２０１３には、端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報とが対応付けられた情報であるバージョン管理情報が一以上格納され得る。バージョン管理情報は、具体的には、サーバクライアントとして所定の処理を行うサーバプログラムと端末プログラムとの組が、正常に動作するために必要なサーバプログラムと端末プログラムのバージョンの対応関係を示す情報である。一の端末プログラムに対応して動作するサーバプログラムは、通常予め決まっているため、ここでは、サーバプログラム識別情報は省略しているが、特に一の端末プログラムと動作するサーバプログラムが任意に指定できる場合等には、サーバプログラム識別情報を用いるようにしても良い。なお、バージョン管理情報における端末バージョン情報は、例えば、「バージョン１０以上」等の、端末バージョン情報の範囲を示すものであっても良い。
【００７３】
また、サーバプログラムがデータベースを利用するプログラムである場合、バージョン管理情報は、端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報と、前記データベースバージョン情報とが対応付けられた情報としてもよい。このバージョン管理情報は、具体的には、サーバクライアントとして所定の処理を行うサーバプログラムと端末プログラムとデータベースの組が、正常に動作するために必要なサーバプログラムと端末プログラムとデータベースのバージョンの対応関係を示す情報である。なお、バージョン管理情報は、データベースバージョン情報に対応するデータベースを指定するためのデータベース識別情報を有していても良い。バージョン管理情報がどのようにバージョン管理情報格納部２０１３に格納されるかは問わない。例えば、サーバ装置１０の第一サーバ格納部１００１や第二サーバ格納部１００３や第三サーバ格納部１００５に格納されている端末プログラムやサーバプログラムやデータベース更新情報等に対応付けられて一以上のバージョン管理情報が格納されているようにし、端末プログラムやサーバプログラムやデータベース更新情報等が中継サーバ装置２０に送信される際に、これらに対応するバージョン管理情報も送信されるようにし、端末プログラムやサーバプログラムやデータベース更新情報等ともに受信したバージョン管理情報を、第一サーバ側受信部２００１や第二サーバ側受信部２００４や第三サーバ側受信部２００７等が、バージョン管理情報格納部２０１３に蓄積、例えば追記するようにしても良い。バージョン管理情報格納部２０１３は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【００７４】
なお、どの端末プログラムとサーバプログラムが対応して動作するかについては、例えば、中継サーバ装置２０の図示しない格納部等に、対応して動作するサーバプログラムと端末プログラムの、サーバプログラム識別情報と端末プログラム識別情報とを対応付けて管理する管理情報等を設けるようにして、当該情報を用いて管理しても良いし、上述したように、サーバプログラム識別情報と端末プログラム識別情報を一致する識別情報にするようにして、一致する識別情報を有するサーバプログラムと端末プログラムとがサーバクライアント型のプログラムとして動作するようにしても良い。データベースについても同様である。なお、ここでの一致は完全一致であっても部分一致であっても良い。
【００７５】
不整合検出部２０１４は、許可判断部２０１２により端末側受信部２０１０が受信したユーザ識別情報が示すユーザにより、端末側受信部２０１０が受信した端末プログラム識別情報に対応した端末プログラムの利用が許可されていると判断された場合に、端末側受信部２０１０が受信した端末プログラム識別情報と、端末バージョン情報とを用いて、端末装置３０が有する端末プログラムに関する不整合を検出する。また、ユーザ識別情報が示すユーザにより端末プログラムの利用が許可されていると判断された場合に、端末側受信部２０１０が受信した端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報とを用いて、端末装置３０が有する端末プログラムに関する不整合を検出してもよい。また、ユーザ識別情報が示すユーザにより端末プログラムの利用が許可されていると判断された場合に、端末側受信部２０１０が受信した端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報と、データベースバージョン情報を用いて、端末装置３０が有する端末プログラムに関する不整合を検出してもよい。不整合とは、例えば、端末側受信部２０１０が受信した端末バージョン情報が示す端末プログラムのバージョンが、サーバ装置１０が提供する同じ端末プログラムのバージョンと一致していないことである。また、例えば、サーババージョン情報が示すサーバプログラムのバージョンが、端末側受信部２０１０が受信したサーバ装置１０が提供する同じサーバプログラムのバージョンと一致していないことである。あるいは、端末バージョン情報が示す端末プログラムのバージョンと、当該端末プログラムに対応するサーバプログラムのバージョンとの関係が、これらのプログラムが正常に動作することを示すバージョンの組合せに対して整合していないことであってもよい。端末プログラムに関する不整合とは端末プログラムに直接関係した不整合でなくてもよく、例えば端末プログラムに対応するサーバプログラムやデータベース等の不整合のように、端末プログラムに間接的に関係した不整合であってもよい。バージョンが一致しているか否かの判断は、例えば、バージョン情報が示す数値や文字列等が一致しているか否かにより判断可能である。
【００７６】
以下、不整合の検出処理の例について説明する。
検出処理例（１）
不整合検出部２０１４は、例えば、端末側受信部２０１０が受信した端末プログラム識別情報と端末バージョン情報との組み合わせと、中継端末プログラム格納部２００３に格納されている第一サーバ側受信部２００１が受信した端末プログラム識別情報とバージョン管理情報との不整合を検出する。具体的には、不整合検出部２０１４は、端末側受信部２０１０が受信した端末プログラム識別情報と一致する端末プログラム識別情報を中継端末プログラム格納部内から検出し、当該検出した端末プログラム識別情報と対応付けられたバージョン情報と、端末側受信部２０１０が受信したバージョン情報とを比較し、一致しているか否かを判断する。一致していない場合、不整合が存在することを検出する。
【００７７】
検出処理例（２）
不整合検出部２０１４は、例えば、端末側受信部２０１０が受信した端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報との組み合わせと、バージョン管理情報格納部２０１３に格納されているバージョン管理情報との不整合を検出する。具体的には、バージョン管理情報の中から、端末側受信部２０１０が受信した端末プログラム識別情報と一致する端末プログラム識別情報を有するバージョン管理情報を検索し、このバージョン管理情報の端末バージョン情報と、サーババージョン情報との組み合わせと、端末側受信部２０１０が受信した端末バージョン情報と、サーババージョン情報との組み合わせが一致しているか否かを判断する。一致していない場合、不整合が存在することを検出する。
【００７８】
検出処理例（３）
不整合検出部２０１４は、端末側受信部２０１０が受信した、端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報と、データベースバージョン情報との組み合わせと、バージョン管理情報格納部２０１３に格納されているバージョン管理情報との不整合を検出する。
【００７９】
具体的には、バージョン管理情報の中から、端末側受信部２０１０が受信した端末プログラム識別情報と一致する端末プログラム識別情報を有するバージョン管理情報を検索し、このバージョン管理情報の端末バージョン情報とサーババージョン情報とデータベース識別情報とデータベースバージョン情報との組み合わせと、端末側受信部２０１０が受信した端末バージョン情報とサーババージョン情報とデータベース識別情報とデータベースバージョン情報との組み合わせが一致しているか否かを判断する。一致していない場合、不整合が存在することを検出する。
【００８０】
なお、上記において、組合せが一致しているか否かの判断は、どのような順番で判断していっても良い。例えば、端末バージョン情報、サーババージョン情報、データベースバージョン情報の順に、順次一致しているか否かを判断していっても良いし、データベースバージョン情報、端末バージョン情報、サーババージョン情報の順に、順次一致しているか否かを判断していっても良い。
【００８１】
また、上記の検出処理例以外の検出処理を行うようにしても良い。例えば、サーババージョン情報とデータベースバージョン情報との組み合わせが一致するバージョン管理情報があるか否かを判断し、ない場合、不整合を検出しても良い。
【００８２】
また、端末バージョン情報とデータベースバージョン情報との組み合わせが一致するバージョン管理情報があるか否かを判断し、ない場合、不整合を検出しても良い。
【００８３】
なお、複数の端末プログラムやサーバプログラムが一のデータベースを共用している場合等においては、端末側受信部２０１０が受信した一の端末バージョン情報、サーババージョン情報、およびデータベースバージョン情報等の組について上記と同様の不整合検出の処理を行った結果、データベース更新部２０１８により一のデータベースが更新された場合、端末側受信部２０１０が受信した、あるいはこれ以降に受信する、他の端末バージョン情報、サーババージョン情報、及びデータベースバージョン情報等の組から、不整合検出部２０１４が、当該更新されたデータベースと対応付けられた組を検出し、当該検出した前記端末バージョン情報、サーババージョン情報、およびデータベースバージョン情報との組について、上記と同様のバージョン管理情報を用いて不整合の検出処理等を行うようにしてもよい。このときの不整合の検出処理においては、データベースバージョン情報が一致するバージョン管理情報に対して、端末バージョン情報およびサーババージョン情報が一致するかの判断を行うことが好ましい。これにより、一のサーバプログラムの更新等によって、データベースが更新されて、データベースのバージョンが変更された場合、データベースのバージョンにあわせて、サーババージョン情報や端末バージョン情報を更新することができる。また、データベースのバージョンが更新された場合に、端末装置３０に、当該更新されたデータベースのデータベース識別情報に対応付けられた他の端末バージョン情報、サーババージョン情報、及びデータベースバージョン情報等の組を送信させるようにし、当該送信された情報を用いて不整合を判断する処理等を行うようにしても良い。
【００８４】
不整合検出部２０１４は、通常、ＭＰＵやメモリ等から実現され得る。不整合検出部２０１４の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００８５】
端末側送信部２０１５は、不整合検出部２０１４による不整合の検出結果に応じて、第一サーバ側受信部２００１が受信した端末プログラムまたは端末メッセージの少なくとも一方を、端末側受信部２０１０が受信した、不整合検出の対象となった端末プログラム識別情報と対応付けられたユーザ識別情報の送信元となる端末装置３０に送信する。検出結果に応じて送信するとは、検出結果に応じて送信しないことも含む概念である。
【００８６】
また、端末側送信部２０１５は、不整合検出部２０１４による不整合の検出結果に応じて、端末側受信部２０１０が受信した端末プログラム識別情報が示す端末プログラムと対応付けられたサーババージョン情報を変更する指示、または、端末側受信部２０１０が受信した端末プログラム識別情報が示す端末プログラムに対応するサーババージョン情報に対応付けられた、サーバプログラム格納部２００６に格納されているサーバメッセージを、端末装置３０に送信してもよい。
【００８７】
例えば、上記の検出処理例（１）の場合、端末側受信部２０１０が受信した端末バージョン情報と、中継端末プログラム格納部内から検出した端末バージョン情報とが一致していない場合、中継端末プログラム格納部２００３内から検出したバージョン情報に対応する端末プログラムまたは端末メッセージの少なくとも一方を中継端末プログラム格納部２００３から読み出し、端末装置３０に送信する。端末プログラムまたは端末メッセージのいずれを送信するか、あるいは両方を送信するかについては、予め指定しておくようにする。
【００８８】
また、例えば、上記の検出処理例（２）の場合、端末側受信部２０１０が受信したサーババージョン情報が一致するバージョン管理情報はあるが、当該一致するバージョン管理情報の中に端末側受信部２０１０が受信した端末バージョン情報が一致するバージョン管理情報があるか否かを不整合検出部２０１４または端末側送信部２０１５が検出し、一致するものがない場合、サーババージョン情報が一致するバージョン管理情報のうちの、端末バージョン情報の値が最新のバージョンであることを示す値であるものを不整合検出部２０１４または端末側送信部２０１５が検出し、端末側送信部２０１５が、当該バージョン管理情報の端末バージョン情報に対応する端末プログラムまたは端末メッセージを、上記と同様に中継端末プログラム格納部２００３から読み出し、端末装置３０に送信するようにしてもよい。
【００８９】
また、逆に、端末側受信部２０１０が受信した端末バージョン情報が一致する端末管理情報はあるが、当該一致するバージョン管理情報の中に端末側受信部２０１０が受信したサーババージョン情報が一致するバージョン管理情報がない場合、端末バージョン情報が一致するバージョン管理情報のうちの、サーババージョン情報の値が最新のバージョンであることを示す値であるものを不整合検出部２０１４または端末側送信部２０１５が検出し、端末側送信部２０１５が、端末装置３０に対して、端末プログラムに対して利用するサーバプログラムのバージョンを、当該検出したバージョン管理情報に含まれるサーババージョン情報が示すバージョンに変更する指示、または、当該サーババージョン情報に対応するサーバメッセージを端末装置３０に送信するようにしてもよい。送信するサーバメッセージは、サーバプログラム蓄積部２００５からサーババージョン情報や端末プログラム識別情報等を用いて取得する。サーババージョン情報に変更する指示は、端末側受信部２０１０が受信した端末プログラム識別情報と対応付けて送信することが好ましい。
【００９０】
また、例えば、上記の検出処理例（３）の場合、上記検出処理例（２）の場合のように、不整合の原因となっているバージョン情報、即ち一致していないバージョン情報が、端末バージョン情報、サーババージョン情報、データベースバージョン情報のいずれであるかを不整合検出部２０１４が判断する。そして、不整合の原因が端末バージョン情報である場合、上記と同様に、端末プログラムまたは端末メッセージの少なくとも一方を送信し、不整合の原因がサーババージョン情報である場合、上記と同様に、サーバプログラムのバージョンを変更する指示またはメッセージの少なくとも一方を送信するようにしても良い。
【００９１】
なお、ここで示した判断結果とそれに応じて行われる送信内容との対応関係は一例であって、上記以外の関係によって送信を行うようにしてもよい。端末側送信部２０１５は、無線または有線の通信手段等で実現され得る。また、端末側送信部２０１５が、上述したような判断処理を行う場合等には、判断処理を行うためのＭＰＵやメモリ等を備えていても良い。
【００９２】
中継プログラム処理部２０１６は、サーバプログラム格納部２００６に格納されたサーバプログラムを実行する。この実施の形態においては、特に、中継プログラム処理部２０１６は、端末側受信部２０１０が受信した端末プログラム識別情報に対応したサーバプログラムであって、端末側受信部２０１０が受信したサーババージョン情報が示すバージョンのサーバプログラムを用いて、端末側受信部２０１０が受信したデータベース識別情報が示すデータベースのうちの端末側受信部２０１０が受信したデータベースバージョン情報が示すバージョンのデータベースを適宜利用して処理を行う。中継プログラム処理部２０１６は、例えば、中継サーバ装置２０の図示しない受信部等が受信した、端末プログラムから送信される処理を要求する情報に応じて、当該端末プログラムに対応したサーバプログラムにより所定の処理を実行する。そして、その処理結果を、中継サーバ装置２０の図示しない送信部等から端末装置３０に送信する。サーバプログラムを実行する際には、適宜、データベース格納部２０１７に格納されているデータベースを利用して良い。中継プログラム処理部２０１６は、通常、ＭＰＵやメモリ等から実現され得る。中継プログラム処理部２０１６の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００９３】
データベース格納部２０１７には、中継プログラム処理部２０１６がサーバプログラムを実行する際に利用するデータベースと、当該データベースの識別情報であるデータベース識別情報と、当該データベースのバージョン情報であるデータベースバージョン情報とが対応付けられて格納される。データベースは、通常、ユーザ識別情報に対応して設けられる。例えば、一のサーバプログラムを異なるユーザ識別情報を有する異なるユーザが利用する場合、サーバプログラムは、それぞれのユーザ識別情報に対応したデータベースを選択して利用する。データベースと、当該データベースを利用するサーバプログラムとは対応付けられている。例えば、データベース格納部２０１７とサーバプログラム格納部２００６とは一の格納部を構成しており、サーバプログラムと当該サーバプログラムが利用するデータベースとが一のフォルダやディレクトリに格納されているようにすることで、対応関係を判断できるようにしてもよい。また、例えば、データベースにデータベース名等のデータベース識別情報が対応付けられているとすると、サーバプログラム内に、当該サーバプログラムが利用するデータベース識別情報が格納されているようにすることで、サーバプログラムが対応するデータベースを識別できるようにしても良い。また、サーバプログラム識別情報と、当該サーバプログラム識別情報が示すサーバプログラムが利用するデータベース識別情報とを対応付けて管理する管理表等が、中継サーバ装置２０の図示しない格納部等に格納されているようにすることで、当該管理表を用いて、サーバプログラムが対応するデータベースを識別できるようにしても良い。なお、データベースとサーバプログラムとは必ずしも一対一で対応している必要はなく、一対多で対応していても、多対一で対応していても良い。データベースとサーバプログラムとが一対多で対応しているということは、一のデータベースを複数のサーバプログラムで利用していることを意味する。データベース格納部２０１７は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【００９４】
データベース更新部２０１８は、不整合検出部２０１４による不整合の検出結果に応じて、端末側受信部２０１０が受信した端末プログラム識別情報に対応するデータベースを、データベース更新情報格納部２００９に格納されている情報を用いて更新する。不整合の検出結果に応じて更新するとは、不整合の検出結果に応じて更新しないことも含む概念である。
【００９５】
データベース更新部２０１８は、例えば、バージョン管理情報との比較の結果、不整合の原因がデータベース情報であると判断された場合、端末バージョン情報およびサーババージョン情報が一致するバージョン管理情報のうちの、データベースバージョン情報の値が最新のバージョンであることを示す値であるものを不整合検出部２０１４またはデータベース更新部２０１８が検出し、端末側受信部２０１０が受信したユーザ識別情報に対応する端末プログラムに対応するサーバプログラムが利用するデータベースのバージョンが当該データベースのバージョンとなるように更新する。不整合の原因がデータベース情報であると判断された場合とは、具体的には端末側受信部２０１０が受信した端末バージョン情報やサーババージョン情報が一致するバージョン管理情報に含まれるデータベースバージョン情報が、端末側受信部２０１０が受信したデータベースバージョン情報と異なっていた場合等である。例えば、データベース更新部２０１８は、バージョンの更新対象となるデータベースのデータベース識別情報と同じデータベース識別情報と対応付けられており、かつ対応付けられている更新後バージョン情報が、検出されたバージョン管理情報が示すデータベースバージョン情報が示す値と一致するデータベース更新情報を、データベース更新情報格納部２００９から検索等により読み出す。そして、読み出したデータベース更新情報を用いて、更新対象のデータベースを更新する。例えば、データベース更新情報が、実行ファイル等である場合、当該実行ファイル等を実行させることで、データベースのスキーマ等が変換される。なお、どのような不整合の検出結果に応じて、どのようにデータベースを更新するかについては、上述した処理に限るものでなく、適宜設定可能である。また、対象バージョン情報を用いる場合、現在のデータベースのバージョン情報と一致する対象バージョン情報と対応付けられたデータベース更新情報を更新に用いるようにしても良い。
【００９６】
データベースのバージョンの更新を行った場合、データベース更新部２０１８は、更新されたデータベースのデータベースバージョン情報を、データベース更新情報等から取得し、当該データベースバージョン情報で後述する端末プログラム格納部３００１に格納されている同じデータベースについてのデータベースバージョン情報を更新する指示を、図示しない受付部等を介して端末装置３０に送信することが好ましい。データベース更新部２０１８は、通常、ＭＰＵやメモリ等から実現され得る。データベース更新部２０１８の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００９７】
端末装置３０は、例えば、一以上の端末プログラムを実行する。端末装置３０は、コンピュータや、携帯情報端末や、ネットワーク等を介して情報にアクセス可能な携帯電話等で実現可能である。端末装置３０は、例えば、図示しない入力デバイス等を介して入力されるユーザからの指示に応じて、中継サーバ装置２０に、ユーザが指示する処理の要求等を送信する。そして、要求等に応じて中継サーバ装置２０から送信される処理結果のデータを受信して処理する。処理結果の情報は、アプリケーション等も含む概念である。端末装置３０は、ここでは省略しているが、要求等の情報を送信する送信部と、処理結果を受信する受信部とを備えている。送信される要求や情報等を受信する受信部と、当該要求や情報について実行した処理の結果を端末装置３０に送信する送信部等を備えている。
【００９８】
端末プログラム格納部３００１には、一以上の端末プログラムと、当該端末プログラムの端末バージョン情報と、当該端末プログラムの端末プログラム識別情報とが対応付けられて格納され得る。これらの対応付けられた情報は、例えば、一のユーザが利用可能な一以上の端末プログラムと、当該端末プログラムの端末バージョン情報と、端末プログラム識別情報である。
【００９９】
また、端末プログラム格納部３００１には、一以上の端末プログラムと、当該端末プログラムの端末バージョン情報と、当該端末プログラムの端末プログラム識別情報と、当該プログラムに対応したサーバプログラムについてのサーババージョン情報とが対応付けられて格納されていてもよい。この場合、これらの対応付けられた情報は、例えば、一のユーザが利用可能な一以上の端末プログラムと、当該端末プログラムの端末バージョン情報と、端末プログラム識別情報と、当該端末プログラムに対応するサーバプログラムのサーババージョン情報である。
【０１００】
また、端末プログラム格納部３００１には、一以上の端末プログラムと、当該端末プログラムの端末バージョン情報と、当該端末プログラムの端末プログラム識別情報と、当該プログラムに対応したサーバプログラムについてのサーババージョン情報と、当該サーバプログラムが利用するデータベースのデータベースバージョン情報とが対応付けられて格納されていてもよい。この場合、これらの対応付けられた情報は、例えば、一のユーザが利用可能な一以上の端末プログラムと、当該端末プログラムの端末バージョン情報と、端末プログラム識別情報と、当該端末プログラムに対応するサーバプログラムのサーババージョン情報と、当該サーバプログラムが利用するデータベースのバージョン情報である。なお、サーバプログラムが複数のデータベースを利用するものである場合、データベースバージョン情報がどのデータベースに関するものであるかが識別できるよう、データベース識別情報を上記の情報に対応付けて格納されるようにしても良い。
【０１０１】
この実施の形態においては、例えば、一の端末プログラムを実行した場合、プログラム格納部３００１に格納されている当該実行した端末プログラムの端末プログラム識別情報に対応したサーババージョン情報に対応するバージョンのサーバプログラムが、当該実行した端末プログラムの端末プログラム識別情報に対応したデータベース識別情報が示すデータベースのうちのデータベースバージョン情報が示すバージョンのデータベースを用いて中継サーバ装置２０において実行される。例えば、一の端末プログラムから出力される要求に、これらのサーババージョン情報やデータベース識別情報が含まれるようにしても良いし、端末プログラムの起動時等に、端末プログラム識別情報と対応付けてサーババージョン情報やデータベース識別情報を中継サーバ装置２０に送信するようにし、その後は、一の端末プログラムから出力される要求に、端末プログラム識別情報等を付加するようにして、端末プログラムからの要求に応じて、どのバージョンのサーバプログラムやデータベースを利用できるかを指定できるようにしてもよい。
【０１０２】
なお、端末プログラム格納部３００１に格納されている上記の端末プログラム等を含む情報には、各端末プログラムを利用可能なユーザのユーザ識別情報を対応付けておくようにしても良い。
【０１０３】
端末プログラム格納部３００１に上述したような情報が蓄積される手段やタイミング等は問わない。また、端末プログラムについては、上述したサーバプログラム格納部２００６に格納されているサーバプログラムと同様に、端末装置３０において実行可能となるように格納されているようにしても良い。端末プログラム格納部３００１は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【０１０４】
端末プログラム処理部３００２は、端末プログラム格納部３００１に格納された端末プログラムを実行する。端末プログラム処理部３００２は、例えば、図示しない入力デバイス等を介してユーザから入力される指示に応じて端末プログラムを実行する。端末プログラム処理部３００２は、例えば、適宜、中継サーバ装置２０の対応するサーバプログラムに対して、処理の実行を要求する情報を送信する。また、中継サーバ装置２０の対応するサーバプログラムが送信する処理結果を受信し、適宜処理を行う。端末プログラム処理部３００２は、通常、ＭＰＵやメモリ等から実現され得る。端末プログラム処理部３００２の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【０１０５】
ユーザ識別情報受付部３００３は、端末装置３０が実行可能な端末プログラムを利用可能なユーザの識別情報であるユーザ識別情報を受け付ける。具体的には、端末プログラム格納部３００１に格納された端末プログラムを利用可能なユーザのユーザ識別情報を受け付ける。例えば、ユーザが端末装置３０の端末プログラム格納部３００１に格納されている端末プログラムを利用する際に、ユーザＩＤ等として入力するユーザ識別情報を受け付ける。端末プログラムを利用するためのユーザ識別情報と、端末装置３０を利用する際のログイン等に用いられるユーザＩＤ等の識別情報とが一致する場合、端末装置３０を利用する際のログイン時等に入力される識別情報を、ユーザ識別情報を受け付けるようにしてもよい。また、ユーザ識別情報受付部３００３は、ユーザ識別情報と対をなして入力されるパスワード情報等も受け付けても良い。ここで述べる受付とは、例えば、入力手段からの受付や、他の機器等から送信される入力信号の受信や、記録媒体等からの情報の読み出し等である。ユーザ識別情報の入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。ユーザ識別情報受付部３００３が受け付けたユーザ識別情報は、例えば、図示しないメモリ等の記憶媒体に一時記憶される。ユーザ識別情報受付部３００３は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
【０１０６】
ユーザ識別情報送信部３００４は、ユーザ識別情報受付部３００３が受け付けたユーザ識別情報を中継サーバ装置２０に送信する。ユーザ識別情報送信部３００４がユーザ識別情報を送信するタイミングは問わないが、後述する端末送信部３００５が情報を送信するタイミングの前後、または同時に送信することが好ましく、さらに、後述する端末送信巣部３００５が送信する各端末プログラムに対応した端末プログラム識別情報や端末バージョン情報の組と対応付けて送信することが好ましい。中継サーバ装置２０において、ユーザ識別情報を保持しなくて良くなるからである。ユーザ識別情報送信部３００４は、無線または有線の通信手段等で実現され得る。
【０１０７】
端末送信部３００５は、端末プログラム格納部３００１に格納されている各端末プログラムにそれぞれ対応付けられた端末プログラム識別情報および端末バージョン情報を読み出し、中継サーバ装置２０に送信する。あるいは、各端末プログラムにそれぞれ対応付けられた端末プログラム識別情報、端末バージョン情報およびサーババージョン情報を送信してもよい。また、各端末プログラムにそれぞれ対応付けられた端末プログラム識別情報、端末バージョン情報、サーババージョン情報、およびデータベースバージョン情報を送信してもよい。端末送信部３００５は、一の端末プログラムに対応する端末バージョン情報や端末プログラム識別情報等の情報を一の組として送信する。また、この各組に対して、さらに上述したユーザ識別情報をそれぞれ対応付けた組を送信してもよい。端末送信部３００５が、どの端末プログラムに対応付けられた端末バージョン情報や端末プログラム識別情報等を、どのようなタイミングで送信するかは問わない。例えば、端末送信部３００５は、ユーザ識別情報受付部３００３がユーザ識別情報を受け付けた時点等の、予め指定されたタイミングに、端末プログラムに対応付けられた端末バージョン情報や端末プログラム識別情報等の送信を行う。この場合、例えば、ユーザ識別情報受付部３００３が受け付けたユーザ識別情報と対応付けられた端末バージョン情報や端末プログラム識別情報等の組を端末プログラム格納部３００１から読み出して送信してもよい。あるいは、全ての端末バージョン情報や端末プログラム識別情報等の組を送信してもよい。また、ユーザが一の端末プログラムを起動させた際に、当該端末プログラムに対応付けられた端末バージョン情報や端末プログラム識別情報等の送信を行うようにしてもよい。端末送信部３００５は、端末プログラム格納部３００１に格納されている各端末プログラムにそれぞれ対応付けられた端末バージョン情報と、端末プログラム識別情報と、サーババージョン情報とを、中継サーバ装置２０に送信する。端末送信部３００５は、無線または有線の通信手段等で実現され得る。
【０１０８】
端末受信部３００６は、中継サーバ装置２０から送信される端末プログラムまたは端末バージョン情報に対応付けられたメッセージである端末メッセージの少なくとも一方を受信する。また、端末受信部３００６は、中継サーバ装置から送信されるサーババージョン情報を変更する指示またはサーババージョン情報に対応付けられたメッセージであるサーバメッセージの少なくとも一方を受信する。また、中継サーバ装置２０から送信された更新されたデータベースのデータベースバージョン情報を受信しても良い。端末受信部３００６は、無線または有線の通信手段等で実現され得る。
【０１０９】
受信情報処理部３００７は、端末受信部３００６が受信した端末プログラムまたは端末メッセージの少なくとも一方を処理する。また、受信情報処理部３００７は、端末受信部３００６が受信したサーババージョン情報を変更する指示に応じた処理またはサーバメッセージを出力する処理の少なくとも一方を行う。端末プログラムの処理とは、端末プログラム格納部３００１に格納されている、端末受信部３００６が受信した端末プログラムと同じ端末プログラムを、端末受信部３００６が受信した端末プログラムで更新することである。また、更新に伴い、端末プログラムに対応して格納されている端末バージョン情報も適宜更新後のバージョンを示す端末バージョン情報に更新する。ここでの同じ端末プログラムとは、例えば、少なくとも端末プログラム識別情報が一致するプログラムであり、端末バージョン情報が一致しているか否かは問わない。端末プログラム格納部３００１に格納されている端末メッセージの処理とは、具体的には端末メッセージの出力を意味する。サーババージョン情報の変更指示に応じた処理とは、具体的には、端末プログラム格納部３００１に格納されているサーババージョン情報を、サーババージョン情報を変更する指示に含まれるサーババージョン情報を用いて更新することである。具体的には、サーババージョン情報の変更は、例えば、サーババージョン情報を変更する指示に対応付けられて受信された端末プログラム識別情報を用いて、当該端末プログラム識別情報と一致する端末プログラム識別情報を、端末プログラム格納部３００１において検出し、検出された端末プログラム識別情報に対応付けられたサーババージョン情報を、上書きすることで行われる。端末メッセージやサーバメッセージの出力は、受信情報処理部３００７が行ってもよいし、後述する出力部３００８等を制御して出力させても良い。ここでは、出力部３００８に出力させる場合について説明する。なお、受信情報処理部３００７が出力を行う場合、後述する出力部３００８と同様の構成を備えているようにすればよい。また、受信情報処理部３００７は、端末受信部３００６が受信したデータベースバージョン情報に応じて端末プログラム格納部３００１に格納されているデータベースバージョン情報を、サーババージョン情報と同様に更新してもよい。受信情報処理部３００７は、通常、ＭＰＵやメモリ等から実現され得る。受信情報処理部３００７の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【０１１０】
出力部３００８は、端末受信部３００６が受信した端末メッセージやサーバメッセージを出力する。ここで述べる出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタへの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラム等への処理結果の引渡し等を含む概念である。出力部３００８は、ディスプレイやプリンタ等の出力デバイスを含むと考えても含まないと考えても良い。出力部３００８は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
【０１１１】
次に、サーバ装置１０の動作の一例について図４のフローチャートを用いて説明する。
【０１１２】
（ステップＳ４０１）第一サーバ送信部１００２は、端末プログラムまたは端末メッセージの少なくとも一方を送信するか否かを判断する。例えば、サーバ装置１０の図示しない受信部が中継サーバ装置２０から、端末プログラムまたは端末メッセージの少なくとも一方を要求する指示を受け付けた場合に送信を決定する。あるいは予め指定された所定の日時等になった場合に送信を決定する。送信を行う場合、ステップＳ４０２に進み、送信を行わない場合、ステップＳ４０３に進む。
【０１１３】
（ステップＳ４０２）第一サーバ送信部１００２は、第一サーバ格納部１００１に格納されている１以上の端末プログラムまたは端末メッセージの少なくとも一方と、当該端末プログラムと対応付けられた端末プログラム識別情報および端末バージョン情報を読み出し、中継サーバ装置２０に送信する。なお、一旦送信した端末プログラム等の情報については、送信済であることを示す情報を与えておくようにし、次回以降の送信時には、送信済であることを示す情報が与えられている情報を読み出さないようにして、重複して送信されることを防ぐようにしても良い。そして、ステップＳ４０１に戻る。
【０１１４】
（ステップＳ４０３）第二サーバ送信部１００４は、サーバプログラムまたはサーバメッセージの少なくとも一方を送信するか否かを判断する。例えば、サーバ装置１０の図示しない受信部が中継サーバ装置２０から、サーバプログラムまたはサーバメッセージの少なくとも一方を要求する指示を受け付けた場合に送信を決定する。あるいは予め指定された所定の日時等になった場合に送信を決定する。送信を行う場合、ステップＳ４０４に進み、送信を行わない場合、ステップＳ４０５に進む。
【０１１５】
（ステップＳ４０４）第二サーバ送信部１００４は、第二サーバ格納部１００３に格納されている１以上のサーバプログラムまたはサーバメッセージの少なくとも一方と、サーババージョン情報とを読み出し、中継サーバ装置２０に送信する。なお、一旦送信したサーバプログラム等の情報については、送信済であることを示す情報を与えておくようにし、次回以降の送信時には、送信済であることを示す情報が与えられている情報を読み出さないようにして、重複して送信されることを防ぐようにしても良い。そして、ステップＳ４０１に戻る。
【０１１６】
（ステップＳ４０５）第三サーバ送信部１００６は、１以上のデータベース更新情報を送信するか否かを判断する。例えば、サーバ装置１０の図示しない受信部が中継サーバ装置２０から、データベース更新情報を要求する指示を受け付けた場合に送信を決定する。あるいは予め指定された所定の日時等になった場合に送信を決定する。送信を行う場合、ステップＳ４０４に進み、送信を行わない場合、ステップＳ４０５に進む。ここでは、対象バージョン情報の送信は省略する。
【０１１７】
（ステップＳ４０６）第三サーバ送信部１００６は、第三サーバ格納部１００５に格納されている１以上のデータベース更新情報と、データベース識別情報と、更新後バージョン情報とを読み出し、中継サーバ装置２０に送信する。なお、一旦送信したデータベース更新情報等の情報については、送信済であることを示す情報を与えておくようにし、次回以降の送信時には、送信済であることを示す情報が与えられている情報を読み出さないようにして、重複して送信されることを防ぐようにしても良い。そして、ステップＳ４０１に戻る。
【０１１８】
なお、図４のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【０１１９】
次に、中継サーバ装置２０の動作の一例について図５のフローチャートを用いて説明する。なお、ここでは、説明を簡単にするために、端末側受信部２０１０が、一度に、１組のユーザ識別情報と、端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報と、データベースバージョン情報とを受信する場合に付いて説明する。
【０１２０】
（ステップＳ５０１）端末側受信部２０１０は、ユーザ識別情報と、端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報と、データベースバージョン情報を受信したか否かを判断する。これらに加えて、データベース識別情報も受信したか否かを判断するようにしても良い。なお、受信した場合、ステップＳ５０２に進み、受信していない場合、ステップＳ５０３に進む。
【０１２１】
（ステップＳ５０２）許可判断部２０１２は、ステップＳ５０１において受信したユーザ識別情報と、端末プログラム識別情報とを用いて、ユーザ識別情報が示すユーザによる、端末プログラム識別情報が示すプログラムの利用が許可されているか否かを判断する。例えば、ユーザ情報格納部２０１１に格納されている互いに対応付けられたユーザ識別情報と端末プログラム識別情報との組合せと、ステップＳ５０１において受信したユーザ識別情報と、端末プログラム識別情報との組合せとが一致するか否かを判断する。一致していない場合、利用が許可されていないこととなり、ステップＳ５０１に戻り、一致している場合、利用が許可されていることとなり、ステップＳ５０９に進む。
【０１２２】
（ステップＳ５０３）第一サーバ側受信部２００１は、１以上の端末プログラムまたは端末メッセージの少なくとも一方と、当該端末プログラムと対応付けられた端末プログラム識別情報および端末バージョン情報を受信したか否かを判断する。受信した場合、ステップＳ５０４に進み、受信していない場合、ステップＳ５０５に進む。
【０１２３】
（ステップＳ５０４）中継端末プログラム蓄積部２００２は、ステップＳ５０３において受信した１以上の端末プログラムまたは端末メッセージの少なくとも一方と、当該端末プログラムと対応付けられた端末プログラム識別情報および端末バージョン情報を対応付けて、中継端末プログラム格納部２００３に蓄積する。そして、ステップＳ５０１に戻る。
【０１２４】
（ステップＳ５０５）第二サーバ側受信部２００４は、１以上のサーバプログラムまたはサーバメッセージの少なくとも一方と、サーババージョン情報とを受信したか否かを判断する。受信した場合、ステップＳ５０６に進み、受信していない場合、ステップＳ５０７に進む。
【０１２５】
（ステップＳ５０６）サーバプログラム蓄積部２００５は、ステップＳ５０５において受信した１以上のサーバプログラムまたはサーバメッセージの少なくとも一方と、サーババージョン情報とを、サーバプログラム格納部２００６に蓄積する。
【０１２６】
（ステップＳ５０７）第三サーバ側受信部２００７は、１以上のプログラム更新情報と、データベース識別情報と、更新後バージョン情報を受信したか否かを判断する。受信した場合、ステップＳ５０８に進み、受信していない場合、ステップＳ５０１に戻る。
【０１２７】
（ステップＳ５０８）データベース更新情報蓄積部２００８は、ステップＳ５０７において受信した１以上のプログラム更新情報と、データベース識別情報と、更新後バージョン情報とをデータベース更新情報格納部２００９に蓄積する。そして、ステップＳ５０１に戻る。
【０１２８】
（ステップＳ５０９）中継サーバ装置２０は、ステップＳ５０１において受信した端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報と、データベースバージョン情報とを用いて、端末プログラムに関する不整合を検出する。なお、この不整合の検出処理については後述する。そして、ステップＳ５０１に戻る。
【０１２９】
なお、図５のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【０１３０】
次に、図５のステップＳ５０９において示した中継サーバ装置２０の不整合を判断する処理について、図６のフローチャートを用いて説明する。
【０１３１】
（ステップＳ６０１）不整合検出部２０１４は、ステップＳ５０１において受信した端末プログラム識別情報と一致する端末プログラム識別情報を有するバージョン管理情報を、検索等によりバージョン管理情報格納部２０１３等から検出する。
【０１３２】
（ステップＳ６０２）不整合検出部２０１４は、ステップＳ６０１において検出したバージョン管理情報の中に、ステップＳ５０１において受信した端末バージョン情報と一致する端末バージョン情報を有するバージョン管理情報があるか否かを判断する。ある場合、該当するバージョン管理情報を検出し、ステップＳ６０３に進み、ない場合、ステップＳ６１１に進む。
【０１３３】
（ステップＳ６０３）不整合検出部２０１４は、直前に検出したバージョン管理情報の中に、ステップＳ６０１において検出したサーババージョン情報と一致するサーババージョン情報を有するバージョン管理情報があるか否かを判断する。ある場合、該当するバージョン管理情報を検出し、ステップＳ６０４に進み、ない場合、ステップＳ６０７に進む。
【０１３４】
（ステップＳ６０４）不整合検出部２０１４は、直前に検出したバージョン管理情報のデータベースバージョン情報が、ステップＳ５０１において受信したデータベースバージョン情報と一致するか否かを判断する。一致する場合、上位の処理に戻る。一致しない場合、ステップＳ６０５に進む。
【０１３５】
（ステップＳ６０５）データベース更新部２０１８は、直前に検出したバージョン管理情報の中から、データベースバージョン情報が示すバージョンが最も高いもの、例えば、バージョンを示す数値の最も高いものを検出する。
【０１３６】
（ステップＳ６０６）データベース更新部２０１８は、データベース更新情報格納部２００９から、ステップＳ６０５において検出したバージョン管理情報のデータベースバージョン情報が示すバージョンを示している更新後バージョン情報に対応付けられ、かつ、検出されたバージョン管理情報のデータベース識別情報と一致するデータベース識別情報と対応付けられたデータベース更新情報を取得する。そして、当該データベース更新情報を用いて、ステップＳ５０１において受信したユーザ識別情報および端末プログラム識別情報に対応するサーバプログラムに対応するデータベースの更新、即ちバージョンアップを行う。バージョンアップ後のデータベースバージョン情報は、ステップＳ５０１において受信した端末プログラム識別情報と対応付けて端末装置３０に送信する。そして、上位の処理に戻る。
【０１３７】
（ステップＳ６０７）不整合検出部２０１４は、ステップＳ６０３において検出したバージョン管理情報の中から、サーババージョン情報が示すバージョンの値が最も高いものを検出する。
【０１３８】
（ステップＳ６０８）不整合検出部２０１４は、ステップＳ６０７で検出したサーババージョン情報が示すバージョンが、ステップＳ５０１において受信したサーババージョン情報が示すバージョンよりも高いか否かを判断する。高い場合、ステップＳ６０９に進み、高くない場合、ステップＳ６１７に進む。
【０１３９】
（ステップＳ６０９）端末側送信部２０１５は、直前に検出したバージョン管理情報のサーババージョン情報で、端末装置３０のサーババージョン情報を変更する指示を、ステップＳ５０１において受信したユーザ識別情報の送信元となる端末装置３０に、ステップＳ５０１において受信した端末プログラム識別情報と対応付けて送信する。後述する端末プログラム格納部３００１に格納されているサーババージョン情報を更新する際には、当該端末プログラム識別情報と一致する端末プログラムと対応付けられたサーババージョン情報が更新される。
【０１４０】
（ステップＳ６１０）端末側送信部２０１５は、直前に検出したバージョン管理情報のデータベースバージョン情報と、ステップＳ５０１において受信したデータベースバージョン情報とが一致するか否かを判断する。一致する場合、上位の処理に戻り、一致しない場合、ステップＳ６１１に進む。
【０１４１】
（ステップＳ６１１）データベース更新部２０１８は、データベース更新情報格納部２００９から、直前に検出されたバージョン管理情報のデータベースバージョン情報が示すバージョンを示している更新後バージョン情報に対応付けられ、かつ、直前に検出されたバージョン管理情報のデータベース識別情報と一致するデータベース識別情報と対応付けられたデータベース更新情報を取得する。そして、当該データベース更新情報を用いて、ステップＳ５０１において受信したユーザ識別情報および端末プログラム識別情報に対応するサーバプログラムに対応するデータベースの更新、即ちバージョンアップを行う。バージョンアップ後のデータベースバージョン情報は、ステップＳ５０１において受信した端末プログラム識別情報と対応付けて端末装置３０に送信する。そして、上位の処理に戻る。
【０１４２】
（ステップＳ６１２）不整合検出部２０１４は、ステップＳ６０１において検出したバージョン管理情報の中に、ステップＳ５０１において受信したサーババージョン情報と一致するサーババージョン情報を有するバージョン管理情報があるか否かを判断する。ある場合、該当するバージョン管理情報を検出し、ステップＳ６１３に進み、ない場合、ステップＳ６１５に進む。
【０１４３】
（ステップＳ６１３）不整合検出部２０１４は、ステップＳ６１２において検出したバージョン管理情報の中から、端末バージョン情報が示すバージョンの値が最も高いものを検出する。
【０１４４】
（ステップＳ６１４）端末側送信部２０１５は、ステップＳ６１３において検出したバージョン管理情報の端末プログラム識別情報および端末バージョン情報に対応付けられた端末プログラムを中継端末プログラム格納部２００３から読み出し、ステップＳ５０１において受信したユーザ識別情報の送信元となる端末装置３０に、ステップＳ５０１において受信した端末プログラム識別情報と対応付けて送信する。また、ステップＳ６１３において検出したバージョン管理情報の端末バージョン情報も、端末プログラムに対応付けて送信しても良い。そして、ステップＳ６１０に戻る。
【０１４５】
（ステップＳ６１５）不整合検出部２０１４は、ステップＳ６０１において検出したバージョン管理情報の中から、端末バージョン情報が示すバージョンの値が最も高いものを検出する。
【０１４６】
（ステップＳ６１６）端末側送信部２０１５は、ステップＳ６１５において検出したバージョン管理情報の端末プログラム識別情報および端末バージョン情報に対応付けられた端末プログラムを中継端末プログラム格納部２００３から読み出し、ステップＳ５０１において受信したユーザ識別情報の送信元となる端末装置３０に、ステップＳ５０１において受信した端末プログラム識別情報と対応付けて送信する。また、ステップＳ６１５において検出したバージョン管理情報の端末バージョン情報も、端末プログラムに対応付けて送信しても良い。そして、ステップＳ６０９に戻る。
【０１４７】
（ステップＳ６１７）不整合検出部２０１４は、ステップＳ６０１において検出したバージョン管理情報の中から、ステップＳ５０１において受信したサーババージョン情報と一致するサーババージョン情報を有するバージョン管理情報を検出する。そして、ステップＳ６１３に進む。
【０１４８】
なお、図６のフローチャートにおいて、ステップＳ６０６やステップＳ６０９やステップＳ６１１やステップＳ６１４やステップＳ６１６等において、端末プログラムの送信や、サーババージョン情報の送信や、データベースの更新等を行わずに、端末プログラムや、サーバプログラムやデータベース更新情報等に対応付けられたメッセージを端末装置３０に送信する場合、メッセージを送信して、上位の処理に戻るようにしても良い。この場合のメッセージは、例えば、更新等を行うことを促すメッセージである。このような場合、当該メッセージに対応して端末装置３０から送信される指示等に応じて、中継サーバ装置２０が、端末プログラムの送信や、サーババージョン情報の送信や、データベースの更新等を行うようにしても良い。
【０１４９】
また、ステップＳ６０６やステップＳ６０９やステップＳ６１１やステップＳ６１４やステップＳ６１６等において、端末プログラムの送信や、サーババージョン情報の送信や、データベースの更新等に加えて、端末プログラムや、サーバプログラムやデータベース更新情報等に対応付けられたメッセージを端末装置３０に送信する処理を行い、次の処理ステップに進むようにしても良い。この場合のメッセージは、例えば、更新等を行ったことを通知するメッセージである。
【０１５０】
また、図６のフローチャートにおいては、中継プログラム処理部２０１６が実行する、端末装置３０からの要求等に応じた処理についての説明は省略する。
【０１５１】
なお、図６のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【０１５２】
なお、図６のフローチャートにおいて、ステップＳ６０５と、ステップＳ６０６との間に、ステップＳ６０５において検出したデータベースバージョン情報よりも、ステップＳ５０１において受信したデータベースバージョン情報が大きいか否かを判断する処理を行うようにしてもよい。また、ステップＳ６１０と、ステップＳ６１１との間に、ステップＳ６１０において判断に用いられたバージョン管理情報のデータベースバージョン情報よりも、ステップＳ５０１において受信したデータベースバージョン情報が大きいか否かを判断する処理を行うようにしてもよい。これらの判断処理は、ステップＳ５０１において受信したデータベース識別情報に対応するデータベースバージョン情報について行われる。そして、大きくない場合は、そのまま、ステップＳ６０６やステップＳ６１１に進むようにし、大きい場合は、ステップＳ６０１において検出したバージョン管理情報の中から、ステップＳ５０１において受信したデータベース識別情報およびデータベースバージョン情報と同じデータベース識別情報およびデータベースバージョン情報を含むバージョン管理情報を検出する処理を行い、当該検出したバージョン管理情報について、ステップＳ６０２以降と同様の処理を行うようにしてもよい。ただし、ここで行われるステップＳ６０２以降の処理においては、ステップＳ６０２からステップＳ６０６までの処理およびステップＳ６１０からステップＳ６１１までの処理は省略して、上位の処理に戻るようにする。
【０１５３】
このようにすることで、一のデータベースを、二以上の端末プログラムやサーバプログラムで共用している場合において、一の端末プログラムやサーバプログラムのバージョンの更新に伴って、データベースのバージョンが更新された場合、当該データベースのバージョンの更新を検出して、当該更新されたデータベースが利用可能となるように、他の端末プログラムやサーバプログラムのバージョンの更新を行うことが可能となる。
【０１５４】
また、上述した不整合検出処理等において、端末バージョン情報についての処理と、サーババージョン情報についての処理と、データベースバージョン情報についての処理については、処理の対象となるバージョン情報を適宜入れ替えても良い。例えばステップＳ６０２の端末バージョン情報が一致するバージョン管理情報があるか否かの判断の代わりに、サーババージョン情報が一致するバージョン管理情報があるか否かの判断や、データベースバージョン情報が一致するバージョン管理情報があるか否かの判断を行うようにしても良い。また、この入れ替えは適宜行うようにしても良い。
【０１５５】
次に、端末装置３０の動作の一例について図７のフローチャートを用いて説明する。
【０１５６】
（ステップＳ７０１）ユーザ識別情報受付部３００３は、ユーザ識別情報を受信したか否かを判断する。受信した場合、ステップＳ７０２に進み、受信していない場合、ステップＳ７０１に戻る。ユーザ識別情報は、例えば、端末プログラムの起動の際に画面等に表示される入力インターフェース等を介して入力される。ユーザ識別情報は、例えば、端末装置３０の認証処理等に利用されるものであってもよい。
【０１５７】
（ステップＳ７０２）ユーザ識別情報受付部３００３は、ステップＳ７０１において受信したユーザ識別情報を、図示しないメモリ等の格納部に一時記憶する。
【０１５８】
（ステップＳ７０３）端末送信部３００５は、ユーザ識別情報と、端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報と、データベースバージョン情報を送信するか否かを判断する。送信する場合、ステップＳ７０４に進み、送信しない場合、ステップＳ７０６に進む。例えば、端末送信部３００５は、端末プログラム格納部３００１に格納されている端末プログラムの一つを起動させた場合に、当該端末プログラムに対応付けて格納されている端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報と、データベースバージョン情報と、ユーザ識別情報とを送信することを決定する。
【０１５９】
（ステップＳ７０４）ユーザ識別情報送信部３００４は、ステップＳ７０１で受信したユーザ識別情報を中継サーバ装置２０に送信する。
【０１６０】
（ステップＳ７０５）端末送信部３００５は、端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報と、データベースバージョン情報を端末プログラム格納部３００１から読み出し、ステップＳ７０４において送信したユーザ識別情報と対応付けて、中継サーバ装置２０に送信する。なお、端末送信部３００５は、一部の端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報と、データベースバージョン情報だけを送信しても良く、例えば、起動した端末プログラムに対応した端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報と、データベースバージョン情報だけを送信しても良い。なお、ユーザ識別情報送信部３００４と端末送信部３００５を一の端末送信部により構成し、当該端末送信部が、ユーザ識別情報と、端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報と、データベースバージョン情報とを中継サーバ装置２０に送信するようにしてもよい。そして、ステップＳ７０３に戻る。
【０１６１】
（ステップＳ７０６）端末受信部３００６は、端末プログラムと端末プログラム識別情報とを受信したか否かを判断する。受信した場合、ステップＳ７０７に進み、受信していない場合、ステップＳ７０８に進む。なお、このステップにおいて、端末バージョン情報を受信しても良い。
【０１６２】
（ステップＳ７０７）端末装置３０の受信情報処理部３００７等は、ステップＳ７０６において受信した端末プログラム識別情報と同じ端末プログラム識別情報と対応付けられて端末プログラム格納部３００１に格納されている端末プログラムを、ステップＳ７０６において受信した端末プログラムで更新する。また、ステップＳ７０６において受信した端末バージョン情報で、ステップＳ７０６において受信した端末プログラム識別情報と同じ端末プログラム識別情報と対応付けられた端末バージョン情報を更新してもよい。そして、ステップＳ７０３に戻る。
【０１６３】
（ステップＳ７０８）端末受信部３００６は、サーババージョン情報と端末プログラム識別情報とを受信したか否かを判断する。受信した場合、ステップＳ７０９に進み、受信していない場合、ステップＳ７１０に進む。
【０１６４】
（ステップＳ７０９）端末装置３０の受信情報処理部３００７等は、ステップＳ７０８において受信した端末プログラム識別情報と同じ端末プログラム識別情報と対応付けられて端末プログラム格納部３００１に格納されているサーババージョン情報を、ステップＳ７０８において受信したサーババージョン情報で更新する。そして、ステップＳ７０３に戻る。
【０１６５】
（ステップＳ７１０）端末受信部３００６は、データベースバージョン情報と端末プログラム識別情報とを受信したか否かを判断する。受信した場合、ステップＳ７１１に進み、受信していない場合、ステップＳ７１２に進む。
【０１６６】
（ステップＳ７１１）端末装置３０の受信情報処理部３００７等は、ステップＳ７１０において受信した端末プログラム識別情報と同じ端末プログラム識別情報と対応付けられて端末プログラム格納部３００１に格納されているデータベースバージョン情報を、ステップＳ７０８において受信したデータベースバージョン情報で更新する。そして、ステップＳ７０３に戻る。
【０１６７】
なお、図７のフローチャートにおいては、端末プログラム処理部３００２が端末プログラム等を実行する処理についての説明は省略する。
【０１６８】
また、図７のフローチャートにおいて、ステップＳ７０６やステップＳ７０８やステップＳ７１０の代わりに、あるいは、これらのステップに加えて、端末プログラムに対応付けられたメッセージや、サーバプログラムに対応付けられたメッセージや、データベースバージョン情報に対応付けられたメッセージを受信したか否かを判断するようにし、受信した場合、受信情報処理部３００７が、出力部３００８に受信したこれらのメッセージを出力、例えばモニタ等に表示させるようにしてもよい。
【０１６９】
なお、図７のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【０１７０】
以下、本実施の形態における情報処理システム１の具体的な動作について説明する。情報処理システムの概念図は図１である。なお、ここでは、端末装置３０へのログインの際に入力される識別情報を、そのまま、端末プログラムを利用可能なユーザのユーザ識別情報として用いる場合を例に挙げて説明するが、必ずしも、ログイン時の識別情報を端末プログラムについてのユーザ識別情報として用いる必要はない。例えば、端末装置３０、端末プログラムを立ち上げる指示を受けた場合等に、ユーザ識別情報を入力させるための入力インターフェースを画面等に表示させ、当該入力インターフェースを介してユーザ識別情報を受け付けるようにしても良い。かかることは他の具体例においても同様である。
【０１７１】
まず、ユーザが一の端末装置３０にログインのためにユーザ識別情報を入力すると、ユーザ識別情報受付部３００３が、入力されたユーザ識別情報を受け付ける。入力されたユーザ識別情報がここでは、「ｙａｍａｍｏｔｏ」であったとする。受け付けたユーザ識別情報は図示しない格納部等に一時記憶される。また、端末装置３０は、ログイン等の認証処理を行う。
【０１７２】
図８は、端末プログラム格納部３００１に格納されている端末プログラム管理表を示す図である。端末プログラム管理表は、「ＩＤ」と、「端末プログラム」と、「端末プログラム識別情報」と、「端末バージョン情報」と、「サーババージョン情報」と、「データベース識別情報」と、「データベースバージョン情報」という項目を有している。「端末プログラム」は、例えば、実行ファイル等である。「端末プログラム識別情報」は、端末プログラム識別情報である。ここでは、端末プログラムとサーバプログラムとは同じ識別情報と対応付けられているものとする。すなわち、端末プログラム識別情報とサーバプログラムの識別情報とが同じであるとする。つまり、この識別情報をサーバクライアント型のプログラムの識別情報と考えても良い。「ＩＤ」は、レコードを管理するための識別情報である。「端末バージョン情報」は、端末プログラムのバージョン情報である。「サーババージョン情報」は、サーバプログラムのバージョン情報である。「データベース識別情報」は、データベースの識別情報である。「データベースバージョン情報」は、データベースバージョン情報である。なお、ここでは、説明を簡単にするために、一のサーバプログラムが一のデータベースを利用する場合を例に挙げて説明する。ただし、複数のデータベースを利用してもよく、この場合、端末プログラム管理表の一のレコードにおいて、複数の「データベース識別情報」と、「データベースバージョン情報」とを管理するようにすればよい。なお、「端末バージョン情報」、「サーババージョン情報」、および「データベースバージョン情報」は、ここでは、バージョンが高い、すなわちバージョンが新しいほど、値が高い数値であるとする。
【０１７３】
次に、ユーザが、端末プログラム格納部３００１に格納されている端末プログラムの一つを起動させる指示を端末装置３０に図示しない入力インターフェース等を介して与えたとすると、ユーザ識別情報送信部３００４は、一時記憶されているユーザ識別情報を中継サーバ装置２０に、ネットワーク６０を介して送信する。また、端末送信部３００５は、起動させる指示の対象となる端末プログラムに対応付けられた、端末プログラム識別情報と、端末バージョン情報と、サーババージョン情報と、データベース識別情報と、データベースバージョン情報を読み出し、ユーザ識別情報送信部３００４が送信したユーザ識別情報と対応付けて、中継サーバ装置２０に、ネットワーク６０を介して送信する。
【０１７４】
例えば、「給与管理ソフト」という端末プログラム識別情報と対応付けられた端末プログラムを起動する指示が与えられたとすると、ユーザ識別情報である「ｙａｍａｍｏｔｏ」と、端末プログラム識別情報である「給与管理ソフト」と、端末バージョン情報である「２．１」と、サーババージョン情報である「３．０」と、データベース識別情報である「社員ＤＢ」と、データベースバージョン情報である「２．０」とが、対応付けられて中継サーバ装置２０に送信される。
【０１７５】
中継サーバ装置２０の端末側受信部２０１０は、端末装置３０から送信されるユーザ識別情報「ｙａｍａｍｏｔｏ」と、端末プログラム識別情報「給与管理ソフト」と、端末バージョン情報「２．１」と、サーババージョン情報「３．０」と、データベース識別情報「社員ＤＢ」と、データベースバージョン情報「２．０」とを受信する。
【０１７６】
図９は、ユーザ情報格納部２０１１に格納されているユーザ情報を管理するためのユーザ情報管理表である。ユーザ情報管理表は、「ＩＤ」と、「ユーザ識別情報」と、「端末プログラム識別情報」とを備えている。「ＩＤ」は、レコードを管理するための識別情報である。「ユーザ識別情報」は、ユーザ識別情報である。「端末プログラム識別情報」は、ユーザ識別情報に対応したユーザが利用可能な端末プログラム識別情報である。「利用可能な」とは、例えば、利用するライセンスを受けているということである。
【０１７７】
許可判断部２０１２は、端末側受信部２０１０が受信したユーザ識別情報「ｙａｍａｍｏｔｏ」と端末プログラム識別情報「給与管理ソフト」との組み合わせと一致する「ユーザ識別情報」と「端末プログラム識別情報」との組み合わせを含むレコードが、ユーザ情報格納部２０１１に格納されているか否かを判断する。格納されていない場合、ユーザ識別情報「ｙａｍａｍｏｔｏ」に対応するユーザによる、「給与管理ソフト」という端末プログラムの利用が許可されていないこととなり、端末プログラム識別情報「給与管理ソフト」に対応したサーバプログラムの利用が拒否される。
【０１７８】
ここでは、図９に示したユーザ情報管理表の「ＩＤ」が「１」であるレコードの「ユーザ識別情報」と「端末プログラム識別情報」との組み合わせが、ユーザ識別情報「ｙａｍａｍｏｔｏ」と端末プログラム識別情報「給与管理ソフト」との組み合わせと一致すると判断される。これにより、ユーザ識別情報「ｙａｍａｍｏｔｏ」に対応するユーザによる、「給与管理ソフト」という端末プログラムの利用が許可されていることとなる。
【０１７９】
許可判断部２０１２が許可されていると判断したため、中継サーバ装置２０は、端末プログラムや、サーバプログラムや、データベース更新情報等の送信を要求する情報を、図示しない送信部等から各サーバ装置１０に送信する。
【０１８０】
図１０は、第一サーバ格納部１００１に格納されている端末プログラム等の情報を管理する第一管理情報である。第一管理情報は、「ＩＤ」、「端末プログラム」、「端末メッセージ」、「端末プログラム識別情報」および「端末バージョン情報」という属性を有している。「ＩＤ」は、レコードを管理するための識別情報である。「端末プログラム」、「端末プログラム識別情報」、「端末バージョン情報」については、図８に示した端末プログラム管理表のものと同様である。「端末メッセージ」は、端末プログラムが更新された場合に出力されるメッセージの情報である。
【０１８１】
図１１は、第二サーバ格納部１００３に格納されているサーバプログラム等の情報を管理する第二管理情報である。第二管理情報は、「ＩＤ」、「サーバプログラム」、「サーバメッセージ」、「サーバプログラム識別情報」、および「サーババージョン情報」という属性を有している。「ＩＤ」は、レコードを管理するための識別情報である。「サーバプログラム」は、サーバプログラムであり、例えば、中継サーバ装置２０で実行可能なプログラムである。「サーバプログラム識別情報」は、サーバプログラムの識別情報であり、ここではサーバプログラムが対応する端末プログラム識別情報と同じ識別情報であるとする。「サーバメッセージ」は、端末プログラムで利用するサーバプログラムのバージョンが変更された場合に出力されるメッセージの情報である。「サーババージョン情報」は、サーババージョン情報である。
【０１８２】
図１２は、第三サーバ格納部１００５に格納されているデータベース更新情報等の情報を管理する第三管理情報である。第三管理情報は、「ＩＤ」、「データベース更新情報」と、「データベース識別情報」と、「更新後バージョン情報」という属性を有している。「ＩＤ」は、レコードを管理するための識別情報である。「データベース識別情報」は、更新対象のデータベースの識別情報である。「データベース更新情報」は、データベース更新情報であり、ここでは、データベースの更新する際に実行される実行ファイルである。「更新後バージョン情報」は、更新後バージョン情報であり、ここでは、更新後のバージョンの数字、あるいは数字の範囲を示す情報である。
【０１８３】
各サーバ装置１０の図示しない受付部が、端末プログラム等の送信を要求する情報を受け付けると、各サーバ装置１０の第一サーバ送信部１００２は、図１０に示すような第一管理情報で管理されている端末プログラムおよび端末メッセージと、当該端末プログラムと対応付けられた端末プログラム識別情報および端末バージョン情報を第一サーバ格納部１００１から読み出し、中継サーバ装置２０に送信する。なお、既に送信済みの情報については送信しないようにしても良い。
【０１８４】
また、各サーバ装置１０の図示しない受付部が、サーバプログラム等の送信を要求する情報を受け付けると、各サーバ装置１０の第二サーバ送信部１００４は、図１１に示すような第二管理情報で管理されているサーバプログラムおよびサーバメッセージと、サーババージョン情報とを、第二サーバ格納部１００３から読み出し、中継サーバ装置２０に送信する。なお、一旦送信したサーバプログラム等の情報については、送信しないようにしても良い。
【０１８５】
また、各サーバ装置１０の図示しない受付部が、データベース更新情報等の送信を要求する情報を受け付けると、各サーバ装置１０の第三サーバ送信部１００６は、図１２に示すような第三管理情報で管理されているデータベース更新情報と、更新後のデータベースのバージョン情報である更新後バージョン情報と、データベース識別情報とを第三サーバ格納部１００５から読み出し、中継サーバ装置２０に送信する。なお、一旦送信したデータベース更新情報等の情報については、送信しないようにしても良い。
【０１８６】
中継サーバ装置２０の第一サーバ側受信部２００１、第二サーバ側受信部２００４、および第三サーバ側受信部２００７は、それぞれ、第一サーバ送信部１００２、第二サーバ送信部１００４、第三サーバ送信部１００６が送信する情報を受信する。
【０１８７】
中継端末プログラム蓄積部２００２は、第一サーバ側受信部２００１が受信した１以上の端末プログラムおよび端末メッセージと、当該端末プログラムと対応付けられた端末プログラム識別情報および端末バージョン情報とを対応付けて、中継端末プログラム格納部２００３に蓄積する。ここでは、中継端末プログラム格納部２００３には、初段階では端末プログラム等が格納されていなかったとすると、中継端末プログラム格納部２００３に格納されている端末プログラム等の管理情報は、図１０に示した第一管理情報と同様のものとなる。ただし、通常は、異なるサーバ装置１０から送信された端末プログラム識別情報が異なる端末プログラム等が格納される。
【０１８８】
サーバプログラム蓄積部２００５は、第二サーバ側受信部２００４が受信した１以上のサーバプログラムおよびサーバメッセージと、サーババージョン情報と、サーバ識別情報とを対応付けて、サーバプログラム格納部２００６に蓄積する。ここでは、サーバプログラム格納部２００６には、初段階ではサーバプログラム等が格納されていなかったとすると、サーバプログラム格納部２００６に格納されている端末メッセージ等の管理情報は、図１１に示した第二管理情報と同様のものとなる。ただし、通常は、異なるサーバ装置１０から送信されたサーバプログラム識別情報が異なるサーバプログラム等が格納される。
【０１８９】
データベース更新情報蓄積部２００８は、第三サーバ側受信部２００７が受信した１以上のプログラム更新情報と、データベース識別情報と、更新後バージョン情報とを対応付けて、データベース更新情報格納部２００９に蓄積する。ここでは、データベース更新情報格納部２００９には、初段階ではプログラム更新情報等が格納されていなかったとすると、データベース更新情報格納部２００９に格納されている端末メッセージ等の管理情報は、図１２に示した第三管理情報と同様のものとなる。なお、既にプログラム更新情報等が格納されていた場合、第三サーバ側受信部２００７が受信したプログラム更新情報等が追加あるいは更新される。ただし、通常は、異なるサーバ装置１０から送信されたデータベース識別情報が異なるデータベース更新情報等が格納される。
【０１９０】
図１３は、バージョン管理情報格納部２０１３に格納されているバージョン管理情報を管理するバージョン管理情報管理表である。バージョン管理情報管理表においては、各レコード（行）が、それぞれ一のバージョン管理情報である。バージョン管理情報は、「ＩＤ」、「端末プログラム識別情報」と、「端末バージョン情報」と、「サーババージョン情報」と、「データベース識別情報」と、「データベースバージョン情報」という属性を有している。「ＩＤ」は、バージョン管理情報を管理するための識別情報である。「端末プログラム識別情報」と、「端末バージョン情報」と、「サーババージョン情報」と、「データベース識別情報」と、「データベースバージョン情報」は、図８に示した端末プログラム管理表の項目と同様である。
【０１９１】
次に、不整合検出部２０１４は、端末側受信部２０１０が受信した端末プログラム識別情報「給与管理ソフト」、端末バージョン情報「２．１」、サーババージョン情報「３．０」、データベース識別情報「社員ＤＢ」、およびデータベースバージョン情報「２．０」と、バージョン管理情報格納部２０１３に格納されているバージョン管理情報の各レコードの「端末プログラム識別情報」、「端末バージョン情報」、「サーババージョン情報」、「データベース識別情報」、および「データベースバージョン情報」の値とを比較して不整合を検出し、この不整合の検出結果に応じて、端末側送信部２０１５が、端末プログラムや端末メッセージ等を端末装置３０に送信する。
【０１９２】
具体的には、まず、端末側受信部２０１０が受信した端末プログラム識別情報である「給与管理ソフト」と一致する「端末プログラム識別情報」を有するバージョン管理情報を、図１３に示したバージョン管理情報管理表において検索する。ここでは、「ＩＤ」が「００１」から、「００５」までのレコード、即ちバージョン管理情報が検出される。
【０１９３】
次に、検出されたバージョン管理情報の中から、「端末バージョン情報」の値が、端末側受信部２０１０が受信した端末バージョン情報である「２．１」と一致するバージョン管理情報を検出する。ここでは、「ＩＤ」が「００２」と「００３」であるバージョン管理情報が検出される。
【０１９４】
次に、検出されたバージョン管理情報の中から、「サーババージョン情報」の値が、端末側受信部２０１０が受信したサーババージョン情報である「３．０」と一致するバージョン管理情報があるか否かを判断する。ここでは、「ＩＤ」が「００２」と「００３」であるバージョン管理情報の「サーババージョン情報」の値は、「２．０」および「２．１」であり、いずれも「３．０」ではないと判断される。
【０１９５】
このため、不整合検出部２０１４は、端末バージョン情報が「２．１」である「ＩＤ」が「００２」と「００３」であるバージョン管理情報の中から、サーババージョン情報の値が最大であるバージョン管理情報である「ＩＤ」が「００３」のバージョン管理情報を検出する。そして、当該検出したバージョン管理情報のサーババージョン情報の値「２．１」と、端末側受信部２０１０が受信したサーババージョン情報である「３．０」とを比較して、検出したバージョン管理情報のサーババージョン情報の値「２．１」が、受信したサーババージョン情報よりも大きいか否かを判断する。ここでは、大きくないと判断される。
【０１９６】
このため、不整合検出部２０１４は、端末プログラム識別情報が「給与管理ソフト」であるとして検出した「ＩＤ」が「００１」から、「００５」までのバージョン管理情報の中から、「サーババージョン情報」の値が、端末側受信部２０１０が受信したサーババージョン情報である「３．０」と一致するバージョン管理情報を検出する。ここでは、「サーババージョン情報」の値が「３.０」である「ＩＤ」が「００５」であるバージョン管理情報が検出される。
【０１９７】
次に、不整合検出部２０１４は、直前に検出したバージョン管理情報の中から、「端末バージョン情報」の値が最大であるバージョン管理情報を検出する。ここでは、直前に検出されたバージョン管理情報が「ＩＤ」が「００５」であるバージョン管理情報１つだけであるため、この「ＩＤ」が「００５」であるバージョン管理情報が検出される。
【０１９８】
そして、端末側送信部２０１５は、検出した「ＩＤ」が「００５」であるバージョン管理情報の端末プログラム識別情報である「給与管理ソフト」と、端末バージョン情報である「３．０」とを取得し、中継端末プログラム格納部２００３に格納されている端末プログラムの中から、端末プログラム識別情報「給与管理ソフト」と、端末バージョン情報「３．０」とに対応付けられた端末プログラムと、端末メッセージと、端末プログラム識別情報と、端末バージョン情報とを読み出す。ここでは、上述したように、中継端末プログラム格納部２００３に格納されている端末プログラム等の情報が、図１０に示した第一管理情報によって管理されている情報と同様であるとすると、図１０の「ＩＤ」が「０４」のレコードの「端末プログラム」の実行ファイル、「端末プログラム識別情報」である「給与管理ソフト」、「端末バージョン情報」である「３．０」、「端末メッセージ」のメッセージを読み出す。そして読み出した情報を、端末側受信部２０１０が受信したユーザ識別情報の送信元となる端末装置３０に送信する。
【０１９９】
さらに、不整合検出部２０１４は、検出した「ＩＤ」が「００５」であるバージョン管理情報の「データベース識別情報」の値である「社員ＤＢ」と「データベースバージョン情報」の値「３．０」とを取得する。そして、端末側受信部２０１０が受信したデータベース識別情報と、当該データベース識別情報に対応したデータベースバージョン情報との中から、「社員ＤＢ」というデータベース識別情報に対応したデータベースバージョン情報を取得し、取得したデータベースバージョン情報の値が、「３．０」であるか否かを判断する。ここでは、端末側受信部２０１０が受信したデータベース識別情報と、データベースバージョン情報は、一つずつ、即ち一組であるため、「データベース識別情報」と「データベースバージョン情報」の値が共に一致するか否かを判断しても良い。端末側受信部２０１０が受信したデータベース識別情報は「社員ＤＢ」であるため、「ＩＤ」が「００５」であるバージョン管理情報の「データベース識別情報」の値と一致するが、端末側受信部２０１０が受信したデータベースバージョン情報は「２．０」であり、「ＩＤ」が「００５」であるバージョン管理情報の「データベースバージョン情報」の値「３．０」とは異なる。このため、データベース更新部２０１８は、データベース識別情報「社員ＤＢ」と、更新後バージョン情報「３．０」とに対応付けられたデータベースバージョン情報を、データベース更新情報格納部２００９から読み出す。ここでは、上述したように、データベース更新情報格納部２００９に格納されているデータベース更新情報等の情報が、図１２に示した第三管理情報によって管理されている情報と同様であるとすると、図１２の「ＩＤ」が「０２」のレコードの「データベース更新情報」であるデータベース更新情報と、「データベース識別情報」である「社員ＤＢ」、「更新後バージョン情報」である「３．０」を読み出す。そして、データベース更新部２０１８は、読み出しされたデータベース更新情報を用いて、データベース格納部２０１７に格納されているデータベースのうちの、端末側受信部２０１０が受信したユーザ識別情報「ｙａｍａｍｏｔｏ」に対応付けられたデータベースであって、データベース識別情報が「社員ＤＢ」であるデータベースを、バージョンが「３．０」となるよう更新する。また、端末側送信部２０１５は、データベース識別情報「社員ＤＢ」と、更新後バージョン情報「３．０」とを、端末側受信部２０１０が受信したユーザ識別情報の送信元となる端末装置３０に送信する。
【０２００】
端末装置３０が、中継サーバ装置２０から送信される、「端末プログラム」の実行ファイル、端末プログラム識別情報「給与管理ソフト」、端末バージョン情報「３．０」、および「端末メッセージ」のメッセージを受信すると、受信情報処理部３００７は、受信した「端末プログラム」の実行ファイルを用いて、端末プログラム格納部３００１に格納されている端末プログラムのうちの、端末プログラム識別情報「給与管理ソフト」と対応付けられている端末プログラムを更新する。例えば上書きする。また、この更新された端末プログラムに対応付けられている端末バージョン情報を、受信した端末バージョン情報「３．０」に更新する。また、受信情報処理部３００７は、出力部３００８に対して、受信した端末メッセージを出力させる指示を与える。
【０２０１】
出力部３００８は、受信情報処理部３００７の指示に応じて、受信した端末メッセージを、図示しないモニタ等に表示する。
【０２０２】
図１４は、端末メッセージの表示例を示す図である。
【０２０３】
また、端末装置３０が、中継サーバ装置２０から送信される、データベース識別情報「社員ＤＢ」と、更新後バージョン情報「３．０」とを受信すると、受信情報処理部３００７は、受信したデータベース識別情報である「社員ＤＢ」と同じデータベース識別情報と対応付けられて端末プログラム格納部３００１に格納されているデータベースバージョン情報の値を「３．０」に更新する。
【０２０４】
なお、仮に、「ＩＤ」が「００２」および「００３」であるバージョン管理情報の中から不整合検出部２０１４が検出した、サーババージョン情報の値の最大値である「２．１」が、受信したサーババージョン情報よりも大きい値であると判断されたとする。
【０２０５】
この場合、端末側送信部２０１５は、図１１に示した第二管理情報により管理されている情報と同様の情報が格納されているサーバプログラム格納部２００６から、上記のサーババージョン情報の値が最大であるバージョン管理情報のサーババージョン情報「２．１」と、端末側受信部２０１０が受信した端末プログラム識別情報「給与管理ソフト」と一致するサーバプログラム識別情報「給与管理ソフト」とに対応付けられたサーバメッセージ、即ち、図１１の「ＩＤ」が「０２」のレコードのサーバメッセージを読み出し、サーババージョン情報の値を上述した最大の値「２．１」に変更する指示と、読み出したサーバメッセージとを、端末側受信部２０１０が受信した端末プログラム識別情報「給与管理ソフト」と対応付けて、端末側受信部２０１０が受信したユーザ識別情報の送信元となる端末装置３０に送信する。なお、サーババージョン情報の値を変更する指示は、少なくとも変更後のサーババージョン情報を含む情報であれば良い。
【０２０６】
また、端末装置３０が、中継サーバ装置２０から送信される、サーババージョン情報の値を「２．１」に変更する指示と、サーバメッセージと、端末プログラム識別情報「給与管理ソフト」とを受信すると、受信情報処理部３００７は、サーババージョン情報の値を「２．１」に変更する指示に応じて、端末プログラム格納部３００１に格納されているサーババージョン情報のうちの、受信した端末プログラム識別情報「給与管理ソフト」と対応付けられているサーババージョン情報を「２．１」に更新する。例えば上書きする。また、受信情報処理部３００７は、出力部３００８に対して、受信したサーバメッセージを出力させる指示を与える。
【０２０７】
出力部３００８は、受信情報処理部３００７の指示に応じて、受信したサーバメッセージを、図示しないモニタ等に表示する。
【０２０８】
図１５は、サーバメッセージの表示例を示す図である。
【０２０９】
ここで、端末プログラム格納部３００１に格納されている「社員ＤＢ」のデータベースバージョン情報の値を「３．０」に更新された以降に、「人事管理ソフト」をユーザが起動したとすると、図８に示した端末プログラム管理表の「ＩＤ」が「０３」であるレコードの端末プログラム識別情報「人事管理ソフト」、端末バージョン情報「２．０」、サーババージョン情報「２．０」、データベース識別情報「社員ＤＢ」、データベースバージョン情報「３．０」が、端末装置３０から中継サーバ装置２０に送信される。
【０２１０】
このとき、端末プログラム識別情報が「人事管理ソフト」であるバージョン管理ソフトのうちの、データベース識別情報が「社員ＤＢ」であってデータベースバージョン情報が「３．０」であるバージョン管理情報の端末バージョン情報が「３．０」、サーババージョン情報が「３．０」であったとすると、中継サーバ装置２０から送信された端末バージョン情報と、サーババージョン情報が、いずれもバージョン管理情報の端末バージョン情報と、サーババージョン情報の値と整合していないため、端末プログラムのバージョンが「３．０」、サーバプログラムのバージョンが「３．０」となるように、端末プログラムや端末メッセージ、サーバプログラムの変更指示やサーバメッセージの送信が行われる。これにより、共有するデータベースのバージョンが更新された場合においても、当該データベースを利用する端末プログラムやサーバプログラムのバージョンを、更新されたデータベースのバージョンに適したものとなるように更新させることができる。
【０２１１】
以上、本実施の形態によれば、複数のサーバ装置１０のように、提供先の異なる複数のプログラムについてアップデートを行う際においても、中継サーバ装置２０によりアップデートを行うことができ、プログラムの更新を容易にかつ適切に行うことができる。
【０２１２】
また、端末プログラム等のバージョンが、サーバ装置１０の提供するバージョンと異なる場合、つまり整合がとれない場合に、端末プログラム等のバージョンを更新したり、更新のためのメッセージをユーザに出力したりすることができる。
【０２１３】
また、端末プログラムやサーバプログラムやデータベースのバージョンの組合せ等が、正常に動作可能なバージョンの組合せと異なる場合に、バージョン同士の整合がとれるように、バージョンを更新したり、適切なバージョンの組合せとなるよう、ユーザにメッセージを出力したりすることができる。
【０２１４】
なお、本実施の形態においては、端末プログラムやサーバプログラムに関するメッセージと同様に、第三サーバ格納部１００５に格納されるデータベース更新情報に対応付けて、当該データベース更新情報に関するメッセージであるデータベースメッセージを格納するようにしても良い。そして、当該データベースメッセージを、データベース更新情報とともに、中継サーバ装置２０に送信して、データベース更新情報に格納するようにし、データベース更新情報を用いてデータベースを更新する前後に、用いられるデータベースに対応付けられたデータベース更新情報を、端末装置３０に、データベースバージョン情報等と共に送信するようにする。そして、端末装置３０の受信情報処理部３００７が、受信したデータベースメッセージを出力部３００８等に出力させることができるようにしてもよい。データベースメッセージは、例えば、データベースの変更の許可を求めるメッセージや、データベースが変更されたことを示すメッセージ等である。
【０２１５】
（実施の形態２）
本実施の形態にかかる情報処理システムは、上述した情報処理システムにおいて、端末装置の端末プログラム格納部３００１に端末バージョン情報やサーババージョン情報やデータベース識別情報等が格納されるようにする代わりに、中継サーバ装置のユーザ情報格納部２１１１に、端末バージョン情報やサーババージョン情報やデータベース識別情報等が格納されるようにしたものである。
【０２１６】
本実施の形態における情報処理システム２は、図１に示した情報処理システムにおいて、中継サーバ装置２０の代わりに中継サーバ装置２１を、端末装置３０の代わりに端末装置３１を設けるようにしたものである。情報処理システム２は、二以上のサーバ装置１０、中継サーバ装置２１、および２以上の端末装置３１を備えている。サーバ装置１０、および端末装置３１はそれぞれ一以上であれば数は問わない。
【０２１７】
図１６は、本実施の形態における情報処理システム１の、サーバ装置１０、中継サーバ装置２１の構成を示すブロック図である。なお、サーバ装置１０の構成に付いては、上記実施の形態と同様であるので、ここでの説明は省略する。
【０２１８】
また、図１７は、本実施の形態における情報処理システム１の、端末装置３１の構成を示すブロック図である。
【０２１９】
中継サーバ装置２１は、第一サーバ側受信部２１０１、中継端末プログラム蓄積部２１０２、中継端末プログラム格納部２１０３、第二サーバ側受信部２１０４、サーバプログラム蓄積部２１０５、サーバプログラム格納部２１０６、第三サーバ側受信部２１０７、データベース更新情報蓄積部２１０８、データベース更新情報格納部２１０９、端末側受信部２１１０、ユーザ情報格納部２１１１、許可判断部２１１２、バージョン管理情報格納部２１１３、不整合検出部２１１４、端末側送信部２１１５、中継プログラム処理部２１１６、データベース格納部２１１７、データベース更新部２１１８を備えている。
【０２２０】
端末装置３１は、端末プログラム格納部３１０１、端末プログラム処理部３１０２、ユーザ識別情報受付部３１０３、ユーザ識別情報送信部３１０４、端末送信部３１０５、端末受信部３１０６、受信情報処理部３１０７、および出力部３１０８を備えている。
【０２２１】
第一サーバ側受信部２１０１、中継端末プログラム蓄積部２１０２、中継端末プログラム格納部２１０３、第二サーバ側受信部２１０４、サーバプログラム蓄積部２１０５、サーバプログラム格納部２１０６、第三サーバ側受信部２１０７、データベース更新情報蓄積部２１０８、データベース更新情報格納部２１０９、許可判断部２１１２、バージョン管理情報格納部２１１３、中継プログラム処理部２１１６、データベース格納部２１１７、およびデータベース更新部２１１８の構成等については、上述した第一サーバ側受信部２００１、中継端末プログラム蓄積部２００２、中継端末プログラム格納部２００３、第二サーバ側受信部２００４、サーバプログラム蓄積部２００５、サーバプログラム格納部２００６、第三サーバ側受信部２００７、データベース更新情報蓄積部２００８、データベース更新情報格納部２００９、許可判断部２０１２、バージョン管理情報格納部２０１３、中継プログラム処理部２０１６、データベース格納部２０１７、およびデータベース更新部２０１８と同様であるので、ここでは説明を省略する。
【０２２２】
端末側受信部２１１０は、端末装置３１から送信される上述したユーザ識別情報と、上述した端末プログラム識別情報とを受信する。その他の構成等については、上記実施の形態の端末側受信部２０１０と同様であるので、ここでは説明を省略する。
【０２２３】
ユーザ情報格納部２１１１には、端末装置３１が実行可能な端末プログラムを利用可能なユーザのユーザ識別情報と、当該ユーザ識別情報に対応するユーザが利用可能な端末プログラムの識別情報である端末プログラム識別情報と、当該端末プログラムの端末バージョン情報とが対応付けられて格納され得る。これらの対応付けられた情報は、例えば、一のユーザが利用可能な一以上の端末プログラムと、当該端末プログラムの端末バージョン情報および端末プログラム識別情報である。
【０２２４】
また、ユーザ情報格納部２１１１には、端末装置３１が実行可能な端末プログラムを利用可能なユーザのユーザ識別情報と、当該ユーザ識別情報に対応するユーザが利用可能な端末プログラムの識別情報である端末プログラム識別情報と、当該端末プログラムに対応したサーバプログラムについてのサーババージョン情報とが対応付けられて格納されていてもよい。
【０２２５】
また、ユーザ情報格納部２１１１には、端末装置３１が実行可能な端末プログラムを利用可能なユーザのユーザ識別情報と、当該ユーザ識別情報に対応するユーザが利用可能な端末プログラムの識別情報である端末プログラム識別情報と、当該端末プログラムに対応したサーバプログラムについてのサーババージョン情報と、当該サーバプログラムが利用するデータベースのデータベースバージョン情報とが対応付けられて格納されていてもよい。
【０２２６】
このように、本実施の形態においては、ユーザ情報格納部２１１１には、ユーザが利用可能な端末プログラムやサーバプログラムやデータベースについての、バージョンに関する情報が格納されている。つまり、ユーザ情報格納部２１１１は、ユーザが利用可能な端末プログラムやサーバプログラムやデータベースについてのバージョンを管理するための情報が格納されていると考えても良い。
【０２２７】
本実施の形態においては、中継プログラム処理部２１１６は、例えば、端末装置３１において、ユーザ識別情報が示すユーザによって端末プログラム識別情報が示す端末プログラムが実行された場合において、端末プログラムから中継プログラム処理部２１１６に対して、何らかの要求情報が送信された場合、中継プログラム処理部２１１６等は、端末側受信部２１１０が受信したユーザ識別情報と端末プログラム識別情報との組合せに対応付けられてユーザ情報格納部２１１１に格納されているサーババージョン情報に対応したバージョンのサーバプログラムを実行させて処理を行う。また、例えば、この処理を行う際には、適宜、端末側受信部２１１０が受信したユーザ識別情報と端末プログラム識別情報との組合せに対応付けられてユーザ情報格納部２１１１に格納されているデータベース識別情報に対応したデータベースのうちの、データベースバージョン情報に対応したバージョンのデータベースを利用する。
【０２２８】
なお、サーバプログラムが複数のデータベースを利用するものである場合、データベースバージョン情報がどのデータベースに関するものであるかが識別できるよう、データベース識別情報を上記の情報に対応付けて格納されるようにしても良い。また、サーババージョン情報に加えて、サーバプログラムの識別情報であるサーバプログラム識別情報が格納されるようにしても良い。なお、上記以外の構成等については、ユーザ情報格納部２０１１と同様であるので、ここでは説明を省略する。なお、ユーザ情報格納部２１１１に格納されている端末バージョン情報や、サーババージョン情報や、データベースバージョン情報等は、後述する端末側送信部２１１５から端末プログラムや端末メッセージやサーバメッセージ等が端末装置３１に送信される場合や、サーバプログラムのバージョンを変更する必要があると後述する不整合検出部２１１４等が検出した場合や、データベースの更新等が行われた場合等に、不整合検出部２１１４等により適宜更新されるものとする。
【０２２９】
不整合検出部２１１４は、許可判断部２１１２により、端末側受信部２１１０が受信したユーザ識別情報が示すユーザにより、端末側受信部２１１０が受信した端末プログラム識別情報に対応した端末プログラムの利用が許可されていると判断された場合に、端末側受信部２１１０が受信した端末プログラム識別情報と、当該端末プログラム識別情報を用いてユーザ情報格納部２１１１から取得した端末バージョン情報とを用いて、端末装置３１が有する端末プログラムに関する不整合を検出する。端末側受信部２１１０が受信した端末プログラム識別情報を用いて、ユーザ情報格納部２１１１から取得する、とは、端末側受信部２１１０が受信した端末プログラム識別情報と対応付けられてユーザ情報格納部２１１１に格納されている端末バージョン情報や、サーババージョン情報やデータベースバージョン情報を取得することを意味する。
【０２３０】
また、不整合検出部２１１４は、許可判断部２１１２により、端末側受信部２１１０が受信したユーザ識別情報が示すユーザにより、端末側受信部２１１０が受信した端末プログラム識別情報に対応した端末プログラムの利用が許可されていると判断された場合に、端末側受信部２１１０が受信した端末プログラム識別情報と、当該端末プログラム識別情報および端末側受信部２１１０が受信したユーザ識別情報を用いてユーザ情報格納部２１１１から取得した端末バージョン情報とを用いて、端末装置３１が有する端末プログラムに関する不整合を検出してもよい。また、ユーザ識別情報が示すユーザにより端末プログラムの利用が許可されていると判断された場合に、端末側受信部２１１０が受信した端末プログラム識別情報と、当該端末プログラム識別情報および端末側受信部２１１０が受信したユーザ識別情報を用いてユーザ情報格納部２１１１から取得した端末バージョン情報と、サーババージョン情報とを用いて、端末装置３１が有する端末プログラムに関する不整合を検出してもよい。また、ユーザ識別情報が示すユーザにより端末プログラムの利用が許可されていると判断された場合に、端末側受信部２１１０が受信した端末プログラム識別情報と、当該端末プログラム識別情報および端末側受信部２１１０が受信したユーザ識別情報を用いてユーザ情報格納部２１１１から取得した端末バージョン情報と、サーババージョン情報と、データベースバージョン情報を用いて、端末装置３１が有する端末プログラムに関する不整合を検出してもよい。端末側受信部２１１０が受信した端末プログラム識別情報とユーザ識別情報とを用いて、ユーザ情報格納部２１１１から取得する、とは、端末側受信部２１１０が受信した端末プログラム識別情報およびユーザ識別情報と対応付けられてユーザ情報格納部２１１１に格納されている端末バージョン情報や、サーババージョン情報やデータベースバージョン情報を取得することを意味する。
【０２３１】
本実施の形態の不整合検出部２１１４は、端末側受信部２１１０が受信した端末プログラム識別情報や、ユーザ識別情報を用いて、ユーザ情報格納部２１１１から端末バージョン情報等を取得し、当該取得した端末バージョン情報等を用いて不整合を検出する点が、端末側受信部２０１０が受信した端末バージョン情報等を用いて不整合を検出する上述した不整合検出部２０１４と異なる点であり、これらの違いを除けば、不整合検出部２１１４の構成および不整合の検出処理等については、上述した不整合検出部２０１４と同様であるので、ここでは、詳細な説明は省略する。
【０２３２】
なお、複数の端末プログラムやサーバプログラムが一のデータベースを共用している場合等においては、端末側受信部２１１０が受信した一のユーザ識別情報および端末プログラム識別情報等の組に関して、不整合検出の処理が行われた結果、データベース更新部２１１８により一のデータベースが更新された場合、ユーザ情報格納部２１１１に格納されている端末バージョン情報、サーババージョン情報、及びデータベースバージョン情報等の組から、当該更新されたデータベースと同じデータベース識別情報および同じユーザ識別情報に対応付けられている端末バージョン情報、サーババージョン情報、及びデータベースバージョン情報等の組を検出し、当該検出した組について、上記と同様のバージョン管理情報を用いて不整合の検出処理を行うようにしてもよい。このときの不整合の検出処理においては、データベースバージョン情報が一致するバージョン管理情報に対して、端末バージョン情報およびサーババージョン情報が一致するかの判断を行うことが好ましい。これにより、一のサーバプログラムの更新等によって、データベースが更新されて、データベースのバージョンが変更された場合、データベースのバージョンにあわせて、サーババージョン情報や端末バージョン情報を更新することができる。また、データベースのバージョンが更新された場合に、端末装置３１に、当該更新されたデータベースのデータベース識別情報に対応付けられた他の端末バージョン情報、サーババージョン情報、及びデータベースバージョン情報等の組を送信させるようにし、当該送信された情報を用いて不整合を判断する処理等を行うようにしても良い。
【０２３３】
端末側送信部２１１５は、不整合検出部２１１４の検出結果に応じて、第一サーバ側受信部２１０１が受信したユーザ識別情報またはメッセージの少なくとも一方を、端末側受信部２１１０が受信したユーザ識別情報の送信元となる端末装置３１に送信する。また、端末側送信部２１１５は、不整合検出部２１１４の検出結果に応じて、第二サーバ側受信部２１０４が受信したサーバメッセージを、端末側受信部２１１０が受信したユーザ識別情報の送信元となる端末装置３１に送信してもよい。この実施の形態においては、端末側送信部２１１５は、例えば、サーバプログラムのバージョンを更新する指示や、更新されたデータベースのバージョンを示す情報を、端末装置３１に送信しなくてよい点で、上記実施の形態の端末側送信部２０１５とは異なる。検出結果に応じて送信するとは、検出結果に応じて送信しないことも含む概念である。
【０２３４】
端末装置３１の端末プログラム処理部３１０２、ユーザ識別情報受付部３１０３、ユーザ識別情報送信部３１０４、および出力部３１０８の構成および処理については、上記実施の形態の端末装置３０の端末プログラム処理部３００２、ユーザ識別情報受付部３００３、ユーザ識別情報送信部３００４、および出力部３００８と同様であるので説明を省略する。
【０２３５】
端末プログラム格納部３１０１には、一以上の端末プログラムと、端末プログラム識別情報とが対応付けられて格納され得る。端末プログラム格納部３１０１は、上述した端末プログラム格納部３００１において、少なくとも、一以上の端末プログラムと、端末プログラム識別情報とが対応付けられて格納され得るようにしたものと考えても良い。端末プログラム格納部３１０１は、不揮発性の記録媒体でも、揮発性の記録媒体でも良い。
【０２３６】
端末送信部３１０５は、端末プログラム格納部３１０１に格納されている端末プログラム識別情報を中継サーバ装置２１に送信する。端末送信部３１０５が、端末プログラム識別情報を中継サーバ装置２１に送信する構成や処理等については、上述した端末送信部３００５と同様である。端末送信部３１０５は、無線または有線の通信手段等で実現され得る。
【０２３７】
端末受信部３１０６は、中継サーバ装置２１から送信される端末プログラムまたは端末メッセージの少なくとも一方や、中継サーバ装置２１から送信されるサーバメッセージを受信する。端末受信部３１０６が、端末プログラムまたは端末メッセージの少なくとも一方や、サーバメッセージを受信する動作や処理等については、上述した端末受信部３００６と同様である。端末受信部３１０６は、無線または有線の通信手段等で実現され得る。
【０２３８】
受信情報処理部３１０７は、端末受信部３１０６が受信した端末プログラムまたは端末メッセージの少なくとも一方を処理する。また、受信情報処理部３１０７は、端末受信部３１０６が受信したサーバメッセージを出力する処理を行っても良い。これらの処理に付いては、上述した受信情報処理部３００７の処理と同様であるので、ここでは説明を省略する。受信情報処理部３１０７の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【０２３９】
次に、情報処理システム２の動作について説明する。
【０２４０】
サーバ装置１０の動作については、上記実施の形態のサーバ装置１０と同様であるので、説明は省略する。
【０２４１】
まず、中間サーバ装置２１の動作について図１８のフローチャートを用いて説明する。なお、図１８において、図５と同一符号のステップは、同一または相当する処理ステップを示している。
【０２４２】
（ステップＳ１８０１）端末側受信部２１１０は、ユーザ識別情報および端末プログラム識別情報を受信したか否かを判断する。受信した場合、ステップＳ５０２に進み、受信していない場合、ステップＳ５０３に進む。
【０２４３】
（ステップＳ１８０２）不整合検出部２１１４は、ユーザ情報格納部２１１１から、ステップＳ１８０１において受信したユーザ識別情報および端末プログラム識別情報の両方に対応付けられた端末バージョン情報と、サーババージョン情報と、データベース識別情報と、データベースバージョン情報とを取得する。
【０２４４】
（ステップＳ１８０３）中継サーバ装置２１は、ステップＳ１８０２において取得した端末バージョン情報と、サーババージョン情報と、データベース識別情報と、データベースバージョン情報とを用いて、端末プログラムに関する不整合を検出する。なお、この不整合の検出処理については後述する。そして、ステップＳ１８０１に戻る。
【０２４５】
なお、図１８のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【０２４６】
次に、図１８のステップＳ１８０３において示した中継サーバ装置２１の不整合を判断する処理について、図１９のフローチャートを用いて説明する。
【０２４７】
（ステップＳ１９０１）不整合検出部２１１４は、ステップＳ１８０１において受信したユーザ識別情報および端末プログラム識別情報の両方と一致するユーザ識別情報および端末プログラム識別情報を有するバージョン管理情報を、検索等によりバージョン管理情報格納部２１１３等から検出する。
【０２４８】
（ステップＳ１９０２）不整合検出部２１１４は、ステップＳ１９０１において検出したバージョン管理情報の中に、ステップＳ１８０２において取得した端末バージョン情報と一致する端末バージョン情報を有するバージョン管理情報があるか否かを判断する。ある場合、該当するバージョン管理情報を検出し、ステップＳ１９０３に進み、ない場合、ステップＳ１９１１に進む。
【０２４９】
（ステップＳ１９０３）不整合検出部２１１４は、直前に検出したバージョン管理情報の中に、ステップＳ１９０１において検出したサーババージョン情報と一致するサーババージョン情報を有するバージョン管理情報があるか否かを判断する。ある場合、該当するバージョン管理情報を検出し、ステップＳ１９０４に進み、ない場合、ステップＳ１９０７に進む。
【０２５０】
（ステップＳ１９０４）不整合検出部２１１４は、直前に検出したバージョン管理情報のデータベースバージョン情報が、ステップＳ１８０２において取得したデータベースバージョン情報と一致するか否かを判断する。一致する場合、上位の処理に戻る。一致しない場合、ステップＳ１９０５に進む。
【０２５１】
（ステップＳ１９０５）データベース更新部２１１８は、直前に検出したバージョン管理情報の中から、データベースバージョン情報が示すバージョンが最も高いもの、例えば、バージョンを示す数値の最も高いものを検出する。
【０２５２】
（ステップＳ１９０６）データベース更新部２１１８は、データベース更新情報格納部２１０９から、ステップＳ１９０５において検出したバージョン管理情報のデータベースバージョン情報が示すバージョンを示している更新後バージョン情報に対応付けられ、かつ、検出されたバージョン管理情報のデータベース識別情報と一致するデータベース識別情報と対応付けられたデータベース更新情報を取得する。そして、当該データベース更新情報を用いて、ステップＳ１８０１において受信したユーザ識別情報および端末プログラム識別情報に対応するサーバプログラムに対応するデータベースの更新、即ちバージョンアップを行う。そして、上位の処理に戻る。
【０２５３】
（ステップＳ１９０７）不整合検出部２１１４は、ステップＳ１９０３において検出したバージョン管理情報の中から、サーババージョン情報が示すバージョンの値が最も高いものを検出する。
【０２５４】
（ステップＳ１９０８）不整合検出部２１１４は、ステップＳ１９０７で検出したサーババージョン情報が示すバージョンが、ステップＳ１８０２において取得したサーババージョン情報が示すバージョンよりも高いか否かを判断する。高い場合、ステップＳ１９０９に進み、高くない場合、ステップＳ１９１７に進む。
【０２５５】
（ステップＳ１９０９）端末側送信部２１１５は、直前に検出したバージョン管理情報のサーババージョン情報で、ステップＳ１８０１において受信したユーザ識別情報と端末プログラム識別情報との両方に対応付けられたサーババージョン情報を更新する。例えば上書きする。
【０２５６】
（ステップＳ１９１０）端末側送信部２１１５は、直前に検出したバージョン管理情報のデータベースバージョン情報と、ステップＳ１８０２において取得したデータベースバージョン情報とが一致するか否かを判断する。一致する場合、上位の処理に戻り、一致しない場合、ステップＳ１９１１に進む。
【０２５７】
（ステップＳ１９１１）データベース更新部２１１８は、データベース更新情報格納部２１０９から、直前に検出されたバージョン管理情報のデータベースバージョン情報が示すバージョンを示している更新後バージョン情報に対応付けられ、かつ、直前に検出されたバージョン管理情報のデータベース識別情報と一致するデータベース識別情報と対応付けられたデータベース更新情報を取得する。そして、当該データベース更新情報を用いて、ステップＳ１８０１において受信したユーザ識別情報および端末プログラム識別情報に対応するサーバプログラムに対応するデータベースの更新、即ちバージョンアップを行う。そして、上位の処理に戻る。
【０２５８】
（ステップＳ１９１２）不整合検出部２１１４は、ステップＳ１９０１において検出したバージョン管理情報の中に、ステップＳ１８０２において取得したサーババージョン情報と一致するサーババージョン情報を有するバージョン管理情報があるか否かを判断する。ある場合、該当するバージョン管理情報を検出し、ステップＳ１９１３に進み、ない場合、ステップＳ１９１５に進む。
【０２５９】
（ステップＳ１９１３）不整合検出部２１１４は、ステップＳ１９１２において検出したバージョン管理情報の中から、端末バージョン情報が示すバージョンの値が最も高いものを検出する。
【０２６０】
（ステップＳ１９１４）端末側送信部２１１５は、ステップＳ１９１３において検出したバージョン管理情報の端末プログラム識別情報および端末バージョン情報に対応付けられた端末プログラムを中継端末プログラム格納部２１０３から読み出し、ステップＳ１８０１において受信したユーザ識別情報の送信元となる端末装置３１に、ステップＳ１８０１において受信した端末プログラム識別情報と対応付けて送信する。そして、ステップＳ１９１０に戻る。
【０２６１】
（ステップＳ１９１５）不整合検出部２１１４は、ステップＳ１９０１において検出したバージョン管理情報の中から、端末バージョン情報が示すバージョンの値が最も高いものを検出する。
【０２６２】
（ステップＳ１９１６）端末側送信部２１１５は、ステップＳ１９１５において検出したバージョン管理情報の端末プログラム識別情報および端末バージョン情報に対応付けられた端末プログラムを中継端末プログラム格納部２１０３から読み出し、ステップＳ１８０１において受信したユーザ識別情報の送信元となる端末装置３１に、ステップＳ１８０１において受信した端末プログラム識別情報と対応付けて送信する。そして、ステップＳ１９０９に戻る。
【０２６３】
（ステップＳ１９１７）不整合検出部２１１４は、ステップＳ１９０１において検出したバージョン管理情報の中から、ステップＳ１８０２において受信したサーババージョン情報と一致するサーババージョン情報を有するバージョン管理情報を検出する。そして、ステップＳ１９１３に進む。
【０２６４】
なお、図１９のフローチャートにおいて、ステップＳ１９０６やステップＳ１９０９やステップＳ１９１１やステップＳ１９１４やステップＳ１９１６等において、端末プログラムの送信や、サーババージョン情報の送信や、データベースの更新等を行わずに、端末プログラムや、サーバプログラムやデータベース更新情報等に対応付けられたメッセージを端末装置３１に送信する場合、メッセージを送信して、上位の処理に戻るようにしても良い。この場合のメッセージは、例えば、更新等を行うことを促すメッセージである。このような場合、当該メッセージに対応して端末装置３１から送信される指示等に応じて、中継サーバ装置２１が、端末プログラムの送信や、サーババージョン情報の送信や、データベースの更新等を行うようにしても良い。
【０２６５】
また、ステップＳ１９０６やステップＳ１９０９やステップＳ１９１１やステップＳ１９１４やステップＳ１９１６等において、端末プログラムの送信や、サーババージョン情報の送信や、データベースの更新等に加えて、端末プログラムや、サーバプログラムやデータベース更新情報等に対応付けられたメッセージを端末装置３１に送信する処理を行い、次の処理ステップに進むようにしても良い。この場合のメッセージは、例えば、更新等を行ったことを通知するメッセージである。
【０２６６】
また、図１９のフローチャートにおいては、中継プログラム処理部２１１６が実行する、端末装置３１からの要求等に応じた処理についての説明は省略する。
【０２６７】
なお、図１９のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【０２６８】
なお、図１９のフローチャートにおいて、ステップＳ１９０５と、ステップＳ１９０６との間に、ステップＳ１９０５において検出したデータベースバージョン情報よりも、ステップＳ１８０２において受信したデータベースバージョン情報が大きいか否かを判断する処理を行うようにしてもよい。また、ステップＳ１９１０と、ステップＳ１９１１との間に、ステップＳ１９１０において判断に用いたバージョン管理情報のデータベースバージョン情報よりも、ステップＳ１８０２において受信したデータベースバージョン情報が大きいか否かを判断する処理を行うようにしてもよい。これらの判断処理は、ステップ１８０２において取得したデータベース識別情報に対応するデータベースバージョン情報について行われる。そして、大きくない場合は、そのまま、ステップＳ１９０６やステップＳ１９１１に進むようにし、大きい場合は、ステップＳ１９０１において検出したバージョン管理情報の中から、ステップＳ１８０２において取得したデータベース識別情報およびデータベースバージョン情報と同じデータベース識別情報およびデータベースバージョン情報を含むバージョン管理情報を検出する処理を行い、当該検出したバージョン管理情報について、ステップＳ１９０２以降と同様の処理を行うようにしてもよい。ただし、ここで行われるステップＳ１９０２以降の処理においては、ステップＳ１９０２からステップＳ１９０６までの処理およびステップＳ１９１０からステップＳ１９１１までの処理は省略して、上位の処理に戻るようにする。
【０２６９】
このようにすることで、一のデータベースを、二以上の端末プログラムやサーバプログラムで共用している場合において、一の端末プログラムやサーバプログラムのバージョンの更新に伴って、データベースのバージョンが更新された場合、当該データベースのバージョンの更新を検出して、当該更新されたデータベースが利用可能となるように、他の端末プログラムやサーバプログラムのバージョンの更新を行うことが可能となる。
【０２７０】
次に、端末装置３１の動作について図２０のフローチャートを用いて説明する。
【０２７１】
（ステップＳ２００１）ユーザ識別情報受信部３１０３は、ユーザ識別情報を受信したか否かを判断する。受信した場合、ステップＳ２００２に進み、受信していない場合、ステップＳ２００１に戻る。受信したユーザ識別情報は、例えば、端末装置３１の認証処理等に利用される。
【０２７２】
（ステップＳ２００２）ユーザ識別情報受信部３１０３は、ステップＳ２００１において受信したユーザ識別情報を、図示しないメモリ等の格納部に一時記憶する。
【０２７３】
（ステップＳ２００３）端末送信部３１０５は、ユーザ識別情報と、端末プログラム識別情報とを送信するか否かを判断する。送信する場合、ステップＳ２００４に進み、送信しない場合、ステップＳ２００６に進む。例えば、端末送信部３１０５は、端末プログラム格納部３１０１に格納されている端末プログラムの一つを起動させた場合に、当該端末プログラムに対応付けて格納されている端末バージョン情報と、ユーザ識別情報を送信することを決定する。
【０２７４】
（ステップＳ２００４）ユーザ識別情報送信部３１０４は、ステップＳ２００１で受信したユーザ識別情報を中継サーバ装置２１に送信する。
【０２７５】
（ステップＳ２００５）端末送信部３１０５は、端末プログラム識別情報を端末プログラム格納部３１０１から読み出し、ステップＳ２００４において送信したユーザ識別情報と対応付けて、中継サーバ装置２１に送信する。なお、端末送信部３１０５は、一部の端末プログラム識別情報だけを送信しても良く、例えば、起動した端末プログラムに対応した端末プログラム識別情報だけを送信しても良い。なお、ユーザ識別情報送信部３１０４と端末送信部３１０５とを一の端末送信部により構成し、当該端末送信部が、ユーザ識別情報と、端末プログラム識別情報とを中継サーバ装置２１に送信するようにしてもよい。そして、ステップＳ２００３に戻る。
【０２７６】
（ステップＳ２００６）端末受信部３１０６は、端末プログラムと端末プログラム識別情報とを受信したか否かを判断する。受信した場合、ステップＳ２００７に進み、受信していない場合、ステップＳ２００３に戻る。
【０２７７】
（ステップＳ２００７）端末装置３１の受信情報処理部３１０７等は、ステップＳ２００６において受信した端末プログラム識別情報と同じ端末プログラム識別情報と対応付けられて端末プログラム格納部３１０１に格納されている端末プログラムを、ステップＳ２００６において受信した端末プログラムで更新する。そして、ステップＳ２００３に戻る。
【０２７８】
なお、図２０のフローチャートにおいては、端末プログラム処理部３１０２が端末プログラム等を実行する処理についての説明は省略する。
【０２７９】
また、図２０のフローチャートにおいて、ステップＳ２００６の代わりに、あるいはこのステップＳ２００６の処理に加えて、端末プログラムに対応付けられた端末メッセージを受信したか否かを判断するようにし、受信した場合、受信情報処理部３１０７が、出力部３１０８が受信した端末メッセージを出力、例えばモニタ等に表示させるようにしてもよい。
【０２８０】
また、ステップＳ２００６において、受信していないと判断された場合に、サーバプログラムに対応付けられたサーバメッセージを受信したか否かを判断するようにし、受信した場合、受信情報処理部３１０７が、出力部３１０８が受信したサーバメッセージを出力、例えばモニタ等に表示させるようにしてもよい。受信していない場合、ステップＳ２００３に戻る。
【０２８１】
なお、図２０のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【０２８２】
以下、本実施の形態における情報処理システム２の具体的な動作について説明する。
【０２８３】
まず、ユーザが一の端末装置３１にログインのためにユーザ識別情報を入力すると、ユーザ識別情報受付部３１０３が、入力されたユーザ識別情報を受け付ける。入力されたユーザ識別情報がここでは、「ｙａｍａｍｏｔｏ」であったとする。受け付けたユーザ識別情報は図示しない格納部等に一時記憶される。また、端末装置３１は、ログイン等の認証処理を行う。
【０２８４】
図２１は、端末プログラム格納部３１０１に格納されている端末プログラム管理表を示す図である。端末プログラム管理表は、「ＩＤ」と、「端末プログラム」と、「端末プログラム識別情報」という項目を有している。この端末プログラム管理表は、図８に示した端末プログラム管理表において、「ＩＤ」と、「端末プログラム」と、「端末プログラム識別情報」という項目を除いた項目を省略したものであり、項目等の説明は省略する。
【０２８５】
次に、ユーザが、端末プログラム格納部３１０１に格納されている端末プログラムの一つを起動させる指示を端末装置３１に図示しない入力インターフェース等を介して与えたとすると、ユーザ識別情報送信部３１０４は、一時記憶されているユーザ識別情報を中継サーバ装置２１に、ネットワーク６０を介して送信する。また、端末送信部３１０５は、起動させる指示の対象となる端末プログラムに対応付けられた、端末プログラム識別情報を読み出し、ユーザ識別情報送信部３１０４が送信したユーザ識別情報と対応付けて、中継サーバ装置２１に、ネットワーク６０を介して送信する。
【０２８６】
例えば、「給与管理ソフト」という端末プログラム識別情報と対応付けられた端末プログラムを起動する指示が与えられたとすると、ユーザ識別情報である「ｙａｍａｍｏｔｏ」と、端末プログラム識別情報である「給与管理ソフト」とが、対応付けられて中継サーバ装置２１に送信される。
【０２８７】
中継サーバ装置２１の端末側受信部２１１０は、端末装置３１から送信されるユーザ識別情報「ｙａｍａｍｏｔｏ」と、端末プログラム識別情報「給与管理ソフト」とを受信する。
【０２８８】
図２２は、ユーザ情報格納部２１１１に格納されているユーザ情報を管理するためのユーザ情報管理表である。ユーザ情報管理表は、「ＩＤ」と、「ユーザ識別情報」と、「端末プログラム識別情報」と、「端末バージョン情報」と、「サーババージョン情報」と、「データベース識別情報」と、「データベースバージョン情報」という項目を有している。「ＩＤ」は、レコードを管理するための識別情報である。「ユーザ識別情報」および「端末プログラム識別情報」は、図２１に示した「端末プログラム識別情報」と、「端末バージョン情報」と同様である。「サーババージョン情報」と、「データベース識別情報」と、「データベースバージョン情報」とについては、上記実施の形態において図８において説明した「端末プログラム識別情報」と、「端末バージョン情報」と、「サーババージョン情報」と、「データベース識別情報」と、「データベースバージョン情報」と同様である。
【０２８９】
許可判断部２１１２は、端末側受信部２１１０が受信したユーザ識別情報「ｙａｍａｍｏｔｏ」と端末プログラム識別情報「給与管理ソフト」との組み合わせと一致する「ユーザ識別情報」と「端末プログラム識別情報」との組み合わせを含むレコードが、ユーザ情報格納部２１１１に格納されているか否かを判断する。格納されていない場合、ユーザ識別情報「ｙａｍａｍｏｔｏ」に対応するユーザによる、「給与管理ソフト」という端末プログラムの利用が許可されていないこととなり、端末プログラム識別情報「給与管理ソフト」に対応したサーバプログラムの利用が拒否される。
【０２９０】
ここでは、図２１に示したユーザ情報管理表の「ＩＤ」が「１」であるレコードの「ユーザ識別情報」と「端末プログラム識別情報」との組み合わせが、ユーザ識別情報「ｙａｍａｍｏｔｏ」と端末プログラム識別情報「給与管理ソフト」との組み合わせと一致すると判断される。これにより、ユーザ識別情報「ｙａｍａｍｏｔｏ」に対応するユーザによる、「給与管理ソフト」という端末プログラムの利用が許可されていることとなる。
【０２９１】
許可判断部２１１２が許可されていると判断したため、中継サーバ装置２１は、端末プログラムや、サーバプログラムや、データベース更新情報等の送信を要求する情報を、図示しない送信部等から各サーバ装置１０に送信して、各サーバ装置１０から端末プログラムやサーバプログラムやデータベース更新情報等を取得する。各サーバ装置１０から端末プログラムやサーバプログラムやデータベース更新情報等を取得する処理については、上記実施の形態の具体例と同様であるので、ここでは説明を省略する。
【０２９２】
なお、取得の結果、中継端末プログラム格納部２１０３に格納されている端末プログラム等の管理情報は、図１０に示した第一管理情報と同様のものとなったとする。また、サーバプログラム格納部２１０６に格納されている端末メッセージ等の管理情報は、図１１に示した第二管理情報と同様のものとなったとする。また、第三サーバ側受信部２１０７が受信したプログラム更新情報等が追加あるいは更新される。
【０２９３】
不整合検出部２１１４は、ユーザ情報格納部２１１１から、端末側受信部２１１０が受信したユーザ識別情報「ｙａｍａｍｏｔｏ」と端末プログラム識別情報「給与管理ソフト」との組み合わせと一致する「ユーザ識別情報」と「端末プログラム識別情報」との組み合わせと対応付けられた「端末プログラム識別情報」と、「端末バージョン情報」と、「サーババージョン情報」と、「データベース識別情報」と、「データベースバージョン情報」とを取得する。ここでは、例えば、端末側受信部２１１０が受信したユーザ識別情報「ｙａｍａｍｏｔｏ」と端末プログラム識別情報「給与管理ソフト」との組み合わせを検索キーとして検索を行うことで、図２１に示したユーザ情報管理表に示した「ＩＤ」が「１」であるレコードの、端末バージョン情報である「２．１」と、サーババージョン情報である「３．０」と、データベース識別情報である「社員ＤＢ」と、データベースバージョン情報である「２．０」とが取得される。取得した情報は、図示しないメモリ等の記憶媒体に一時記憶される。
【０２９４】
次に、不整合検出部２１１４は、端末側受信部２１１０が受信した端末プログラム識別情報「給与管理ソフト」と、不整合検出部２１１４が取得した端末バージョン情報「２．１」、サーババージョン情報「３．０」、データベース識別情報「社員ＤＢ」、およびデータベースバージョン情報「２．０」と、バージョン管理情報格納部２１１３に格納されているバージョン管理情報の各レコードの「端末プログラム識別情報」、「端末バージョン情報」、「サーババージョン情報」、「データベース識別情報」、および「データベースバージョン情報」の値とを比較して不整合を検出し、この不整合の検出結果に応じて、端末側送信部２１１５が、端末プログラムや端末メッセージ等を端末装置３１に送信したり、サーバプログラムのバージョンを変更したり、データベースのバージョンを更新したりする。なお、ここでは、バージョン管理情報格納部２１１３に格納されているバージョン管理情報は、図１３に示したものと同様であるとする。
【０２９５】
なお、この不整合を検出する処理等の具体的な処理については、上記実施の形態で説明した具体例と同様であるので、説明は省略する。
【０２９６】
ただし、ここでは、端末プログラムと端末メッセージとが端末側送信部２１１５から送信された場合には、当該送信された端末プログラムに対応した端末バージョン情報で、ユーザ情報格納部２１１１に格納されている「端末バージョン情報」のうちの、端末側受信部２１１０が受信したユーザ識別情報「ｙａｍａｍｏｔｏ」と端末プログラム識別情報「給与管理ソフト」との組み合わせに対応付けられた「端末バージョン情報」が更新されるものとする。
【０２９７】
また、サーバプログラムの更新が行われ、サーバメッセージが端末側送信部２１１５から送信される場合には、当該更新された端末プログラムに対応した端末バージョン情報で、ユーザ情報格納部２１１１に格納されている「端末バージョン情報」のうちの、端末側受信部２１１０が受信したユーザ識別情報「ｙａｍａｍｏｔｏ」と端末プログラム識別情報「給与管理ソフト」との組み合わせに対応付けられた「端末バージョン情報」が更新されるものとする。
【０２９８】
同様に、データベースの更新が行われる場合には、更新に用いられたデータベース更新情報に対応付けられた変更後バージョン情報を用いて、端末側受信部２１１０が受信したユーザ識別情報「ｙａｍａｍｏｔｏ」と対応付けられてユーザ情報格納部２１１１に格納されている「データベースバージョン情報」のうちの、更新されたデータベースと同じ「データベース識別情報」と対応付けられた「データベースバージョン情報」が更新されるものとする。例えば、変更後バージョン情報の値で、データベースバージョン情報の値が上書きされるものとする。
【０２９９】
端末装置３１が、中継サーバ装置２１から、端末プログラム識別情報「給与管理ソフト」と対応付けられて送信される、端末プログラムの実行ファイル、および端末メッセージを受信すると、受信情報処理部３１０７は、受信した端末プログラムの実行ファイルを用いて、端末プログラム格納部３１０１に格納されている端末プログラムのうちの、端末プログラム識別情報「給与管理ソフト」と対応付けられている端末プログラムを更新する。例えば上書きする。また、受信情報処理部３１０７は、出力部３１０８に対して、受信した端末メッセージを出力させる指示を与える。これにより、出力部３１０８は、受信情報処理部３１０７の指示に応じて、受信した端末メッセージを、図１４に示すようにモニタ等に表示する。
【０３００】
また、端末装置３１が、中継サーバ装置２１から、サーバメッセージを受信すると、受信情報処理部３１０７は、出力部３１０８に対して、受信したサーバメッセージを出力させる指示を与える。これにより、出力部３１０８は、受信情報処理部３１０７の指示に応じて、受信したサーバメッセージを、図１５に示すようにモニタ等に表示する。
【０３０１】
ここで、ユーザ情報管理表に格納されているデータベースバージョン情報の値が更新された以降に、当該データベースを共用する端末プログラムをユーザが起動したとする。この場合、端末装置３１から、ユーザ識別情報と起動した端末プログラムの端末プログラム識別情報が送信される。
【０３０２】
不整合検出部２１１４は、端末側受信部２１１０が受信した当該ユーザ識別情報と端末プログラム識別情報に対応した端末バージョン情報、サーババージョン情報、データベース識別情報、および更新されたデータベースバージョン情報をユーザ情報格納部２１１１から取得する。そして、更新されたデータベースバージョン情報と同じデータベースバージョン情報を含むバージョン管理情報が検出され、当該検出されたバージョン管理情報の端末バージョン情報およびサーババージョン情報と、ユーザ情報格納部２１１１から取得された端末バージョン情報およびサーババージョン情報との不整合の有無が上記と同様に判断され、不整合が検出された場合、端末プログラムや端末メッセージ、サーバメッセージの送信や、サーバプログラムの変更等が行われる。これにより、共有するデータベースのバージョンが更新された場合においても、当該データベースを利用する端末プログラムやサーバプログラムのバージョンを、更新されたデータベースのバージョンに適したものとなるように更新させることができる。
【０３０３】
以上、本実施の形態によれば、複数のサーバ装置１０のように、提供先の異なる複数のプログラムについてアップデートを行う際においても、中継サーバ装置２１によりアップデートを行うことができ、プログラムの更新を容易にかつ適切に行うことができる。
【０３０４】
また、端末プログラム等のバージョンが、サーバ装置１０の提供するバージョンと異なる場合、つまり整合がとれない場合に、端末プログラム等のバージョンを更新したり、更新のためのメッセージをユーザに出力したりすることができる。
【０３０５】
また、端末プログラムやサーバプログラムやデータベースのバージョンの組合せ等が、正常に動作可能なバージョンの組合せと異なる場合に、バージョン同士の整合がとれるように、バージョンを更新したり、適切なバージョンの組合せとなるよう、ユーザにメッセージを出力したりすることができる。
【０３０６】
また、中継サーバ装置２１において、ユーザの利用する端末プログラムやサーバプログラムやデータベース等のバージョン等の管理を行うことができ、バージョンの管理等を一元管理できる。
【０３０７】
なお、本実施の形態においては、端末プログラムやサーバプログラムに関するメッセージと同様に、第三サーバ格納部１００５に格納されるデータベース更新情報に対応付けて、当該データベース更新情報に関するメッセージであるデータベースメッセージを格納するようにしても良い。そして、当該データベースメッセージを、データベース更新情報とともに、中継サーバ装置２１に送信して、データベース更新情報に格納するようにし、データベース更新情報を用いてデータベースを更新する前後に、用いられるデータベースに対応付けられたデータベース更新情報を、端末装置３１に送信するようにする。そして、端末装置３１の受信情報処理部３１０７が、受信したデータベースメッセージを出力部３１０８等に出力させることができるようにしてもよい。データベースメッセージは、例えば、データベースの変更の許可を求めるメッセージや、データベースが変更されたことを示すメッセージ等である。
【０３０８】
また、上記各実施の形態において、各処理（各機能）は、単一の装置（システム）によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
【０３０９】
また、上記各実施の形態において、一の装置に存在する２以上の通信手段（情報送信部など）は、物理的に一の媒体で実現されても良いことは言うまでもない。
【０３１０】
また、上記実施の形態において、各構成要素が実行する処理に関係する情報、例えば、各構成要素が受け付けたり、取得したり、選択したり、生成したり、送信したり、受信したりする情報や、各構成要素が処理で用いるしきい値や数式、アドレス等の情報等は、上記説明で明記していない場合であっても、図示しない記録媒体において、一時的に、あるいは長期にわたって保持されていてもよい。また、その図示しない記録媒体への情報の蓄積を、各構成要素、あるいは、図示しない蓄積部が行ってもよい。また、その図示しない記録媒体からの情報の読み出しを、各構成要素、あるいは、図示しない読み出し部が行ってもよい。
【０３１１】
また、上記各実施の形態では、情報処理システムがスタンドアロンである場合について説明したが、情報処理システムは、スタンドアロンの装置であってもよく、サーバ・クライアントシステムにおけるサーバ装置であってもよい。後者の場合には、出力部や受付部は、通信回線を介して入力を受け付けたり、画面を出力したりすることになる。
【０３１２】
また、上記各実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをＣＰＵ等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。なお、上記各実施の形態における情報処理システムを実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、二以上のサーバ装置と二以上の端末装置と通信可能な中継サーバ装置として機能させるためのプログラムであって、コンピュータを、前記サーバ装置が送信する端末プログラムまたは前記メッセージの少なくとも一方と、当該端末プログラムを識別する情報である端末プログラム識別情報と、当該端末プログラムのバージョンを示す情報である端末バージョン情報とを受信する第一サーバ側受信部と、前記端末装置から送信されるユーザ識別情報と、端末プログラム識別情報と、端末バージョン情報とを受信する端末側受信部と、前記端末側受信部が受信したユーザ識別情報および端末プログラム識別情報と、ユーザ情報格納部に対応付けて格納されている前記端末プログラムを利用可能なユーザのユーザ識別情報と当該ユーザ識別情報に対応するユーザが利用可能な端末プログラムの識別情報である端末プログラム識別情報とを用いて、前記端末側受信部が受信したユーザ識別情報が示すユーザによる前記端末側受信部が受信した端末プログラム識別情報が示す端末プログラムの利用が許可されているか否かを判断する許可判断部と、前記許可判断部により利用が許可されていると判断された場合に、前記端末側受信部が受信した端末プログラム識別情報と端末バージョン情報とを用いて、前記端末装置が有する端末プログラムに関する不整合を検出する不整合検出部と、前記不整合検出部による不整合の検出結果に応じて、前記第一サーバ側受信部が受信した端末プログラムまたはメッセージの少なくとも一方を、前記端末側受信部が受信したユーザ識別情報の送信元となる前記端末装置に送信する端末側送信部として機能させるためのプログラムである。
【０３１３】
また、このプログラムは、コンピュータを、中継サーバ装置と通信可能な端末装置として機能させるためのプログラムであって、コンピュータを、端末プログラム格納部に格納されている一以上の端末プログラムを実行する端末プログラム処理部と、ユーザ識別情報を受け付けるユーザ識別情報受付部と、前記ユーザ識別情報受付部が受け付けたユーザ識別情報を前記中継サーバ装置に送信するユーザ識別情報送信部と、前記端末プログラム格納部に各端末プログラムにそれぞれ対応付けて格納されている当該端末プログラムを識別する情報である端末プログラム識別情報と、当該端末プログラムのバージョンを示す情報である端末バージョン情報を、前記中継サーバ装置に送信する端末送信部と、前記中継サーバ装置から送信される端末プログラムまたはメッセージの少なくとも一方を受信する端末受信部と、前記端末受信部が受信した端末プログラムまたはメッセージの少なくとも一方を処理する受信情報処理部として機能させるためのプログラムである。
【０３１４】
また、このプログラムは、コンピュータを、二以上のサーバ装置と二以上の端末装置と通信可能な中継サーバ装置として機能させるためのプログラムであって、コンピュータを、前記サーバ装置が送信する端末プログラムまたは前記メッセージの少なくとも一方と、当該端末プログラムを識別する情報である端末プログラム識別情報と、当該端末プログラムのバージョンを示す情報である端末バージョン情報とを受信する第一サーバ側受信部と、前記端末装置から送信されるユーザ識別情報と、端末プログラム識別情報とを受信する端末側受信部と、前記端末側受信部が受信したユーザ識別情報および端末プログラム識別情報と、前記端末プログラムを利用可能なユーザのユーザ識別情報と当該ユーザ識別情報に対応するユーザが利用可能な端末プログラムの識別情報である端末プログラム識別情報と当該端末プログラムの端末バージョン情報とが対応付けられて格納され得るユーザ情報格納部に格納されているユーザ識別情報および端末プログラム識別情報とを用いて、前記端末側受信部が受信したユーザ識別情報が示すユーザによる前記端末側受信部が受信した端末プログラム識別情報が示す端末プログラムの利用が許可されているか否かを判断する許可判断部と、前記許可判断部により利用が許可されていると判断された場合に、前記端末側受信部が受信した端末プログラム識別情報と、当該端末プログラム識別情報を用いて前記ユーザ情報格納部から取得する端末バージョン情報とを用いて、前記端末装置が有する端末プログラムに関する不整合を検出する不整合検出部と、前記不整合検出部による不整合の検出結果に応じて、前記第一サーバ側受信部が受信した端末プログラムまたはメッセージの少なくとも一方を、前記端末側受信部が受信したユーザ識別情報の送信元となる前記端末装置に送信する端末側送信部として機能させるためのプログラムである。
【０３１５】
また、このプログラムは、コンピュータを、中継サーバ装置と通信可能な端末装置として機能させるためのプログラムであって、コンピュータを、端末プログラム格納部に格納されている一以上の端末プログラムを実行する端末プログラム処理部と、ユーザ識別情報を受け付けるユーザ識別情報受付部と、前記ユーザ識別情報受付部が受け付けたユーザ識別情報を前記中継サーバ装置に送信するユーザ識別情報送信部と、前記端末プログラム格納部に前記各端末プログラムにそれぞれ対応付けられて格納されている当該端末プログラムの識別情報である端末プログラム識別情報を、前記中継サーバ装置に送信する端末送信部と、前記中継サーバ装置から送信される端末プログラムまたはメッセージの少なくとも一方を受信する端末受信部と、前記端末受信部が受信した端末プログラムまたはメッセージの少なくとも一方を処理する受信情報処理部として機能させるためのプログラムである。
【０３１６】
なお、上記プログラムにおいて、上記プログラムが実現する機能には、ハードウェアでしか実現できない機能は含まれない。例えば、情報を取得する取得部や、情報を出力する出力部などにおけるモデムやインターフェースカードなどのハードウェアでしか実現できない機能は、上記プログラムが実現する機能には含まれない。
【０３１７】
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【０３１８】
図２３は、上記プログラムを実行して、上記実施の形態による中継サーバ装置や端末装置等を実現するコンピュータの外観の一例を示す模式図である。上記実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムによって実現されうる。
【０３１９】
図２３において、コンピュータシステム９００は、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ドライブ９０５、ＦＤ（Ｆｌｏｐｐｙ（登録商標）  Ｄｉｓｋ）ドライブ９０６を含むコンピュータ９０１と、キーボード９０２と、マウス９０３と、モニタ９０４とを備える。
【０３２０】
図２４は、コンピュータシステム９００の内部構成を示す図である。図２４において、コンピュータ９０１は、ＣＤ−ＲＯＭドライブ９０５、ＦＤドライブ９０６に加えて、ＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）９１１と、ブートアッププログラム等のプログラムを記憶するためのＲＯＭ９１２と、ＭＰＵ９１１に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９１３と、アプリケーションプログラム、システムプログラム、及びデータを記憶するハードディスク９１４と、ＭＰＵ９１１、ＲＯＭ９１２等を相互に接続するバス９１５とを備える。なお、コンピュータ９０１は、ＬＡＮへの接続を提供する図示しないネットワークカードを含んでいてもよい。
【０３２１】
コンピュータシステム９００に、上記実施の形態による中継サーバ装置や端末装置等の機能を実行させるプログラムは、ＣＤ−ＲＯＭ９２１、またはＦＤ９２２に記憶されて、ＣＤ−ＲＯＭドライブ９０５、またはＦＤドライブ９０６に挿入され、ハードディスク９１４に転送されてもよい。これに代えて、そのプログラムは、図示しないネットワークを介してコンピュータ９０１に送信され、ハードディスク９１４に記憶されてもよい。プログラムは実行の際にＲＡＭ９１３にロードされる。なお、プログラムは、ＣＤ−ＲＯＭ９２１やＦＤ９２２、またはネットワークから直接、ロードされてもよい。
【０３２２】
プログラムは、コンピュータ９０１に、上記実施の形態による中継サーバ装置や端末装置等の機能を実行させるオペレーティングシステム（ＯＳ）、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能（モジュール）を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム９００がどのように動作するのかについては周知であり、詳細な説明は省略する。
【０３２３】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【０３２４】
以上のように、本発明にかかる情報処理システム等は、ソフトウェアの更新や更新の通知等を行う情報処理システム等として適しており、特に、バージョンの異なるソフトウェアの更新や更新の通知等を行う情報処理システム等として有用である。
【図面の簡単な説明】
【０３２５】
【図１】実施の形態１における情報処理システムの概念図
【図２】同情報処理システムのブロック図
【図３】同情報処理システムのブロック図
【図４】同情報処理システムのサーバ装置の動作について説明するフローチャート
【図５】同情報処理システムの中継サーバ装置の動作について説明するフローチャート
【図６】同情報処理システムの中継サーバ装置の動作について説明するフローチャート
【図７】同情報処理システムの端末装置の動作について説明するフローチャート
【図８】同情報処理システムの動作を説明するための端末プログラム管理表を示す図
【図９】同情報処理システムの動作を説明するためのユーザ情報管理表を示す図
【図１０】同情報処理システムの動作を説明するための第一管理情報を示す図
【図１１】同情報処理システムの動作を説明するための第二管理情報を示す図
【図１２】同情報処理システムの動作を説明するための第三管理情報を示す図
【図１３】同情報処理システムの動作を説明するためのバージョン管理情報管理表を示す図
【図１４】同情報処理システムの表示例を示す図
【図１５】同情報処理システムの表示例を示す図
【図１６】実施の形態２における情報処理システムのブロック図
【図１７】同情報処理システムのブロック図
【図１８】同情報処理システムの中間サーバ装置の動作について説明するフローチャート
【図１９】同情報処理システムの中継サーバ装置の動作について説明するフローチャート
【図２０】同情報処理システムの端末装置の動作について説明するフローチャート
【図２１】同情報処理システムの動作を説明するための端末プログラム管理表を示す図
【図２２】同情報処理システムの動作を説明するためのユーザ情報管理表を示す図
【図２３】同情報処理システム中継サーバ装置や端末装置等を実現するコンピュータの外観の一例を示す模式図
【図２４】同情報処理システム中継サーバ装置や端末装置等を実現するコンピュータの内部構成を示す図
【符号の説明】
【０３２６】
１、２  情報処理システム
１０  サーバ装置
３０、３１  端末装置
２０、２１  中継サーバ装置
５０、６０  ネットワーク
１００１  第一サーバ格納部
１００２  第一サーバ送信部
１００３  第二サーバ格納部
１００４  第二サーバ送信部
１００５  第三サーバ格納部
１００６  第三サーバ送信部
２００１、２１０１  第一サーバ側受信部
２００２、２１０２  中継端末プログラム蓄積部
２００３、２１０３  中継端末プログラム格納部
２００４、２１０４  第二サーバ側受信部
２００５、２１０５  サーバプログラム蓄積部
２０１５、２１１５  端末側送信部
２００６、２１０６  サーバプログラム格納部
２００７、２１０７  第三サーバ側受信部
２００８、２１０８  データベース更新情報蓄積部
２００９、２１０９  データベース更新情報格納部
２０１０、２１１０  端末側受信部
２０１１、２１１１  ユーザ情報格納部
２０１２、２１１２  許可判断部
２０１３、２１１３  バージョン管理情報格納部
２０１４、２１１４  不整合検出部
２０１６、２１１６  中継プログラム処理部
２０１７、２１１７  データベース格納部
２０１８、２１１８  データベース更新部
３００１  プログラム格納部
３００１、３１０１  端末プログラム格納部
３００２、３１０２  端末プログラム処理部
３００３、３１０３  ユーザ識別情報受付部
３００３、３１０３  ユーザ識別情報受信部
３００４、３１０４  ユーザ識別情報送信部
３００５  端末送信巣部
３００６、３１０６  端末受信部
３００５、３１０５  端末送信部
３００７、３１０７  受信情報処理部
３００８、３１０８  出力部
【図１】
2010146476.tif 000003
【図２】
2010146476.tif 000004
【図３】
2010146476.tif 000005
【図４】
2010146476.tif 000006
【図５】
2010146476.tif 000007
【図６】
2010146476.tif 000008
【図７】
2010146476.tif 000009
【図８】
2010146476.tif 000010
【図９】
2010146476.tif 000011
【図１０】
2010146476.tif 000012
【図１１】
2010146476.tif 000013
【図１２】
2010146476.tif 000014
【図１３】
2010146476.tif 000015
【図１４】
2010146476.tif 000016
【図１５】
2010146476.tif 000017
【図１６】
2010146476.tif 000018
【図１７】
2010146476.tif 000019
【図１８】
2010146476.tif 000020
【図１９】
2010146476.tif 000021
【図２０】
2010146476.tif 000022
【図２１】
2010146476.tif 000023
【図２２】
2010146476.tif 000024
【図２３】
2010146476.tif 000025
【図２４】
2010146476.tif 000026