XPagesの特徴 - SocialBizUG.org

IBM Championが語る
活用できる
XPagesとは
Notes Festa 2014
2014年5月30日
リコーITソリューションズ株式会社
04/06/2014
Version: [1.0.0] Classification: Internal Owner: EBIHARA Kenji
1
自己紹介
 海老原 賢次
 リコーITソリューションズ株式会社
鹿児島開発部
 Webアプリ開発を10年以上手がけ、
XPagesは2009年から取り組んでおり、
多くの導入実績を持ちます。
IBM Champions 2014 for ICS
に任命されました!
 ブログ XPagesで行こう!(IBM developerWorks内):http://goo.gl/fS44AH
 Facebook:http://goo.gl/jbBsyB
 twitter:@mushinome
2014/6/4
Version: [###] Classification: Internal Owner: [Insert name]
22
本日の内容
XPagesって・・・
XPagesの特徴
- 事例1
もっと広がる!XPagesの世界
- 事例2
- 事例3
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
3
XPagesって・・・
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
4
XPagesって・・・
既存DBをWeb化したい →
XPagesに刷新すると費用が高くなってしまします。
どうして・・・?
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
5
XPagesって・・・
式やスクリプトをそのままXPagesへは移植できない。
04/06/2014
クライアント …
画面の処理からDBへのアクセス等のビ
ジネスロジックを全てクライアントで処理さ
れる。
XPages …
画面の処理はブラウザとサーバー側、ビ
ジネスロジックはサーバー側と分離される。
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
6
XPagesって・・・
 つまり・・・
処理を分解しないといけない
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
7
XPagesって・・・
 クライアントでは、プログラムを全てクライアントで実行するため
UIの処理とDBのアクセスが一連の処理の中でできる。
Notesクライアント(式)
REM {UI : 問合せダイアログを出す}
res := @If(@Prompt([YesNo] ; “確認” ; “OK?") ; "0" ; "1") ;
REM {BL : ~resを使った何らかの処理}
・・・ @DbLookup( ・・・ ); ・・・
REM {UI : 選択ダイアログを出す}
select := @PickList( [Name] : [Single] );
REM {BL : ~selectを使った何らかの処理}
・・・ @DbLookup( ・・・ ); ・・・
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
8
XPagesって・・・
 Webだと、サーバーの処理の途中にUIの操作を行えない
JavaScript(クライアント)
//クライアントで確認ダイアログを表示
Post
JavaScript(サーバー)
//DBへのアクセス
var ret = window.confirm(“OK?”);
@DbLookup(・・・)
Response
//その他もろもろのビジネスロジック
JavaScript(クライアント)
//選択ダイアログを表示
XSP.openDialog(“#{id:myDialog}”);
Post
JavaScript(サーバー)
//DBへのアクセス
@DbLookup(・・・)
//その他もろもろのビジネスロジック
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
9
XPagesって・・・
Notesクライアントと
全く同じ動きを
させようとすると
とっても大変
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
10
XPagesって・・・
 ちなみに
 新規で作成する場合は、
Extension Libraryが充実してきたこともあり、
従来のNotesDBと殆ど変わらない工数で作成できます。
※Notesフォーム、Webそれぞれ得手・不得手があるので、それらをご認識頂く必要があ
ります。
※例えば、ビューでの「表形式でコピー」などはXPagesでの実現は困難です。
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
11
XPagesって・・・
XPages・WebAppの特徴・利点を理解して、
UIや業務のあり方を見直しましょう!
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
12
XPagesの特徴
ご存知のことも多いかと思いますが・・・
おさらいしておきましょう。
2014/6/4
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
13
XPagesの特徴
 画面とデータ(文書)が分離されている
 自由な画面レイアウト
 OpenNTFにあるXpagesライブラリが使用できる。
→Extension Libraryなど
 オープンソースのJavaライブラリが使用できる
 オープンソースのWebUIのライブラリが使用できる
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
14
XPagesの特徴
 画面とデータ(文書)が分離されている
※従来のフォームの用に分離しない方法も可能です。
XPage設計
Notes文書
Form “A”
XPage
Form “B”
XPage
Form “C”
Form “D”
XPage
Form “E”
XPagesとNotes文書の関係は、n:m
1つの画面に複数の文書の情報を表示可能
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
15
XPagesの特徴
 XPagesのDBとNotes文書があるDBが分離されてても良い
NotesDB
XPage設計
XPage
XPage
XPage
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
16
XPagesの特徴
 自由な画面レイアウト
 画面はHTML*で記述
- Notesフォームでは・・・
•
•
•
•
文書のような形で上から作成するので、レイアウトに自由がない・・・
なのでせめてテーブルでレイアウトを作ったり・・・
1ポイントの空行を挟んでみたり・・・
行単位でしか表示/非表示をコントエロールできないために、必要ないところにテーブル
作ったり・・・
• 決められた部品(テキストボックス、ラジオボタン等々)の中からしかUIを選択できなかったり・・・
• 任意の数だけ繰り返すような事ができないの
で、”name01”,”age01”,”name02”,”age02”・・・等の名前のフィールド作った
り・・・
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
17
XPagesの特徴
 XPagesでは自由だ! アイデア次第ではこんな画面も可能!
別々のDBにある文書を表示
クリックすると各DBが開く
※実際にXPagesで作成されたWeb画面です。
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
18
XPagesの特徴
ビューのデータを整形して表示
※実際にXPagesで作成されたWeb画面です。
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
19
XPagesの特徴
オープンソースのJavaライブラリが使用できる
- サーバーサイドでは、サーバーサイドJavaScriptで記述し
ますが、Javaのライブラリが使用可能です。
- 外部のJavaライブラリを組み込むことが可能です。
- 例えば Apache POI を使用すると、WordやExcelの
ファイルを解析・作成が簡単に実装できます。
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
20
XPagesの特徴
オープンソースのWebUIのライブラリが使用しやすい
- 他のプラットフォーム(JSP、ASP.NETなどなど)でよく利用されている、Webの
UI部品が、XPagesでも使えます。
- Dojoはもちろん、jQueryを利用することで、Extension Library以外の、イン
ターネットに星の数ほど有る部品を使用することができます。
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
21
XPagesの特徴
クリックで表示される
独自のドロップダウンリスト
※実際にXPagesで作成されたWeb画面です。
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
22
XPagesの特徴
オープンソースのJavaScriptの部品を使って
ビューデータからグラフを表示
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
23
XPagesの特徴
そもそも
この画面がMetroUI風の部品集を使用
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
24
事例1
Q&Aサイトのご紹介
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
25
事例1
 Q&A for ICS(lotus) Developers
- http://qa.xpages.jp/
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
26
事例1






タグ付けによる、検索性の向上
タグ入力時の入力補完機能
「いいね!」機能
1ページで質問文書と複数の回答文書の表示
マイページでの質問・回答履歴、貢献ポイント確認
GitHubを使った他拠点同時開発
 などなど
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
27
事例1
http://qa.xpages.jp/
 もちろん、XPagesで作成されています。
 XPagesはもちろん、Domino/Notesを始め、Connectionsなど
ICS製品に関するディスカッションサイト
 九州地区ノーツパートナー会で作成しました。
 是非、ユーザー登録をお願いします。
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
28
もっと広がる!XPagesの世界
2014/6/4
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
29
もっと広がる!XPagesの世界
XPagesとは・・・
- Notes文書をWebで表示するためのプラットフォーム
2014/6/4
Version: [###] Classification: Internal Owner: [Insert name]
30
もっと広がる!XPagesの世界
だけじゃない!
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
31
もっと広がる!XPagesの世界
Notes/Domino以外のシステムとつながるための
インターフェース!
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
32
もっと広がる!XPagesの世界
 Extension Library のRDBMS接続機能を使用して・・・
他RDBMS の情報を取得し、XPagesで処理を行ったり、
画面にデータを表示することも可能!
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
33
もっと広がる!XPagesの世界
 オープンソースのHTTP通信ライブラリを使用して・・・
インターネット
社内やインターネット上のWebサービスにアクセ
スして、Dominoサーバーで処理したり、
画面に表示することも可能!
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
34
もっと広がる!XPagesの世界
 Dominoの情報を他のシステムに渡すことが簡単にできる
- 従来でもWebサービス・プロバイダでSOAP通信により、他のシステ
ムとのインターフェースを持つことが出来ました。
- しかしSOAP通信は、その複雑のために敬遠されて、
現在ではあまり使われません。
- 現在では、REST方式によるWebAPIが一般的で、データ形式とし
ては、JSONを利用することが多いです。
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
35
もっと広がる!XPagesの世界
 JSONはJavaScriptから派生したデータ形式。
 XPagesはサーバーサイドはJavaScriptで記述します。
- つまり・・・
 XPagesではRESTによるWebAPIが非常に手軽に作成で
きます。
• ※Extension Library を使用すると、もっと簡単に!
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
36
もっと広がる!XPagesの世界
 XPagesのRESTコントロールを使用して・・・
XPages
WebAPI
Notes/Domino以外のシステムに、Notes文書やビュー
の情報を提供可能!
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
37
事例2
XPages と IBM Connections の連携
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
38
事例2
 新しいSNSのAPI仕様である、Embedded Experienceを使用す
ることで、XPagesの画面をSNSサイト内に表示することが可能!
XPagesの画面が表示される
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
39
事例2
IBM Connections と XPages連携
XPagesの出張申請アプリケーションで、申請を行う
mail.nsf
Domino 9.0 Server
(ドメイン・サーバー)
Connections
Embeddedメールを送信
タイムライン
に書き込む
Domino 9.0 Server
(XPages)
04/06/2014
申請
ブラウザ
クライアントPC
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
40
事例2
04/06/2014
IBM Connections と XPages連携
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
41
事例2
IBM Connections と XPages連携
ユーザー情報の取得・認証(Connection経由)
②Connectionの画面内に
XPages承認画面を表示
Domino 9.0 Server
(ドメイン・サーバー)
Connections
③XPages画面の
承認ボタンを押す
Domino 9.0 Server
(XPages)
04/06/2014
①タイムラインを表示
ブラウザ
クライアントPC
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
42
事例2
IBM Connections と XPages連携
XPagesの画面が表示される
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
43
事例2
IBM Connections と XPages連携
ユーザー情報の取得・認証(メール経由)
Domino 9.0 Server
(ドメイン・サーバー)
Connections
①メールを開く
②メール内に
XPages承認画面を表示
③XPages画面の
承認ボタンを押す
Domino 9.0 Server
(XPages)
04/06/2014
Notes9クライアント
クライアントPC
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
44
事例2
Embedded Experience メール(Domino9)
別Webサイト(XPages)の画面が
表示される
※別サイトは、XPagesでなくても他のWebアプリケーションでも表示は可能
※このメールを作成するには技術的に少々困難だが、XPagesであれば簡単に実装可能
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
45
事例2
ユーザー情報の取得・認証(シングル・サインオン)
• Connectionsの中にXPagesを表示するので、それぞれシングルサインオンで認証
できる必要がある。
• この例では、Connectionsの認証を Domino の認証を利用している
LDAPでユーザーを参照・認証を
依頼
names.nsf
Domino 9.0 Server
(ドメイン・サーバー)
Connections
Dominoドメインに参加
ログイン
どちらかで一度ログインすると、
他方ではログインは不要
Domino 9.0 Server
(XPages)
04/06/2014
ログイン
ブラウザ
クライアントPC
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
46
事例3
XPages と SQL Server の連携
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
47
事例3
•
•
•
大量の添付ファイル(100GB超)があるため、Dominoの1DBのみでは管理が困難
ファイルはSQL Serverにバイナリ・データとして格納
Domino 8.5.1のためExtension Libraryは使用できなかったが、オープンソースのJavaライブ
ラリを利用することで低コストで実現。
一覧情報
ファイルの一覧を取得して
XPages内に表示
Webサービス
SQL Server
リバースProxy
アクセス・コントロール
書誌情報を格納
Domino
ファイル
DB内にバイナリでファイルが
UNIDをキーとして保存している
ファイルはWebサービスから
直接ダウンロード
他のシステムからも
Webサービスを利用
それぞれの長所を活かすとともに、
利用者にシームレスでリアルタイムなサービスを提供することが可能に!
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
48
まとめ!
 既存DBをそのままWeb化するだけでなく、
XPagesの利点・特徴を活かし、
利便性の向上・効率化を図ることで、
付加価値をつけたリニューアル
をご検討下さい。
04/06/2014
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
49
ご質問
2014/6/4
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
50
ご視聴ありがとうございました。
2014/6/4
Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji
51
04/06/2014
Version: [###] Classification: Internal Owner: [Insert name]
52