随筆:「シャドウ」

by ご近所のきよきよ


 

 このごろ何か作ろうとしてもメモリ容量というものが気になってしまいます。未夢で解析結果を永続化していなかったという失敗をしましたが、それに気が付いてから世の中って結構そういうことで、大きなシステムが案出されているものだと目にとまるようにもなりました。

 「エッセンシャルWF:Windows Workflow Foundation 新丈径訳 翔泳社刊」を興味深く読ませて頂きました。これは結局スレッドをどう永続化していくか、それでプログラミングをいかに簡潔に書けるようにするかというのがテーマなシステムなのです。とりあえず使っていないオブジェクトをいかに永続化してインコアメモリの消耗を少なくしていくか・・・考え所ということです。そのために一つのフレームワークが提示されているのです。未夢なんかも大事な機構として実現しなくては成りませんから。分厚い書物になるほどの議論の余地があるというものです。

 WFについての私の意見としては、新しくワークフレームを起こすことなく、Java VMならばスレッドを永続化する機構を設ける事がベストな解とすべしというのですがどうでしょうか。ワークフレームにするとユーザーの負担が増えると思うのです。ユーザーが知らないところで永続化して、使用していないオブジェクトはパッシブ化してしまう。ガーベッジコレクションみたいな機能ですね、そんなことはVMがやるべしというのが私の意見です。

 そうすると「new」演算子はすべからくファクトリーパターンを生成することになるわけです。これのガーベッジコレクションをする、永続化はする・・・というようなことですね。


 私の提唱した「オートノミックプログラミング」は次のような言語システムです。

の3つで、プログラムを構成するのです。(1)と(2)はXML(RDF)で記述する。コードはJavaでしょうか。

 オントロジーを導入して、システムがプログラマーの世界を解析して、プログラマーの意図を理解できるようにするのがオートノミックの望みです。プログラムはどのシステムでも通用するようにするのです。言語が違う場合もJavaからC#に自動変換して動かす事も、(1)、(2)があれば出来るでしょう。ミグレーションが自在に行えるようにすることも、オートノミックの狙いです。

 で、このオートノミック機構はCOMとかCORBA,SOAPとかを拡張したものですね。このごろ本を読んでいて気が付きました。ネットワークとか、他のシステムを利用するには・・・という視点でなく、プログラミングの基本として、COM、CORBAを使っていきましょうと・・・。

 あと、状況により呼び出して欲しい機能を定義して、VMからの呼び出しを待つような機能を持てば、「WF」で提唱されていたこともシームレスに実現出来るわけで、オートノミックプログラミングは研究の価値があるのではないでしょうか。

 このように作られたプログラムは独立性がありますから、VM側の機能として永続化処理を実現し、メモリを倹約していくべきでしょう。それができることは「WF」に記述の通りです。そして、バッチ処理も自然に実現できます。



 

おわり