Skip to main content
QUICK REVIEW

[論文レビュー] Opaque Service Virtualisation: A Practical Tool for Emulating Endpoint Systems

Steve Versteeg, Miao Du|arXiv (Cornell University)|May 21, 2016
Software System Performance and Reliability参考文献 29被引用数 15
ひとこと要約

本論文では、事前のプロトコル知識が不要なメッセージトレースを用いて正確なサービス応答を自動生成する、不透明なサービス仮想化という手法を提案する。複数の配列アラインメントに改良版ニードルマン=ウンシャルアルゴリズムを適用してメッセージプロトタイプを導出し、企業向けメッセージングプロトコルのエミュレーションで99%を超える正確性を達成した。本手法は工業的用途向けにCA Service Virtualizationに統合された。

ABSTRACT

Large enterprise software systems make many complex interactions with other services in their environment. Developing and testing for production-like conditions is therefore a very challenging task. Current approaches include emulation of dependent services using either explicit modelling or record-and-replay approaches. Models require deep knowledge of the target services while record-and-replay is limited in accuracy. Both face developmental and scaling issues. We present a new technique that improves the accuracy of record-and-replay approaches, without requiring prior knowledge of the service protocols. The approach uses Multiple Sequence Alignment to derive message prototypes from recorded system interactions and a scheme to match incoming request messages against prototypes to generate response messages. We use a modified Needleman-Wunsch algorithm for distance calculation during message matching. Our approach has shown greater than 99% accuracy for four evaluated enterprise system messaging protocols. The approach has been successfully integrated into the CA Service Virtualization commercial product to complement its existing techniques.

研究の動機と目的

  • 本番環境に近い条件でエンタープライズシステムをテストするが、実際のバックエンドサービスにアクセスできない状況における課題に対処すること。
  • 明示的なプロトコルモデリングを必要とする既存のサービス仮想化ツールの制限や、既知のプロトコルに限定される問題を克服すること。
  • メッセージ構造やスキーマの事前知識がなくても、複雑なエンタープライズメッセージングプロトコルの自動的でスケーラブルかつ正確なエミュレーションを可能にすること。
  • 頻繁かつリアルタイムで、現実的な条件下でのテストを要するDevOps環境における実用的ソリューションを提供すること。
  • 本手法を商業製品に統合し、広範な産業的展開と使いやすさを支援すること。

提案手法

  • 実システムの相互作用からメッセージトレースを収集し、代表的なリクエスト・レスポンスペアを取得する。
  • 複数の配列アラインメント(MSA)を適用して、類似するメッセージ間の共通パターンを特定し、各操作タイプごとのメッセージプロトタイプを抽出する。
  • 改良版ニードルマン=ウンシャルアルゴリズムを用いて、受信リクエストとメッセージプロトタイプ間のアラインメントベースの距離を計算し、マッチングを行う。
  • プロトタイプにおけるメッセージフィールドを変動可能または固定として扱い、ワイルドカードを用いて安定および不安定なメッセージコンponentsを分離する。
  • 受信リクエストとの距離が最小となるプロトタイプを、応答生成の最良マッチとして選択する。
  • マッチしたプロトタイプに基づいて応答を生成し、プロトコルの逆スペル作業なしにリアルタイムかつ正確なエミュレーションを可能にする。

実験結果

リサーチクエスチョン

  • RQ1メッセージフォーマットやプロトコルの事前知識がなくても、記録されたメッセージトレースを用いて正確でプロトコルに依存しない応答モデルを自動生成できるか?
  • RQ2改良版ニードルマン=ウンシャルアルゴリズムを用いた複数の配列アラインメントは、多様なリクエストメッセージを導出されたプロトタイプにマッチングするのにどの程度有効か?
  • RQ3本手法は、実世界のエンタープライズシステムにおける異なるメッセージエンコード、長さ、ペイロードに対して、どの程度高い正確性と耐性を示すか?
  • RQ4本手法は商業ツールに成功裏に統合され、DevOps環境における産業的スケーラビリティを満たすことができるか?
  • RQ5状態なしモデリングアプローチにはどのような制限があり、今後の拡張において状態付き動作をどのようにモデリングできるか?

主な発見

  • 本手法は、記録されたメッセージトレースのみを用いて、4つの企業向けメッセージングプロトコルのエミュレーションで99%を超える正確性を達成した。
  • 本手法により、CA Service Virtualizationで以前対応していなかったプロトコルのエミュレーションが可能になり、手動でのプロトコルモデリングの必要がなくなった。
  • プロトタイプにおけるワイルドカードの使用により、メッセージ長やわずかな構造的差異があっても、堅牢なマッチングが可能となった。
  • 本手法は多様なメッセージエンコードおよび操作タイプにおいて優れたパフォーマンスを示し、実世界の条件下での耐性を実証した。
  • CA Service Virtualizationへの統合により、数千人のユーザーに展開可能となり、産業的スケーラビリティと実用的価値が検証された。
  • 高い正確性にもかかわらず、小規模なトランザクションライブラリや、100%の正確性を必要とするエッジケースでは、ユーザーの介入が必要な課題が残っている。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。