<span class="unnamed3">1.システム アーキテクチャ: <br> モジュラー思考を採用し、3 つの層に分かれています: <br> a.データストレージ層: mysql を使用して、ユーザー情報、<br> 記事データ、ユーザーレター、ユーザーメッセージ、システムデータ (?)、重要な質問を含む bbs のすべてのデータを保存します: <br> データベース計画を支援するためにファイルを使用するかどうか。 <br> b.システム機能層: bbs の基本機能を完了します。複数の並列モジュールで構成され、下向きに <br> で mysql 関数を呼び出してデータベースにアクセスし、上向きに、処理要求を受け入れ、処理された <br> 結果を上位層に返します。リクエストのタイプ、成功または失敗の結果、およびその他のデータを返します。さらに、<br> モジュールは柔軟性が高く、簡単に変更および追加できます。含まれるもの: <br> ** ユーザーモジュール、ユーザー登録、基本データの変更、権限の変更、<br> ネチズン情報のクエリを処理します。 <br> ** レイアウト モジュールは、記事の公開、記事の読み取り、記事の削除、記事のマーク <br> 、および読み取り、変更、削除の権限チェックを完了します。このモジュールには、データベースに対する最も高い要件があります。 <br> ** エッセンス領域モジュールには、ディレクトリの追加、削除、上下の移動などの記事が含まれています。<br>(?) ディレクトリ構造は、読み取り、変更、および削除の権限チェックが困難な点の 1 つです。 。 <br> ** レターモジュール(新しいレターの送信、レターの読み取りと削除、レターマーク、新しいレターの通知を含む) <br> 通知 <br> ** メッセージモジュール(メッセージの送信、メッセージの受信、新しいメッセージの通知、メッセージレビューなど) , <br> メッセージは文字に保存されます。 <br> ** システム動的モジュール (サイト上の現在の人数、頻繁な変更による現在のダイナミクスを含む) <br> このタイプのデータを実装するには、共有メモリを使用する方が良い場合があります。 <br> ** チャット モジュールでは、双方が直接会話する icq の実践から学ぶことができますか? <br> ただし、チャットの結果を順番に保存するのは面倒かもしれません。 telnet機能との互換性を持たせるため、<br>上位サービス層がtelnetの場合、処理用の専用モジュールを追加します。 <br> ** チャット ルーム モジュール、共有メモリまたはデータベースを使用しますか?ルームを開くと、<br> 内の権限に問題があります。 <br> 必要に応じて新しい機能を追加できます。例: アクティビティ サイネージ モジュールですが、<br> 以外の Telnet 端末の場合、ほとんど意味がないようです。 。 。 。 。 <br> c.サービス層: クライアントの要求に従って、汎用モジュールを呼び出して <br> データを取得し、クライアントの種類に応じて、異なる <br> サービス モジュールを開発します。それぞれ異なるサービス層がシステム機能層の <br> モジュールを共有できるように、適切に抽象化するために最善を尽くします。具体的には、 <br> ++ cq66 サーバー、元の cq66 メソッドを採用、システム関数 <br> のすべての機能をサポートするようにプロトコルを再計画しますが、可能であれば特別なクライアント プログラム (cq66) を使用します。 <br> との下位互換性がある方が良いでしょう。サーバーのアップグレードに伴い、クライアント プログラムもアップグレードする必要があります。<br> は不便を感じるかもしれません。必要に応じて、sshと同様に送信処理中に暗号化機能を追加できます。 <br> ++ Telnet サーバーは古い bbs 方式を使用しています。一部の機能はサポートされていません。サーバーはクライアントのステータスを保存し、クライアントのキーに従ってステータスの転送を判断する必要があります。必要なデータ (記事の読み取りなど) を取得し、システム機能層からデータを要求し、データを処理します (先頭行、<br> 最後の行を追加するなど)。その後、返されるデータを変更できます。既存の bbsd の設計を保存できます <br> が、記事を除いて変更するのはさらに困難ですが、最初から作成するのは非常に手間がかかります <br>。 <br> ++ httpd サーバーは必要な機能が少なく、比較的単純です。本来は mysql を直接呼び出します。 <br> データベースは直接 PHP を使用することもできますが、階層化の原理を考慮すると、やはり C を使用することをお勧めします。 <br> をコンパイルする 🎜> CGI を使用して元の実装に基づいて変更できるのだろうか?おそらくそうではありません。 <br> システムの重要な点と問題点: <br> a.データベース設計、mysql は多数のテーブルをサポートしていますか?例えば何万とか?各 <br> ユーザーには少なくとも 1 つのテーブルがあり、各バージョンには 1 つのテーブルがあります。エッセンス領域のテーブル構造はより複雑になる場合があります。 <br>ただし、現在の bbs ファイル構造よりも常に明確で効率的でなければなりません。<br> のソートとキャッシュ関数には mysql を使用できます。 <br> b. mysql のテキスト フィールドのサイズ制限は、記事を 64k 以内に制限することです。<br> また、効率の観点からは、記事を最大 2k のブロックに保存する方がよいでしょう。<br> Telnet ユーザーが記事を読むとき、Telnet サーバーは毎回データベースにクエリを実行する必要はありません <br> 数十 KB のデータを読み取り、そのうち 2K をユーザーに渡します。これにより、データベースを部分的に補うことができます。ファイルのように途中から読み込むことができないフィールド<br>の一部を取得します。ただし、記事フィールドデータ <br> の管理はさらに複雑です。 <br>2.システム開発計画: <br> まずユーザーモジュールとレイアウトモジュールを検討し、既存の bbsd と <br> 組み合わせてデータ構造を計画します。次に、他のモジュールを検討しますか? 。 。 。 。 。 。 。 <br>(//以下は時間があるときに書きます...先に寝てください...うーん....) <br>3.データベース設計<br>4.ユーザーモジュール設計<br>5.レイアウトモジュールの設計<br>6. bbsd および cq66 サーバー側の変更 <br>7.予備テスト計画。 </span> <p style="width:100%;text-align:center;margin:10px 0"> <br> <br> </p> <p style="width:100%;text-align:center;margin:10px 0"> </p> <p class="clear"></p>