イントロダクション

FIWARE Tour Guideの最初のバージョンが作成された時に、それは、FIWAREの様々なGEsまたはChaptersによって提供された主要な機能の説明を容易にした、いくつかの架空の使用ケースに基づきました。まもなく、学習プロセスを改善する技術を用いた直接実験を可能にする必要性が見つかりました。その結果、開発者が"try and tweak"の学習過程に従うことを可能にして、ツアー・ガイド使用ケースをサポートすることを目的としたチュートリアルのアプリケーションを作成することが決まりました。

FIWARE Tour Guideアプリケーションは、スマートなコンテキスト・アウェア・アプリケーションを作成するためにどのように違うGeneric Enabler(GE)を組み合わせるかを教え、実演することを目的としたリファレンス・アプリケーションです。それはFIWARE GErisがインストールされたDockerコンテナによって提供された機能を利用します。さらに、Docker composeをベースとしているので、アプリケーションは違うFIWARE GEの増分のインスタンス化とリンクを可能にします。

アプローチ

FIWARE Tour Guideアプリケーションを作成するために取られた最初のステップは、リッチなユース・ケースを考案することでした:予約、レビュー、および毎日、各レストランを管理することと関連するすべての項目を含む大規模レストラン・フランチャイズのスマート・マネージメントです。 この目的のために、Open Euskadi(スペイン・バスク州政府)オープンデータ・ポータルのデータは、レストラン、レビュー、および予約のセットによってDocker Imageを生成するために使われました。このすべてのプロセスは、疑似データによってtry and tweak(試して、調整する)に可能になるエンドユーザのために自動化されました。

アプリケーションの機能

The list below summarizes the main functionalities currently offered by the smart restaurant (Tour Guide) application: 以下のリストは、スマートレストラン(ツアー・ガイド)アプリケーションで現在提供されている主な機能をまとめたものです。

  • 異なるユーザプロファイル(顧客、レストランマネージャー、フランチャイズマネージャー)とプロファイルごとの機能。
  • 現在の占有状況および予約に基づいて顧客の予約を承認する。
  • さまざまな基準(サービス、食品など)にもとづいて顧客のレビューを登録します。
  • 各レストランの場所(利用状況、温度など)での異なるパラメータのリアルタイム制御。
  • 監視される様々なパラメータのショート・タイム・ヒストリック・データ。 様々なレストランの場所に関する最も関連性の高い情報に関するオープンデータの公開。
  • レストランに関する情報を監視するWebユーザ・インターフェイス。

アーキテクチャ

以下の図は、スマート・レストラン・アプリケーションのアーキテクチャを示しています。スマート・レストラン・アプリケーションは、いくつかのGEを統合しています:

  • IoT GEs:バックエンドデバイス管理 - IDAS。 UL20クライアントを使用してIoTデバイス(温度と湿度)を接続することを担当します。このコンポーネントは、UL20クライアント要求をNGSIコンテキスト・エンティティに変換し、センサデータの照会およびサブスクライブを可能にします。
  • Data GE:Orion Context Brokerは、NGSIエンティティ(レストラン、予約、レビューなど)としてモデル化されたすべてのアプリケーション・コンテキスト情報を管理します。 Cosmosエコシステムの一部であるCygnusは、ターゲット・バックエンド(MySQLまたはHadoop)またはオープンデータ(CKAN)のヒストリカル・コンテキストデータを持続させる役割を担います。 CygnusはOrion Context Brokerにサブスクリプション/通知インタフェースを介して接続されています。
  • Security GEs:
    • Authorization PDP - AuthZForceは、認可ポリシーに基づいて認可の決定を行うためのAPIを提供します。
    • IDM KeyRockは、ユーザプロファイル管理、OAuth認証、認可&トラスト管理、ドメインサービスのためのシングルサインオン(SSO)、アプリケーションへのフェデレーションの識別など、さまざまな面をカバーしています。AuthZForceと連係動作します。

最後に、フロントエンド・アプリケーションを通じて、管理者は業務のためにレストランにアクセスでき、顧客はレビューを行い閲覧したり、予約を依頼したり、することができます。

archDiagram

図 7 .- Tour Guide Applicationのアーキテクチャ

実装アプローチ

この目的のために、Docker-composeを使用し、さまざまなコンテナに展開された、さまざまなGEsに接続しました。 Docker-composeは、.yml(または.yaml)のスキーマファイルを作成するだけで、完全な環境の作成を可能にします。 このファイルには、いくつかのパラメータが定義されています。これらは、作成するコンテナ、データを共有するボリューム、コンテナをリンクする方法、公開されるポート、およびGeneric Enablersの設定に使用される環境変数などです。Tour Guide Application用に作成されたDocker-composeファイルは、以下のイメージで説明されているシナリオを定義します。 この構成には、独立した環境を使用し、各汎用イネーブラーを目的のポートから公開するという利点があります。 Tour Guide Applicationは、GErisの公式のDockerイメージを使用し、これらのデバッグや品質向上に貢献しました。

composeDiagram

図 8 .- Dockerコンテナの構成

開発アプローチ

このリポジトリには、Tour Guide Applicationのすべてのコードが置かれています。 MITライセンスを使用してリリースされました。 外部の開発者からの貢献は大歓迎です。 開発プロセスは、プルリクエスト、レビュー、コードランディングを含む通常のGithubワークフローに従います。 アプリケーションコードは、Node.jsとHTML5テクノロジを使用して開発されています。 Travis CIツールは、すべてのテストを実行し、品質を保証するために使用されます。