(58)【調査した分野】(Int.Cl.,DB名)
取引情報の検索を受け付けたときに、最初に、検索を依頼するクライアントを配下においたサーバに対し接続確認後に検索を依頼し、当該サーバに該当データがない場合、または、当該サーバが未接続の場合に、他のすべてのサーバに対して検索を依頼する、処理を有していることを特徴とする請求項1記載の情報通信プログラム。
【発明を実施するための形態】
【0013】
以下、本発明の実施の形態について、都市銀行のように、複数の営業拠店を持ち、営業拠店毎にサーバが設置されている情報通信システムにおいて、すべてのサーバに検索依頼を行うことができる端末に適用した場合を例に図面を参照して詳細に説明する。なお、各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
【0014】
図1は第1の実施の形態に係る情報通信装置を含む情報通信システムの構成例を示す図、
図2は情報通信制御処理の流れを示すフローチャートである。
情報通信システムは、営業拠店毎に設置された複数のサーバ10,20,30を備えており、それぞれのサーバ10,20,30は、ネットワーク40を介して相互に通信できるように接続されている。サーバ10,20,30は、それぞれデータベース12,22,32が接続されている。データベース12,22,32は、ブロック毎の取引情報がそれぞれ保存管理されている。また、それぞれの営業拠店、たとえば、サーバ10を有する営業拠店およびその配下の営業店舗には、複数の端末50を有しており、それぞれサーバ10とLAN(Local Area Network)42等によって接続されている。なお、図示はしないが、他のサーバ20,30においても同様に、複数の端末が接続されている。
【0015】
端末50は、情報通信装置として機能するものであり、検索受付処理部51、検索依頼処理部52、サーバ接続状態監視部53、サーバ接続状態記憶部54および再接続処理部55を備えている。検索受付処理部51は、オペレータによる取引情報照会の操作入力があった場合に検索条件の入力を受けて検索受付の処理を行う。検索依頼処理部52は、検索受付処理部51が受け付けた操作入力を基にサーバ10,20,30に対して検索を依頼し、サーバ10,20,30から検索結果を取得する。サーバ接続状態監視部53は、サーバ10,20,30との接続状態を定期的に実施される死活確認により監視している。サーバ接続状態記憶部54は、サーバ接続状態監視部53による監視結果を記憶する。再接続処理部55は、サーバ接続状態監視部53による監視の結果、サーバ10,20,30との接続状態が未接続である場合に、未接続のサーバに対して再接続を試みる。再接続処理部55は、端末50の起動時にすべてのサーバと接続を試みており、したがって、以下に述べる端末50の動作は、サーバと接続実績があることを前提としている。
【0016】
以上の構成の端末50において、サーバ接続状態監視部53は、すべてのサーバ10,20,30との接続状態を定期的に監視していて、その監視結果をサーバ接続状態記憶部54に記憶している。また、再接続処理部55は、サーバ接続状態記憶部54を参照して、接続状態が未接続のサーバがあれば、そのサーバに対して再接続を実施している。これにより、端末50は、その起動直後からすべてのサーバ10,20,30との接続状態を常に把握していて、サーバまたは通信回線に障害等が発生して未接続になったサーバについては、接続されるまで再接続を繰り返し実施するようにしている。
【0017】
ここで、端末50が取引情報の検索を受け付けたときの処理動作について
図2を参照して説明する。なお、サーバ接続状態監視部53、サーバ接続状態記憶部54および再接続処理部55は、端末50の起動時から動作していて、サーバ接続状態が常に最新の状態に更新されているものとする。
【0018】
まず、端末50は、取引情報の検索受付を待っている(ステップS1)。検索受付処理部51が検索条件の入力を受けて取引情報の検索を受け付けると、検索依頼処理部52は、サーバ接続状態記憶部54を参照し、端末50のある営業店舗が属する営業拠店のサーバ10の接続状態が接続中であるかどうかを確認する(ステップS2)。検索依頼処理部52は、サーバ10が接続中かどうかを判断し(ステップS3)、接続中であれば、検索依頼処理部52は、サーバ10に対して検索条件とともに検索依頼を送信し、サーバ10から検索結果の応答を待つ(ステップS4)。
【0019】
検索依頼を受けたサーバ10は、端末50から通知された検索条件をキーにしてデータベース12を検索し、検索条件に該当する取引情報があれば、その取引情報を取得して端末50に送信する。
【0020】
端末50では、検索依頼処理部52がサーバ10からの応答の中に該当する取引情報があったかどうかを判断する(ステップS5)。取引情報があった場合、検索依頼処理部52は、その取引情報を図示しないモニタに表示する(ステップS6)。
【0021】
次に、サーバ10に該当する取引情報がない場合、または、サーバ10が未接続の場合には、サーバ接続状態記憶部54に記憶されている、サーバ10を除く他のサーバ20,30の接続状態を確認する(ステップS7)。検索依頼処理部52は、他のサーバ20,30の中で、接続中のサーバがあるかどうかを判断し(ステップS8)、接続中のサーバに対して一斉に検索条件とともに検索依頼を送信し、サーバから検索結果の応答を待つ(ステップS9)。
【0022】
検索依頼を受けたサーバは、端末50から通知された検索条件をキーにデータベースを検索し、検索条件に該当する取引情報があれば、その取引情報を取得して端末50に送信する。
【0023】
端末50では、検索依頼処理部52がサーバからの応答の中に該当する取引情報があったかどうかを判断する(ステップS10)。ここで、検索依頼を受けたサーバの中に検索条件に該当する取引情報が見つかった場合には、その取引情報を取得して図示しないモニタに表示する(ステップS6)。
【0024】
なお、サーバ接続状態記憶部54に接続中のサーバがない場合、または接続中のサーバに検索条件に該当する取引情報がない場合には、未接続のサーバに検索条件に該当する取引情報が存在する可能性がある。このような場合、サーバ接続状態記憶部54に未接続と設定されていた接続処理中のサーバのリストを図示しないモニタに表示する(ステップS11)。
【0025】
以上のように、端末50は、その起動時から常にサーバの最新の接続状態を記憶していて、検索を依頼するときには通信できない未接続のサーバを直ちに認識することができ、かつ、未接続のサーバについては検索の依頼をしないようにしている。このため、接続中のサーバに検索条件に該当する取引情報が見つからない場合であって、未接続のサーバがある場合でも、その結果が即座にモニタに表示されるので、オペレータは、待たされることなく、検索結果をすぐに確認することが可能になる。
【0026】
未接続で接続処理中のサーバのリストが表示された場合、オペレータは、時間をおいて、再検索を依頼すればよい。この場合、好ましくは、端末50が未接続であったサーバを保持しておいて、その未接続サーバに対してのみ、再検索を依頼することができるようにするとよい。または、検索依頼処理部52がサーバ接続状態記憶部54における未接続状態から接続状態への状態遷移を監視していて、状態遷移のあったタイミングで状態遷移のあったサーバに対して順次検索依頼を行うようにしてもよい。ここで、検索条件に該当する取引情報が見つかるか、または、すべてのサーバに検索条件に該当する取引情報が見つからなかった場合に、その旨のメッセージを、現在処理中の業務があればその業務が終了するのを待って、モニタに表示するとよい。
【0027】
図3は第1の実施の形態に用いるコンピュータの一構成例を示す図である。
コンピュータ100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス108を介してRAM(Random Access Memory)102と複数の周辺機器が接続されている。
【0028】
RAM102は、コンピュータ100の主記憶装置として使用される。RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。
【0029】
バス108に接続されている周辺機器としては、HDD(Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、および通信インタフェース107がある。なお、バス108に接続される周辺機器には、図示はしないが、USB(Universal Serial Bus)等の入出力インタフェースが装備されることもある。
【0030】
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、コンピュータ100の二次記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、各種データおよび
図2に示した情報通信制御処理のアプリケーションプログラムが格納される。なお、二次記憶装置としては、SSD(Solid State Drive)等の半導体記憶装置を使用することもできる。HDD103は、さらに、内蔵の二次記憶装置以外に外付けの二次記憶装置として、データベースのデータ記憶用に使用することもできる。
【0031】
グラフィック処理装置104には、モニタ109が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ109の画面に表示させる。モニタ109としては、液晶表示装置等がある。
【0032】
入力インタフェース105には、キーボード110とマウス111とが接続されている。入力インタフェース105は、キーボード110やマウス111から送られてくる信号をCPU101に送信する。なお、マウス111は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボール等がある。
【0033】
光学ドライブ装置106は、レーザ光等を利用して、光ディスク112に記録されたOSのプログラム、アプリケーションプログラムまたはデータの読み取りを行う。光ディスク112は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体であり、DVD(Digital Versatile Disc)、CD−ROM(Compact Disc Read Only Memory)等がある。
【0034】
通信インタフェース107は、ネットワーク40に接続されている。通信インタフェース107は、ネットワーク40を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【0035】
以上のようなハードウェア構成によって、第1の実施の形態の端末50の処理機能を実現することができる。なお、
図1に示したサーバ10,20,30も、
図3と同様のハードウェアで実現することができる。
【0036】
図4は第2の実施の形態に係る端末とサーバとの関係を示す図、
図5は伝票イメージデータの例を示す図である。
端末50は、端末制御プログラム56と通信プログラム57とを備え、情報通信プログラムを構成している。端末制御プログラム56は、オペレータの操作入力に対する処理を行い、処理結果を表示させるよう機能するユーザプログラムである。一方、通信プログラム57は、サーバの接続状態の監視機能と、サーバとの通信制御機能とを有している。サーバの接続状態の監視機能は、定期的に、サーバとの接続状態をチェックし、未接続になっているサーバがあれば、そのサーバに対して再接続を実施し、検索依頼をいつでも実施できるようにしている。通信制御機能は、端末制御プログラム56からの要求に対してこの端末50に繋がっているすべてのサーバと通信して検索処理を依頼し、サーバから応答があれば、その応答を端末制御プログラム56に返すようにしている。
【0037】
端末50に繋がっているサーバとしては、図示の例では、伝票データベース13,23,33を管理しているサーバとすることができる。たとえば、伝票データベース13のサーバは、
図1におけるサーバ10、伝票データベース23,33のサーバは、他の拠店のサーバ20,30とすることができる。伝票データベース13,23,33は、それぞれ伝票番号と伝票イメージデータとの対応表であるデータテーブル14,24,34と、伝票イメージデータの実体とを格納している。第2の実施の形態では、各サーバの伝票番号は、この情報通信システムの中でそれぞれユニークな番号である。
【0038】
端末50では、たとえばキーボード110から伝票番号が入力されると、端末制御プログラム56は、検索処理を通信プログラム57に依頼し、通信プログラム57は、その伝票番号の検索処理をすべてのサーバに一斉に依頼する。すべてのサーバは、通知された検索条件である伝票番号をキーに伝票データベース13,23,33を検索し、該当する伝票番号があれば、それに対応する伝票イメージデータを端末50に送信する。該当する伝票番号がなければ、たとえば「該当データなし」のメッセージデータを端末50に送信する。
【0039】
端末50がサーバからの応答を受信すると、通信プログラム57は、受けた伝票イメージデータを端末制御プログラム56に渡し、端末制御プログラム56は、その伝票イメージデータをモニタ109に表示する。サーバからの応答に伝票イメージデータがなければ、「該当データなし」のメッセージをモニタ109に表示する。伝票イメージデータは、たとえば
図5に示したように、伝票に記入および署名捺印した取引情報をイメージデータ化したものである。
【0040】
図6は端末制御プログラムの処理の流れを示すフローチャートである。なお、第2の実施の形態に係る端末50においても、
図3に示したハードウェアと同じハードウェアで構成されており、したがって、以下のそれぞれの処理は、CPU101が処理している。
【0041】
端末制御プログラム56では、まず、CPU101がオペレータから伝票番号等の入力があるかないかを判断し、入力があるまで待つ(ステップS21)。伝票番号等の入力があると、CPU101は、伝票番号を検索条件とした検索処理を通信プログラム57に依頼する(ステップS22)。
【0042】
次に、CPU101は、応答があったかどうかを判断し、応答がなければ、応答があるまで待つ(ステップS23)。応答があれば、CPU101は、その応答にサーバからの受信データである伝票イメージデータが含まれているかどうかを判断する(ステップS24)。応答に伝票イメージデータが含まれていれば、CPU101は、その伝票イメージデータをモニタ109に表示する(ステップS25)。
【0043】
受信データのない応答があった場合、CPU101は、通信プログラム57から未接続サーバの通知の有無を判断し(ステップS26)、未接続サーバがなければ、たとえば「該当データなし」のメッセージをモニタ109に表示する(ステップS27)。もし、未接続サーバの通知があれば、CPU101は、たとえば接続処理中のサーバのリストをモニタ109に表示する(ステップS28)。ステップS25,S27,S28において、画面表示が終わったら、それぞれステップS21の処理に戻る。
【0044】
以上のように、この通信プログラムでは、通信プログラム57に対して検索処理の依頼をした後に、応答のあったサーバの中に検索データがあれば、優先的にそのデータを画面表示する。検索できたサーバの中に検索データがなく未接続サーバの通知がなければ、該当データなしを画面表示する。もし、未接続サーバがあれば、そのサーバに対する再接続の試行を待たずに即時に通知された未接続サーバのリストを表示する。これにより、オペレータは、待たされることなく、検索結果を知ることができる。
【0045】
図7は通信プログラムの処理の流れを示すフローチャート、
図8は通信処理に使われるテーブルを示す図であって、(A)はサーバ管理テーブル、(B)および(C)は作業テーブルを示している。
図9はサーバ接続状態更新処理の流れを示すフローチャートである。
【0046】
通信プログラム57は、まず、起動時にサーバ管理テーブルの状態を未接続にする(ステップS31)。サーバ管理テーブルは、
図8の(A)に示したように、「サーバ名」、「ホスト名」、「IPアドレス」および「状態」の欄を有しており、通信プログラム57の起動時にCPU101が「状態」の欄を「未接続」に初期設定する。次に、CPU101は、接続処理中番号を表す変数nを「0」に設定しておく(ステップS32)。次に、CPU101は、サーバ接続状態更新処理を実行する(ステップS33)。
【0047】
サーバ接続状態更新処理は、
図9に示したように、CPU101が全サーバの接続確認(死活確認)をし、未接続のサーバについては、接続処理を試行する(ステップS71)。次に、CPU101は、接続監視タイマをセットし(ステップS72)、サーバより接続通知があったかどうかを判断する(ステップS73)。接続通知があれば、CPU101は、応答ありのサーバに対してサーバ管理テーブルの「状態」を「接続」に更新する(ステップS74)。ステップS73において、サーバより接続通知がなければ、ステップS74の処理はパスされる。次に、CPU101は、セットされた接続監視タイマがタイムアウトしたかどうかを判断する(ステップS75)。接続監視タイマがタイムアウトしていない場合、処理は、ステップS73に戻り、タイムアウトしている場合は、定期チェックタイマをセットする(ステップS76)。
【0048】
ここで、
図7に戻って、CPU101は、端末制御プログラム56からの検索依頼があるかどうかを判断し(ステップS34)、検索依頼があれば、作業テーブルWORK1にサーバ管理テーブルの各サーバの状態を設定する(ステップS35)。次に、CPU101は、作業テーブルWORK1を参照して、接続中の全サーバに対して検索条件の伝票番号とともに検索依頼を送信して応答を待つ(ステップS36)。まず、CPU101は、全依頼サーバより応答が完了したかどうかを判断し(ステップS37)、完了していなければ、サーバより応答があるかどうかを判断し(ステップS38)、応答がなければ、ステップS37の処理に戻る。ステップS38において、サーバより応答があれば、CPU101は、データ(伝票イメージデータ)があるかどうかを判断し(ステップS39)、データがあれば、その受信データを端末制御プログラム56に通知して(ステップS40)、ステップS34の処理に戻る。ステップS39において、データがなければ、CPU101は、ステップS37の処理に戻る。
【0049】
ステップS37において、全依頼サーバからの応答が完了した場合、作業テーブルWORK1を参照して、未接続になっているサーバがあるかどうかを判断する(ステップS41)。未接続のサーバがなければ、CPU101は、端末制御プログラム56に「データなし」を通知して(ステップS42)、ステップS34の処理に戻る。未接続のサーバがあれば、CPU101は、作業テーブルWORK1を参照して「未接続」のサーバが接続処理中である旨の情報を端末制御プログラム56に通知する(ステップS43)。
【0050】
次に、CPU101は、接続処理中番号の変数nをインクリメントし(ステップS44)、別の作業テーブルWORK2に検索条件の伝票番号とともに作業テーブルWORK1のデータを待避して(ステップS45)、ステップS34の処理に戻る。なお、作業テーブルWORK2[n]は、検索依頼があって、接続中のサーバにデータがなく、かつ、未接続のサーバがある場合に、順次、作業テーブルWORK1のデータが追加して待避される。
【0051】
次に、ステップS34において、検索依頼がない場合、CPU101は、サーバ接続状態更新処理の最後に設定された定期チェックタイマがタイムアウトしたかどうかが判断され(ステップS46)、タイムアウトしていなければ、ステップS34の処理に戻る。定期チェックタイマがタイムアウトしていれば、CPU101は、サーバ接続状態更新処理を実行し(ステップS47)、作業テーブルWORK2に待避データがあるかどうかを判断する(ステップS48)。作業テーブルWORK2に待避データがなければ、CPU101は、ステップS34の処理に戻り、検索依頼に関する一連の処理は終了し、次の検索依頼を待つことになる。その間、CPU101は、ステップS47において、サーバの接続状態を常に監視していて、未接続のサーバが検出されれば、その未接続になったサーバに対して再接続の処理を実行する。
【0052】
ステップS48にて作業テーブルWORK2に待避データがあると判断された場合は、未接続のサーバに検索依頼を行っていないので、その未接続のサーバに対して、処理を続行することになる。まず、CPU101は、1番目の待避データを処理するために、作業番号の変数mに初期値の1を代入し(ステップS49)、次に、そのmがnより大きいかどうかを判断する(ステップS50)。
【0053】
ステップS50の判断にて、mがnより小さい場合、CPU101は、作業テーブルWORK2[m]の待避データに「未接続」のサーバがあり、サーバ管理テーブルの「状態」が「接続」に変更になったサーバであるかどうかを判断する(ステップS51)。接続中になったサーバであれば、CPU101は、作業テーブルWORK2[m]の待避データを「接続」に変更する(ステップS52)。これにより、作業テーブルWORK2[m]から、「未接続」のサーバをなくしていき、未だ、一度も検索が実行されていない「未接続」のサーバのみに絞り込むようにしている。
【0054】
次に、CPU101は、接続中になった全サーバに対して伝票番号とともに検索依頼を送信して応答を待つ(ステップS53)。まず、CPU101は、検索依頼をした全サーバより応答があったかどうかを判断し(ステップS54)、接続中になった全サーバの応答がなければ、サーバより応答があるかどうかを判断し(ステップS55)、応答がなければ、ステップS54の処理に戻る。ステップS55において、サーバより応答があれば、CPU101は、応答にデータ(伝票イメージデータ)があるかどうかを判断し(ステップS56)、データがあれば、WORK2[m]に待避された伝票番号とともに、その受信データを端末制御プログラム56に通知する(ステップS57)。ステップS56において、応答にデータがなければ、CPU101は、ステップS54の処理に戻る。
【0055】
ステップS54において、接続中になった全依頼サーバから応答があった場合、未接続のサーバがあるかどうかを判断する(ステップS58)。未接続のサーバがなくなっていれば、CPU101は、端末制御プログラム56に「データなし」を通知する(ステップS59)。なお、ステップS57,S59の処理に対する端末制御プログラム56の側での処理は、特に、
図6には示していないが、受信した応答データ(伝票イメージデータ)または「データなし」の応答を保留している。この保留されている検索結果は、たとえばオペレータが別の業務に取り掛かっている場合、その業務が終了したタイミングで画面表示を行うようにするとよい。
【0056】
ステップS51において、接続中になったサーバがない場合、ステップS58において、未接続のサーバが残っている場合、CPU101は、変数mをインクリメントし(ステップS60)、ステップS50の処理に戻る。このとき、変数mはインクリメントされているため、ステップS50では、n<mの条件が成立すると、ステップS34の処理に戻ることになる。
【0057】
以上のようにして、最初の検索で該当する検索データがなく、かつ、未接続のサーバがある場合、端末50は、接続処理中を表示して見かけ上は、処理を終了している。しかし、実際には、この検索依頼に対する処理は、バックグラウンドで最終的な検索結果が出るまで継続していて、その検索結果を保留するようにしている。すなわち、バックグラウンドの処理では、サーバ接続状態更新処理で未接続から接続中に更新となったサーバのみに検索依頼をし、そこで検索データが見つかれば、その受信データを端末制御プログラム56に通知する。もし、検索データが見つからなければ、未接続のサーバがなくなるまで接続中になったサーバに対して検索依頼をしていき、途中で検索データのあるサーバが見つかれば、そこからの受信データを端末制御プログラム56に通知する。最終的にすべてのサーバが接続状態になって、検索しても、検索データのあるサーバが見つからなければ、「データなし」を通知することになる。端末制御プログラム56に通知された受信データまたはデータなしの情報は、保留していて、必要なときに利用される。
【0058】
図10はサーバ処理プログラムの処理の流れを示すフローチャートである。なお、サーバ10,20,30においても、
図3に示したハードウェアと同じハードウェアで構成されており、したがって、以下のそれぞれの処理は、CPUが処理している。
【0059】
サーバでは、まず、CPUがクライアントである端末50から検索依頼があるかどうかを判断し、検索依頼がなければ、検索依頼があるまで待つ(ステップS81)。端末50から検索依頼を受信すると、CPUは、受信した伝票番号を検索キーとして伝票データベースを検索する(ステップS82)。
【0060】
次に、CPUは、伝票データベースを検索した結果、検索データがあったかどうかを判断する(ステップS83)。検索データがあれば、CPUは、伝票データベースから、該当する伝票番号の伝票イメージデータを取り出し(ステップS84)、取り出したデータの伝票番号が検索を依頼した伝票番号と一致するかのデータチェックを行う(ステップS85)。その後、CPUは、検索依頼の応答としてデータチェック後の伝票イメージデータを端末50に送信するか、または、データなしのメッセージを端末50に送信し(ステップS86)、ステップS81の処理に戻る。
【0061】
なお、上記の第2の実施の形態では、端末制御プログラム56と通信プログラム57とを分けて構成した例を示したが、第1の実施の形態の場合のように、端末制御プログラム56と通信プログラム57とを一体で構成してもよい。