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
© Copyright 2024 Paperzz