2019年4月22日月曜日

状態指向プログラミング


今のシステムは相当に複雑である。しかしその中身は、DBやミドルの仕様に引っ張られているとか、可用性や負荷対策とか、セキュリティとか、本来やりたいこととは違うところでの苦労だ。現在、巨大なシステムが全てSIerに任されている原因の一端はここにあり、システムのモジュール化の仕方がアーキテクチャ寄りになり過ぎているのが原因だと思う。

システムは、もっと「状態指向」に書くべきである。つまり、あるべき状態をまず記述し、そこからはみ出た時にはどう直すか、そのためにはどんな動きをするか、更にはそのスピードや故障対応等のいわゆる非機能要件、最後にインプリメンテーション。こういう階層で書くべきなのだ。また、この階層は、できるだけ分離して書くべきだ。

この背後には、高度な負荷分散・可用性維持・セキュリティ・状態監視システムを含んだ並列実行環境が必要だが、逆に言えばこれはシステムによって異なることはなく、SIはその規模のみに依存し、知識は共通である。並列実行環境のSIer・メンテナーは上位システムには感知しないし、もし不具合が起きてもシステムに依存せず代替機種を用意して移植できる。

この環境に一番近いのが、AWS Lambdaなどのようなサーバーレスコンピューティングだ。しかしまだ足りないところがあって、Lambdaは関数ベースであり状態指向ではないこと、非機能要件の記述ができないところなどがある。ここら辺は計算機言語学に属するのだろうが、そういう体系をAWSが作れるのかは注目するところだ。

0 件のコメント:

コメントを投稿

注目の投稿:

富士山噴火への備え・再考

 以前にも https://spockshightech.blogspot.com/2017/10/blog-post_2.html という投稿をしたことがあるのだが、もう少し状況を詳しく知ることができないか、調べてみた。 首都圏の対策としては、『首都圏における広域降灰対策...

人気の投稿: