...

IBM Lotus Notes/Domino外部連携解説 2012/06/28 Lotus Technical Update Workshop 日本アイ・ビー・エム システムズ・エンジニアリング株式会社

by user

on
Category: Documents
579

views

Report

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
Fly UP