cgi - みる会図書館


検索対象: UNIX MAGAZINE 2003年5月号
9件見つかりました。

1. UNIX MAGAZINE 2003年5月号

インターフェイスの街角 "#{@@cgiur}?mailbox=#{@mailbo}&seq=#{se}&cmd=write" = > write—cgi){ from} + @cgi . br + @cgi . hr + @imap.fetch—attr(seq, "BODY [ 1 . TEXT] " ) . collect { llinel line + @cgi.b}. join init_imap def write end date + @cgi . br + @cgi . a( 'href ) write_cgl name SIZe 'To: ' + @cgi . lnput( 'type' = > 'text ' name , = > 'cmd' , 'value' = > 'deliver') 十 ' = > 'hidden ' @cgi ・ input ( 'type @cgi . form( 'method' = > 'post ' @imap.fetch—attr(@seq, "BODY[I. TEXT] ” ) . collect { に i 取引 " > " + lin}. join) text (@seq " Re : subj ect ー + @imap.fetch—attr(@seq, "BODY[HEADER. FIELDS (SUBJECT)] " ) . - from t 0 @imap.fetch-attr(@seq, "BODY CHEADER. FIELDS (FROM)] " ) . gsub(/From: \s + ( . * ) / , '\1' ) + @cgi . br + ' + @cgi ・ input( 'type 十 @cgi . br 十 'value ' = > from) 疇 - name , = > ) from ' S1ze ' + @cgi . lnput ( 'type ' = > 'text ' ' Subj ect : 'value' = > subJect) + @cgi . br + @cgi . textarea( 'name rOWS name ' = > ' subJ ect ' , , wrap' = > 'off'){ text} 疇 - SIZe ' cols ) = > ' 60 ' bOdy くく "X—Mai1er : Compact WebMai1 by masui@example . com\n\n" body くく "Subject : #{mime_b(@cgi ['subject'] . to_s}\n" body くく "From: #{fro}\n" b0dy Net : :SMTP . start(@server, 25 ) smtpl tO = mime—b(@cgi['to'] . to—s) from = mime—b(@cgi['from'] . to_s) def deliver end s ・ t 。 jis ・ gsub ( / \ 033 \ $ B ( に \ 033 ] * ) \ 033 \ ( B / ) { ー def mime—b (s) end @cgi . submit( 'value' = > 'send' ) + @cgi . br + smtp. send—mail(body,from,to) body くく "#{@cgi['text'] . to-s . toji}" @cgi . meta( 'HTTP-EQUIV' = > 'refresh' , 'CONTENT' command @cmd. intern # write, read 等のコマンド判定 (self . respond—to?(cmd) ? self . send(cmd) @cgi . out { b0dy cmd def do end @cgi . head { @cgi . title { "WebMai1 (#{@cm}) " } } + @cgi . html { list) @cgi . body { body ・ tosjis} end end webmail = WebMai1. new( 'example . com' webmail . do_command mastll ) UNIX MAGAZIN E 2003.5 mypasswd ) ) 183

2. UNIX MAGAZINE 2003年5月号

0 リスト 2 webmail. cgi # ! /usr/bin/env ruby require ) net/imap require ) net/smtp 'cg1 ' reqtllre ) kconv ) module Net class IMAP def fetch—attr(seq,s) fetch(seq,s) [ 0 ] . attr[s] end end end class WebMai1 @@cgiurl = Fi1e . basename($O) def initialize(server,user,password) @server server @user @password = password CGI . new("htm13'l) @cgi @cmd = @cgi['cmd'] . to—s @mailbox = @cgi ['mailbox'] . to—s "INBOX" if @mailbox @mailbox @cgi['start'] . tO—s . tO—i @start @message—id = @cgi['message—id'] . t0-s @seq = @cgi['seq'] . to—s . to—i end def init—imap @imap = Net : : IMAP. new(@server, 143 ) @imap.authenticate ( ) CRAM—MD5 ' , @user .@password) # @imap ・ Iogin(userConfig, passConfig) @imap ・ examine (@mailbox) end def list init_imap messages = @imap. status(@mailbox, ["MESSAGES"] ) ["MESSAGES"] ( 1 .. messages) . to—a. reverse [@start .. @start + 9] . collect { ー seql subject = @imap.fetch-attr(seq, "BODY[HEADER. FIELDS (SUBJECT)] " ) . gsub(/Subject :\s + ( . * ) / , '\1' ) "()o title)" if subject subj ect from = @imap.fetch-attr(seq."BODY[HEADER. FIELDS (FROM)] " ) . gsub(/From:\s + ( . *)/,,\1,) . message—id= @imap.fetch—attr(seq, "ENVELOPE") . message—id "#{@@cgiurl}?mailbox=#{@mailbo}&message—id=#{message—i}&cmd=read" read—cgi " く a href=\"#{@@cgiur}?mailbox=#{@mailbo}&start=#{@start + 1}\"> 次く /a>" " く a href=\"#{@@cgiur}?mailbox=#{@mailbo}&start=#{@start—l}\"> 前く /a> (@start > = 10 ? } ・ j0in + @cgi . a('href' = > read-cgi){ subject} + "(#{fro})" + @cgi . br 182 date = @imap . fetch-attr(seq, "BODY[HEADER. FIELDS (DATE)] " ) from = @imap.fetch-attr(seq, "BODY CHEADER. FIELDS (FROM)] " ) . gsub(/ く /, "&lt ; seq = @imap.search( CI'HEADER" , "MESSAGE—ID" .@message—id] ) [ 0 ] init_imap def read end UNIX MAGAZINE 2003.5

3. UNIX MAGAZINE 2003年5月号

図 2 メールのリスト表示 ファイル ( E ) 編集 ( 印表示ジャンプブックマゆ ( 印 回区 ) WebMail 0 ヂ N sc 叩 0 ー T'CG ① = - い・、 02C 旧 edu ) 2CCß IEEE (YSS/MQ ー C 。虍 r tshi Anrpuncerænt 0 訓 for P,acers eei 「ん@ir龜、肥 h 田加 ) FP deadli ated tO △区iLI医tL能ee-Vi田@部な田 bi 「年 nde (IEEE Vis Symgosia) ) R Ⅳ石 283 ー CALL FOR PAPERS 、・ CO AST NET ) 阯 1 1 刀諞文募集のご案内 昏 ) WebMaiI (read) ァ Ne 08P0 図 3 メッセージ表示 ( に・ -- ■ c は sh ⅳ一 uacjp ) Our amloées if'you æceive duplicates ofthis From: Hui l-ei ぐ、、。 = ) Date: T 田 . 11 れ用「 20 で 10813 ・ヨ下 0 〕 プ新辷卩岱トム新 t 。。。 . 、ファイル ( E ) 編集 ( 印表示 OØジャンプ 0 ブマーク⑧ rotiæ. CaIl for PaFEt-s MOM 2(X はロ ニエニ るように mongle をこ知匿した Web メールシステムです。 図 2 は、フォルダ内のメールのリストを表示したとこ ろです。表示内容を絞っているので、これなら携帯電話で も十分実用になります。 図 2 でタイトルお尺すると、図 3 のようにメッセー ジが表示されます。差出人をクリックするとメール編集画 面になり、メールを送信することができます。 webmail.cgi はわすか 120 行のプログラムですが、と りあえず Web メールシステムとして使えるのは IMAP と Ruby のライプラリの威力といえるでしよう。 webmail.cgi でメールの本文を読むときは、番号など でメッセージを参照するのではなく Message-ID から 参照するようにしています。たとえば、 Message-ID が xxyyzz" のメールは以下のような I-JRL で参照できま す。 http ://example.com/webmail. cgi?mai1box=INBOX&=+ message—id=xxyyzz&cmd=read UNIX MAGAZINE 2003.5 webmail.cgi の引数に、、 read" を指定すると、 IMAP の SEARCH コマンドで Message-ID を検索し、メッ セージ本体を表示することができます。 webmail. cgi はパスワードを直接記述するといった大 きな間題を抱えていますが、ちょっと IMAP の実験をし てみたいときなどには有用だと思います。 インターフェイスの街角 おわりに IMAP を使ったのは今回か初めてですが、しつに、、使 える " ことが分かって嬉しいかぎりです。さきほども述べ たように IMAP の仕様はかなり複雑で、これに完璧に対 応した MUA を作るのはかなり大変そうです。しかし、と りあえす使ってみるといった程度なら、今回のようなプロ グラムでもなんとかなります。 POP 十 MH から IMAP 十 Web メールの環よ竟にいきな り移動して大丈夫だろうかと心配でしたが、今回紹介した ようなツールのおかげで、なんとか暮らしていけるメドが 立ちました。今後、 Wiki などから IMAP を活用する方 法も考えたいと思っています。 181 [ 赭文献 ] systems (CH186) , pp. 1 ー 8 , April 1986 SIGCHI co れ工℃れ ce 0 れ〃“ ma れ / 佖 c 7 、 s 乞れ com〃社れ 9 tion sharing in organizations ' in PT 、 ocee 市れ gs 0 / 〃肥 lnformation Lens: an intelligent system for informa- [ 2 ] T. Ⅵを Malone, K. R. Grant and F. A. Turbak, 、、 The オライリー・ジャパン、 2001 年 [ 1 ] Dianna MuIIet 、 Kevin Mullet 著、木田直子訳『 IMAP 』 ( ますい・としゆき産断総合イ究戸斤 ) 公開していますので、ご利用ください。 今回紹介したプログラムはさきほど記した私のサイトで に期待したいところです。 が、 POP よりも利用範川か格段に広いので、今後の普及 現琲点では、 IMAP に対応している ISP は少委取です

4. UNIX MAGAZINE 2003年5月号

0 のようにメールアドレスか当してあると、届いたメッセ ージをローカル・ファイルシステムにオ巒内する代わりにそ のアドレスに転送します。また、 % cat ~ / . forward ー /usr/local/bin/lens のようにプログラム名か第当主されている場合は、届いたメ ッセージを標準入力としてそのプログラムに渡すことがで きます。 引数を指定しない場合は標售入力に入力されたメッセー ジの自動賑分けをおこない、引数を指定したときはそれに 応してメッセージを振り分けるような構造にしておけは、 自動でも手重丿、もメッセージ窈辰分けを指示することがで きます 10 lens は約 200 行の Ruby プログラムです。誌面に掲 載するにはちょっと長いので、新たに開設した私の Web ペーシ 11 で公開します。 lens は、成疋ファイル (~/. lensrc) に記述されたホス ト名や転送アドレス、振分けパターンなどを読み取ったあ と、振分け規則に従ってメッセージの酉占や振分けを実行 します。引数なしで起動された場合は標準入力をメッセー ジとして処理し、引数付きて起動された場合は引数で表現 された日時より新しいメッセージに対して振分けをおこな います。たとえば、 % lens 3 / 10 として起動すると、 3 月 10 日以降のメールについて振分 け処理を実行します。 リスト 1 lens の言聢ファイル . lensrc # Configuration for ' lens ' LensConfig = { :hostname = > 'example . : smtp—host = > 'localhost ' : local_address = > 'masui@example . com' :mobile—address = > 'foobar@ezweb. ne ・ JP :maildir = > "#{ENVC'HOME'] }/Mai1dir" CIass Message @@non—important_mls = > ) enkai—talk ' ) enkai—talk ' = > 'system/old' ' old—systems ' # あまり重要でないメールの振分け @@subj ect—patterns = > 'iPSJ ' IPSJ ' = > ' system/pobox ) ) PObOX ) # Subject : 行の / くターンに応じた振分け @@from—patterns = > person/masui masui@ ) '@csl . sony . co ・ JP # From : 行のパターンに応じた振分け @@spam—patterns ) Content—type ' / gb2312 / i /spammer/ , ) Subj ect ' / (viagral adult) /i , # SPAM メールは破棄する end 同しことを考える人はいるもので、 Ruby の IMAP ラ さきはども述べたように、 SquirrelMail はフラグイン イプラリを用いた m 。 ngle12 という小さな web メールが も合わせると PHP のコードが数万行もあり、実行も决 公開されていました。 Ruby の net/imap という IMAP とはいえません。せつかくの Web メールなのに、携帯電 ライプラリを利用すれば、 IMAP の複雑なプロトコルを 舌のプラウサでは使えませんし、 PDA のプラウサでの利 Ruby から操作できるので、簡単に Web メールシステム 用もはとんど不可能です。新着メールを読んで最低限の返 を作成できます。 事をするといった基本的な機能に絞った web メールがあ mongle はごく軽い Web メールですが、それでも大 れは、より・面こ IMAP が使えます。 きな画面を前提としているようです。末尾のリスト 2 の webmail. cgi は、携帯電話などの小さな画面にも対応でき 10 メール振分けの方式は、 2002 年 10 月号の「横着プログラミング」に 書かれているものとはま 1 司してす。 12 http://home.sunheartcowfork.corn/mongle/ 11 http://www.pitecan.com/ 軽い Web メール 一三ロ 180 UNIX MAGAZINE 2003.5

5. UNIX MAGAZINE 2003年5月号

連載 UNIX Communication Notes—O 表 1 SSLRequire て参照できるおもな SSL 関連変数 ( a ) パスワード認証 SSL-PROTOCOL SSL-CLIENT-S-DN SSL-CLIENT-S-DN-comp SSL-CLIENT-I-DN SSL-CLIENT-I-DN-comp SSL-CLIENT-V-START SSL-CLIENT-V-END 型 string string string string string string string 意味 SSL/TLS のバージョン (SSLv2 、 SSLv3 、 TLSv1) クライアント証明書保有者の DN 全部 クライアント証明書保有者の DN の構成要素 (comp で要素を指定 ) クライアント証明書発行者の DN 全部 クライアント証日月書発行者の DN の構成要素 (comp て要素を指定 ) クライアント証明書の有期間開始日時 クライアント証明書の有期間終了日時 SSLRequire %{SSL-CLIENT-I_DN_O} - eq "Yamaguchi lnc " とす川よよい。また、、、 FOO C 。 . " に所属するユーザー アクセスを許す場合は、 SSLRequire %{SSL—CLIENT—S—DN_O} eq " F00 CO の と記述する。、、 % { ・・・・ } " の部分には変数名を指定する。 これは、 X. 509 証明書から該当する情報を取り出し、そ れぞれに評価することになる。 SSLRequire では、 X. 509 証明書の情報のほとんどを評価対象として扱うことができ る。 代表的なものを表 1 にまとめておく。 この評価式は、 Apache か疋ファイル内て参照できる 通常の変数と組み合わせて使うこともできる。たとえは、 月曜日から翁瞿日の午前 8 時から午後 8 時まで、所属組 織が NAIST となっている証明書をもっューサーのアク SSLRequire %{SSL-CLIENT—S-DN_O} eq "NAIST" \ セスを許可したいのなら、 ☆ quire ディレクテイプの説明を参照してほしい。 詳細については、 Apache のマニュアルの SSLRe- といった記述も可能である。 and %{TIME_HOUR} > = 8 and %{TIME_HOUR} く = 20 and %{TIME_WDAY} > = 1 and %{TIME—WDAY} く = 5 \ UNIX MAGAZINE 2003.5 ーピスにおけるアクセス制御にも活用できる。前回も説明 既存のアプリケーションで使えるだけでなく、 WWW サ クライアント側の X. 509 証明書は、 S/MIME などの おけ引矍も可能になる ( 図 11 ) 。 セス制御が・可能になる。また、 SSL と併用す川ま通信路に と、通常のパスワード認証よりも強固で、かっ柔軟なアク でのアクセス制御の方法を角見した。このガ去を導入する 今回は、クライアント認証を用いた WWW サーバー 図 11 今回紹介した 3 つの方法の鄲、 User + Passwd -(SSL で保護 ) ser 十 Passwd ( b ) パスワード認証と SSL の併用 ( やまぐち・すぐる奈良先端科 ! 物支術大完大学 ) ント認証を重加勺なコンテンツに適用する力法を紹介する。 次回は、 CGI などのプログラムを用いて、このクライア しい。 人は、ぜひ X. 509 証明書による認証の導入を検討しては 現力呵能になる。 WWW サーバーを管理・運用している 固な情報管理基盤、あるいは柔軟なアクセス制御基盤の実 組み合わせた応用も考えられている。この意味で、より強 したように、 X. 509 証明書については IC カードなどと イ SSL で保護 X. 509 証明書 (c) クライアントの X. 509 証明書と SSL の併用 65

6. UNIX MAGAZINE 2003年5月号

連載 この 図 2 パスワードえのための言聢 UNIX Communication Notes AuthName "Password Protected Area AuthType Basic A110wOverride None く Location /protected> AuthUserFi1e /usr/10ca1/apache2/conf/=> かま現できる。この場合は、ユーザーグループに同じ情報 ( 誌面ク ; 合上、て折り返しています。以、下 1 研 く /Location> valid—user passwd. protected トリ protected をパスワードてイする例をみてみよう。 ワード認証の各種設定をおこなう。以下では、ディレク Apache の場合は、設正ファイル httpd.conf でパス たびに検査する。 ーサーごとのパスワードを登録しておき、アクセスがある れに対応するパスワードを送る。サーバー側では事前にユ す、クライアントからサーノヾーに対して、ユーサー名とそ パスワード認証のメカニズムはきわめて鵰屯である。ま てよいのなら簡単に実現できる。 力させるものである。これは、セキュリティを考慮しなく テンツにアクセスするとき、ユーサー名とパスワードを入 く使われているのはパスワード認証であろう。特定のコン クライアント認証にはいろいろな手法があるが、一番よ パスワード認証 するといった機構も必喫になる。 うだけでなく、認証情報を CGI などのプログラムで処理 処理を実行する。したがって、クライアント認証をおこな されたユーサー情報にもとづき、それぞれに応した適切な 組みか基本になる。この場合は、クライアント側から提示 たとえば、インターネット・バンキングなどではこの仕 覧するコンテンツが異なるといったケースだ。 アクセスしていても、ユーサー A とユーサー B とでは閲 に変えたい場合である。つまり、同じ WWW サーバーに もう 1 つ考えられるのは、提供する情報をユーザーごと クトリへのアクセスをうまく制限すればよい。 を提供するので、 WWW サーバーの管理下にあるディレ UNIX MAGAZINE 2003.5 http://サ—/<—/protected/ 場合には、 ます、 httpd.conf に図 2 のような置を追加する。 図 3 パスワード入力パネル ( クライアントは Mozilla 1.3 ) Ent ユお n 旧鉾沼 password 十” r ー 0 ct ド swd ea ” 18 引局 st ロ lEe Passonrd M 許旧物、加 reoenEEr t 鉾 values. パスワード認証をおこなうことを指定する。 ・ AuthType Basic おこなっている。 ィレクテイプを使う。この例の場合は、次のような設定を パスワード認証のための設定には、、、 Auth " で始まるデ する。 ディレクトリごとのすべての設定を httpd.conf に記述 AllowOverride ディレクテイプでは None と設疋し、 と日当することで、 DocumentRoot の下に組み込んでいる。 A1ias /manual "ServerR00t のフノレヾス /manual" ディレクトリは ServerRoot/manual にある。これを、 ディレクトリに関する設定を参考にするとよい。 manual サプ 標準の httpd.conf ファイルに言当されている、 manual サプ クトリの別名 (alias) 機能を使えばよい。 Apache に刊属する 全に異なるディレクトリを用意して管理したいのなら、ディレ 指定されている DocumentRoot からの相対パスである。完 このディレクトリ protected の位置は、 httpd.conf で にアクセスするとパスワード認証がおこなわれる。 ・ AuthName のようなメッセージで、、 XXXX " の部分に表示される。 "XXXX ” on サーノヾー名 TO view this page, you need to 10g ⅱ 1 to area たとえは、 トに送られ、パスワードを入力する画面に表示される。 認証についての名前を指定する。この情報はクライアン ・ AuthUserFiIe 五 カバネルの上に表示されている。 と設定されており、それがクライアントのパスワード入 AuthName " 0 Ⅱ protected passwd area" 図 3 の場合はサーバー側で、 59 る。パスワード・ファイルは htpasswd コマンドで作 file に、パスワード・ファイルのファイル名を指定す

7. UNIX MAGAZINE 2003年5月号

特集 SoIaris 9 の管理と運用 14 ~ 26 行目 : スナップショットで作成された読出し専 用のキャラクタテンヾイスの内容を、 ufsdump で /var /tmp/exp. home. 02ー02ー09. dmp ファイルにノヾックア ップする。 こで指定しているオプション、、 N " は、 /etc/dumpdates ファイルに書き込むファイルシス テムの名前を、引数で指定された値にの場合は / dev /rdsk/c0d0s7) で指定された値に変更するものであ る。このオフションを指定しないと、 /etc/dump- dates ファイルに読出し専用のファイルシステム / dev / rfssnap/0 のエントリが作成されてしまう。スナップシ ョットを作成したとき、 /dev/rfssnap/() というテンヾ バッチのとアップグレード 推奨バッチの適用 Solaris にかぎらす、高機能化する OS では付属ソフト ウェアのセキュリティ・ホールか次々と発見されている。 Sun は、、推奨パッチ " というかたちでセキュリティ対策 用のパッチを無償で公開しているので、すくなくともこれ だけはインストールしておくことか望ましい。とくに、イ ンターネットに直接接続しているマシンではセキュリティ 対策パッチをこまめに適用し、高いセキュリティ・レベル を保っ必要がある。 推奨パッチを含む Sun からの無賞パッチは、図 13 の Web ページからダウンロードして使用する。 個別のパッチを入手して適用してもよいが、多数のパ ッチをまとめて処理できる、、パッチクラスタ " というパッ ケージが用意されているので、これを利用するとよいだろ う。図 13 の Web ページから、 Solaris の該当するノ、 ジョン用のものをダウンロードする。 2 ~ 4 週間に 1 回の 割合で更新されているが、ファイル名などは同しである。 また、 Solaris 9 のリリース ( たとえば 12 / 02 版など ) や ハードウェア構成によっては、不要もしくは適用できない ものが含まれていることもあるが、これらはインストール 時にスキップされるのて気しなくてもよい。 パッチは ZIP 形式て配布されているので、 unzip コマ UNIX MAGAZINE 2003.5 イス名がほかのファイルシステムに対しても割り当てら れてしまうため、これは望ましい重加乍ではない。 /etc/ dumpdates ファイルには、正しい ( オリジナルの ) デ バイス名を書き込んでおくべきである。 27 ~ 28 行目 : バックアップカ冬了したので、 /export/ home のスナッフショットを OFF にする。 29 ~ 30 行目 : /etc/dumpdates ファイルの内容を石忍 する。 N オプションで指定したデバイス名、すなわち もとのテンヾイス名か書き込まれているので、インクリメ ンタル・バックアップをおこなうときも困らない。 図 13 SunSoIve Online ーフ , イル凹編無印表示 Y ) ジャンア但 ) ブッグマーグ但 ) ツー井 ( りウインドウ ) ヘルプ ( 旦 ) ま愛を蹴わ - ををに 再読み込み止 印刷 ー島 M 朝第 A 0 ホームラジオ t “叩師 OJP 検素台新 000Ad アックマーク 、ヨ SunSolve Patch Access ・第 . 、こついて一物 5 Ⅲ凵のイト 5 プの ◆、 ~ ) ) 0 を 寺製品 & サービス ↓サポト & トレーまンツ ) を 0 グインしてい SUNSOLVC ONLINE Patches ・ SU 霹ルを 、パッテ ? サポート資料 , セュリティ情報 ) 拡張検案 ? 日本サイト情報 第 5 凹 0 ミラーサイ サポートフォーラム (US) - 5un50 ⅳ・について ・お問い合わせ先 、サイトマップ 、 Fe 顴 0M0 に 釦”釦ⅳをの - Ho 飛 SUPPORTCENTER ONLINE 検耋のヘルア の シスムハンドブッ 0 は下の ? 1 ールドにパっヤ ! ら - , 。を入力して下さい 6 団 5 ド 4 : 8 ( 1 新 6 ( 5M) ~ を 6Q94 れをを、一補ⅵ ( 171M ) こを 1 ( 560 J2 53 田 2 当 1 卩 4 を 靆 5 is ~ 6 ( : 07M ) 認 SOI 製に 251 6 ( 8 ~ M ) 53 第 is ~ 6X い 64M ) 盟 5 国 isb ( 43 町 J2W56 第に 6 , ( 174 5 第は 7 0 を替の し一ティンレスムパッ キ、第た以レリテ・ ! に をするとをわれるオ′ ーティンン矛ムノ弋” し チて宿成されていま下、 お使いのし一ライング ン冫彎ムを選し、次に、 犬ウキグラユタのダつ、 いード、または純破を してください、 左記に表示されていない を一リリ、一スのクラタ パいをし・ツは、こちら を : 覧下さい グトをおいお名のお い . 愛” 5 い・、パッキグつン クをクスタ , 第ロード - ”“アヴトをお使 第当ドキュメント : 完了 ( 6672 砂 ) は毎回だいたい同しなので、慣オレしば翁め読みもできるよ のファイルに記されている。英文だが、書かれていること 目をとおしておく。もちろん、インストール去などもこ パッチに含まれる README ファイルには、かならす ンドで展開してからインストールする ( 図 14 ) 。 =patches/patch-access http://jp ・ sunsolve. sun ・ com/pub-cgi/show.pl?target うになるはすである。 45

8. UNIX MAGAZINE 2003年5月号

最新ス→リーミング動向 宇タ田ヒカルライプ中継 大規模ストリーム配信の要素技術 沖本忠 の資料などをヾて、この変崟をたどっているうちに製か しくなってしまいました ) 。 大規模なストリーム配信の場合、 1 台のサーバーだけで 運用しようとすると、そのサーバーの生能やネットワーク の制約などから石定をきたす可能生か高くなります。その ため、通常は複数のサーバーを用意します。 RealServer には、、スフリッティング (splitting)" という分散技術が あり、エンコーダから流れてきたソースを複数のサーバー に分昔己信することができます。 COP3 の際の基本的なシステム構成を、図 1 に示しま す。細かい話をすると、当時のプロトコルは pnm だった り、メタファイルの言当でスプリッタへのパスの指定を省 いたりと、違うところがあります。ですから、以下の説明 はあくまでも全「純勺なイメージとして捉えてください。 素材をエンコーダで処理してエンコードソース (live. (m) を作成し、これを親サーバーに配信します。工ンコー ドソースは親サーバーからクライアントに直接送られるわ けではなく、ほかの ReaIServer にライプ・プロードキャ ストされます。スプリッタ (splitter) として設定された 子サーバーである RealServer は、ストリームをクライア ントに再度プロードキャストすることで、よりクライアン トに近いところへ工ンコードソースをコピーすることがで きます。また、親サーバーから子サーバーへ送られるのは 1 ソースを再生するぶんのライプソースですから、イ吏用帯 域を最小限に抑えることができます 2 。このスプリッティ ング技術を利用すれば、大規模な配信もスムーズにおこな 2 この 2 月に、 IETF の CDI (Content Distribution lnternet- working) WG から Content lnternetworking の用語に関する RFC3466 [ 3 ] が公開されました。この RFC では、親サーバーにあた るものを、 origin" 、コンテンツのコピーを受け取ってクライアントに配 信する子サーバーに相当するものを、 surrogate" と呼んでいます。 はじめに 前回は、日本のストリーミング史長最大規模の配信を 当した宇多田ヒカル ( 以ード、ヒッキー ) のネットイベン トの兼を紹介しました。今回は、私自身のストリーミン グとのかかわりを振り返りながら、大規模なストリーミン グ配信における要支術について、ヒッキーライフてイ吏わ れた技術を中心に解説します。 大規模ストリーム配信との出合い かなり前から医や映像関係に興未をもっていた私は、 StreamWorks や RealAudio が登場したころから、と くにストリーミング技術に注目していました。といって も、最初は単体のサーノヾーて験証程度に遊んでいただけで すが、しばらくして大規模なストリーミンク配信に携わる 機会に恵まれました。 1997 年夏の甲子園高校野球中継、 そして地球温暖化防止京都会議 (COP3)l [ 1 ] のインター ネット中継です。 1997 年夏の甲子園高校野球中継では、国内の 4 カ所 ( 東京、大阪 x 2 カ所、神戸 ) に分昔己置したサーバーを 連携させる形式て漣用をおこないました。また、 COP3 の 運用は世界 6 カ国 15 台以上のサーバーを連携させる大が かりなものでした。当時、これらの中継に使われていたス トリーミング・システムは、夏の甲子園では ReaIServer 4.0 、 COP3 では RealServer 5.0 でした。その後、 Re- alServer は RealSystem G2 、 RealSystem iQ になり、 山万版は HeIix Universal Server となっています ( 過去 1 http://www.cop3.ckp.or.jp/ = 二ロ 118 UNIX MAGAZINE 2003.5

9. UNIX MAGAZINE 2003年5月号

SC 翡 はじめての Li 皿 x からビジネス運用まで。 試験対策テキスト & 模擬問題集 6 ネットワーク 6 ネットワーク プロクラミング プログラミング 第全■・一 T 資格の全米トップ 3 にランキンク 完全合格 RHCE Red Ha 蓄認定工ンシニア 試験対策テキスト & 模擬問題集 新刊 ed Hat 認定工ンジニア Vine Linux 2.6 システム管理ブック 萩野純一郎著、小川彩子訳 A5 判 / 304 ページ 本体価格 3 , 200 円 旧 v6 コア開発者執筆の 旧 v6 プロクラミンク解説書 IJN Ⅸソケット A を使い、洗練された移植性の高い手 法で旧 v4 / 旧 v6 バイリンガルプログラムの作成方法を 紹介します。特にプログラム例のセキュリティに配慮し、 RFC などの邦訳資料を収録しました。 レッドハット株式会社監修、株式会社テンアートニ著 A5 版 / 392 ページ / 本体価格 3 , 500 円 国内初の Red Ha* 認定工ンジにア試験書籍 ! 本試験にそって、デバッグ、選択、インストールの順に本試験さ ながらの模擬問題と詳細な解説をした 1 冊。 加 * 2 の野村直著 北浦訓行著 @灯監修 B5 変型版 / 336 ページ A5 版 / 400 ページ CD - ROM2 枚付属 本体価格 2 , 200 円 本体価格 2 , 800 円 @ー T の人気コンテンツ「凵 n リ TipsJ Vine 凵 nux を使いこなそう ! が本になって登場 ! 初心者が Vine Linux を本格的に使えるようになるため に、システム管理とイントラネットサーバーの構築・運 技術系 Web サイト@lT(http://www.atmarkit. CO. jp/) 用を解説します。 の超人気コンテンツー「 Linux Tips 」が本になりました ! 3 大ディストリビューション (RedHatLinux/Vine Linux 2.5/Turbolinux 8 ) の最新版に完全対応 ! ASCII Vine [ リ x 26 ( FTD 版 ) を完全収録 ! Linux Q&A ビギナ—XTips I v6 使って学ぶ 6 ーフ ブック 砂原秀樹監修 増田康人、長橋賢吾、有賀征爾著 A5 判 / 256 ページ 本体価格 1 ,900 円 注目の旧 v6 を小さなネットワークを 作りながら丁寧に解説 注目のネットワーク技術旧 v6 の特徴と基礎知識をわか りやすく解説し、 F 「 ee BSD を使用して実際に身近なネ ットワーク環境を作成します。応用として、旧 sec を利用 した実際的な設定事例を紹介。 0 WideStudio v3.00-3 ーⅣ do Ⅳ s 版 廴所リ x 版 / So s 版、ン一スコード プログラミング WideStudio 完全 Sun ONE 完全解説 —J2EE 十 Web , ヨ』上当いサ当 サービスとその未来 おもてじゅんいち著 APC 書籍編集部編 A5 判 / 232 ページ A4 変型判 / 200 ページ 本体価格 1 , 900 円 本体価格 2 , OOO 円 初心者でも楽に Pe の基礎から実用的な サン・マイクロシステムス社が提娼する次世代 コンビューティン久 Sun 0 Ⅳ E のすべてを解説 C 引を作成するための書籍 ! PerI の初歩から具体的な実践例までをコンスタントに サン・マイクロシステムズ社が提唱する Sun ONE(Sun まとめ上げ、初心者にも購入しやすい価格帯を実現し Open Net Environment)0 そのアーキテクチャ、思想、 ました。 C 引などのスクリプトをこれから使用しようと テクノロジー、製品は、企業システムの未来を示していと しているユーザーにおすすめの一冊です。 いえます。本書では、 Sun ONE の包括的な解説および 関連製品の紹介をしていきます。 0 橇説 プログ冫ミング WideS 加 dio ーオ - ンソース、マルチプラット フォ - ム対応統合開発環境ー PerI/CGI スクリプト入門 平林俊一、玉木徹、末竹弘之、重俊博、白澤克年、 金泰斗、山本清、山崎亮、おぐらともふみ著 B5 判 / 384 ページ CD - ROMI 枚付属 本体価格 3 , 600 円 Windows/X7 1 両対応の G アプリがこれ 1 本で作成できる ! 本書は WideStudi0 の作者自身による WideStudi0 初 の解説書です。解説は、プログラミングテクニックだけ でなく、作者だからこそ言及できる内部構造にまで至り、 非常に員重なものとなっています。 qmail メールサーバの構築 qmail 電子メールシステムと sendmail Postfix メールサーバの構築 メールサーバの第第 電子メールシステムと sendmail 4 Richard Blum 著 ( 株 ) コスモ・プラネット訳 Richard BIum 著 A5 判 / 656 ページ ( 株 ) コスモ・プラネット訳 , 榊正憲著 本体価格 3 , 800 円 A5 判 / 688 ペーシ 、 A5 版 / 344 ペーシ CD-ROMI 枚付属 本体価格 3 , 800 円 本体価格 2 , 800 円 qma 〃を使ってネットワーク管理を簡便に ! もっとも詳しい Postf ⅸメールサーバの解説割 sendma 〃の本質がわかる 設定がカンタン、効率的、安全性が高いという qma ⅱの Postfix のインストールから、設定、運用まで、あますと 現代のメールシステムを支えている主要なサーバブロ 導入から設定、運用までを、 FreeBSD と Linux を取り上 ころなく解説。また、外部データベースパッケージに保 グラムである sendma ⅱの根本的な仕組みと実用的な げつつ詳細に解説。付属 C D- R 0 M には Fre e B S D 運用を技術背景まで踏み込んで、がっちり解説。 存されている情報をルックアップテーブルとして使用す 4.4- 日 ELEASE と qma ⅱソースを収録。 る方法についても解説。 企業内研修・引用によるカスタムメイド・ OEM 供給に関してのお問い合わせ先 . 法人営業担当 ( 03 ) 5362-3327 ・表示価格は消費税を含みません。・本製品は書店および書籍を扱っているパソコンショップでお買い求めください。・品切れの際は書店にてご注文いただくか、通信販売をこ利用 ください。・通信販売のお問い合わせ先 . アスキーストア電話 ( 03 ) 3499-9300 http://www.ascii-store.com/ ・ ASC Ⅱの新刊・イベント情報を毎週お送りするメール マガジン A - Ma ⅱ . yom のお申し込みはこちらから http://www.ascii-store.com/a-mail/ 新刊