Java Sticky Note
java
link
author
|
|
Jakarta Commonsによるネットワークプログラミング
2. Jakarta Commons
今回は,Jakarta Commons
を用いたネットワークプログラミングを取り上げます.サーブレット実行環
境のTomcat,ポータルサイト構築環境のJetspeedな
ど,Jakartaプロジェクトの
多くは特定領域の技術にフォーカスしたプロジェクトですが,Jakarta Commons
はそれとは異なり,再利用可能なコンポーネントの開
発にフォーカスしたプロジェクトです.
実際のところJakarta Commonsは,独立したプロ
ジェクトにするほどの規模でない小規模なプロジェク
トに活動の場を与えるといった意味もあり,ほかのプ
ロジェクトで開発されていたコンポーネントの一部が,
その再利用性の高さからJakarta Commonsに移され
たり,あるいはここで成長したプロジェクトが,Jakarta
Commonsから離れ,独立したプロジェクトに移行す
る場合もあります.
もともとの目的がコンポーネントの再利用を目指し
たものであるため,Jakarta Commonsでは,大規模
なフレームワークを提供するものではありませんが,
内容を把握しておけば,必ず利用できる場面があると
思います.実際,Jakartaのほかのプロジェクトの多
くが,Commonsのプロダクトを使用しています.
今回はCommonsを使ったネットワーククライアン
トプログラミングに絞ってその使い方を説明します.
Commonsには多くのサブプロジェクトがありますが,
今回取り上げるのは,さまざまなネットワークプロト
コルのクライアント技術の実装であるNet(以下,
Commons Netと記述します)と,HTTP(Hypertext
Transfer Protocol)のクライアント技術の実装である
HttpClientです.
2.1. Commons Net
Commons Netは,
さまざまなネットワークプロト
コルのクライアント技術を実装したJakarta Commons
のサブプロジェクトです.もともとORO社により開
発されたライブラリでしたが,ORO社の解散により
その開発がJakarta Commonsに移されました.この
プロダクトは,各種ネットワークプロトコルに基づく
基本的なプログラミングを可能にすることを目的とし
ており,プロトコルに近い比較的低レベルなAPIの集
合です.
Commons Netがクライアント技術を提供している
主なプロトコルを以下に示します.
表1 Commons Net が対応するプロトコル
|
Finger |
Whois |
TFTP |
Telnet |
POP3 |
FTP |
NNTP |
SMTP |
Time |
Echo |
Rlogin |
Rexec |
Rdate |
|
Whois,Telnet,POP3,FTPなどはWindowsユー
ザにもおなじみのものです.Rlogin,Rexec,Rdate
などRコマンドは当初BSD系のUNIXに実装されてい
たネットワーク技術で,現在ではLinuxを含む多くの
UNIXで使用できます.今回は,この中から比較的利
用されることが多いと思われるFTPとTelnetを取り上
げます.
FTPやTelnetプロトコルは,比較的単純なプロト
コルであり,その機能を実装するライブラリを独自に
開発するのもそれほど大変なものではないと思われる
かもしれません.しかし,これらのプロトコルであっ
ても,プロトコル仕様を完全に理解しそれを満たす,
汎用的ライブラリとして開発するのは困難な作業です.
本稿では,Commons Netの提供するクラスライブラ
リを通して,FTP,Telnetのプログラミング方法を見
ていきます.
2.2. HttpClient
HttpClientは,Jakarta Commonsのサブプロジェク
トで,HTTP クライアントを実装する技術です.
HttpClientは,もともとWebDAV機能を開発してい
るJakarta Slideプロジェクトの中で開発されていまし
たが,再利用可能なコンポーネントとしてJakarta
Commonsに移動し,開発が継続されています.
J2SEに含まれるjava.netパッケージにも,HTTPプ
ロトコルを処理するためのクラス(HttpURLConnection
等)がありますが,これと比べて高レベルなAPIを提
供しています.Commons Netが提供しているクラス
ライブラリが比較的プロトコルに近い低レベルなライ
ブラリでしたが,HttpClientは高レベルな機能も提供
しています.
本稿では,Commons Netと併せてHttpClientを使
用したプログラミング方法も解説します.
このドキュメントに関するご意見、ご要望などはまで。
|
|