本文へジャンプ

ソフトウェア > Lotus > Lotus Developer Domain > 

Iris Today Archives

インタビュー:ジェフ・カーロウ Domino 6 の新しい Web テクノロジー


Lotus Software
Interview by Christie Williams and Laura Rutherford
レベル:すべて
対象:Domino 6
原文の掲載:2002年2月4日

Iris Today Archivesの原文(英語)

インデックス
まず、Notes/Domino 6 の新しい Web テクノロジーについてお聞かせください。
HTTP サーバーの見直しによる利点は何ですか?
サード・パーティー Web サーバー・プラグインについて、もう少し詳しくお聞かせください。
WebDAV とはどういうものですか? また、Domino 6 ではどのようにサポートされるのですか?
J2EE についてはいろいろと聞いていますが、それはそもそもどういうものですか?
では、ドミノ開発者にとって J2EE の意味とは何でしょうか?
J2EE に関して WebSphere はどのような役割を持ちますか?
Apache Tomcat の使用についての考えは?
なるほど。それは J2EE のホスティング側のお話ですね。アプリケーション開発についてはどうですか?
ドミノ・カスタム・タグ・ライブラリーについて伺う前に、Beta 4 で実装された JSP およびサーブレット・アプリケーションがどうなったのか詳しく教えてください。
ドミノ・カスタム・タグとはどういうものですか?
カスタム・タグと開発ツールの連携はどのように行われるのでしょうか?
タグ・ライブラリーの仕組みについて、またそれによって何が可能になるのかについてもう少し詳しくお聞かせください。
フォーム・タグ以外に使用できるタグはありますか?
他に面白いタグはありますか?
セキュリティーについてはいかがでしょうか?
カスタム・タグを使ったサンプル・アプリケーションは何か用意されるのですか?
他のアプリケーション・サーバーでタグを使うことはできますか?
これらのタグを使用するためのアプリケーション・サーバーの設定方法に関する情報は、どこで手に入りますか?
これで、アプリケーション開発の選択肢が新たに増えたわけですが、ドミノ・アプリケーションと J2EE(JSP およびサーブレット)アプリケーションのどちらを選ぶかは、どのようにして決めたらいいのでしょうか?
お客様が Domino 6 の機能を利用したアプリケーションの開発計画を立てる際の指針をいくつか示していただけますか?
ドミノの今後について何かコメントは?
ジェフ・カーロウについて

注意: この記事は、ノーツ Rnext ベータ・プログラムで計画・開発されている機能を紹介します。したがって、最終的な機能や UI と、記事中に紹介されるものは異なる可能性があります

IBM のシニア・テクニカル・スタッフ・メンバーとして、主に Domino 6 における Web テクノロジーを担当するジェフ・カーロウは、全体の調和を図るためにグループ間での開発の調整に当たると同時に、彼自身も開発作業の一端を担っています。Domino 6 Pre-release 1 の公開に当たり改めて行われたこのインタビューで、ジェフは Domino 6 の Web テクノロジーについて、そしてこれらが J2EE などの標準テクノロジーとどのように連携するのかについて説明しています。

まず、Notes/Domino 6 の新しい Web テクノロジーについてお聞かせください。

Notes/Domino 6 は、Web の開発と展開の作業効率を上げるためにかなり手が加えられています。Notes/Domino 6 には、R5 サーブレット・エンジンをはじめとする R5 の機能がすべて搭載されています。そして、開発者向けに、Web アプリケーションの機能、特長、およびパフォーマンスをさらに向上する数多くの機能が追加され、ドミノ・デザイナーと Web アプリケーション・サーバーの改良が図られています。

まず、デザイナーにはカラー・コーディングと HTML タグのオート・コンプリート機能を備えた HTML エディターを追加しました。また、デザイナーとサード・パーティー Web オーサリング・ツール間で開発作業を共有する能力を高めるために、WebDAV サポートを追加しました。さらに、チーム開発を容易にするために設計ロック機能もサポートしました。ブラウザーとして Internet Explorer を使用する人のために、アプレットの代わりに Internet Explorer の組み込みリッチ・テキスト・コントロール(iノーツ Web アクセスでも利用)を使えるようにして、リッチ・テキスト編集の作業効率を上げました。レイヤー、CSS(Cascading Style Sheet)、JavaScript ライブラリ、HTML コードの「断片」共有、さらにオプションとしてセクションごとの DHTML/JavaScript 生成もサポートし、サーバーと通信せずにセクションの表示/非表示を制御できるようにしました。また、ACL を参照せずに Web から NSF が開かれるのを制限できる新しいデータベース・プロパティーも追加しました。

サーバーについては、HTTP サーバーを全面的に見直し、ドミノ・ HTTP サーバーをサード・パーティーの Web サーバーにプラグイン可能にしました(Web サーバーとドミノの間へのファイアウォールの配置も含みます)。Web サイトや仮想ホスト/サーバーの管理能力を向上すると同時に、DSAPI プラグインのサポートを強化してドミノ HTTP サーバーへのプラグインを簡単に作成できるようにしました。

HTML 生成エンジンは、より厳密に標準準拠にして拡張すると同時に(たとえば、返されるページの doctype ヘッダーその他の詳細)、XHTML でページを生成する機能も実装しました。XHTML を生成する場合は、要求するドミノ URL に「&outputformat=XHTML10」を追加するだけです。

また、Web ページを使って地域別表示のプリファレンス(通貨、日付形式など)とタイムゾーンを設定し、永続 Cookie に書き込む機能も追加しました。自己管理ページには、ドミノ URL で「?OpenPreferences」コマンドを使ってアクセスできます。

さらに、J2EE 開発者向けに、J2EE アプリケーション・サーバーで Java 用ドミノ・オブジェクトを厳しくテストし、JSP ページからドミノのデータへのアクセスと更新を容易にするカスタム・タグ・ライブラリーの追加を進めています。

ジェフ・カーロウ
ジェフ・カーロウ
 
上に戻る
 
HTTP サーバーの見直しによる利点は何ですか?

HTTP 1.1 の永続接続が可能になり、セッション処理が改善されました。また、パス・セグメント数、最大ヘッダーサイズ、URL 長などをさらに詳細に管理可能になり、サービス停止(DOS)攻撃への対処能力も向上しました。IP アドレスに基づくアクセスリスト、またはアクセス不可リストを用意して、ワイルドカードで IP フィルタリングを実行することもできます。
 
上に戻る
 
サード・パーティー Web サーバー・プラグインについて、もう少し詳しくお聞かせください。

私たちが WebSphere チームとの関係を活用している分野の1つが、サード・パーティー Web サーバー・プラグインの再利用です。プラグインにより、IIS や Apache のようなサード・パーティー Web サーバーにブラウザーへの「対応」と(サード・パーティー Web サーバーが得意とする)静的コンテンツ処理を任せ、NSF 要求はすべてドミノ Web サーバーに転送することが可能になります。プラグインは HTTP を利用してサーバーと通信するため、サード・パーティーの HTTP サーバーを DMZ に配置し、プラグインによってファイアウォールの内側に置かれたドミノ サーバーと通信することができます。アーキテクチャーとコーディングは、すべての WebSphere プラグインを利用できるように構築されており、これらはいずれ認定する予定です。「ドット0」ではIIS に対して認定し、将来のメンテナンス・リリースで他の Web サーバー・プラグインに対して認定する予定です。
 
上に戻る
 
WebDAV とはどういうものですか? また、Domino 6 ではどのようにサポートされるのですか?

WebDAV とは、Web Distributed Authoring and Version の略で、簡単に言えば HTTP を拡張してチェックイン/チェックアウトできるようにしたものです。WebDAV は、HTTP のPUT と GET を使用し、いくつかのロック・メカニズムを備えているため、「ああ、これはチェックアウトしなければ」とか「これはチェックアウトしなくてもよい」とかがわかります。WebDAV は、IETF(Internet Engineering Task Force)の標準ですが、まだ新しい標準であるため、今後も変更される可能性があります。様々な製品が WebDAV をサポートしており、中でもマイクロソフトはかなり力を入れています。Macromedia Dreamweaver は、ソース制御システムとして、また展開用として WebDAV をサポートしています。Notes/Domino 6 にとっての重要性は、サード・パーティー・ツールの統合にあります。

Dreamweaver で作業する人とデザイナーで作業する人を簡単に連携させることができなければなりません。言うまでもなく、デザイナーは NSF ファイルしか認識しないため、ファイルシステムの内容を NSF ファイルに変換する何らかの方法が必要です。ただし、たとえば Dreamweaver ユーザーがノーツを実行しなくても済むように、標準ベースの方法を使う必要があります。

これを可能にするのが WebDAV です。WebDAV は、Web サーバー内部に置かれ、実際には Web サーバーの Web エンジンの一部となります。特定のプロトコルに応答し、WebDAV ファイルをファイル・システムに保存する代わりに、NSF ファイルにファイル・リソースとして保存し、デザイナーで開けるようにします。

さらに、同じ Web サイトのために、Web デザイナーにイメージを担当させ、開発者に Web アプリケーションを担当させる必要がある場合を考えてみましょう。この場合、共通の NSF リポジトリを利用しながら、各自が好みのツールを使って実際のデザインや開発をすることができます。Web デザイナーは、まず参加し、イメージをチェックアウトし、イメージを変更し、といった具合に作業を進めます。開発者も、プロジェクトの担当部分に関して同様に作業を進めます。ミーティングの場所は常に NSF の中です。このように、WebDAV は、あらゆるサード・パーティー・ツールを接続するメカニズムとして普及しつつあります。
 
上に戻る
 
J2EE についてはいろいろと聞いていますが、それはそもそもどういうものですか?

J2EE とは、Java 2 Enterprise Edition の略で、ブラウザーへの HTML 表示をさらに正確に制御できる標準ベースのプログラミング・モデルです。J2EE はサーブレット、JSP、EJB、その他のテクノロジーを包含しており、Java 用ドミノ・オブジェクトを使えば、すべての J2EE コンポーネントからドミノ内の NSF データにアクセスできます。JSP 開発時には、ドミノ・カスタム・タグ・ライブラリーを使うこともできます。

現在、IBM の WebSphere Application Server、BEA の WebLogic、Sybase の EAServer、Macromedia の JRun、Sun の iPlanet など、多くのベンダーが J2EE アプリケーション・サーバーを提供しています。さらに、サーブレットおよび JSP 用の Apache Tomcat、EJB 用の JBOSS など、J2EE の一部を提供する様々なオープン・ソース・プロジェクトもあります。オープン・ソース・プロジェクトと市販製品の主な違いは、「酷使に耐える強度」、管理性、スケーラビリティー、テスト、カスタマー・サポート、バックエンド・システムとの「コネクター」、そしてコストです。J2EE を使っても特定のアプリケーション・サーバー・ベンダーに縛られることはなく、ユーザーは選択時に各自の重要性を考慮して自由にトレード・オフを決定できます。

標準ベースのプログラミング・モデルには様々なメリットがあります。標準ですから、多数の書籍やトレーニング・コースを利用できます。また、身につけたスキルをあるサーバーから別のサーバーに簡単に応用することもできます。さらに、プロジェクトに参加させるべきトレーニング済み開発者を見つけるのも容易でしょう。
 
上に戻る
 
では、ドミノ開発者にとって J2EE の意味とは何でしょうか?

現在のドミノ Web 開発者は、DHTML や JavaScript に関する知識を活かし、その知識をさらに正確に結果を制御できる環境に応用することができます。JSP 作成に必要な Java プログラミングは、JavaScript作成の場合とよく似ています。サーブレットの作成は、複雑さでは Java エージェントの作成とほぼ同じです。Java を使えば、単にデータストアとしてドミノを利用することも、JSP やサーブレットをドミノ Web アプリケーションと組み合わせるというハイブリッド・アプローチをとることもできます。Lotusphere で私が話をした人の中には、J2EE アプリケーション・サーバーとドミノ R5 をベースにして、アプリケーションのレンダリング部分にはドミノを利用し、残りにはサーブレットと JSP を利用する J2EE アプリケーションを作成している人もいました。

ただし、ここで1つ申し上げたいのは、ドミノ開発者が J2EE に移行する必要はないということです。ドミノ Web アプリケーション・サーバーは今後も存続し、拡張が続けられます。今のところ、データ中心のサイトをおそらく最も速く簡単に開発できる方法でしょう。ドミノの Web プログラミング・モデルを利用して開発できる機能豊富なアプリケーションの一例としては、Domino 6 Web Administrator が挙げられます。しかし、この開発の容易さのために犠牲になる点もあります。埋め込み HTML を除くほとんどの HTML の生成と処理の大部分がドミノによって管理されるため、ドミノのモデルに制約されることになり、生成 HTML それ自体を制御する能力が犠牲になります。完全な制御が必要な一部の Web デザイナーなら、その制御能力を得る代償としてアプリケーションが複雑になることをいとわないでしょう。結局、すべて選択の自由ということになります。そして、この選択は、各自の状況に合わせて行うことができます。
 
上に戻る
 
J2EE に関して WebSphere はどのような役割を持ちますか?

IBMの WebSphere Application Server(WAS)は、すべての J2EE 対応アプリケーションのホスティングに使用できる最も優れた J2EE アプリケーション・サーバーの1つです。J2EE 1.2 完全準拠で、サーブレット、JSP、EJB、その他すべての J2EE 標準をサポートしています。また、WAS チームは、J2EE 標準の推移を常に把握しており、今年後半には J2EE 1.3 対応サーバーのリリースを予定しています。IBM はまた、アプリケーション・サーバーと密接に統合された一連の J2EE 開発ツールも提供しています。WebSphere Studio ファミリーはそれらのツールによって構成されており、その中でも最初に提供されたツールの1つが WebSphere Studio Application Developer です。これは、Java エディタ、WYSIWYG HTML/JSP エディター、ローカルおよびリモートでのデバッグや展開をはじめとする、J2EE アプリケーションの開発に必要な機能をすべて備えています。また、JSP ページの実行をデバッグする機能も備えています。

WAS は、様々なかたちでドミノと統合されています。WAS サーブレット・エンジンは、DSAPI を介してドミノ HTTP サーバーにプラグインできます。WebSphere は、LDAP による認証にドミノ・ディレクトリーを利用できます。ドミノ Web アプリケーションと WebSphere 間でシングル・サイン・オン(SSO)を行うこともできます。これらはすべて、WebSphere 3.5 とドミノ 5.0.5 以降で実現済みです。

ドミノ R5 には WAS 3.5 とのバンドル版も用意されていましたが、現在は WAS 4.0, Developer Edition とのバンドル版が出荷されています。Domino 6 と WebSphere のバンドルオプションの詳細は未定です。様々なオプションが考えられるため、どのオプションが最も合理的か検討しているところです。
 
上に戻る
 
Apache Tomcat の使用についての考えは?

Apache Tomcat は、サーブレットおよび JSP 仕様のリファレンス実装です。Servlet 2.2 と JSP 1.1 仕様を実装した Version 3.3.x、および最新の仕様(Servlet 2.3 と JSP 1.2)を実装した Version 4.x という2つのメジャー・バージョンがあります。Tomcat は、サーブレットと JSP しか含んでいないため、完全に J2EE 対応というわけではありません。構成と管理は、ファイル・システムと XML 設定ファイルによって行います。クラスタリングのサポートはありません。Tomcat の以前のリリースにはドミノ用の DSAPI プラグインが用意されていたのですが、4.x へはまだ移植されていません。Web サイトの情報によると、Web サービスと Web ベースの管理ツールを「そのうち」提供する予定とのことですが、このコードはまだ目にしていません。ただし、他の Web アプリケーションのインストール、起動、およびシャットダウンをスクリプトによって行える Web アプリケーションは提供済みです。

コスト削減のために手動設定でもサポートがなくてもかまわない人にとっては、Tomcat はアプリケーション・サーバーとして検討する価値のある選択肢と言えるかもしれません。

XML 設定ファイルは、3.2 と 3.3 そして 4.0 では大幅に変更されていますから、自動設定ファイル・ジェネレーター作成をお考えの人は注意する必要があります(4.0 ではサーブレット・エンジンが全面的に見直されたため、設定ファイルの変更は当然です)。4.0 で落ち着けばいいのですが、先のことはわかりません。
 
上に戻る
 
なるほど。それは J2EE のホスティング側のお話ですね。アプリケーション開発についてはどうですか?

先ほど申し上げたとおり、J2EE アプリケーションの開発を容易にする数々のサード・パーティー・ツールがあり、IBM や Borland、Sun、WebGain、Macromedia などがツールを提供しています。私個人は、プログラマーのエディターを使ってすべての開発をしています。デバッグには IBM WebSphere Studio Application Developer か、System.out.println() を使っています。Application Developer では、JSP コードと Java コードを同時にデバッグできるため、アプリケーションをすべてのレベルで容易に管理できます。

短期的には、これらツールのいずれを使っても、何らかのウィザードによる基本的なプログラミングが可能です。中長期的には、何と言ってもアル・ゾラーが Lotusphere で発表した現在開発中の RAD J2EE ツールでしょう。私たちは、本当に胸を躍らせながらこの新しい RAD 環境の開発に取り組んでいますが、詳細を明らかにするにはまだ時期尚早です。ただし、「オープン・ソース・プロジェクト Eclipse のフレームワークをもとに構築され、他の WebSphere Studio ツール・オファリングと密接に統合される」とだけ申し上げておきましょう。主な目標の1つは、既存のドミノ開発者が大量のコーディングを行わなくても簡単に J2EE アプリケーションを開発できるようにすることです。

ツールを手に入れること自体、それはそれで望ましいのですが、やはり必要なのはアプリケーション開発への取り組み方を知ることです。サーブレットや JSP の開発に関する解説書は無数にあります。現在いっしょに働いている開発者の1人は、厚さ8センチもある総合解説書を見せてくれました。その他、IBM Redbooks にもドミノで J2EE 開発時に役立つものがいくつかあり、それらは Domino 6 の登場に当たり改訂される予定です。

JSP の開発者なら、ドミノ・カスタム・タグ・ライブラリーを使ってもドミノのデータに簡単にアクセスでき、なおかつレイアウトや表示を完全に制御することが可能です。
 
上に戻る
 
ドミノ・カスタム・タグ・ライブラリーについて伺う前に、Beta 4 で実装された JSP およびサーブレット・アプリケーションがどうなったのか詳しく教えてください。

作業が無駄になることはありません。それらのアプリケーションは、NSF からエクスポートすれば、任意の標準アプリケーション・サーバーで実行できます。最も簡単に行うには、Notes/Domino 6 Pre-release 1 にアップグレードする前のほうがよいでしょう。nwar ユーティリティを使えば、アプリケーションをファイル・システムに抽出し、アプリケーション・サーバーに合わせてパッケージ化できます。nwar ユーティリティーは、NSF があるサーバーで次のように使います。

nwar -e<nsfname> -d<dest dir>

たとえば、次のようにします。

nwar -emywebapp.nsf -de:\myroot\mywebapp

この場合、mywebapp.nsf からアプリケーションが抽出され、ディレクトリー構造を保持しながら e:\myroot\mywebapp に保存されます(引数の全リストを見るには、「nwar -?」と入力します)。

もしこの作業をし忘れたとしても、JSP や、nwar でインポートしたものが失われることはありません。JSP はすべて NSF 内にファイル・リソースとして残っており、デザイナーの [Shared Resources(共有リソース)/Files(ファイル)] で見ることができます。ただし、[Export(エクスポート)] アクションを使って手動でエクスポートしなければなりません。あるいは、WebDAV を使ってファイルを抽出することもできます(これは、Beta 4 でも Pre-release 1 でも可能です)。なお、デザイナーで開発したサーブレットは(Java エージェントと同様に)異なるフォーマットで保存されているため、 WebDAV や nwar を使っても見える状態にはなりません。したがって、デザイナーの Beta 4 からエクスポートする必要があります。
 
上に戻る
 
ドミノ・カスタム・タグとはどういうものですか?

HTML は知っていても、Java プログラミングには必ずしも詳しくないテンプレート開発者を支援するために、JSP はカスタム・タグと呼ばれるこの機能を備えています。これは、HTML タグよりもむしろ XML タグによく似たタグで、HTML の中に埋め込んで使います。このタグの処理はサーバー側で実行され、タグの意味が何であろうと、サーバーは HTML を生成してクライアントに送ります。

たとえば、ドミノ・カスタム・タグ・ライブラリーーはビュー全体を串刺しできるため、ビューに含まれるすべてのエントリーを調べ、ビュー内の各明細エントリーごとに表示したい内容を本体や明細行に表示することが可能です。あらゆる種類のタグが用意されています。セキュリティタグも、フォームを作成するためのタグもあるため、ドミノ・フォームの作成方法と同じように、同様のフォームを HTML で作成できます。JSP の主な特徴の1つは、カスタム・タグをサポートすることです。他のサード・パーティーから別のカスタム・タグを手に入れた場合も、同様に JSP 内で使えます。つまり、JSP では、任意の数のカスタム・タグ・ライブラリーを同一ページ上で使えるのです。
 
上に戻る
 
カスタム・タグと開発ツールの連携はどのように行われるのでしょうか?

JSP 開発をサポートするほとんどの J2EE 開発ツールは、カスタム・タグ・ライブラリーをサポートしています。ドミノ・カスタム・タグは、標準準拠のため完全にサポートされるはずです。ドミノ・カスタム・タグ・ライブラリーのテストは、WebSphere Studio Application Developer で行いました(社内でこれを使っているため)。もし特定のツールでタグ・ライブラリーを使って不具合が生じた場合には、ぜひ Notes.net にご報告をお寄せください(と同時に、おそらくそのツール・ベンダーにも知らせる必要があります)。
 
上に戻る
 
タグ・ライブラリーの仕組みについて、またそれによって何が可能になるのかについてもう少し詳しくお聞かせください。

タグ・ライブラリーの主な目的は、ドミノ・データへのアクセスを容易にすることです。ドミノ・データを構成するものには何があるでしょうか。まず文書があり、文書のコレクションとしてビューがあります。基本的タグは、ビューと文書へのアクセスに関するものです。文書へのアクセスが可能なら、データを読むだけでなく、大量のコードを作成しなくてもデータを更新できるユーザー・インターフェースを作成することも可能でなければなりません。バックエンド・クラスを考えた場合、フォームからデータを選んで取り出し、そのデータを文書に格納し、その文書を保存し、その有効性の確認に必要なコードは、全体ではかなりの量となります。

そのため、タグ・ライブラリーの大部分を占めているものの1つが、フォーム作成のタグです。これはドミノ・フォーム・タグと呼ばれ、入力タグやその他タグと組み合わせることにより、デザイナーで可能な操作を基本的に同様の方法で実行できます。タグを使えば、フォームへのフィールドのドロップでも、ボタンの追加でも、まったく Java コーディングなしで完全に機能するフォームを作成できます。

まず、正確な HTML フォームのようなものを作成します。すると、その結果、データの更新や表示をサポートするものが得られます。これは、表示モードと編集モードの両方をサポートします。緩やかなモデルとしてノーツを利用しているため、ノーツと同様の結果が得られます。ノーツとの完全な互換性を目指すのではなく、単にモデルとして利用するのです。というのも、アプリケーションはそのように作成するものだという考えがユーザーにすでにあるからです。LotusScript を扱ったことがあり、ノーツタイプの開発経験がある人がターゲットであることはわかっていましたので、スキルを確実に応用できるようにする必要があると考えたのです。

また、HTML の大量生成を避ける方針との兼ね合いから、「マジック」HTML はそれほど多く生成されません。たとえばページング用タグのように、ちょっとしたマジックを使うタグも中にはありますが、ほとんどのタグは基本的に1つの HTML タグになるか、HTML 以外のタグになるかのいずれかです。そして、最終的には単なるデータに変換され、画面表示されます。
 
上に戻る
 
フォーム・タグ以外に使用できるタグはありますか?

私が何かを設計する際の目標の1つは、最初は制御可能な範囲を多少限定する代わりにたくさんのマジックをユーザーに与え、そして徐々にマジックを減らしていく段階パスを常に用意し、これによってユーザーがわざわざ Java クラスまでジャンプする必要をなくすということです。

そのため、文書タグを使えば一定形式でドミノ・データにアクセスできますが、入力や確認処理は行われません。有効性確認や同様の処理を実行する確認タグは、フォーム・タグの一部分として用意されています。次のステップに進んで、もっと独自の処理を行いたいがドミノ・データへのアクセスに関しては助けが欲しいという場合のために、完全に非表示の文書タグが用意されており、これを使ってアイテムの取得や設定ができます。文書に関してアイテム取得やアイテム設定タイプのタグをとり上げましたが、文書への移動やその他についても心配する必要はありません。

そして次のレベルに下がると、各タグに対応するバックエンド・クラスがわかります。たとえば、フォーム・タグを例にとると、そのフォームによって表現される文書にアクセスし、さらに高度な操作を行うことができます。もしタグが望みどおりに機能せず、タグを完全に削除したくなるほどの規模ではないにせよ、タグを微調整する必要がある場合には、そのための簡単なパスが用意されています。

この基本的な考え方は全体に貫かれています。たとえば、用意されているフォーム・タグが気に入らず、すべて自分で作成したい人のために、セッションの開始と終了、およびすべてが適切にクリーンアップされたことを確認するセッション・タグも用意されています。このように、正しい文書への移動、ビューへの移動、ビューの検索、ビューが見つからない場合のシナリオ・メッセージの取得など、多数の要素を自動化することができます。ユーザーが自作しなければならないようなコードはすべて、私たちが代わって作成しました。

あとは、その中で各自のビュー処理を行うだけです。また、マジックと引き替えに非常に堅牢な制御を得ることもできます。サンプル・アプリケーションには、タグで可能な範囲を超えている箇所も含まれています。ちょっとした Java バックエンド・クラス・コードをプラグインしましたが、これはそのアプリケーションにしかない何か独自のもので、タグ・ユーザーの間ではあまり知られていない機能を示したかったからです。これもまた、完全にタグだけで作成されたアプリケーションに即して行いましたので、ビット単位制御まで行ったわずかな部分を除けば、RAD を実践することができました。
 
上に戻る
 
他に面白いタグはありますか?

全文検索タグがあります。これは、ビューに似ており、文書リストを取得するものです。その他のタグの利用範囲としてはアクセス制御があります。周知のように、これには読者フィールドと作成者フィールドを利用しており、現在のデータベースに対するブラウザー・ユーザーのアクセス制御に基づいて、ページの各セクションを条件付きにすることができます。

そして、最後にユーティリティー・タグ・ライブラリーがありますが、これは特にドミノ・データとは関係ありません。これは、「もしも」の場合や条件的な要素、一部のブラウザーの機能、初期化タグなど、ドミノ・データ固有のものではなく、ユーザーのオプションに関するものです。高度な JSP 開発者なら、自分が気に入ったユーティリティー・タグ・ライブラリーを持っているかもしれません。その場合は各自のライブラリーを利用すればいいのですが、万一必要になった場合に備えて、ユーティリティー・タグを用意しました。
 
上に戻る
 
セキュリティーについてはいかがでしょうか?

カスタム・タグは Java 用のドミノ・オブジェクトを使って作成されているため、ドミノ・セキュリティーに完全に統合されます。読者フィールド、作成者フィールド、アクセス制御、ロールなどはすべて公開されます。タグは、認証によるアクセスと匿名によるアクセスのどちらも可能で、WebSphere でのシングル・サイン・オン(SSO)によってプラグインすることもできます。SSO は、他のアプリケーション・サーバーでは現在サポートされていませんが、Lotusphere で頂いたご意見を踏まえた上で検討する予定です。しかし、現時点では何も確約できません。
 
上に戻る
 
カスタム・タグを使ったサンプル・アプリケーションは何か用意されるのですか?

JSP やサーブレットとカスタム・タグを使って作成された2種類の大規模なサンプル・アプリケーションを提供する予定です。これらアプリケーションのサポートは行いませんが、J2EE プログラミング・モデルを利用してかなり複雑なアプリケーションを作成する方法を示すいい例だと思います。具体的には、Web 会議アプリケーションと文書レビュー/フィードバック・アプリケーションです。これらアプリケーションの作成方法と WebSphere へのインストール方法を解説した資料も用意します。現在の計画では、Pre-release 1の公開直後に、このアプリケーションを Notes.net Sandbox で公開する予定です。
 
上に戻る
 
他のアプリケーション・サーバーでタグを使うことはできますか?

タグは、JSP 1.1 標準に基づいて作成されており、コンテナ固有のコードを含んでいないため、標準をサポートするアプリケーション・サーバーなら動作するはずです。無数のアプリケーション・サーバーが存在することを考えると、おそらくテストの大部分は WebSphere で行うことになりますが、他のアプリケーション・サーバーで問題が生じるとは考られません。何人かのベーター・カスタマーから話を聞いたところ、Tomcat でも BEA でも正常にタグを実行できたとのことです。他のサーバーでのタグの実行に関する問題は、通常のチャネルを通して報告してください。
 
上に戻る
 
これらのタグを使用するためのアプリケーション・サーバーの設定方法に関する情報は、どこで手に入りますか?

一般的な各種アプリケーション・サーバーについては、カスタム・タグ利用のための設定方法を解説した資料を配布する予定です。どのサーバーが対象になるかは未定です。対象から外れたサーバーについては、そのサーバーのドキュメントを参照しながら特定のサーバーに読み替える汎用の説明書を用意するつもりです。
 
上に戻る
 
これで、アプリケーション開発の選択肢が新たに増えたわけですが、ドミノ・アプリケーションと J2EE(JSP およびサーブレット)アプリケーションのどちらを選ぶかは、どのようにして決めたらいいのでしょうか?

結局、アプリケーション作成にどれぐらいの時間をかけるのか、そして結果の HTML をどの程度正確に制御したいのかによって決まります。ドミノ Web アプリケーションは、データ中心サイトの迅速立ち上げに適していますが、ドミノによって生じる境界の範囲内で作業を行う必要があります。多くのアプリケーションの場合、これは悪くないトレード・オフです。ノーツのフォームとビューを使えば、ごくわずかのコーディングで多くの機能を提供できます。ドミノの優位点としては、階層構造のカテゴリ別のビュー、ビルトイン検索機能、リッチ・テキスト編集、ビルト・イン・セキュリティーなどが挙げられます。まだまだありますが、これ以上説明する必要はないでしょう。

現在 Web エージェントまたは R5 サーブレットを使って Web アプリケーションを開発している人なら、おそらくより新しい標準をサポートしたサーブレット・コンテナの JSP やサーブレットに移行したいと考えるでしょう。数十万人のユーザーを同時にサポートする企業規模の Web アプリケーションを開発している人なら、おそらく市販の J2EE アプリケーション・サーバーを検討したいと考えるはずです。

いずれにせよ、必要なときにその要件に最善のテクノロジーを選べるように、少なくとも JSP やサーブレットに慣れておくことは、現在のドミノ開発者にとって有効なことだと思います。
 
上に戻る
 
お客様が Domino 6 の機能を利用したアプリケーションの開発計画を立てる際の指針をいくつか示していただけますか?

Lotusphere や、Notes.net の Notes/Domino 6 Pre-release feedback forum でたくさんのお客様と話をしましたが、お客様が開発しているアプリケーションの種類は非常に多岐にわたります。ほとんどの人は従来どおりノーツ Web アプリケーションを開発しており、JSP の簡単なチェックを行っているのは一部の人にすぎません。

あるお客様からは、カスタム・タグ・ライブラリーを使って、IBM Voice Server 上で VoiceML ページを構築していると聞きました。また、JSP とタグを使ってコンサルタント・ナレッジベースを公開しているお客様もいました。さらには、カスタム・タグとドミノ Web サーバーの両方を使ってハイブリッド・ナレッジマネジメント・アプリケーションを構築しているお客様もいました。IBM の社内アプリケーションのアーキテクトから今日聞いたばかりの話ですが、彼は、ノーツ・クライアント・アプリケーションを使って承認ワークフローでコンテンツ編集を行い、XML ツールキットでコンテンツを抽出し、XSLT を使ってそれを HTML に変換した上で、それを JSP とサーブレットをベースとする Web アプリケーションでエンド・ユーザーに提供しているそうです。そして、コンテンツの添付ファイルをすべて NSF データベースに入れたまま、すべての処理を行っているとのことでした。
 
上に戻る
 
ドミノの今後について何かコメントは?

ドミノは、消えることも、WebSphere に「変化する」こともありません。Notes/Domino 7 は計画済みで、今後も電子メール・メッセージング・プラットフォームとしてのレベル向上を図っていきます。同時に、ドミノ Web アプリケーションの機能を向上するための様々な拡張のアイデアもあります。今後の戦略としては、まず Web サービスを介してドミノや他のロータス製品のコラボレーション機能を利用できるようにし、ソリューション内でそれらサービスを組み合わせたり、調和させたりできるように「コンポーネント化」を進めます(社内では、これをコンテクスチュアル・コラボレーションへの移行と呼んでいます)。さらに、これらのサービスをベースにした新しいロータス・アプリケーションを開発する計画もあります。明確な戦略的ロードマップも決定済みで、この構想を実現する計画に取り組んでいるところです。


ジェフ・カーロウについて

ジェフは、IBM のシニア・テクニカル・スタッフ・メンバーで、主に Web テクノロジーを担当しています。彼は、1年前からメッセージング/コラボレーション・チームで働いていますが、その前の 12 年間はアプリケーション開発ツールに携わり、Cognos の PowerHouse 4GL、Sybase の開発中止となったある開発ツール、そして Sybase/Powersoft の PowerBuilder に取り組みました。ごく最近では、J2EE サーバー・テクノロジーを使ったインターネット新興企業向けパーソナライゼーション・サーバーの設計と構築を支援しました。ジェフの専門分野は、プログラム言語設計、分散コンピューティング、ソフトウェアエンジニアリング手法です。仕事以外の時間は、育児を手伝いながら瞑想、映画鑑賞、読書(主に科学書)を楽しんでいます。関心がある主な話題は、哲学(西洋および東洋)、認知科学、進化論、心理学です。彼は、オタワにあるカールトン大学のコンピュータ科学および物理学の理学士号を取得しています。

IBMはIBM Corporationの商標。
Lotus、Lotus Domino、Lotus NotesはIBMの商標。
その他、記載された社名および製品名は、それぞれ各社の商標または登録商標です。

 
上に戻る