ホームネットワークシステム(HNS)のアプリケーションの一つとして,複数の家電を連携制御する家電連携サービスの研究が進んでいます. 単体では正常に動作する連携サービスでも,複数を同時に実行すると「サービス競合」と呼ばれる機能の干渉・衝突により,ユーザの意図しない動作が行われることがあります. HNS のサービス品質を損なわないためにも,サービス競合を検出し解消することが求められます. しかしながら,連携サービスや機器の種類が増大するに伴い,開発時に全ての競合を把握し,競合検出・解消が適切に行われる仕組みを実装することは非常に困難です. また,家庭ごとに異なるHNS の構成要素や機器構成の変化といった多様性と柔軟性への対応はさらに難しくなります.
我々はこれまでの研究において,サービス指向アーキテクチャ(SOA) にもとづくサービス競合検出・解消基盤を提案しました. この基盤では,競合検出,競合解消,連携サービス実行管理という3つの構成要素を対象サービス化を行いました.
我々が提案する連携サービス開発プロセスでは,これらの各基盤サービスを導入することで,開発効率の改善とバグの削減を実現しました. 開発者を支援するための主要なプロセス要素を以下に示します.
連携サービスは,実行される機器および機器メソッドのシーケンスとして表現されます. サービス競合の検出・解消までを行う場合には,メソッドのシーケンスのみでは不十分です. そこで我々は連携サービスにおけるサービス競合の検出・解消に関するこれまでの研究成果にもとづき,連携サービスモデルを構築しました. 我々の連携第1章はじめに3サービスモデルにもとづくテンプレートによって,ステークホルダーから抽出すべき要件が明確になり,適切な要求分析が可能となりました.
競合検出・解消並びに実行管理の各サービス基盤を利用し,競合サービスモデルにもとづいた競合検出・解消に関する回帰テスト環境を提供します. 開発者は連携サービスごとの連携サービス記述を入力・編集するだけで,連携サービス記述にもとづくあらゆる検出・解消結果を容易に確認することが可能となります.
提案プロセスでは,連携サービス記述の完成に伴い,実装が生成されます. 詳細設計および実装の工程を完全に自動化することで,人的要因によるミスの削減を図ります.
さらに,上記の仕組みを導入した連携サービス開発プロセスを以下に示します.