Skip to main content
QUICK REVIEW

[論文レビュー] RAFDA: Middleware Supporting the Separation of Application Logic from Distribution Policy

Alan Dearle, Scott Mervyn Walker|arXiv (Cornell University)|Jun 18, 2010
Distributed and Parallel Computing Systems参考文献 6被引用数 3
ひとこと要約

RAFDA は Java ミドルウェアであり、アプリケーション論理と分散ポリシーを分離することで、任意のオブジェクトをランタイム時に動的に Web サービスとして公開することを可能にし、メソッドごと・パラメータごとの送信ポリシー(値渡しまたは参照渡し)をサポートし、静的インターフェース定義やコード変更の必要を排除する。これにより、柔軟で後段のバインディングによる分散意思決定が可能になり、ソースコードにアクセスできない既存アプリケーションの監視・管理を可能にする。

ABSTRACT

Middleware technologies often limit the way in which object classes may be used in distributed applications due to the fixed distribution policies imposed by the Middleware system. These policies permeate the applications developed using them and force an unnatural encoding of application level semantics. For example, the application programmer has no direct control over inter-address-space parameter passing semantics since it is fixed by the application's distribution topology which is dictated early in the design cycle by the Middleware. This creates applications that are brittle with respect to changes in the way in which the applications are distributed. This paper explores technology permitting arbitrary objects in an application to be dynamically exposed for remote access. Using this, the application can be written without concern for its distribution with object placement and distribution boundaries decided late in the design cycle and even dynamically. Inter-address-space parameter passing semantics may also be decided independently of object implementation and at varying times in the design cycle, again, possibly as late as run-time. Furthermore, transmission policy may be defined on a per-class, per-method or per-parameter basis maximizing plasticity. This flexibility is of utility in the development of new distributed applications and the creation of management and monitoring infrastructures for existing applications.

研究の動機と目的

  • ミドルウェアシステムにおけるリモートアクセス性に関する早期で静的な意思決定がもたらす分散アプリケーションの脆さを解消すること。
  • アプリケーションクラスがリモートアクセスをサポートするために特別なインターフェースを実装するか、特別な基底クラスを継承する必要を排除すること。
  • パラメータ渡しの意味論(値渡し対参照渡し)をクラス実装や分散トポロジーから分離すること。
  • オブジェクトの分散および送信ポリシーに関する後段またはランタイム意思決定を可能にし、柔軟性と保守性を向上させること。
  • 既存アプリケーションのソースコードを変更せずに、監視・管理インfraを構築できること。

提案手法

  • ソースコード変更なしに、任意のオブジェクトインスタンスに対して標準の Web サービスを動的デプロイすること。
  • リフレクションおよびバイトコード操作を用いて、ランタイム時にプロキシおよびスタブコードを生成・コンパイルすること。
  • リフレクションを介して、リモート Web サービス呼び出しをターゲットオブジェクトインスタンス上のメソッド呼び出しにマッピングすること。
  • メソッドごと・パラメータごとの送信ポリシー(値渡しまたは参照渡し)をランタイムで構成可能にすること。
  • 現地にフィールド値をキャッシュするスマートプロキシの統合により、ネットワーク呼び出しを削減すること。
  • リモート参照技術(RRT)レイヤーを用いて、アプリケーション論理とは独立してリモート参照および送信意味論を管理すること。

実験結果

リサーチクエスチョン

  • RQ1ミドルウェアシステムにおいて、アプリケーション論理を分散ポリシーからどのように分離し、柔軟性を向上させられるか?
  • RQ2ソースコード変更や継承制約なしに、任意の Java オブジェクトを動的にリモートアクセス可能にできるか?
  • RQ3パラメータ渡しの意味論を、オブジェクトの分散およびクラス設計から独立して制御できる範囲はどの程度か?
  • RQ4ソースコードへのアクセスや変更なしに、既存アプリケーションの監視・管理システムを構築できるか?
  • RQ5静的ミドルウェア手法と比較して、動的でポリシー駆動のリモートアクセスのパフォーマンスおよび保守性への影響は何か?

主な発見

  • RAFDA は、コンパイル済みクラスやライブラリクラスを含め、任意の Java オブジェクトに対して、ソースコード変更や特別なインターフェースの継承なしに動的リモートアクセスを可能にする。
  • システムはメソッドごと・パラメータごとの送信ポリシーをサポートしており、ランタイムで値渡しまたは参照渡しの意味論を細かく制御できる。
  • スマートプロキシは、フィールド値を現地にキャッシュすることでネットワークオーバーヘッドを低減し、頻繁なアクセサ呼び出しのパフォーマンスを向上させる。
  • フレームワークは、ソースコードへのアクセスなしに既存アプリケーションの監視・管理を可能にし、非侵襲的なインストルメンテーションを実現する。
  • RRT レイヤーは分散意思決定とアプリケーション論理を分離しており、分散トポロジーの後段またはランタイム構成をサポートする。
  • 本アプローチは、コード変更なしに、グローバル規模の P2P ルーティングネットワークに成功裏に適用されており、分散および集中型実行モードの両方をサポートする。

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

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

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

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