Macintosh Developer Online (MDOnline)


2002年1月15日発行号 - Windows版PowerPlant



先週の話ですが、バド・トリブル氏がAppleに復帰したとのこと。NeXTの初期のソフトウエア開発を率いていたわけですが、大谷さんが翻訳された「スティーブ・ジョブズの再臨」を再度ながめると、10年ほど前に、ジョブズ氏はトリブル氏を「切り捨てた」ということになっています。トリブル氏はNeXTをソフトウエアカンパニーにしようとしたけど、ハードウエア製造を捨てきれなかった人が多くうまくいかなかったということですが、仮にNeXTが早くからOSのライセンスということをうまくやっていたら、もしかしたら、コンピュータの世界は違っていた可能性もあるかと思うと、ちょっとワクワクしてしまいます。ただ、マイクロソフトの動きを考えれば91年の段階では微妙でしょうけど…。いずれにしても、10年も経過したら雪解けるということでしょうか。そのAppleですが、西海岸時間で16日の2:30、日本時間では17日7:30から、第一四半期の業績発表があります。前年度の第一四半期は大きく収益を悪化させたのですが、今度はどうでしょうか。クリスマス商戦の時期なんですが、やはり年明けに新機種の噂もあったから、それほど売り上げは期待できない時期かもしれません。一方で、iPadは好調ではあったみたいですが、本体に比べて単価は安いですし、収益という点ではどの程度なのかは興味あるところです。もっとも悪い内容でも、「iMacがあるさ」で逃げ切りは可能かとは思います。だけど、この前の基調講演は夜更かし、今度は早起きですか…Webキャストを後から見るというのもあるかもしれませんけど、希望を言えば、Webキャストをタイマー録画したいところです。誰か、ソフト作って下さい(笑)。
(新居雅行 msyk@mdonline.jp


Adobe SystemsはWindows向けのPowerPlantを使ってMac/Win両対応

メトロワークスは、同社の「PowerPlant for Windows Technology」を、Adobe Systemsにライセンス供給していることを明らかにした。PowerPlantは、Mac版のCodeWarriorにも付属するアプリケーション等を作成するフレームワークで、Mac OSの時代から存在し、現在はCarbon化されてMac OS Xネイティブアプリケーションの作成にも利用できるものだ。プログラムの記述にはC++を利用する。90年代後半あたりから活発に利用されてはじめている。販売されているCodeWarriorのWindows版には、PowerPlantのWindows版は含まれていない。クラス構成はPowerPlantのままで、背後ではMFCを使う形式のフレームワークと思われるが、いずれにしても、PowerPlantをベースに開発を行えば、Mac OS X/9、Windowsのそれぞれネイティブなアプリケーションを作成できる。OS間の移植の手間はそれぞれのOS向けに別々に作るのに比べて大きく削減できる。Adobe Systemsが具体的にどの製品にPowerPlant for Windowsを利用しているのかは不明ではあるが、いずれにしても、MacとWindowsの両方に対応する製品を作るための重要なツールとして利用している点ことが言えるだろう。なお、ライセンスプログラムの提供と言う点を強調しているため、PowerPlant for Windowsについては現状ではライセンス契約を結んだ特定のデベロッパにだけ提供されるという方針の模様だ。

関連リンク:メトロワークスがAdobe社にPowerPlantをライセンス提供
カテゴリ:業界動向


【MacWIRE配信予定】シマンテックが記者会見を開き米国のセキュリティ事情を解説

2002年1月15日、シマンテックは帝国ホテルで記者会見を開き、シマンテックコーポレーションのマーケティングインテリジェンスディレクターであるローレンス・D・ディエッツ氏が会見を行った。もともとはチーフテクノロジーオフィサであるロブ・クロイド氏の会見の予定であったが事情により来日ができなくなったため、ディエッツ氏が代わりに来日したと説明があった。テーマは、米国におけるセキュリティの最新事情である。

まず、成田明彦社長よりの話から始まった。ディエッツ氏は米国の陸軍大佐の経歴がある。昨年来さまざまなウィルスの発現や、9月11日のテロにより、セキュリティに対して関心が高まっている。シマンテックのセキュリティ製品は昨年の10月から3か月で40万本の出荷があるなど、驚くべき関心の高さとなっている。IPAには2001年には24000件の被害報告が寄せられているなど、ウィルスの被害は広がっている。今年もウィルスの被害は広がるだろうが、それらの対抗できる製品をシマンテックは顧客に対して提供し続ける。また、日本のユーザに対するインターネットのセキュリティに対する啓蒙活動も積極的に行う。

そして、ディエッツ氏よりの話に移った。シマンテックでは市場調査の仕事をしており、政府関連の窓口も担当している(政府に対する活動と言うのは売り込みではなく、たとえば大学でのセキュリティコース設置の働きかけや、さまざまな情報提供を行っている)。シマンテックはセキュリティ関連の会社としては最大規模で、1年間で10億ドルの売り上げを達成している。インターネットユーザの伸びとインターネットのアタックの統計グラフを示し、ユーザの増加よりも高い割り合いでアタックが増えているという実情を紹介した。コンピュータウィルスの経済的な影響のリサーチでは、被害額やダウンタイムの増加などの打撃を与えている。そして、ハッカーによる被害額は年間1兆6000億ドルとなり、クレジットカードの番号は100万も盗まれているという調査結果がある。米国では政府機関のNational Infrastructure Prectection Centerが情報の保護に当たっている。FBIの調査によると、370社程度の回答から、内部からのアタックよりも外部からのアタックが数を上回っている(従来は給与データの盗み見ることなどの内部アタックが多かった)実態が明らかになった。外部および内部からのネットワークのぜい弱性があるが、組織によってそのぜい弱性は異なる。通常は攻撃を行うには技術の高いインサイダーであることが多い。だが、退社した従業員のパスワードが有効なままであるような場合もある。そうした人事情報との関連性もセキュリティとして考慮しなければならない。
サイバーテロリズムとは、ネットワーク攻撃をぜい弱性に付け込んで、コンピュータに対するテロ行為をすることである。結果的には物理的な被害を与えることにもつながる。セキュリティの第一歩は、セキュリティポリシーの策定であり、防御をどうするかいったことを決定することから始まる。そして、そのセキュリティが確かなものかといった測定を行うことである。そこから、最終的な技術や手続き、ガイドラインの策定を行う。

米国におけるセキュリティのスタンダードについてを一覧で示した。ISO17799のベストプラクティスは、技術だけでなく、人事や物理的なセキュリティもカバーする。そして、セキュリティを実践している例として、以下のようなVISAのセキュリティルールが紹介された。


VISAが厳しいルールを守る理由は、クレジットカードすなわちお金にかかわることであるからだ。これらのルール自体はシンプルだが、日本の中小企業ユーザにも適用できる内容である。セキュリティパッチを出すだけではなく、更新し続けることが大切である。大企業ではたくさんあるサーバなどに対してパッチの更新がなされているかをチェックすることはほぼ無理である。そこではぜい弱性の管理が必要になる。さらに、アンチウィルスソフトを使うのだが、できるだけ自動的に更新されることが望ましい。10個あげられた項目のうちの5つでも確保できれば、攻撃の8割ほどは防げるとされている。パスワードの管理は難しい問題で、個人の記憶では追い付かない。そこで、複数の覚えやすいパスワードを利用することを勧める。そして、不必要なネットワークサービスを使わないようにする点は強調したい。
米国政府に関するセキュリティイニシアティブについての説明に移った。Richard Clarke氏がクリントン時代に任命され、大統領が変わった現在でもその任務は続いている。そして、ISAC(Information Sharing and Analysis Centers)を開設し、業界が情報を共有できる場を設けた。そして、政府内のイントラネットであるGOVENET、軍で使われているNMCIがある。

続いて「複合型の脅威」の説明に入った。ウィルスとワームの違いについては、ワームは人の介在がなくても自ら増殖できるものであると説明した。特徴としては、感染したところで被害を及ぼすと同時にそこからさらに別のところに攻撃をすることである。シマンテックがこうした脅威に対する戦略として、3階層に分割して検討している。1つはネットワークの入り口であるゲートウエイ、そして2つ目が各種のサーバで、3つ目がクライアントである。こうした階層の保護としてはお城を考えればよい。お城は、掘や城壁など複数の層で守られている。つまり、各層でのさまざまな側面でのセキュリティ管理が必要になる。そして、その管理を共通の基盤で行うということが必要となり、ポリシーとの整合性などをチェックする。こうした環境を実現するために、今年の夏に製品をリリースする。さらにアウトソーシングにも対応する。
脅威に対する対策のうち、ぜい弱性の管理は、必要なパッチがすべて正しく適用されているかをチェックするためのものである。さらにファイアーウォールを設置して不要な通信を遮断する。そして、ウィルス対策の技術がある。被害を最小限にするには、不正侵入を検知することや、ディスクのミラーリングを行う。問題があるところにフラグをたてるようなことを行うが、万一破損があると、ミラーリングにより短時間で元に戻すということが可能となる。
最後に結論として、重要なことは、企業のトップマネージメントが情報管理にかかわり、予算や資源の配置をしなければならないということであると指摘した。そうしないと成功はしない。米国ではトップが配慮しない場合に問題が発生した場合には、責任問題ともなる。今はセキュリティに関してはチャレンジがある。誰でも攻撃することが可能だからだ。そして、対応する側としてはセキュリティの機能を高めないといけない。シマンテックはエンタープライズだけでなくコンシューマの分野にも強みを持つ。そして、クライアント、サーバ、ゲートウエイの3つの層に対してセキュリティ製品を提供している。サポートは迅速に対応する体制が整っている。また、財務体質が健全であることから、対応もしっかりできている。

会見では、不正侵入が常時接続で増えているが、踏み台にされた会社が訴えられたり、賠償を払ったことがあるのか? 個人が訴えられることがあるのか? といった質問が出た。ディエッツ氏による答えは次の通りだ。踏み台にされた「ゾンビ」が適切な処置をしていない場合において、訴えられたというケースは知らない。企業だけでなく大学のコンピュータでもそうしたケースはあるが、今後は訴訟の火種になりかねない。考慮すべき5つの要素として、被害の度合い、被害の可能性、被害の阻止するコストの全体との対比、ケアの責任、ケアに関するスタンダードとの対比がある。訴訟では最後の2つが重要であると考えられ、まだ確立されていないところである。ソンビになったのが初めてでそれを知らない場合、原告が以前にゾンビになったことがあるのなら、原告が有利であろう。また、家庭で使っているユーザが訴えられるとは思えない。賠償能力がないからである。

関連リンク:シマンテック
カテゴリ:サーバ, 業界動向


Java Watch on the X》4 - アプリケーションをパッケージとしてビルドする(3)実行時に必要な情報

Javaの実行バイナリはclassファイルに保存されている。あるいはそのclassファイルをアーカイブしたjarやzipファイルができあがる。こうしたファイルは、プラットフォームで実行可能なバイナリではなく、JavaのVertual Machineで稼働可能な実行バイナリである。つまり、そのままでは起動できないのである。そのため、汎用的にはjavaコマンドで実行できるようになっており、Mac OS Xでも同様である。その場合には、アプリケーションであれば最低限でもどのクラスから実行をはじめるのかということを指定するし、クラスパスなどを指定する必要がある。また、その指定方法もいくつかのバリエーションがある。こうした、Javaの実行のために必要な情報の供給を、Mac OS Xでのアプリケーションパッケージはどのように行うのかを解説しよう。

――――Mainクラスの設定
Javaのアプリケーションは、あるクラスにあるクラスメソッドのmainを呼び出すところから実行が始まる。どのクラスのmainメソッドを呼び出すのかを実行時に指定しなければならない。
まず、パッケージのContents/Resources/MRJApp.propertiesファイルで設定する場合は、以下のような記述を含めておく。左がキーワードで、イコールの右側に、mainメソッドのあるクラスを指定する。

com.apple.mrj.application.main=SwingAppTest

プロジェクトにMRJApp.propertiesファイルがある場合には、それをProject Builder上で編集すれば良いが、基本的にはこの設定は最初から行われている。

◇MRJApp.propertiesファイルでの設定
 

一方、ターゲットの設定を「プロジェクト」メニューの「アクティブターゲットの編集」(Command+option+E)を選択するなどして表示し、「アプリケーション設定」のタブで「詳細表示」を選択した場合、プロパティリストでの、JavaのカテゴリにあるMainClassの項目として、mainメソッドのあるクラスを指定する。つまり、実行するパッケージでは、Info.plistの項目で、メインのクラスを指定できるということだ。

◇アプリケーション設定にメインクラスを設定する
 

いずれにしても最初から設定されているので、プロジェクト名と同名のクラスにmainメソッドがある場合には特に変更する必要はない。mainを実行するクラスを変更したい場合や、あるいはpackage文などを記述して、クラス名が階層化された場合には、これらの設定を変更する必要があるだろう。たとえば、SwingAppTest.javaファイルに「package jp.locus.msyk;」といった記述がトップに入れば、SwingAppTestの代わりにクラスへのフルパス名である「jp.locus.msyk.SwingAppTest」といった指定を行う必要がある。

MRJApp.propertiesの利用をやめて、ターゲットのアプリケーション設定を利用するように変更したいのであれば、「詳細表示」にして設定を加えるが、まず、「Java」というプロパティを加えて、そのタイプを「辞書」にする。「Java」はキータイプするが、タイプについてはポップアップメニューから選ぶ。

 

そうすると、階層化された項目ができる。「Java」の項目の左側の三角形をクリックして▼の向きにする。そして「Java」の項目を選択すると、上部のボタンが「下位に新規作成」となる。その状態で新しい項目を作る。

 

そして、新たに下位のレベルに作られた項目の左側のプロパティ名を「MainClass」、右側にはmainクラスのあるクラス名を指定すれば良い。

 

――――クラスパスの設定とライブラリ参照
Javaのアプリケーションでは、もう1つ設定を行わないといけないものがある。実行するclassを含むパスであるが、通常は、指定した名前(デフォルトはプロジェクトと同じ名前)の.jarファイルである。MRJApp.propertiesファイルでは、

com.apple.mrj.application.classpath = Contents/Resources/Java/SwngAppTest.jar

のように記述を行う。
一方、ターゲットのアプリケーション設定では、Javaのカテゴリの中の「ClassPath」というプロパティに対して設定を行う。設定結果は、MRJApp.propertiesファイルの場合と異なって、「$JAVAROOT/JavaSwingAppTest.jar」のようになっている。$JAVAROOTは、Javaのアーカイブファイルなどを入れておく規定のフォルダを指すものだ。ここでの設定は、絶対パスでなければならないようだ。Appleの文書ではMRJApp.propertiesファイルの設定と同様にできると記載されているが、相対パスを記述するとエラーになる。$JAVAROOT以外にアプリケーションパッケージのルート、つまり.appフォルダを指すものとして、$APP_PACKAGEというキーワードも利用できる。

別のプロジェクトで作成したライブラリなどを、jarファイルで供給されることもある。それを利用したい場合には、「プロジェクト」メニューの「ファイルを追加」などを使って、プロジェクトに登録する。このとき、そのままだと絶対パスでライブラリファイルを参照するので、必要なら相対パスにするなどの設定の変更を行なう。追加時に出てくるダイアログボックスで設定できる。
すると、ターゲット設定の「ファイルとビルドフェーズ」ではFrameworks & Librariesに登録したファイルが加わる。これによりコンパイル時にはこのライブラリのjarファイルを参照するため、ライブラリのjarファイルにあるクラスを使ったプログラムが可能となる。

◇登録されたjar形式のライブラリ
 

このライブラリを実行時にも使うようにするいちばん簡単な方法は、ファイル名の右の方に出てくるMergeのチェックを入れることだ。そうすると、アプリケーションパッケージに作成するjarファイルに、ライブラリの中身もマージしてしまうので、実行時にも必要なクラスへの参照ができるようになる。
ライブラリをパッケージとはまったく別のファイルとして供給する場合には、MRJApp.propertiesファイルでは、

com.apple.mrj.application.classpath = 元からあるパス:ライブラリへのパス

のように、元から設定されているパスの後に、半角のコロンで区切って、ライブラリへのパスを記述する。ライブラリへのパスは絶対パスでもかまわないし、相対パスでもかまわない。そうすると、実行時に複数のjarファイルをクラスパスとして認識できるようになる。

一方、アプリケーション設定で「詳細設定」を行うときに、JavaのClassPathでも複数のjarファイルを指定できることになっている。Appleの文書では、コロンで区切るか、あるいは文字列の配列にするという方法ができるとなっているが、どいうもこれはできないようだ。コロンで区切ると、コロンも含めた1つのパスとして認識してしまって正しくファイルの指定ができない。また、文字列の配列を作った場合、Java以下のプロパティはStringでなければならないという実行時のエラーが出る。同名のプロパティは同一階層には指定できないので、とりあえずお手上げである。複数のjarファイルを参照して実行する場合は、とりあえずは、MRJApp.propertiesファイルを使うことになるだろう。(Mac OS X 10.1.2、Dec 2001版Developer Toolsの場合)

MRJApp.propertiesファイルと、アプリケーション設定(すなわちInfo.plist)ファイルでは、実行時には後者の方が優先される。今回説明した、メインクラスとクラスパスは必ず指定しなければならない設定であるが、もし、Info.plistに「Java」の項目があると、MRJApp.propertiesファイルは無視されてしまう。従って、アプリケーション設定で片方だけを設定するというわけにはいかず、メインクラスを指定するとクラスパスも必ず指定しなければならない。
(この項、続く)

カテゴリ:ProjectBuilder/Interface Builder, Java, Java Watch on the X


DVビデオからの取込みではオーディオトラックを用意しなくてもオーディオは取り込まれる

Technical Q&Aに、QuickTimeのSequence Grabberの機能を使ってDVビデオからの取込みを行う場合の問題についての回答がTechnical Q&Aに掲載された。映像だけを取り込むためにオーディオチャネルを作らないでおいたが、それでもオーディオがキャプチャーされるというもの。DVフォーマットとしてはそうした結果になる。オーディオはビデオデータに含まれているからであり、ビデオデータの取込みだけでオーディオも取り込まれる。必要なら作成したデータからオーディオトラックを削除することができる。

関連リンク:QA1105: Unwanted Audio with DV Capture
カテゴリ:Technical Q&A, QuickTime


【MacWIRE配信予定】MDOnline Digest》2001年12月第2週のMDOnlineから

――――この原稿は、MacWIRE様に掲載していただくための原稿で、MDOnline読者様向けにはすでに周知の事実も含まれていますが、あらかじめご了承ください。

Macintosh関連の開発情報や技術情報をお届けしている有償の日刊メールマガジン「Macintosh Developer Online(MDOnline)」で、2002年1月第2週にお届けした内容のダイジェストを紹介しよう。この週は大きなニュースで、号外を2回発行した。

まずは、長年にわたってMacユーザの支持を集めてきた雑誌MACLIFEが突如廃刊となってしまった。不渡りによりいきなりの任意整理で、編集を行うエクシード・プレスに加えて販売を行っていたビー・エヌ・エヌも業務を停止した。日本のメジャーなマック雑誌の原点でもあったMACLIFEであるが、残念ながら2001年12月に発売されたものが最終号となってしまった。

2002/1/11●エクシードプレスの業務停止に伴いMACLIFEが廃刊へ、2001年末号が最終号

週の頭には、サンフランシスコでのMacworld Conference & Expoの基調講演が開催され、半球型の新型iMacやiPhotoが発売された。デザインを一新して液晶ディスプレイを搭載し、G4、そしてSuperDriveを搭載するなど、性能的にも魅力的なiMacの登場である。また、デジカメの写真を効率的に整理し、印刷やWeb公開までの活用が可能なiPhotoは、Macの代表的なソフトになることは十分予想できる。また、iPhotoはプラグインで印刷レイアウトや書き出しの機能をカスタマイズできることも判明したが、それはそれで新たな可能性を垣間みるものだ。

2002/1/8●新型iMacの日本のAppleStore価格〜最上位機種は¥224,800
2002/1/8●半球形ボディーから伸びたアームに液晶ディスプレイの新型iMacとデジカメ対応ソフトのiPhotoが公開
2002/1/8●アップルが新製品に関する発表会を開催、iPhotoや新型iMacをアピール
2002/1/10●OmniからiPhoto向けのプラグインがリリース、iPhotoにある拡張可能性

iMacなどの話題に少し隠れぎみではあるが、アプリケーションサーバの開発運用環境であるWebObjects 5.1についてもリリースされた。独自のメカニズムでのアプリケーション作成を基調としていたWebObjectsであるが、EJB、Servlet、JSPといったアプリケーションサーバの標準的なテクノロジーをサポートするに至った。

2002/1/11●WebObjects 5.1の販売をアップルコンピュータがアナウンス
2002/1/8●WebObjects 5.1がリリース、EJBやServlet、JSPにさまざまな形で対応

連載のコーナーのうち、小池邦人氏の「プログラミング日記」のコーナは、正式にリリースされたCarbonLib 1.5などにからめたプログラミングの話題をお届けしている。

2002/1/12●小池邦人のプログラミング日記》2002/1/12<今年もプログラミングは続くのだ!>

「今から始めるCocoaプログラミング」は、Cocoaの文書ファイルを利用するフレームワークの機能の説明の続きで、保存する文書ファイルにファイルタイプやクリエイタを設定する方法を解説している。

2002/1/8●今から始めるCocoaプログラミング》文書ファイルを扱うアプリケーションを作る(14)Cocoaでのファイル情報
2002/1/8●今から始めるCocoaプログラミング》文書ファイルを扱うアプリケーションを作る(補足)NSDictionaryクラス
2002/1/9●今から始めるCocoaプログラミング》文書ファイルを扱うアプリケーションを作る(15)ファイルタイプとクリエイタを設定する

Mac OS X環境でのPure Java開発を解説する「Java Watch on the X」のコーナでは、パッケージ形式のアプリケーションをProject Builderで作成する話題を開始した。

2002/1/11●Java Watch on the X》4 - アプリケーションをパッケージとしてビルドする(1)パッケージの構成
2002/1/12●Java Watch on the X》4 - アプリケーションをパッケージとしてビルドする(2)Project BuilderでのJavaアプリケーション


★MDOnlineは、ローカスが発行するオンライン情報メディアで、日刊のメールマガジンを中心に、Macintoshの開発情報や技術情報をお届けしている。過去の記事はWebサイトですべて参照できるようになっている。Mac OS Xの話題を積極的に取り上げるとともに、Knowledge Baseの公開情報を要約するなどAppleからの情報をフォローし、開発ツールやシステム関連ユーティリティなどのサードパーティ情報も扱う。購読料は有償で、年間8,000円、半年5,000円、1か月1,000円(消費税込みの基準価格、支払い方法により金額が増減する)。購読はWebページから申し込むことができ、郵便振替、クレジットカード(QQQシステム)、WebMoneyやBitCash(プリペイドカードやクレジットカードでのオンライン購入)での支払いに対応している。
Macintosh Developer Online

カテゴリ:MDOnline Digest