IBM Lotus Notes/Domino外部連携解説 2012/06/28 Lotus Technical Update Workshop 日本アイ・ビー・エム システムズ・エンジニアリング株式会社
by user
Comments
Transcript
IBM Lotus Notes/Domino外部連携解説 2012/06/28 Lotus Technical Update Workshop 日本アイ・ビー・エム システムズ・エンジニアリング株式会社
2012/06/28 Lotus Technical Update Workshop IBM Lotus Notes/Domino外部連携解説 日本アイ・ビー・エム システムズ・エンジニアリング株式会社 コラボレーション & モバイル 堀口 雅志 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 ご注意 この資料に含まれる情報は可能な限り正確を期しておりますが、日本アイ・ビー・エム システムズ・エンジニアリング株式会社の正式 なレビューを受けておらず、当資料に記載された内容に関して日本アイ・ビー・エム システムズ・エンジニアリング株式会社は何ら保 証するものではありません。 従って、この情報の利用またはこれらの技法の実施はひとえに使用者の責任において為されるものであり、資料の内容によって受けたい かなる被害に関しても一切の保証をするものではありません。 当資料をコピー等で複製することは、日本アイ・ビー・エム システムズ・エンジニアリング株式会社および執筆者の承諾なしではでき ません。また、当資料に記載された製品名または会社名はそれぞれの各社の商標または登録商標です。 2 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 目次 IBM Lotus Notes/Domino外部連携イントロダクション IBM Lotus Notes/DominoとLEIによる外部連携 IBM Lotus Notes/DominoとLEI以外の機能による外部連携 まとめ 3 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携 イントロダクション © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 IBM Lotus Notes/Dominoの外部連携とは? Lotus Notes/Dominoと外部のデータソースや他ミドルウェア間での連携を行う こと – IBM Tivoli Access Managerなどに代表されるシングルサインオンなど機能 レベルの連携 – IBM WebSphere Application Serverなどに代表されるアプリケーションレ ベルの連携 – DB2などに代表される業務データの相互利用によるデータレベルの連携 本セッションでは、「業務データの相互利用によるデータレベルの連携」に焦点 を当て、解説します。 Domino ノーツ データベース データ連携 外部データソース 連携 プログラム SSOによる 連携 WAS アプリ連携 Java プログラム 5 DB2 データ データ連携 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 業務データの相互利用によるデータレベルの連携 「業務データの相互利用によるデータレベルの連携」として、考えられるパター ンは2種類 Lotus Notes/Dominoから外部データソース(ex.DB2)に連携(アクセス)する 他ミドルウェア(ex.WAS)からLotus Notes/Dominoをデータソースとして 連携(アクセス)する Lotus Notes/Dominoから外部データソース (ex.DB2)に連携(アクセス)する Domino 連携 プログラム 6 DB2 DB2 データ 他ミドルウェア(ex.WAS)からLotus Notes/Dominoを データソースとして連携(アクセス)する WAS Java プログラム Domino ノーツ データベース © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 Lotus Notes/Dominoから外部データソース (ex.DB2)に連携(アクセス)する Lotus Notes/Dominoから外部データソースに連携する どういう時に、Lotus Notes/Dominoから外部データソースに連携するか? – ユーザーの利用する標準のクライアントがLotus Notesクライアント – Lotus Dominoが得意とするコラボレーション機能を利用したアプリケーショ ンを作成したい – アプリケーションの実行基盤の標準がLotus Dominoサーバー <ユーザー> <アプリケーション> <サーバー> ノーツ アプリケーション クライアント標準が Lotus Notes 7 Lotus Dominoが 得意とする コラボレーション 機能の利用 アプリケーション 実行基盤が Lotus Domino © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 他ミドルウェア(ex.WAS)からLotus Notes/Dominoを データソースとして連携(アクセス)する 他ミドルウェアからLotus Notes/Dominoをデータソースとして連携する どういう時に、他ミドルウェアからLotus Notes/Dominoのデータソースに連携 するか? – ユーザーの利用する標準のクライアントがウェブブラウザーや独自クライアント – J2EEや.Net等が得意とするアプリケーションを作成したい – アプリケーションの実行基盤の標準が他ミドルウェアのサーバー <ユーザー> <アプリケーション> <サーバー> Java等の プログラム クライアント標準が ウェブブラウザー or 独自クライアント 8 J2EEや.Net等が 得意とする アプリケーション アプリケーション 実行基盤が 他ミドルウェア © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 本ページ以降の解説範囲 「業務データの相互利用によるデータレベルの連携」の中でも、Lotus Notes/Domino技術者が最も直面する可能性がある、「 Lotus Notes/Dominoか ら外部データソース(ex.DB2)に連携(アクセス)する」に焦点を当てて以降 を解説します。 Lotus Notes/Dominoから外部データソース(ex.DB2)に連携(アクセス)する 他ミドルウェア(ex.WAS)からLotus Notes/Dominoをデータソースとして 連携(アクセス)する 9 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 「Lotus Notes/Dominoから外部データソースに連携する」時の具体的な連携例① 他システムで入力された情報をLotus Notes/Dominoにてリアルタイムに参照し たい。 – Lotus Notes/Dominoからリアルタイムに他システムからの更新を参照した いことから、同じ外部データソースを更新 <ユーザー> <外部データソース> <Domino> 参照 ノーツ アプリケーション 参照 DB2 データ <他システム> 更新 Java プログラム <連携のポイント> ・リアルタイムに外部データソースに対して直接アクセス ・基本的に外部データソースに全てのデータを持つ ・ノーツアプリケーションは外部データソースを意識して作成 ・他システムとアプリケーションの依存関係がある 10 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 「Lotus Notes/Dominoから外部データソースに連携する」時の具体的な連携例② 外部データソースにあるマスターデータをノーツアプリケーションにて利用した い。マスターデータの変更は定期的。 – ノーツアプリケーションの作りやすさを考えた時、外部データソースのデータ をLotus Domino上にコピーしたほうがより簡単に実装できる <外部データソース> <Domino> ノーツ アプリケーション DB2 データ コピー DB2 データ 参照 <連携のポイント> ・外部データソースからバッチでデータをコピーしてアクセス ・Lotus Notes/Dominoと外部データソースにデータを2重で持つ ・ノーツアプリケーションの作成が簡単(ノーツの知識だけでよい) ・他システムとアプリケーションの依存関係がない 11 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 連携時のポイントの整理 <連携例①から> ・リアルタイムに外部データソースに対して直接アクセス ・基本的に外部データソースに全てのデータを持つ ・ノーツアプリケーションは外部データソースを意識して作成 ・他システムとアプリケーションの依存関係がある <連携例②から> ・外部データソースからバッチでデータをコピーしてアクセス ・Lotus Notes/Dominoと外部データソースにデータを2重で持つ ・ノーツアプリケーションの作成が簡単(ノーツの知識だけでよい) ・他システムとアプリケーションの依存関係がない 総合すると、、、 ・データ連携タイミング(リアルタイム、バッチ)の選択 ・データソースの配置場所 ・アプリケーション作成の容易さ ・他システムとのアプリケーション依存関係の有無 12 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 「Lotus Notes/Dominoから外部データソースに連携する」手法の整理 データ連携 タイミング データソース の配置場所 アプリ作成の 容易さ 他システムと アプリ依存 利用できる 連携手法 連携可能な 外部データソース リアルタイム 連携 外部データソース (一部ノーツDB) 中 有 LEI Virtual Fields(Lotus Domino DECS/DCR) DB2、OLEDB、ODBC、Oracle、 Sybase、File 外部データソース (一部ノーツDB) 中 有 LEI Virtual Documents DB2、SOracle、Sybase 、QL Server、MS Access 2000 外部データソース 難 有 Lotus Connector Lotus Script Extention Notes、DB2、File、ODBC、 Oracle、OLE DB、Sybase 外部データソース 難 有 Javaプログラムによる連携 JarとしてAPIが提供されている 外部データソース 外部データソース 難 有 Webサービスコンシューマ (SOAP) Webサービスプロバイダー ※SOAP1.1、WSDL 1.1が前提 ノーツDB 易 無 LEI Direct Transfer Notes、DB2、File、ODBC、 Oracle、OLE DB、Sybase、 Text ノーツDB 易 無 LEI Replication Notes、DB2、File、ODBC、 Oracle、OLE DB、Sybase、 Text ノーツDB 難 無 Lotus Connector Lotus Script Extention Notes、DB2、File、ODBC、 Oracle、OLE DB、Sybase バッチ連携 ※アプリ作成の容易さ 易:ノーツアプリの知識のみ、中:一部外部データソースの知識が必要、難:外部データソースの詳しい知識や他技術の知識が必要 上記の中から最適な連携手法を選択 13 © 2012 IBM Corporation IBM Lotus Notes/DominoとLEIによる 外部連携 - LEI概要- © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 LEI概要 Lotus Enterprise Integrator(LEI)とは・・・ – 異なるデータソース間でデータ転送を行うサーバー製品 – 連携可能なデータソースは以下の通り • DB2, Oracle, SQL Server, Sybase, ODBC(※1), File, Text, SAP(※2) (※1)ODBC経由で、Infomix、MySQLなどにアクセス可能 (※2)SAPはLotus Connector for SAPを別途購入する必要あり – Lotus NotesやLotus Dominoに追加でモジュールを導入 データソースA (ex.Domino) LEI データソースB (ex.DB2) データソース間でデータを転送する 15 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 LEIを利用するメリット 基幹システムのデータとLotus Notes/Dominoのデータベース間で簡単にデータ 連携することが可能 – ノーツアプリケーション技術者に外部データソースのスキルが不要 – SQLのコーディングをすることなく、ノーツのフィールドと外部データソース をマッピングすることで連携が可能 16 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 LEIのシステム要件(1/2) LEIのバージョンにより、LEIをサポートするOSとデータソースのバージョンが 異なるため、リリースノートを必ず確認 – http://www.ibm.com/developerworks/lotus/documentation/lei/ LEI 8.5.3 – 32 bit versionの場合 LEI 8.5.3 - 32 bit version LEI 32 bit is supported on the following platforms: 1) Windows 2003 Server and Server Enterprise Edition 32 bit Database client connectivity: Oracle 9i ,10g,11g - Native client and ODBC DB2 8.2.2, 9.1, 9.5, 9.7 - Native client and ODBC DB2 Universal Database for IBM i - Native client and ODBC Sybase 15 - Native client and ODBC MS SQL Server 2000, 2005, 2008 - Native client and ODBC Informix - ODBC only MySQL 5.0, 5.1 - ODBC only 2) Windows 2003 Server and Server Enterprise Edition 64 bit (as a 32 bit application) Database client connectivity: Oracle 9i, 10g, 11g - Native client only DB2 8.2.2, 9.1, 9.5, 9.7 - Native client only DB2 Universal Database for IBM i - Native client only Sybase 15 - Native client only MS SQL Server 2000, 2005, 2008 - Native client only 17 サポートOS 接続先要件 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 LEIのシステム要件(2/2) Lotus DominoとLEIのバージョンは、同一メンテナンスリリースがサポート対象 LEIが接続するデータソースは、Native Clientのバージョンを確認 – 例:Domino8.5.3, LEI 8.5.3, DB2の場合 • DB2 8.2.2, 9.1, 9.5, 9.7 - Native client and ODBC ポイント① DominoとLEIのバージョン は同一 ポイント② データソースのNative Clientのバージョンを確認 LEI 8.5.3 Lotus Domino 8.5.3 18 DB2 Client 9.5 DB2 Server © 2012 IBM Corporation IBM Lotus Notes/DominoとLEIによる 外部連携 - LEI基本機能- © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 LEI基本機能①:コネクション、アクティビティ概要 LEIを利用する際のベース – コネクション – アクティビティ <コネクション> データソースの名前と 場所を定義 データソースA データソースB データ ベース データ ベース <アクティビティ> データの転送を実行 20 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 LEI基本機能②:コネクションとは? コネクション(コネクション文書) – 各データソース間の接続方法の取り決めを行う – データソースへの接続情報、全般的なデータ転送時のオプションを指定 Notesコネクション Domino サーバー LEI サーバー DB2コネクション DB2 サーバー Oracleコネクション Oracle サーバー ・・・ ・・・ 21 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 (参考)コネクション文書イメージ <Notesコネクション文書イメージ> データソースの 接続先の指定 <DB2コネクション文書イメージ> データ転送時の オプションの指定 22 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 LEI基本機能③:アクティビティとは? アクティビティ(アクティビティ文書) – 各データソース間のデータ項目を関連付けし、マッピングされたデータ項目 をコネクションの定義に従い、各データソースに転送 Domino サーバー フォーム LEIサーバー アクティビティ文書 フィールドマッピング フォーム Table.A Field A Column A Field B Column B Field A(XXX) アクティビティによる データ転送 Field B(YYY) DB2 サーバー Table A Column A | Column B --------------------------------------------- XXX 23 | YYY © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 LEI基本機能④:LEIが提供するアクティビティの種類 主にリアルタイム連携用とバッチ連携用に分かれる <リアルタイム連携(Advanced Realtime)> アクティビティ名 説明 Virtual Fields 外部データソースのデータを Notes アプリからリアルタイムにアクセス(キー保有する文 書が必要) Virtual Documents 外部データソース のデータを Notes アプリからリアルタイムにアクセス(キー保有する 文書が不要) Virtual Agents 外部システムのデータベース上でストアドプロシージャを実行する Domino エージェン トを作成 <バッチ連携> アクティビティ名 24 説明 Direct Transfer データベース間でデータを転送(一方向のコピー) Replication 異なるデータベース間でデータを同期(双方向) Command データベースに対してアクションを実行(OSまたはSQLコマンドの実行) Polling データベースをポーリングし、一定の条件を満たすときに別のアクティビティを 実行 Archive データベースをアーカイブ(一方向の移動) Scripted Lotus Connector LotusScript Extension Classes (LC LSX) コマンドを実行 Java ユーザー指定の Java アプリケーションを実行 Admin Backup LEI Administratorデータベースのバックアップを作成 Admin Purge Log LEI LOGデータベースのパージを実行 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 LEI基本機能⑤:アクティビティの起動(データ転送の実際の処理実行) アクティビティを実際に起動することで、データソースへの転送を行います。 – 手動:LEI Administratorデータベースから選択して起動 – 自動:アクティビティ文書のスケジュールで起動 – コマンド起動:”leiact”コマンドを利用し、アクティビティ名を指定して実行 <LEI Administratorのアクティビティ一覧のイメージ> アクティビティ名 25 起動時に表示されるアイコン © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 (参考)アクティビティ文書イメージ <Direct Transfer アクティビティ文書イメージ> 接続するデータソース (コネクション文書で指定 したデータソース) アクティビティにより連携 するデータ項目 26 © 2012 IBM Corporation IBM Lotus Notes/DominoとLEIによる 外部連携 - LEI連携詳細- © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 LEI連携詳細 リアルタイム連携(Advanced Realtime) – Virtual Documentsアクティビティ – Virtual Fieldsアクティビティ バッチ連携 – Direct Trasnferアクティビティ – Replicationアクティビティ 全体の考慮点 28 © 2012 IBM Corporation IBM Lotus Notes/DominoとLEIによる 外部連携 - LEI Virtual Documents - © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 Virtual Documents概要 Virtual Documents とは・・・ – ノーツ文書の実体を外部データソースに保管 • ノーツ文書があたかもノーツ上に保存されているかのように外部データソースの データをリアルタイムで参照 • 外部データソースのデータをリアルタイムにノーツデータベースから作成・更新・ 削除 • ビューにデータフィールドを表示可能 ノーツデータベース 外部データソース ノーツ文書 ノーツ上には実体がなく、 外部データソースのデータを 仮想的にノーツ文書上で表示 30 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 Virtual Documentsの仕組み ビュー上に格納されている仮想ノーツ文書への参照情報を元に、外部データソー スのデータを取り出し、あたかもノーツ文書のデータであるかのようにユーザー 画面に表示 – 制御情報は、ユーザーデータ以外のノーツの仕組み上必要となるデータの集 まり <ユーザー表示画面> ビュー 仮想ノーツ文書 への参照情報 データ: FieldA データ: FieldB <ノーツ文書> ①ビューから 文書参照 ③外部 データソース を透過的に参照 データ: FieldA ②ビュー内の 仮想ノーツ文書 への参照情報を 元に外部 データソース を参照 <外部データソース> データ: FieldA データ: FieldB データ: FieldB データ: FieldC データ: FieldC 制御情報 EI・・・ データ: FieldC 31 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 (参考)Virtual Documentsのノーツ文書の制御情報 「Virtual Documentsのノーツ文書の制御情報」=「Virtual Documentsを実現 するために必要となるノーツ文書の制御情報を格納するための特殊列」 – 外部データソースで、「EI」の頭文字で始まる以下列 • EINOTEID、EIUNID、EIMODIFIED、EINOTEPROPS • 上記列の型は、外部データソースにより異なるのでヘルプを参照のこと – ノーツ文書の制御情報(文書IDや文書更新日、文書の特殊な属性情報($付き フィールド等))を格納する 見た目は空白ですが、 バイナリーデータが入っています。 制御情報を外部データソースに格納する方法は、以下2種類存在する • 既存テーブルの列を拡張する • ノーツ文書制御専用の外部テーブルを作成する 32 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 Virtual Documentsの考慮点① アプリケーションの開発について – ノーツの制御情報について 利用方法によっては、データにアクセスできなくなること も想定される為、機能の利用をお勧めしません。 • 読者フィールド、作成者フィールドなどの$付きフィールドの情報やノーツの文書に 関連したオプション等の情報は”EINOTESPROPS”に保存される – アプリケーションの設計や更新頻度、オプションの利用などによって、EINOTESPROPSの 格納上限サイズを超えてしまい、ノーツ文書として利用できなくなってしまう可能性がある – 上限としてどの程度まで大きくなるのか、また、どのようなオプションが対象となり格納さ れるかなどの情報は公開されていない <ノーツ文書> 読者フィールド $付きフィールド 文書関連のオプション ・ ・ ・ 33 <外部データソース> $フィールド 文書関連のさまざまな オプションの格納先 EINOTESPROPS フィールドA フィールドA フィールドB フィールドB フィールドC フィールドC © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 Virtual Documentsの考慮点② その他アプリケーション開発について – フィールドについて • • ここに記載している考慮点は代表的なものです。 一般的なノーツアプリの開発の常識で開発をす すめると、思わぬ落とし穴にはまる可能性があ ります すべてのフィールドをマッピングすることが前提 複数値フィールド、リッチテキストフィールドは外部データソースからは参照不 可 – 競合文書について • ノーツ側でのみ保存される – 未読既読の管理ができない – サブフォームは使えない – 外部データソース側からはノーツの制御情報は参照不可 – バイナリデータで保存されており、ノーツからでしか認識できない 34 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 Virtual Documentsの考慮点③ ここに記載している考慮点は代表的なものです。 運用などにもさまざまな考慮点があります。 運用について – ノーツのビューから仮想文書にアクセスする為には、仮想化処理を行う必要がある • 「仮想化処理」とは、「外部データソースの業務で利用するレコードを元にして、仮想のノーツ文 書の作成(具体的には、ノーツデータベースのビュー情報とノーツ制御情報のレコードを作成な ど)を行う • 以下のような時に仮想化処理を行う必要がある – 初回のアクティビティ実行時。既存のデータが外部レコードに存在する時に自動で行われる – ノーツ以外からのデータソースからレコードの追加があったとき – ビューが壊れたとき • 「Virtualize External System Data」オプションで定期的に取り込むことも可能であるが、パ フォーマンス悪化の原因になるので、取り込みは起動時のみとすべき – メンテナンスタスク • ノーツデータベース内には実際の文書が存在しないので、Compact、Fixupの実行は不要 – アクティビティの停止は極力回避 • 停止中、文書へのアクセス、複製、索引更新、削除スタブのパージ不可 – 外部データソースがダウンしたときは、アクティビティを必ず再起動 その他考慮点 – 複製について • 複製先のサーバーでは、通常のノーツデータベースと同じようにNSFに保存 • 複製先で文書を作成・更新・削除した場合は、複製されたタイミングで外部レコード更新 35 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 (参考)Virtual Documents 設定イメージ <Virtual Documents アクティビティ文書画面> 左:Notesデータベース 右:送り先外部データソース <LEI コネクション文書画面> 接続情報を設定 フィールドレベルでの マッピング 36 © 2012 IBM Corporation IBM Lotus Notes/DominoとLEIによる 外部連携 - LEI Virtual Fields - © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 Virtual Fields概要 Virtual Fields、DECS、DCR は基本的な動きは一緒です。 Virtual Fieldsとは・・・ – フォーム上の特定のフィールド値を外部データソースに保管 • あたかもノーツDB内に保存されているかのように外部データソースのデータをリア ルタイムで参照 • フォームのイベント(Open/Create/Update/Delete)をトリガーにして、外部デー タソースとのデータのマッピング • Lotus DominoのDECSと基本的な動作は同じ 外部データソース フォームイベント •開く(Open) •作成(Create) •更新(Update) •削除(Delete) Domino アプリケーション フォーム 4つのフォームイベン トをトリガーにして、 外部データソースに アクセス 38 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 Virtual Fieldsの仕組み Virtual Fields、DECS、DCR は基本的な動きは一緒です。 ノーツ文書と外部データソースのキーを比較し、一致した外部データソースの データを取り出し、あたかもノーツ文書のデータであるかのように、ユーザー画 面に表示 – エージェントでアクセスしてもノーツ文書のデータとして見える <ユーザー表示画面> キー: FieldA <ノーツ文書> ①文書参照 キー: FieldA データ: FieldB データ: FieldB データ: FieldC データ: FieldC ④文書 データ を表示 ②キーを 元に外部 データソース を参照 <外部データソース> キー: FieldA データ: FieldB ③外部 データソース から値を 取得 データ: FieldC 外部データソースから取得したデータを ノーツのフィールドにマッピング 実データ 39 仮想データ 表示されるデータ © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 Virtual Fieldsの考慮点①-1 ビュー上に表示されるのは、ノーツ文書側で保持しているデータ(キーとノーツ単 独のデータ) – フォームへのアクセスイベントをトリガーにして、データを取得しているた め Notesビュー画面 ノーツ文書画面 文書Openがトリガーになり、 外部データソースからデータを取得 40 LEIキー データ © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 Virtual Fieldsの考慮点①-2 このオプションを使ったとしても問題は解決できません 外部データをノーツのビューに表示させる方法①:LEIのData Storageオプショ ンを利用 – ノーツデータと外部データソースで重複してデータを保管 – ノーツから作成・更新・削除するのであれば問題はないが、外部データソースからこれ らの操作を行うと、データの不整合が生じる <外部データソースからCell 2を”sample2-1”に変更した時> <ノーツのビューから見た時> <DB2から見た時> <ノーツの文書を開いた時> ビューに表示されているデータと ノーツ文書を開いたときの データが異なる 41 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 Virtual Fieldsの考慮点①-3 問題は解決できるものの、非常に多くの考慮点があります。 外部データをノーツのビューに表示させる方法②:表示するもの全てをLEIの キーとして登録 – LEIのキーが変更された時にデフォルトでは、外部データソースとの整合性を保つこと ができない。整合性を保つためには、さまざまな考慮が必要であり、実装が非常に難し い • 例えば、一番大きい考慮事項としては、外部データソース側だけで使う(マッピング していない)列のデータが削除される LEIキー LEIでマッピングして いない列(DB2のみに存在) LEIでマッピングしていない列 のデータが削除される LEIキーであ る「C2」を 「2-1」にし て保存 42 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 Virtual Fieldsの考慮点② ここに記載している考慮点は代表的なものです。 その他考慮点 – Virtual Fieldsのフィールドマッピングの対象として、読者フィールド、作成 者フィールドはサポートされない • Virtual Fields環境であっても、ノーツアプリケーションで読者フィールド、作成者 フィールドを利用することはできます。 – Virtual Fieldsアクティビティ停止中に文書を開いた場合、表示されるのは キーのみ – フォーム内に計算結果により表示させるサブフォームがある場合は、アク ティビティ文書にサブフォームを指定しないといけない – Dominoクラスタでは、”Synchronize Key Document”はサポートされない – SQL失敗時のRollbackの仕組み等はなく、エラーハンドリングの仕組みを個 別で実装することが必要 • LotusScriptであれば、LEIやSQLのエラーを確認し、エラー処理を組み込むことが できる • Virtual FieldsにはRollbackの仕組みはないので、エラーが発生した際には、エラー の発生状況の保存やリカバリー手段をアプリケーションに組み込むなどの対応が必 要 43 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 (参考)Virtual Fields 設定イメージ <Virtual Fields アクティビティ文書画面> 左:Notesデータベース 右:送り先外部データソース <LEI コネクション文書画面> フィールドレベルでの マッピング 44 接続情報を設定 対象イベント © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 (参考)XPagesを利用したVirtual Fields XPagesでも同様に利用することが可能 <XPagesで作成したノーツビュー> 文書を新規作成 LEIキー マッピングして いないフィールド <新規ノーツ文書作成画面> 保存して閉じる 45 <XPagesで作成したノーツビュー> LEIキー、マッピングしてい ないフィールド以外は ビューには表示されない XPagesから 新規ノーツ文書を作成 <DB2から見たレコード> ノーツクライアントと 同様の操作で作成できる © 2012 IBM Corporation IBM Lotus Notes/DominoとLEIによる 外部連携 - LEI Direct Transfer - © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 Direct Transfer 概要&仕組み 転送元データソースから転送先データソースへデータを一方向コピーする – バッチ形式で転送 転送対象のデータを条件により絞り込むことができる – Notesの場合: Select Form = “main” など – DB2の場合: SELECT * FROM SAMPLE.T1 where ColumnA = “AAA” など 例:Lotus Domino ⇒ DB2の場合(Form=“main”のものを転送) Domino ノーツ文書 文書A:Form = “main” 文書B:Form = “main” 転送条件 に従い 一方向コピー DB2 テーブル レコードA(文書Aデータ) レコードB(文書Bデータ) 文書C:Form = “main2” 47 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 (参考)Direct Transfer設定イメージ <Direct Transfer アクティビティ文書画面> Lotus Domino ⇒ DB2の場合 左:Notesデータベース 右:送り先外部データソース フィールドレベルで のマッピング 転送するデータの条件を設定 48 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 Direct Transfer の考慮点 以下オプションを利用する際には注意してください データを転送する前に一度すべてのデータを削除する「Overwrite Existing Data」オプションを利用する際の注意 – 転送先データの削除に時間がかかる場合がある • 転送先データソース側での削除を推奨 – 転送が途中で失敗してしまった場合、転送先の既存データは消える 新規のメタデータを作成「Create Target Metadata 」オプションを利用する際 の注意 – Notesソースのデータを転送する場合、外部データソースにはNotesテキスト フィールドの最大サイズ(64996バイト)の文字オブジェクトが生成される • サイズを制限するには、Notesコネクション文書オプション[Maximum Length for Text Data]で指定する <Direct Transfer アクティビティ文書> 49 アクティビティ文書内のオプション © 2012 IBM Corporation IBM Lotus Notes/DominoとLEIによる 外部連携 - LEI Replication - © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 Replication 概要 一方のデータベースをもう一方のデータベースのデータで更新することにより、 データベース間のデータを同期 – Replicationの種類 • キーによる複製 • タイムスタンプによる複製 51 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 Replicationの仕組み①:キーによる複製 キーによる複製 – 転送元の変更を転送先へ同期 Replicationアクティビティを利用する際には こちらの方式をまずご検討ください • 転送元データの変更はしない – 双方の固有のキーに基づいて、以下のアクションを実行 • レコードの更新 : 双方にキーが存在し、データフィールド値が異なる場合 • 新規レコードの作成 : ターゲットに存在しないキーがソースレコードにある場合 • レコードの削除 : ソースに存在しないキーがターゲットレコードにある場合 – 上記アクションを個別に制限することも可能 • Target Restrictions オプションにて設定 <Lotus DominoからDB2にReplicationする場合(キーによる複製)> Domino 文書 52 1方向のみの複製 DB2 レコード © 2012 IBM Corporation キーによる複製で要件が満たせない場合に IBM Lotus Notes/Domino外部連携解説 検討ください Replicationの仕組み②:タイムスタンプによる複製 タイムスタンプによる複製 – 双方のデータソースがタイムスタンプを基準として同期 – 前回実行時のタイムスタンプを基準として、以下のアクションを実行 • ソースに新規レコードを挿入:転送先レコードのタイムスタンプが新しく、転送元にレコードが存在しない場合 • ターゲットに新規レコードを挿入:転送元レコードのタイムスタンプが新しく、転送先にレコードが存在しない 場合 • ソースレコードを更新:転送先レコードのタイムスタンプが新しく、転送元にレコードが存在する場合 • ターゲットレコードを更新:転送元レコードのタイムスタンプが新しく、転送先にレコードが存在する場合 – タイムスタンプで複製可能かどうか判断するため、レコードの削除は反映されない – 上記アクションを個別に制限することも可能 • Source Restrictionsオプション、Target Restrictionsオプションにて設定 <Lotus DominoからDB2にReplicationする場合(タイムスタンプによる複製)> Domino 文書 53 双方向の複製 DB2 レコード © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 Replication の考慮点 Replicationアクティビティを利用する際には 必ず利用をお勧めします。 複製時のソート順について – Replicationでは、両方のコネクションからの結果セットを生成して、対応す るキーの結果セットを比較してデータを更新 • 各データソースでのソート順を利用して処理すると、無駄な挿入や削除が発生 • Order Metaconnectorを使用し、ソート順を一定にすることを推奨 データソースBをデータソースAのデータに複製(Order Metaconnector未使用) <データソースA> データ1 データ1挿入 データ2 データ2挿入 データ3 更新 <データソースB> データ2 データ2削除 データ1 データ1削除 データ3 データソースBをデータソースAのデータに複製(Order Metaconnector使用) <データソースA> 54 <データソースB> データ1 更新 データ2 更新 データ2 データ3 更新 データ3 データ1 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 (参考)Replication 設定イメージ <Replication アクティビティ文書画面> Lotus Domino ⇔ DB2の場合 左:Notesデータベース 右:送り先外部データソース 55 フィールドレベルでの マッピング © 2012 IBM Corporation IBM Lotus Notes/DominoとLEIによる 外部連携 - LEI全体の考慮点 - © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 LEI全体の考慮点① LEIはノーツのフォームに対してのイベントをトリガーとして動作する – LEIの1つのアクティビティでは、ノーツの1フォームに対して、マッピング することができるテーブルは必ず1つのみ – 複数のテーブルを参照するのであれば、リアルタイム系ではなく、バッチ系 を採用すべき Domino/LEI DB2 OK フォーム テーブル1 フォーム テーブル1 NG 57 テーブル2 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 LEI全体の考慮点② ノーツデータベースと外部データソースの特徴を理解してアプリケーションを設 計する – ノーツデータベース • 非正規化されたデータを扱うのが得意 – 外部データソースがRDBの場合、ノーツデータベースと相反し、正規化され たデータを扱うのが基本 <例えば、商品情報をLotus DominoとDB2に各々データを持った場合> Lotus Domino 顧客テーブル DB2 顧客No:1、顧客名:A株式会社、商品:A商品 顧客No:1、顧客名:A株式会社、商品:B商品 顧客No:1、顧客名:A株式会社、商品:C商品 顧客No:2、顧客名:B株式会社、商品:D商品 非正規化されたデータの集まり 58 商品テーブル 顧客No:1、商品:A商品 顧客No:1、顧客名:A株式会社 顧客No:2、顧客名:B株式会社 顧客No:1、商品:B商品 顧客No:1、商品:C商品 顧客No:2、商品:D商品 正規化されたデータの集まり © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 LEI全体の考慮点③ ノーツアプリケーションを作成する際には、外部データソースを意識して作成す る – 入力値(桁数等)やデータ型の正当性は、ノーツアプリケーションでチェッ クすること • LEIは入力値やデータ型について、何もチェックを行わない <参考:ノーツとDB2の実際の型とLEI上での表記(検証結果)> 59 ノーツの実際の型 LEIでのノーツの型 (表記) LEIでのDB2の型(表 記) DB2の実際の型 テキスト Text Text CHAR 数値 Float Int INT テキスト Text Text VARCHAR 数値 Float Int SMALLINT 日付/時刻 時刻の表示 Datetime Datetime TIME 日付/時刻 日付の表示 Datetime Datetime DATE 日付/時刻 時刻、日付の表示 Datetime Datetime TIMESTAMP 数値 小数点の位置 Float Numeric DECIMAL © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 LEI全体の考慮点④ LEIは、外部データソースからのエラーメッセージをそのまま返すか、もしくは、 LEI特有のメッセージとして返す – 特にリアルタイム連携時において、LEIはエンドユーザーが認識できるような メッセージを返さないので、ノーツアプリケーションにて吸収するか、もし くは、エラーパターンを整理しておく必要がある • LEIのエラーメッセージ一覧は、技術情報として公開されていないので注意 ユーザー LEI DB2 ①LEIを経由してDB2にアクセス ??? ③パターン① LEIのエラー ②SQLエラー ③パターン② SQLのエラー そのもの 60 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 LEI全体の考慮点⑤ LEI全体のその他の考慮点 – 通常の運用について • ノーツアプリケーションと連携するデータソースの整合性を常に意識する必要があ る • LEIは外部データソースとの接続量をアクティビティ単位で管理し、LEI全体で制御 することができないので注意が必要 – パフォーマンスについて • 数百万、数千万件の文書(レコード)データを転送するには、LEIは適さないので注 意 – 転送処理に多くの時間がかかる為 – デバッグについて • LEI上にて外部データソースへどのようにアクセスしたかをデバックする方法が用意 されていないため、ノーツアプリケーションにてデバックできる情報を残しておく – 文字コードについて • ノーツで利用している文字コードと転送先の文字コードの整合性があうかどうかを 確認する – Notes.iniパラメータの” EINativeText=“にて指定することで、LEIにて文字コードを変換し て転送先へ送ることも可能 61 © 2012 IBM Corporation IBM Lotus Notes/DominoとLEI以外の機能に よる外部連携 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 LEI以外の連携 Lotus Connector - LCLSX(LotusScript Extentions for Lotus Connectors) ‒ Webサービスコンシューマ - SOAP(Simple Object Access Protocol) Javaプログラムによる連携 - WebSphere MQ連携 - 63 © 2012 IBM Corporation Lotus Connector - LCLSX(LotusScript Extentions for Lotus Connectors) - © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 Lotus Connector概要 Lotus Connectorとは・・・ – IBM Lotus Notes/Dominoから外部のシステムへのアクセスを可能にする 仕組み • LEIもLotusConnectorをベースの仕組みとして利用 大きく以下3つの機能に分かれる 1. Lotus Connector 1. DCTEST/CONTEST – 接続確認用ツール(CONTESTはLEIのみ利用可能) 2. Lotus Connector for XXX / Lotus Metaconnectors for LEI – 外部データソースへアクセスする際にLEIやDECSで定義するコネクション文書が該当 2. LCLSX • • LotusScriptから、IBM Lotus Notes/Domino外部データソースへ接続する為のク ラス群 Lotus Connectorにもアクセス可能で、コネクション文書の定義を利用可能 3. LS:DO 65 ※ LEI解説にて詳細を記載 以降は赤枠部分を解説します! © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 LCLSX概要① LCLSXとは・・・ – IBM Lotus Notes/Dominoから、LotusScriptを利用して、外部データソース へ連携 • 外部データソースへのアクセスを柔軟に記述可能 • Lotus Notes上のボタン、ノーツ文書イベントの発生時やエージェントなど、 LotusScriptを記載できる箇所であれば連携させることが可能 – Lotus Notesでも、Lotus Dominoでも動作させることが可能 • Lotus Notes、Lotus Domino共に外部データソースへアクセス可能なNativeクラ イアントを導入しておく必要がある。 <ユーザー> <ノーツアプリケーション> <外部データソース> Domino アプリケーション ボタン 66 フォームの イベント LotusScript エージェント © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 LCLSX概要② 導入モジュールは、IBM Lotus Notes/Dominoに付属 連携可能なデータソースは以下 – Notes、DB2、File、ODBC、Oracle、OLE DB、Sybase LEIやDECSで作成したコネクション文書の外部データソースへの接続定義も利用 することが可能 ノーツアプリケーション内でライブラリをimportして利用する – Importにより、Lotus Connector関連のクラス、メソッド、プロパティが利 用可能となる (Options) Option Public Option Declare UseLSX "*lsxlc” 67 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 LCLSXの仕組み DB2の時のLCLSX連携動作例(ノーツ上のボタンの例) クライアント DB2 Lotus Dominoサーバー 1.ボタン 押下 パターン① クライアント側で LSXを動作 Notes DB2 クライアント 3.DB2クライアントから DB2サーバーへ処理を要求 ボタン DB2 サーバー 2.ボタン内のLSXのロジックで DB2クライアントに処理を要求 4.DB2クライアントから DB2サーバーへ処理を要求 1.ボタン 押下 Notes パターン② サーバー側で LSXを動作 ボタン 2.ボタン内のロジックで エージェントを呼び出し 68 Domino DB2 クライアント エ DB2 サーバー 3.エージェント内のLSXのロジックで DB2クライアントに処理を要求 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 LCLSX考慮点 DECS/DCR/LEIと異なり、基本的に全ての処理をコーディングすることが必要 – コネクション文書の定義を利用するのであれば接続定義のみ不要 外部データソースを十分に理解した上で、実装するのが望ましい –例えばDB2であれば、以下のようなことを理解する • • • • • • 69 RDBの一般的な概念 DB2のアプリケーションでの接続定義 DB2のコネクションの扱い、コネクションプーリング SQL関連の知識 Commit/Rollbackの知識 分離レベル(CS/URなど・・・) © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 (参考)DCTEST/CONTEST IBM Lotus Notes/Dominoから、外部データソースへの接続を確認する仕組み – DCTEST:外部データソースに専用ツールで接続を確認 – CONTEST:LEIのコネクション文書の情報を利用して接続を確認(LEIのみ) <DCTEST接続確認イメージ> <CONTEST接続確認イメージ> 接続先を指定 コネクション文書名 を指定 接続パラメータを指定 70 © 2012 IBM Corporation Webサービスコンシューマ ‒ SOAP(Simple Object Access Protocol) - © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 (参考)まずWebサービスコンシューマの前にWebサービスとSOAPの基本 Webサービスとは? – さまざまなプラットフォーム上で動作する異なるソフトウェア同士が相互運 用するための標準的な手段を提供(Wikipediaより転載) – 具体的には、、、 • HTTPなどのインターネット関連技術を応用して、SOAPやRESTと呼ばれるプロト コルを用い、メッセージの送受信を行う技術、またはそれを適用したサービス SOAPとは? – インターネット関連技術である、HTTP、SMTPプロトコル等を利用して、 XMLをベースに相互にメッセージの送受信を行うためのプロトコル – SOAPエンベローブ(SOAPプロトコルに従ったXML形式データ)を相互に送 受信しあい、要求元と処理側でメッセージのやり取りを行う。 – WSDL(Web Services Description Language) を利用して、アクセスする 場所や方法を提供 72 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 Lotus Notes/DominoにおけるWebサービスコンシューマ連携概要 IBM Lotus Notes/DominoにおけるWebサービスコンシューマとは・・・ – Webサービスプロバイダが提供するWebサービスの機能をSOAPプロトコル に従い、Lotus Dominoで利用することができる機能 • Webサービスのクライアントのようなイメージ – 「Webサービスコンシューマ」は、Lotus Domino 8.0.xより対応 Webサービスのプロトコルとしては、SOAP1.1、WSDL 1.1をサポート Lotus Notes/Dominoの設計要素の1つとして実現 73 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 Lotus Notes/DominoでのWebサービスコンシューマの仕組み Lotus DominoのWebサービスコンシューマは、WSDLの定義に従い、簡単に作 成することが可能 – ローカルのWSDLファイル、もしくは、WSDLのURLを記載して取り込む ボタンやエージェント等からWebサービスコンシューマを呼び出し利用 Webサービスコンシューマ (Lotus Notes Lotus Domino) ①WSDLの定義に従って、エージェント等を利用し Webサービスプロバイダーにアクセス ③受け取ったSOAP EnvelopeをLotus Dominoで 解釈し、結果を取得 74 Webサービスプロバイダー (他システム) SOAP Envelope ②Webサービスプロバイダ にて処理を実行 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 (参考)Webサービスコンシューマ実現方法① Webサービスコンシューマ 設計を作成 – ローカルのWSDLファイル、もしくは、WSDLのURLを記載して取り込む WSDLファイル を指定 75 自動的に 取り込み © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 (参考)Webサービスコンシューマ実現方法② 必要に応じて呼び出す処理を記載 – 以下はエージェントの例 Webサービス コンシューマ名を指定 Webサービス コンシューマ名内のクラス を呼び出して関数を利用 引数を渡して処理を実行 76 © 2012 IBM Corporation Javaプログラムによる連携 – WebSphere MQ連携 - © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 MQ連携概要 IBM Lotus Notes/DominoにおけるMQ連携とは・・・ – Lotus Notes/DominoからJavaを利用してMQにアクセスし、Queueの Get/Putにより、他システムと相互にデータ交換する • MQから提供されているjarを取り込み、Lotus Domino上のJavaからMQにアクセスする • MQだけではなく、他製品等で提供されているJava APIがあれば同様に連携が可能 • LotusScriptから連携するときはLS2Jにより呼び出し – MQLSX、MQTMは、R5.x以降、提供されていない • MQLSX:MQにアクセスするためのLotusScriptの専用ライブラリ • MQTM:MQメッセージが入ってきたことを検知し、エージェントを起動するプログラム クライアント MQGET/PUT MQクライアント MQサーバー MQGET/PUT 他システム Lotus Dominoサーバー MQGET/PUT 78 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 MQ連携の仕組み MQ連携動作例(ノーツ上のボタンの例) クライアント MQ Lotus Dominoサーバー 1.ボタン 押下 クライアント側で Javaを動作 Notes MQ クライアント 3.MQクライアントから MQサーバーへ処理を要求 MQ サーバー ボタン 2.ボタンからJavaエージェントを呼び出し MQクライアントに処理を要求 4.MQクライアントから MQサーバーへ処理を要求 1.ボタン 押下 Notes サーバー側で Javaを動作 ボタン 2.ボタン内のロジックで エージェントを呼び出し 79 Domino MQ クライアント エ MQ サーバー 3.エージェント内のJavaのロジックで MQクライアントに処理を要求 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 MQ考慮点 Lotus Domino宛てのMQがメッセージが届いたことを確認するために、定期的に Queueの中身を確認する – MQTMのように、MQのメッセージが届いたことをトリガーにして、エージェ ントを動作することができない為 – 常駐エージェント化した際には、停止する工夫も必要 MQへの送信、受信共に、メッセージの内容をLotus Notes/Dominoに保存して おくことが望ましい – MQメッセージの再送やLotus Notes/Domino内の再処理などに利用できる – MQメッセージを残しておくことで、Lotus Notes/Domino側の問題か、MQ を利用した他システム側の問題かの切り分けを行うことが容易となる 80 © 2012 IBM Corporation まとめ © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 「Lotus Notes/Dominoから外部データソースに連携する」手法の整理 データ連携 タイミング データソース の配置場所 アプリ作成 の 容易さ (※1) 他システ ムと アプリ依 存 利用できる 連携手法 連携可能な 外部データソース 連携 手法の お勧め (※2) リアルタイム 連携 外部データソース (一部ノーツDB) 中 有 LEI Virtual Fields (Lotus Domino DECS/DCR) DB2、OLEDB、ODBC、Oracle、 Sybase、File ★★ 外部データソース (一部ノーツDB) 中 有 LEI Virtual Documents DB2、SOracle、Sybase 、QL Server、MS Access 2000 ★ 外部データソース 難 有 Lotus Connector Lotus Script Extention Notes、DB2、File、ODBC、Oracle、 OLE DB、Sybase ★★★ 外部データソース 難 有 Javaプログラムによる 連携 JarとしてAPIが提供されている 外部データソース ★★★ 外部データソース 難 有 Webサービスコン シューマ (SOAP) Webサービスプロバイダー ※SOAP1.1、WSDL 1.1が前提 ★★★ ノーツDB 易 無 LEI Direct Transfer Notes、DB2、File、ODBC、Oracle、 OLE DB、Sybase、Text ★★★★ ノーツDB 易 無 LEI Replication Notes、DB2、File、ODBC、Oracle、 OLE DB、Sybase、Text ★★★★ ノーツDB 難 無 Lotus Connector Lotus Script Extention Notes、DB2、File、ODBC、Oracle、 OLE DB、Sybase ★★★ バッチ連携 (※1) アプリ作成の容易さ 易:ノーツアプリの知識のみ、中:一部外部データソースの知識が必要、難:外部データソースの詳しい知識や他技術の知識が必要 82 (※2) 連携手法のお勧め ★★★★:お勧め、★★★:十分なプロジェクト期間と検証が行えるのであれば、採用の余地がある連携手法、★★:お勧めできない。 採用するなら十分な機能の理解と検証が必要。★:特にお勧めできない。★★に加え、シンプルかつ参照のみでノーツアプリとして © 2012 IBM Corporation シンプルであることが最低条件 IBM Lotus Notes/Domino外部連携解説 まとめ IBM Lotus Notes/Dominoはさまざまな外部データソースとの連携が可能。各々特徴があ る為、実現したい要件に基づいて連携方法を採用する LEIのリアルタイム系連携は、従来のLotus Notes/Dominoが用意している機能について利 用制限が発生したり、そもそも使えなかったりすることもあり、採用する際には、業務要 件を整理し、十分に事前の検討を行うことが望ましい LEIの機能で要件を満たすことができない場合には、柔軟な対応が可能なWebSphere等、 別のミドルウェアを採用も検討したい IBM Lotus Notes/Dominoと連携する外部データソースを十分に理解した上で連携方法を 実装するのが望ましい IBM Lotus Notes/Dominoはさまざまな外部データソースとの連携が可能です。 外部連携の際には、業務要件を整理し、連携する機能と外部データソースを 十分に理解した上で機能を選択することが成功の近道です! 83 © 2012 IBM Corporation 参考文献 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 参考文献① LEI/DECS/DCR – DECS と Lotus Domino パーティションサーバー、および OS クラスタ機能に対するサポートにつ いて • http://www-01.ibm.com/support/docview.wss?uid=swg21463036 – LEI、DECS、DCR の違いについて • http://www-304.ibm.com/support/docview.wss?uid=swg21467357 – LEI:Virtual Field アクティビティの Synchronize Key Documents オプションについて • http://www-304.ibm.com/support/docview.wss?uid=swg21463899 – Lotus Enterprise Integrator Documentation • https://www.ibm.com/developerworks/lotus/documentation/lei/ – IBM LEI 日本語マニュアルの入手方法 • http://www-304.ibm.com/support/docview.wss?uid=swg21465310 – 「Trim spaces on all non key fields」を有効にしても空白が削除されない • http://www-304.ibm.com/support/docview.wss?uid=swg21464861 – LEI:Notes データベースから i5 上の DB2 にレコードを追加できない • http://www-304.ibm.com/support/docview.wss?uid=swg21463274 – DB2/400 の全角ハイフンを LEI で Lotus Domino に転送すると、半角ハイフンになってしまう • http://www-304.ibm.com/support/docview.wss?uid=swg21463899 – LEI:「現在ビューは排他モードとしてマークされています」エラーが発生する • https://www-304.ibm.com/support/docview.wss?uid=swg21501089 – LEI: Lotus Notes 間の Replication アクティビティで、添付ファイルのファイル名が欠落する • https://www-304.ibm.com/support/docview.wss?uid=swg21501089 85 © 2012 IBM Corporation IBM Lotus Notes/Domino外部連携解説 参考文献② SOAP – IBM Lotus Domino 7 での実用的 Web サービス: 単純な Web サービスを作成してテ ストする • https://www.ibm.com/developerworks/jp/webservices/lotus/library/web-services2/ – IBM Lotus Domino 7 での実用的 Web サービス: 複雑な Web サービスを作成する • http://www.ibm.com/developerworks/jp/webservices/lotus/library/webservices3/index.html – Which style of WSDL should I use? • http://www.ibm.com/developerworks/webservices/library/ws-whichwsdl/ – Overview of HTTP Request Logs for Domino Web server • http://www-304.ibm.com/support/docview.wss?uid=swg27003598 MQ – JavaでつなぐLotus NotesとMQ! • http://www.ibm.com/developerworks/jp/websphere/library/wmq/notes_mq/ – How to Recode MQLSX to Use MQ Java for Lotus Domino 6/WebSphere MQ Interaction • http://www-304.ibm.com/support/docview.wss?uid=swg21113032 86 © 2012 IBM Corporation