EasyBBS

EasyBBS は MacOS の Web サーバー上に会議室(掲示板)を構築するためのフリーウェア CGI です

田中求之(mact@antares.ecn.fpu.ac.jp)


現在、以下のシリーズが公開されています

EasyBBS DX 5AppleScript による CGI
EasyBBS SR IIAppleScript による CGI (ユーザー定義アクション利用)
EasyBBS EX 2FaceSpan によるアプリケーション版
EasyBBS RBREALbasic による EasyBBS simple の移植版
EasyBBS PXDX III の Perl への移植版
EasyBBS PYNDX III の Python への移植版
EasyBBS ++アプリケーション版(PowerPC Native)
EasyBBS PIW*API Plugin 版

EasyBBS DX および EasyBBS++ は、MacOS のWeb共有でも利用できます


EasyBBS のコンセプト

EasyBBS が、なぜ、現在のような仕様になっているのかという点について、私なりに理由付け(へ理屈ともいう)をおこなっています。関心のある方は、以下のページをごらんください。

関連する話題として、以下のページで、Web 会議室(掲示板)のコミュニケーションに関する以下のようなページもあります。

技術評論社が発行していた「The BASIC ざべ」に AppleScript によって会議室システム用の CGI を作る方法について解説した記事を書いたことがあります。技術評論社の許可を得て、記事の原稿の PDF 版を公開しますので、よかったらご覧ください。ただし、会議室の基本的な機能だけを取り上げて説明したものになっています。

また、このページの最後にも、「EasyBBS における会議室システムの考え方」という簡単な文章を載せてあります。


EasyBBS DX

AppleScript の CGI です。基本的には、AppleScript によって会議室システムの CGI を作る場合のサンプルとして提供しているものです。スクリプトになっていますので、自分なりにカスタマイズして使用することができます。

*WebSTAR、Web 共有、Quid Pro Quo で動作確認済み(MacHTTP では使えません)

以下のような機能を実装したものになっています。

メール送信機能の設定用ソフトウェア(DX Setter)を同封してあるためにパッケージのサイズが大きくなってしまっていますが、この機能が不要だという方は、以下の基本パッケージをお使いください(スクリプトは一緒で、DX Setter とメール送信機能の設定方法の文書が入っていないものです)。

スクリプトに細かくコメントをつけたものを用意してあります。改造などの参考にしてください。

*少し前のバージョンですが、基本的な構造などは同じです。


EasyBBS SR

AppleScript の CGI です。EasyBBS DX を WebSTAR のユーザー定義アクションを使う CGI として作り替えたものです。WebSTAR と同じ Action の機能をサポートしているサーバーで使用できます(MacHTTP では使用できません)。

ユーザー定義アクションを利用することによって、会議室毎にサーバーの REALM によるアクセス制限を加えられるようになっています。

また、NetCloak のような Backend-CGI の機能を持った他の CGI ツールと組み合わせることができるようになっています。

* Tanaka's osax 2.x には対応していません。


EasyBBS EX 2

EX をもとに、会議室単位で独立して運用するための CGI を FaceSpan 3.0 を用いて作成しました(FaceSpan のプロジェクトファイルも公開しています)。
EX で実現した機能に加えて、発言内容のリモート管理が行えるようになったのが大きな変更点です。EasyBBS シリーズの現時点での進化の到達点です

インストールの方法や設定方法などを解説した文書もついていますので、ダウンロードしてすぐに使い始められると思います。

参考までに説明書をオンラインで見ることができるようにしておきました。EasyBBS EX 2 の機能等について知りたい方はご覧ください。

EasyBBS EX 2 について

最新版(1.0GM1)


EasyBBS RB

EasyBBS の基本的な機能を REALbasic に移植したバージョンです。現在のところは、REALbasic のサンプルという位置づけで、機能的に強化を図っていく予定はありません。


EasyBBS PX

EasyBBS DX III を Perl へと移植したものです。移植を行ってくださったのは野田純生さんです。以下の野田さんのページにて公開されています。

Perl が利用できる環境なら動きますので、UNIX, Linux あるいは MacOS X で EasyBBS を動かすことが可能です。

Web Scripter's Meeting の以下のページも参考にしてください。


EasyBBS PYN

EasyBBS DX III を Python へと移植したものです。移植を行ってくださったのは吉村さんです。以下の吉村さんのページにて公開されています。

Linux 版も公開されています。

Web Scripter's Meeting の以下のページも参考にしてください。


EasyBBS ++

EasyBBS DX を C/C++ に移植してアプリケーションに仕上げたものです。WebSTARのユーザー定義アクションによる利用も可能になっています。

作者は前薗健一さんです。

アプリケーションですのでカスタマイズはできないのですが、そのかわり、処理速度が速くなり、また PowerPC Native 対応、マルチスレッド対応となりました。

使用の際は付属のドキュメントをよくお読みください。

現在、1.0 が公開されています。

EasyBBS++のソースコードも公開されています。C/C++で CGI の作成する場合の参考になると思います。


EasyBBS PI

EasyBBS ++ のWebSTAR用 Plug-in 版です。 WebSTAR 2.0 仕様(W*API 1.1)の Plug-in になっていますので

などで動きます。EasyBBS++ よりもいっそう高速です。

開発者であるの前薗さんのホームページから入手してください。最新版は 1.05 です。


EasyBBS における会議室システムの考え方

ここでいう会議室システムというのは、以下のような仕組みのことです。

1:ユーザーの書き込みがページとして即座に登録される
2:登録されているメッセージが簡単にブラウズできる
3:メッセージに対して他の人がコメントを付けられる

それぞれの機能は、次のような仕組みを CGI 側で用意することで実現できます。

1の書き込みの登録については、FORM にメッセージを書き込んでもらい、それを処理する際に、HTML のタグを付けてホームページの形式に仕立てておくようにすればよいわけです。つまり、受け取ったメッセージを HTML のファイルとして保存するわけです。

2については、メッセージを保存するフォルダーのインデックス(ファイルのリスト)を CGI が生成すればよいわけですが、ファイル名を表示したのでは中身が分かりませんので、ページのタイトルを抜き出して表示するようにします。また、発言あるいはコメントが付けられた日時が分かりやすいように、ファイルの最終更新日を表示するようにします。

3についてどのような方法を取るのかによって CGI のスクリプトが全く異なったものになります。ある意味で、会議室(メッセージボード)を作るときには、この3をどのように考えるかが決めてであると言えるでしょう。

たとえば、インターネットで会議室というと NetNews を思い浮かべる方も多いと思いますが、NetNews にみられるように、コメントも独立した発言としてそれぞれ別のページ(ファイル)としておき、ブラウズの際にリンクによってスレッドを辿っていくという構成にすることもできます。しかし、この方法は、発言−コメントのリンクを管理するのが面倒ですし、アクセスしてブラウズする際もコメントを辿っていくのが面倒です。そこで、EasyBBSでは、最初の発言とそれに対するコメントがすべて同じページに書き込まれるようにし、さらにページの最後の部分にコメント書き込み用のフィールドも付いているというスタイル(1ページ=1スレッド)になっています。

この方法の特徴は、最初の発言から後に続くコメントがページの上から下へと並んでいき、最後に自分のコメントを書き込む欄がある、という自然な流れになっていることです。最新のコメントだけを読みたいときなどにはページをスクロールしていかなければならないのが面倒ではありますが、スレッド全体が1つのページになっていますので、途中から参加した人でも話の流れが追いやすということもメリットとして挙げられるでしょう。

この1スレッド=1ページ方式を実現する場合のポイントは、コメントをページに追記していくようにするということと、コメントを書き込む FORMが必ずページの最後に表示されるようにするということです。このためには、発言およびコメントのメッセージはファイルに記録するようにし、FORMによるコメント欄は、ページを表示する際に CGI によって追加を行うようにします。こうすることで、コメントをファイルに追記する処理も簡単になりますし、また FORM タグを CGI が動的に作り出すことで、コメントを書き加えるべきファイルの情報なども的確に指示できるようになります。

EasyBBS では、この「コメントはページに追記していく」という仕組みを軸にして会議室を構成します。また、複数の会議室を開催できるようにしてありますが、これは1フォルダーを1会議室と見なし、それぞれにメッセージを分けて入れておくということにしています。

基本的には、FORM からのメッセージをページに追記するという処理を発展させたものですので、単純であり、またグループウェアなどに比べると実現できる機能も限られていますが、メッセージの検索や日数による絞り込み、あるいは発言状況を把握できるページなどの機能を追加して、Web サーバーを利用したコミュニケーションのためのツールとして仕上げてあります。