IBM Notes/Domino

IBM Domino AppDev Pack ベータ

Share this post:

IBM Notes/Domino V10 リリーステーマの目玉の 1 つに JavaScript によるアプリケーション開発機能の強化がありました。

具体的には、Node.js で IBM Notes/Domino と連携したアプリケーションを開発できるようするという話になります。

その Node.js でのアプリケーション開発を実現にするために提供されるのが IBM Domino AppDev Pack と呼ばれる、

IBM Notes/Domino V10 用のアドオンモジュールになります。

IBM Domino App Dev Pack のリリースが迫ってきましたので、ここで公開中のベータを元に内容について少し解説しようと思います。

 

IBM Domino App Dev Pack のベータプログラムには以下のリンクから登録可能です。
https://ibm.biz/V10AppDevPack

 

IBM Domino App Dev Pack で提供予定のモジュールは

  • dominoDB NPM : IBM Notes/Domino 連携のための Node.js 用パッケージ
  • サーバーアドオン(Proton) : IBM Domino が Node.js アプリと通信するためのモジュール
  • IAM (Identity and Access Management) : Node.js のアプリが IBM Notes/Domino にアクセスする際のユーザー毎の権限管理
  • OIDC (OpenID Connect) : Node.js アプリのユーザー識別
  • OAuth : Node.js アプリにユーザーの権限を委譲

になります。

 

公開中のベータ版には Linux 版 IBM Domino に対応したサーバーアドオンモジュールと、Node.js 用のパッケージが含まれています。

Windows 版 IBM Domino 対応版や、IAM/OIDC/OAuth に関してはベータ版では試すことができないので注意してください。

 

ベータ版ではサーバーアドオンである Proton と呼ばれるモジュールはバイナリファイルで提供されており、

Linux 版 IBM Domino のプログラムディレクトリーにコピーしてパーミッションを設定するだけで利用する事が可能になります。

HTTP などの他のタスクと同様に Proton も IBM Domino のサーバータスクとして動作します。

以下のように Proton がインストール済みの環境であれば、load コマンドで実行する事が可能です。

 

load proton
> [013486:000002-00007FC39A557840] 12/10/2018 03:13:07.43 PM PROTON> Build 0.1.0-5497660
[013486:000002-00007FC39A557840] 12/10/2018 03:13:07.43 PM PROTON> Listening on 0.0.0.0:6009, INSECURE
[013486:000002-00007FC39A557840] 12/10/2018 03:13:07.43 PM PROTON> Note: Requested port was 0, Actual listen port is 6009
[013486:000002-00007FC39A557840] 12/10/2018 03:13:07.43 PM PROTON> Server initialized
[013486:000002-00007FC39A557840] 12/10/2018 03:13:07.43 PM PROTON> Server allows Anonymous access only.

 

これで IBM Domino に Node.js アプリから接続し操作する事が可能になります。

例えば、以下のようなプログラムを書いて実行すると、対象の IBM Notes アプリケーションに新規に 2 文書が追加されます。

 

const { useServer } = require(‘@domino/domino-db’);

const serverConfig = {
hostName: ‘xxxx.yyy.co.jp’, // Host name of your server
connection: {
port: ‘6009’, // Proton port on your server
},
};

const databaseConfig = {
filePath: ‘node-demo.nsf’, // The database file name
};

const createOptions = {
documents: [
{
Form: ‘Contact’,
FirstName: ‘Aaron’,
LastName: ‘Aardman’,
City: ‘Arlington’,
State: ‘MA’,
},
{
Form: ‘Contact’,
FirstName: ‘Brian’,
LastName: ‘Zelnick’,
City: ‘Chelmsford’,
State: ‘MA’,
},
],
};

useServer(serverConfig).then(async server => {
const database = await server.useDatabase(databaseConfig);
const response = await database.bulkCreateDocuments(createOptions);

// Display the new document UNIDs
const unids = response.documents.map(doc => doc[‘@unid’]);
console.log(`Documents created: ${unids}`);
});

 

プログラムを実行する前に dominoDB パッケージを取り込む必要があることに注意してください。

 

より詳細な IBM Domino AppDev Pack の情報については先日行ったテクてく Lotus 技術者夜会の資料を参考にしてみてください。

https://www.ibm.com/developerworks/community/files/app#/folder/944d94ba-6b6e-41b6-b6ac-712af016e223

 

IBM Domino AppDev Pack のリリース後にたくさんの IBM Notes/Domino と連携した Node.js アプリが見られることを楽しみにしています。

Customer Success Manager for IBM Collaboration Solutions

More IBM Notes/Domino stories
By Atsushi Sato on April 1, 2019

IBM Domino AppDev Pack 1.0.1

IBM Notes/Domino アプリケーション開発機能を拡張し、外部アプリケーションの権限管理、 OAuth によるアプリケーションにアクセスの認可を与える仕組み、Node.js アプリケーションから IBM Notes/Domino にアクセスする仕組みなどを提供する IBM Domino AppDevPack の バージョン 1.0.1 がリリースされました!パーツ番号 CC0NGEN で検索してみてください。 また英語でのアナウンスは以下のブログにあります。 https://www.ibm.com/blogs/collaboration-solutions/2019/03/29/exciting-news-ibm-domino-appdev-pack-1-0-1-is-now-available-on-windows-and-verse-on-premises-1-0-7-has-ical-import/   IBM Domino AppDev Pack 1.0.1 のもっとも大きな機能拡張は Windows 版のサポートかと思います。 ベータ版およびバージョン 1.0 では Linux 版のみのサポートだったため、二の足を踏まれていた開発者も多くいらっしゃるかと思いますが、 今回からは Windows 上の IBM Domino に導入し利用する事が可能になっています。   その他には、アプリケーションの権限などを管理する仕組みである IAM サーバーが正式版になったり、 Node.js から IBM Notes/Domino へのアクセスを実現するためのパッケージである domino-db が機能拡張されたりしています。 その domino-db の機能拡張の中で、テストスクリプトが用意されたのが開発時に役立つのでは無いかと思います。 このテストスクリプトを利用する事で、Node.js アプリケーションと […]

Continue reading