Domino & REST

1,016 views

Published on

Notesコンソーシアム 九州地区研究会 2016 のセミナーで説明に使ったスライドです。
RESTとは、なぜRESTなのか、DominoでRESTを使うには?その事例などの紹介です。

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,016
On SlideShare
0
From Embeds
0
Number of Embeds
691
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • 皆さん、こんにちは。
    これからは IBM Domino & REST という内容でお話しさせていただきます、

    リコーITソリューションズの海老原と申します。よろしくお願い致します。

    まずは簡単に自己紹介させてください。
    私はWebアプリ開発に10年以上携わっており、それに関する経験はそれなりにあると思っています。
    その知識をNotes、Xpagesに活かすべく、活動しております。

    そんなこんなで、こういったところはお話させていただく機会も多く、IBM Championsに任命されています。
    よろしくお願い致します。
  • 今回はお手元に資料はないのですが、このスライドを公開しております。
    “Xpagesで行こう”というブログを書いていますので、これで検索していただいき、このページダウンロードできるようになっています。
    ですので、スライドの内容を書き写す必要は無いですので、ぜひ私の方を向いていただいてお話をきいていただければと思います。

  • 今回の内容と関連するサイトを紹介しています。
    後日、振り返りをされるときに、ダウンロードしたこのスライドをご参考になさってください。
  • 本日お話する内容です。
    まず、RESTとは、なぜRESTなのか、ということを踏まえた後に
    DominoでRESTを実現するにはどうするのか、ということで XpagesのRESTコントロールの紹介をします。
    また、事例紹介として RESTを使った事例、あとはRESTとはちょっと違うのですが、応用としてこんなDominoの使い方があります、という紹介をさせていただきます。

  • まずは、RESTとは、からです。
    RESTというのは、ITの業界ではトレンドの1つとなっているので、
    ご存じの方もいらっしゃるかと思いますが、お付き合いください。
    初めてきいた、言葉は聞いたことある、という方は、ぜひ今日RESTとは何か、ということだけでも身につけていただければと思います。

    それではまず、RESTとは、ということですが→
  • RESTとは1口で説明すると、アーキテクチャ思想、ガイドラインといってもいいですが、その1つです。
    こう言うと、ちょっと堅苦しい言い方になってますが、要は仕様、ということですね。
    RESTは、クラウドのサービス、社内システム間の連携や、BtoB、BtoCなど多くのシステム間、サービス間連携で利用されています。
    もう少し詳しく見ていきましょう。
  • RESTは、HTTPで通信します。Webでインターフェースを提供する WebAPIの仕様ということです。
    よって、ブラウザと同じようにURLで呼び出しますので、サーバー側にはWebサービスが必要になります。
    Dominoの場合は XPages がそれになりますね。

    通常ブラウザでホームページを見るためには、ブラウザでURLを指定し、サーバーはそのリクエストに応じてHTMLや画像ファイルを返してくるわけですが、
    RESTは、クライアントのプログラムからURLを指定し、HTMLではなく、プログラムが処理するためのデータがかえってくる、というイメージです。

    ではそのデータというのは、どういったものか、ということですが->

  • やり取りするデータの種類にこれでなければならない、という規定はありません。
    しかし、デファクトスタンダードというべきものがあり、それがJSONと呼ばれるテキストデータです。
  • JSONはデータの構造を表現する、テキストのデータです。ですので、テキストエディタでも表示できます。
    JavaScriptでそのままプログラム内でオブジェクトとして扱えるのが特徴です。

    詳しい解説は、資料のはじめの方にある参考資料のサイトをご覧頂きたいと思いますが、非常にシンプルでプログラムで利用しやすいため、多くのシステムやサービスで採用されています。
  • ここまでの説明を図にしてみました。
    先ほどお話しように、通常、ブラウザでホームページを表示する時には、URLを指定してページを呼び出し、
    Webサーバーは、それに応じてHTMLを返します。

    一方RESTは、同じHTTPを使いますが、やり取りするデータがJSONなどHTMLとは別のデータだということになります。

    もう一つ重要な要素として、メソッドというものがあります。→
  • 先ほどURLを指定して呼び出す、リクエストする、という話をしました。
    ブラウザでHTMLを表示するときには意識しないのですが、リクエストするときの呼び出す型、動詞と言い換えても良いのですが、それを付与することになっています。
    RESTでは、サーバーはこのメソッドに従った処理をすることが求められています。

    具体的にどういったメソッドがあるか見てみます。
  • メソッドの種類はいくつか有りますが、代表的なものとして、GET,POST,PUT,DELETEがあります。
    それぞれ、リソースの取得、作成または追加、更新、削除、という意味があります。
    ここでピンと来たかもしれませんが、このメソッドでCRUDが表現できるということです。

    例えば、同じURLでも GET でリクエストが来たら、文書の情報を渡す、POSTで来たら文書を新規作成する といった処理を行うように、サーバー側でプログラミングしてあげる必要がある、ということです。


    RESTについての説明は以上ですが、完全なREST、RESTfulと言われる より詳しい内容については、冒頭の参考資料のサイトやRESTで検索してみてください。
  • ではなぜRESTがよく使われるのか、私がRESTを勧めるのか、その理由をお話します。
  • → まず、ビジネスロジックが一元化され、メンテナンス性が向上 する、ということですが、次のスライドで説明します。

    →次に、いろいろなシステム・サービスとリアルタイムで連携しやすくなる ということです。
    システム間のデータの連携には、夜間バッチによるCSVファイルなどでの連携の例が多いと思いますが、だいたい1日単位でズレが生じます。
    システムで必要なときに別なシステムに直接アクセスしてデータを取得できることで、リアルタイム性が増します。

    →また、モバイルアプリなど独自のUIが提供できる ということが上げられます。
    従来のDomino/Notesを例に上げると、フォームを使ったNotes DBやXPagesだと、そのDBのデータを利用するには、NotesDBやXPagesのサイトからしかアクセスできません。
    RESTでインターフェースを提供することで、スマホのアプリなど、さまざまなUIからアクセスすることができます。

    こういったのメリットは、RESTではない仕組みでも実現しようと思えばできますが、REST最大のメリットは、→シンプル、たということです。先の説明で行ったように、通信方式は、よくあるHTTPを使いますし、やり取りするデータもテキスト形式でシンプルなJSONなので、いろいろなシステムに組み込みやすいです。

    さて、初めのビジネスロジックが一元化され、メンテナンス性が向上する、というメリットに関しては、システムを設計する際に、技術者がその構成を考える必要があります。

  • Notesのフォームもそうですが、XPagesでも、それをそのまま作った場合、情報の取得や作成、更新といった処理の入り口が限られてしまいます。
    たとえば、XPagesで施設予約のWebアプリを作成したとします。ユーザーはブラウザでWebページから予約を入力できるようになりました。

    その後、別なシステム例えばスケジューラーのようなシステムから、施設予約を連動したいと要望が上がりました。
  • その時、それ用のインターフェースは無いわけですから、CSVファイルとそれを取り込むエージェントを作るとしましょう。

    そうすると、入力値のチェックであるとか、プログラムでセットするフィールドなどある場合、XPagesと同じようなプログラムをエージェントにする必要があります。
    エージェントからXPagesのロジックは呼べないですからね。

    そうすると、同じビジネスロジックが2箇所に存在することになり、バージョンアップは煩雑になりますし、バグの発生確率も上がり、更新に工数がかかるようになってしまいます。
  • RESTで経由でビジネスロジックを処理するようにすることで、XPagesでも別システムからでも同じ処理を経由することができるようになり、システムはシンプルになり、変更に強いシステムになります。

    昨今、ビジネスを取り巻く状況や環境の変化が激しい中、情報システムも変化について行けるように、このような変更や拡張に強い仕組みが求められています。
    もし、これからNotesを使ったシステムを作成したり、改築したりする場合、こういったことを取り入れる必要があると思います。
  • さて、ここまで一般的なRESTの話をしてきましたが、具体的にDominoでどう実現するのか、ということをお話したいと思います。
  • Domino9.0以上では、設定だけでビューや文書をJSONで返す機能があります。
    ノーコーディングでRESTが実現できるので、非常に手軽なのが特徴です。
    これで事足りることも多いですが、 ビジネスロジックを組み込むことが難しいことと、JSONをカスタマイズできないこと、など柔軟なサービスを提供することができません。

    ここでは、XPagesのRESTコントロールを使う方法をご紹介します。
  • ちなみに、XPagesでWebアプリを作成したことがある方は、どのくらいいらっしゃいますか?

    ・・・今日は時間の都合でXpagesを使ったことある前提で、話を進めますが、わからないことがあったら、今日の最後に「井戸端会」を予定しているので、そこできいていただければと思います。

    RESTコントロールとは、XPagesで REST API が簡単に実装できるコントロールです。
    Domino 9.0 以降は、ビルドインされているので、何も準備することなく使うことができます。

    8.5.2, 8.5.3 の場合は、Extension Libraryをインストールするか、8.5.3の場合には Upgrade Packを入れてください。

    Extension Libraryのインストール方法は、冒頭の参考サイトをご参照ください。

    ここから、このコントロールの詳しい使い方に入りますが、今回は時間が短いこともあるので、簡単に進めます。
    詳しくは、この資料や、私のブログの方をご参照ください。
  • XPagesのコントロールですので、空のXPagesに右のコントロールの一覧から、RESTサービスをドラッグ&ドロップします。
    この辺は簡単ですね。
  • 次に、PathInfoというプロパティで、URLを決めます。
  • 次に、リクエストが来た時のサーバー側の処理を書きます。
    serviceというプロパティで、customRestServiceを選択します。
    ここを触ると判るのですが、他にも viewJsonService や documentJsonService などが有ります。

    これらは、前に説明した「Dominoデータサービス」と同じように、設定のみでviewやdocumentを返す事ができるものですが、ここでは説明を省略します。
  • 以降は、クライアントから、サーバーへの値の渡し方、サーバーからクライアントへの値の渡し方について、資料では説明しています。
    詳しい説明は、今回は省きますが、概要だけ説明すると、
    GETリクエストの場合は、リクエストのURLのパラメータで送ります。
  • サーバーからクライアントに返す方法は、doGetの処理の最後に、テキストを return すればよいです。
    ここでは、JSON文字列を返すことにしますので、JavaScriptのオブジェクトを作成して、toJson()メソッドでJSON文字列に変換して返しています。
  • POSTのデータは、リクエスト ボディ ー つまり本体にデータが入ります。
    データの形式は、JSONもありますし、HTMLでフォームに入力した値の場合も有ります。
    ここでは、JSONの受け取り方を説明します。
  • JSONを受け取るには、requestContentTypeに JSON の指定を行い、requestVar にプログラム内で参照する任意の名前の変数名を指定します。
    そうすると、doPost や doPut の処理の中で、その変数にJSONをオブジェクト化したものが入っていますので、それを利用できます。
  • ここで注意ですが、
    Dominoは既定では、GET,POST以外のリクエストを受け付けることはできません。
    インターネットサイト文書を作成し、必要なメソッドを設定して、サーバー設定文書でそれを有効にする必要があります。
  • 最後に事例紹介したいと思いますが、
    実はまだあまり例は多くないので、RESTやそれに関連する技術を用いた例をご紹介したいと思います。
  • これは、XPagesで作られたWebアプリケーションで、設備予約と管理を行うものです。PCのブラウザでドラッグ&ドロップで予約の登録や変更が行えます。
  • これをスマートフォン、スマートウォッチで参照し、
    スマートフォンの方は、アプリの中にWebブラウザの画面がそのまま出しています。
    モバイルブラウザではなく、アプリにすることで新規登録の通知を受け取ったり、スマートウォッチとの連動ができるようになっています。
    ウォッチの方は、画面も性能も限られるので、今日の予定の一覧と、予定の追加だけができます。

    次に仕組みを簡単に説明します。
  • XPagesのDBは、Bluemix on Xpagesで動作しています。

    Bluemixとは、アプリケーション・プラットフォームをクラウド上で提供されているものです。
    XPagesで簡単に説明すると、Dominoサーバーがすでに用意されていて、そこに作ったDBをアップロードすると、すぐにインターネットに公開できるXPagesのサイトが作られる。

    ただ、今回のWebアプリはBluemixだからといって特別なことはなく、通常のDominoでも同じように動作します。

    XPagesに緑色の枠の各機能がRESTのインターフェースです。これをスマホから呼んでいます。実はブラウザで表示される画面からもこのRESTを使用しています。


    話が長くなってしまいましたが、もう1つだけ。
    Google cloud messaging は、androidの端末に通知を送信するための、Googleのサービスです。これもRESTで送信の指示を送ることができます。XPagesから他のオープンなRESTサービスも利用できる、ということですね。
  • とあるお客様で、業務日誌をつけたい、というお話があり、よくよくきいてみると、グループ毎に記載する項目を変更したい、
    という難しいものでした。
  • これは、グループ毎に設定をもたせるようにし、そこではレイアウトや
  • 入力する項目やそのタイプなどを設定できるようにしました。
  • このように、他のシステムでは使われているオープンな仕様や仕組みを、
    現在のDominoでは取り入れやすくなっています。
    Dominoはそういったものを取り込むことによって、いままで撮りためているデータをより有効活用できるようになります。

    皆様の組織でも、ご検討されてみてはいかがでしょうか?
    ご相談が有りましたら、この後の懇談会や別の機会のこの研究会等のテーマにするなどできると思います。

    以上です。ありがとうございました。
  • Domino & REST

    1. 1. IBM Domino & REST 2016年6月10日 Notesコンソーシアム 九州地区研究会 2016 6/9/2016 Ricoh IT Solutions Co.,Ltd. 1 海老原 賢次 リコーITソリューションズ株式会社 鹿児島事業所
    2. 2. 資料をslideshareで公開しています • Slideshareで公開していますので、後ほど振り返りでご利用くだ さい。 • http://www.slideshare.net/kenjiebihara71 または または 2016/6/9 Version: [0.1.0] Classification: Internal Owner: [EBIHARA Kenji] 2 XPagesで行こう! 検索 slideshare ebihara kenji 検索
    3. 3. 参考サイト • IBM developer Works [RESTful Web サービスの基本] https://www.ibm.com/developerworks/jp/webservices/library/ws- restful/ • 海老原ブログ [XPagesで行こう] http://take-the-xpages.blogspot.jp/ • IBM Champion 御代様 [XPagesでRESTを使ってみたら、こんなんだった] http://www.slideshare.net/ssuser40c5c0/x-pages-daya5-27954881 [XPagesでRESTを使ってみよう] http://www.slideshare.net/ssuser40c5c0/x-pagesrest 2016/6/9 Version: [###] Classification: Internal Owner: [Insert name] 3
    4. 4. 参考サイト • Extension Libraryのインストール方法 https://www- 10.lotus.com/ldd/ddwiki.nsf/dx/OpenNTF_XPages_Extension_Libr ary_%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3 %83%88%E3%83%BC%E3%83%AB%E6%96%B9%E6%B3%95 2016/6/9 Version: [###] Classification: Internal Owner: [Insert name] 4
    5. 5. 本日のお題 6/9/2016 Ricoh IT Solutions Co.,Ltd. 5 1. RESTとは 2. なぜRESTなのか 3.REST コントロール 4.事例紹介
    6. 6. 本日のお題 6/9/2016 Ricoh IT Solutions Co.,Ltd. 6 1. RESTとは 2. なぜRESTなのか 3.REST コントロール 4.事例紹介
    7. 7. RESTとは  システム間、またはシステムとクライ アント間との通信方法の アーキテクチャ思想の1つ。 6/9/2016 Ricoh IT Solutions Co.,Ltd. 7
    8. 8. RESTとは  ブラウザでHTMLページを表示するの と同じ、HTTPでデータをやり 取りする。(Web API)  呼び出しもURLで呼びだす。(リクエストす る)  よって、サーバー側にはWebサービス が必要。 6/9/2016 Ricoh IT Solutions Co.,Ltd. 8
    9. 9. RESTとは  やり取りするデータの種類に規定はな い  最もよく使われるのが、JSONと呼 ばれるテキストデータ。 – JSONの他にXMLが使われる場合もある。 6/9/2016 Ricoh IT Solutions Co.,Ltd. 9
    10. 10. JSONとは  データの構造を表現する、テキスト形式のデータ。 { // 中括弧でオブジェクトを表現 "lastName": "海老原", // 項目名:値の形で書く "firstName": "賢次", "age": 41, "skill": [ // 配列 "domino", "XPages", "C#", "java" ], "address": { // オブジェクトの入れ子 "address1": "鹿児島県鹿児島市吉野町", "address2": "xxx-xxx" } } 6/9/2016 Ricoh IT Solutions Co.,Ltd. 10
    11. 11. RESTとは 6/9/2016 11Ricoh IT Solutions Co.,Ltd. ブラウザ サーバー HTTP(リクエスト) HTTP(レスポンス) HTM L クライアント APP サーバー HTTP(リクエスト) HTTP(レスポンス) JSO N JSO N
    12. 12. RESTとは  HTTPで通信するときに、メソッド と言われる呼び出す型(動詞)を指定 する。 6/9/2016 Ricoh IT Solutions Co.,Ltd. 12
    13. 13. HTTPのメソッドとは  HTTPのリクエスト(呼び出し)するときに、呼び出しの 目的を指定することができる。  種類は、HTTPの規約で決まったものがある。 よく利用するメソッド • GET … リソースの取得(ブラウザでHTMLを開くときもこれ) • POST … リソースの作成、追加(*1) • PUT … リソースの更新(*1) • DELETE…リソースの削除 (*1:正確に表記すると、POSTは"べき等"でない、その他は"べき等"である、という条件が付きます。) これ以外にも、OPTIONS、HEAD、PATCHなどがある。 6/9/2016 Ricoh IT Solutions Co.,Ltd. 13
    14. 14. 本日のお題 6/9/2016 Ricoh IT Solutions Co.,Ltd. 14 1. RESTとは 2. なぜRESTなのか 3.REST コントロール 4.事例紹介
    15. 15. RESTのメリット 6/9/2016 Ricoh IT Solutions Co.,Ltd. 15 ビジネスロジックが一元化され、メンテナンス性が向上 いろいろなシステム・サービスとリアルタイムで連携しやすくなる。 シンプル。すぐに作れる。すぐ使える。 モバイルアプリなど独自のUIが提供できる。
    16. 16. REST…WebAPIを設計する  XPagesなどWebアプリケーションは、主にブラウザで情 報を閲覧したり、入力したりするのが目的。  でも、データの入り口が増えたら・・・? Domino Database XPages BL View BL…ビジネスロジック 6/9/2016 Ricoh IT Solutions Co.,Ltd. 16
    17. 17. REST…WebAPIを設計する  例えば、CSVファイルをエージェントで取り込むとした 場合、XPagesとエージェントで同じ処理を書かなくては ならない。→メンテナンス性低下。工数増。 Domino Database XPages BL View BL…ビジネスロジック エージェント BL 同じものを用意する必要がある CSVファイル 6/9/2016 Ricoh IT Solutions Co.,Ltd. 17
    18. 18. REST…WebAPIを設計する  RESTによるWebAPIを作成することで、ビジネスロジッ クを統一できる。 メンテナンス性が向上。工数減。 Domino Database XPages BL View BL…ビジネスロジック REST API 6/9/2016 Ricoh IT Solutions Co.,Ltd. 18
    19. 19. 本日のお題 6/9/2016 Ricoh IT Solutions Co.,Ltd. 19 1. RESTとは 2. なぜRESTなのか 3.REST コントロール 4.事例紹介
    20. 20. DominoでREST  Domino データサービス を使う – v8.5.1ugp1 or v9.0以上。 – サーバー設定文書とDBの設計要素の設定だけで可。 – JSONの構造は定められたもので、カスタマイズできない。 – 参考:御代様ブログ[のおつ -Notes/Dominoに関すること-] http://guylocke.blogspot.jp/2013/06/notesdomino-rest-api.html  XPagesのRESTコントロールを使う 6/9/2016 20Ricoh IT Solutions Co.,Ltd.
    21. 21. RESTコントロール  XPagesでREST APIを簡単に実装できるコントロール  Domino 9.0 以降は、ビルドインされている。  Domino 8.5.3, 8.5.2 は、Extension Library または Upgrade Packが必要。  SSJSで、上記以外のバージョンのサーバーにアクセスし てデータを参照、更新することもできる。 6/9/2016 Ricoh IT Solutions Co.,Ltd. 21
    22. 22. RESTコントロールの使い方  はじめに、空のXPagesに"REST"サービスコントロールを ドラッグ&ドロップする。 6/9/2016 Ricoh IT Solutions Co.,Ltd. 22
    23. 23. 呼び出しのURLを決めます  貼り付けたRESTコントロールを選択します。  "全てのプロパティ"の"pathInfo"にURLとなるAPI名を入れ ます。  XPagesのURLが http://192.168.1.1/sample.nsf/api.xspで、 "pathInfo"に"questions" という値を入れると、外部から下 記のURLでAPIを呼びだすことができる。 http://192.168.1.1/sample.nsf/api.xsp/questions 6/9/2016 Ricoh IT Solutions Co.,Ltd. 23
    24. 24. メソッド毎の処理を書きます  "service"で作成するRESTの種類を選択します。  ここでは、汎用的なREST APIが作れる "customRestService"を選択します。 6/9/2016 Ricoh IT Solutions Co.,Ltd. 24
    25. 25. メソッド毎の処理を記述する  doGet, doPost, doPut, doDeleteに、それぞれのメソッド で呼ばれた時のサーバーサイドスクリプトを記述します。  まずは、GETメソッドに対応するサービスをつくります。  ここでは、キーワードを指定してビューからそのキーに一 致した文書の一覧をJSONで返すことにします。 6/9/2016 25Ricoh IT Solutions Co.,Ltd.
    26. 26. URLパラメータの取得  GETメソッドの場合、リクエストの値を受け取るには、 URLパラメータを使います。  http://192.168.1.1/sample.nsf/api.xsp?key=word  これをサーバーサイドスクリプトで受け取るには、 paramオブジェクトを利用します。 6/9/2016 26Ricoh IT Solutions Co.,Ltd. var key = param.get("key"); print(key); // word URLパラメータに記号やマルチバイト文字が入る場合は、UTF-8でURLエン コードが必要です。 例) ほげ → %e3%81%bb%e3%81%92 サーバーサイドで param.get() で取得する場合、自動的にデコードして元の 文字を返します。
    27. 27. レスポンスでJSONを返す  テストのJSONを返すには、doGetの最後に return でスト リングを返すだけです。 6/9/2016 27Ricoh IT Solutions Co.,Ltd. var key = param.get("key"); var docView = database.getView("DocView"); var docs:NotesDocumentCollection = docView.getAllDocumentsByKey(key); var array = []; //返すJSONのオブジェクト配列を定義 var doc = docs.getFirstDocument(); while(doc != null){ var obj = { title: doc.getItemValueString("title"), tag: doc.getItemValueString("tag") }; array.push(obj); doc = docs.getNextDocument(); } return toJson(array); // JavascriptオブジェクトをJSON文字列に変換して返す
    28. 28. POSTのデータを受け取る  GETの場合は、値を渡すのが目的なので、受け取るパラ メータは少ないことが多いので、URLパラメータで十分。  POSTやPUT(新規登録、更新)の場合は、複数の多くの 項目を受け付ける必要がある。  POSTやPUTでは通常、リクエストBodyでフォームの値や JSONを受け取る必要がある。 6/9/2016 28Ricoh IT Solutions Co.,Ltd.
    29. 29. JSONの受け取り方  requestContentType に“application/json”を指定する。  requestVar に任意の変数名を指定すると、 JSONを自動的に requestVar "で指定した名前でオブジェ クト化し、サーバーサイドJS内で使用できる。 6/9/2016 30Ricoh IT Solutions Co.,Ltd. // リクエストJSON { "name": "kenji ebihara", "tag": "xpages" } // サーバーサイドJS print(json.name); // kenji ebihara print(json.tag); // xpages
    30. 30. Dominoの設定 6/9/2016 Ricoh IT Solutions Co.,Ltd. 31 Dominoで、GET,POST 以外のメソッドを受け取れるようにするには、「イ ンターネットサイト」設定文書を作成し、使うメソッドを許可する必要が あります。 サーバー設定文書 インターネットサイト文書
    31. 31. 本日のお題 6/9/2016 Ricoh IT Solutions Co.,Ltd. 32 1. RESTとは 2. なぜRESTなのか 3.REST コントロール 4.事例紹介
    32. 32. スマートフォン&スマートウォッチ連携 6/9/2016 Ricoh IT Solutions Co.,Ltd. 33
    33. 33. 施設予約アプリ  設備予約アプリ  http://equipmentreservation.mybluemix.net/EquipmentRes ervation.nsf/index.xsp 34
    34. 34. androidアプリ+スマートウォッチ 35
    35. 35. システム構成 36 XPages on 通知 通知 REST REST REST GCM XPages 通知 予約一覧取得 予約詳細情報取得 新規予約登録 予約変更 メッセージ送信 Google cloud messaging
    36. 36. Q&Aアプリ 6/9/2016 Ricoh IT Solutions Co.,Ltd. 37
    37. 37. Q&Aアプリ REST API計画  オープンなNotes関連の質問Webページ。九州地区Notes パートナー会技術部会で作成  http://qa.xpages.jp/  これにRESTでデータが取得できるよう、準備中 6/9/2016 38Ricoh IT Solutions Co.,Ltd.
    38. 38. 外部システムとの連携 6/9/2016 Ricoh IT Solutions Co.,Ltd. 39
    39. 39. • 大量の添付ファイル(100GB超)があるため、Dominoの 1DBのみでは管理が困難 • ファイルはSQL Serverにバイナリ・データとして格納 • Domino 8.5.1のためExtension Libraryは使用できなかった が、オープンソースのJavaライブラリを利用することで低 コストで実現。 6/9/2016 40Ricoh IT Solutions Co.,Ltd.
    40. 40. 事例 Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji09/06/2016 41 DB内にバイナリでファイルが UNIDをキーとして保存する SQL Server Domino アクセス・コントロール 書誌情報を格納 それぞれの長所を活かすとともに、 利用者にシームレスでリアルタイムなサービスを提供することが可能に! ファイルはWebサービスから 直接アップ&ダウンロード 他のシステムからも Webサービスを利用 ファイル 一覧情報JSON ファイルの一覧を取得して XPages内に表示 Webサービス DBサーバー
    41. 41. JSONの活用 6/9/2016 Ricoh IT Solutions Co.,Ltd. 42
    42. 42. 動的フォーム 入力画面(1) 2016/6/9 43 設定に合わせて表を表示
    43. 43. 動的フォーム 入力画面(2) 2016/6/9 44 追加ボタンを押すと、行追加のダイアログ ボックスが表示される 設定されたデータ型に応じて フォームが変わる
    44. 44. 動的フォーム 設定画面(1) 2016/6/9 45 テーブルのレイアウトを選択可能
    45. 45. 動的フォーム 設定画面(2) 2016/6/9 46 テーブル毎に10項目まで指定が可能 項目のタイプを選択可能 テーブルでの列幅を指 定 入力文字数の制限

    ×