SEDA: An Architecture for Highly Concurrent Server Applications

kazamaさんのblogを読んで、Apache Harmonyメーリングリストで、VMのスレッドモデルに関する議論がおこなわれているのを知った。ぼんやりと、そのスレッドを読んでいると、1:1スレッドモデルを使ったOSではスケールしないので、SEDAのような新しいアーキテクチャを考える必要があったというメールが目にとまった。
SEDAは、staged event-driven architectureの略で、処理をいくつかのステージにわけて、ステージ毎のキューを使うイベントドリブンアーキテクチャである。このようなアーキテクチャを使うことにより、高い並行性やスケーラビリティ、モジュラリティ、アプリケーションによるイベントのプライオリティ決定が可能となる。SEDAを提案しているMark Welshは、NBIO(JDK 1.3用のノンブロッキングI/Oライブラリ)の作者であり、JSR#051(java.nioパッケージ)のexpert groupの一員でもある。SEDAはプロジェクトとしては終わっており、JCyclone projectが後を引き継いでいるようだ