(57)【特許請求の範囲】
【請求項１】
複数のアプリケーションサーバを少なくとも備える分散システムにおける相互時間の領域一致を実現するための方法であって：
前記複数のアプリケーションサーバ内の２つ以上の所定のアプリケーションサーバの時刻を設定目標時刻に従って同期させるステップと；
計算を通じて、前記目標時刻とデータベースサーバの時刻との間の時間オフセットを取得し、前記時間オフセットを前記２つ以上の所定のアプリケーションサーバへ送信するステップと；
前記分散システムにおける相互時間の領域一致を実現するよう、前記時間オフセットに従って、前記２つ以上の所定のアプリケーションサーバによって生成されるデータベース操作命令内の時間関数を修正するステップと；を備える、
方法。
【請求項２】
前記２つ以上の所定のアプリケーションサーバは、サービスシミュレーションにおけるサービスに関連するアプリケーションサーバを含み、
前記データベースサーバは、前記サービスシミュレーションにおける前記サービスに関連する１つ以上のデータベースサーバを含む、
請求項１に記載の方法。
【請求項３】
前記２つ以上の所定のアプリケーションサーバの時刻を設定目標時刻に従い同期させる前記ステップは、
前記２つ以上の所定のアプリケーションサーバ内の１つのアプリケーションサーバをタイムサーバとして選択するステップと；
前記タイムサーバの時刻を前記目標時刻に調整するステップと、前記タイムサーバの前記時刻を基準とすることによって、前記２つ以上の所定のアプリケーションサーバ内の残りのアプリケーションサーバの時刻を前記タイムサーバの前記時刻と同期させるステップと；をさらに備える、
請求項２に記載の方法。
【請求項４】
前記タイムサーバの前記時刻を基準とすることによって、前記残りのアプリケーションサーバの時刻を前記タイムサーバの前記時刻と同期させる前記ステップは、時間間隔を１サイクルとすることによって、前記残りのアプリケーションサーバの時刻を前記タイムサーバの前記時刻と同期させるステップをさらに備える、
請求項３に記載の方法。
【請求項５】
前記計算を通じて、前記目標時刻とデータベースサーバの時刻との間の時間オフセットを取得し、前記時間オフセットを前記２つ以上の所定のアプリケーションサーバに送信するステップは、
前記データベースサーバの時刻を取得するステップと、前記時間オフセットを取得するために、前記目標時刻から前記データベースサーバの前記時刻を減算するステップと；
前記時間オフセットを前記２つ以上の所定のアプリケーションサーバに送り付けるステップと；をさらに備える、
請求項２に記載の方法。
【請求項６】
前記時間オフセットに従って、前記２つ以上の所定のアプリケーションサーバによって生成されるデータベース操作命令内の時間関数を修正する前記ステップは、前記２つ以上の所定のアプリケーションサーバによって生成される前記データベース操作命令内のサービスに関する時間関数を修正するステップをさらに備える、
請求項２に記載の方法。
【請求項７】
複数のアプリケーションサーバを少なくとも備える分散システムにおける相互時間の領域一致を実現するための装置であって：
前記複数のアプリケーションサーバ内の２つ以上の所定のアプリケーションサーバの時刻を設定目標時刻に従い同期させるように構成されたアプリケーションサーバ同期ユニットと；
計算を通じて、前記目標時刻とデータベースサーバの時刻との間の時間オフセットを取得し、前記時間オフセットを前記２つ以上の所定のアプリケーションサーバへ送信するように構成された時間オフセット計算ユニットと；
前記分散システムにおける相互時間の領域一致を実現するよう、前記時間オフセットに従って、前記２つ以上の所定のアプリケーションサーバによって生成されるデータベース操作命令内の時間関数を修正するように構成された時間関数修正ユニットと；を備える、
装置。
【請求項８】
前記２つ以上の所定のアプリケーションサーバは、サービスシミュレーションにおけるサービスに関連するアプリケーションサーバを含み、
前記データベースサーバは、前記サービスシミュレーションにおける前記サービスに関連する１つ以上のデータベースサーバを含む、
請求項７に記載の装置。
【請求項９】
前記アプリケーションサーバ同期ユニットは、前記２つ以上の所定のアプリケーションサーバ内の１つのアプリケーションサーバをタイムサーバとして選択し、前記タイムサーバの時刻を前記目標時刻に調整し、且つ、前記タイムサーバの前記時刻を基準とすることによって、前記２つ以上の所定のアプリケーションサーバ内の残りのアプリケーションサーバの時刻を前記タイムサーバの前記時刻と同期させるように構成された、
請求項８に記載の装置。
【請求項１０】
時間間隔を提供するように構成されたタイマをさらに備え、
前記アプリケーションサーバ同期ユニットは、前記時間間隔を１サイクルとすることによって、前記残りのアプリケーションサーバの時刻を前記タイムサーバの前記時刻と同期させる、
請求項９に記載の装置。
【請求項１１】
前記時間オフセット計算ユニットは、前記データベースサーバの時刻を取得し、前記目標時刻から前記データベースサーバの前記時刻を減算して前記時間オフセットを取得し、且つ、前記時間オフセットを前記２つ以上の所定のアプリケーションサーバへ送り付けるように構成された、
請求項８に記載の装置。
【請求項１２】
前記時間関数修正ユニットは、前記２つ以上の所定のアプリケーションサーバによって生成される前記データベース操作命令内のサービスに関する時間関数を修正するように構成された、
請求項８に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子技術の分野に関し、特に、分散システムにおける相互時間の領域の一致を実現するための方法及び装置に関する。
【背景技術】
【０００２】
従来の金融計算モデルは、地理的な観点で分けた特定の場所に各データセンタを有する金融データセンタに基づいた集中型コンピューティング構造である。それぞれの特定の場所における各データセンタは、いくつかの地域におけるデータ計算及び処理だけを扱っている。従来の、金融データセンタに基づく集中型コンピューティング構造は既存の銀行サービスの処理を良好に遂行できるが、分散型構造及び金融クラウド計算モデルの欠如、及び動的開発及び弾性のあるアプリケーション対応の欠如により、新規金融サービス及び新規機関の開発に関する要件を十分に満足させることができない。
【０００３】
上記の課題に対して、従来技術での分散金融システムはこれを上手く解決できる。しかし、サービスシミュレーションを分散システムで実行する場合（例えば、貸付サービスのシミュレーション）、異なるアプリケーションサーバの時刻が同期されておらず、データベースの時刻をアプリケーションサーバの時刻と同期させることができないので、サービスシミュレーションを円滑に完了できないという課題が生じている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本願の実施の形態の目的は、分散システムにおける相互時間の領域一致を実現する方法及び装置を提供することであり、サービスシミュレーションを完了できない結果、データベースサーバの時刻を修正することによりデータベースの不具合を招き、データベースサーバとアプリケーションサーバとの間の時間の一致を得ることができないという従来技術の課題を解決するものである。分散システム、特に、金融分野においてサービスシミュレーションに関与するアプリケーションシナリオのために、本願の技術的解決法は、必要に応じて柔軟に金融サービスシミュレーションを行い、任意の所望の時間内でサービス発生時間と会計時間との間の一致性を保証する。したがって、サービス発生時間と会計時間との間の不一致がサービス不具合を招かないことを保証している。
【課題を解決するための手段】
【０００５】
本願の実施の形態は、分散システムにおける相互時間の領域一致を実現するための方法を提供し、当該方法は：
アプリケーションサーバの時刻を設定目標時刻に従って同期させるステップと；
計算を通じて、目標時刻とデータベースサーバの時刻との間の時間オフセット（時間偏差）を取得し、時間オフセットをアプリケーションサーバへ送信するステップと；
分散システムにおける相互時間の領域一致を実現するように、時間オフセットに従って、アプリケーションサーバによって生成されるデータベース操作命令内の時間関数を修正するステップと；を備える。
【０００６】
本願の実施の形態は、さらに、分散システムにおける相互時間の領域一致を実現するための装置を提供し、当該装置は：
アプリケーションサーバの時刻を設定目標時刻に従い同期させるように構成されたアプリケーションサーバ同期ユニットと；
計算を通じて、目標時刻とデータベースサーバの時刻との間の時間オフセットを取得し、時間オフセットをアプリケーションサーバへ送信するように構成された時間オフセット計算ユニットと；
分散システムにおける相互時間の領域一致を実現するよう、時間オフセットに従って、アプリケーションサーバによって生成されるデータベース操作命令内の時間関数を修正するように構成された時間関数修正ユニットと；を備える。
【０００７】
本願の実施の形態において提供される上記の技術的解決策から、データベースサーバの時刻を頻繁に修正することにより、サービスシミュレーションを完了させることができないようなデータベース不具合を招く従来技術の課題を解決できることが見て取れる。分散システム、特に、金融分野においてサービスシミュレーションに関与するアプリケーションシナリオのために、本願の技術的解決策は、必要に応じて柔軟に金融サービスシミュレーションを行い、任意で所望の時間内でサービス発生時間と会計時間との間の一致性を保証する。したがって、サービス発生時間と会計時間との間の不一致がサービス不具合を招かないことを保証している。
【０００８】
当然ながら、本願を実施するあらゆる製品や方法は、上で述べた全ての利点を同時に達成する必要はない。
【図面の簡単な説明】
【０００９】
本願の実施の形態又は従来技術の技術的解決を一層明確に説明するために、実施の形態又は従来技術の説明に用いる添付図面を以下、簡単に説明する。以下で説明する添付図面は本願に記載されたいくつかの実施の形態に過ぎないことは明らかである。当業者は、これらの添付図面からこれ以外の図面を創造的な努力なく導き出せるであろう。
【００１０】
【図１】図１は、本願の実施の形態による分散システムの相互時間の領域一致を実現するための方法のフロー図である。
【図２】図２は、本願の実施の形態による分散システムの相互時間の領域一致を実現するための装置の概略構造図である。
【図３】図３は、本願の実施の形態による金融システムの相互時間の領域一致を実現するためのシステムの概略構造図である。
【図４】図４は、本願の実施の形態による分散金融システムの相互時間の領域一致を実現するための方法のフロー図である。
【発明を実施するための形態】
【００１１】
本願の実施の形態は、分散システムの相互時間の領域一致を実現するための方法及び装置を提供する。
【００１２】
当業者が本願の技術的解決をより深く理解できるように、本願の実施の形態において、添付図面を参照しつつ、本願の実施の形態における技術的解決を明瞭かつ完全に以下で説明する。説明する実施の形態は、本願の実施の形態のすべてではなく、その一部であることは明らかである。本願の実施の形態に基づいて当業者が創造的な努力をせずに導き出されたすべての実施の形態は何れも本願の保護範囲内に含まれるべきものである。
【００１３】
図１は、本願の実施の形態による分散システムの相互時間の領域一致を実現するための方法のフロー図である。
【００１４】
図１は、分散金融システムにおいて生じる時刻非同期の課題に対して提案される本願における技術的解決方法を示している。サービスシミュレーションが行われる場合、全てのサービスに関与するアプリケーションサーバ及びデータベースのサービス時刻は、サービスシミュレーションを実現するよう、同期されてもよい。例えば、金融システムにおける何人かのユーザの口座の安全性をチェックするために、設定時刻（一般に、未来の時刻）におけるサービスをシミュレートし、ユーザの口座を操作して、設定時刻におけるユーザの口座の状態をチェックする必要がある。
【００１５】
この実施の形態の図は、以下を含む：
ステップ１０１：アプリケーションサーバの時刻を設定目標時刻に従い同期させる。
ステップ１０２：目標時刻とデータベースサーバとの間の時間オフセットを、計算を通じて取得し、その時間オフセットをアプリケーションサーバへ送信する。
ステップ１０３：アプリケーションサーバによって生成されたデータベース操作命令内の時間関数を時間オフセットに従って修正して、分散システムの相互時間の領域一致を実現させる。
【００１６】
本願の実施の形態として、アプリケーションサーバはサービスシミュレーションにおけるサービスに関するアプリケーションサーバを含み、データベースサーバはサービスシミュレーションにおけるサービスに関するデータベースサーバを含む。実施シナリオにおいて、分散システムは、分散方式に設定された複数のアプリケーションサーバ及びデータベースサーバを含んでいてもよい。サービスシミュレーションが行われる場合、例えば、貸付サービスのシミュレーションが行われる場合、貸付サービスに関するアプリケーションサーバと、対応するデータベースサーバとを関与させることだけが必要であり、貸付サービスのシミュレーションには無関係な他のアプリケーションサーバ及びデータベースサーバの時刻を同期させる必要はない。明らかに、分散システムにおける全てのアプリケーションサーバ及びデータベースサーバの時刻も、同期させてもよい。
【００１７】
本願の実施の形態として、アプリケーションサーバは、分散システムにおいて複数のアプリケーションサーバを備え、データベースサーバは分散システムにおいて１つ以上のデータベースサーバを備える。
【００１８】
本願の実施の形態として、アプリケーションサーバの時刻を設定目標時刻に従い同期させるステップは、具体的に、１つのアプリケーションサーバをタイムサーバとして選択するステップと、タイムサーバの時刻を目標時刻に調整するステップと、タイムサーバの時刻を基準とすることによって、残りのアプリケーションサーバの時刻をタイムサーバの時刻と同期させるステップとをさらに含む。
【００１９】
任意の実施の形態として、目標時刻を同期の目標として、システム時間を調整する制御命令又はスクリプトをサービスに関連するアプリケーションサーバへ直接送信し、サービスに関する全てのアプリケーションサーバの時刻を同期させることが可能である。すなわち、アプリケーションサーバの時刻同期を、１つのアプリケーションサーバをタイムサーバとして選択することなく実現できる。
【００２０】
本願の実施の形態として、タイムサーバの時刻を基準とすることによって、残りのアプリケーションサーバの時刻をタイムサーバの時刻と同期させるステップは、時間間隔を１サイクルとすることによって、残りのアプリケーションサーバの時刻をタイムサーバの時刻と同期させることをさらに含む。時間間隔は、１０分、１５分、等であってもよい。アプリケーションサーバ同士のハードウェア間の相違により、時間が経過するにつれて、アプリケーションサーバ同士の時刻も、１回限りの同期後に互いに同期していない可能性がある。現時点では、アプリケーションサーバ同士の時刻を定期的に同期させることが、時刻同期の正確さを確保して、以下の時間オフセットの計算が容易になる。
【００２１】
本願の実施の形態として、計算を通じて、目標時刻とデータベースサーバの時刻との間の時間オフセットを取得し、時間オフセットをアプリケーションサーバに送信するステップは、具体的に、データベースサーバの時刻を取得するステップと、時間オフセットを取得するために、目標時刻からデータベースサーバの時刻を減算するステップと、時間オフセットをアプリケーションサーバに送り付けるステップとを含む。データベース時間オフセット命令を取得するアプリケーションサーバがデータベースＳＱＬ命令を実行する場合、アプリケーションサーバは、ＳＱＬ命令内の時間関数に関する時間オフセットを行う。したがって、データベースサーバの時刻（すなわち、ＳＱＬ命令から取得された時刻）を信用することによって、データベースサーバの時刻を修正せずに、データベースサーバの時刻とアプリケーションサーバの時刻との間の一致を達成してもよい。
【００２２】
データベースサーバの時刻は、従来技術におけるデータベースの時刻を取得する命令により得られてもよい。例えば、金融サービスは、ＳＱＬ命令：ｓｅｌｅｃｔ  ｎｏｗ（）  ｆｒｏｍ  ｄｕａｌを介して、データベースサーバの時刻をサービス時間として取得する。ＳＱＬにおいて、ｎｏｗ（）はデータベース時間関数である。従来技術において、時刻を取得する命令は、データベースが異なれば変化し得るので、本明細書中ではさらに説明しない。
【００２３】
本願の実施の形態として、時間オフセットに従って、アプリケーションサーバによって生成されるデータベース操作命令内の時間関数を修正するステップは、具体的に、アプリケーションサーバによって生成されるデータベース操作命令内のサービスに関する時間関数を修正するステップをさらに含む。
【００２４】
アプリケーションサーバによって生成されるデータベース操作命令は、いくつかの時間関数を含んでいてもよい。本願において、サービスシミュレーションに関する時間関数のみを修正又は置換する必要がある一方で、全ての時間関数を修正する必要はない。時間関数に対する修正は、時間オフセットをデータベース操作命令内の時間関数に追加して修正された時間を得ることであってもよい。
【００２５】
本願の実施の形態における方法を介して、データベースサーバの時刻を頻繁に修正することによりサービスシミュレーションを完了させることができないようなデータベース不具合を招く従来技術の課題を解決することができる。分散システム、特に、金融分野におけるサービスシミュレーションに関与するアプリケーションシナリオにとって、本願の技術的解決策は、必要に応じて柔軟に金融サービスシミュレーションを行い、未来のある期間における口座の状態を取得するので、ユーザ及び金融機関の情報安全性を保証することができる。
【００２６】
図２は、本願の実施の形態による分散システムの相互時間の領域一致を実現するための装置の概略構造図である。
【００２７】
図は、分散システムの相互時間の領域一致を実現するための装置の構造を示している。図１における実施の形態の方法が装置において実装される場合、例えば、時間オフセットを計算し、データベース操作命令内の時間関数を修正する等のために構成されたコンポーネントは、全て、相当する機能を実装するソフトウェア又はハードウェア論理回路により実装されてもよく、アプリケーションサーバに統合されてもよく、１つ以上のコンピュータが、機能を完了するよう別々に提供されてもよい。
【００２８】
装置は、アプリケーションサーバの時刻を設定目標時刻に従い同期させるように構成されたアプリケーションサーバ同期ユニット２０１と；
計算を通じて、目標時刻とデータベースサーバの時刻との間の時間オフセットを取得し、時間オフセットをアプリケーションサーバへ送信するように構成された時間オフセット計算ユニット２０２と；
分散システムにおける相互時間の領域一致を実現するよう、時間オフセットに従って、アプリケーションサーバによって生成されるデータベース操作命令内の時間関数を修正するように構成された時間関数修正ユニット２０９と；を備える。
【００２９】
本願の実施の形態として、アプリケーションサーバは、サービスシミュレーションにおけるサービスに関するアプリケーションサーバを含み、データベースサーバは、サービスシミュレーションにおけるサービスに関するデータベースサーバを含む。
【００３０】
本願の実施の形態として、アプリケーションサーバは、分散システムにおいて複数のアプリケーションサーバを含み、データベースサーバは、分散システムにおいて１つ以上のデータベースサーバを含む。
【００３１】
本願の実施の形態として、具体的には、アプリケーションサーバ同期ユニット２０１は、１つのアプリケーションサーバをタイムサーバとして選択し、タイムサーバの時刻を目標時刻に調整し、且つ、タイムサーバの時刻を基準とすることによって、残りのアプリケーションサーバの時刻をタイムサーバの時刻と同期させるように構成される。
【００３２】
本願の実施の形態として、装置は、１つの時間間隔を提供するように構成されたタイマをさらに備え、アプリケーションサーバ同期ユニット２０１は、その時間間隔を１サイクルとすることによって、残りのアプリケーションサーバの時刻をタイムサーバの時刻と同期させる。
【００３３】
本願の実施の形態として、具体的には、時間オフセット計算ユニット２０２は、データベースサーバの時刻を取得し、時間オフセットを取得するために目標時刻からデータベースサーバの時刻を減算し、且つ、時間オフセットをアプリケーションサーバへ送り付けるように構成される。
【００３４】
本願の実施の形態として、時間関数修正ユニット２０３が、特に、アプリケーションサーバによって生成されるデータベース操作命令内のサービスに関係する時間関数を修正するために構成される。
【００３５】
本願の実施の形態における装置を介して、データベースサーバの時刻を頻繁に修正することによりサービスシミュレーションを完了させることができないようなデータベース不具合を招く従来技術の課題を解決することができる。分散システム、特に、金融分野においてサービスシミュレーションに関与するアプリケーションシナリオにとって、本願の技術的解決策は、必要に応じて柔軟に金融サービスシミュレーションを行い、未来のある期間における口座の状態を取得するので、ユーザ及び金融機関の情報安全性を保証することができる。
【００３６】
図３は、本願の実施の形態による金融システムの相互時間の領域一致を実現するためのシステムの概略構造図である。
【００３７】
この実施の形態において、分散システムの相互時間の領域一致を実現する解決策を、金融アプリケーションシナリオを実施例とすることによって説明する。分散金融システムは、シミュレートされる金融サービス３０１を含む。シミュレートされる金融サービス３０１は、アプリケーションサーバ３０２、アプリケーションサーバ３０３、及びデータベースサーバ３０４にそれぞれ関する。アプリケーションサーバ３０２はタイムサーバとして設定されて、サービスシミュレーション中の時刻基準として機能する。アプリケーションサーバ３０２及びアプリケーションサーバ３０３並びにデータベースサーバ３０４は全て、サービスシミュレーションに関するデバイスである。分散金融システム全体は、さらに、他のアプリケーションサーバ又はデータベースサーバを含む。
【００３８】
実施例において、本願の装置は、アプリケーションサーバ３０２及びアプリケーションサーバ３０３に分散されるか、又は、別個のコンピュータである。当業者は、本願の装置が、対応する機能を実装するソフトウェアモジュールであってもよく、また、対応する機能を実装する論理回路であってもよく、空間位置に位置する装置に限定されないことを理解できる。装置は、機能ユニット又はモジュールの形で分散金融システム内の関連サーバに分散されてもよいし、サーバの基礎となるフレームワーク構造であってもよい。
【００３９】
この実施の形態において、分散金融システムの相互時間の領域一致を実現するための方法のフロー図を図４に示す。そこで、アプリケーションサーバ３０２はタイムサーバとして設定されており、他のアプリケーションサーバの時刻は、アプリケーションサーバ３０２の時刻を基準とすることによって同期させる必要がある。
【００４０】
図３及び図４を参照すると、サービス時間を金融サービスのシミュレーション（貸付サービスのシミュレーション）において未来の時刻（目標時刻）に調整させる必要がある場合には、新規利子データをデータベースサーバ３０４へ追加する必要があり、例えば、目標時刻が２０１５年４月２日の１５：３０であり、アプリケーションサーバ３０２の時刻が２０１５年４月１日の１５：３０であり、アプリケーションサーバ３０３の時刻が２０１５年４月１日の１５：３２であり、データベースサーバの時刻が２０１５年４月１日の１５：３３である場合である。
【００４１】
ステップ４０１：目標時刻及び貸付サービスのシミュレーションが設定情報に従って決定される。
【００４２】
このステップでは、目標時刻及び貸付サービスのシミュレーションは、マウス又はキーボード等の入力デバイスでユーザによって入力される設定情報に従って決定されてもよく、貸付サービスのシミュレーションに関するアプリケーションサーバ及びデータベースサーバが、サービスシミュレーションの名前及び関連デバイスのリストと同様の方法で取得されてもよい。本願の技術的解決策を簡単に説明するために、貸付サービスに関するアプリケーションサーバはアプリケーションサーバ３０２及びアプリケーションサーバ３０３であり、関連するデータベースサーバはデータベースサーバ３０４であり、タイムサーバはアプリケーションサーバ３０２である。
【００４３】
ステップ４０２：目標時刻はタイムサーバに送信され、タイムサーバはシステム時刻を目標時刻に調整する。この実施例において、アプリケーションサーバ３０２はシステム時刻を２０１５年４月２日の１５：３０に調整する。
【００４４】
ステップ４０３：アプリケーションサーバがタイムサーバの時刻を取得し、それ自体のシステム時刻をタイムサーバの時刻と同期させる。
【００４５】
このステップで、アプリケーションサーバ３０３がタイムサーバの時刻を能動的に取得して、時刻同期を実現してもよく、タイムサーバが、タイムサーバの時刻を含む時刻同期命令をアプリケーションサーバ３０３へ能動的に送信して、時刻に従う時刻同期を実行するようアプリケーションサーバ３０３に命令してもよい。
【００４６】
具体的には、アプリケーションサーバ３０３が、それ自体の時刻、２０１５年４月１日の１５：３２をタイムサーバの時刻、すなわち、２０１５年４月２日の１５：３０に同期させる。
【００４７】
ステップ４０４：アプリケーションサーバはタイムサーバとの時刻同期を定期的に行う。
【００４８】
このステップで、アプリケーションサーバ３０３は、それ自体のタイマに従って時間間隔を計算してもよい。時間間隔が経過する度に、アプリケーションサーバ３０３はタイムサーバから時刻を能動的に取得して時刻同期を実行する。又は、タイムサーバは時間間隔を計算するためのタイマを有し、時間間隔が経過する度に、タイムサーバは時刻を含む同期命令をアプリケーションサーバ３０３へ能動的に送信することにより時刻同期を実行するようアプリケーションサーバ３０３に命令する。
【００４９】
具体的には、１０分後、アプリケーションサーバ３０３の時刻は２０１５年４月２日の１５：４１である。このステップの方法において、アプリケーションサーバは、１０分を時間間隔とすることによって、タイムサーバと同期される。この時点で、タイムサーバの時刻は２０１５年４月２日の１５：４０であり、同期後、アプリケーションサーバ３０３の時刻は２０１５年４月２日の１５：４０である。
【００５０】
ステップ４０５：タイムサーバ及びデータベースサーバの時刻が取得される。
【００５１】
データベースサーバの時刻は、時刻取得命令、例えば、データベース命令、ｓｅｌｅｃｔ  ｎｏｗ（）  ｆｒｏｍ  ｄｕａｌをデータベースサーバ３０４へ送信することによって取得されてもよい。命令は、データベースサーバの時刻を取得することである。
【００５２】
この実施例において、データベースサーバの時刻は、上で説明したように、２０１５年４月１日の１５：３３であり、タイムサーバの時刻は２０１５年４月２日の１５：３０である。
【００５３】
ステップ４０６：タイムサーバの時刻とデータベースサーバの時刻との間の相違を計算して時間オフセットを得る。
【００５４】
具体的には、タイムサーバの時刻が２０１５年４月２日の１５：３０であり、データベースサーバの時刻が２０１５年４月１日の１５：３３であることに従うと、時間オフセットが２３時間と５７分であることが得られる。
【００５５】
ステップ４０７：時間オフセットがサービスシミュレーションに関するアプリケーションサーバへ送り付けられる。
【００５６】
このステップで、時間オフセットは、貸付サービスのシミュレーションに関する全てのアプリケーションサーバに送り付けられるよう、マルチスレッド方式にされている。この実施例において、アプリケーションサーバ３０２及びアプリケーションサーバ３０３だけが存在し、アプリケーションサーバ３０２はタイムサーバである。仮に時間オフセットがタイムサーバ上で計算される場合、このステップでは、アプリケーションサーバ３０３に送り付けられるよう、時間オフセットをスレッドに入れることだけが必要である。仮に貸付サービスのシミュレーションが、さらに、他のアプリケーションサーバに関係する場合、時間オフセットは、マルチスレッド方式で同時に全ての関係するアプリケーションサーバに送り付けられてもよい。サービスに関するアプリケーションサーバは分散システム内のアプリケーションサーバを含み、そのサービス時間はデータベースサーバの時刻に依存する必要がある。
【００５７】
ステップ４０５乃至ステップ４０７は、別々のデバイス上で実行されてもよく、アプリケーションサーバ３０３上でも実行されてもよい。好ましい実施の形態のように、上記ステップはタイムサーバ上で実行されてもよい。
【００５８】
ステップ４０８：サービスシミュレーションに関するアプリケーションサーバによって生成されるデータベース操作命令内の時間関数が修正される。
【００５９】
日々、貸付に関する利子が生じる可能性のある、この実施の形態における貸付サービスのシミュレーションであるように、アプリケーションサーバ３０３は、利付き記録をデータベースに追加するデータベース操作命令を生成する。データベース操作命令は、利付きの時間関数、例えば、ｓｅｌｅｃｔ  ｎｏｗ（）  ｆｒｏｍ  ｄｕａｌを含む。データベース操作命令内の時間関数は修正される。すなわち、ｓｅｌｅｃｔ  ＤＡＴＥ＿ＡＤＤ（ｎｏｗ（），ＩＮＴＥＲＶＡＬ  Ａ  ＭＩＮＵＴＥ）  ｆｒｏｍ  ｄｕａｌであって、ここで、ｎｏｗ（）関数はデータベースサーバの時刻を取得する関数であり、ＩＮＴＥＲＶＡＬ  Ａ  ＭＩＮＵＴＥは時間オフセットであり、ＤＡＴＥ＿ＡＤＤ（）は時間オフセットをデータベースの時刻に追加する関数であり、ｄｕａｌはデータベーステーブルである。時間オフセットが実行される場合に、任意の所望時間がシミュレートできることが見て取れる。
【００６０】
アプリケーションサーバは、データベース操作命令内の時間関数メソッド名を特定する方法で、どの時間関数を修正する必要があるかを決定してもよく、例えば、ＯＢ及びｍｙｓｑｌの時間関数は、ｎｏｗ（）／ｃｕｒｒｅｎｔ＿ｔｉｍｅ（）／ｃｕｒｒｅｎｔ＿ｔｉｍｅｓｔａｍｐ（）／ｓｔｒｉｃｔ＿ｃｕｒｒｅｎｔ＿ｔｉｍｅｓｔａｍｐ（）、等であり、時間関数は、時間オフセットを必要とする時間関数及び時間オフセットを必要としない時間関数の構成に柔軟に対応できる。この場合、アプリケーションサーバの時刻と共にデータベースに記録されるサービス時間の同期は、データベースサーバの時刻を変更することなく実現でき、金融サービスのシミュレーション中の相互時間の領域一致を保証する。
【００６１】
別の実施の形態において、複数のデータベースサーバ及び複数のアプリケーションサーバがサービスシミュレーションに関与している場合、アプリケーションサーバによっては１つ以上のデータベースサーバにおいて操作を実行する必要があり、各データベースサーバの時刻は異なっている可能性があり、そのため、ステップ４０５において、全てのデータベースサーバの時刻及びタイムサーバの時刻を得る必要がある。
【００６２】
ステップ４０６で、タイムサーバの時刻と複数のデータベースサーバの時刻との相違は、複数の時間オフセットを得るよう、それぞれ計算され、各時間オフセットと対応するデータベースサーバとの間の一致関係が記録される。
【００６３】
ステップ４０７で、対応する時間オフセットは、サービスシミュレーションに関するアプリケーションサーバ及び対応するデータベースサーバに従って、アプリケーションサーバに送り付けられる。
【００６４】
このステップにおいて、１つのアプリケーションサーバは、データベース操作命令をいくつかのデータベースサーバへ送信することを必要としてもよく、データベースサーバに送信されるデータベース操作命令内の時間関数は全て、異なるように修正される必要がある、すなわち、データベースサーバＡの時刻と目標時刻との間の時間オフセットはＡであり、データベースサーバＢの時刻と目標時刻との間の時間オフセットはＢであり、データベースサーバＣの時刻と目標時刻との間の時間オフセットはＣであり、異なる時間オフセットがアプリケーションサーバへ送信される。
【００６５】
ステップ４０８：アプリケーションサーバによって異なるデータベースサーバへ送信されるデータベース操作命令内の時間関数は、対応する時間オフセットに従って修正される。
【００６６】
具体的に、アプリケーションサーバによってデータベースサーバＡへ送信されるデータベース操作命令内の時間関数は時間オフセットＡに従って修正され、アプリケーションサーバによってデータベースサーバＢへ送信されるデータベース操作命令内の時間関数は時間オフセットＢに従って修正され、アプリケーションサーバによってデータベースサーバＣへ送信されるデータベース操作命令内の時間関数は時間オフセットＣに従って修正される。
【００６７】
本願の実施の形態における方法及び装置により、分散システムにおける時間調整及び切換が、特に、金融レベルの分散システムにおけるサービスシミュレーションのために実装でき、データベースサーバの不具合を回避でき、その結果、金融システムのデータ及び情報の安全性を検出できる。
【００６８】
技術の向上は、ハードウェアの改良（例えば、ダイオード、トランジスタ、スイッチのような回路構造の改良）、又はソフトウェアの改良（方法手順の改良）として明確に区別できる。しかし、技術の開発に伴い、現在、多くの方法手順の改良はハードウェア回路構造の直接の改良とみなされ得る。ほぼ全ての設計者は、改良した方法手順をハードウェア回路に組み込むことで、この方法手順に対応したハードウェア回路構造を得ている。そのため、方法手順はハードウェアエンティティ（実体）モジュールを用いて改良することができないと仮定することは不可能である。例えば、プログラマブル論理デバイス（ＰＬＤ）（例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ））はこのような集積回路であり、その論理機能はそのデバイスのプログラミングを介してユーザよって決定される。設計者は、専用の集積回路チップ２の設計及び製造をチップメーカに依頼するのではなく、デジタルシステムを１つのＰＬＤの中に統合するよう独自でプログラムする。さらに、現在、プログラミングは、集積回路チップを手作業で製造するのではなく、ほとんどが「論理コンパイラ」ソフトウェアを用いて実施されている。このソフトウェアは、プログラムの開発及び書き込みに使用されるソフトウェアコンパイラと類似しており、また、コンパイリング前のオリジナルコードはハードウェア記述言語（ＨＤＬ）と呼ばれる特定のプログラミング言語で書かれている必要がある。ＨＤＬには、ＡＢＥＬ（Advanced Boolean Expression Language）、ＡＨＤＬ（アルテラハードウェア記述言語：Altera Hardware Description Language）、Ｃｏｎｆｌｕｅｎｃｅ、ＣＵＰＬ（コーネル大学プログラミング言語：Cornell University Programming Language）、ＨＤＣａｌ、ＪＨＤＬ（Ｊａｖａ（登録商標）ハードウェア記述言語：Java Hardware Description Language）、Ｌａｖａ、Ｌｏｌａ、ＭｙＨＤＬ、ＰＡＬＡＳＭ、ＲＨＤＬ（Ｒｕｂｙハードウェア記述言語：Ruby Hardware Description Language）など種々あり、中でも、ＶＨＤＬ（超高速集積回路ハードウェア記述言語：Very-High-Speed Integrated Circuit Hardware Description Language）とＶｅｒｉｌｏｇ２が現在最も一般的に使用されている。当業者は、上で述べたいくつかのハードウェア記述言語を用いて方法手順をただ論理的にプログラミングし、これを集積回路に組み込むだけで、論理方法手順を実施するためのハードウェア回路を容易に得られることも熟知しているはずである。
【００６９】
制御装置は任意の適切な方法で実現できる。例えば、制御装置はマイクロプロセッサ又はプロセッサ、コンピュータ読取り可能な媒体の形態であってよく、コンピュータ読取り可能な媒体は、（マイクロ）プロセッサ、論理ゲート、スイッチ、特定用途向け集積回路（ＡＳＩＣ）、プログラマブル論理制御装置、埋込型マイクロコントローラによって実行可能な、コンピュータ読取り可能なプログラムコード（例えばソフトウェア又はファームウェア）を記憶する。制御装置の例は次のマイクロコントローラを非限定的に含む。ＡＲＣ６２５Ｄ、Ａｔｍｅｌ  ＡＴ９１ＳＡＭ、Ｍｉｃｒｏｃｈｉｐ  ＰＩＣ１８Ｆ２６Ｋ２０、Ｓｉｌｉｃｏｎｅ  Ｌａｂｓ  Ｃ８０５１Ｆ３２０。メモリ制御装置をメモリの制御論理の一部として実現してもよい。
【００７０】
当業者は、制御装置を純粋なコンピュータ読取り可能なプログラムコードを用いて実現するだけでなく、制御装置に、論理ゲート、スイッチ、特定用途向け集積回路、プログラマブル論理制御装置、埋込型マイクロコントローラの形態にて同じ機能を実施させるよう、方法ステップを論理的にプログラムできることも熟知している。したがって、このような制御装置はハードウェアコンポーネントとみなすことができ、また、制御装置に内蔵され、様々な機能を実施するように構成された装置もハードウェアコンポーネント内部の構造体とみなすことができる。あるいは、様々な機能を実施するように構成された装置は、方法を実施するためのソフトウェアモジュールと、ハードウェアコンポーネント内の構造体の両方、とみなすこともできる。
【００７１】
上記の実施の形態で例証したシステム、装置、モジュール又はユニットは、具体的には、コンピュータチップ又はエンティティ（実体）、もしくは、特定の機能を持った製品を用いて実現することができる。
【００７２】
説明を容易にするために、前述の装置を、機能に関連した種々のユニットに分割して説明した。本願を実施する際には、種々のユニットの機能は、同一もしくは複数のソフトウェア及び／又はハードウェアで実施できることは明らかである。
【００７３】
上で述べた実施方法の説明に基づき、当業者は、本願がソフトウェア及び必要なユニバーサルハードウェアプラットフォームで実施できることを明確に理解できる。この理解に基づき、本質的な本願の技術的解決、又は従来技術に寄与する部分は、ソフトウェア製品の形態で実施され得る。このソフトウェア製品は、ＲＯＭ／ＲＡＭ、磁気ディスク、又は光学ディスクのような記憶媒体に記憶できる。また、コンピュータソフトウェア製品は、コンピュータデバイス（パーソナルコンピュータ、サーバ、ネットワークデバイスなどであってよい）に本願の実施の形態又は実施の形態の特定部分に記載の方法を実行させることが可能ないくつかのインストラクション（命令、指示）を含んでいる。
【００７４】
本明細書の実施の形態は段階的に説明されており、種々の実施の形態の同一又は類似の部分は相互参照によって得られ、それぞれの実施の形態は他の実施の形態とは異なる部分を強調している。特に、システムの実施の形態は方法の実施の形態と基本的に類似するので、説明は簡単である。関連部分については、方法の実施の形態における該当部分の説明を参照されたい。
【００７５】
本願は様々な汎用（ユニバーサル）又は専用のコンピュータシステム環境又は構成に適用できる。例えば、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド型機器又はポータブル機器、タブレット機器、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラム可能な家電用電子デバイス、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、及び上記の任意のシステム又は機器を含む分散コンピューティング環境である。
【００７６】
本願は、プログラムモジュールなど、コンピュータによって実行されるコンピュータで実行可能なインストラクション（命令、指示）の一般的な文脈内において記述され得る。一般に、プログラムモジュールは、特定タスクの実行又は特定の抽象データ型の実装のための、ルーチン、プログラム、オブジェクト、アセンブリ、データ構造などを含む。本願は分散コンピューティング環境でも実施することができ、分散コンピューティング環境では、タスクは、通信ネットワークを介して接続されているリモート処理デバイスを用いて実行される。分散コンピューティング環境では、プログラムモジュールは記憶装置を含むローカル及びリモートのコンピュータ記憶媒体内に配置されてよい。
【００７７】
本願を実施の形態によって説明したが、当業者は、本願の精神から逸脱せずに本願に多くの変形及び変更を加えることが可能であることを理解するはずであり、これらの変形及び変更は、本願の精神から逸脱せずに添付する特許請求の範囲に含まれるものと予期される。
【図１】
0006679618.tif 000002
【図２】
0006679618.tif 000003
【図３】
0006679618.tif 000004
【図４】
0006679618.tif 000005