SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【デブサミ2020】セッションレポート (AD)

開発者と非開発者が「ともにつくる」プラットフォーム、Power Platformの威力とは?【デブサミ2020】

【13-A-2】ノーコードPower?だけど開発者だからこそ知っておきたい、Power Platformの使いこなしかた~~W王子より愛を込めて

  • このエントリーをはてなブックマークに追加

Azureと連携し機能拡張する方法

 廣瀬氏は以前、自身が実施したPower Appsのハンズオンで、エクセルが少しできるぐらいのレベルの人が、乗り換え案内ソフトのAPIにアクセスして、経理情報や金額情報を取得した経費精算アプリを作ることを目の当たりにしたという。そのとき、「ローコード開発のすごさを感じた」と感想を漏らす。

 だがローコード開発プラットフォームを本当の意味で生かすには、開発者が重要になるという。廣瀬氏が解説するのは、Azureと連携することでさらにその機能を拡張させる方法だ。

 その題材は、清水氏が作った「某テーマパークのアトラクション待ち時間の可視化するアプリ」。このアプリで蓄積されたデータを機械学習し、待ち時間を推測させるという拡張である。「Power Platformは他のシステム、例えば自前のシステムとつなげないと思っている人が非常に多い。このデモでは、つなげられることも証明したい」と廣瀬氏は熱く語った。

 前提条件は清水氏同様、Power BI Pro以上、CDSが使える、Azureサブスクリプションのライセンスを保有していることである。

 まずCDSからAzure Data Lake Storage Gen2へSyncする。こうすることで、更新するたびにそのデータがエクスポートされるようになる。Data Lake Storage Gen2からMachine Learning Studio Workspaceへデータを取り込み、データセットとして扱う。このデータセットを使って機械学習モデルを作成する。最終的にできあがったモデルはMachine Learning Studio Web ServicesでREST APIになる。REST APIになれば、Power Automateからも、既存の開発製品からもコールできるようになる。

 構造は図3を参照してほしい。Data Lake Storeには、取得したデータ情報はCSVとして時系列順に並ぶ。Machine Learning Studio WorkspaceにCSVをデータセットとして取り込む。データをクレンジング処理し、機械学習が始まるという流れだ。

図3 Webからスクレイピングしたデータを基に機械学習で予測させる
図3 Webからスクレイピングしたデータを基に機械学習で予測させる

自社データベースとREST APIを作成し連携する

 某テーマパークのアトラクション待ち時間のシステムを他のシステムと連携するために使うのが、「Azure Logic App(以下Logic App)」である。「Logic Appはローコード、ノーコードのサーバーレスのツール。主にマウスを使ってオペレーションする」と廣瀬氏は説明する。同ツールが提供するCDSのイベントトリガーを使うことで、Azureでそのイベントを受け取ることができるようになる。「なお、AzureではAzure Functionsというイベントドリブン型のサーバーレス コンピューティングプラットフォームサービスを提供しており、コーディングができる方であればこれを活用する」と廣瀬氏。こうすることで「もしCDSに1行入ったら」「CDSが1行更新されたら」というイベントに対するワークフローを、Logic Appsを使えばコーディングなしで開発できるようになるというわけだ。

 自前のシステムとつなぐ場合は、Logic Appsのカスタムコネクタに自前のREST APIを取り込むことで、連携が可能になる。加えて、On-premise Data Gatewayを職場のサーバにインストールすれば、「社内のMySQLやPostgreSQL、SQLサーバ、SAP、さらにはIBMの汎用機ともつなぐことができる」と廣瀬氏は語る。「もしCDSが更新されたら、オンプレミスのサーバのCSVに1行追加する」ということができるというわけだ。

 Azure側の仕組みについても廣瀬氏は解説。CDSの更新をトリガーにLogic Appsがコールされ、カスタムコネクタとして登録された自作のREST APIで連携。On-premise Data Gatewayを使えば、社内環境のDB、例えばOracleであればInsert/Updateし、社内ファイルサーバであれば指定したパスのCSVに1行追加できるようになる。

図4 Logic Appsのカスタムコネクタで自社環境のデータベースと連携する
図4 Logic Appsのカスタムコネクタで自社環境のデータベースと連携する

 ここでこれまで説明したことを実際に行うデモを実施した。まずは「アトラクション待ち時間を機械学習で推測する」システムのデモ。待ち時間の予測を機械学習するために用いたアルゴリズムは線形回帰。「だいたいどのくらいの待ち時間になりそうか。明日の昼ぐらいだと、もし天気がどうだったらなどの要素を用いて、未来予想ができる。モデルの評価をして良いモデルができたら、Webサービスにする」(廣瀬氏)

 次にLogic Appsカスタムコネクタを使って、自社環境と連携するデモを実施。連携するため、まずREST APIとその定義書のJSONファイルであるSwaggerを作成する。「ここで大事なことはSwaggerを手書きしないこと」と廣瀬氏は指摘する。.NETであればNSwag、JavaであればJAX-RSというように、Swaggerを自動生成するライブラリを使うことがポイントだという。そしてそれらをコネクタとしてLogic Appsに登録すれば、先に説明したように自社環境のDBやファイルサーバと連携し、1行追加ができることを証明した。

 廣瀬氏は、Power Platformを使う最大のメリットを「プログラミング言語を扱わない新しい開発者の参画が可能になること」だと言う。例えば画面の修正なども今までは開発者が行っていたが、Power Platformであればマウス操作だけで可能なので、ユーザー側で変更できるようになる。「今まで開発をしたことのない人も開発をする人も、ぜひ、Power Platformを体験して、生産性を上げてほしい」(廣瀬氏)

 清水氏も「開発者がそろっている場合は、最適なやり方をすればよいが、Power PlatformとAzureを使えば集約したデータを機械学習にかけたりする仕組みが簡単に作れるので、ぜひ試してほしい」と会場の参加者に呼びかけ、セッションを締めた。

お問い合わせ

 日本マイクロソフト株式会社

  • 【Microsoft Learn】
    • Microsoft Azureについて学習できる無料のオンライン トレーニング コンテンツ一覧

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
【デブサミ2020】セッションレポート 連載記事一覧

もっと読む

この記事の著者

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/12032 2020/03/25 16:31

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング