COM とは Component Object Model (以前は Common Object Model と呼んでいた
と思う) というもので、Microsoft が提唱するオブジェクト指向技術の総称であ
る。
OLE オートメーション、Active X コントロールなどの Microsoft が最近提案し
た多くの技術のベースとなる技術である。
COM に関するセッションは聞くべきだと考え、4 つのセッションを選択した。
その 4 つの中の最初のセッションであるこのセッションだが、予習が必要だと感じ
るようなレベルで、聞いていても理解できない内容がおおかった。
最初の方では旧来技術である C/C++ のライブラリを使う場合や、DLL を使う場合と
新しい技術である COM を使用する場合の違いについて、(当然だが) 旧来技術の
問題点と、COM でそれらがどのように解決されているかという点について説明され
た。
後半では実際にコードを見ながらプログラミングに関する内容に入っていく。
vptr を使ったインプリメント、多重継承、IUnknown、再利用、C++ 以外の言語
での使用、Windows レジストリなどのトピックについて話が進んだが、ほとんど
理解できず聞き流す結果に終わった。
予定通り COM プログラミング(パート1) に続いて本セッションを聞いた。
Moniker、ネームスペース、論理インターフェイスと物理インターフェイス、
IDispatch、VARTYPE、Apartment 間アクセス、Connection Point、
Active Control、Active Control のユーザーインターフェイス、
Active Control の HTML での使用などのトピックについて説明された。
しかしパート1 が理解できずにパート2 が理解できるはずもなく、聞き流す
だけに終わった。
後で考えてみると、パート1 でわからなかったのだからパート2 は
あきらめて他のセッションを聞くべきだったと思う。
COM 関連の 3 つめのセッションとして聞いた。
ベースとして RPC、COM について簡単な説明があったのち、RPC により
ローカルマシンにないオブジェクトを使用できる COM として DCOM が
説明された。
続いて、DCOM のセキュリティ、分散環境のターゲットとしての 3 レイヤ
アーキテクチャ、分散環境の問題点、Visual Basic からの非同期呼出し、
イベント、コールバックの話が続いた。最後に DCOM を使用した場合に
問題となりやすいパフォーマンスの問題に対して Visual Basic のプロファ
イリングツールである APE を使用して問題を分析してほしいということと、
現在使用可能な DCOM の実装例として Microsoft Transaction Server が
紹介された。
内容はアウトラインだけが話された程度であった。
スピーカーが日本人だった。
分散サービス、ゼロアドミニストレーション、トータルコスト管理、
フォールトトレランス、パフォーマンス、スケーラビリティ、
64bit 技術、ストレージ、I/O、パワーマネジメント、プラグアンド
プレイ、ネットワーク、コミュニケーション、マイグレーション、
インターオペラビリティなどのトピックについて話された。
90 分で上記トピックすべてを話すので仕方がない面もあるが、内容は
通り一遍のもので非常につまらなかった。始まった時点では立見が出る
盛況だったのが、始まって 10 分ぐらいから次々と出て行く人が出て
終わりごろにはかなりの空きが出たほどである。今回の Tech・Ed で
このように途中でぞろぞろと人が出ていったセッションは奥村が参加
した範囲ではこのセッションだけである。
個人的には Windows Terminal という OS が存在することを知ったので
それだけはよかった。
次世代のデスクトップとして Windows "Memphis" と Windows NT Workstation
5.0 について話された。
このセッションも立見がでる盛況だった。
Windows ファミリー内での Memphis、NT Workstation の位置づけ、3.1 → 95 の
時と違って 95 → Memphis ではユーザーインターフェイスを変更しないことも
選択できることの
メリット、インターネットとの親和性、VB Script と JavaScript による
スクリプティング、パフォーマンス向上、マルチメディア対応、マルチ
ディスプレイ対応、パワーマネジメント、新しくなったシステムツール、
Dr. Watson などの表示する情報の詳細化、テレビと Web の統合を可能にする
プラットフォームとしての Windows、デスクトップと Internet Explorer の
統合、Win32 Driver Model により新しくなったハードウェアサポート、同一
バイナリによる多言語サポート、マイグレーションなどのトピックについて
話された。
前日の「Windows NT Server 5.0 の最新機能」のセッション同様、多くの
トピックを 90 分で話すので、内容は通り一遍のものだが、多くのトピック
に対してデモを行ったのがよかった。
COM 関連の 4 つめのセッションである。スピーカーは日本人。
参加したセッション中唯一スライド資料が配布されなかった。
内容はアウトラインだけで、ソラリス、DEC、Linux などの UNIX プラット
フォームや、IBM、富士通、日立、NEC などの大型汎用機の OS にも
DCOM が移植されつつある現状を紹介しただけ。
その後は、Linux が入っているのは、Windows 以外のプラットフォーム
への DCOM 移植担当の会社でたまたまよく使用されているからだとか、
富士通、日立、NEC のプラットフォームでは日本の会社が移植を担当
しているなどどうでもいい話が続いた。つまらなかった。
Microsoft のクラスタリング技術ソフトウェア Wolfpack を使用した
Windows NT のクラスタリングについて説明された。
クラスタリングの目標、ターゲットとなるアプリケーション、Wolfpack
の機能、Wolfpack でサポートされていないクラスタリング技術、
実際のクラスタリングのプランニングとテストなどの
トピックについて説明された。
Notepad と Internet Information Server を使ったフェイル
オーバーのデモが行われた。
クラスタリングされた環境での動作を前提としたサーバーソフトウェア
の設計について話された。
クラスタリングのため複数マシンへインストールされることを前提にし
たセットアップ、SNMP サポート、Load leveler サポート、
Wolfpack がサーバーソフトウェアが動作しているかどうかを確認する関数、
フェイルオーバーで再起動する場合、フェイルオーバーする前の状態を
残すためのチェックポイントと、再起動後その状態に復活させるための
手順を用意することなどのトピックが説明された。
また、Wolfpack を前提にしていないサーバーソフトウェアでも制限付きながら
Wolfpack によりクラスタリング可能なことが Internet Information Server
を例に説明された。
Windows CE 向けソフトウェアの開発について話された。
最初に Windows CE の歴史についての話しがあり、WinPad と
Pulsar という (製品化されなかった) OS の開発プロジェクトから
生まれたという興味深い話しがあった。
続いて Windows CE の実機のデモ、
出荷されている製品の現状の概略、Windows ファミリー内での位置づけ、
ROM 上にあるバイナリを直接実行できること、CPU への依存性の低さ、
組み込み用途ではキーボードやディスプレイドライバでさえ省略可能であ
ること、GDI、WinSock、TAPI、RAS、IrDA、Unimodem driver の説明、
Windows 95 との違い、Word に対する Pocket Word にあたるアプリケー
ションを自社アプリケーションに対して開発した場合に H/PC との
相互転送時に自動的にフォーマット変換を行うフィルターを作成、
インストールことが可能であること、一部の技術がサイズとのトレードオフ
で取り入れられなかったこと、開発環境である Windows CE
SDK/DDK と Visual C++ 5.0 for Windows CE についてなどかなり盛りだくさん
の内容だった。
また、日本人スピーカーにより Visual C++ 5.0 for Windows CE 日本語版の
デモと簡単な説明、入手方法の説明があった。
非常に多くのトピックを話したが、雑誌などで予備知識があったため
かよく理解できた。
Windows CE を使う立場での話しである。
最初は「開発者のための Windows CE (パート1): 技術概要」と同様、
歴史、実機のデモなどが行われた。スピーカーが個人所有する H/PC
をデモに使用したのだが、最初に画面が表示されると例外が発生して
いて、悪戦苦闘して正常な (?) 状態に戻すところが見れた。会場からは
笑いが漏れた。
Windows CE のターゲットとして Handheld PC、セットトップボックスなど
のマルチメディア製品、家電製品などの組み込み用途が考えられていること、
Windows CE の機能、開発ツールとして SDK/DDK と VC++ があること、
VB 5.0 と VJ++ が開発中であること、H/PC は数社から入手可能であること、
セットトップボックス、自動車用コンピュータ、ワレット PC などでも
使われるようになる予定であることなどが説明された。
「開発者のための Windows CE (パート1): 技術概要」とかぶる内容が
ほとんどだった。
従来の Windows プログラマー向けの Windows CE への移行ガイド。
WinMain、ウィンドウクラスのレジスター、メインウィンドウのクリエイト、
メッセージループ、WinProc など、SDK プログラマには見慣れたコードで
Windows CE 向けのプログラムが書けることが説明された。
注意点として、メモリが非常に貴重であるので速度とサイズのトレード
オフを行う場合は常にサイズを優先すること、 OS に CPU をスリープさせる
機会を与え電源消費を押さえるため、タイミング待ちのループなど
は極力避けること、開発環境に付属する Windows NT 上で動くエミュレーター
はテスト環境としては速度が速すぎるなどの点で問題があるので実機で
十分なテストを行うこと、Windows CE の API は Win32 とよく似ているが
違うものなので、Windows CE 環境で初めて使う関数はヘルプリファレンス
を見て仕様が同じであるかどうか確認すること、Windows CE でしか使用し
ない関数を間違いなく入れることなどが説明された。マウスカーソル
がないなど細かな違いについても説明された。デスクトップとの連携と
して HPC Explorer のフィルター、インストーラーについての説明もあった。