JP2013178660A - コンピュータシステム及びデータストレージサービスの提供方法 - Google Patents

コンピュータシステム及びデータストレージサービスの提供方法 Download PDF

Info

Publication number
JP2013178660A
JP2013178660A JP2012042165A JP2012042165A JP2013178660A JP 2013178660 A JP2013178660 A JP 2013178660A JP 2012042165 A JP2012042165 A JP 2012042165A JP 2012042165 A JP2012042165 A JP 2012042165A JP 2013178660 A JP2013178660 A JP 2013178660A
Authority
JP
Japan
Prior art keywords
key
value
storage
query
file
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
JP2012042165A
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 JP2012042165A priority Critical patent/JP2013178660A/ja
Publication of JP2013178660A publication Critical patent/JP2013178660A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

【課題】利用しやすく、利用するためのシステムやクライアント側のアプリケーションソフトウェアの開発が容易なデータストレージサービスを提供する。
【解決手段】ストレージ107は、一意の値であるキーに対応するバリューを前記キーとともに、キーとバリューの対として複数記憶し、前記キーとバリューの対は、当該バリュー自体に、他の前記キーとバリューの対を1又は複数有することが可能である。ウェブサーバ106は、あるファイルについて当該ファイルの階層的な格納情報とともにクエリを受信すると、前記格納情報に基づいて、前記ストレージ手段が記憶している当該ファイルを含むバリューに対応するキーを特定する。
【選択図】図4

Description

本発明は、コンピュータシステム及びデータストレージサービスの提供方法に関し、特に、ウェブサービスとしてストレージへのアクセスを提供するように構成されるデータストレージサービスに関する。
近時、クラウドコンピューティングという概念が提案されており、その基幹技術の一つとして、クラウド内のアプリケーションプログラム同士のインターフェイス、或いは、クラウド内のアプリケーションプログラムとクライアントデバイス上で動作するアプリケーションプログラムとのインターフェイスが注目されている。
あるコンピュータ上のプログラムが、他のコンピュータ上のプログラムを実行させるメカニズムとしては、従来、RPC(リモートプロシージャコール)プロトコルが広く用いられている。しかしながら、パーソナルコンピュータやモバイルデバイス(携帯電話、パッド型のタブレットPCを含む)といった多種多様なデバイスがクライアントデバイスとして利用される可能性があるクラウドコンピューティングにおいては、RPCプロトコルに基づいたシステムは、多様なデバイスに対応するための開発が容易ではない。
特許文献1には、このようなコンピュータシステム及び実行中のアプリケーション同士の対話を容易にするストレージサービスのインターフェイスとして、Representational State Transfer(REST)形式のウェブサービスアーキテクチャで実装したインターフェイスを利用することが開示されている(例えば、段落0014等参照)。
特開2009−522659号公報
しかしながら、特許文献1に記載のRESTベースインターフェイスにおいては、ウェブサービスのインターフェイスのルートに、アクセスポリシーを同じくするオブジェクトのひとまとまりが「バケット」として並ぶ構造になる(例えば、段落0012、00170018参照)。このような構造では、階層構造を持つデータを格納する際に工夫が必要である。
特許文献1の段落0024には、階層的構造について言及がある。バケットに他のバケットを階層的に包含しなくてもよい一方で、ウェブサービス呼び出し要求に用いるキーに階層的構造を暗示させる旨の記載がある。このような低いレイヤー寄りの実装は、データストレージサービスの利用者にとって利用しにくく、手軽な利用を妨げる。利用するためのシステムやクライアント側のアプリケーションソフトウェアの開発に手間がかかる。
本発明は、上記実情に鑑みてなされたものであって、利用しやすく、利用するためのシステムやクライアント側のアプリケーションソフトウェアの開発が容易なデータストレージサービスを提供することを目的とする。
上記目的を達成するために本発明は、第1の態様として、ウェブサービスとして提供されるデータストレージサービスを提供するコンピュータシステムであって、複数台のコンピュータノードに冗長化されたストレージ手段と、外部アプリケーションから前記ウェブサービスで用いられるメソッドでクエリを受信すると、前記クエリを解析して前記ストレージ手段へ問い合わせを実行するウェブサーバと、を有し、前記ストレージ手段は、一意の値であるキーに対応するバリューを前記キーとともに、キーとバリューの対として複数記憶し、前記キーとバリューの対は、当該バリュー自体に、他の前記キーとバリューの対を1又は複数有することが可能であり、前記ウェブサーバは、あるファイルについて当該ファイルの階層的な格納情報とともにクエリを受信すると、前記格納情報に基づいて、前記ストレージ手段が記憶している当該ファイルを含むバリューに対応するキーを特定することを特徴とするコンピュータシステムを提供する。
また、上記目的を達成するために本発明は、第2の態様として、コンピュータシステムを用いてウェブサービスとして提供されるデータストレージサービスを提供する方法であって、ストレージ手段を、複数台のコンピュータノードに冗長化させ、前記ストレージ手段に、一意の値であるキーに対応するバリューを前記キーとともに、キーとバリューの対として複数記憶させ、前記キーとバリューの対が、当該バリュー自体に他の前記キーとバリューの対を1又は複数有することが可能であるように構成し、外部アプリケーションから前記ウェブサービスで用いられるメソッドでクエリを受信し、前記クエリを解析し、前記クエリが、あるファイルについて当該ファイルの階層的な格納情報とともになされたものである場合、前記格納情報に基づいて、前記ストレージ手段が記憶している当該ファイルを含むバリューに対応するキーを特定し、前記ストレージ手段へ問い合わせを実行することを特徴とするデータストレージサービスの提供方法を提供する。
本発明によれば、利用しやすく、利用するためのシステムやクライアント側のアプリケーションソフトウェアの開発が容易なデータストレージサービスを提供することが可能となる。
本発明の実施形態のネットワーク全体を例示する図である。 図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に示すようなデータ構造でデータを格納する。上記のように、本実施形態では大規模なデータを1レコードに納めることができるので、1レコードの基本構造は、キーとバリューの対とする(図5(a))。このキーとバリューの対を格納していき、KVS(Key Value Store)を構築する。
ここで、キーはストレージ手段107において一意な値とする。また、バリューには、このストレージ手段107に格納するべきファイルの実体と、そのファイルのファイル情報とを少なくとも含む。
ファイルの実体は、例えば、画像ファイルや動画ファイルなどのファイルそのものである。ファイル情報は、例えば、ファイル名、ファイルサイズ、所有者、アクセス権限を有するものの情報などである。
ここで、ファイルの実体には、他のキーとバリューの対を含むことができる(図5(b))。そうすると、大規模なデータ量を持つキーとバリューの対が作成される可能性がある一方で、階層構造がきわめて容易に表現できる。ところが、上述したように、本実施形態では大規模なデータを1レコードに納めることができるので、大規模なデータ量を持つキーとバリューの対が作成される可能性があることにデメリットがない。
ウェブサービスクラスタ103の情報処理によりウェブサービスを提供するウェブサーバ106は、階層的な格納情報を含むクエリをクライアントデバイス200から受信すると、当該クエリを解析して、階層的な格納情報を取り出す。そして、その階層的な格納情報に基づいてファイルの格納されている場所についての階層構造を把握する。
一方で、ストレージ手段107には、キーとバリューの対を入れ子に持つという方式で、把握された階層構造がそのままストレージ手段107上に構築されている。したがって、ウェブサーバ106は把握した階層構造におけるファイルの格納場所が容易に特定できるため、クエリが取得やアクセスを所望するファイルに対応するキーの特定が容易にできる。
また、本実施形態に係るストレージ手段107は、上述したような特徴を持つ構造であるため、データストレージサービスに利用される場合、利用しやすく、利用するためのシステムやクライアント側のアプリケーションソフトウェアの開発が容易である。したがって、本実施形態によれば、利用しやすく、利用するためのシステムやクライアント側のアプリケーションソフトウェアの開発が容易なデータストレージサービスを提供することができる。
また、本実施形態に係るストレージシステム101は、図3の認証フェーズに示したような認証の仕組みが存在する。したがって、セキュリティ面に考慮したデータベース設計が容易に可能となる。
また、本実施形態に係るアプリケーションソフトウェア201は、各OSに対応する、いわゆるネイティブアプリケーションである。したがって、例えば、各ウェブサービスコールを媒介するXMLを独自のアプリケーションで処理することができるため、クライアント側での自由度が高めることができるようになる。
100 クラウド
101 ストレージシステム
102 ロードバランサ
103 ウェブサービスクラスタ
104 データベースマネジメントクラスタ
105 分散ファイルシステムクラスタ
106 ウェブサーバ
107 ストレージ手段
200 クライアントデバイス
201 アプリケーションソフトウェア

Claims (5)

  1. ウェブサービスとして提供されるデータストレージサービスを提供するコンピュータシステムであって、
    複数台のコンピュータノードに冗長化されたストレージ手段と、
    外部アプリケーションから前記ウェブサービスで用いられるメソッドでクエリを受信すると、前記クエリを解析して前記ストレージ手段へ問い合わせを実行するウェブサーバと、
    を有し、
    前記ストレージ手段は、一意の値であるキーに対応するバリューを前記キーとともに、キーとバリューの対として複数記憶し、
    前記キーとバリューの対は、当該バリュー自体に、他の前記キーとバリューの対を1又は複数有することが可能であり、
    前記ウェブサーバは、あるファイルについて当該ファイルの階層的な格納情報とともにクエリを受信すると、前記格納情報に基づいて、前記ストレージ手段が記憶している当該ファイルを含むバリューに対応するキーを特定する
    ことを特徴とするコンピュータシステム。
  2. 前記クエリは、認証情報を含み、
    前記バリューは、記憶内容の実体の他に、当該記憶内容へのアクセス権限の情報を含む
    ことを特徴とする請求項1記載のコンピュータシステム。
  3. 前記認証情報は、前記外部アプリケーションを操作するユーザの認証情報と、前記外部アプリケーションが搭載されている端末装置の認証情報と、を含む
    ことを特徴とする請求項2記載のコンピュータシステム。
  4. 前記外部アプリケーションは、当該外部アプリケーションが搭載されている端末装置のオペレーションシステムのネイティブアプリケーションであることを特徴とする請求項1から3のいずれか1項記載のコンピュータシステム。
  5. コンピュータシステムを用いてウェブサービスとして提供されるデータストレージサービスを提供する方法であって、
    ストレージ手段を、複数台のコンピュータノードに冗長化させ、
    前記ストレージ手段に、一意の値であるキーに対応するバリューを前記キーとともに、キーとバリューの対として複数記憶させ、
    前記キーとバリューの対が、当該バリュー自体に他の前記キーとバリューの対を1又は複数有することが可能であるように構成し、
    外部アプリケーションから前記ウェブサービスで用いられるメソッドでクエリを受信し、
    前記クエリを解析し、
    前記クエリが、あるファイルについて当該ファイルの階層的な格納情報とともになされたものである場合、前記格納情報に基づいて、前記ストレージ手段が記憶している当該ファイルを含むバリューに対応するキーを特定し、
    前記ストレージ手段へ問い合わせを実行する
    ことを特徴とするデータストレージサービスの提供方法。
JP2012042165A 2012-02-28 2012-02-28 コンピュータシステム及びデータストレージサービスの提供方法 Pending JP2013178660A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012042165A JP2013178660A (ja) 2012-02-28 2012-02-28 コンピュータシステム及びデータストレージサービスの提供方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012042165A JP2013178660A (ja) 2012-02-28 2012-02-28 コンピュータシステム及びデータストレージサービスの提供方法

Publications (1)

Publication Number Publication Date
JP2013178660A true JP2013178660A (ja) 2013-09-09

Family

ID=49270236

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012042165A Pending JP2013178660A (ja) 2012-02-28 2012-02-28 コンピュータシステム及びデータストレージサービスの提供方法

Country Status (1)

Country Link
JP (1) JP2013178660A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016218498A (ja) * 2015-05-14 2016-12-22 ヤフー株式会社 情報処理装置、プログラム、情報処理システム及びデータ管理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016218498A (ja) * 2015-05-14 2016-12-22 ヤフー株式会社 情報処理装置、プログラム、情報処理システム及びデータ管理方法

Similar Documents

Publication Publication Date Title
Van Steen et al. A brief introduction to distributed systems
US20200301887A1 (en) Sync as a service for cloud-based applications
US8930409B2 (en) System and method for supporting named operations in a distributed data grid
US10498777B2 (en) Real-time push notifications for cloud-based applications
US20180260412A1 (en) Unified file and object data storage
US8683545B2 (en) Federating policies from multiple policy providers
US20130215126A1 (en) Managing Font Distribution
CA2885869C (en) Session-server affinity for clients that lack session identifiers
US9350738B2 (en) Template representation of security resources
Laoui et al. Web services as applications' integration tool: QikProp case study
US11522974B2 (en) Restful method and apparatus to import content by geo-aware content caching service
JP7575845B2 (ja) マルチ・テナント型サーバレス環境のための多層キャッシュ・メッシュ・システム
US11695840B2 (en) Dynamically routing code for executing
Aktas et al. XML metadata services
CN112804289A (zh) 一种资源同步方法、装置、设备及存储介质
Cristea et al. Large-Scale Distributed Computing and Applications: Models and Trends: Models and Trends
CN113840013B (zh) 一种分级管理的文档系统
US11663058B1 (en) Preemptive filtering of events of an event bus with a deterministic filter
JP2013178660A (ja) コンピュータシステム及びデータストレージサービスの提供方法
Han et al. Cloud-based active content collaboration platform using multimedia processing
Chandrasekaran Mobile computing with cloud
Fernandes et al. A new framework to locate, connect and share mobile web services through intelligence techniques
JP2013235336A (ja) コンピュータシステム
Song et al. Web based application program management framework in multi-device environments for personal cloud computing
Alaa El Din Talha A Semantic Based Annotation Technique for the Internet of Things