Develop with pleasure!

福岡でCloudとかBlockchainとか。

NetKernel

NetKernelでJavaの並行性を越える (1/6):CodeZine

こちらの記事で初めて耳にした「NetKernel」。(MicroKernelとかはDIコンテナをベースに組み込んだGeronimoのアーキテクチャ等、良く耳にすることはあるけれど。)

あまりググっても日本語記事はヒットしない。InfoQの概論記事があるくらい。
NetKernel概論
こちらはちょっと訳が分かりにくい…。

NetKernelというのは、HTTPリクエスト(転送プロトコルはHTTPに限らないみたいだけど)を受け、そのURIを解釈し、URIにマッピングされたプログラムを実行するようになってる(RESTっぽい)。ServletのURLマッピングに良く似てる。

今までJVMのマルチスレッドアプリケーションが1つのマシン内で複数のスレッドを立ち上げ、そのスレッドを効率的に分散処理に利用することで処理性能を上げようとする取り組みを充実させてきた。JVMが1つのマシン(リソース)内で処理対象のスレッドをスケールアウトさせるアプローチなのに対し、NetKernelでは、URIにより物理的に複数のリソース(マシン)へと処理をスケールアウトさせ処理を分担させるアプローチなんだと思う。

まぁ、ハードウェアスペックの進化やJVMのパフォーマンス向上を考えると既存のスレッドを利用した処理性能の向上と同じ土台でNetKernelを利用するということはあまり現実的では無く、どちらかというとWebServiceの充実など外部サービスのマッシュアップにより新しいサービスを創出するといったアプローチが主体となるようなシーンでの処理性能向上のスケールアウトの方法として注目する方が良いように思う。


でも、リソースをアーキテクチャのベースに置くというのは面白いアプローチだと思う。