この章では、MINA とは何か、ノンブロッキング IO とは何か、そしてノンブロッキング IO でこのフレームワークを開発した理由について説明します。また、MINA Get を実行するための非常に簡単な例も示します。 up.
1. ノンブロッキング IO
ノンブロッキング IO API は Java 1.4 で登場し、数万のアプリケーションで使用されています。パッケージには次の重要な構造が含まれています:
Buffers - Data Containers Chartsets - Containers translators for bytes and Unicode Channels - represents connections to entities capable of I/O operations Selectors - provide selectable, multiplexed non-blocking IO Regexps - provide provide some tools to manipulate regular expressions
2.NIO と BIO
これらの違いについて2 つの API は非常に重要です。BIO、つまりブロッキング IO は、ソケットに依存してブロッキング モードを採用します。ソケットの読み取り、書き込み、その他の操作を行うと、呼び出し元は操作が完了するまでブロックされます。
場合によっては、呼び出し先がリクエストの完了時に呼び出し元に通知することを期待しており、呼び出し元は同時に他の操作を完了できます。接続されているソケットが多数ある場合、NIO はより良いソリューションです。接続ごとに特定のスレッドを作成するには、同じ作業を行うためにいくつかのスレッドを使用するだけです。NIO についてさらに詳しく知りたい場合は、インターネット情報や書籍にたくさんの情報が掲載されています。
3. その理由。 MINA?
ネットワーク アプリケーションの作成は、通常、負担がかかり、一種の低レベルの開発とみなされます。開発者があまり触れない分野、学校で勉強したけど忘れてしまった分野、ネットワーク層の複雑さが上位レベルの抽象化によって隠蔽され、根本的なことが理解できていない分野です。
非同期 IO に関しては、さらに複雑さが増します。それは、BIO と NIO の最大の違いです。BIO では、リクエストが処理されるまで待機する必要があることです。サーバー側では、接続が来るたびにスレッドが作成されることを意味します。そのため、NIO では、ノンブロッキング システムで同期を解決する必要があります。 NIO では、何らかのイベントが発生したときに関与する必要があり、前の呼び出しを待つ必要はなく、リクエストを送信すると、リクエストが完了すると通知が届きます。フレームワーク
これらの違いとこれらの問題の複雑さを考慮すると、最善の解決策はこれらの複雑さを隠すことであり、MINA はそれを実行します。しかし、MINA は、TCP、UDP、または を介して通信するときにいくつかの共通 IO を提供することで、さらに多くのことを行うことができます。他のメカニズム。 TCP と UDP のみを考慮すると、MINA はこれら 2 つのプロトコルを区別できるため、アプリケーションの他の部分に集中できるようになります。
MINA は TCP と UDP の問題を解決できるだけでなく、シリアル通信や ARP にも非常に役立ちます。
最後に、MINA はサーバーとクライアントの通信の問題を解決するためにカスタマイズされたネットワーク フレームワークであり、ニーズに適応してメモリ パフォーマンスを反映できるようにすることが MINA の得意分野です。サーバーの開発が容易になります。
5.最初のステップ
以下では、MINA の使い方がいかに簡単かを示し、非常に簡単な例を実行します。まず、ここから MINA の最新バージョンをダウンロードしてください。最新バージョンを使用しない正当な理由がない限り、開発には最新バージョンを使用してください。 http://mina.apache.org/mina-project/downloads.html。ダウンロードが完了したら、ダウンロードしたファイルを解凍します。このディレクトリにはいくつかのサブディレクトリが含まれ、その中に、disk には MINA ライブラリの jar ファイルが含まれ、docs には API ドキュメントが含まれ、lib には MINA に必要な jar ファイルが含まれます。
6. 最初の MINA プログラムを実行します
まず、ターミナルにいる場合は、次のパッケージをクラスパスに追加し、/etc/profile を変更して有効にする必要があります。統合環境を使用している場合は、クラスパスを構築するだけです。
上記は Apache mina の学習ノート (1) - 入門です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。