分散コンピューティングにおいて、オンデマンドコードとは、クライアントのソフトウェアからの要求に応じて、サーバーコンピュータからクライアントコンピュータに実行可能なソフトウェアコードを送信する技術です。Web上のオンデマンドコードパラダイムのよく知られた例としては、 Javaアプレット、AdobeのFlash Player用ActionScript言語、JavaScriptなどがあります。[1]
プログラム コードは、ユーザー (クライアント) がクライアントのWebブラウザーを使用してコードへのリンクを含む Web ページを要求するまで、 Web サーバー上で非アクティブのままです。この要求があると、Web ページとプログラムはHTTP を使用してユーザーのマシンに転送されます。ページが表示されると、コードがブラウザーで開始され、停止されるまで (たとえば、ユーザーが Web ページを離れるなど)、ユーザーのコンピューター内でローカルに実行されます。
オンデマンドコードは、コードモビリティの分野におけるモバイルコードの特定の用途です。[2]
制約
クライアントサーバー
最初の制約は、システムがクライアントとサーバーで構成されている必要があることです。
サーバーには、クライアントが使用したいリソースがあります。たとえば、サーバーには株価のリスト (つまりリソース) があり、クライアントはこれらの株価をわかりやすいグラフで表示したいと考えています。
両者の間には明確な関心の分離があります。サーバーはバックエンドのもの (データ ストレージ、ビジネス ルールなど) を処理し、クライアントはフロントエンドのもの (ユーザー インターフェイス) を処理します。
ステートレス
クライアントとサーバー間のやり取りをさらに簡素化するための 2 番目の制約は、それらの間の通信がステートレスである必要があるということです。
これは、クライアントのセッションに関するすべての情報がクライアント上に保持され、サーバーはそれをまったく認識しないことを意味します。その結果、各リクエストには、リクエストを実行するために必要なすべての情報が含まれている必要があります (つまり、コンテキスト情報に依存できません)。
キャッシュ
クライアントとサーバー間の通信における最後の制約は、サーバーからの応答がキャッシュ可能かキャッシュ不可能かとしてマークされる必要があることです。
効果的なキャッシュはクライアントとサーバーのやり取りの数を減らすことができ、少なくともユーザーの観点からはシステムのパフォーマンスにプラスの影響を与えます。
オンデマンドコード
コード オンデマンド (COD) は、REST における唯一のオプション制約です。特定の処理の実行方法を決定するのはサーバーであるため、クライアントの柔軟性が向上します。たとえば、コード オンデマンドを使用すると、クライアントは通信を暗号化するために JavaScript、Java アプレット、または Flash アプリケーションをダウンロードできるため、サーバーはこのプロセスで使用される暗号化ルーチンやキーを認識しません。[説明が必要]
ただし、COD を使用すると可視性が低下するため、オプションになります。また、すべての API にこのような柔軟性が必要なわけではありません。
参照
参考文献
- ^ Carzaniga, Antonio、Gian Pietro Picco、Giovanni Vigna (2007)。「コードはまだ移動中か? コード モビリティの 10 年を振り返る」。第 29 回国際ソフトウェア工学会議 (ICSE'07 コンパニオン)。ワシントン DC、米国: IEEE コンピュータ ソサエティ。pp. 9–20。CiteSeerX 10.1.1.119.5295。doi : 10.1109 / ICSECOMPANION.2007.44。ISBN 978-0-7695-2892-2.S2CID 8728428 。
- ^ Fuggetta, Alfonso; Gian Pietro Picco; Giovanni Vigna (1998). 「コードモビリティの理解」. IEEE Transactions on Software Engineering . 24 (5): 342–361. CiteSeerX 10.1.1.20.3442 . doi :10.1109/32.685258. ISSN 0098-5589 . 2009年7月29日閲覧。
