2012年1月9日月曜日

[FIM2010] R2 で強化された拡張コネクタ開発

そろそろ正式リリースされてもおかしくない FIM2010R2 ですが、拡張コネクタ(Extensible Connectibity。旧XMA/ECMA)の開発に関する機能も強化されています。
新しい拡張コネクタ開発のフレームワークは ECMA2.0(Extensible Connectibity 2.0)と呼ばれ、MIIS/ILM 時代のXMA、FIM2010 の ECMA1.0 に比べて以下の新機能が追加されています。

・Call based Import
・Batched Import & Export
・Schema / Partition discovery
・Customizable parameters & Interface
・Definable capabilities

それぞれの機能について簡単に説明をしていきたいと思います。

■Call based Import
FIM の拡張コネクタを開発する際、Import / Export の形式は File based、Call based から選択することになります。それぞれの違いは、
・File based : 中間ファイルを経由したデータのやり取り
・Call based : 直接接続先とデータのやり取り
です。
FIM2010 までは Export については File based / Call based の両方を利用することが出来ましたが、 ECMA2.0 からは Import 処理でも直接接続(Call based)をサポートしました。

■Batched Import & Export
MIIS~FIM2010 までは Import / Export 共に一つのメソッドで実装するしかなかったので、1エントリ毎に対象システムとのコネクションの確立、データ連携、コネクションのクローズという手順を踏むしかなく、非常にオーバーヘッドがかかっていました。
今回 ECMA2.0 ではコネクションの初期化・確立、データ連携、コネクションのクローズがそれぞれ別々のメソッドとして分離されました。結果として、コネクション関連のメソッドをエントリ毎に呼び出す必要がなくなり、効率がよくなりました。
参考)インポート時に使用するメソッド
・コネクションの初期化 : OpenImportConnection
・インポートの実施 : GetImportEntries
・コネクションのクローズ : CloseImportConnectionResults

■Schema / Partition discovery
これまでは接続先システムのスキーマ(どのような属性を保持しているか)を FIM に認識させるために例え接続先がデータベースであったとしてもテンプレートファイル(CSV)を一度読み込ませる必要がありました。
しかし、ECMA2.0 からは GetSchema メソッドを実装することで直接スキーマを読み込んで連携対象の objectType と属性一覧を取得することが出来る様になりました。

■Customizable parameters & Interface
こちらも XMA / ECMA1.0 では接続先システムに関するパラメータの設定が
・Connect To : 接続先の名称
・User : 接続用ユーザ名
・Password : 接続用パスワード
の3つしか指定できなかったのですが、ECMA2.0 からは画面上にコントロールを自由に配置できる様になったため、パラメータ群についてもかなり自由に設定出来る様になりました。
配置可能なコントロールは以下の通りです。
・ラベル
・文字列
・暗号化文字列
・ファイル
・チェックボックス
・セクション区切り
・ドロップダウンリスト
・テキストエリア

試しに配置してみたのが以下の画像です。
































■Definable capabilities
拡張コネクタがサポートする機能を設定することが出来ます。設定可能なプロパティは以下の通りです。

区分プロパティ名説明デフォルト値
実行プロファイルDeltaImportMA が Delta Import をサポートするかどうかTRUE
FullExportMA が Full Import をサポートするかどうかFALSE
接続先ディレクトリの動作ObjectRenameMA が DN のリネームをサポートするかどうか。DistinguishedNameStyle プロパティの値が MADistinguishedNameStyle.Generic もしくはMADistinguishedNameStyle.LdapStyle となっている必要があるTRUE
ObjectConfirmation接続先ディレクトリがオブジェクトの変更時に確認をすることが出来るかどうかNormal
DeleteAddAsReplaceMA が削除→追加をサポートするかどうか。もしこの値が FALSE であればオブジェクトのリプレース時に全削除→追加が実行される。TRUE
DistinguishedNameStyleMA がサポートする DN のスタイルMADistinguishedNameStyle.Generic
NoRefereneceValuesInFirstExport初回エクスポート時にオブジェクトが参照値を含まないようにする必要があるかどうかFALSE
同期と MA の動作ConcurrentOperation複数インスタンスの MA の同時オペレーションを同期エンジンがサポートするかどうかTRUE
ExportTypeExport 時にオブジェクトの属性をリプレースする際、同期エンジンが属性のリプレース行うか、属性のアップデートを行うかどうかMAExportType.ObjectReplace
NormalizationsExport 前にデータの平準化を行うかどうかMANormalizations.None

と、ここまでざっと新機能を紹介してきました。次回は新しい形式を使って以前作成した Google Apps MA を実装する方法を紹介したいと思います。

ちなみに ECMA2.0 の評価環境としては FIM2010R2 の RC 版、もしくは ECMA2.0 の評価専用の Synchronization Service(Build 4.0.3587.168)が Connect サイトに用意されています。

0 件のコメント: