クラウドサービスとの連携でNotes/Domino の新しい活用方法を考えてみませんか
T2-4
株式会社ソルクシーズ吉田 武司
特記事項• 本資料の掲載内容は、できる限り正確を期するよう に努めてはおりますが、いかなる明示または暗黙の 保証も責任も負いかねます。 • 本資料の情報は、使用先の責任において使用され るべきものであることを、あらかじめご了承ください。 • 掲載情報は不定期に変更されることもあります。他 のメディア等に無断で転載する事はご遠慮下さい。 • 当資料をコピー等で複製することは、執筆者の承諾 なしではできません。• IBM® 、 Lotus® 、 WebSphere® は、 International Business Machines Corporation の米国およびその他の国における商標です。• Google および Google ロゴ、 Android および Android ロゴ、 Gmail 、 YouTube および YouTube ロゴ、 Picasa 、 Google Play とそのロゴ、
Chrome 、 Chrome OS、 Chromebook 、 Chromebooks for Work 、 Chromebox for meetings 、 Chrome Management Console は、 Google Inc の商標または登録商標です。• Microsoft, Encarta, MSN, および Windows は、米国 Microsoft Corporation の、米国およびその他の国における登録商標または商標です。• Salesforce 、 Chatter 、Sales Cloud 、 Service Cloud 、Marketing Cloud 、 Salesforce Work.com 、AppExchange 、 Salesforce Platform 、および関連する全てのロゴは、salesforce.com,inc. の商標です。• Oracle と Java は Oracle Corporation およびその関連企業の登録商標です。• Twilio は Twilio, Inc. の登録商標あるいは商標です。• Cloud Shared Office 、 CSO は株式会社ソルクシーズの登録商標です。• 当資料に掲載された製品名または会社名は それぞれの各社の商標または登録商標です。• イラストは、「ピクト缶」様を利用させて頂きました。
ピクト缶ではシンプルなベクターイラストを無料で配布しています。( http://www.pictcan.com/)
アジェンダステップ1:標準機能を簡単に使うステップ2:ちょっと開発ステップ3:じっくり開発
クラウドコンピューティング• インターネットの向こう側から計算資源となるサービスを受ける。• クラウドの形態で提供されるサービスを「クラウドコンピューティングサービス」または単に「クラウドサービス」という。
出典: Wikipedia 「クラウドコンピューティング」最終更新 2015 年 9 月 20 日 ( 日 ) 04:26 UTC
全般的な課題• 仕様変更、サービス停止などの可能性• 社内のセキュリティーポリシーのクリア• 各サイトの利用規約、利用料金
• 今回紹介する例は Notes/Domino の機能紹介としての一例です。 Notes/Domino だけの閉じた世界ではなく、もっと他のサービスと組み合わせることで素早く、新しい活用を考えることのきっかけになればと考えています。実際のご利用に際しては、各サービスにご確認ください。• 今回ご紹介する内容には、スタンダード版ノーツクライアントのみの機能があります
ステップ1:標準機能を簡単に使う•カレンダー( Google カレンダー™)•RSS フィード•LiveText•ウィジェット/サイドバー
Google カレンダーをノーツのスケジュールと一緒に表示 色分けされてオーバーレイ表示
プライベートのスケジュールを一緒に表示できるデータを取り込んでいるわけではない惜しい点・表示が遅い・直接予定を新規作成できない
サイドバーでも Google カレンダーの表示は可能
RSS フィードウィジェット
業界のニュースサイトなどを登録可能RSS 以外にも Web サイトも登録可能
LiveText
よく使う機能を登録しておくとすばやくクラウドサービスを使って検索できる正規表現(自動)またはテキスト選択(手動)で指定可能
プログラミングは不要。また、データベース個別に設定は不要
残念な点• 組み込みブラウザーがサポート外と判断されて利用できないサービスもある
LiveText の補足• LiveText では、認識したテキストを URL パラメータとしてブラウザで開きます。
• 例)• http://zipsearch.mybluemix.net/zip.nsf/xpZipToAddr.xsp?zip=XXX-XXXX
• 上記 URL は、デモ用サイトのため使用できなくなる予定です。すいません。
ステップ2:ちょっと開発•コンポジットアプリケーション
コンポジットアプリケーション
LiveText とも連携可能
ビューで選択したデータの関連事項を検索
ステップ3:じっくり開発•顧客情報の連携( Salesforce® )•ファイル管理・配信 (社外のユーザーと共有)( CSO )•IBM Bluemix™
いろいろな連携方法がありますが・・・
今回はこちら
Java を使う( Java エージェント) XPages を使う( Java, Javascript )
データ連携製品を使う
Notes/Domino で Java™ を使うときの注意点•参考資料
• Lotus Notes/Domino における Java 実行環境とその問題判別について• http://www-01.ibm.com/support/docview.wss?uid=swg21466201
JVM 環境Notes/Domino のバージョン JVM バージョンLotus Notes/Domino 8.5 JVM 1.6.0 (SR1)
Lotus Notes/Domino 8.5.1 JVM 1.6.0 (SR4)
Lotus Notes/Domino 8.5.2 以降 1.6.0 (SR7)
IBM Notes/Domino 9.0.1 1.6.0 (SR16)
JavaCompilerTarget について• デフォルトでは下位互換性維持のために Java エージェントは Java 1.2 用にコンパイルされます。• Java6 の機能を有効化するには、コンパイルを行う Lotus Notes クライアントまたは Lotus Domino サーバーに以下の
Notes.ini パラメータを追加し、再起動を行ってください。JavaCompilerTarget = 1.6またはJavaCompilerTarget = CurrentJavaVersion (最も新しい Java バージョン)
補足「設定」の Java > コンパイラーにもバージョンの設定があるので確認しておいた方が良い
Java アプリケーションでの考慮事項と Recycle()• JVM ではガベージコレクションが不要になったオブジェクトを定期的に解放する。• しかし、 Lotus Notes における Java API では Lotus Notes のオブジェクトを生成する際に Lotus Notes のメモリ管理下に置かれるオブジェクトも生成されるため、定期的に Recycle() メソッドの実行が必要になることがる。• これらのオブジェクトはエージェント実行終了後、 Lotus Notes 用のクラスローダーがアンロードされたタイミングで解放される、エージェント実行時には解放されないままになる。
よくあるエラーorg.codehaus.jackson.map.JsonMappingException: Can not access public java.util.HashMap() (from class java.util.HashMap; failed to set access: Access denied (java.lang.reflect.ReflectPermission suppressAccessChecks)at org.codehaus.jackson.map.deser.StdDeserializerProvider._createAndCache2(StdDeserializerProvider.java:315)at org.codehaus.jackson.map.deser.StdDeserializerProvider._createAndCacheValueDeserializer(StdDeserializerProvider.java:290)at org.codehaus.jackson.map.deser.StdDeserializerProvider.findValueDeserializer(StdDeserializerProvider.java:159)
・・・・・・・
grant {
permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
};
JSON のライブラリでエラーに遭遇( gson, jsonic, jackson )古いですが… Jsonic 1.1.3 だと使えました
問題の切り分けとして、一時的に以下のファイルを修正して確認C:\<Notes インストールパス >\Notes\jvm\lib\security フォルダの Java.policy ファイル
Salesforce とは•営業支援 & CRM として、レポートやダッシュボード機能などは機能は魅力的• アプリケーション開発プラットフォームとしても利用可能• Developer Edition は無償
Salesforce
① 既に使っている方
② 検討している方
③ その他
Salesforce との連携方法• SOAP API
• Salesforce を操作するための強力で便利で、使いやすい SOAP ベースの Web サービスインターフェースを提供します。レコードを作成、取得、更新、削除、または検索の実行などを行うことができます。• REST API
• Force.com を操作するための強力で便利で、使いやすい Web サービス API を提供します。統合および開発が容易という利点があり、モバイルアプリケーションおよび Web 2.0 プロジェクトで使用するための技術では最適な選択です。• Bulk API
• REST 規則に基づいており、大規模データセットの読み込みまたは削除用に最適化されています。 Salesforce のバックグラウンド処理で複数のバッチを送信することにより、多数のレコードを非同期にクエリ、挿入、更新、更新 /挿入または削除できます。• 他にも メタデータ API 、ストリーミング API などもあります。• どの API を使用すべきですか ?
• https://help.salesforce.com/apex/HTViewHelpDoc?id=integrate_what_is_api.htm&language=ja
Salesforce 開発ドキュメントなどから抜粋
今回は、 SOAP API について話します
情報収集• SOAP API 開発者ガイド
• http://resources.docs.salesforce.com/198/0/ja-jp/sfdc/pdf/apex_api.pdf
• 開発者ドキュメント: SOAP API 開発者ガイド• https://developer.salesforce.com/docs/atlas.ja-jp.api.meta/api/
今回のアプリケーション環境
• サーバー• IBM Domino 9.0.1 FP3
• クライアント• IBM Notes/Domino Designer 9.0.1 FP3
• アプリケーション• 標準のディスカッション DB をカスタマイズ
Java エージェントを使ってデータを登録
• Developer Edition
• 掲示板アプリケーションを作成済み
今回は、 Notes のディスカッション DB の内容を Salesforce の掲示板アプリケーションへ登録する想定
手順WSDL取得
セキュリティトークン取得WSC ファイル取得
スタブ生成
Notesアプリ開発 動作確認
WADL (ウィズダル) の取得• 「設定」>「開発」>「 API 」>「 Enterprise WSDL の生成」を開く• 表示された XML を名前を付けて保存
• enterprise.wsdl
セキュリティトークンの取得•既にセキュリティトークンを取得している場合はこのステップはとばす。リセットを行うと現在のトークンが無効になる• 連携に用いるユーザーの「私の設定」>「個人用」>「私のセキュリティトークンのリセット」を開く• メールでセキュリティトークンが送られる
WSC ファイルの取得( Force.com Web Service Connector )• 今回は「 wsc-23.jar 」をダウンロードして利用( Notes/Domino の Java が 1.6 ベースであるのが原因なのか環境の問題なのかそれ以降の WSC だとスタブの生成ができませんでした)
• http://mvnrepository.com/artifact/com.force.api/force-wsc または• https://code.google.com/p/sfdc-wsc/downloads/list
•最新の WSC は、 GitHub にある• https://github.com/forcedotcom/wsc
スタブの生成(1)• WSDL と WSC からスタブ( jar )を生成する• コマンドプロンプトから以下のコマンドを実行• java -classpath wsc-XX.jar com.sforce.ws.tools.wsdlc enterprise.wsdl
enterprise.jar• 例java -classpath c:\salesforce\wsc-23.jar com.sforce.ws.tools.wsdlc c:\salesforce\enterprise.wsdl c:\salesforce\enterprise.jar
※ C:\ibm\notes\jvm\bin に移動して実行してください ( Notes のインストール先が C:\ibm\notes の場合)※ 例では、 enterprise.wsdl, wsc-23.jar は、 C:\salesforce フォルダに配置
スタブの生成(2)• C:\>C:\ibm\notes\jvm\bin\java -classpath c:\salesforce\wsc-23.jar com.sforce.ws.
• tools.wsdlc c:\salesforce\enterprise.wsdl c:\salesforce\enterprise.jar
• [WSC23][wsdlc.<init>:99]Created temp dir: C:\Users\test\AppData\Local\Temp\wsdlc-temp-8141655918898842490-dir
• [WSC23][wsdlc.generateTypes:302]Generating Java files from schema ...
• [WSC23][wsdlc.generateTypes:309]Generated 583 java files.
• [WSC23][wsdlc$Compiler.compile:474]Compiling to target default...
• [WSC23][wsdlc$Compiler.compile:504]Compiled 586 java files.
• [WSC23][wsdlc.generateJarFile:211]Generating jar file ... c:\salesforce\enterprise.jar
• [WSC23][wsdlc.generateJarFile:233]To include runtime classes in the generated jar please set system property standalone-jar=true
• [WSC23][wsdlc.generateJarFile:239]Generated jar file c:\salesforce\enterprise.jar
• [WSC23][wsdlc.<init>:125]Delete temp dir: C:\Users\test\AppData\Local\Temp\wsdlc-temp-8141655918898842490-dir
• [WSC23][wsdlc.<init>:127]Set system property del-temp-dir=false to not delete temp dir.
jar ファイルが生成される
ノーツデータベースでエージェントを作成• 標準のディスカッション DB を用意• 新規エージェントを作成(タイプ:
Java )• 「インポート」>「アーカイブ」から生成した「 enterprise.jar 」と「 wsc-
23.jar 」を登録
コーディング•やっと準備が整いました•後は用意された Class を使ってゴリゴリ Java でプログラミング!
プログラムの補足(1)
ログイン情報(本番ではセキュリティを考慮して別に管理)
プログラムの補足(2)
まとめ…• 今回の例は、 Notes のデータを Salesforce に登録しましたが逆も可能• リッチテキストは仕様が異なるので難しいと思う(無理?) テキスト情報のみならば可能•添付ファイルは、 Salesforce では本文と別のレコードに格納する必要があるので注意。大きな添付ファイルは Notes 側でメモリ不足のエラーが出ることもあった。
社外の人との情報共有はどうしていますか?メールに頼っていることが多くありませんか?
取引先、パートナー、関係会社
38Copyright© 2015 SOLXYZ Co., Ltd. All Rights Reserved.
Cloud Shared Office ECM によるワークスタイルの変革Cloud Shared Office ECMは、オフィスだけでなく、移動中、在宅勤務などの場所や海外、社外の取引先、パートナーまで、安全かつスムーズに情報共有を行うことで、ビジネスを活性化させるファイルコラボレーションを提供します。
外出先から業務ファイルをタブレットで参照。空いた業務時間を有効活用。
パートナー
国内本社から大容量のファイルを転送。メディア送付に掛けた時間の短縮を実現。
営業社員
本社
自宅
取引先
社内で共有された文書が、自宅 PCへ自動同期。在宅勤務などの促進に。
提供する文書に透かし、暗号化を施し、情報漏えいの抑制を向上
国内・社内外へ提供ファイルは適切なワークフローを経て公開。業務プロセスの自動化に
データ管理、 UIプラットフォーム
Salesforceと連携することで、営業支援、ケース管理などのさまざまな業務アプリケーションと連携可能
顧客
ログインFAQ商談検索
Notes ユーザーが CSO を使う利点• 利便性
• ワークフロー、ファイルの配信、スペースルール• セキュリティ
• 柔軟なアクセス権管理• 証跡( 5年間。 CSV 出力可能)• ユーザー有効期間の設定• PDF 透かし(ダウンロード時に日時やユーザー情報を透かしで挿入)
•費用• ユーザー数での課金ではない ( 5,000ユーザーまで。社外のユーザー数の増減も安心)
社内の Notes のように、社外の人との情報共有にも便利なコラボレーションの機能が使える
ご利用料金
100GBまで\60,000~
30GBまで\30,000~
500GBまで\120,000~
1TBまで\500,000~
ファイル配信ワークフロー
スペースルール配信ルール
監査ポリシー オプションフリー
※利用者が 5,000人を超える場合は、ご相談ください。
5 ,000ユーザーフリー
10GBまで\10,000~
ファイル配信ファイル共有
※上記に別途オプションを付与可能( PDF 透かし、ウィルスチェックなど)
※ Collaboration 以上は、 API が使用可能。無料枠あり
Group Collaboration Business Enterprise Global
使用例(1)社外ユーザーとのワークフローNotes DB
CSO
1.資料(議事録など)をアップロード
3.スペースルールにより自動で、承認が終わった資料を PDF 化 PDF
2.スペースルールにより自動で、ワークフロー開始、社外の方へ承認依頼のメール送信
社外
社外
使用例(2):ファイルの配信Notes DB
CSO
1.ファイルをアップロード (期間、ダウンロード回数、パスワードを指定)
4.配信状況はいつでも確認可能
2.配信機能により、指定された関係者へメールで案内社外
社外
3. CSO にアクセスしてファイルをダウンロード
配信ファイルのダウンロードはユーザー登録されていない社外の方もご利用可能
無料トライアル実施中
・お問い合わせ・ご要件確認/サービス説明・ご検討
検討
・ CSOサイト経由でトライアル お申込・ユーザ IDの確定後、パスワード をメールで受領・初期設定
準備
・ユーザ様テスト・ユーザ様評価テスト
・最終確認・本番開始※トライアル設定を保持して本番へ即移行可能
本番
2~ 3日
~ 1週間
2~ 3日
3週間
IBM Bluemix
クラウド上でアプリケーションを開発し、稼働させるための環境
XPages の実行環境もあり(テスト版?)
お知らせH1-3 15:05~【第 1部】XPages on Bluemix で IoT を実感!XPages でドローンを制御、モニタリング
世の中にはいろいろな面白いサービスがあります。それらと組み合わせることで新しいノーツの活用方法が思いつくかもしれません。今回のセッションがそれらを考えるきっかけになってくれればと思います!
まとめ
安心してください。ノーツは使い続けていいんです。
ご清聴ありがとうございました
Q&A