電話に代表されるさまざまな通信サービスは、もはや私たちの身の回りになくてはならないものになっています。電話を例にとってみましょう。はじめは2点間の音声を伝えるというシンプルな機能のみでしたが、最近では転送電話や話中着信、三者通話、フリーダイヤルや着信拒否、テレフォンバンキング、ダイアルアップなど様々な付加サービスが開発され、ユーザ(加入者)のニーズにこたえています。
しかし、このサービスの多様化によって問題が生じました。それぞれのサービスは単独では正常に動作するのですが、複数同時に実行した場合、サービス同士の機能が競合し、不具合に陥る場合があるのです。これを、サービス競合といいます。
サービス競合は、新規サービスの開発・提供を遅らせるやっかいな問題だと知られています。また、検査すべきサービスの組み合わせが膨大になること、サービス事業者が多岐にわたることなどから、完全な解消は難しいとされています。
簡単な例として、以下の2サービスを考えてみましょう。
すると次のような競合が発生します。
競合:あるユーザAが両サービスに加入していて、ダイアルアップ中であるときに、別のユーザBがAに電話をかけると、話中着信音によりデータにノイズが入り、ダイヤルアップが切れてしまう。
サービス競合は簡単なものから複雑なものまで、様々なインスタンスが確認されています。現状では、通信事業者が経験と試行錯誤に基づいて、サービス機能を修正したり、同時加入できるサービスを制限したりすることで対策をとっています。しかし、このままでは、続々と開発される新サービスの全組み合わせを検査することは非常に困難であるとされています。また、JavaやXMLなどを用いて、非専門家が容易に自らのサービスを構築できる新しいパラダイムも広がってきました。
このような状況の下、サービス競合を試行錯誤ではなく、体系的に検出・解消するための枠組みが求められています。本研究では、特に以下の研究を行っています。