(57)【要約】      （修正有）【課題】クラウド・コンピューティングにおいてサーバー・コンピュータの台数をダイナミックに変更できる離散的コンピュータ・システム構築を行うためのアーキテクチャを提供する。【解決手段】複数のサーバー・コンピュータを束ねるクラスタを定義し、クラスタにデータベース・システムを接続する。クライアント・コンピュータからデータの更新またはデータの送信イベントが発生した際、発生した前記イベントがサーバー・コンピュータに逐次送信され、管理コンピュータに送信される。管理コンピュータから他のクラスタ内の管理コンピュータに前記イベントが即座に送信されることにより、クラスタ間のデータ授受をイベント駆動させることでデータを同期させる。【選択図】図１
2014123334.tif 000002
【特許請求の範囲】
【請求項１】
システム構築を行うためのシステム・アーキテクチャであって、１の管理コンピュータと１の管理データベース、そして前記管理コンピュータと管理データベースに接続された、１以上のデータベースと接続していることを特徴とする１以上のサーバー・コンピュータを備えることを特徴とする１以上のクラスタがネットワークに接続し、前記ネットワークに接続している１以上のクライアント・コンピュータに対してデータの授受を行っていることを特徴とし、且つ、前記クライアント・コンピュータからデータの更新またはデータの送信イベントが発生した際、発生したイベントが前記１以上のサーバー・コンピュータのうち１サーバ・コンピュータに逐次送信される段階と、前記イベントを受け取った前記１サーバー・コンピュータが前記１サーバー・コンピュータの属するクラスタ内の前記１の管理コンピュータに即座に前記イベントを送信する段階と、前記イベントを受け取った管理コンピュータから他のクラスタ内の管理コンピュータに前記イベントが即座に送信される段階と、前記他のクラスタ内の管理コンピュータが受け取った前記イベントを接続した１以上のサーバー・コンピュータに即座に送信する段階と、管理コンピュータから前記イベントを受け取ったサーバー・コンピュータが前記イベントを即座に処理し、処理に応じて接続したクライアント・コンピュータとデータの授受を行う段階を含むことを特徴とするシステム・アーキテクチャ。
【請求項２】
請求項１に記載したシステム・アーキテクチャにおいて、前記管理コンピュータはクラスタをグルーピングしているデータを保有していることを特徴とし、且つ、イベントの伝搬過程に於いて、前記イベントを最初に受け取ったサーバー・コンピュータが当該イベントに対してイベントの伝搬対象を特徴づけるキーデータを付与する段階を含むことを特徴とし、且つ、前記イベントを受け取った管理コンピュータが前記イベントに付与されたキーデータと前記クラスタをグルーピングしているデータから限られたクラスタにのみにイベントを送信することを特徴とするシステム・アーキテクチャ。
【発明の詳細な説明】
【技術分野】
【０００１】本技術は、ネットワークに接続された１以上のサーバー・コンピュータと、前記サーバー・コンピュータとデータの授受が可能なプログラム言語処理手段を有するソフトウェアを備えたことを特徴とする１以上のクライアント・コンピュータとで構成されることを特徴とするコンピュータ・システムの開発に関する。
【背景技術】
【０００２】Ｗｅｂブラウザを通してサービスを受けるＷｅｂアプリケーションは仮想化環境やクラウド環境などのサービスの充実に伴い、不特定のサーバー・コンピュータ上で分散して動作させる発想が一般的になりつつある。Ｗｅｂアプリケーションを利用するユーザーは分散したサーバー・コンピュータのどこからでも同質のサービスを受けることができる。こうした概念のことをクラウド・コンピューティング、環境のことをクラウド環境と呼ぶ。【０００３】クラウド環境下のアプリケーションはＣＰＵコア数やハードディスクが仮想的に割り当てられたサーバー・コンピュータ内で処理を行う。またスペックだけでなく、サーバー・コンピュータの利用台数もダイナミックに変化させることが可能である。このダイナミックさを活用することでサービスを行う上での初期コストの低減、ランニングコストの低減やオンデマンドな大規模インフラストラクチャの提供が可能となる。【０００３】このニーズに応えるために近年、Ａｍａｚｏｎ  ＥＣ２やＲａｃｋｓｐａｃｅに代表されるような、クラウド内でのサーバー・コンピュータのダイナミックな起動・終了をサポートするサービスが数多く登場した。今ではＨｅｒｏｋｕやＦｏｒｃｅ．ｃｏｍのように、その上にアプリケーション開発基盤をインストール済にして提供しているサービスの提供も盛んである。これらのサービスは一般的にＰａａＳ（Ｐｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）と呼ばれる。【０００４】また、サーバー・コンピュータが多数ある状態でデータを一元管理しようというアプリケーションの開発も盛んである。特に各データにデータを特定できるキーを付与することによりシンプルにデータを管理するＫＶＳ（キーバリューストア）ベースのデータベースがこれまでアプリケーション構築の大半を握ってきたＲＤＢＭＳ（関係データベースマネージメントシステム）の利点を吸収しながら進化している。【０００５】例えば１０ｇｅｎが提供しているｍｏｎｇｏｄｂでは複数台のサーバー・コンピュータから同一ＤＢにアクセスする仕組みや、ＤＢのバックアップを自動で作成し、障害時の冗長性を持たせる機能などを提供し、クラウド上のアプリケーションに多く採用されている。【０００６】また、Ｗ３Ｃが提唱している、一般的に総称してＨＴＭＬ５と呼ばれるＷｅｂ技術標準が認知されだしたことで、クライアント・コンピュータ、サーバー・コンピュータ双方で統一した規格に基づく実装を行うことも流れのひとつである。【０００７】前記規格のひとつにＷｅｂＳｏｃｋｅｔがある。これはクライアント・コンピュータ、サーバー・コンピュータの双方から情報を発信し受け取れるようにしたソケット通信技術の統一規格で、今まではＣｏｍｅｔに代表されるような規格を使用の都度実装する必要があったが、クライアント・コンピュータのＷｅｂブラウザに標準搭載されるようになると、必要に応じてサーバー・コンピュータからのデータ送信を行えるようになる。【０００８】ソケット方式に最大の特徴はネットワーク越しにイベント駆動型プログラム記述を可能にする点である。従来のリクエスト・レスポンス方式ではクライアント・コンピュータが新しい情報の有無を定期的にサーバー・コンピュータに問い合わ���る必要があった。ソケット方式を通信を用いると必要なデータはイベントとしてサーバー・コンピュータから能動的に随時通知される。【０００９】このＷｅｂＳｏｃｋｅｔによる実装はサーバー・コンピュータ上でＪａｖａＳｃｒｉｐｔを実行出来る環境を提供しているＮｏｄｅの登場で、サーバー・コンピュータ間でもまた容易に実装可能である。つまり、サーバー・コンピュータ間の通信もまたイベント駆動型プログラム記述が可能である。【００１０】また、サーバー・コンピュータからのイベントを今までのリクエスト・レスポンス方式を使って受け取るようにしたＨＴＭＬ５の規格、Ｓｅｒｖｅｒ  Ｓｅｎｔ  Ｅｖｅｎｔがある。これによりソケット通信が困難なＷｅｂブラウザの環境下でもサーバー・コンピュータとクライアント・コンピュータの間をイベント方式で実装することが出来る。
【発明の概要】
【発明が解決しようとする課題】
【００１１】クラウド・コンピューティングにおいてサーバー・コンピュータの台数がダイナミックに変更されることは前提とされたものであり、その前提に基づくからこそ、クラウド・コンピューティングにより初期コストの低減、ランニングコストの低減を実現しながらも多量のサービスリクエストに対する処理が可能なインフラストラクチャをわずかな時間で構築でき、サービスレベルを向上できるのである。【０００１２】しかしながらデータベース層、ビジネスロジック層のそれぞれにおいて、課題への解決策は提供されているものの、実際にサービスを開始するにあたってはダイナミックな環境を構築するインフラストラクチャはなく、スタティックなインフラストラクチャを前提として設計し、その変更には大きなコストと専門的知識を必要とするのが現状である。
【課題を解決するための手段】
【００１３】本発明は上記課題を解決すべくなされたもので、請求項１に記載の発明は、システム構築を行うためのシステム・アーキテクチャであって、１の管理コンピュータと１の管理データベース、そして前記管理コンピュータと管理データベースに接続された、１以上のデータベースを備えることを特徴とする１以上のサーバー・コンピュータを備えることを特徴とする１以上のクラスタがネットワークに接続し、前記ネットワークに接続している１以上のクライアント・コンピュータに対してデータの授受を行っていることを特徴とし、且つ、前記クライアント・コンピュータからデータの更新またはデータの送信イベントが発生した際、発生したイベントが前記１以上のサーバー・コンピュータのうち１サーバ・コンピュータに逐次送信される段階と、前記イベントを受け取った前記１サーバー・コンピュータが前記１の管理コンピュータに即座に前記イベントを送信する段階と、前記イベントを受け取った管理コンピュータから他のクラスタ内の管理コンピュータに前記イベントが即座に送信される段階と、前記他のクラスタ内の管理コンピュータが受け取った前記イベントを接続した１以上のサーバー・コンピュータに即座に送信する段階と、管理コンピュータから前記イベントを受け取ったサーバー・コンピュータが前記イベントを即座に処理し、処理に応じて接続したクライアント・コンピュータと即座にデータの授受を行う段階を含むことを特徴とするシステム・アーキテクチャである。【００１４】請求項２に記載の発明は、請求項１に記載したシステム・アーキテクチャにおいて、前記管理コンピュータはクラスタをグルーピングしているデータを保有していることを特徴とし、且つ、イベントの伝搬過程に於いて、前記イベントを最初に受け取ったサーバー・コンピュータが当該イベントに対してイベントの伝搬対象を特徴づけるキーデータを付与する段階を含むことを特徴とし、且つ、前記イベントを受け取った管理コンピュータが前記イベントに付与されたキーデータと前記クラスタをグルーピングしているデータから限られたクラスタにのみにイベントを送信することを特徴とするシステム・アーキテクチャである。【００１５】以下、図面を参照し、この発明の本発明の一実施の形態（以下「本実施形態」と呼ぶ）について説明する。
【図面の簡単な説明】
【００１６】
【図１】本実施形態を示す概略図である。
【図２】本実施形態のクラスタの構成を示すブロック図である。
【図３】本実施形態においてクライアント・コンピュータからのリクエストに対する処理フロー図である。
【発明を実施するための形態】
【００１７】図１は本実施形態にかかるアーキテクチャで作成されたコンピュータ・システムの概略図である。コンピュータ・システムは、１以上のクライアント・コンピュータ１０、１以上のクラスタＣと１以上のデータベース・システムＤとからなり、クライアント・コンピュータ１０はインターネット網やイントラネット網などのネットワークＮを介してクラスタＣに接続されており、クラスタＣとソケット接続により情報の授受を行うことができる。クラスタＣは１のデータベース・システムＤとネットワークＤＮを介して接続し、ＤＮとデータ授受を行うことができる。クラスタＣはネットワークＣＮを介して他のクラスタと接続されており、相互に情報の授受を行うことができる。クラスタＣ、データベース・システムＤはクライアント・コンピュータ１０の接続数に対して快適にサービスを行える数を用意する。クラスタＣとデータベース・システムＤの数は同じでなくてもよい。
【００１８】図２は本実施形態のクラスタの構成を示すブロック図である。
【００１９】クラスタＣは１以上のサーバー・コンピュータ２０と１のマネージャー・コンピュータ３０からなり、相互にソケット接続されていて情報の授受が可能である。サーバー・コンピュータ２０はネットワークＮおよびデータベース・ネットワークＤＮと、マネージャー・コンピュータ３０はクラスタ・ネットワークＣＮとデータベース・ネットワークＤＮに接続されている。
【００２０】図３は本実施形態において、サーバー・コンピュータ２０が受けたクライアント・コンピュータ１０からのリクエストに対して行う処理のフロー図である。
【００２１】クライアント・コンピュータ１０がサーバー・コンピュータ２０に処理内容を記述したリクエスト情報を送信する（Ｓ１０１）。サーバー・コンピュータ２０は送信されたリクエスト情報に基づき、必要に応じてデータベース・システムＤと通信しながらデータの登録、更新、削除、またはメモリの書き換えといったリクエスト処理を行う（Ｓ１０２）。
【００２２】次にサーバー・コンピュータ２０はデータの更新があったことをマネージャ・コンピュータ３０にイベント通知する。このとき、データの更新情報のほか、現在提供しているアプリケーションを特徴付けるキー情報も同時に送信する（Ｓ１０３）。通知処理終了後、リクエストを送信したクライアント・コンピュータ１０に対してレスポンスデータを送信する（Ｓ１０４）。クライアント・コンピュータ１０は受信したレスポンスデータに基づいてユーザーに処理結果を通知する（Ｓ１０５）。
【００２３】サーバー・コンピュータ２０からデータを受け取ったマネージャー・コンピュータ３０は受け取った情報に含まれる前記アプリケーションを特徴付けるキー情報を利用して、データベース・システムＤから情報を通知すべきクラスタ内のマネージャー・コンピュータのＩＰおよびポート情報を取得する（Ｓ１０６）。そして、情報を通知すべきクラスタに対してデータの更新情報および、アプリケーションを特徴付けるキー情報を送信する（Ｓ１０７）。
【００２４】他クラスタのマネージャー・コンピュータ３０からデータを受け取ったマネージャー・コンピュータ３０は、受け取った情報に含まれる前記アプリケーションを特徴付けるキー情報を利用して、アプリケーションを提供する自クラスタ内のサーバー・コンピュータ２０を見つけるとともに、データ更新処理が伴っている場合、データベース・システムに対して更新処理を実行させるサーバー・コンピュータ２０をランダムに決定する（Ｓ１０８）。異なるクラスタでもデータの送信元クラスタと同じデータベースを用いている場合は前記決定処理を行わない。
【００２５】その後、前記アプリケーションを特徴付けるキー情報を用いて見つけたサーバー・コンピュータ２０に対してマネージャ・コンピュータ３０はデータを送信する（Ｓ１０９）。このとき、前処理で決定したデータ更新処理を実行させるサーバー・コンピュータに送信するデータにはそのことを通知するフラグデータを含める。データを受け取ったサーバー・コンピュータはアプリケーションプログラムに基づいて必要であればクライアント・コンピュータ１０にデータを送信する。また、前記フラグデータが含まれていた場合、送信されたデータをデータベース・システムＤに送信し、データの更新処理を行う（Ｓ１１０）。クライアント・コンピュータ１０はデータが送信されてきた場合、アプリケーションプログラムに基づいて、ユーザーに対して通知処理を行う（Ｓ１１１）。
【００２６】以上が本実施形態における、詳細な動作の記述である。
【発明の効果】
【００２７】本発明に係るアーキテクチャを利用すれば、ダイナミックにアプリケーションを支えるコンピュータ数を変化させることが出来、離散的コンピュータ・システムの構築に際しての敷居を下げることができる。今までは資金力のある大手にしかできなかった大規模な離散的システムの基盤開発が、１時間程度の短時間で可能となり、新しいサービスや既存サービスのコスト低減に効果がある。
【００２８】［他の実施形態］
なお、上記実施形態はＷｅｂアプリケーションの利用を前提とし処理を例示したが、その他の環境においても同様の処理を実現することは可能であり、本発明は、他の実施態様も含むものである。また、本発明において、各手段などの要素は、コンピュータの演算制御部に限らず、ワイヤードロジック等に基づく電子回路で実現してもよい。また、各構成図、データの図、フローチャートの図などは例示に過ぎず、各要素の有無、その順序や具体的内容などは、本発明の範囲で適宜変更可能である。
【００２９】また、本発明の実施形態に記述された効果は、本発明の実施形態から生じる好適な効果を述べたものであって、本発明による効果は、本発明の実施形態に記述されたものに限定されるものではない。
【符号の説明】
【００３０】１０  ネットワークＮ１に接続されたクライアント・コンピュータ
１１  ネットワークＮ２に接続されたクライアント・コンピュータ
２０、２１  サーバー・コンピュータ
３０、３１  マネージャ・コンピュータ
Ｃ    クラスタ
Ｄ    データベース・システム
Ｎ    ネットワーク
ＣＮ  クラスタ・ネットワーク
ＤＮ  データベース・ネットワーク
【図１】
2014123334.tif 000003
【図２】
2014123334.tif 000004
【図３】
2014123334.tif 000005