連載 / Pe 日活用のヒント 1 ; $$r-str ~ s/A\(\xb3\xf4\)l # 株式会社 \xb3\xf4\xbc\xbO\xb2\xf1\xbc\xd2$//x and do { $ s/A\xb3\xf4\xbc\xbO\xb2\xf 1\xbc\xd21 $$r-str for ( ; my $ Ⅱ ref $arg ? $arg : \$arg; my $r—str my $arg = shift ; sub strip.org/type-jp { our @EXPORT = qw(strip.org/type—jp) ; use base qw(Exporter) ; use strict ; package Encode : : JP : : StripOrgType ; 図 8 StripOrgType. pm ( 抜粋 ) \(\xb3\xf4\)$//x and do {$n = 1 ; last;}; last ; } ; 1ast ; ref $arg ? $ Ⅱ $arg ; 1 . 2 2004 / 02 / 11 図 9 org-type # $ld: org—type ( 宗 ) Exp $ 宗教法人 学校法人 ( 学 ) 社団法人 ( 社 ) 財団法人 ( 財 ) 相互会社 ( 相 ) 合名会社 ( 名 ) 合資会社 ( 資 ) 有限会社 ( 有 ) 株式会社 ( 株 ) himazu , v 18 : 15 : 03 gen-strip.org/type ・ pl gen-strip.org/type.pl を末尾のリスト 6 に示す。さき 72 ある。 Unicode で日本語を扱うことには利点もあるが、欠 今後どうすべきかは、おそらく糸喆侖の出ていないテーマで うにしたいところである。ただし、 Perl での日本語処理を る。たとえば、 Perl 5.8 の Unicode 機能を活用できるよ 今回紹介したプログラムは、いろいろと改善の余地があ ☆ 引数はとらない。 pm を生成する。 Makefile を見れは分かるが、コマンド行 ほども述べたように、 org-type をもとに StripOrgType. 点もある。とくに表示やユーザーの入力に非 Unicode を 使っている場合、 Unicode との相互変換に変換表を使わな ければならないため、効率が目に見えて下がるかもしれな い。また、そのような変換表は環境ごとに彳少な違いがあ り、非 Unicode を使っているときにはなかった新たな問 題も生じてくる。 とはいえ、今回述べたような日本語処理をおこなう際に は、紹介したプログラムは役に立っと思う。そのままでは 使えないとしても、プログラムのもとになっている考え方 や、 variant2regular のデータには利用価値があるのでは ないだろうか。 UN 工 X MAGAZ 工 NE 2004.4 ( いまづ・ひでよモルガン・スタンレー証券 )
0 Red Hat Linux の ツールたち 10 オ麩隹 CD-R の利用 表 1 パイオニア DVR-105 のムみ / 読出し速度 またまだ使える CD-R このところ、書込み可能な DVD メディアが急に普及 しています (DVD 士 R や DVD-RAM など、さまざま な規格がありますが、 こではまとめて DVD-R と呼びま す ) 。現在の DVD-R は約 4.7GB の容量があり、この点 では CD-R よりもはるかに有利です。しかし、たいていの DVD-R ドライプは CD-R も扱えますし、 CD-R のほう がメディア単価が安いので ( ビット単価では、 DVD-R メ ディアのほうがすでに安価になっていますが ) 、 CD-R に収 まる分量 ( 650 ~ 800MB ) のデータを保存するのなら、わ ざわさ高価な DVD-R メディアを使う理由もありません。 CD-R を作成するソフトウェアについては、 UNIX 系の OS よりも Windows のほうが選択肢が豊富で、しかも、 初こ、者にも簡単に操作できるよう酉されたものが多いよ うです。私も、 UNIX マシンのファイルを CD-R に保存 するときは、 UNIX マシンで CD-R に書き込むためのイ メージファイルを作り、それをⅥⅱ ndows マシンにコピー して CD-R に書き込んでいます。とはいっても、手近に Windows マシンがなければこの方法は使えませんし、 PC を UNIX と Windows のデュアルプート構成にしている 場合も、 OS を切り替えるために PC を再起動する必要が あります。 そこで、今回は Red Hat Linux 7.3 で CD-R を作成す る方法を紹介します。ドライプは、手許にあったパイオニ アの DVR-105 ( 型番は DVR-A05-J) という DVD-RW ドライプを使いました。各メディアごとの読出し / 書込み 速度は表 1 のとおりです。もともとは、 IDE (ATAPI) 接続の内蔵型ドライプですが、ふだん持ち歩いているノー UNIX MAGAZINE 2004.4 メティア DVD- R DVD-RW DVD-ROM CD-R CD-RW CD-ROM 背面 里 書込み 書込み 読出し 書込み 書込み 読出し 速度 4 物虫 2 虫 12 物虫 16 虫 8 物虫 32 虫 写真 1 ケースに入れた DVR-105 171 ・イメージファイルの作成 ます。 R を作成する際に以下の 2 つの作業をおこなう必要があり Red Hat Linux にかぎらず、多くの UNIX では、 CD- で、以降では、℃ D-R ドライプ " と表記します。 ( 写真 1 ) 。なお、今回は CD-RW の機能しカイ吏わないの きのケース (Bytecc の ME-320U2F) に内しています うため、 USB2.0 および IEEE1394 インターフェイス付 ト PC と自宅にあるデスクトップ PC の両方に接続して使 0 FAN P リ 1K0240 、じ
連載 /FreeBSD のブートプロセスをみる 図 2 proc 」 inkup() で作られるリンク構造 tqh 」 ast p rocO p—kseg rps tqh_first tq h 」 ast p_threads tq h_fi rst tqh 」 ast thread0 td—proc td—p ⅱ st next tqh—p rev td—kseg rp NULL ksegrp0 kg—proc kg—kseg rp n ext tqh—p rev td_kgli st tq h 」 ast tq h_first kg_th reads tqh—first kg_kseq tq h_prev next NULL kse0 NULL tqh—prev next ke—kg list ke—p roc NULL だに図 2 のようなリンク関係を作ります。このサプルーチ ンは、 kern/kern-thread. c で疋義されています。 それぞれの構造体がもつデータの意味は FreeBSD 5.1 のスレッドモデルに大きく依拠しているため、この記事で は触れません。詳細を知りたい人は、文献 [ 1 ] を参照して カーネル囃竟変数の読込み ください。 1949 : 1950 : 1951 : 1952 : 1955 : if (envmode = = kern—envp = static— else if (bootinfo. bi—envp) kern_ envp bootinfo. bi—envp + KERNBASE ; init-paraml ( ) ; 1 , 949 ~ 1 , 952 行目では、カーネル環境変数の先頭アド レスを kern-envp に設定しています。 FreeBSD のカーネルは、内部に保持しているパラメー タの値を起動時に変更することができます。この設定変更 カ河能なパラメータは、、カーネル環境変数 " と呼ばれ、起動 162 時に bootinfo 構造体を用いてローダからカーネルに渡さ れます 1 。 現在のカーネル環境変数の内容は、 kenv コマンドで表示 することができますが ( 図 3 ) 、残念ながら、設定できる環 境変数を一覧にした表やドキュメントはどこにもないよう です。パラメータを調整したいユーザーは、自分の責任で カーネルを読めということなのでしよう。しかし、通常は UNIX MAGAZINE 2004.4 す。 1 Linux の場合も、ローダからオプション文写列としてカーネルに渡されま static-env を生成します。つまり、 MYKERNEL. env の ァイル MYKERNEL. env を読み込んで環境変数文字列 config コマンドは envmode の定義を 1 に設定し、フ 一方、カーネル設疋ファイルに次の 1 行を追加すると、 渡された環境変数を参照します。 が設定されます。そして、このときカーネルはローダから 的に作成するファイル env. c で疋義され、通常は 0 ( ゼロ ) 1 , 949 行目の変数 envmode は、 config コマンドが自動 とくに何かを設定する必要はないと思います。
連載 / UN Ⅸ便利帖ー 0 リスト 5 ラ立データの履歴表示スクリプト く 01 > $logfile fopen("position. 103 while (!feof($logfile)) { $info fscanf($logfile, if ($info) { list($t, $ns, $lat, $ew, $ 1 。Ⅱ , $acc) $info; date("rl' print " く li > ” $ew . $ 10n く / 01 > $info = NULL ; リスト 6 ゼンリンキ歸マップの URI $ns $lat print " く a href=\"http://j ・ i ・ zenrin ・ co ・ jp/GpsMap/gpsmap ・ jsp?geo= $geo "&uid=NULLGWDOCOMO&X-acc=" "&ip=a001&pos= $ns $lat . $ew . $ 1 。Ⅱ リスト 7 AD 乗換案内の URI print " く a href=\"http://mb.jorudan . co ・ jp/gps/norigps ・ cgi?pos= $ns $lat . $ew . $ 10n. "&geo= $geo "&X—acc= "\">norikae く /a>\n" ・ リスト 8 ISS を見るための URI $1at2 substr($lat, 0 , 2 ) + substr($lat, 3 , 2 ) / 60 + substr($lat , 6 , 2 ) / 3600 + substr($lat , 9 , 2 ) / 360000 ; substr($lon, 0 , 3 ) + (substr($lon, 4 , 2 ) / 60 + substr($lon, 7 , 2 ) / 3600 + substr($lon, 10 , 2 ) / 360000 ; print " く a href=\"http://mobile.jaxa ・ jp/cgi—bin/iss/mobile_i_visibation. cgi?Latitude=%2Bt' $1at2 "&Longitude=%2B" $ 10n2 . "&Vehic1e=1\">ISS</a>\nl' ・ $ 10 Ⅱ 2 ( 誌面の都合上、で折り返しています ) ば地上からも観測できます。 JAXA では、この ISS を観 測するためのガイドとなる位置情報を観測地の緯度・経度 の情報をもとに言 1 算し、分かりやすく表示してくれるべー ジを開設しています。 このページへの緯度・経度の入力は、 F661i カ皺う、、北 緯 35 度 02 分 33 秒 73 " という形式ではなく、、、北緯 35.042703 度 " というかたちになります。したがって、 のページへの URI を作成するときには緯度と経度の値 を変換しなければなりません。この変換をおこないつつ 、、 ISS を見よう " ページへの URI を作成するのが、リスト 8 のスクリプトです。 ☆ 測イ吉果にもとづき、いろいろな情報を提供してくれる WWW ページはたくさんあります。今回は、それらのな かから、自分の好みでいくつかのページへのリンクを作成 UN 工 X MAGAZINE 2004.4 したり、自分の居場所を逐次記録したりするための仕掛け を作ってみました。 スクリプトの作成は、、思い立ったら即実行 " という方針 でおこない、細かい作業を除けば約 1 時間で使えるように なりました。この仕掛けは本格的な運用を前提にしたもの ではないので、 3 日も使えばポロカ咄るかもしれません。し かし、ボロカ咄たら直して使うというのも、題末的プログ ラムならではの楽しみではないかと思います。 ( みやした・けんすけ京都女子大学 ) 143
0 ルーティング 小原泰弘 RIP ノード A 前回までに、ルーティングと Zebra の概要を説明しま した。今回から、各ルーティング・プロトコルの詳細と、 Zebra におけるそれらの設定方法について解説します。今 月は、インターネットの初期から利用されてきた単純なル ーティング・プロトコル RIP (Routing lnformation Protocol)[1] をとりあげます。 ティスタンス・ヘクタと RIP の概要 RIP では、、、ディスタンス・べクタ (Distance Vec- tor) 型 " または、、ベルマン・フォード (BeIIman—Ford) 型 " と呼ばれるアルゴリズムを用いて経路計算をおこない ます。ディスタンス・べクタという用語は、、、終点までの距 離 ( ディスタンス ) の続き ( べクタ ) " を交換して経路を計 算することに由来します 1 。ベルマン・フォードとは、この アルゴリズムを考案し、ネットワークに応用した Richard E. BeIIman と Lester R. Ford Jr. の名前からとったも のです。 このアルゴリズムは、簡単にいえば、、伝言ゲーム " のよ うなものです。ノード A は、ノード B から、自分 ( ノー ド B) からノード C へは距離 1 で到達できる " と教わる と、ノード C 宛のバケットをノード B に転送するように なります ( 図 1 ) 。 ディスタンス・べクタ型アルゴリズムは処理が簡潔なの で、実装も簡単です。そのため、、、処理カい " などといわ れますが、ルーティング・システム全体の処理としては、、重 い " というほうカ芍商切です。このアルゴリズムでは、糸各に こでいう vector は、数学などの、べクトル " とは末カ随います。遺 1 伝学の用語として、連続するもの (sequence)" 、配列 " という未があ り、計算機のう f ではこちらの意眛で使われることがあるようです (Java 図 1 ディスタンス・べクタ型プロトコルの重が乍 ルーティング・メッセ ージの伝播 宛先 : C 距離 : 1 宛先 : C 距離 : 0 ノード B ノード C の Vector クラスなど ) 。 UNIX MAGAZ 工 NE 2004.4 ノード C への / ヾケット転送 105 うように、問題のあるノードから終点へ向かって 1 つずっ ・とい の糸各表を調べ、次にノード B の糸各表を調べ、 ら C へバケットが届かないとき、管理者はますノード A では、糸各のデバッグも大変です。たとえば、図 1 で A か ん。さらに、 RIP でルーティングをおこなうネットワーク は、ネットワークの隅々までの経路を正確に計算できませ かく大きくなりがちです。また、大規模なネットワークで RIP がルーティングに利用するネットワーク帯域は、と RIP が嫌われる理由はほかにもあります。 みなし、 RIP を用いたルーティングを嫌います。 ネットのネットワーク管理者の多くは RIP を時イ弋遅れと このような処理はおこなわれません。そのため、インター ためにネ礬隹な処理を追加しています。ところが、 RIP では ティング・プロトコルでは、無限カウント問題の発生を防ぐ EIGRP など、 RIP 以外のディスタンス・べクタ型ルー というディスタンス・べクタの特徴にあります。 ント問題 " ( 後述 ) の本質的原因は、、、距離しカ報わない " す。このような状況のもっとも重要な例である、、無限カウ な状態に復帰するまでに長い時間を要する可能性がありま 確に計算できないことがよくあります。そうなると、正常 付随するデータとして、、距離 " しカわないので、糸各を正
連載 /FreeBSD のブートプロセスをみる 2 , 128 ~ 2 , 131 行目では、 gdp¯>gd—dpl = 3 ; 、カーネル・メッセージバッ アとは、 dmesg コマンドで表示される内容をイ尉寺している ファ " を初期化しています。カーネル・メッセージバッフ バッフアです。 コー丿レゲートの言聢 図 13 セグメント・セレクタの形式 lndex 羽 RPL 2134 : 2135 : 2136 : 2137 : 2138 : 2139 : 2140 : 2141 : 2142 : 2143 : gdp = &ldt [LSYS5CALLS—SEL] . gd; (int) &X1ca11—sysca11; X gdp—>gd—hioffset = x > > 16 ; SDT_SYS386CGT ; gdp—>gd—stkcpy = 1 ; selector = GCODE—SEL くく gdp—>gd—looffset = x; gdp¯>gd-p = 1 ; gdp—>gd—type = gdp->gd- 2160 : 2161 : 2162 : 2163 threadO. td—pcb—>pcb—ext = 0 ; threadO. td-frame = &procO—tf ; 3 ー 0 ; FreeBSD のユーザープロセスは、次の 2 つの方法でシ 略します。ただ、このようにしてサポートされているとい だけにかぎりませんが ) 、コールゲートについての説明は省 す。 a. out は FreeBSD では旧い形式なので (FreeBSD ポートするために、 LDT にコールゲートを設疋していま 2 , 134 ~ 2 , 143 行目は、 a. out 形式の実行ファイルをサ していました。 イルは、 LCALL 7 0 命令を実行するコールゲートを利用 Xint0x80-syscall です ) 。一方、以前の a. out 形式のファ 生させてシステムコールを呼び出します ( 2 , 060 行目の イルは、 INT 80H 命令によりソフトウェア割込みを発 最近の FreeBSD で使われている ELF 形式のファ ・コールゲート ・ソフトウェア割込み ステムコールを呼び出します。 うことだけ知っておくとよいでしよう。 PCB の言又疋 0150 : 0209 : 2151 : 2152 : 2153 : 2154 : 2155 : 2159 : 170 int _udatasel , static struct ucodesel = udatasel = _ucodesel; trapframe procO—tf ; LUDATA—SEL くく 3 ー 4 ー 3 ; LUCODE—SEL くく 3 ー 4 ー 3 ; / * setup proc O's pcb * / threadO. td—pcb—>pcb—flags threadO. td—pcb—>pcb—cr3 Id1ePTD ; 2 , 151 ~ 2 , 152 行目では、ユーザープロセスのコードと データ用のセグメント・セレクタ値を大域変数 - ucodesel と -udatasel に設疋しています。これら 2 つのセグメン トは LDT に登録されているため ( 1 , 421 ~ 1 , 440 行目 ) 、 LDT を参照するように下位 3 ビット目がセットされます ( 図 13 ) 。 2 , 155 ~ 2 , 161 行目は、 swapper のスレッドを管理す る構造体 thread0 の PCB を初期化しています ( 図 1 の struct pcb" です )。ところが、 2 , 159 行目の pcb-cr3 に ついては、前回説明した btext の以下の行ですでに設疋さ れているはずです。 0343 : movl 0344 : 0345 : movl (2*PAGE_SIZE—PCB_SIZE + PCB—CR3) (%eax) 2 , 159 行目を実行する直前に pcb-cr3 の値を調べてみる と、 IdIePTD の値が格納されています。この行は不要で はないかと思います。 工 d1ePTD, %esi ☆ 次回は、 getmemsize() をとりあげます。 ( しらさき・ひろお IIJ) [ 赭文献 ] [ 1 ] Jason Evans, Kernel-Scheduled Entities for Free- BSD, November 7 , 2000 UNIX MAGAZINE 2004.4
RASTEC 2 。。 4 年 4 月 1 日発行 ( 毎月 1 回 1 日発行 ) 第巻第 4 号通巻 1 号 Madein 」 apan だからできること。 0 % 。 >åASTEc @COpyright 1995-2003 引 C 9 ・ ASTEC-X を貴社専用パ ージョンに カスタマイズ・サービス実施中。 Windows 対応 PCX サーバーアステック・エックス 「国産 P c x サーバー」 AST E C -X に“カスタマイズ・サービス“が登場。お客様のニーズに合わせて、特別バージョンの提供や専用 インストーラーの開発などを承ります。 P C X サーバーの大量導入を検討されている方や、バンドル販売されている方は、アステック h p : 〃 w w w. a s t e c. c 0 p / Web サイトへ。カスタマイズの事例を紹介しています。 5 丁 eC ー ー So ねⅱ s 、 HP-UX から Linux まで、主要な UN Ⅸ系 OS に対応 ー MS - E 、 ATOK などの Windows の日本語入力機構から、 X アプリケーションに入力可能 ー Windows - X 間で日本語文字列のカットアンドベーストをサポート ー 4 種類のウインドウモード ( マルチ / シングル / 仮想スクリーン / フルスクリーン ) をサポート ー Windows の色数設定とは独立の、 256 色工ミュレーション機能 ー設定アシスタントでらくらくセットアップ ー GLX 工クステンションによる三次元描画機能 ーセキュアシェルプロトコルによる暗号化通信 / 転送データ圧縮 / X11 フォワード機能 ー X 、 rexec 、セキュアシェルの各プロトコルで甲 v6 に対応 . Windows XP/Windows 2000/Windows NT 4. O/Windows Me/Windows 98 OS 機種 : PC / AT 互換機 / PC -9800 シリーズ 対応 UNIX : SoIaris/SunOS/HP-UX/AlX/Tru64UNlX/ 旧 IX/EWS4800/Linux/ 各種 PC UNIX など 価格 : 標準ライセンス 78 , 000 円 ( 税別 ) / アカデミックライセンス 29 , 000 円 ( 税別 ) アカテミックライセンスの販売条件等についてはお問い合わせくたさい。 This product includes software developed by the OpenSSL P 「 0 は fO 「 use ⅲ the 0P2n55 し T00 ⅸ心 (http: ″ www openssl.o 四 / ) This product includes ( 「 yptographic 50 れ wa 「 e written by Eric YO し ng (eay@cryptsoft.com/ 1 リ第 - ト第スド、よこを↓紀 ◆新〃 3 新バーション 4.10 リリース ロードバランス機能搭載 ASTEC - X に関するお問い合わせは e-mail:info@astec.co.jp 〒 112-0002 東京都文京区小石川 1 -3-11 イトーピア小石川梅津ビル 株式会社アステックソフトウェアプロダクト事業部営業部 : Tel: 03-5804-1853 Fax: 03-5804-1854 ・記載の商品名、会社名は、各社の商標または登録商標です。 評価版公開中 ! アステックサイトへ http://www.astec.co.jp/ T 1 1 0 8 9 0 1 0 4 1 1 0 4 ⅢⅧ引ⅢⅡⅢ朏Ⅱ馴 株式会社アスキー 定価 1100 円本体 1 , 048 円 雑誌 08901 ー 4
で、バックアッフ。処理の対象から外しています。 remove) mv -f $—cur $-back esac この関数のおおまかな動作が分かったところで、 RCS UNIX MAGAZINE 2004.4 f i 上記のコードで実行している rcs コマンドのオプション しておきます。 られないので、念のためにファイルに対するロックを解除 前の処理によりファイルがロックされていると処理カけ 理は必要ありません。 RCS ファイルがある場合には、以 イルがない場合には新たに作成すればよいので、とくに処 ます、 RCS ファイルがあるかを確認します。 RCS ファ rcs -q —u —U —M $—cur if [ —f $—cur,v ] ; then $-cur,v となります。 イル名のファイルですから、対応する RCS ファイル名は るのは第 3 引数、つまり -cur 変数に内されているファ ロックされていないかどうかの確認です。 RCS に登録す RCS の処理で最初におこなうのは、 RCS ファイルが のファイル名を指定します。 いません。また、第 3 引数には RCS に登録するファイル 合、以前のバックアップ・ファイル、つまり第 4 引数は使 を利用する場合にはやや異なります。 RCS を利用する場 数が以前のバックアップ・ファイルと述べましたが、 RCS さきほど、第 3 引数がバックアップ・ファイルで、第 4 引 グメッセージとして使います。 や -msgl は、あとで RCS にバージョンを登録する際のロ if 文の本体では、まず変数を初期化しています。 -msg0 —msgl="update" —msgO="backup archive" if checkyesno backup—uses—rcs ; then 処理をおこないます。 backup-uses-rcs 変数を調べ、真であれば RCS を使った の値カ填かどうかを検査する関数です。この関数を使って います。 checkyesno 関数は、引数として指定された変数 は、 RCS を使うべきかどうかを調べる if 文で始まって を利用する場合のコードをみることにしましよう。こちら SC 翡 好評発売中 ! プログラミング テクニック プログラミング テクニック リ N ー X コマンドのソースコードにみる inetd ftp 、多治見第和 = プロクラミング手法 ・多治見寿和著 lex 第・いを第し、 になる工第といった ーを一れに・り一す - そこには、 0 つム第第にを・ 0 ・と っさりと・り込まれています . vipw ・ B5 判、 240 ページ ・ ISBN 4-7561-4389- X ・ 1 , 800 円 + 税 生きたプログラムから学ぶ 実践的手法の数々 フリーの UNIX やアプリケーションのソース コードを見ながら、プログラミングにおけ る " 名匠の技 " を学ばうというのが本書の 目的です。長い年月をかけ、多くの人の手 ですこしすっ改良されてきたソフトウェア は洗練の度合いを増し、名匠の手になる工 芸品といった趣があります。そこには、プ ログラム開発に必要な技術がどっさりと盛 ( 本書より ) り込まれています。 目次から ソースコードから学ぶ◆データ構造◆ 2 重リンクリ スト◆木構造◆ AVL 木◆ハッシュ◆端末の操作◆端 末の制御◆ cat コマンド◆コマンド◆ファイルの ロック◆パスワード・ファイ丿レ◆ワンタイム・バスワ ード◆公開鍵暗号◆ Secu 「 e S e Ⅱ◆構文の解析◆ yacc ◆ lex ◆ ping ◆ telnet ◆ ftp ◆ inetd ◆ xst 「◆ cmp と cksum ◆ man ◆フィ丿レタコマンド (UNIX MAGAZINE 1997 年 1 1 月号 ~ 2000 年 3 月号より ) 株式会社アスキー 〒 1 60 ー 8584 東京都新宿区信濃町 34 J 日信濃町ビル 出版営業部電話 (03) 5362 ー 8800 101
430 日一 ~ い朝ク諸 寺 = 本一胤ー MiddIeware is Everywhere. あなたには見えますか ? 朝りをト朝 巨当を 、 ; 第らリ″な ップル、・ こにも、そこにも、とこにでも、旧 M のミドルウェア ウエプスフィア ミドルウェアの一つである旧 MWebSphe 「 e は、変化の激しいオンデマンド・ビジネスに迅速に 対応していく基盤となるものです。そのオープンで拡張性の高いプラットフォームにより、既存の アプリケーションやテータを活かしながら、最先端のテクノロジーをいち早く取り入れ、統合化された情 報システム基盤の構築・運用が可能となります。しかも、多彩な開発ツールを活用することで、アプリ ケーションの開発やアップデートも短時間ででき、納期の短縮につながります。投資リスクを軽減し、 将来にわたるビジネス基盤を構築する WebSphere 。ビジネスの新たな飛躍がオンテマンドで生まれます。 詳しい情報は、 ibm.com/jp/mg/websphere/ ibm.com アクセスセンター 0120-300-426 ( 受付時間 : 9 : 3 。 ~ 17 : 土、日、祝日、 6 / 17 弊社創立記念日、 12 ~ 1 / 3 を除く ) @business on demand- WebSphere. 1. すでに新しいテザインは検証済み 2. すでに、仕入先とは接続済み 3. すでに部品調達は自動化済み 4. すでに、設計図は更新済み 5. たから、シェットエンシンは離陸準備 OK
表 1 、 VebDAV 竟での榔艮の見 連載 /UNIX Communication Notes 言霍正方法 ファイルの読出し ファイルの書込み 所有者 (Owner) WWW サーバーへのユーザー名 を指定したログイン。入力するユ ーザー名は、バスワード・ファイル または X. 509 証明書に記されて いる DN を利用 httpd.conf に記述した通常のア クセス制御機構で表現する。一般 的には、 Require ディレクテイプ で以下のように具イ柘勺なユーザー名 を指定する Rem.11re user グループ (Group) WWW サーバーヘログインでき るユーザーのグループとして表現 Require ディレクテイプで複数の ユーザーにアクセスを許可するか、 グループを定義して、 Require valid—user Require group writers のようにグループ単位でアクセス 制御を実施する。上記の例では、 writers という名称のグループを 才彳定している そ窈 ) ューザー (Other) 認証を経ずにアクセスする通常の WWW サーバーの場合と同様で あり、完全な anonymous アクセ スを肴豺是とする httpd.conf でのデフォルトの動 ・作定義によって異なる Limit ディレクテイプをうまく使い、 POST と WebDAV 用に拡張されたプロトコルに対するアクセス制御処 理を言古する。 HTTP のオペレータとしては PUT 、 POST 、 DELETE 、 PROPFIND 、 PROPPATCH 、 MKCOL 、 COPY 、 MOVE 、 LOCK 、 UNLOCK がある。所有者とグルーフ。の表現は、上記の方法をそ のまま利用する サーバー上で扱われるユーザー情報は、そのサーバー内に 閉じているのである。しかも、 WebDAV で使われている ファイルのアクセス制御情報は、 WWW サーバーカ材家動 しているシステムのファイルシステムと直接の関連はない。 したがって、 WWW サーバーへのアクセス制御について の定も別途必要になる。この関係を表 1 にまとめた。 基本的には、 httpd.conf の設疋により WWW サーバ ーへのログイン (UNIX システムへのログインではない ) 時にユーザー認証を実施し、その情報をもとに適切なアク セス制御をおこなう。 ロックはシンプルに解決 最後に残された課題は、ファイルのロックである。 Web- DAV では、シンプルかっ有効な解決方法が用意されてい る。ファイルのロックおよびロック解除は、ファイルを利 用するクライアント側から指示する。そのため、 HTTP 拡 張プロトコルのなかに LOCK と UNLOCK が用意され ている。クライアントは、この 2 つの命令によってサー バーにファイルロックの指示を伝えることができる。 さきほども述べたように、 WebDAV におけるユーザー と OS レベルでのユーザーは 1 対 1 に対応しているわけ ではないから、サーバー側のロック機構を、 FFS などの ファイルシステムの機能だけ実装することはできない。し たがって、アクセス制御と同じく、独自の機構を用意する UNIX MAGAZINE 2004.4 必要がある。具体的には、サーバーではロックの処理と同 時に、そのロックを要求したクライアントに乱数で生成さ れたトークン (token) を返す。ロックを解除するときは、 クライアントからそのトークンの提示を受け、これを照合 したうえで処理をおこなう。ロックは、このような単純な メカニズムで実装されている。 httpd.conf の構造 こまでの説明をまとめると次のようになる。アクセス 制御については、 httpd.conf に以下のように記述する。 7 ℃祠勧 / e の部分には通常のデータの読出しを許可するユー ザーを、 e 市尻 e の部分にはファイルの変更ができるユー く Directory " サーバー上のディレクトリ " > ザーを定義する。 現実的な構成 く /Directory> く /Limit> Require e 市尻 e Aut hType く Limit POST DELETE PROPFIND Require 7 ℃ ad 佖 e AuthType DAV 0 Ⅱ 軽に設疋したいという人も多いだろう。 現実には、いろいろなトラブルの発生を予防しつつ、手 55