WebAssemblyの「WASI Preview 2」で、WebAssemblyコンポーネントの組み合わせによるアプリケーション開発を実現へ

今回は「WebAssemblyの「WASI Preview 2」で、WebAssemblyコンポーネントの組み合わせによるアプリケーション開発を実現へ」についてご紹介します。

関連ワード (安定化、構築、部分等) についても参考にしながら、ぜひ本記事について議論していってくださいね。

本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。


Webブラウザ上で高速に実行可能なバイナリフォーマットとして開発されたWebAssemblyは、その後Webブラウザ以外の環境でも実行可能にするため、ファイルシステムなどOSごとに異なるAPIを抽象化するための業界標準仕様「WebAssembly System Interface」(WASI)が策定されました。

WASIの登場により、WebAssemblyはWebブラウザでもWindowsやMacでも、Dockerコンテナでも共通のバイナリで実行可能なバイナリフォーマットへと進化したのです。

参考:WebAssemblyをWebブラウザ以外の実行環境へ。システムインターフェイスへのアクセスを可能にする「WASI」の策定開始。Mozillaが呼びかけNode.jsらが賛同

WASI Preview 2が開発中

そして現在、WASIのバージョンアップ版となる「WASI Prevew 2」の開発と実装が進められています。WASI Prevew 2は、WebAssemblyのコンポーネントモデルを活用することが大きな目標の1つです。

WebAssemblyのコンポーネントモデルとは、WebAssemblyで作られたさまざまなコンポーネントを組み合わせてアプリケーションを構築するための仕組みです。

WASI Preview 2はこのコンポーネントモデルを活用し、WebAssemblyで作られたさまざまなコンポーネント、例えばC言語とRustとGoで開発されたそれぞれのWebAssemblyコンポーネントや、WebAssemblyアプリケーションの実行をホストするプラットフォームの機能を組み合わせてアプリケーションを構築できるようになると期待されています。

WASIの実装と普及を推進する団体であるBytecode Allianceが2月1日に公開した動画「Bytecode Alliance Community Meeting」で、WASI Prevew 2の概要と現状が説明されています。その内容をまとめてみました。

WASI Preview 1から多くを学んだ

まずはWASIの振り返りから。

WASIはW3CのWebAssembly Community Groupによって標準化が進められており、WebAssemblyのポータビリティ、セキュリティ、多言語対応、仮想化能力といった強みをAPIにも拡張していくもの。

fig

現時点でのWASI Preview 1は、すでに本番環境に対応し、さまざまな言語やランタイム使えるようになった。

一方で、C指向のAPIで多言語対応に向いておらず、ソケットは十分にサポートできておらず、インターフェイスの仮想化も困難でコンポーネントの組み合わせに用いるのも困難であった。

このWASI Preview 1から我々は多くのことを学んだ。

fig

そこで現在WASI Preview 2を開発中である。

WASI Preview 2はコンポーネントモデルがさらに強化される

WASI Preview 2はWebAssemblyのコンポーネントモデルの機能の上に構築されていることから、型システムなどインターフェイスを記述するための言語が豊富になり、多くの言語とのバインドをよりよく実現できるようになる。ソケットにも対応する。

また、インターフェイスの仮想化、コンポーネントの組み立て、Worlds(注:Worldsについては後述)などのコンポーネントモデルの能力を活用する。

これにより、WASI Preview 1で実装されたファイルシステムのようなPOSIX的なAPIの実装を超えて、キーバリューやHTTP、メッセージングなどのさまざまなインターフェイスの実装と利用が期待できる。

fig

WASI Preview 2の進捗について。

WASI Preview 1対応のWebAssemblyバイナリをWASI Preview 2対応に変換するツール、WASI Preview 2を実装したランタイムであるWasmtime、いくつかの言語対応のツールチェーンなどを開発中で、クールなデモも開発しているところ。

さらにAPIを安定化させ、将来のWASI Preview 3のセッティングもしている。

fig

WebAssemblyのコンポーネントモデルと「Worlds」

WASI Preview 2で出てきた「Worlds」については、別のプレゼンテーションで説明があったので、その部分のスライドを引用しつつ、現時点での筆者(新野)の理解している範囲でWorldsについて説明したいと思います。

WebAssemblyで作られたコンポーネントを組み合わせてアプリケーションを構築するための仕様であるWebAssembly Component Modelには、コンポーネント同士がやり取りするためのインターフェイスを定義するIDL(Interface Definition Language)として「WIT」(WebAssembly Interface Type)と呼ばれるフォーマットがあります。

このWITは、例えばソケット、ファイスシステム、Logging、HTTP、Blob、キュー、SQLなどのさまざまなインターフェイスを記述し定義できます。

WASI Preview 2では、このWITが使われます。

そして、このWITで定義されたインターフェイスを複数束ねて名前を付けたのが「World」です。

例えばソケットとファイルシステムとロギングのインターフェイスをまとめたコマンドラインの機能を提供する「CLI World」、SQLとロギングのインターフェイスをまとめた「DB World」など、さまざまなWITの組み合わせのWorldが考えられます。

これにより、WebAssemblyアプリケーションのホスト環境を提供するプラットフォーム側は、自分がどのようなインターフェイスを提供できるのかをWorldで示すことができます。

一方、WebAssemblyでコンポーネントを記述する開発者も、このコンポーネントがどのようなインターフェイスを持つかをWorldで記述できる、というわけです。

fig

このWITとWorldが示すように、WebAssemblyのコンポーネントモデルでは、さまざまなインターフェイスを柔軟に定義し、それらの機能を備えたコンポーネントやプラットフォームの機能を組み合わせてアプリケーションを構築することができるようになると期待されています。

「Bytecode Alliance Community Meeting」の動画ではWebAssembly Micro Runtime(WAMR)など他の話題も紹介されているため、興味のある方はぜひ動画をご覧ください。またスライドはGitHubの「bytecodealliance/meetings」で公開されています。

COMMENTS


Recommended

TITLE
CATEGORY
DATE
国内CX関連ソフト市場、2022年は14.4%増で好調に推移–IDC Japan調査
IT関連
2023-06-22 05:30
熟成期間が長いハードチーズを動物性原料を使わずに作るBetter Dairyが約25.3億円を調達
IT関連
2022-03-02 05:57
光洋ショップ‐プラスと富士通、生体認証を使った一般向けレジなし店舗を実証実験
IT関連
2021-01-16 08:13
東京海上日動、ブルームバーグのソリューション採用–DXによる事業変革に向け
IT関連
2021-08-04 09:39
日立製作所、動く市役所の実現を支える「汎用デジタル窓口」を開発
IT関連
2022-10-19 15:31
ツイッターが想定より利用者が少なかったストーリーズ機能「Fleet」を8月3日に停止へ
ネットサービス
2021-07-16 05:17
ソフトバンク出資のインド保険プラットフォームPolicybazaarが81.7億円調達、UAEと中東に事業拡大
ネットサービス
2021-03-19 14:53
エムアイカードかたる詐欺メールに注意 ウソの本人確認で会員情報を窃取
セキュリティ
2021-01-14 14:04
マイクロソフト、モバイル版「Office」の「ファイル転送」機能を廃止へ
IT関連
2022-11-19 11:48
「Oculus Quest 2」PCとの無線接続に対応 現実の机やキーボードをVR空間内で表示する機能も
企業・業界動向
2021-04-15 20:21
note、DM機能を搭載へ 個別に報酬を支払える仕組みも
企業・業界動向
2021-04-08 01:57
iPS角膜細胞移植 慶応大が来春実施へ 厚労省部会了承
IT関連
2021-07-02 00:51
富士通、デジタルツイン上に人の行動を高精度に再現–英国ワイト島で実証開始
IT関連
2023-04-22 08:07
ライブ配信「SHOWROOM」で社内イベントやセミナーも 企業向け「ビジネスパッケージ」発売
企業・業界動向
2021-02-10 03:01