WebAssembly をブラウザーの枠を超えて展開するために Fastly、Intel、Mozilla、Red Hat によって結成された Bytecode Alliance は、Microsoft の支援を受けて、その目標を推進する非営利団体を設立しました。
同グループは、ソフトウェアのモジュール化、セキュリティ、高速化をさらに推進するために、さらに 6 つのメンバー組織を追加しました。
新しいメンバーは、Microsoft に加えて、Arm、DFINITY Foundation、Embark Studios、Google、Shopify、カリフォルニア大学サンディエゴ校です。
Mozilla の著名なエンジニアであり、Bytecode Alliance の役員でもある Bobby Holley 氏は声明の中で、今日のソフトウェア開発は一連の悩ましいトレードオフであると述べた。
「何か大きなものを作りたい場合、すべてのコンポーネントをゼロから作るのは現実的ではありません」とホリー氏は述べた。「しかし、他社からの複雑なコンポーネントサプライチェーンに依存していると、そのサプライチェーンのどこかに欠陥が生じれば、プログラム全体のセキュリティと安定性が損なわれる可能性があります。」
コンテナのようなツールはある程度の分離を実現できますが、かなりのオーバーヘッドが発生し、サプライヤーごとに細かく管理するのは現実的ではありません。そして、こうした状況はすべて、サプライチェーンを綿密に管理・監査するリソースを持つ大企業の優位性を強固なものにしています。
「業界が向かっている方向だ」:LibreOfficeチームがWebAssemblyポートに取り組む
続きを読む
2019 年に設立された Bytecode Alliance は、WebAssembly を、犠牲を払うことなくコードを構成可能、安全、かつ高速化する方法であると考えています。
WebAssemblyは、C/C++などの高水準言語、あるいはメモリ安全性の観点からより優れたRustによって生成される低水準バイトコードです。JVMのような汎用スタックマシンとは対照的に、アセンブリ言語のようなプログラミング言語、あるいは構造化スタックマシンです。
より高レベルのコードのコンパイル ターゲットとして、WebAssembly または wasm ライブラリは、計算集約的な操作を処理するために Web ベースのアプリケーションに追加されることがよくあります。
オープンソース開発者であり、Wormhole の共同作成者でもある Feross Aboukhadijeh 氏は、The Register への電子メールで、WebAssembly には主に 2 つの利点があると語った。
「WebAssemblyを使えば、開発者は既存のCおよびC++のコードベースを、ほとんど、あるいは全く変更することなくウェブ上で実行できます」とアブカディジェ氏は述べた。「これは古いコードを再利用するのに最適ですffmpeg
。つまり、JavaScriptで書き直す必要がないということです。」
「WebAssemblyでは、パフォーマンスが重要なコンポーネントをRustで記述し、ネイティブに近いパフォーマンスで実行することもできます。WebAssemblyは低レベルであるため、JavaScriptよりも高速かつ予測可能なパフォーマンスを発揮します。」
未来のためのコード
Bytecode Alliance は、WebAssembly や、WebAssembly System Interface (WASI)、WebAssembly Micro Runtime (WAMR)、Lucet などのさまざまな関連コード インフラストラクチャ プロジェクトを、現代のソフトウェア開発の基盤を形成する npm、PyPI、crates.io などのセキュリティ保護が難しいパッケージ レジストリに対処する方法であると考えています。
- JavaScriptエコシステムは「絶望的に断片化」しています...そこで別のランタイムが登場します:Denoは会社になりました
- Internet Archive が Ruffle エミュレーターを使って Flash コンテンツを後世に残す
- Cloudflareのクラウドでリモート動作するウェブブラウザ。以上です。これがすべてです。
- W3Cはワールド・ワイド・ウェブの仕組みを統括している。しかし、重要な会議の記録には消極的で、議事録も不完全だ。
パッケージレジストリは、基本的に以前に記述されたコードのデータベースであり、開発者はこれを自身のプロジェクトにインポートすることで、既存のプログラムで既に解決されている問題を解決する必要がなくなります。これにより膨大な時間を節約できますが、インポートされたモジュールに不注意または意図的な欠陥がある場合、セキュリティ上の問題につながる可能性があります。
FastlyのシニアプリンシパルソフトウェアエンジニアであるLin Clark氏がMozilla在籍中の2019年に書いたように、コードベースの80%はこれらのパッケージレジストリから来ています。つまり、アプリケーション内のバグのあるライブラリや悪意のあるライブラリによる潜在的な被害を制限することで得られるものは大きいのです。
WebAssemblyは、ナノプロセスを通じてこれを実現することを目指しています。ナノプロセスは、wasmモジュールまたはライブラリごとにメモリ効率の高い独立したサンドボックスを作成します。これにより、マイクロサービスを隔離されたwasmベースのナノプロセスに置き換える可能性が秘められています。そして、これがBytecode Allianceのミッションとも言えます。
Bytecode Alliance は、501(C)(6) 団体として法人化され、会員が拡大するにつれ、よりモジュール化され、安全で、パフォーマンスに優れたアプリケーションというビジョンを、クラウドやネットワーク エッジなどのより広範な環境に拡張することを目指しています。
「WebAssemblyと新しいWebAssembly System Interface(WASI)仕様により、クラウドネイティブソリューションはデフォルトでより安全になり、システムオンチップ(SoC)やマイクロコントローラユニット(MCU)の『極小エッジ』を含むさまざまな環境にわたるコンピューティングの課題の解決に役立ちます」と、マイクロソフトのAzure Core Upstream主席プログラムマネージャーでBytecode Allianceの役員でもあるラルフ・スクイラーチェ氏は声明で述べた。
ホリー氏は、技術コミュニティには、小規模なチームが安全かつ迅速に大規模なプロジェクトを開発できるように、ソフトウェアの構築方法を変えるチャンスがあると語った。
「容易な構成、欠陥の分離、そして高性能という、実現が難しい3つの要素を達成するには、適切な技術と、それを適切な方法で導入するためのエコシステム全体での協調的な取り組みの両方が必要だ」と同氏は述べた。
おそらく wasm がそのテクノロジーです。®