HTML5のマルチタスク化とは

 アーキテクト用語でマルチタスクといった場合、タイムスライス等によりワースト応答時間が保証される物理タスクと、コンポーネントの独立性を表す単位としての論理タスクといった2つの意味がある。従来のHTMLでは、Javascriptはシングル(物理)タスクであったため、また、JavascriptはWebサービスの機能を補完する位置づけであり論理タスク分割の必要性が低かったため、マルチタスク化という発想はあまりなかった。

 HTML5になり、この様相が変わってくると考えている。Application Cacheという技術により、コンポーネント管理をして複雑なアプリケーションを組み上げていったり、Webと独立して複数のアプリケーションを同時に動かして管理するようなことが出来るようになった。また、Web Workersという技術により物理タスクと同等の機能を実現できるようになった。さらに言えば、HTML5とは直接関係はないが、サーバサイドJavascriptの技術も出てきたことで、より柔軟にサーバサイドとクライアントサイドの処理の切り分けが出来るようになった。

 すなわち、これら新規格により今までに無かったような本格的なマルチタスク環境が構築できるようになったと言えよう。しかし、標準的な技術だけではコンポーネント化やマルチタスク化などに必要な基本的な機能が足りず、各開発者がそれを補完するために独自の実装をすれば、タスクをコンポーネントとして使いまわすことが難しくなる。また、ブラウザベースでタスク単位で動作するユニットテストや構成管理等の開発環境と実行環境を兼ね備えた統合環境が欲しくなるが、現状、そのようなものは見当たらない。

 そこで、このシリーズではHTML5における適切なマルチタスク化とは何か?について解説していく。

 なお、一般に、論理タスクとは、自身にバインドされたコンテキストやコントロールといったリソースをもち、イベントハンドラにより駆動するという特徴を持つものと定義される。Javascriptも、イベント駆動であり、また、DOMを介してコントロールを制御することから、この定義はそのままJavascriptに対しても当てはまるため、この定義をそのまま利用する。

カテゴリー: html5_multitask   タグ: , , ,   この投稿のパーマリンク

コメントを残す