2019年4月22日月曜日

状態指向プログラミング


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

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

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

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

0 件のコメント:

コメントを投稿

注目の投稿:

差別するAIをチェックする方法

 先日上梓した 差別するAI だが、その差別の程度を検知することもまたAIで可能である、と考える。そして検知可能であれば是正(少なくとも勧告)はできるはずだ。 そこでまず、現実の判例を生成AIに分析させたところ、ある程度の定量化ができた。 最初に痴漢冤罪。 ① 一般的...

人気の投稿: