Mac OS X の アプリケ - ション開発 久保陽太郎 先進的かっ魅力的な Mac OS X の開発環境を用いたネイティブ・アプリ ケーションの開発は、プログラマーにとって貴重な経験になるはずである。 開発環境としての Mac OS X について、 Objective-C による Cocoa プ ログラミングの概要、 Xcode を用いた開発手法を解説 し inux のプロセス 白崎博生 し inux カーネル 2.6.13 にもとづき、プロセスの生成から消滅までの仕 組みを解説。今回は、スケジューラとディスパッチャのコ - ドをみながら、 プロセスの切替えや起床、クロック割込み、スケジューラの呼出しについ て説明する。 2 0 0 6 / 0 2 ( 0 n t e n t S [ 特集 ] 24 69 連載 4 4 5 8 9 0 UNIX Communication Notes ・・・・・・山口英 情報管理の第一歩 ネットワークとセキュリティ・・・・・・白畑真 統合ホスト型侵入検知システム OSSEC HIDS 国立天文台のネットワーク・・・・・・大江将史 SSL VPN の導入—AventaiI EX -750 の基本設定 天文学と UN Ⅸ・・・・・・台坂博 M 円による通信の性能を測る ネットワーク・ミニ実験室・・・・・・荒井美千子 DNS サーバーの制御ーー rndc プログラム プログラミング・テクニック・・・・・・多治見寿和 設定ファイルの読込みーー get ー work ⅱ st 関数 COVER, CONTENTS DESIGN, ILLUSTRATION ・ MORIYA, KAZUO (AUDREY THE DESIGN)
ク旧 国立天文台のネットワー 図 1 EX -750 窈冓成 ( 1 ) 外部ネットワーク 写真 1 Aventail 刊 X -750 一 , " を C6503 境界 EX - ア 50 ・・・・ファイアウォール第・・第第第 EX -750 内部ネットワーク 図 2 EX -750 の冓成 ( 2 ) 外部ネットワーク 0 EX -750 ファイアウォー丿レ D MZ スもきめ細かく卸できます。 製品は、同時利用者数や高可用性の有無により、 EX- 内部ネットワーク 2500 、 EX ー 1500 、 EX ー 750 の 3 種類があります。同時利 用可能ユーザー数は、 EX ー 2500 が最大 2 , 000 、 EX ー 1500 マートトンネル・アクセス、Ⅵ Teb べースの TCP プロキシ が最大 100 、 EX ー 750 は最大 25 です。、、最大 " というの ・アクセス、 Web アクセスの 3 種類です 3 。 Aventail はノ、一ドウェアの上限で、実際の同時利用可能数は、、ライ の製品は SSL (TCP の 443 番 ) を用いた VPN を構築す センス " の数によって変わります。 るため、 SSL 通信カ河能なら、上記の 3 つの VPN 機能 ライセンスは同時利用者数についてのものなので、登録 カ駛えます。 ユーザー数が 100 人だろうが、 1 , 000 人だろうカ躙係あり スマートトンネルでは、クライアントに IP アドレスを ません。天文台の職員総数は約 250 名ですから、費用対効 割り当てます。したがって、 IPsec VPN と同様の通信環 果を考慮して EX ー 750 を選択しました。購入価格は、 25 境カ甘是供でき、 SSL 通信であるぶん、 IPsec VPN よりも ューザーのべーシック・ライセンスで約 99 万円でした。 ファイアウォールや NAT との相性がよいといえます。た だし、現状でサポートしているのは Windows プラットホ EX -750 の構成 ームだけです。スマートトンネルの提供方法には、オンデ EX -750 ( 写真 1 ) は一ヨ殳的なラックマウント型 PC で、 マンド・トンネルとコネクトトンネルがあります。前者は、 Debian べースの Linux 上で SSL VPN ソフトウェアが アプライアンスへの HTTPS (SSL) 接続開始時にトンネ 動いています。ネットワーク・インターフェイスが 2 つあ リング用アプリケーションが自動的にクライアント上で実 り、図 1 のようにファイアウォールの外部と内部に接続し 行され、 IP アドレスが割り当てられます。ただし、 Web たり、図 2 のように 1 つのインターフェイスだけを使って 経由でアクセスするため、 IE (lnternet Explorer) か、 DMZ に設置する方法がとれます。 JVM または Active X に対応した Firefox プラウザが 製品には、電源ケープル、シリアルケープル、マニュア 必要です。一方、後者では専用 VPN ソフトウェアをイン ルなどが含まれています。 ストールし、それを用いて VPN 接続を開始 / 終了します。 EX- 750 の機能 なお、両者の VPN 機能には違いはありません。 TCP プロキシー・アクセスは、 Java と SSL に対応し EX ー 750 ( 上位機種の EX ー 1500 / 2500 は、 EX ー 750 の 機能をすべてもっています ) の VPN アクセス方法は、ス 3 利用可能な方法は、購入するライセンスにより異なります。 57 UN 工 X MAGAZINE 2006.2
2006 年 2 月 1 日発行 ( 毎月 1 回 1 日発行 ) 第 21 巻第 2 号通巻 232 号昭和 63 年 9 月 5 日第三種郵便物認可 Feb. 2006 定価 1100 円 ' ユニックス・マガシン , 》 7 〈 , 一 = ・々第シ「〈デム 0 も ~ ン三」 ~ ン kMac OS X の アプリケーション開発 ネイテイプ・アプリケーションの作成 ・ Object ⅳ e -0 の甚本 ・ Xcode で Web7 ラウサを作る ・困ったときは し inux のプロセス ケジューラとディスパッチャ ・プロセス切替え ・クロック割込み ・スケジューラの呼出し 国立天文台のネットワーク SSL VPN の導入 天文学とリ N Ⅸ M 円による並列計算 プログラミング・テクニック newsyslog—get-worklist 関数 ネットワーク・ミニ実験室 DNS サーバーの制御ーー rndc プログラム リ N Ⅸ便利鮎 M00 引 e で作る e - ラーニングサイト し inux のツールたち 電子辞書の利用 MY Life With … Podcast と音楽マーケット
図 5 リモートホストから DNS サーバーの制を許す言 (named. conf) key " rndc-key" { a190r 土む hm hmac-md5 ー secret " a51ZezYVD086VQPMUMxXwg= であることを未しています。 という設疋では、 DNS サーノヾーのネットワーク・インター フェイスのうち、 IP アドレスが 192.168.10.1 、ポート番 key ステートメントには、 rndc-confgen が出力した内 容をそのままコピーします。 号が 953 のものを使って rndc プログラムと通信します。 controls ステートメントでは、 rndc 用の通信ポート allow の remote-address には、 rndc プログラムの実 と、 rndc の実行を許すホストを以下の書式で指定します。 行を許可するホストの IP アドレスを指定します。図 5 の、 リモートホストから rndc プログラムを実行するときは、 a110W { 192 .168.10.100 ; } rndc-confgen カ咄力した内容を変える必要があります。 では、 IP アドレスが 192.168.10.100 のホストからの rndc controls { のリクエストだけを受け付けます。 inet address keys のん e 記には認証方式の識別子を指定します。 [port 〃 07 、 t ーれ社 mbe 司 a110W {remote-address ; DNS サーバーは、ここで指定したん e 記と一致する key keys { ん e リー記 ; ステートメントを探し、 rndc のリクエストの認証方式を決 定します。図 5 では、 address と 07 、た nun 訪 er は、 DNS サーバーが rndc の keys { "rndc-key" ; } リクエストを受け付ける IP アドレスと TCP のポート番 号です。 port の指定を省略すると 953 番のポートカ駛わ と指定しているので、図 5 の named. conf にある唯 ーの れます。 key ステートメント、 DNS サーバーがいくつかのネットワークに接続してい key "rndc—key" { て、 IP アドレスを複数もっている場合があります。そのよ うなときは、 address に、、 *"(IPv4) や、、 ::"(IPv6) と書く ことで、すべてのネットワーク・インターフェイスで rndc で指定された方式で認証をおこないます。 のリクエストを受け付けられます。逆に、複数のネットワ rndc. conf の言又疋 ーク・インターフェイスをもっホストで、特定の IP アド 次に、 rndc. conf ファイルについて説明しましよう。図 レスだけで rndc を受け付けるようにしたければ、 address 6 は、図 4 に示したホスト A の rndc. conf の例です。 にそのアドレスを言してください。 の設疋ファイルには、 図 5 の、 ・ key ステートメント inet 192 .168 . 10.1 port 953 認証方式の情報 controls { inet 192 .168 . 10 . 1 port 953 a110W { 192 .168 . 10 .100 ー } keys { rndc 用のポート指定と、通 { を許可するアドレス " rndc-key' options directory "/etc/namedb'l ・ north.example.com ソーンの 管理のための設定 zone "north . example . type master; file "north. example . com . 100 UNIX MAGAZINE 2006 . 2
特集 図 29 iTunes プラウザ #import く Cocoa/Cocoa. h> @interface UMDe1egate : NSObject{ @end @implementation UMDe1egate —(void)netServiceBrowser: (NSNetServiceBrowser*)browser didFindService : (NSNetService*) service moreComing : (BOOL)moreComing { NSLog (@"Library found : %@" [service name] ) ; @end int main(int argc , char* argv ロ ) { Mac OS X のアプリケーション開発 NSNetServiceBrowser* browser = [ [NSNetServiceBrowser a110C ] init] ; [browser setDeIegate: [ [UMDeIegate a110C ] init] ] ; [browser searchForServicesOfType: @"—daap ・—tcp" inDomain: @" 10Ca1 " ] ; [ [NSRunLoop currentRunLoop] run] ; return 0 ; されるデバッガ・ウインドウで [ デバッグ ] ボタンを押し ます。 xcode に付属するデバッガは gdb のフロントエンドと して働き、 gdb のほとんどの機能をグラフィカルに利用す ることができます。操作方法は VisuaI Studio などの統 合開発環境とほば同じなので、ある程度の経験があれば、と くに苦労せずに使いこなせると思います。 コマンド行で gdb を使い慣れている人のために、コ ンソールからも制御できるようになっています。ただし、 Objective-C インスタンスの変数内容を表示させるには、 print (p) コマンドではなく print-object (PO) コマンド を使います。 なお、デバッガ・ウインドウ上でも、停止した時点のソ ースコードか表示されるようになっています。 Zero Link Mac OS X のプログラムは、ビルド時にリリース用オ プションを指定しないかぎり、リンクされません。つまり、 開発中はリンクせず、オプジェクト・ファイルのまま実行 していることになります。 これは、アプリケーションのデバッグを容易にするため の工夫です。オプジェクト・ファイルを動的にリンクする ことで、実行中にオプジェクト・ファイルを再コンパイル し、次にそのオプジェクト・ファイル内の処理に入ったと きから変更を肩効にすることができます。 UNIX MAGAZ 工 NE 2006.2 たとえば、、、ビルドとデバッグ " を選び、デバッグが開始 されたら、ソースコードの URL を適当に変更し、 [ 修正 ] ボタンを押してみましよう。 これ以降、 [ ホーム ] ボタンを押すと、変更した URL に 飛ぶようになるはずです。 Mac OS X の進化 Cocoa 環境は NEXTSTEP から受け継がれた歴史あ るフレームワークですが、 Mac OS X は頻繁にバージョ ンアップされています。今回作成した Web プラウザでは、 Safari 1.0 と同時に公開された WebKit を使っています が、 Mac OS x 自体の進歩にともない、 Cocoa にはこれ 以外にもさまざまな機能が追加されています。 Bonjour Mac OS X 10.2 では、 Rendezvous という機能が追 加されました ( その後、商標権の問題で Bonjour と改称さ れました ) 。 これは、 IP ネットワーク上で Zero-Conf ネットワー クを実現する手法の 1 つで、 IETF に提案されています。 従来の IP ネットワークでは、接続するために IP アドレ スや DHCP サーバーの設定などをおこなわなければなら ず、ネットワーク上のサービスを利用するには提供元のホ ストの情報も必要でした。 37
図 3 国立天文台での EX -750 運用尉竟 た Web プラウザさえあればよいので、幅広い OS での利 用が可能です。 SSL で接続後、プラウザ上で TCP プロキ ・ソフトウェアか起動し、 EX ー 750 上で設定された組 合せの TCP リレーカ駛えます。 Windows 対応のダイナ ミック・リダイレクトというモードでは、 EX ー 750 で設疋 することなく、 TCP 通信が自動的に TCP プロキシーへ リダイレクトされ、よりシンプルにアクセスできます。 最後の Web アクセスでは、 SSL 通信における Web プ ロキシー機能力甘是供さ楸外部から内部の Web リソース への安全なアクセスが可能です。 EX -750 の設定 いつもながら、すこしでも安く上げるために筐体だけを 購入しました。今回は、設置から運用に至るまでの設定方 法と、私がはまった落し穴について報告します。 EX ー 750 の設定は、すべて Web プラウザ上でおこない ます。なんらかの問題で Web プラウザから設定できない ときは、シリアルポートや VGA 、 PS/2 キーポードを接 続して原因を調べますが、たいていは修理が必要な状態に なっています。 今回は、初期設疋時に設疋用 PC と EX ー 750 をクロス ケープルで接続し、利用する IP アドレスやホスト名、経 路などを設定しました。その後、運用ネットワークに接続 したうえで、台内ネットワーク経由で設疋をおこないまし た。なお、 EX ー 750 出荷時の IP アドレスはマニュアルに 定か表示されます。右上には、ホーム画面への、、移動 " 、、ヘ 記載されています。 ルプログアウト " カ哺時表示されています。 以下では、図 3 の運用環境での構築を例に説明します。 システムリソース ( ユーザー数とネッ ホーム画面では、 EX ー 750 のホスト名は vpn.nao-example.org 、 IP アド トワーク利用率 ) の状況や、ディスクと CPU の使用状況 レスは 192.168.0.1 とします。スマートトンネル・アクセ などが表示されます。より細かな内容は、、、 Monitoring スでは、クライアントに割り当てる IP アドレスを定義する の、 System Status" で見ることができます。 必要がありますが、今回は 192.168.10.10 / 24 ~ 192.168. 10.20 / 24 とします。 基本言又疋 EX ー 750 側での設定は、 Web プラウザでポート番号 SSL VPN の設定をする前に、 EX ー 750 上で IP アドレ 8443 へ HTTPS で接続しておこないます。今回の例で スや、ホスト名、 NTP ( 時刻 ) などの設定をおこないます。 いえば、下記の URL にアクセスすることになります。 EX ー 750 では、各項目について AMC で設定して保存 https ://vpn. nao—example. org : 8443 / console / し、それを反映させます。 AMC で設定を保存しただけで は、反映されません。設定を変更すると、 AMC の右上に 図 4 の画面でログインすると、、、 ASAP Management Console (AMC)" か起動します ( 図 5 ) 。 AMC では左側 Pending changes" と表示されます ( 図 6 ) 。これをクリ に設定項目の大分類が表示され、右側に各項目の詳細な設 ックすると、、、 Apply Changes" のページ ( 図 7 ) になる 外部ネットワーク 192.168.0.254 内部ネットワーク 192.168.0.0 / 24 192.168.0.1 EX -750 図 4 ログイン画面 ASAP Management C0n50 厄 3 可を、を扁 0 図 5 AMC 5 ま : れ第 0 第第こ第ⅸ Aventait ASAP Management ( 0n560 ^ 、℃ト取 い、ぐ物 ` 、、′ 0 、 00 1 はに 0 今 0 地物物 00 ! 0 角′′、、、ド、当ゆ、、 ` ( まい れ第物を一い 0 0 、ま、 0 い、ヤ毓新」 00 第を物を、 , ・物いは感い山・非 0 をを第 を 0 、を、秘 第・一 00 、′破を m 社れ、を 58 UNIX MAGAZINE 2006.2
写真 1 壊れた、 veb サ 染に気づくのが遅れてしまいました。 感染が発覚したのは、このウイルスに感染した計算機が NetBIOS 経由で大量のデータをネットワーク・プリン タ宛に送り、周辺にあったプリンタを軒並みダウンさせ てしまったことからでした ( 関係者の方々には、大変な 迷惑をかけてしまいました。深くお詫びします ) 。 この計算機は、 Windows Update を自動的におこなう 設疋にしていましたが、一時的にしカ硬わないこともあ り、ウイルス対策ソフトは入れていませんでした。これ が命取りでした。 この引機カ鮟続されていたネットワークには、外部の 人力ってきた PC なども接続されます。ですから、よ く考えると、ウイルスの被害を受ける危険性がきわめて 高いところなのでした。後海先に立たずですが、ちゃん と対策を施しておくべきでした。 OS を入れなおしてもよかったのですが、まずは、下記 の無償 / 有償のウイルス対策ソフトでウイルスを駆除し てみました。 ◇ Stinger McAfee が無償で提供しているウイルス駆除ツールで す 2 。問題の計算機は即座にネットワークから切り離 したので、ほかの言 t 算機でこのツールをダウンロード し、 USB メモリキー経由で問題の計算機にインスト ールしました ( 使い方は、 stinger の Web ページを参 照してください ) 。使用したのはバージョン 2.5.9 で したが、残念ながら、このバージョンではウイルスを 検知 / 駆除することはできませんでした。 ◇ NOD32 Windows 用のウイルス駆除製品で、キヤノンシス テムソリューションズから発売されています 3 。 Nor- ton や McAfee などとくらべると、知名度はいまひ とつのようですが、ほかのウイルス駆除ツールにくら べて軽央に動くのカ徴のようです。部署内で購入し たライセンスが余っていたので、 NOD32 で調べてみ たところ、みごとにウイルスを発見しました ( 図 1 ) 。 ウイルスに感染した計算機を扱ったのは、私には初めて の経験でした。当り前の教訓ですが、 Windows の計算 2 http://www.mcafee.com/japan/security/stinger ・ asp 3 http://www.canon-sol.jp/product/nd/ 囲 の いのですが、いかんせんハードディスクがよく壊れます。 私も同型のマシンを使っていますが、すでに 3 台のハー ドディスクが壊れています 1 。なかを覗くと、空間にあ まり余裕がありません ( 写真 2 ) 。 とくに、 CD ドライプを入れると、ハードディスクの周 辺がかなり窮屈になります。このため熱カ吶部にこもり やすくなり、ハードディスクの温度も上昇して、結果的 にディスクの寿命が短くなったのかもしれません。そも そも、このようなマシンを 24 時間常時運用することに 無理があるような気もしますが、すくなくとも、 CD ドラ イプを入れずにハードディスク周辺の空間を確保し、熱 がこもりにくくする工夫をすべきでした。 ・ Windows マシンのウイルス感染 ハードウェア開発用のソフトが Windows 専用なので、 Windows 2000 の言 t 算機も使っています。これが、メ モリ常駐型のウイルスに感染していたのです。このウイ ルスは、感染後、再起動しないと症状カ咄ないタイプでし た。今回の停電まではずっと電源を入れていたため、感 1 この停電でまたまた HDD カ醗れていたことカ斗リ明し、 4 台目となりまし 88 UNIX MAGAZ 工 NE 2006.2
ネットワークと セキュリティ 白畑真 統合ホスト型侵入検知システム OSSEC HIDS 今回は、統合ホスト型 IDS である OSSEC HIDS のイ ンストールと設定について説明します。 ホスト型 IDS とは 侵入検知システム (IDS : lntrusion Detection Sys- tem) は、監視対象によってネットワーク型 IDS (NIDS) とホスト型 IDS (HIDS) の 2 種類に分類できます。ネッ トワーク型 IDS はネットワークのトラフィックを監視し、 侵入と思われる通信を検知するシステムで、 2004 年 11 月 号で紹介した Snort などカ陏名です。 一方、今回とりあげるホスト型 IDS は、ホスト上の動作 やログなどを監視し、侵入と考えられる事象を検知するシ ステムです。ーロにホスト型 IDS といっても、その動作 方式や検知対象はさまざまです。以下に、おもなホスト型 IDS を動作方式によって分類してみます。 ファイル整合性チェックツール ファイル整合性チェックツールは、システム上のファイ ルの変更状況を調べて管理者に通知するツールです。一般 的なファイル整合性チェックツールでは、まず、 MD5 や SHA-I などのハッシュ関数を用いてシステム上のファイ ルのチェックサムを算出し、それをデータベースに保管し ます。その後、定期的にファイルのチェックサムを算出し てデータベース上の値と比較することで、ファイルの変更 の有無をチェックします。 ファイル整合性チェックをおこなうツールとしては、次 のようなソフトウェアカ陏名です。 ・ Tr1pW1re http://www.tripwire.org/ 46 AIDE (Advanced lntrusion Detection Environ- ment ) http://sourceforge.net/projects/aide ・ Samhain http://la-samhna.de/samhain/ ログ・チェックツール ログ・チェックツールは、 syslog や Apache などのロ グファイルに、パスワードの誤入力など、あらかじめ管理 者によって定義された文字列がみつかったときに通知など をおこなうツールです。 プログラムの異常終了やエラーメッセージカ第己録された 場合、 NIDS などとは異なり、プログラムの動作をもとに した対処がおこなえます。おもなログ・チェックツールと しては、下記のソフトウェアが有名です。 ・ swat ch ftp://ftp.cert.dfn.de/pub/tools/audit/swatch/ Logsurfer http://www.cert.dfn.de/eng/logsurf/ ・ logcheck http://sourceforge.net/projects/sentrytools Rootkit 検知ツール Rootkit とは、侵入者がホストに侵入した痕跡を消した り、バックドアを設置するためのツール群です 1 。侵入者は ホストへの侵入後、ログから侵入に関連した箇所を隠滅し たり、バックドアや IRC ボット、 DoS 攻撃ツールなどの プログラムをインストールすることがあります。 1 Rootkit という言葉の明確な定義はなく、上記とは異なる未で用いられ ている場合があります。 UNIX MAGAZINE 2006 . 2
NEWS 数が 50 ~ 500 規模の中小企業向けの製 術で、中央の SPAM DB サーバーと連携 スペアディスク構成で、 RAID キャッシュ ロロ。メールサーバー ( POP3 、 IMAP4) 、 は 128MB ( バッテリー して迷惑メールを検出する。グループウェ ・バックアップ 付き ) 、記億容量は 53GB または 113GB 、 Veb メールサーバー、 SPAM/ ウイルス アは、グループ・スケジューリング、カ ( 使用可能領ナ必物理容量は 73GB x3 ま 対策、グループウェア、 LDAP サーバー レンダー、アドレス帳などの機能をもつ。 たは 146GBX3 ) 。ネットワーク I / F は LDAP サーバーにより、各ユーザーカ坏リ 機能をもつ。 OS はメール処理に直化し た独自の MOS 3.7.2 。 SPAIv1ifi 機能 用できる機能を個別に制限したり、メー 10 / 100 / 1000Base TX20 は RPD (Recurrent Pattern Detec- 外形村法 ( HXWxD ) は 4 ( IU ) X48 ルアカウントのグループ・エイリアスを tion) 、ウイルス対策機能は英 sophos の 作成できる。 CPU は Pentium 4 ( 3. >< 70cmo 4GHz) 、主記億 (ECC 付き ) は IGB 、 価格 ( 税別 ) は 189 万円から。 ウイルス対策システムを使用。 RPD はイ スラエル Commtouch Software の技 HD はホットスワップ対応の RAID 1 十 SS し VPN アプライアンス nventail スタ構成、アクテイプ / アクテイプのフェ アベンティル (Tel 03-3541-9351 ) イルオーバー構成に対応。 CPU は Xeon ンを過的に使用できる。 Web プラウザ ( 2.8GHz ) 、主記億は IGB 、 I / F は 10 / は、 SSL-VPN アプライアンス「 Aven- や専用クライアントからのⅥ b コンテン 100 / 1000B e Tx 6 。 ツ、ファイルシステム ( CIFS ) 、 TCP/ tail EX -2500 」の販売を開始した。 外形寸法 ( HxWxD ) は 4.4X43X 最大 2 , 000 ューザーの同時利用力河能 UDP アプリケーションの利用も可能。各 50cmo なハイエンド SSL-VPN 装置。 SSL 上 種携帯端末、携帯電話に対応。ユーザー 価格は 474 万円 ( 同時 50 ューザーアク でレイヤ 3 のネットワーク接続をおこなう 認証システムやシングルサインオン・シ セス ) から。 ステムとの連携、ユーザー / グルーフ。単位 Aventail Smart Tunneling 技術によ り、 TCP / UDP べースのアプリケーショ のアクセス制御などの機能をもつ。クラ ネットワーク接寸応 KVM スイッチ uogical Effect ロジカルイフェクト (Tel 03-5661- に対応の予定 ) 、 PS / 2X2 、ディスプレイ。 16 で、それぞれ PS / 2 または USB 接続の 外形寸法 ( HXWXD ) は 4.4 (IU) x 5095 ) は、 KVM スイッチ「 VIANet 4 モデルを用意。同社の KVM スイッチ KVM over IP 」の販売を開始した。 Raxys-I/O Manager とのカスケード 40.4X22cm 。 価格は、 8 台接続タイプが 148 , 000 円、 VNC クライアントや Java2 対応プラ 接続か可能で、最大 136 台のサーノヾーの切 ウザからネットワーク経由でサーバーの操 替えに対応。 RADIUS によるユーザー 16 台接続タイプが 188 , 000 円。 作がおこなえる ()C の BIOS 設定画面の 認証機能をもつ。 I/F は、 10Base T/ 表示 / 操作を含む ) 。 PC の接続台数は 8 / 100BaseTX 、シリアル ( カスケード接続 •HP 高さ 2U の UItrium 960 テープライブラリ べースのリモート管理機能、バーコード 日本ヒューレット・パッカード (TeI ジ数は 24 、 I/F (UItrium 960 / 同 448 ) リーダーを備える。 03 ー 6416 ー 6660 ) は、テープライプラリ は UItra320 SCSI/UItra160 SCSIO 外形寸法 (HXWXD) と重量は、いず 「 HP StorageWorks MSL2024 テー 記憶容量とデータ軾も虫度は、非圧縮時が れも 8.8 ( 2U ) X44.5X80.7cm で 15.6 プライプラリ」の販売を開始した。 9.6TB で 80MB / s 、圧縮時が 19.2TB kgo で 160MB/s ( いずれも Ultrium 960 ド 高さ 2U のラックマウント型テープライ 価格は 157 万 5 , 000 円から。 ライプ使用時の最大値 ) 。 MSBF ( 平均 プラリ。テーブドライプは Ultrium 960 故障スワップ回数 ) は 500 , 000 回。 Web xl または同 448X1 ~ 2 、 4 タカートリッ 14 UN 工 X MAGAZINE 2006.2
図 30 フィールドと見ている URL との同期 (UMMainController. m) (void)webView: (WebView * ) sender didFinishLoadForFrame : (WebFrame * ) frame [ URLFie1d setStringVaIue : [ [ [ [frame provisiona1DataSource] request] URL] abs01uteString] ; 38 します。 入力する画面カ覡れるので、 VaIue を図 31 のように指定 上のセレクタから、、 Binding" を選択すると、バインド先を キー十 I キーを押すとインスペクタが表示されます。一番 terface Builder の URL フィールドの上で Shift 十 Apple たとえば、さきほどの Web プラウザを作成する場合、 ln ー ます。 上のみで実現でき、ビューのネ礬ヒに追随することができ coa Binding を利用すれば、これを lnterface Builder にしている事項とは直接関係のない無駄なものです。 Co- 雑化すると入り組んできますが、プログラムカ体当に問題 こうしたビューの同期用コードの呼出しは、ビューが複 見ている URL との同期に必要なコードです。 さきほど作成した Web プラウザで、 URL フィールドと 用のコードを言杢しなければなりませんでした。図 30 は、 タを保持するモデルやほかのビューに通知するため、同期 従来の Cocoa では、あるビューの変更を、実際にデー ータとビューを連結させる部分を簡単に杢する手法です。 Cocoa Binding は、コントローラを作成する過程で、デ は Objective-C で直接書く手段しか用意されていません。 ビューを簡単に構築できますが、コントローラについて lnterface Builder では、アプリケーションに必要な Cocoa Binding 扣 ur ネットワークを簡単に利用できます。 NSNetService/NSNetServiceBrowser を使い、 Bon- してライプラリ名を出力します。このように、 Cocoa では 図 29 のプログラムは、ネットワーク上の iTunes を検索 IP べースに載せ替えたものといえるでしよう。 ひらたくいえば、 AppleTalk や Windows Network を ワーク上のほかのデバイスがそのサービスを利用できます。 リケーションをネットワークにつないだ瞬間から、ネット Bonjour 上では、サービスを提供するデバイスやアプ 図 31 Cocoa Binding マ ue Bind@ Bind to: web Ⅵに (WebView) は ( on 0 Key. MOdel Key Path: main 「 ramelJRL V きを T n 0 「 m : 池物 5 日 ng Muit•pIe ぬに池 ( む 00 匚ー A ミ YS p nts AopIicatjon MOd A に費ー ( 00d に on ツ記 b 厄 ロ ( 0 に on ツ EnabIed ロ ( 0 に 00 ツ H 記 d00 ロ朝れ tvnu 。 u 引 y 5 ぬ R 5 FO 「 Not Appl•c ヨ b 第 K を 匚ー V き物 d immed*tepy M ⅵれ 0 地 VaIues 円一 ( を hO 細「 : 、 0 池ロ i00 P に ( を ho に : 図 32 Cocoa でシリアライズ (void) encodeWithC0der : (NSC0der * ) encoder { [encoder encodeObject : —title] ; [encoder encodeObject : これだけで完了です。テキスト・フィールドは、つねに WebView で見ている URL を指すようになりました。同 じ仕組みを用いて、ロード中のプログレスパーなども簡単 に実現できます。 これらは、 Objective-C の動的な特徴を最大限に活かし て実装されていますが、 Cocoa Binding によって隠蔽さ れているため、プログラマーは本来の作業に集中できます。 Core Data Cocoa Binding と lnterface Builder のおかげで、ビ ューとコントローラに関する単純作業の大部分は省略可能 になりました。 Mac OS X 10.4 から提供された Core Data は、これらに加えてモデルレイヤでの単純作業を軽 減してくれます。 Cocoa でのシリアライズは NSCoder などのクラスで サポートされていますが、これを用いてシリアライズをお こなうには、図 32 のようなコードを書く必要があります。 この程度のコードなら単純なので簡単に書けますが、モ デルカ夏雑になってくると、コード量が増えて保守しにく くなります。 UNIX MAGAZINE 2006.2