BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース 最終フロンティアに到達したJavaScript:宇宙

最終フロンティアに到達したJavaScript:宇宙

原文(投稿日:2020/06/30)へのリンク

最近のSpaceX Dragonの打ち上げにより、宇宙にJavaScriptが登場した。ChromiumとJavaScriptを利用して、ユーザーインターフェイスの大部分はWeb技術に依存している。

Twitterでの関連する議論SpaceXソフトウェアチームのメンバーとのRedditでのAMAセッションでは、「もしかして、node_modulesは本当に宇宙一重いモジュールなのか?」のような重要なユーモアがありましたが、JavaScriptはSpaceX Dragon宇宙船のためのモダンなタッチスクリーンベースのUIをサポートしている。

最近のOpenJS WorldカンファレンスNASAの宇宙飛行士Christina Koch氏が説明したように、SpaceXは非常に近代的なディスプレイを備えている。Dragonはタッチスクリーンを搭載した最初の宇宙船である。Dragonに搭乗した宇宙飛行士は、非常に過酷な環境でのタッチスクリーンへのアクセスをサポートするために、手袋付きの特別な宇宙服を着ていた。ユーザエクスペリエンスには、非常にミッションクリティカルな操作と冗長システムへのアクセスのためのボタンがいくつかある。

Koch氏は、チームは宇宙ステーションの多くのWebベースのアプリケーションを活用しているが、すべてタブレット経由で、宇宙ステーションに電力を供給するすべてのシステムとは分離されたネットワークにあると説明している。宇宙ステーションのチームは、Webベースのスケジューリングソフトウェアと手順を活用し、YouTubeなどのWebプロパティを専門的および娯楽目的で定期的に活用している。

NASAは現在、月へのミッション、そして最終的には火星へのミッションのためにOrion車に取り組んでいる。NASAは、トップレベルのダウン要件ではなく、ユーザ主導のニーズに焦点を当てたラピッドプロトタイプラボを介して、クルーインターフェイスを初めて設計した。Orionは現在タッチ駆動ではないが、効率的な飛行エクスペリエンスのために、ディスプレイを更新する多くのプログラム可能なボタンと手順の計画がある。

Dragonでは、インターフェースはWebコンポーネントとカスタムリアクティブフレームワークを広範囲に使用する。Reddit AMAでSpaceXソフトウェアエンジニアのSofian Hnaide氏が説明する、

ミッションクリティカルな環境でChromiumとJavaScriptを使用することはよくある質問です。私がこの質問に明確に答えるためには、このコンテキストでのChromiumはUIレンダリングエンジンとしてのみ使用されることを理解する必要があります。ディスプレイとフォールトトレラントを備えたFlight Softwareインタラクションレイヤーは明確に定義されており、ディスプレイ境界の外側にあります。つまり、技術スタックに関係なく、すべての車両コードに対して同じ開発プロセスに従います。開発者をクロストレーニングして、C++で車両コードを記述し、信頼できるソフトウェアの記述に向けて同じ考え方を実行します。私たちは信頼性とパフォーマンスを非常に真剣に受け止め、他の車両ソフトウェアと同様に、すべての故障モードを理解するためにさまざまな条件下で広範囲にテストします。これらの障害が発生した場合に備えて、これらの障害に対処するためのアラートと手順を用意しています。これらすべてが、クルーを訓練するためにフライトハードウェアで実行する数百時間のシミュレーション(sims)に追加されました。

途中で多くの課題に直面しましたが、私たちはディスプレイに非常に満足しています。最も重要なのは、2人の顧客(これまでのところ)も満足しています。スターシップの地上ソフトウェアはすでにクルーディスプレイの技術スタックを使用しており、スターシップのヒューマンインターフェイスの設計を開始するまでにそれほど長くはかかりません。必ず適用してください!

SpaceX DragonソフトウェアチームのマネージャであるWendy Shimata氏は、次のように付け加えている。

また、特定の画像では、ディスプレイのすぐ下のカプセルにハードウェアボタンがいくつか残っていることにも気づくでしょう。これは、何らかの理由でディスプレイが使用できない場合でも、宇宙飛行士がハードウェアボタンを使用して、機内での火災への対応などの重要なアクションを開始できるようにするためでもあります。

信頼性の高いソフトウェアの重要性を考えると、チームはテストに対して広範なアプローチを活用している。SpaceXチームはDemo-2を率いているJohn Dietrick氏は次のように説明する。

私たちが考えることができるあらゆる方法は!単体テスト、コンテナ化された統合テスト(完全な物理シミュレーションを使用して自分のマシンでこれらを実行できます)、および実際のフライトハードウェアでの完全な "HITL"(ハードウェアインザループ)テスト – また、完全なシミュレーション。フライトソフトウェアをシミュレータと組み合わせることは、特に実際のハードウェアで実行する場合に、最も強力なツールです。実験室のテーブルの上に車両のハードウェアを置くだけで、ミッション全体、さらには多くの詳細な障害シナリオをシミュレートできます。車両では、これはかなり簡単です。それを地面に降ろすために、いくつかの優れた通信リンクと地上側のネットワークがあり、車両から大量のデータを非常に迅速に取得できます。

プロジェクトは、NASAに設計ビジョンを紹介するシミュレータプロトタイプとして始まった。その後、チームは変更を加えて飛行ハードウェアで実行し、初期の成功を収めた。SpaceXチームは、プロトタイプを開発する際に、Webベースのアプローチに対する信頼を高めた。Hnaide氏は説明する、

私たちは、ブラウザに付属しているすべての最新機能を気に入っています。また、そのスタックで既にトレーニングされている技量にアクセスできることも気に入っています。おそらく、ここSpaceXでは少し違ったことをすることを恐れていません。業界標準に頼るのではなく、問題解決に第一原理アプローチを採用するのが好きです。

このニュースについての長いTwitterスレッドでは、オリジナルのJavaScript作成者であり、BraveのCEOであるBrendan Eich氏が、宇宙のコメントでのユーモラスなJavaScriptと、TypeScript、Flow、またはHegelのタイプセーフティを活用してTypeScriptが宇宙に対して安全であることを保証する方法について、より真剣に回答した。

明らかに、今やJavaScriptはロケット科学そのものである。

この記事に星をつける

おすすめ度
スタイル

BT