Loading article…
ステージングイベント駆動型アーキテクチャ(SEDA )は、複雑なイベント駆動型アプリケーションをキューで接続された一連のステージに分解するソフトウェアアーキテクチャのアプローチを指します。 [1]スレッドベースの同時実行モデルに関連する高いオーバーヘッド(つまり、ロック、ロック解除、ロックのポーリング)を回避し、イベントとスレッドのスケジュールをアプリケーションロジックから切り離します。各イベントキューでアドミッションコントロールを実行することで、サービスの負荷を適切に調整でき、需要がサービス容量を超えた場合にリソースが過剰にコミットされるのを防ぎます。
SEDA は動的制御を採用し、実行時パラメータ (各ステージのスケジュール パラメータなど) を自動的に調整するとともに、負荷を管理します (適応型負荷制限の実行など)。また、サービスをステージのセットに分解することで、モジュール化とコードの再利用が可能になり、複雑なイベント駆動型アプリケーション用のデバッグ ツールの開発も可能になります。
参照
- イベント駆動型アーキテクチャ(EDA)
- サービス指向アーキテクチャ(SOA)
- パイプライン(コンピューティング)
参考文献
- ^ 「高度に並行で、条件の整ったインターネット サービスのためのアーキテクチャ」(PDF) 。カリフォルニア大学バークレー校。2012年 7 月 4 日にオリジナル(PDF)からアーカイブ。2023 年 3 月 2 日に取得。
アプリケーションを、明示的なキューを挟んだ一連のステージに分割することで、アプリケーション設計者は、個々のステージのサービス ロジックと並行性管理に集中し、後でそれらを「プラグイン」して完全なサービスにすることができます。キューは各ステージの実行を切り離すため、ステージを個別に開発できます。
文献
- ウェルシュ、マット、カラー、デビッド、ブリューワー、エリック (2001 年 12 月)、「SEDA: 条件が整ったスケーラブルなインターネット サービスのためのアーキテクチャ」、『SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principle』 (第 1 版)、Association for Computing Machinery、pp. 230–243、ISBN 978-1-58113-389-9
外部リンク
- Apache ServiceMix は、関連するメッセージ アーキテクチャ ( JMS、JCA、ストレート スルー フロー)と組み合わせた Java SEDA ラッパーを提供します。
- JCyclone: SEDA の Java オープンソース実装
- Mule ESBは別のオープンソースJava実装です
- SEDA: ハーバード大学のマット・ウェルシュ博士論文を解説した、高度に同時実行可能なサーバーアプリケーションのためのアーキテクチャ
- SEDA の回顧展、マット・ウェルシュ著、2010 年 7 月 26 日
