アスペクト指向に基づく SOA の考察– マッシュアップによる Web サービスの開発に関する研究 –2007MI199 崎谷 雅幸
指導教員

1 はじめにソフトウェア開発は，アーキテクチャを提案するにあたって，システム全体の構造をどのように設計して実現するかが重要となる．近年，既存のソフトウェアを再利用してシステムを構築する枠組としてサービス指向アー
キテクチャ (SOA) が提案されている．現在，SOA の実
現技術として Web サービスの研究が行なわれている．
その中で，複数の Web サービスを組合せて新たな Webサービスを形成するマッシュアップが注目されている．
SOA の問題点として，サービスの定義が明確でないことが挙げられる [2]．マッシュアップでも，新たなサービスを構築するまでのプロセスが定義されていない．それにより，どのようなサービスになるのか予想がつきにくい [1]．また，マッシュアップでは非機能要求については考慮されていない．結果的にマッシュアップによって構築されたサービスが予想に反したものとなってしまう．
本研究の目的は，SOA に基づいたマッシュアップによる Web サービスの開発方法を提案することである．
非機能要求を考慮し，プロセスに基づいたアーキテクチャを提案する．アーキテクチャを提案するにあたって，サービスそれぞれの非機能要求が実現できるようにアスペクト指向を導入する．これにより，非機能要求を考慮したマッシュアップサービスが実現できる．
事例を通してマッシュアップサービスのモデルを作成することで，マッシュアップにも非機能要求を取り入れることができた．これにより，マッシュアップのアーキテクチャとその開発プロセスを提案することができた．

2 背景技術マッシュアップ
マッシュアップとは，複数の Web サービスを組み合わせて 1 つの新しい Web サービスを構築する技術である．マッシュアップはサービスそのものの連携ではな
く，サービスが持つデータや機能を利用して新たなサービスを構築する．

2.1

張 漢明
つのアスペクトとしてモジュール化する技術である．これにより，オブジェクト指向では不十分とされていたソフトウェアの開発効率や保守性の向上が可能となる．

3 マッシュアップのモデル作成のプロセス
サービスの抽出
現在の分散システム技術はオブジェクト指向を中心としており [3]，SOA に基づいたシステムも同様のことがいえる．本研究では，オブジェクトモデルからのサービス抽出し，マッシュアップのモデルを作成する．サービスとなるオブジェクトは，業務処理ごとにまとめて 1 つのサービスとする．そのサービスを複数繋ぐことでマッシュアップを実現していき，最終的に 1 つのサービスに複数のサービスが組み合わさるようにサービス抽出を行なっていく．
3.2 非機能要求
非機能要求とは，システムの提供する機能が達成すべき性能や制限を表す要求である．マッシュアップにおいても，サービスのデータや機能を利用するだけではなく，サービスごとに非機能要求を定義する必要がある．
3.3 非機能要求の衝突速度が速いサービスと遅いサービスがあった場合，遅いサービスはサービスとして満たすべき特性が不十分ではないかと考える．単に速度が遅いのではなく何か別の要求を実現しているから遅いという前提が考えられる．
例えば速度以外に正確性について定義する場合，速いサービスは正確性が低く，遅いサービスは正確性が高いと考えられる．
本研究では，サービスが持つ非機能要求をアスペクトとする．サービスをマッシュアップさせる際に，それぞれの非機能要求を実現させる．その際に，非機能要求が異なることで衝突が生じる．それに対して一方の要求を特化させ，もう一方の要求を中間で実現させるアスペク
トコードを織り込む．これにより，非機能要求のラッピングを行なうことでそれぞれの要求を実現させる．

3.1

2.2 SOASOA とは，既存のソフトウェアの再利用を通してサービスを組み合わせたシステムを構築する枠組みのことである．サービスを公開することで他のアプリケーションとの共有が可能となり，既存のサービスと組み合わせることで高度なシステムを作成することが可能になる．
2.3 アスペクト指向技術
アスペクト指向技術とは，ソフトウェアにおける複数のオブジェクトやコンポーネントに横断する関心事を 1

図1

非機能要求の衝突の解決案

図 1 は処理速度が特化したサービス，セキュリティが特化したサービスをマッシュアップして互いの非機能要求を実現する方法を図示したものである．それぞれの要求が異なるので，衝突が生じる．これに対し，処理速度を特化させるとともにセキュリティを緩和させるアスペクトコードを織り込むことでラッピングを行なう．これにより，速度が速くセキュリティをある程度もつ特性をもったマッシュアップサービスが構築できる．
このプロセスを基に，本研究では非機能要求を考慮したマッシュアップのモデルを作成する．それを基にアーキテクチャを提案していく．

4 事例検証を定義しておくことで非機能要求を考慮したマッシュアップサービスの構築が可能になったと考える．
5.2 アーキテクチャの妥当性の考察作成したモデルを基に，本研究ではサービスとサービスに関わるデータ，非機能要求をコンポーネントとする．
データについてはオブジェクトが持つ属性として入力と出力で分割する．ユーザの入力を出力としてサービスの入力に渡し，サービス内で出力として他のサービスへと繋ぎあわせることでマッシュアップしていく．非機能要求も同様に他のサービスへ出力し，複数の要求が重なる部分を衝突部分としてアスペクトコードを織り込んでいく．以上を基に作成したアーキテクチャを図 3 に示す．

電車の時刻検索サービスにて事例検証を行なう．オブジェクトモデルからサービスとデータに分割する．プリミティブなオブジェクトをデータとし，残りをサービスとする．サービスは処理ごとに分割して 1 つのサービスとする．時刻検索サービスに必要な非機能要求を以下に示す．

• 時間挙動 (Time behavior)• 耐故障性 (Fault tolerance)• 位置透過性 (Location transparency)
以上を基にオブジェクトモデルの作成，サービスの定義，サービスが持つ非機能要求，衝突とそれに織り込むアスペクトコードを表したモデルを図 2 に示す．

図 3 提案するアーキテクチャ

今回提案したアーキテクチャと時刻検索サービスのモデルとの対応付けは可能であった．このことから，マッシュアップにも非機能要求を考慮することで予想に適したサービスの構築が可能になると考える．また，組み合わさったものの粒度をサービスとした．これにより，他のサービスとの連携を可能にして SOA の目標である再利用性の向上にも繋がるのではないかと考える．

6 おわりに

図2

非機能要求を考慮したマッシュアップのモデル

5 考察
プロセスに基づいたマッシュアップのモデルの考察
本研究では，マッシュアップによるサービスの構築に対して非機能要求を取り込む．オブジェクトモデルからサービスを抽出し，最終的に 1 つのサービスに他のサービスを組み合わせる．これにより，マッシュアップのモデルを作成することができた．また，各サービスにて定義した非機能要求をアスペクトとした．マッシュアップ時に生じる非機能要求の衝突に対し，アスペクトコードによるラッピングを行なうことで衝突を緩和して非機能要求を実現することができる．このことから，プロセス5.1

本研究ではマッシュアップの問題点を解決するにあたって，非機能要求を考慮したマッシュアップのプロセスとアーキテクチャを提案した．これにより，マッシュアップにもプロセスと非機能要求を考慮することで予想に適したサービスの構築が可能であると考えられる．今後の課題として，アスペクトコードも含めてサービスを実装することによる妥当性の考察が挙げられる．

参考文献[1] 幸城祐樹，三村次朗，上田賀一， アスペクト指向を用いたマッシュアップ構築支援システムの開発， 情報処理学会研究報告. ソフトウェア工学研究会報告，vol.2008，no.29，pp.171-177，2008.
[2] 中村匡秀， サービス指向アーキテクチャのためのサービス開発における課題， 情報処理学会シンポジウム論文集，vol.2009，no.3，pp.49-50，2009.
[3] 山野紘一， サービス・グリッドと動的コレオグラ
フィーの提案， 大阪経大論集，vol.58，no.1，2007.