AsagumoWeb - A Web over P2P system - 2038-1-1T0:0:0+09:00 lily MegaWebとMiniWeb 2005-04-17T13:38:41+09:00 大きなサイトと小さなサイト現在、Webには様々なサイトが存在している。私はのWebサイトに次のような分類して考えている。その分類の方法とは、サイトの大きさ、規模だ。例えば、Wikipediaや2ちゃんねるのようなサイトは、到底一人では作る事のできないような規模に成長していて、一人の人が一生かかって書 /AsagumoWeb/Article 大きなサイトと小さなサイト

現在、Webには様々なサイトが存在している。 私はのWebサイトに次のような分類して考えている。 その分類の方法とは、サイトの大きさ、規模だ。
例えば、Wikipedia2ちゃんねるのようなサイトは、 到底一人では作る事のできないような規模に成長していて、 一人の人が一生かかって書き続けても到底書き上げられない程の量のデータが集積されている。 しかも、その量の膨大さは指数オーダーで増えているように見え、 もはや全体を見る事すら不可能である。
一方、個人が運営しているサイトも依然として大量にある。 個人が作るサイトであるため、 一つのサイト内での情報量は限られているがその代わり、 その道のプロが作っているサイトは詳しい情報を得る事ができる。
私はこの大きい規模のサイトと小さい規模のサイトをMegaWebとMiniWebと名付ける。

このArticleは某誌に寄稿した文章の再掲です。 編集者校正前の文章ですので、一部読みにくいものがあるかもしれません。

MegaWebの利点

MegaWebの利点は、主に分類だと思われる。
つまり、一つの事に関する情報は一箇所にまとまっているという事だ。
これについて、MegaWebとMiniWebについて考えてみよう。

例えば、「ドラク工」の新しいゲームが発売されて、 あなたはその攻略情報が欲しいとする。
この場合、Googleなどの 検索エンジンを使って攻略情報が書かれたサイトを探しにいくというMiniWeb的な探し方と、 2ちゃんねるのゲーム攻略掲示板を見に行くというMegaWeb的な探し方が存在する。

MiniWebを見る場合、攻略情報が書かれたサイトは複数あるだろう、 あなたはGoogleでヒットした10件のサイトを見てまわり、 その中から、必要な情報を探す事になる。
どのサイトに必要な情報があるか分らないし、 そもそもその情報がどこにも無いかもしれない。 さらに、サイトによって書いてある事が違ったらもう目もあてられない事態に陥いるだろう。

一方MegaWebを使う場合はそのような問題は無い。
2ちゃんねる の ゲーム攻略 掲示板を見て、 「ドラク工」の攻略情報が乗っているスレッドを見れば良い。 必要な情報はすべてそこに載っているし、 矛盾する情報があっても、スレッドの中で解決される。

このようにMegaWebはMiniWebに比べて見る場合に情報を取得しやすいという 利点があると思われる。
では、逆に情報が集まるという立場から考えると、MegaWebはどうだろうか?
一般的に、情報は一つに集まりやすいと言われている。 私が2ちゃんねるを見ていても、やはり、情報は一つに集まりやすいという 性質があるように見える。
例えば、2ちゃんねるで、同じ内容のスレッドが複数作られるという、 「乱立」と呼ばれる問題が発生する事がある。 「乱立」状態に陥ると、乱立したスレッドに情報が分散し、情報が分散してしまう可能性がある。 しかし、この「乱立」状態はすぐにどちらかのスレッドにまとめられて統一される。
このようになる理由は次のような物ではないかと私は思っている。 まず、情報を発信する、すなわち、掲示板に書き込む人は、読む人でもあるため、 情報が集まっていて欲しいという希望がある。 2つめの理由は、この希望をかなえるために必要なコストが小さい事だ、 先に伸べたように、MegaWebでは既に情報が集っている場所を探す事が簡単だ。
一般に言われている「情報がある場所には情報が集りやすい。」と言われるのは、 この辺りが理由ではないのだろうか?

MiniWebの利点

MegaWebの利点が分類なら、MiniWebの利点はロバスト性である。
MiniWebは複数のレイヤでのロバスト性がある。

まず、物理レイヤでのロバスト性がある。 2ちゃんねるを利用している人なら、 サーバーが落ちていたり、 「人大杉」と呼ばれるサーバー負荷が高くて ページが見れない状態を体験した事があるだろう。
この問題は今のMegaWebが集中システムである事に依存する問題で、 本質的に回避する事はできない。
一方、MiniWebの場合、全てのページがいきなり見れなくなる可能性はほぼ0である。

また、政治レイヤでのロバスト性もMiniWebの特徴として一般に言われる事である。
例えば、企業告発などの内容に関して、一つのサイトに情報を載せた場合、 そこに圧力をかけ、情報公開をやめさせるという事があると言われている。
このような場合でも、多数の別なWebサイトに情報が載った場合、 例えば、その告発の内容が有名になって多数のBlogに転載された場合、 その情報を消すのは不可能だと思われる。

このようにMiniWebは情報が生き残る強さがある。
これらの話をまとめると、ユーザーによって使いやすいMegaWebと 生き延びやすいMiniWebという構図が浮びあがってくる。
そこで、この2つのWebへのP2Pが持てるアプローチを考えてみたい。

P2PとしてのMiniWebへのアプローチ

P2P技術を使って、MiniWebを使いやすくするにはどうしたら良いのだろうか? 考えられるのは標準化という考え方だ。 例えば、次のような場合はこの考え方で考えられる。

良く使われるWeb日記ホスティングサービスに はてなダイアリーというサービスがある。
はてなダイアリーの利用者が増えている一因として、はてなキーワードという物がある。 このはてなキーワードとは、日記に書かれている固有名詞、 例えば有名人の名前や書籍の名前などを自動的にリンクに変え、 そのキーワードの意味や同じキーワードが書かれている他の日記を紹介するサービスである。
このサービスはMegaWebだからこそできるサービスで、 ユーザーごとに個別にサービスするのではなく、 多数のユーザーのデータを処理する事によってはじめてサービスを行う事ができる。
MiniWebで実装している物は現時点では存在しないと思われる。

逆に次のようなソフトウエアがある、 2004年度のIT流行語にも選ばれたBlogと呼ばれるツールには、 TrackBackと呼ばれる機能が付属している。
このTrackBackと呼ばれる機能は、他の人のBlogにあるエントリ同士を 議論の流れとして関連付けするための機能で、 XML-RPCなどの分散技術を用いて、違うサーバー上に設置されている、 Blog同士を繋ぐ事ができる。
TrackBackは既にほとんどのBlogツール・2ちゃんねる・Wikiなどの 様々なWebアプリケーションで実装されていて、これらの間を繋ぐ事ができる。
また、TrackBackのような最近のツールを例に出さずとも、 Web上にはWebRingなどのソリューションは存在した。 WebRingは90年代には既に存在していた。

この2つのサービスから分る事は、MegaWebで実現されている機能でも、 場合によってはMiniWebで実現できるかもしれない、という事である。
では、どのようば場合で有効なのか、それは標準化が鍵を握っている。 先のTrackBackの例でもそうだが、Web内の全てのページが同等の機能を持っていれば、 それは、MegaWebが行えるのと同じ情報の活用ができる。 全てのページが同じ機能を持つために、必要なのが標準化である。
言い変えれば、別々であった個々のMiniWebにMiniWeb全体という集合の方向性を システムレベルで統一できれば良い。

P2PとしてのMegaWebへのアプローチ

逆にMegaWebをP2Pの技術を使用して強化する事も考えられる。
MegaWebの弱点である、集中システムであるという事は、 P2Pが得意とする、集中システムから分散システムという流れを適応する事で、 解決する事ができると思われるからだ。

しかし、現実問題として、集中システムに特化されているMegaWebを、 分散システムとして改良する事は難しい。
いくつかのプロジェクトがこの問題に取り組んでいるが、 今のところ、解決される気配は無い。 私は、MegaWebを分散システムとして設計しなおす必要を感じる。

AsagumoWebはどちらに進むのか?

P2PWebを設計するには、以上の点を踏まえて行う必要がある。
その中で、私はAasgumoWebには、 MegaWebをP2P化するというアプローチを取りたいと思う。
MiniWebの上でP2Pシステムを設計するというアプローチを取る人は、 既にいくつかあり、それなりに成功を収めているという理由もあるが、 現在のMegaWebの集中システムというあり方に 強い疑問を感じるという理由が大きい。
少なくとも、現在のMegaWebよりはクールな物を作りたいと思う。

次回は、AsagumoWebを例に出してP2Pのネットワークトポロジーに踏み込んだ内容を書きたい。

]]>
バグ報告について 2005-02-05T22:53:01+09:00 あからさまなバグなどを見つけましたら、バグ報告フォームから報告してください。->バグ報告フォームバグではない、希望、要望は->希望・要望掲示板へ /AsagumoWeb あからさまなバグなどを見つけましたら、バグ報告フォームから報告してください。
->バグ報告フォーム
バグではない、希望、要望は
->希望・要望掲示板へ

]]>
公開Gatewayとは? 2005-01-17T01:13:11+09:00 AsagumoWeb公開Gatewayを使うと、AsagumoWebをインストールしなくても、一応AsagumoWebの世界を覗き見る事ができます。しかし、本格的に使用する場合、AsagumoWebをインストールして使う事をおすすめします。また、公開Gatewayでは一部の機能が制限されています。公 /AsagumoWeb AsagumoWeb公開Gatewayを使うと、AsagumoWebをインストールしなくても、一応AsagumoWebの世界を覗き見る事ができます。

しかし、本格的に使用する場合、AsagumoWebをインストールして使う事をおすすめします。
また、公開Gatewayでは一部の機能が制限されています。

公開Gateway

次のアドレスで、動作しているGatewayにアクセスする事ができます。

http://www.asagumo.net/

現在、以下のGatewayが動作しています。

サーバーを貸してくださる方を募集しています。

サーバーの詳細<>

FreeBSD

  • FreeBSD 4.8-RELEASE
  • Mono 1.0

Windows

  • Windows 2003
  • .NET Framework 1.1

更新履歴

  • 20050117 新規作成
  • 20050605 アドレス変更
]]>
AsagumoWebといままでのWebの違いは何ですか? 2005-01-17T00:47:59+09:00 AsagumoWebは今のWebが持ついくつかの問題を解決している。サーバーが落ちていて、ページが見れない事がある。消えていて見えないページがある。そもそも、インターネットに接続していないと見れないなぜ、今のWebがこのような問題を抱えているのだろうか?それは、今のWebの考え方がおかしいからだ。例 /AsagumoWeb AsagumoWebは今のWebが持ついくつかの問題を解決している。

  • サーバーが落ちていて、ページが見れない事がある。
  • 消えていて見えないページがある。
  • そもそも、インターネットに接続していないと見れない

なぜ、今のWebがこのような問題を抱えているのだろうか?それは、今のWebの考え方がおかしいからだ。

例えば、あなたがアマチュア写真家だったとしよう。写真を、Webで公開したいと思ったら、どのような作業が必要になるだろうか? まず、Webサイトを作り、それをWebサーバーにアップロードしなければならない。
しかし、レンタルサーバーは有料な所が多い、あなたはしぶしぶ有料のサーバーを利用して自分の作品を公開した。

しばらくして、あなたのWebサイトは人気が出てきた。アクセスは日ごとに増えた。そんなある日、 レンタルサーバーの会社からあなたにメールが届いた。

「あなたのWebサイトはアクセス数が多すぎます。
もし、このまま公開を続けるなら、追加料金を払ってください。」
冗談じゃない。こちらは、無料(ただ)で写真を公開しているんだ、人気があるから、さらに料金を取るだって、信じられない。

このような状態になると、ほとんどの人が、 Webのデータを減らす事になるだろう。ひょっとすると、Webサイトの公開自体もやめてしまうかもしれない。

このような事態になった原因は何だろうか? それは、公開した人がコストを払うというWebの仕組みに問題がある。公開しない方がコストが安い、さらに、人気が無い方が有利というのは、本質的におかしいだろう。

これから、「情報」を蓄積していくという人類共通の夢を進めていくには、 見た人がコストを払い、自由に情報を公開できるシステムに変えていかなければならない。

]]>
AsagumoWebとは? 2005-01-17T00:44:20+09:00 AsagumoWebとは何か?AsagumoのWebです。Asagumoって何?Asagumoとは、私(IKeJI)が作っているP2Pソフトウエアのシリーズです。そもそものはじまりは情報特別演習という大学の授業でP2Pアプリケーションを作った事。それ以降、P2Pソフトウエアを作る時は、この名前を使う /AsagumoWeb AsagumoWeb とは何か?

AsagumoのWebです。

Asagumoって何?

Asagumoとは、私( IKeJI )が作っているP2Pソフトウエアのシリーズです。

そもそものはじまりは情報特別演習という大学の授業でP2Pアプリケーションを 作った事。 それ以降、P2Pソフトウエアを作る時は、この名前を使うようにしています。

縁起物らしい。

Webって何?

Webとは、ドキュメントシステムです。 ハイパー リンク という仕組みがあり、別なページに自由に リンク を張る事ができます。

つまり AsagumoWeb って何?

P2P環境上で動作する、Webシステムです。

See . AsagumoWebといままでのWebの違いは何ですか?

]]>
サイト構築に関するメモ 2005-01-17T00:43:09+09:00 このサイトはRubyで書かれているサイト構築システムlilyで構築されています。また、サイトのスキンとしてありぃさん作のPukiWiki用スキンBlueBoxの構成・配色を参考にさせていただきました。このような素晴らしいプログラム、データを公開していただいてありがとうございます。lilyへの改造につ /Site このサイトはRubyで書かれているサイト構築システム lilyで構築されています。

また、サイトのスキンとしてありぃさん作のPukiWiki用スキンBlueBoxの構成・配色を参考にさせていただきました。
このような素晴らしいプログラム、データを公開していただいてありがとうございます。

lilyへの改造について

lilyはreadmore(続きを読む・このあとトンでもない展開が!)機能を持っていないので、プラグインで機能を追加しました。
ソースは次のようになっています。

def readmore_body
  return (@body.split(/\n\n/)[0]) + 
      "<a href=\"#{@url + @path + "/" + @fn}.html\">readmore....</a>"
end

このコードを readmore.rb としてpluginフォルダに入れてある。

show_future_entriesが効かない

show_future_entriesがどの値でも将来の物でも表示されてしまう。バグがある。
どうもshow_future_entriesが実装されていないようだ。

%grep show_future_entries lily.cgi
    @show_future_entries = env['show_future_entries'].to_i
%

そこで、独自に実装
229行目付近

      files.each{|f|
        day = get_post_time(f)
        if @show_future_entries == 1 or (day < Time.now)  #この行を追加
          if @path_info_yr.nil? or @path_info_yr == ""
            @storys.push(f)
          else

endも忘れずに

flavourによって、設定を変える

ビバ!クイックハック!

      if @flavour == "rdf" @flavour == "xml" then
        @show_future_entries = 0
      end

referer問題 2005年8月11日追記

何かサイトが重い、とりあえずmod_ruby化してみたがあまり軽くならない。

lilyに対してプロファイリングを行ったところ、refererの表示部分が重い事が判明した。
lilyはrefererのリストを保持しており、過去全てのrefererのリストを集計して表示している。 例えば、トップページでは数十万件の集計を表示ごとに行っている状態であった。

とりあえず、refererディレクトリを削除して対処。後で、refererプラグインを書きなおそう。 (lilyごと書きなおすべき?)

]]>