「最近」x「使った」x「あれ」

社長:最近使ったあれに対する高速アクセスとか検索手段を一元化したいですね。

開発:「あれ」というのは。

社長:まあ、ファイルやウェブページは当然ですけど、ウィンドウとかタブとか、ページの中の地点とか。まあオブジェクトというかリソースというか。あらゆるもの。神羅万象ですね。

開発:となると、揮発性のものも含めて全てのオブジェクトや現象にユニークIDをふる、サブジェクト側の関与方法にタイムスタンプを付けて履歴として保存する。そういう感じですかね。

社長:そう、履歴、ログ、ジャーナル、いわゆる5W1Hの記録。基本はタイムスタンプとメソッドと、サブジェクトとオブジェクトですね。

社長:あと、オブジェクト側が勝手に変わったというのもありますね。まあ因果をたどればどこかのサブジェクト側の関与に行き当たるでしょうけど。そのマシンを購入した、とか。

開発:因果のネットワーク化はその場では難しいでしょう。まずは事象を記録する。原理的には、サブジェクト側は、キーボード入力列と、マウスのポインタ位置、ディスプレイの録画をずっととっておけばよさそうです。足すとしたら血圧・体温・気温とか。気分とか(笑)

基盤:アップルウォッチとか?ディスプレイの垂れ流し録画はHDMIに市販のレコーダを挟むのも手かも。あるいはドラレコ。

社長:まあ、自分をカメラで撮影してデスクトップの隅に表示しとくとかかな。それで気分が悪くなるかも(笑)

社長:オブジェクト側は、まあOSの動作、特にファイルやウィンドウの操作プリミティブの履歴をとっておけば、かなりカバーできそうな気がする。アプリケーション内の状態の変化は個別アプリでやらないといけないけど。まあこれは既に伝統的に、個別にやられている。

開発:実現性を考えると、課題はデータ量と処理用ですね。データ量的には、パソコン内の神羅万象を記録するとしても1Gbpsくらいですかね。不可能ではない数字。記録方法としては、流し撮りでしょうね。ドライブレコーダ的な。

基盤:実際、ディスプレイはドラレコでよさそうな気もしますね。ただちょっと、コンパクト化するために割高になってるかも?

社長:とりあえず撮っといて、暇な時間にフィルターしたり構造化するんですかね。暇がなかったらざっくりとしか拾えず消えちゃいました残念みたいな。

基盤:ユーザ側で許容できるリソースとしては、ディスク10GB、バンド幅で100Mbpsくらいですかね。CPUも1GHzは欲しいけど、最近みんなマルチコアだからたぶん無問題。ヒストリ処理専用にラズパイとか。

開発:ありものを使うとしたら、そもそもあるスクリーン録画機能を動かしっぱなしにする。ファイル側をそういう特殊なファイルにしてやる、って感じですかね。Unixの穴あきファイルで、前のほうとか中間をトランケートというか解放する機能は実装されたんでしょうかね?50年前からBUGSに記載されたままかな。

社長:それがあればユーザレベルで実装できますね。見た目ヘキサバイトだけど実態はギガバイトみたいな感じですね。64ビットOSだからもうやりたい放題。きっとヘキサバイトの仮想メモリとか単一ファイルなんてのもできるよね。そしたらソフトの作り方もがらりと変わる。てこれ、前世紀から考えられてたことだけど。VMの仮想ディスクのファイルとかどう出来てるんだろう?

基盤:それを知らない cp とか tar とかしたら大変なことになりますけどね。rsync ならまだまし。まあ実装上は、あらかじめフィルターするというのが現実的だとは思いますが。おそらく5〜6桁データも処理も小さくなりますね。

社長:それはサブジェクトたるユーザ側にも大きく依存するしね。なんにしても、個別場当たり的な解決法じゃなくて、いったん大きな風呂敷に神羅万象をくるんで一元的に考えて、そこから個別最適化を考えるのが良いと思うんですよね。個別最適なソリューションを色々考えてきましたが、それはそれで必要ですが、ちょっと飽きたし、やっぱり一網打尽にしたい気分なんです。根っこに手を突っ込みたい。

開発:なんにしろ、後で検索とか分析とかする時に、どんな分解能というか、グラニュラリティが求められているかで、戦略も変わると思います。ボトムアップに、ユーザが求めているレベルの情報を再構成するのは、コストが高いというか、現実的には無理という感じもします。まあ、誰が求めている情報を構築するかなんですが、うちはまずエンドユーザなのかなと思いますし。

基盤:現状利用可能なインタフェースを使うことも必須です。やはりフロントエンド側の入り口は当面、WebDavな気がします。ローレベルで使用するには自由度が非常に低い。実装上、性能面では穴あきファイルですかね。rsync がそれに対応してるのかも気になります。

社長:というか、ユーザとしてデータ読んだだけでは、nil なのかゼロなのか、区別はつかないんだよね…

開発:まあそれは、物理メモリについても言えますね。あっちはまあ、制御できますけど。存在しない実体へのアクセスにどう答えるかという。

社長:論理的にはトランスペアレントでいいっちゃあいいんだけど、out of band で知りたい人には知れるように出来てないと。マスクできる割り込み的な。

開発:せっかく履歴をとるので、undo というかリカバリにも使えると良いですが。

社長:いや私はこないだまで、100マイクロ秒前の世界に10マイクロ秒以内に戻るというようなシステムをやってましてね…

営業:よくわかりませんが、製品化がどんどん遠のいている感じはします。

--
2020-0528 SatoxITS

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です