[P2P]P2P WEBその2~アプリケーションの流通
先日P2P WEBについて自分の定義を書いたのだが、IKeJI様からコメントをもらい振り返ってみると、自分の定義がややシステム寄りの考え方になってしまったと思っている。ただ、このとき述べたかったのはP2P WEBだと通常のクライアント=サーバモデルにおけるWEBサーバとは違ったシステムモデルができるかもしれないことを強調したかった事が挙げられる。
何を言いたいのかと言うと、静的なWEBページを表示させる技術はクライアント=サーバモデル(以下CSと略)のWEBでもP2P WEBでも同じ事だ。P2P WEBではHTMLなどをオーバレイネットワークで流通すればよい。
ところが、動的なページはそうはいかない。CS WEBではCGIなどのモジュールを追加すればよい。しかしP2P WEBではそもそもCGIなどのモジュールを流通させるという発想が今までなかったのだ。
そこで、先日言いたかったのはCGIなどのモジュールをオーバレイネットワークで流通させると面白い事ができるかもしれない、ということである。つまりHTMLファイルでなく、モジュールを流通してしまおうと言う事だ。
モジュールが流通される方法の一つを書いておこう。
1.モジュール開発者は作成したモジュールにおいて電子署名をつけておく。そして、自分のノードにモジュールを埋め込む。電子署名はPKI的でなくPGP的な方が良いだろう。
(※モジュールに電子署名をつけることは、マイクロソフトがパッチや関連メーカのデバイスことでも知られている。ようは、変なモジュールを流通させてノードが不安定になることを避ける事を意味している。また、ソースコードを電子署名する研究も進んでいる。)
2.オーバレイネットワークで(仮想的に)隣接しているノードはそのモジュールの情報を交換する。そして他のノードに新たなモジュールがある場合にはそれをインストールする。その際にはモジュールの電子署名を確認し、正当性をチェックする。(ただし、モジュールをインストールするかどうかはユーザが決定できる。)または、ノードAがあって、Node_ID=hash(name_A)というノードBがあれば、ノードAのモジュールをノードBとノードBが落ちた場合のためにその付近のハッシュ空間のノードに流通させると言うモデルもある。
3.基本的にはモジュールはオーバレイネットワークで拡散し、一定時間後は全てのノードがそのモジュールを搭載し、新たな機能を提供する。(※開発者がモジュールの拡散範囲を限定しない場合)
このような方式は特にP2Pアプリあるいはミドルウェアが機能追加あるいはバグフィックスをするためにパッチを宛てる時に有効だ。また、自分で作ったモジュールはもちろん自ノードにインストールできるが、開発者用の秘密鍵がない限り、流通しない。そのため、自分欲しい機能に特化したノードを自ノードに限り作ることができる。
これまではP2Pとファイルの流通に注目が集まっていたが、このような「機能」すなわちアプリケーションの流通を考えると今まで想定してなかった面白い世界が広がってくると思えてならない。
| 固定リンク
「パソコン・インターネット」カテゴリの記事
- iPhoneのスクリーンショットを自動的にメールに投稿するテクニック[IFTTT](2014.11.23)
- WebRTC研究会開催のお知らせ(2014年12月開催予定)(2014.08.24)
- 「Gunosyオフィスツアー」を振り返る〜世界一のニュースアプリを目指すために(2014.06.01)
- Gunosyオフィスツアーの参加者募集を開始しました!(5月9日[金]開催)(2014.04.29)
- 第4回Twitter研究会(5/18[土])の講演スケジュール(2013.05.10)
この記事へのコメントは終了しました。
コメント
Fuktommyさん、コメントありがとうございました。
>書き換えられたファイルがCGIによって正しく書き換えら
>れたのか、何か不正な行いがあったのかを判断する方法は
>ありますか?
これは難しいですね。私の場合、少なくとも流通するモジュールは電子認証を使い、開発者が認定するモジュールということにしてこの問題をクリヤしようと思っていました。ただ、自己責任でCGIを入れた場合、ファイルが改ざんして流通したらどうするの?(特に分散ハッシュはファイルを複製する)というところまでは考えが及びませんでした。
しかしながら、モジュール間あるいはモジュール、ミドルウェア間の通信を認証する事はできなくはなさそうです。。。(例えばSOAPの通信における電子認証なんかが応用できるかもしれません。もっとも処理スピードは落ちますが。)
ファイル管理はP2Pミドルウェアに全て任せ、その上位のアプリケーションは自分たちで作れるとか。(認証しながら。)
モジュールの機能をどこまで持たせるかと言うのはなかなか難しい議論かもしれません。
(例えば開発者なら全ての機能、開発協力者ならコア以外の範囲、通常のユーザはさらに小さな範囲など)
投稿: Tomo | 2004.06.20 10:49
CGIのようなものがファイルを書き換える機能を持っていたとします。
書き換えられたファイルがCGIによって正しく書き換えられたのか、
何か不正な行いがあったのかを判断する方法はありますか?
前提として、CGIはオープンソースとし、
認証サーバは利用しないものとします。
投稿: Fuktommy | 2004.06.19 01:02