このページの本文へ

GUIでDBアプリを開発できるOracle APEXのハンズオン

オラクルのクラウド勉強会で畑と会話するIoTを作る

2016年08月22日 07時00分更新

文● 大谷イビサ/TECH.ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

8月10日、オラクルのクラウドコミュニティ「Oracle Cloud Developers」は、IoTのハンズオンを開催した。同社のPaaSであるOracle APEX(Oracle Application Express)を使うことで、IoTのクラウド側バックエンドを迅速に構築することが可能だ。

土壌湿度をAPEX5にアップロードし、LINEで会話まで

 Oracle Cloud Developersはオラクルのクラウド開発者向けユーザーコミュニティ。「機械学習」「マイクロサービス」「JavaScript」の3つを主要テーマに据えて全国で活動を展開しているが、今回のテーマは「IoT」。ラズパイを使ったIoTデバイスで土壌の湿度を監視し、グラフ化するシステムをハンズオンで試作する。

IoTとOracle Database Platformとの連携

 ハンズオンを担当した日本オラクル PaaSエバンジェリストの中嶋一樹氏はまずデモを披露した。土壌湿度センサーを搭載したラズパイベースのIoTデバイスを土の中に入れ、電源を入れるとSORACOM経由でOracle Database Platformにアップロード。データのアップロード状況は、APEX5.1で作られた「オラクル畑」というグラフにリアルタイムに表示される。センサーに触れると、数秒後にはグラフの数値が上がるので、かなりリアルタイムで動作することがわかる。

ラズパイの土壌湿度センサーの値がリアルタイムにグラフ化

 さらに今回はLINEを使って、擬人化したオラクル畑と会話できるところまで実現した。LINEで「水分は?」と聞くと、「からからです」という答えが戻ってくるので、中嶋氏は土に水を投入。再度「水分は?」と聞くと、「じゃぶじゃぶです」という答えが返ってくる。

オラクル畑を擬人化し、LINEで土壌の状態をチェックできる

 こちらはLINEのBOT機能を活用している。ユーザーの質問をnode.jsのPaaS上で動くBOTサービスに送ると、GoogleのTranslate APIで日本語から英語に翻訳し、api.aiの自然言語解析で質問の意図(Intent)を抽出。質問の回答に必要なデータをOracle Database Cloudから引き出し、BOT経由でユーザーに回答するという流れになる。オラクルのサービスは一部でサードパーティのサービスをAPI経由でうまく使うというシナリオだ。

APEX5.1を使ったテーブルとAPIの作成

 デモのあとは、さっそくハンズオンに取りかかる。今回は、デバイス側ではなく、Oracle APEXによるデータベースとAPIの作成だ。

日本オラクル PaaSエバンジェリストの中嶋一樹氏

 データベースアプリケーション開発ツールであるAPEXは、Webブラウザのみで設計、開発、デプロイまでを実現する。Oracle DBの無償ツールとして提供されており、Oracle Database Cloud上でウィザードやドラッグ&ドロップでアプリケーションを開発できる。

 ハンズオンでは、あらかじめアカウントを作成したAPEX5.1にログインし、「SQL Workshop」の「Object Browser」のメニューから、センサーデバイスのデータを格納するテーブルを新規作成。ウィザードで指定していくと、TimeStampやMoistureなどのセンサーデータを格納するテーブルのカラムが作成できる。現在は英語のみのインターフェイスだが、GUIでの操作なので手順に従っていけば比較的容易だ。

 器ができたところで、次はAPIを作成。「Restful Services」のメニューを選択し、URIとHTTPメソッドでRestful APIを定義する。APEXのフレームワークでは、4つのメソッドとSQL・PL/SQLによるデータ取得・更新のアクションを組み合わせる形になる。URIのプレフィックス(接頭辞)やURIのテンプレートを設定しつつ、ハンドラーの作成でPOSTメソッドを選択し、TimestampやMoistureを挿入するPL/SQLのINSERT文を指定。これでAPEX側がリクエストをパースし、値を取り出し、データを挿入してくれる。

 もう1つデータを取得するAPIを作成する。こちらでは畑のログリストを全件持ってくるテンプレートを作成し、再びハンドラーを作成。今度はGETメソッドを指定し、JSONフォーマットでデータを取得するよう設定する。あとは(通常の)SQLを記述すれば、作成完了。GETメソッドの場合は、Testボタンでテストできる。

 一方、POSTのAPIはApigeeでテストする。ApigeeはWebブラウザの環境に依存せずにAPIをテストできるツールで、著名なWebサービスのAPIもあらかじめ用意されている。ApigeeのAPI Consoleをクリックし、Webブラウザから直接APIを叩くことができる。今回はGenericを選択し、メソッド、URLやパラメーター等を指定すると、リクエストとレスポンスを確認できる。

Apigeeを用いたAPIのテスト

ページデザインやデータビジュアライズもAPEXから可能

 ちなみに今回は使わなかったが、「App Builder」というメニューのウィザードやページデザイナーを使えば、データビジュアライズもAPEX上で可能だという。Webブラウザのフォームにコンポーネントを追加し、そのプロパティやデータソースを指定していけば、チャート表示などのページレイアウトも容易に実現できるという。

 約1時間で、APEXのデータベースとAPIを作成し、テストまで進めた今回のハンズオン。オラクル製品に依存せず、幅広いサービスとの連携が容易に実現できることを理解できた。まだまだ日本での導入が少ないAPEXだが、データベースに抵抗感のないユーザーであれば、わりと障壁なくIoTのプロトタイプ作りにチャレンジできるのではないだろうか? イベントの後半ではQiitaの及川卓也氏が登壇し、Qiitaのサービス説明とその背景に流れるプログラマーの成長について語った。こちらについては別稿でお届けする。

■関連サイト

カテゴリートップへ

ピックアップ