JP2013235336A - コンピュータシステム - Google Patents

コンピュータシステム Download PDF

Info

Publication number
JP2013235336A
JP2013235336A JP2012106070A JP2012106070A JP2013235336A JP 2013235336 A JP2013235336 A JP 2013235336A JP 2012106070 A JP2012106070 A JP 2012106070A JP 2012106070 A JP2012106070 A JP 2012106070A JP 2013235336 A JP2013235336 A JP 2013235336A
Authority
JP
Japan
Prior art keywords
file
query
information
data
storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012106070A
Other languages
English (en)
Inventor
Nobuhide Takahashi
信英 高橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Keepdata
KEEPDATA Ltd
Original Assignee
Keepdata
KEEPDATA Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Keepdata, KEEPDATA Ltd filed Critical Keepdata
Priority to JP2012106070A priority Critical patent/JP2013235336A/ja
Publication of JP2013235336A publication Critical patent/JP2013235336A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】可用性を確保しつつ一部のデータについて迅速なレスポンスが得られるコンピュータシステムを提供する。
【解決手段】ウェブサービスとして提供されるデータストレージサービスを提供するコンピュータシステムであって、複数台のコンピュータノードに冗長化されたストレージ手段107と、外部アプリケーションから前記ウェブサービスで用いられるメソッドでクエリを受信すると、前記クエリを解析して前記ストレージ手段107へ問い合わせを実行するウェブサーバ106と、を有し、前記ストレージ手段107は、1又は複数の情報を格納するフィールドを1又は複数備えたレコードからなるデータ構造のファイルを記憶し、前記ウェブサーバ106は、前記ファイルのURIとともに、前記ファイル内の情報への検索問い合わせを受信すると、前記ファイル内の情報への問い合わせを実行し、実行結果をXMLで返す。
【選択図】図4

Description

本発明は、コンピュータシステムに関し、特に、ウェブサービスとしてストレージへのアクセスを提供するように構成されるデータストレージサービスに関する。
近時、クラウドコンピューティングという概念が提案されており、その基幹技術の一つとして、クラウド内のストレージの冗長性を高め、可用性を確保する技術が注目されている。きわめて高度な冗長性を実現するために、分散ファイルシステムと呼ばれる技術を利用することが従来知られている。
例えば、特許文献1を参照すると、ファイル操作に対するレスポンス時間、処理負荷、或いは記憶容量といった、特性の異なる複数の分散ファイルシステムを利用することが記載されている。
特開2012−073777号公報
分散ファイルシステムにおいては、単一のファイルシステムが複数の物理コンピュータノードに分散して存在するため、分散ファイルシステムへのファイルアクセスにかかる時間が、通常のファイルアクセスにかかる時間に比べて、長くなるのが現状である。
そこで、可用性が高いという分散ファイルシステムのメリットを享受しつつ、一部のデータについては少しでも迅速なファイルアクセスを望む場合、そのような一部のデータについてのみ、レスポンス時間が短い特性を持った分散ファイルシステムを利用するという方法が考えられる。
特許文献1に開示されているような方法で、異なる特性を持った分散ファイルシステムを複数、透過的に運用することができるかもしれない。しかしながら、特許文献1においては、分散ファイルシステム制御装置をあらたに設置して、特性の異なる複数の分散ファイルシステムの使用の差異を吸収する必要がある。制御装置によるオーバーヘッドがさらに生じる可能性がある。
本発明は、上記実情に鑑みてなされたものであって、可用性を確保しつつ一部のデータについて迅速なレスポンスが得られるコンピュータシステムを提供することを目的とする。
上記目的を達成するために本発明は、ウェブサービスとして提供されるデータストレージサービスを提供するコンピュータシステムであって、複数台のコンピュータノードに冗長化されたストレージ手段と、外部アプリケーションから前記ウェブサービスで用いられるメソッドでクエリを受信すると、前記クエリを解析して前記ストレージ手段へ問い合わせを実行するウェブサーバと、を有し、前記ストレージ手段は、1又は複数の情報を格納するフィールドを1又は複数備えたレコードからなるデータ構造のファイルを記憶し、前記ウェブサーバは、前記ファイルのURIとともに、前記ファイル内の情報への検索問い合わせを受信すると、前記ファイル内の情報への問い合わせを実行し、実行結果をXMLで返すことを特徴とするコンピュータシステムを提供するものである。
本発明によれば、可用性を確保しつつ一部のデータについて迅速なレスポンスが得られるコンピュータシステムを提供することが可能となる。
本発明の実施形態のネットワーク全体を例示する図である。 図1のストレージシステム101を構成するサーバ群の一例を示す図である。 図2のサーバアプリケーション間通信を示すシーケンス図である。 図1のストレージシステム101をアプリケーションレイヤの観点から見た構成を示すブロック図である。 図4のストレージ手段107に記憶される一部のファイルのデータ構造を説明するための図である。
以下、本発明を実施形態により図面を参照しながら説明する。
[システム構成]
本実施形態に係るストレージシステム101は、ネットワーク全体の中においてはウェブサービスとしてストレージへのアクセスを提供するように構成される(図1参照)。ストレージシステム101は、いわゆる「クラウド」と呼ばれるパブリックなネットワーク(典型的には、例えばインターネット)を含むネットワーク上に置かれる。図1を参照すると、ストレージシステム101は、クラウド100上に置かれ、各種クライアントデバイス200とデータ通信する構成である。
クライアントデバイス200は、携帯端末やパーソナルコンピュータを含む種々のものを用いることができる。携帯端末としては、限定するものではないが、米国アップルコンピュータ社が提供するオペレーティングシステム(以下、「OS」)、iOSを搭載する携帯電話端末やパッド型端末、また、米国グーグル社が提供するOS、Android(登録商標)を搭載する携帯端末を用いることができる。
ストレージシステム101は、より詳細には、各クライアントデバイス200上で動作するアプリケーションソフトウェア201と通信する。ここで、本実施形態において、アプリケーションソフトウェア201は、各OSに対応する、いわゆるネイティブアプリケーションである。
他の実施形態においては、アプリケーションソフトウェア201に代替して、ウェブサーバと通信を行いウェブサービスの提供を受けることに適したアプリケーションソフトウェアであるブラウザアプリケーションないしブラウザアプリケーション上で動作するプラグイン(例えば、米国アドビシステムズ社のFlash(登録商標)など)が、ストレージシステム101と通信を行うように構成してもよい。
ストレージシステム101とクライアントデバイス200上のアプリケーションソフトウェア201とのプログラム同士の対話は、RESTベースインターフェイスによって実現される。本実施形態において、RESTベースインターフェイスでは、各ウェブサービスコールが、外部状態情報を参照することなくそのコールを処理するために必要なすべての情報を含む。
また、本実施形態において、RESTベースインターフェイスでは、ウェブサービスが、指定された動作および1以上のクエリパラメータを含むURL(「Uniform Resource Locator」)などのURI(Uniform Resource Identifier」)として指定されたウェブサービス呼出し要求に応答して、HTTP(「HyperText Transport Protocol」)を使用するXML(「eXtensible Markup Language」)フォーマットでデータを返す。
[インフラストラクチャレイヤ]
ストレージシステム101の機能を実現するためのハードウェア及び当該ハードウェアを利用して所定の情報処理を行うソフトウェアプログラムの組み合わせは、種々のものが利用できる。本実施形態においては、1台以上の汎用のコンピュータを用いて、仮想的に図2に例示するようなサーバ群として動作させるソフトウェアプログラムを利用する。
図2は、図1のストレージシステム101を構成するサーバ群の一例を示すものである。図2に示すように、ストレージシステム101は、ロードバランサ102と、ウェブサービスクラスタ103と、データベースマネジメントクラスタ104と、分散ファイルシステムクラスタ105とを含み、全体として分散型のデータストレージサービスを構成する。
ロードバランサ102は、プロキシサーバを含み、クライアントデバイス200とのセッションの維持、負荷分散、ウェブサービスコールの適切なリダイレクトなど、各種機能を提供する。プロキシサーバとしては、限定するものではないが、例えば、HAProxy(登録商標)を用いる。
ウェブサービスクラスタ103は、TCP/HTTPに基づいた各ウェブサービスコールを適切に処理するウェブサーバを含み、ウェブサービスを提供する機能を実現する。ウェブサーバとしては、限定するものではないが、例えば、オープンソースで開発が続けられているApache(登録商標)を用いる。
データベースマネジメントクラスタ104は、分散ファイルシステムクラスタ105に記録されたデータに効率的にアクセスするための大規模分散データベースの機能を提供する。データベースマネジメントクラスタ104の各機能は、限定するものではないが、例えば、Hadoop Base(以下、「HBase」)によって提供される。HBaseを用いる場合、データベースマネジメントクラスタ104は、マスターサーバやリージョンサーバを含んでもよい。
マスターサーバは、リージョンサーバの管理を行い、死活管理や容量に応じてデータの統合や配置の変更などを行う。リージョンサーバは、分散ファイルシステムクラスタ105に記録されたデータに効率的にアクセスするための大規模分散データベースである。
分散ファイルシステムクラスタ105は、最低2つのネームノード、最低3つのデータノードを含んで構成される大規模分散ファイルシステムである。分散ファイルシステムクラスタ105の各機能は、限定するものではないが、例えば、Hadoop Distributed File System(以下、「HDFS」)によって提供される。
このように、このストレージシステム101のストレージは、複数台のコンピュータノードに冗長化されている。また、上述のように構成された本実施形態によれば、分散ファイルシステムクラスタ105のデータ容量が不足してくると、データノードを単に追加することによってパフォーマンスの低下なく容易にデータ容量を増加させることができる。したがって、スケーラブルである。
なお、図2に例示した構成は、物理的に5台のサーバマシンで実装することができる。5台のサーバマシンをそれぞれ、ノード#1、ノード#2、・・・、ノード#5とすると、ノード#1を、図2中のプロキシサーバ1、マスターサーバ1、ネームノード1として機能させ、ノード#2を、プロキシサーバ2、マスターサーバ2、ネームノード2として機能させる。また、ノード#3を、ウェブサーバ1、リージョンサーバ1、データノード1として機能させ、ノード#4を、ウェブサーバ2、リージョンサーバ2、データノード2として機能させ、ノード#5を、ウェブサーバ3、リージョンサーバ3、データノード3として機能させる。
このように、物理的にたった5台のサーバマシンから、大規模分散データベースシステムの構築が実現可能であるので、ビジネスのスモールスタートが可能である。換言すれば、少ない初期投資費用で、本実施形態が提供する大規模分散データベースシステムを利用したビジネスを始めることができる。
図3に、図2に示したサーバ群のサーバアプリケーション間通信のシーケンスを示す。図3に示されるように、本実施形態に係るストレージシステム101へのアクセスは、認証フェーズとデータアクセスフェーズに分かれる。
認証フェーズにおいては、クライアントデバイス200より認証要求のクエリがなされると、ロードバランサ102により負荷分散されて利用可能なウェブサービスクラスタ103へ送信される(S101、S102)。
ウェブサービスクラスタ103では、クエリを解析しクエリの内容に沿った問い合わせを後段のデータベースマネジメントクラスタ104及び分散ファイルシステムクラスタ105に対して実行する(S103〜S106)。
認証フェーズにおけるクエリには、少なくとも認証情報を含む。一方で、当該クエリないしデータアクセスフェーズでアクセスしようとする記憶内容には、その記憶内容へのアクセス権限がメタ情報(ファイル情報)として含まれている。ウェブサービスクラスタ103は、クエリの認証情報と、当該クエリないしデータアクセスフェーズでアクセスしようとする記憶内容へのアクセス権限とに基づいて、アクセス可否を判断し、結果をクライアントデバイス200に返す(S107、S108、S109)。
データアクセスフェーズにおいても、認証フェーズとほとんど同じ情報処理が行われる。クライアントデバイス200よりデータアクセス要求のクエリがなされると、ロードバランサ102により負荷分散されて利用可能なウェブサービスクラスタ103へ送信される(S110、S111)。
ウェブサービスクラスタ103では、クエリを解析しクエリの内容に沿った問い合わせを後段のデータベースマネジメントクラスタ104及び分散ファイルシステムクラスタ105に対して実行する(S112〜S115)。
データアクセスフェーズにおけるクエリには、少なくともあるファイルについて当該ファイルの階層的な格納情報を含む。なお、ここで、ディレクトリやフォルダといった概念は特殊な性質を持ったファイルとして、ファイルとして扱う。
階層的な格納情報とは、例えば、下記のようなものである。なお“/”はディレクトリやフォルダの区切りを表す。
/kigyo_name/busyo_name/user_name/folder_1/folder_2/file_name
ウェブサービスクラスタ103は、上記のような階層的な格納情報に基づいてファイルの格納されている場所についての階層構造を把握する。
[アプリケーションレイヤ]
図2と図3のようなインフラストラクチャレイヤの構成を備えることによって、本実施形態に係るストレージシステム101は、アプリケーションレイヤの観点から見て、図4に示すような3層構造をとることが可能になる。すなわち、ストレージシステム101は、ウェブサービスクラスタ103の情報処理によりウェブサービスを提供するウェブサーバ106と、データベースマネジメントクラスタ104と分散ファイルシステムクラスタ105の情報処理によりデータベースサービスを提供するストレージ手段107とを含み、外部のクライアントデバイス200と接続する構成である。
図4に示すストレージ手段107は、図2と図3のようなインフラストラクチャレイヤの構成を備えることによって、スケールアウトすることが可能な極めて高いスケーラビリティを備える。また、ストレージ手段107は、大規模なデータを保存することが可能である。また、ストレージ手段107は、そのような大規模なデータを1行(1レコード)に納める設計をしても可用性が低下しない。
そこで、本実施形態では、大規模なデータになる可能性がある電話帳やスケジュール帳や日記帳を、図5に示すようなデータ構造の単一のファイルとして、ストレージ手段107に記憶させる。個人で使う電話帳などはたかだか数百件程度のエントリで済むことがほとんどであるが、企業の営業部などが共用する電話帳などでは、各エントリのそれぞれにアクセス権を細かく設定したりして拡張性を持たせると、大規模なデータになる可能性がある。
図5では、説明のための一例として電話帳を示している。図示のように、電話帳ファイルでは、「名前」「所属」「電話番号」「電子メールアドレス」などの情報が格納されるフィールドを、1又は複数備えて1つのレコードが形成される。このようなレコードが複数集まって電話帳ファイルが構成される。フィールドは列、レコードは行と表現されてもよい。
ウェブサーバ106は、この図5に示すようなデータ構造を持つファイルの中に格納されている情報に対して、そのファイルのURI(Uniform Resource Indicator)とともに、検索問い合わせのクエリを受信すると、図2及び図3を参照しながら説明したファイルそのものへのクエリと同様に処理し、ストレージ手段107から検索結果を得る。
例えば、ウェブサーバ106が、クライアントデバイス200から、電話帳URIとともに、電話帳に格納されている名前フィールドが「NAME1」であるレコードの電話番号フィールドの情報を返すようにクエリを受信すると、ウェブサーバ106は、該当URIの電話帳に検索問い合わせを行い、検索結果である「Telephone Number1」をXML形式に格納して、クライアントデバイス200に返す。
つまり、本実施形態においては、RESTでレコードが扱える。このことは、図5のようなファイル内に格納されている情報(例えば、ある人物の電話番号など)を取得する際に迅速なレスポンスが得られる結果をもたらす。図1ないし図3を参照して説明したような大規模分散ファイルシステムにおいては、データアクセスの際にオーバーヘッドが生じるなどの理由で、可用性の確保と引き替えにレスポンスが遅くなる場合がある。ところが、本実施形態においては、クライアントデバイス200におけるアプリケーションソフトウェア201がストレージ手段107に記憶されている電話帳にアクセスして電話帳の中に格納されている誰かの電話番号を検索して電話をかけるような場合、アプリケーションソフトウェア201が電話帳内の情報に直接アクセスできるインタフェースがRESTによって提供されている。したがって、迅速なレスポンスが得られる。
従来技術においては、電話帳は、RFC2425やRFC2426で規定されるvCard形式という標準規格フォーマットを使うことが一般的である。vCardの実装方式はさまざまであるが、1つのファイルに1件の連絡先を収めるようにするのが一般的な実装方式である。しかしながら、図1ないし図3を参照して説明したような大規模分散ファイルシステムにおいては、上述したような理由で1つのファイルに1件の連絡先を収めるような情報の格納形式ではレスポンスが悪い。他方で、レコードをアプリケーションソフトウェア201から扱えるインタフェースが用意されていないと、情報へのデータアクセスそのものが難しい。本実施形態によれば、可用性を確保しつつ電話帳内の情報などのデータについて迅速なレスポンスが得られる
上記では電話帳を例に挙げて説明したが、スケジュール帳や日記帳についても図5のようなデータ構造を持つ一つのファイルとして構成してもよい。この場合でも電話帳同様、良好なレスポンスが得られる。
100 クラウド
101 ストレージシステム
102 ロードバランサ
103 ウェブサービスクラスタ
104 データベースマネジメントクラスタ
105 分散ファイルシステムクラスタ
106 ウェブサーバ
107 ストレージ手段
200 クライアントデバイス
201 アプリケーションソフトウェア

Claims (3)

  1. ウェブサービスとして提供されるデータストレージサービスを提供するコンピュータシステムであって、
    複数台のコンピュータノードに冗長化されたストレージ手段と、
    外部アプリケーションから前記ウェブサービスで用いられるメソッドでクエリを受信すると、前記クエリを解析して前記ストレージ手段へ問い合わせを実行するウェブサーバと、
    を有し、
    前記ストレージ手段は、1又は複数の情報を格納するフィールドを1又は複数備えたレコードからなるデータ構造のファイルを記憶し、
    前記ウェブサーバは、前記ファイルのURIとともに、前記ファイル内の情報への検索問い合わせを受信すると、前記ファイル内の情報への問い合わせを実行し、実行結果をXMLで返す
    ことを特徴とするコンピュータシステム。
  2. 前記ファイルの内容が電話帳であることを特徴とする請求項1記載のコンピュータシステム。
  3. 前記ファイルの内容がスケジュール帳又は日記帳であることを特徴とする請求項1又は2記載のコンピュータシステム。
JP2012106070A 2012-05-07 2012-05-07 コンピュータシステム Pending JP2013235336A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012106070A JP2013235336A (ja) 2012-05-07 2012-05-07 コンピュータシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012106070A JP2013235336A (ja) 2012-05-07 2012-05-07 コンピュータシステム

Publications (1)

Publication Number Publication Date
JP2013235336A true JP2013235336A (ja) 2013-11-21

Family

ID=49761432

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012106070A Pending JP2013235336A (ja) 2012-05-07 2012-05-07 コンピュータシステム

Country Status (1)

Country Link
JP (1) JP2013235336A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018504038A (ja) * 2015-12-31 2018-02-08 ホアウェイ・テクノロジーズ・カンパニー・リミテッド ソフトウェア定義型データセンター、並びにそのためのサービスクラスタスケジューリング方法及びトラフィック監視方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018504038A (ja) * 2015-12-31 2018-02-08 ホアウェイ・テクノロジーズ・カンパニー・リミテッド ソフトウェア定義型データセンター、並びにそのためのサービスクラスタスケジューリング方法及びトラフィック監視方法

Similar Documents

Publication Publication Date Title
US10942726B2 (en) Providing an improved web user interface framework for building web applications
EP3605352B1 (en) Short-link parsing method, apparatus and device
US8930409B2 (en) System and method for supporting named operations in a distributed data grid
US8990243B2 (en) Determining data location in a distributed data store
AU2020220160A1 (en) System, method and computer-readable storage medium for customizable event-triggered computation at edge locations
US10394611B2 (en) Scaling computing clusters in a distributed computing system
US20170078433A1 (en) Customizable event-triggered computation at edge locations
US20140136713A1 (en) Server directed client originated search aggregator
US10021212B1 (en) Distributed file systems on content delivery networks
US20130215126A1 (en) Managing Font Distribution
US8407241B2 (en) Content mesh searching
EP2901302B1 (en) Session-server affinity for clients that lack session identifiers
US10860604B1 (en) Scalable tracking for database udpates according to a secondary index
US20140025711A1 (en) Unified file and object data storage
Aktas et al. XML metadata services
US20160269446A1 (en) Template representation of security resources
US11494392B2 (en) Tracking entity activity using computer generation of values for blockchain network entries
US20090234858A1 (en) Use Of A Single Service Application Instance For Multiple Data Center Subscribers
US20170078434A1 (en) Read-only data store replication to edge locations
US10452675B1 (en) Source detection and indexing for managed search
US10069938B1 (en) Returning identifiers in default query responses
JP2013235336A (ja) コンピュータシステム
CN114363403A (zh) 服务访问方法、***、计算机设备和存储介质
JP2013178660A (ja) コンピュータシステム及びデータストレージサービスの提供方法
US10887429B1 (en) Processing multi-protocol redirection links