
検索したいキーワードを入力してください



アスペクト指向とモデル駆動に基づく高効率なディペンダブルWeb 開発
鷲崎 弘宜 (早稲田大学基幹理工学部 准教授)
助成をいただいた一年間の研究成果として、モデル駆動開発において適用可能なアーキテクチャパターンやデザインパターン・セキュリティパターンの調査・識別および利用支援環境の実現、開発の早い段階におけるモデルを活用したソフトウェアテスト技術の実現、および、Webアプリケーション開発に適用可能なアスペクト指向プログラミングフレームワークの実現に成功し、以下の発表を行いました。
現在、それらに加えてWebサービスの変化に対応する技術研究成果を組み合わせて、ディペンダブルWeb開発のプロセスおよび枠組みの設計を完了しつつあります。今後、そのプロセスおよび枠組みを高い有用性を持って完成させて1年以内に対外発表することを目標としております。これまでのご支援に御礼申し上げます。
本研究では、ディペンダブルなWebの効率的な開発や変更、保守、運用の達成のために、アスペクト指向プログラミングと段階的なモデル変換・コード生成を通じて、クライアント・サーバ群の各所に散らばる処理や複雑な接続関係を局所化する方法論の確立を目指しています。
研究の中間状況としては、上記方法論の確立に向けた第一のステップとして、ディペンダブルなWebへの変更要求に素早く正確に対応するために、変更要求への対応に必要かつアーキテクチャを横断する実装群について、個々の実装内容の生成方法を定型処理化してあらかじめパターンとして整理しておく方法を実現しつつあります。この方法のイメージを図として以下に示します。
例えば、ディペンダブルなWebとして保持するデータの永続性の確保が不可欠です。通常、データの絵永続性はデータベースによって実現されますが、それに付随してデータの入出力や用いる機能も合わせてデータベースを用いるサーバ側のプログラムやクライアント側のプログラムによって実現されます。ここで永続化対象のデータの種類が変更される場合、その変更に対応するために、データベースに限らずサーバやクライアントなどアーキテクチャに対して横断的に様々な箇所を一貫した形で修正する必要があり、容易ではありません。
そこで本研究における方法では、必要な変更箇所の特定と実装内容を幾らか抽象化したパターンとしてまとめて、適用対象に応じて容易に具体化することに成功しつつあります(図参照)。ここでパターンは、扱う状況や問題と、解決策の組み合わせをまとめあげたものです。

さらに代表者の研究グループでは上記に加えて、下記の要素技術について関連して研究を進めつつあり、最終的に全成果を方法論としてまとめあげる予定です。
・セキュリティパターンを活用したモデルベース開発の枠組みの確立(国際会議 International Conference on Availability, Reliability, and Security (ARES 2011) にて発表予定)
・セキュリティパターン間の依存関係を考慮した設計モデルへの適用手法の確立(論文誌投稿中)
・信頼性や保守性、開発効率を考慮したネットワークシステムのアーキテクチャパターンの確立(国際会議投稿中)
・複数プログラミング言語対応のアスペクト指向プログラミング環境の確立(国内会議投稿準備中)
更新日:2011年2月11日 | コメント(0)
今回の助成金による研究では、 部品化・再利用と品質の両方に関する研究成果を発展させて融合し、 日常生活や社会の基盤として真に「頼れる」Webシステムの実現を目指すものです。 ディペンダブルなWebシステムを効率よく生み出すためには、 単にディペンダブルな(信頼のおける)部品を用意するのみならず、 その組み合わせが適切であることを保証しなければなりません。 しかし現実には、 部品や部品の動作するプラットフォームは多様であり、 組み合わせも多様であり、 さらには、 Webシステムへの機能や品質ニーズは複雑にもつれ合い、 しばしば移り変わります。 従って、 ディペンダブルなWebシステムを効率よく生み出し運用していくことは実に難しく、 Webシステムが隅々まで普及し用いられる今日において解決すべき重要課題です。
そこで私は、 ソフトウェアのあちこちで必要な事柄を後から自動合成するアスペクト指向技術、 および、 複雑なニーズや問題を切り分けて段階的にプログラムへと落とし込むモデル駆動開発技術 の2つに注目し、 その融合によってディペンダブルなWebシステムを効率よく生み出し運用する方法の確立を目指します。 アスペクト指向技術により部品の糊付けを後からシステムへと自動合成できるため、 部品や組み合わせの多様さに対処できます。 さらには、 各部品そのものの中身を後から自動合成できるため、 機能や品質ニーズの変化に素早く対応できます。 モデル駆動開発技術は、 そのような機能や品質ニーズの変化において、 プログラムのどの部分をどのように変更すべきかを効率よく決定することに役立ちます。