WebAPI 活動についての詳細

原文: More details about the WebAPI effort (on August 29, 2011 by Jonas Sicking)

私たちが望んだとおり、新たにアナウンスした WebAPI 活動 (和訳) には、興味深いものが数多くあります。そのため、私たちが行いたいことと、私たちの目の前にある課題について、より詳しく説明しなければならないでしょう。

目標

この活動の目標は、Web の可能性を広げる API を作成することです。私たちは、Web にいくつかの能力が欠けているというだけで、人々にプロプライエタリなプラットフォームを開発する道を選んでほしくないのです。

主な活動は、少なくとも初期には、端末に接続されたハードウェアへのアクセスを可能にし、データを端末に格納したり利用可能にすることです。ハードウェアに対しても、人々が Web プラットフォームを使えるフルレンジのハードウェアを作りたいと考えています。カメラなどの共通のハードウェアから、滅多に使われない USB 駆動の Nerf キャノンまで。また、Bluetooth や NFC などの通信ハードウェアも利用可能にしたいと考えています。

端末に格納されるデータについて、もっともよく議論されるデータは、連絡先とカレンダーです。これは、データの読み込みと書き込みの両方の機能が含まれます。私たちは、Web プラットフォームが格納された連絡先の列挙とそれらの詳細の読み込みの両方をできるようにし、連絡先の追加と削除もできるようにしたいと考えています。つまり、Web プラットフォームが Web ページを作成できるようにしたり、Web アプリでユーザが連絡先リストを管理できるようにしたいのです。同じことが、カレンダーのイベントや、端末に格納された他の形式のデータについても言えます。

セキュリティとプライバシー

このような種類の API がまだ Web プラットフォーム向けに開発されていないのは、これらがセキュリティとプライバシーに影響することが大きな理由の一つです。はっきり言って、あらゆる単独の Web ページに対して自分の連絡先リストやカレンダーをいじれるようにしたくはありません。また、USB デバイスの接続時にコマンドを発行できるようにすると、すべての人のコンピュータがすぐにゾンビ化される結果をもたらすでしょう。

そのため、これらの API を開発するときは、常にそれぞれに見合ったセキュリティモデルを開発しなければなりません。例えば、現在 Geolocation 機能で行っているように、単純にユーザに使用許可を求めるのも良いでしょう。他に、セキュリティに影響する恐れがあるところやユーザに危険性を説明するのが難しいところでは、より良い解決策を用意しなければなりません。

どのようなセキュリティモデルを構築すべきか、私たちにはまだ分かりませんが、API を数百万人のユーザに提供する前に、信頼できるセキュリティの解決策を持つ計画があることを、特に強調しておきたいと思います。

Robert O’CallahanWeb アプリケーションの許可設定 についての本当にすばらしい記事を投稿しています。

標準

Mozilla は常に Web 標準への力強いコミットをしています。この姿勢が変わることはありません! 私たちが開発している API はすべて、ブラウザと端末の両方に対して標準化と実装を行うという目標を持って開発されています。

しかし、標準を良い標準にすることは重要です。これは実験を伴います。Web にとって新たな領域やセキュリティに敏感な領域においては特にそうです。

標準化機構は、研究をするのに良い場所ではありません。これは、先に標準化機構の外で実験と研究を行いたい理由です。しかし、常にオープンであり、常にフィードバックを求めています。また、API 名に接頭辞を付けて、これらが実験的であり、標準化されたら変更する (接頭辞を削除する) ことを明らかにしています。

私たちの考えがより良く理解され、良い API が作られたら、仕様の提案書を作成し、W3CDevice API グループや WAC および WHATWG などのワーキンググループに提出する予定です。

私たちはこのプロセスを通して、他のブラウザベンダや Web 開発者など、他の興味のある団体と接触をします。これは、通常の研究の一環であり、API を良い API にするための活動です。

Mozilla は、常にオープン Web を保つ、良いスチュワードであり続けます。私たちは、Mozilla 独自の Web プラットフォームを作成することに興味はありません。私たちは、オープン Web プラットフォームを前進させることに興味があるのです。

高レベル vs. 低レベル

API 設計でよく問題になることの一つに、高レベルの API と低レベルの API のどちらを作るべきかということがあります。例えば、低レベルの USB API なのかカメラ向けの高レベルの API なのか?

これは、どちらにも長所と短所があります。高レベルの場合は、私たちが、より開発者に親切な API を作れることを意味します。また、ページが予期しない USB コマンドを発行しないようにできるため、より良いセキュリティモデルを提供することもできます。また、ユーザの許可なしにプライバシーに敏感でないアクセスも提供できます。しかし、高レベルの API は、開発者が、私たちがサポートを追加した種類のデバイスにしかアクセスできないことを意味します。そのため、Nerf キャノンの API を追加するまで、開発者にデバイスを操作する手段はありません。

一方で、低レベルの USB API を開示することは、それらの足りない API を私たちが追加する必要が無く、接続された任意の USB デバイスを Web ページが操作できることを意味します。しかしながら、この場合は、開発者が手作業で USB プロトコルの詳細とデバイスごとの違いを調べる必要があります。

私たちが計画しているアプローチ方法は、ユーザにとって最善の、高レベルと低レベルの両方の API を作成し、API を使用する適切な動機を人々に与えることです。しかし、最も重要な点は、低レベル API を早く提供して Mozilla が革新のための致命的な通り道にないことを確かにすることです。時が経てば、理に適った高レベルの API を追加できます。

参加するには

Mozilla において、すべての計画はオープンに行われます。事実、私たちはあなたの助けによって成功することができるのです! 議論を継続するために、すべてのコミュニケーションを新しい mozilla.dev.webapi 議論フォーラムを使って行います。これは、メールやニュース部ループ、 Web ベースの Google グループ UI を通して参加できることを意味します。

メーリングリストの購読: https://lists.mozilla.org/listinfo/dev-webapi

他の手段: http://www.mozilla.org/about/forums/#dev-webapi

私たちは、irc.mozilla.org サイト上の #webapi IRC チャンネルも利用しています。

進捗状況は Wiki ページで確認できます: https://wiki.mozilla.org/WebAPI

Web プラットフォームの次のステージを構築するため、あなたのご参加をお待ちしております!

開発者募集中

編註: 言及するのを忘れていました。私たちは、WebAPI API チームで働くフルタイムのエンジニアも募集しています。募集要項を確認して申し込んでください