Lotus Notes/Domino 8 テクニカル・ホワイトペーパー Lotus Notes/Dominoの設計思想と 新たなアーキテクチャーとアプリケーション開発手法の解説
by user
Comments
Transcript
Lotus Notes/Domino 8 テクニカル・ホワイトペーパー Lotus Notes/Dominoの設計思想と 新たなアーキテクチャーとアプリケーション開発手法の解説
Lotus Notes/Domino 8 テクニカル・ホワイトペーパー Lotus Notes/Dominoの設計思想と 新たなアーキテクチャーとアプリケーション開発手法の解説 はじめに Lotus Notes 8は、従来のメールやカレンダーといった基本機 能の改善や、ユーザー・インターフェースの徹底的な改善を行 い、使いやすさや生産性の向上を図っています。その一方で、 表面上には見えない部分においても、Lotus Notes 8は技術 的に大きな変革を遂げています。 その背景には、大きく変化する技術や企業のニーズがあります。 Lotus Notes 8の開発にあたっては、 その従来の延長線上、 たと えば、新機能の追加や機能の拡張という形、 で設計や開発する のではなく、 アーキテクチャーのレベルまで踏み込んだ再検討 を行いました。 そこでは、 「NSF形式のデータベースのみを扱う 専用クライアント」 というLotus Notesの既定の位置づけさえも 「要考慮」 として扱われました。 このホワイトペーパーでは、Lotus Notes/Domino 8における 技術的革新の内容と、 どのような視点に立ってLotus Notes 8 の開発にあたったのか、その背景にある思想について解説し ます。そして、新しいLotus Notes 8の技術を利用したアプリ ケーション開発とその価値にも触れていきます。 Lotus Notes/Domino の設計思想 互換性の堅持 Lotus Notesは、1989年の初回リリース以来、長きに渡ってコ ラボレーション・ソフトウェアとしてバージョン・アップを重ねて きました。独自の新機能はもちろんのこと、 インターネットの標 準規格や各種標準を精力的に取り込んできました。 その長い 歴史の中で最も重要視したことは2つの互換性です。 ひとつはアプリケーションの互換性、すなわちNSFファイルの 互換性です。1990年代に作成したNSFファイルは、8でも動作 します。極めて基本的なことですが、 これはお客様の投資を保 護する思想が根底にあり、その実行の結果を示しています。大 きなIT投資から適切なリターンを得るためには、同一システム を長期間に渡り、なるべく低いコストで運用する必要がありま す。 お客様の資産であるアプリケーションなどの資産の互換性 を損なうことは、投資対コストに大きな影響を及ぼします。 もうひとつは、 インターフェースの互換性です。Lotus Notesを 含め、エンドユーザーが利用するITのツールは文字通り道具 であり、使い慣れて体の一部のように使いこなせることが生産 性を高める上での条件です。各バージョンのLotus Notesの開 発にあたっては、ユーザーの基本操作に関して一貫性を保て るように常に配慮しています。 オープン性と次世代技術の取り込み 右頁上の図が示すように、Lotus Notes/Dominoは、独自の技 術で出発して以来、時代の要請により、新技術を取り込みなが らしなやかに発展してきました。 その歴史は、 オープン性を高 める歴史でもありました。例えば、Lotus Enterprise Integrator やDECS(Lotus Domino Enterprise Connection Service)を通 して基幹システムとの連携の実現や、XMLの対応など多岐に わたる技術の取り込みを、長期にわたって継続的かつ積極的 に取り組んできました。 お客様の資産を長期的に保護するためには、 オープン性を高 めるとともに、新技術に対応していくことが不可欠であるとの考 えのもとに製品の開発にあたっています。 使いやすいユーザー・インターフェース Lotus Notes 8では、 さらに使いやすさにも焦点をあて改善を 行っています。本資料では、詳細には触れませんので、巻末に 掲載のWebページをご参照ください。 次に、Lotus Notes 8で新たに導入された、Eclipseベースの アーキテクチャーと、それがもたらす価値や技術的意味を解 説します。 今回の8の設計にあたっても、 このふたつの互換性には最大限 の注意を払っており、互換性は維持されています。 また、今後に わたってもこの思想は継続されます。 幅広い開発環境 Lotus Notes/Dominoは対話式で処理を作成できるシンプル・ アクション、 マクロ言語である@関数や@Command、Microsoft Visual BasicライクなLotusScriptや、複雑な処理を実現できる C APIも用意しており、開発者のスキルやニーズに応じてアプリ ケーションを短期間に開発できる環境を整備しています。 Java のクラス・ライブラリーも利用可能ですので、Javaのスキルを 持った開発者もLotus Notes/Dominoのアプリケーションを開 発できます。 これらの開発環境はすべて、8でも維持されており、 「互換性」を 実現しています。開発者のスキルは重要な資産であり、 この点も、 製品開発にあたっては重要視しています。 Lotus Notes 8クライアント 従来のユーザー・インターフェースを維持しつつ、操作性を大幅に向 上させました。従来からのWindows版、Macintosh版に加えてLinux 版も加わりました。 イノベーションを支援する 新テクノロジーの 取り込み POP/IMAP HTTP/HTML Webサービス コンシューマー コンポジット アプリケーション @関数 ODBC LotusScript Release 3 Java/CORBA フォーム/ビュー SMTP Release 2 JavaScript インスタント メッセージ SOAP/XML エージェント Release 4.5 Release 5 Lotus Notes/Domino 6 Lotus Notes/Domino 7 Lotus Notes/Domino 8 DB2連携 Webサービス プロバイダー Release 4 JSP サーブレット 後方互換性による投資の保護 Lotus Notes /Dominoでの主要な技術の取り込みの歴史 標準規格や新技術の導入と互換性を両立することで、お客様が新技術を利用できるよう図るとともに、過去、未来にわ たって現在の資産の保護を実現します。 Eclipseの採用 Lotus Notes 8では、 「Lotus Dominoの専用クライアントのみならず 他の様々なアプリケーション、すなわちNSFデータベース以外のアプ リケーションをも実行できる環境とすること」が設計方針のひとつと なりました。 この背景には、Lotus Notesは、企業のデスクトップ・クラ イアントとして様々なニーズに応えることが求められているものの、 NSFデータベースだけでは実現できないことも多く存在し、 それを打 破する必要があるとの考えがありました。 これを実現するために選択したのが、Eclipse RCP (Rich Client Platform)と呼ばれる技術です。EclipseはJavaのプログラム開発環 境としてIBMが開発したものですが、現在はオープン・ソース化さ れ、Javaプラグラムの標準的な開発環境として数多くの開発者が利 用しています。 このEclipseをベースにしたリッチクライアントの実行 環境がEclipse RCPです。 右図に示すように、 アプリケーションを実行する共通基盤として Eclipse RCPが導入され、その上でLotus Notesが動作するアーキ テクチャーに変更されました。 この特長は、Javaプログラムをプラグ インという形で追加できることです。例えば、Lotus Notesでは難し いグラフィカルなアプリケーションであっても、Eclipse RCP上で動 作させ、Lotus Notesと一体化させて見せることが可能になります。 Lotus Notes 8では、サイドバーと呼ばれる小窓が右側に表示され るようになりました。 この画面では、インストール直後の標準状態 でLotus Sametimeの連絡先や1日のカレンダーやRSSフィードリー ダーが利用できるようになっています。 この部分はプラグインで実 装されており、独自のアプリケーションを追加することができます (サイドバー以外にも、中央部分の画面などでも、 プラグインのアプ リケーションを表示させることができます)。 2 Lotus Notes 8 任意の プラグイン 任意 プラグイン Lotus Notes 8 任意の プラグイン Lotus Expeditor 独自開発 プラグイン Lotus Sametime 7.5 テクノロジー 独自開発 プラグイン Eclipse Rich Client Platform Lotus Notes 8とEclipse RCPの関係図 Eclipse RCPを採用したことにより、他のIBM製品のみならず、 さまざまな機能を拡張できる開発の自由度が拡大しました。 Lotus Notes 8でのサイドバーの例 一日カレンダー(左)、RSSフィーダー (右) プラグインをLotus Notesに実装するメリット Eclipseのプラグインを利用することで、NSFデータベースでは実 現できないアプリケーションをLotus Notes内で実行できるほか、 様々なメリットがあります。 管理者によりプラグインをサーバーから配布可能な上、 プラグ インのプログラムが更新された場合には、それをクライアント が自動的に認識して処理を行います。 この集中管理および自 動化の仕組みにより、配布や管理にかかわるコストを抑えるこ とができます。 また、企業内で必要なアプリケーションを集中的に開発およびメ ンテナンスすることで、重複した開発を避けることができます。 さらに、セキュリティー面でも集中管理されたプラグインは有利 です。 インターネット上に存在する様々なガジェットやウィジッ トと異なり、管理された状態で配布されますので、悪意あるコン ポーネントにより被害を受けるリスクを避けることができます。 Lotus Notes 8に含まれるオフィス・アプリケーション Open Document FormatやMicrosoft Officeのファイルを読み書きで きる、 ワープロ、表計算、 プレゼンテーションのソフトウェアもプラグイ ンとして、Lotus Notes 8に実装されています。 アプリケーションの新たな開発手法: コンポジット・アプリケーション コンポジット・アプリケーションとは Webアプリケーションの世界では、 マッシュアップと呼ばれるア プリケーションが注目されています。ひとつの画面内に複数の サービスをまとめ上げてユーザーに提供する手法です。 3 Lotus Notes 8では、 この考え方と同様の仕組みを取り入れて います。部品化されたパーツ (コンポーネント) を組み合わせて 連携させるところから、 「コンポジット・アプリケーション」 と呼ん でいます。下の2つの画面は、2種類の形を示しています。 ひと つはNSFデータベース同士を連携させた例。 もうひとつはNSF データベースとEclipseのプラグインを連携させた例です。 前頁では、 プラグインをサイドバーに表示させる、独立したア プリケーションとして紹介しましたが、 コンポジット・アプリケー ション機能を利用することで、別のコンポーネント(アプリケー ション)と連携を図ることができます。 コンポジット・アプリケーションの意義 3つの面で大きな意味を持っています。 1. アプリケーションを機能に分割して開発、管理が可能にな りますので、開発コスト、期間、 メンテナンス性が向上します。 また、 コンポーネントの再利用性も高まりますので、生産性 が向上します。 2. すでに社内で稼働している各種アプリケーションとNSF データベースをそのまま生かして、連携させることにより、 少ない工数で価値の高いアプリケーションの開発が可能 になります。 3. Eclipseプラグインを利用した場合には、NSFでは実現が難 しいアプリケーションも実装でき、かつNSFデータベースと 連携させることもできます。 連絡先(個人アドレス帳)に、 カレンダー・コンポーネント (画 面下)を組み込んだ例(NSFデータベース間の連携) NSFデータベースで構築された企業情報(左) とEclipse のプ ラグインで実装された株価情報と地図情報の例(右) 連絡先を選択すると、名前がカレンダー・コンポーネントに渡され て、 スケジュール情報をサーバーに照会して表示します。 企業名を選択すると、右側のプラグイン・アプリケーションにデータが 渡され、照会した結果が表示されます。 容易な組み換えによるアプリケーションの柔軟性 コンポジット・アプリケーションの特長の一つに、 コンポーネントを容易 に組み替え可能な点があります。ニーズの変化や職場ごとのニーズに より、一部のコンポーネントを組み替えて利用することができます。 この 作業を開発者だけではなく、エンドユーザーもできるようになっていま す。 Lotus Notes 8では、 アプリケーションを編集するメニューが追加され ており、 「コンポジット・アプリケーション・エディター」 を起動できます。 このエディターでは、 コンポーネントをドラッグ&ドロップするだけで、 画面イメージを作り上げることができます。 そして、 アプリケーションの 連携を定義するワイヤリングの作業を行うと、 アプリケーションが完成 します。 プログラミングの要素は一切なく、 マウスだけで完結します (下図参照)。 コンポーネントの組み換えは、実際には開発者が行う場合がほとんど であると現時点では予想されます。 しかし、Lotus Notes 8ではあえて、 クライアントでもできるようにしました。 お客様の多様なニーズに対応 する目的のほかに、将来的にこのような組み換え作業が、 ある程度の 知識を持ったユーザーにとって一般的になると考えているからです。 4 コンポジット・アプリケーション・エディターの画面 画面右側は利用できるコンポーネントの一覧。 ここに開発者が作成したコン ポーネントが並び、 これを中央の領域にドラッグ&ドロップして画面レイア ウトを作成します。縦割りや横割りが自由にできます。左側には配置したコン ポーネント一覧が表示されます。 ワイヤリング画面 配置したコンポーネント間の「配線」 を行います。 ソースとターゲットになる フィールドをドラッグ&ドロップで結ぶだけで完了します。 これにより、 ソース 側でアクション(例えば、 ビューで文書の選択を行う操作) を行った際に、指定 した列の値が、別のコンポーネントの決められたフィールドに渡されるように なります。受けた側は、それをトリガーにして処理を開始します。 Lotus Notes/Domino の幅広い開発ツールと対応技術 Lotus Notes/Dominoは、 コラボレーション・アプリケーション のソフトウェアとして開発環境を重視してきました。時間、 コス ト、 スキルなどを考慮して、幅広い選択肢の中から最適な開発 言語やツールをお使いいただくことが、Lotus Notesを使いこ なしていく上で重要な要素になると考えているためです。 LotusScript、@関数/コマンド、 シンプル・アクション Microsoft Visual Basicと同様の形式でプログラム を記述できる、 オブジェクト指向のBASIC言語です。COM (Common Object Model)を採用していますので、Microsoft OfficeからLotusScriptのクラスを呼び出してプラグラムを実 行することができます。 カスタムオブジェクトの作成や再利用 により効率的な開発ができます。 @関数や@コマンドやシンプル・アクションは、 プログラミン グの専門知識がない方でも短時間で利用できますので、現 場に適応した業務を効率化にもっとも効果的です。 Javaインターフェース Lotus DominoのオブジェクトモデルにアクセスできるJavaイ ンターフェースです。 C/C++ API LotusScriptでは実現できない細かなアプリケーションの制 御が必要な場合に最適です。 5 8においても、@関数やLotusScriptの機能追加や互換性確保 はもちろんのこと、WebサービスやXMLデータの入出力など、 外部のアプリケーションとの親和性にも注力しています。 ここ では、Lotus Notes/Dominoが対応している各種開発言語、 イ ンターフェース、 ツール類をご紹介します。 Lotus Domino Webエンジン JavaScriptやXMLを利用した、Webベースのアプリケーショ ン構築が可能です。Lotus Dominoのフレームワークを利用 して、Ajax(Asynchronous JavaScript and XML) コードが 記述できますので、Web2.0機能を持たせることができます。 また、Lotus DominoにはRSSフィード機能を追加するテンプ レートやブログ・テンプレートが付属しています。 Webサービス Lotus Dominoのアプリケーション機能をWebサービスのプ ロバイダーとして公開できます。 オープンな規格ですので、他 のシステムとのやりとりが可能です。社内外を問わず、サービ スの提供が必要な場合には、追加のアプリケーションソフト ウェアなしに、 サービスを開始できます。 基幹連携、 ワークフローなどカスタム・アプリケーション Lotus Enterprise Integratorを利用すると、RDBと連携で きます。 プログラミングなしのレベルから高度なレベルまで ニーズに合わせた、開発効率の高い連携が可能です。 また、 ワークフローなどのカスタムアプリケーションを構築しやす い機能を多く搭載しています。 これまでの開発環境である、Lotus Domino Designerに加えて、 コンポジット・アプリケーションの開発ツールが加わりました。 Lotus Domino Designer IBM Rational Application Developer コンポジット・アプリケーションはNSFデータベースだけでも EclipseおよびJava開発者がLotus Notes 8で稼動するプラ 実現可能です。Lotus Domino Designer 8では、NSFベー グインを開発できます。 スのアプリケーションをコンポーネントに分けて開発できる ようになっています。開発者は、新たに開発するアプリケー Lotus WebSphere Portlet Factory Designer ションはもちろんのこと、既存のアプリケーションをコンポー 150以上のWizardが用意されており、Lotus Dominoはも ネント化して、再利用性やメンテナンス性を高めることがで ちろんのこと、SAPやSiebelやPropleSoftやその他のデータ きます。Eclipse RCP版のDesignerも今後提供する予定です。 ソースと連携したポートレットを効率よく開発できます。 Lotus Component Designer WebSphere Portalに展開するJ2EEベースのコンポーネント の開発ツールです。将来的に、Lotus Notesから展開できるコ ンポーネントを開発できるよう計画されています。 直感的かつ細部まで配慮した ユーザー・インターフェース これまで解説した、主に開発者に関係する部分以外に、Lotus Notes 8では、エンド・ユーザーが接するユーザー・インターフェー ス部分についても研究と改善を重ねました。 本ホワイトペーパーでは紙面の都合上、その全てを掲載すること ができません。詳細は、巻末に掲載したWebページをご覧くださ い。 ここでは、そのハイライトと基本的な考え方をご紹介します。 ユーザー・インターフェースの継続性 Lotus Notesの開発にあたっては、エンドユーザーの慣熟に要する 労力も 「お客様の資産の保護」の一部として、重要な観点として捉 えられています。 したがって、既存のユーザー・インターフェースの 継続性、互換性を前提としています。 しかしながら、時代の変遷と共に、新しい考え方も取り入れる必要 性もあります。製品設計においては、いずれの方法も利用可能なよ うに配慮されています。代表例では、 ワークスペース画面がこれに 該当します。 また、Lotus Notes 8ではEclipseプラットフォーム上で稼働する ようになったことなどから、ユーザー・インターフェースが一部 Eclipseをベースにしている部分がでてきました。例えば、 プリファ レンスの設定です。従来のLotus Notesのプリファレンスの設定 画面と大きく異ならないように配慮して設計しています。 ユーザビリティー 操作しやすさは主観によるところが大きいため、最適化が難しい 部分の一つです。そのため、今回はこれまでになく多くの被験者、 特に現場の利用者の協力のもと、操作状況を観察したり、利用者 からのフィードバックを受けたり、 プロファイル(人物の社会的役 割(ペルソナ)や、行動様式など)を想定して、 「使いやすさ」を追求 しました。 それと共に、生産性を高めるためのいくつもの工夫もあ わせて織り込んでいます。 新機能例: 途中のメールを削除しても、途切れないスレッド表示 同一スレッド内の複数のメールのうち、最新のメールのみ表示するモードを 備え、必要に応じてワン・クリックでスレッドを展開して表示することができま す。 スレッド内のすべてのメールを一度に削除したり、 フォルダーへ移動した りできますので、効率よい処理が行えます。 途中のメールが削除されても、 スレッドが切れない仕組みを備えているた め、実際の利用においても実用性を発揮します。 6 現在、 そして将来のニーズに対応するクライアント環境: Lotus Notes ご覧いただきましたように、Lotus Notes/Dominoは、確固 たる製品ポリシーと、それを支える技術に拠っています。 そして、長期に渡る互換性保持などの実績によりそれらが 裏付けられています。 コラボレーション・アプリケーションのプラットフォー ムとして、企業の多様なニーズに対応できるLotus Notes/Dominoは、今後も継続的な新技術への対応や互換 性の維持を図っていきます。 今後もLotus Notes/Dominoをご安心してお使いいただくと ともに、Lotus Notes 8をご評価、ご利用ください。 Lotus Notes/Domino 8の詳細および技術情報については、下記Webページをご覧ください。 http://ibm.com/jp/software/lotus/products/nd8 http://ibm.com/jp/software/lotus/developer 09 9