一般社団法人 電子情報通信学会
THE INSTITUTE OF ELECTRONICS,
社団法人 電子情報通信学会
INFORMATIONAND COMMUNICATION ENGINEERS

信学技報
IEICE Technical Report
信学技報
SWIM2021-18,SC2021-16(2021-08)

THE INSTITUTE OF ELECTRONICS,
INFORMATION AND COMMUNICATION ENGINEERSTECHNICAL REPORT OF IEICE.

コンテキストに基づくサービス連携を支援するイベントルーチングサービスの検討
中田 匠哉†

中村 匡秀†,††† 神戸大学 〒 657–8501 神戸市灘区六甲台町 1–1†† 理化学研究所・革新知能統合研究センター〒 103–0027 東京都中央区日本橋 1–4–1
E-mail: †tnakata@ws.cs.kobe-u.ac.jp, ††masa-n@cs.kobe-u.ac.jp
あらまし

高度なスマートシステムでは，物理世界やサイバー空間における様々な状況（コンテキスト）に応じて，異種分散サービスを動的に連携させることが求められる．現状このようなサービス連携のロジックは，それぞれのア
プリケーションで個別に実装されており，連携の複雑さに比例してアプリケーションの複雑度や開発工数が増大する．
本研究では，コンテキスト・アウェアなサービス連携を，アプリケーションに中立な形で提供するサービス Uni-messe(Uniﬁed Rule-based Message Deivery Service) を提案する．Uni-messe は，ECR (Event-Condition-Routing) ルールに基づき，様々なアプリケーションやサービスで生起されたイベント・メッセージを，定義された条件に応じて，適切なアプ
リケーションへと配信する．本稿では，まず Publish/Subscribe メッセージ基盤を用いた Uni-messe のアーキテクチャを考察する．次に，6W1H (Who/Whom/When/Where/What/Why/How) イベントモデルに基づく ECR ルールのデータモデルを提案する．最後に，ECR ルールの評価とルーチングの振る舞いを定義する．Uni-messe を使って，スマート
ホーム内のカーテンの自動制御，および，デイリールーチンの自動化を行うアプリケーションを実装した．Uni-messe
によって，ルールに基づくサービス連携をアプリケーションから分離できるため，アプリケーションの開発者や利用者は，サービス連携をより効率的に実装・再利用できるようになる．
キーワード

スマートシステム，マイクロサービス，コンテキストアウェア，ルールベース，Pub/Sub，IoT

Developing Event Routing Service to Support Context-Aware Service
Integration
Takuya NAKATA† and Masahide NAKAMURA†,††† Kobe University, Rokkodai 1–1, Nada, Kobe, Hyogo, 657–8501 Japan†† Riken AIP, 1–4–1 Nihon-bashi, Chuo-ku, Tokyo 103–0027
E-mail: †tnakata@ws.cs.kobe-u.ac.jp, ††masa-n@cs.kobe-u.ac.jp
Abstract In advanced smart systems, heterogeneous distributed services are integrated dynamically, based on various contexts in cyber/physical worlds. Currently, the logic of such service integration is implemented speciﬁcally in each application.
Thus, as the way of integration becomes sophisticated, the complexity and development eﬀort of the application become quite
expensive. In this research, we propose a service, called Uni-messe (Uniﬁed Rule-based Message Delivery Service), which
provides context-aware service integration in an application-neutral manner. Based on ECR (Event-Condition-Routing) rules,
Uni-messe routes an event message from an application to a designated application based on a speciﬁed condition. We ﬁrst
present the architecture of Uni-messe with publish/subscribe messaging platform. We then propose the data model of the ECR
rules based on 6W1H (Who/Whom/When/Where/What/Why/How) event model. Finally, we deﬁne the condition evaluation
and routing behaviors. Using the implementation of Uni-messe, we demonstrate automatic curtain control and daily routine
automation in a smart home. Since Uni-messe de-couples the rule-based service integration from individual applications, itallows developers and users to implement and reuse ﬂexible integration eﬃciently.
Key words smart system, micro-services, context awareness, rule-based system, Pub/Sub, IoT- 32 —1—
This article is a technical report without peer review, and its polished and/or extended version may be published elsewhere.
Copyright ©2021 by IEICEいたり，扱えるコンテキストの汎用性に欠ける等の限界がある．

1. は じ め に本研究では，コンテキスト・アウェアなサービス連携を支援す

情報通信技術（ICT）により人々の生活は便利になり，昨今でる新たなサービス，Uni-messe（Uniﬁed Rule-based MessageDe-は特にスマートシステムの発展が著しい．スマートシステムは，livery Service）を提案する．Uni-messe は，イベント (Event), 条

物理世界におけるモノ・コトとクラウド上の計算資源をネット

件 (Condition), ルーチング (Routing) で定義される ECR ルール

ワークを介して連携し，付加価値サービス（スマートサービス）に基づき，アプリケーションに中立なルールベースサービスをを実現するシステムである．スマートシステムには様々な適用提供する．Pub/Sub 基盤と連動し，様々なアプリケーションや分野があり，その例としてスマートホーム，スマートシティ，ス

サービスで生起されたイベント・メッセージを，指定された条

マートヘルスケアなどが存在する．スマートホーム分野では，件に応じて，適切なアプリケーションへと配信する．

IoT を活用して冷蔵庫や空調といった家電を動かしたり，電気提案手法では，まず Pub/Sub メッセージ基盤を用いた Uni-

料金を考慮したサービス提供などが行われている．スマートシ

messe のアーキテクチャを考察する．サービス間の連携を全てティ分野では，既存の行政サービスに情報技術を組み合わせる

Pub/Sub で経由で行うことで，サービスの疎結合性を高め，サーことで，行政の効率化や市民サービスの向上への取り組みが行

ビスの連携・組み換えを容易にする．また，Uni-messe の責務をわれている．スマートヘルスケア分野では，高齢者の見守りやサービス実行の指示 (ルーチング) にとどめ，実際のサービス実

日々の生活のログなどを通じて，健康に生活を送るためのサー行は個別のアプリケーションに委譲することで，アプリケーショ

ビスが提供されている．

ン中立性を維持する．次に，Uni-messe の ECR ルールのデー

これらのスマートシステムに共通する特徴は，複数のサービタモデルを提案する．システムで生起するイベントを 6W1H

スを連携・組み合わせることによって提供できるサービスの質(Who/Whom/When/Where/What/Why/How) の形式でモデリンや量が改善することである．特に，物理世界やサイバー空間にグし，アプリケーションに中立なコンテキストの定義を可能における様々な状況（コンテキスト）に応じて，異種分散サービする．また，条件部では，6W1H のそれぞれについて汎用的なスを動的に連携させることで，その場，その時，その人に最適条件を指定できるようにし，ルーチングには任意の Pub/Sub のなサービス（コンテキスト・アウェア・サービス）を提供でき

トピックを指定する．最後に，ECR ルールの振る舞いを定義する．しかしながら，一般的に異種分散サービスの複雑な連携はる．具体的には，Uni-messe にイベントが到着した際，各ルー

容易ではなく，コンテキスト・アウェアサービスの効率的な実ルの条件部を評価し成立したらルールを発火，ルーチングに指現には様々な課題がある．

定された Pub/Sub のトピックへイベントを転送する．この時，異種分散サービスを連携するための基盤技術として，マイクロサービスアーキテクチャ，Publish/Subscribe メッセージン

発火条件をイベントの Why に追記することで，サービス実行の根拠をアプリケーションに伝える．

グ基盤 (Pub/Sub) が挙げられる．マイクロサービスアーキテク

本稿では，提案した Uni-messe のプロトタイプを実装し，ス

チャは，システムの機能を小さなサービスの単位で公開し，そマートホーム向けの 2 種類のコンテキスト・アウェアサービス

れらを疎結合して新たなサービスを実現するというアーキテクを実現した．1 つは，照度センサと電動カーテンを連携し，外部

チャ・パラダイムである．Pub/Sub は仲介者（ブローカー）にの照度に応じて自動的にカーテンを開閉するサービスである．

よってサービスの呼び出しを非同期に行うメッセージング基盤

もう 1 つは，人感センサを用いて，時刻に応じた宅内のデイである．コンテキスト・アウェアサービスを実現するには，こリールーチンを自動化するサービスである．Uni-messe によっれらの基盤の上に何らかのサービス連携ロジックを実装し，状て，ルールに基づくサービス連携をスマートホーム本体から分況に応じたサービス連携を実現する必要がある．

離できるため，スマートホームの開発者や利用者は，コンテキ

コンテキスト・アウェアな連携ロジックを実現するための最も直感的なアプローチは，ルールベースシステムである．これ

スト・アウェアサービスをより効率的に実現・運用できるようになる．

は，システムにおいて「ある状況が成立した時には，このサービ

2. 準スを呼び出す」というルールを決め，そのルールに従ってサー備

ビス連携を行う方法である．多くの場合，このようなルール

2. 1 スマートサービス

ベースシステムは，それぞれのスマートシステムやアプリケー

スマートシステムとは，物理世界の情報とサイバー空間の計

ションで個別に実装・管理される．ルールのセマンティクスや算資源をネットワークで連携し，付加価値サービスを実現する

サービス呼び出しの方法はシステム毎にまちまちであり，そのシステムである．スマートシステム上で動くスマートサービス

表現能力や複雑度に応じて，アプリケーションの複雑度や開発の研究開発が活発であり，我々の研究室でも LINE による高齢工数が増大する．

者の見守りサービス [3]，物忘れ防止スピーカー ALPS など様々

そこで我々は，このようなルールベースシステムをアプリ

なサービスを扱っている [4]．これらのスマートシステムに共ケーションに中立なサービスとして切り出すことで，コンテキ

通する特徴として，異種分散サービスを動的に連携させること

スト・アウェア・サービスを迅速に実現できないかという考え

で，部屋やヒトの状況（コンテキスト）をセンサやサービスでに至った．類似するサービスに，IFTTT [1] や RuCAS [2] が存読み取って認識（アウェア）し，状況に合わせた適切なサービ在するが，連携可能なサービスやアプリケーションが決まってス（コンテキスト・アウェア・サービス）を提供する点が挙げら- 33 -—2—

れる．コンテキストアウェア技術を利用したサービスは IFTTT

2. 3 既存のスマートサービス実装基盤の課題

や Nature Remo [5] など多くの商品が実用化されており，一般にも普及している．

スマートサービスの実装は，これらの技術を組み合わせて行
われるが，多くのシステムにおいて似通った実装となる．その異種分散サービスの連携の実現によってスマートサービスをため，スマートサービスに必要な技術を組み合わせて提供した

実現するために一般的に使われる技術・概念としては，マイク

枠組みが多く提供されており，これらを用いることで開発のロサービスアーキテクチャ，Pub/Sub，ルールベースシステム

効率化が可能である．既存の枠組みの例としては，FIWARE，などが挙げられる．これらの技術を実現するための実装を代表

IFTTT，RuCAS，Log4Care などが挙げられる．しかしながら，として，各スマートサービスの実装には共通する箇所が多いた

従来の枠組みでは連携可能なサー飛車アプリケーションが決め，FIWARE [6]，IFTTT，RuCAS，Log4Care [7] といった実装

まっていたり，扱えるコンテキストの汎用性に欠ける等の限界の基盤となるフレームワークを活用することで効率的な実装ががあり，ルールベースシステムを中立的に扱う十分な実装基盤

可能になる．

は存在しなかった．

2. 2 スマートサービス実現のための技術

コンテキストアウェアアプリにおけるルールベースシステム

マイクロサービスアーキテクチャは，システムの機能を小さ

は，サービスによってルールのセマンティクスや適切なサービ

なサービスの単位で公開し，それらを疎結合して新たなサース呼び出しの方法が異なり，それらの表現能力や複雑度に応じビスを実現するというアーキテクチャ・パラダイムである．スて，アプリケーションの複雑度や開発工数が増大するという特マートサービスは，様々なセンサやサービスを非常に複雑に連徴がある．そこで我々は，これらのルールベースシステムを，携させる必要があることから，開発コストや実現可能性の問題

アプリに中立的なルールの管理（CRUD）
・評価処理を行うサーが存在する．そのため，サービスの開発を効率化するために，ビスとして切り出して提供することによって，スマートサービ

サービス同士を疎結合性を保ったまま連携させる必要がある．

ス開発の効率化に繋がると考えた．

この疎結合性を高めるための技術としては，Pub/Sub や RESTful

3. 提案手法:Uni-messe

API などが活用される．
Pub/Sub（Publish/Subsucribe メッセージング基盤）は，仲介

3. 1 キーアイデア者（ブローカー）によってサービス間の非同期通信を行うミド

本研究では，コンテキスト・アウェアなサービス連携を支援

ルウェアである．Pub/Sub におけるメッセージのやり取りは，する新たなサービス，Uni-messe（Uniﬁed Rule-based Message

トピックという私書箱の役割のメッセージの入れ物を大量に用Delivery Service）を提案する．

意しておき，このトピックを介しておこなう．各トピックにおUni-messe の設計にあたっては，コンテキストアウェアアプ

いてサービスは，トピックへメッセージを受け渡す Publish と，

リに適したルールベースシステムについてアーキテクチャを考

トピックからメッセージを受け取る Subscribe の 2 種類の操作

察し，必要な処理を洗い出した．さらに，アプリに中立な処理が可能である．Publish する側と Subscribe する側は互いを意識を取り出してサービス化を行った．

する必要はなく，Publish と Subscribe のタイミングは非同期で本研究のアプローチは次の通りである．

ある．また，登録した様々なサービスが Publish/Subscribe する•

ことができることから，複数のサービスを複雑に連携させるこ•（A2） アプリケーションに中立な ECR データモデルとができる．このような Pub/Sub の性質から，Pub/Sub を用い•（A3）Condition ルールによるイベント評価とルーチングることで疎結合性を保ちながらサービスの高度な連携を行うこ

3. 2 （A1） Uni-messe のアーキテクチャとができる．

（A1） Uni-messe のアーキテクチャ

Uni-messe は，Pub/Sub メッセージ基盤の上に，ルール評価及コンテキスト・アウェアサービスを実現するためには，マイク

びルーチングを行うサービスとして構築される．各アプリから

ロサービスアーキテクチャや Pub/Sub といったサービス連携基生起されるイベントとその条件によって，適切なアプリにイベ盤の上層に，具体的なサービス連携ロジックを実装し，状況に応ントを転送する．Uni-messe，Pub/Sub，外部アプリの関係を示じたサービス連携を実現する必要がある．サービス連携ロジッ

すアーキテクチャを図 1 に示す．

クの構築における直感的なアプローチとしてルールベースシス

Uni-messe と周辺アプリにおけるサービスの設計・スコープ

テムが挙げられる．ルールベースシステムは，Event・Conditon・は次のとおりである．Uni-messe は，ルールの管理・イベント評

Action の ECA ルールに基づいて処理を行う，推論型の AI シス価（式評価）
・処理の指示（ルーチング）の機能を提供する．各

テムである．ECA ルールは，生起した Event を Condition で評

ルーチングの規則は，ECR ルール（Event・Condition・Route）

価し，条件式を満たせば Action が発火する，というプロセスでとして定義される．それに対して，Uni-messe と連携する個別動作する．Event を評価するための Condition ルールの条件式のアプリは，個々のルールの定義・意味づけ・解釈・処理の実は，事前にルールベースシステムに登録する必要があり，同時行（アクション）を行う．各アプリは，Uni-messe のルール管に条件式を満たした場合に発火する Action も事前の紐づけが必

理機能を使用して事前にルールの CRUD を行う．

要である．ルールベースシステムは，サービスが発生した Event

つまり，Uni-messe と個別アプリでは明確にサービスの責務と Action で発火する別のサービスを仲介できることから，コンが異なる．Uni-messe の責務は，イベント評価の結果に応じてテキスト・アウェアサービスの実装に直感的に利用できる．

どのサービスにどの処理をするか指示すること（ルーチング）- 34 -—3—

合の 2 つを保持する構造体である．条件式は Why を除く 6W1H
アプリ
A

イベント生起Pub/Subの全てにおいて定義される．How / Who / Whom / Where についアプリ
Bては，登録したキーワードに対して完全一致・部分一致・完全
不一致・集合の要素判定といった基本的な条件評価を行う．条
件のデータ構造はキーワードと評価方法のペアで保持される．

Uni-messe

When については，周期的な時刻を表現する cron 式の一種としルール評価て保持し，イベントの When 要素が cron 式に含まれる時刻でアクション実行あった場合のみ真を返す．What については，論理式を用いた

ルーチング

複雑な条件評価を行う．条件のデータ構造は Java 条件式として
アプリ
C

イベントを渡す

評価可能な文字列として保持される．イベントの What 要素のアプリ
D

JSON のキーバリューを置換して評価を行い，Java 条件式として真ならば真を返す．Why については，今回は評価式を導入しなかった．

Route は，イベントの宛先を表現する構造体である．データ

図 1 Uni-messe のアーキテクチャ

構造としては，イベントを渡す Pub/Sub 上のトピック名を 1 つであり，処理の実行は責務ではない．処理の実行は，個別のアだけ保持している．

プリが責務として負うことになる．一般的なルールベースシス

3. 4 （A3） Condition によるイベント評価とルーチング

テムで採用される ECA ルールでは，Route ではなく Action が採

ECR ルールにおける Condition の役割は，Why を除く 6W1H用されるが，Uni-messe では新たに Route という概念を導入しの評価式と Route の集合を結びつけることである．すなわち，た．これは，Uni-messe ではサービス処理（Action）を実行する

ある一連の評価結果が真となった場合に，Condition を通して結責務はなく，処理を実行するサービスを指示すること（Route）

び付けられた Route 全てが発火することになる．Route が発火が責務であるためである．

すると，アプリから受け取ったイベントを Route が保持するトUni-messe アーキテクチャの動作の流れは次のとおりである．

ピックに対してそのまま Publish する処理が実行される．この（1. イベントソース） 各アプリは，部屋やヒトの状況

とき，Route の発火原因となった Condition をイベントの Why（コンテキスト）を認識し，Pub/Sub を介して Uni-messe にイベに追記することで，イベントの因果関係を記録する．これにントを渡す．

よって，サービスが実行される論理的根拠を明確に示すことが•（2. イベントルーチング）Uni-messe は，イベントを ECA可能になり，Uni-messe において機械学習ではなくルールベー

ルールで評価する．さらに，評価の結果として Route すなわち

スシステムを用いてでイベントを判断することで生まれる利点

Pub/Sub 上のトピックを選び，選んだ全てのトピックにイベンの 1 つとなる．

•

トを受け渡す．

•4. 実（3. イベントデスティネーション） アプリは，Pub/Sub

装Uni-messe サービスのバックエンド実装は Kotlin 言語と Springを介して任意のタイミングでイベントを受け取る．さらに，イ

Boot フレームワークを用いて行った．また，データベースサーバ

ベントを自由に解釈し，任意の処理を実行する．

として MySQL を，Web アプリケーションサーバとして Apache

3. 3 （A2） アプリケーションに中立な ECR データモデル
ECR ルールは，Event・Condition・Route で構築されるルー

Tomcat を利用した．Uni-messe が利用する Pub/Sub には，別途ルである．Uni-messe では，ECR それぞれのデータモデルは次実装済みの Pub/Sub サービスを外部から利用する形で導入した．

のように設計した．

Uni-messe の利用手段としては，RESTful API を提供するほか，

Event は，6W1H（How / Who / Whom / When / Where /What

図 2 に示すフロントエンド UI によってブラウザから Web アプ/ Why）の 7 つの要素によってコンテキストを表現する構造体

リとして操作できる．フロントエンド UI は JavaScript ライブ

である．How は，イベントを検知したサービス・センサの名ラリである React で実装した．

前・ID を表現する．Who/Whom は，イベントを起こした/起こ

5. デモアプリ

された人や機器の名前・ID を表現する．Where は，イベントが発生した場所を表現する．When は，イベントが発生した時刻

5. 1 デモアプリ 1

を ISO8061 準拠で表現する．What は，詳細なイベントの属性

Uni-messe を用いたサービス実装のシンプルな例として，明を JSON 文字列で表現する．Why は，イベントが発生してきたるさの変化に応じてカーテンを自動で開閉するデモアプリを実経緯を辿るリストであり，スタックトレースとしての役割を果装した．イベントを発生するアプリには，照度センサを用いた．

たす．

アクションを実行するアプリには，別途実装済みのカーテン開

Condition は，Event の値で評価可能な条件式の集合と，それ閉 API を用いた．
サービス全体のアーキテクチャは次のとおりである．まず，

ら条件を全て満たしたときに実行するルーチング（Route）の集

Python で定期的にセンサから照度を取得し，照度が短時間で変- 35 -—4—
Condition C•

How : センササービス A•

Who : sensorA•

Where : 玄関の棚の上•

When : * * 6-10 * * * （朝の 6 時から 10 時）•

Route : RouteC （トピック C）







各 Condition ルールは，6W1H の条件をすべて満たしたときに，紐づけられた Route の Pub/Sub トピックにイベントを

Publish する．
ここで，各トピックを Subscribe するアプリとして以下を設定した．各アプリは，Subscribe したトピックに Uni-messe から
イベントが Publish された場合に処理を実行するシンプルな処理が記述されたプログラムである．

図 2 Uni-messe のフロントエンド UI（トピック A） カーテンを開けるサービス•
化した場合にイベントを Uni-messe に渡すプログラムを稼働させた．次に，Uni-messe は，Condition でセンサの ID・場所・照度（明るい/暗い）を判定し，適切な Pub/Sub トピックにイベントを受け渡す．例えば，照度が閾値より高ければ light トピックに，低ければ dark トピックに Publish 処理を行った．最後に，Node.js で Uni-messe が渡したイベントを受け取り（Subscribe），
API を実行することでカーテンを開閉した．
このデモアプリにおける Uni-messe の役割は，イベントを発し器のスイッチを押すサービス
また，イベントを生起させるセンササービス A は，人感セン
サと照度センサを組み合わせたサービスである．すなわち，人感センサが人の存在に反応した場合に，同時に照度センサからも値を取得してイベント中の What に light 値として埋め込み．
スである．
リールーチンを自動化する以下のような動作が実現できる．

5. 2 デモアプリ 2•

次に，より複雑なサービスの連携の例として，複数のデイリー
ルーチンを自動化するデモアプリを実装した．イベントを発生するアプリとして，人感センサと照度センサを用いた．アクショの家電操作 API を用いた．これらのアプリの組み合わせによって，部屋に人が入ってきたときに，外が明るければカーテンを開け，外が暗ければカーテンを閉め，時刻が朝だったらテレビ

レビをつける・湯沸し器のスイッチを押す，という処理が実行•

イベントの判定には，次の 3 つの Condition ルールを用いた．

Who : sensorA•

Where : 玄関の棚の上•

What : light >= 200 （明るい）•Route : RouteA （トピック A）


Condition B

•How : センササービス A•

Who : sensorA•

Where : 玄関の棚の上•

What : light < 200 （暗い）•Route : RouteB （トピック B）

昼に人を検知した場合 : 外が明るいため，Condition A

を満たすことにより，カーテンを開ける，という処理が実行される．

•

をつけて湯沸し器のスイッチを押す，という処理を自動化した．

How : センササービス A

朝に人を検知した場合 : 外が明るく時刻が朝であるため，Condition A と C を満たすことにより，カーテンを開ける・テ
される．

ンを実行するアプリには，カーテン開閉 API と SwitchBot [8]•（トピック C） テレビをつけるサービス，および，湯沸これらの ECR ルールと Subscribe 設定によって，複数のデイングによって実行する API を切り替えることである．

•（トピック B） カーテンを閉めるサービス•

このイベントを Uni-messe に受け渡すという挙動をするサービ

生させたセンサの同定および，照度に応じたイベントのルーチ

Condition A•

夜に人を検知した場合 : 外が暗いため，Condition B を満たすことにより，カーテンを閉める，という処理が実行される．



6. 関 連 研 究
既存サービスとして，様々なアプリを手軽に結び付けられるサービスである IFTTT が代表的である．IFTTT を用いたサービス連携の例として，電話の応答に失敗することをトリガー，
メールに通知することをアクションとして設定することで，電話の応答に失敗した場合にメールに通知を送ることができる．
IFTTT の強みは，電話アプリやメールアプリといったポピュ
ラーな商用既存サービスの機能が既に多数登録されており，プ
ログラムを書く技術を持たない人でも簡単にサービス同士を結び付けられる点である．また，Webhook を用いて独自に開発した新規サービスを連携させることも可能である．

IFTTT の欠点として，トリガーとアクションの結びつきが強く，柔軟性に欠けるという点が挙げられる．そのため，Uni-messeのように定期的に発生しているイベントを柔軟に別サービスの- 36 -—5—

実行トリガーとして用いる，といった運用が困難である．また，

Uni-messe はイベントのルーチングを目的としたサービスであるのに対し，IFTTT はサービスを結合して新たなサービスを生成することを目的としたサービスであり，サービスの目的が全く異なる．
コンテキストアウェアと Pub/Sub を連携した先行研究には，

IoV（Internet of Vehicles）フレームワークを提案した Iqbal ら [9]の研究や，強化学習を用いた Kim ら [10] の研究がある．これ

vol.LNCS 10917, pp.466–477, Springer, July 2018. Las Vegas, USA.
[8] “Switchbot（スイッチボット）| スマートホームにらくらくスイッ
チ,” https://www.switchbot.jp/． (Accessed on 08/01/2021)．
[9] R. Iqbal, T.A. Butt, M.O. Shaﬁq, M.W.A. Talib, and T. Umar,“Context-aware data-driven intelligent framework for fog infrastructures in internet of vehicles,” IEEE Access, vol.6, pp.58182–58194,
2018.
[10] J. Kim, S. Hong, S. Hong, and J. Kim, “Context-aware pub/sub control method using reinforcement learning,” Concurrency and Computation: Practice and Experience, vol.33, no.15, p.e5727, 2021.
https://onlinelibrary.wiley.com/doi/abs/10.1002/cpe.5727

らの研究は，Uni-messe とは異なりコンテキストの推論に機械学習を用いることを提案している点が対照的である．

7. ま と め
本研究では，サービス連携の効率化によりコンテキストアウェ
アアプリの開発コストを低下させることを目的として，ECR
ルールの管理・評価を行うサービスである Uni-messe を提案した．Uni-messe は，Condition ルールに基づくイベントのルーチ
ングをアプリケーションに中立な形で代行することにより，各アプリで行われていた該当処理の冗長な実装を不要とすることができる．また，Pub/Sub を介してアプリとイベントをやり取りすることによって，サービス間の疎結合性を保つことができ，
アプリ間の複雑な結合を可能にした．本研究では，Uni-messeを用いたスマートサービスの実装例として 2 種類のデモアプリの実装を示した．
今後の課題としては，Uni-messe を機能拡張することによって，さらに複雑なサービス連携を可能にする必要がある．具体的には，複数イベントを統合・連携して評価することによって，
例えば別サービスとして提供される 2 つ以上のセンサの値をもとに他のサービスを動かす，といった処理を実現可能にしたいと考えている．また，今回の研究ではイベントにおける Whyの評価を行わなかったが，Why を活用して時相論理（テンポラ
ルロジック）の評価を行うことができると考えている．これにより，過去に発生したイベントの内容によって処理の分岐を変化させるようなイベント時系列に応じたサービス連携が可能に
なる．
文

献

[1] “My applets - ifttt,” https://ifttt.com/home. (Accessed on
08/01/2021).
[2] H. Takatsuka, S. Saiki, S. Matsumoto, and M. Nakamura, “RuCAS:
Rule-based framework for managing context-aware services with distributed web services,” International Journal of Software Innovation,
vol.3, no.3, pp.57–68, July 2015.
[3] C. Miura, H. Maeda, S. Saiki, M. Nakamura, and K. Yasuda, “Implementing mind monitoring service for elderly people at home using line chatbot,” ISG’s 12th World Conference of Gerontechnology,
vol.19(suppl), pp.••–••, Oct. 2020. Online.
[4] 明石拓弥，佐伯幸郎，中村匡秀，安田清，“在宅高齢者を支援する
個人適応型スピーカーサー ビスの提案，” 日本認知症予防学会学術集会プログラム・予稿 集認知症予防学会，pp.••–••June 2021．
[5] “Nature remo（ネイチャーリモ）,” https://nature.global/
nature-remo/． (Accessed on 08/01/2021)．
[6] “The open source platform for our smart digital future - ﬁware,”https://www.fiware.org/. (Accessed on 08/01/2021).
[7] H. Maeda, S. Saiki, M. Nakamura, and K. Yasuda, “Log4Care: Uniﬁed event logging service for personalized care,” Digital Human Modeling 2018 (DHM 2018), Held as Part of HCI International 2018,- 37 -—6—