スペースベース アーキテクチャ( SBA ) は、さまざまなコンポーネントが1 つ以上の共有スペースを介してタプルまたはエントリを交換することで相互に対話する分散コンピューティング システムへのアプローチです。これは、さまざまなコンポーネントがメッセージ ブローカーを介してメッセージを交換することで相互に対話する、より一般的なメッセージ キューイング サービスアプローチとは対照的です。ある意味では、どちらのアプローチも中央エージェントとメッセージを交換しますが、メッセージの交換方法は非常に異なります。
例え話としては、メッセージ ブローカーは学術会議のようなもので、各発表者がステージを持ち、予定された順序で発表します。一方、タプル スペースは非会議のようなもので、参加者全員が共通のホワイトボードに同時に書き込み、それを全員が同時に見ることができます。
- タプルスペース
- 各スペースは、コンポーネントが対話することを選択できるメッセージブローカーシステムの「チャネル」のようなものです。
- コンポーネントはスペースに「タプル」または「エントリ」を書き込むことができ、他のコンポーネントはスペースからエントリ/タプルを読み取ることができますが、メッセージブローカーよりも強力なメカニズムを使用します。
- スペースへのエントリの書き込みは、通常、メッセージブローカーのように順序付けられませんが、必要に応じて順序付けられる場合があります。
- このアプローチを使用してアプリケーションを設計することは、ほとんどの人にとって直感的ではなく、理解して活用するためにより多くの認知負荷がかかる可能性があります。
- メッセージブローカー
- 各ブローカーは通常、コンポーネントが対話するために選択できる複数の「チャネル」をサポートします。
- コンポーネントはチャネルに「メッセージ」を書き込み、他のコンポーネントはチャネルからメッセージを読み取ります。
- チャネルへのメッセージの書き込みは一般的に順序どおりに行われ、メッセージは通常同じ順序で読み上げられます。
- このアプローチを使用してアプリケーションを設計することは、ほとんどの人にとってより直感的であり、 NoSQLデータベースがSQLよりも直感的であるのと似ています。
両方のアプローチの主な目標は、構成、特に誰が何を行うかという知識の共有を最小限に抑え、可用性、回復力、スケーラビリティなどを向上させる 疎結合システムを作成することです。
より具体的には、SBA は、タプル スペースパラダイムを使用して、ステートフルで高性能なアプリケーションの線形スケーラビリティを実現するための分散コンピューティングアーキテクチャです。これは、リプレゼンテーション状態転送(REST)、サービス指向アーキテクチャ(SOA)、イベント駆動型アーキテクチャ(EDA)の原則の多く、およびグリッド コンピューティングの要素に従います。スペース ベースのアーキテクチャでは、アプリケーションは処理ユニット (PU) と呼ばれる一連の自己完結型ユニットから構築されます。これらのユニットは互いに独立しているため、ユニットを追加することでアプリケーションを拡張できます。SBA モデルは、Google、Amazon.com、その他の有名企業で使用されているシェアード ナッシング アーキテクチャ (SN) など、アプリケーションのスケーラビリティの課題に対処するのに効果的であることが証明されている他のパターンと密接に関連しています。このモデルは、スケーラブルな電子証券取引アプリケーションの実装のために、証券業界の多くの企業でも適用されています。
歴史
スペースベース アーキテクチャ (SBA) は、もともと 1997 年から 1998 年にかけて Microsoft で発明され、開発されました。Microsoft 社内では、Youkon Distributed Caching プラットフォーム (YDC) として知られていました。これをベースにした最初の大規模な Web プロジェクトは、MSN Live Search (1999 年 9 月にリリース) と、その後の MSN 顧客マーケティング データ ストア (すべての MSN サイトで共有されるマルチテラバイトのインメモリ DB) であり、1990 年代後半から 2000 年代前半にリリースされた他の多くの MSN サイトにも採用されました。米国特許 6,453,404 および 6,449,695: [1] [2] およびこれらをベースにしたその他の特許: [3]
宇宙建築の構成要素
宇宙ベースのアーキテクチャの原則に基づいて構築されたアプリケーションには、通常、次のコンポーネントが含まれます。
- 処理装置
- スケーラビリティとフェイルオーバーの単位。通常、処理ユニットは、 Spring Frameworkによって提供されるようなPOJO (Plain Old Java Object) コンテナーから構築されます。
- 仮想ミドルウェア
- ミドルウェアスタック全体で使用される共通のランタイムおよびクラスタリング モデル。一般的な SBA アーキテクチャのコア ミドルウェア コンポーネントは次のとおりです。
- POJO駆動型サービスモデル
- 標準的な Java 実装を疎結合の分散サービスに変換できる軽量サービス モデルです。このモデルは、同じ処理ユニット内で実行されるサービスとのやり取りに最適です。
- SLA主導のコンテナ
- SLA 駆動型コンテナーを使用すると、サービス レベル アグリーメントに基づいて、マシンの動的なプールにアプリケーションを展開できます。SLA 定義には、アプリケーションのスケーリングおよびフェイルオーバー ポリシー、およびその他のポリシーに準拠するために実行する必要があるインスタンスの数が含まれます。
参照
参考文献
- ^ 米国特許: 6453404
- ^ 米国特許: 6449695
- ^ 「特許データベース検索結果: 米国特許コレクションの Bereznyi」。
文学
技術記事/論文:
- Xu, Dezheng、Xiaoying Bai、Guilan Dai (2006)。「MAST フレームワークのテスト エージェント用のタプル スペース ベースの調整アーキテクチャ」(PDF)。2006年第 2 回 IEEE国際サービス指向システム エンジニアリング シンポジウム (SOSE'06)。清華大学、中国。pp. 57– 66。doi :10.1109/ SOSE.2006.6。ISBN 0-7695-2726-4. S2CID 19977346。
- Engelhardtsen、Fritjof Boger、Tommy Gagnes (2002)。「JavaSpaces を使用して適応型分散システムを作成する」(PDF)。Agder University College、ノルウェー。
