Ubuntu Frameは、インタラクティブキオスクやスマート小売ソリューションなどの組み込みデバイス向けにグラフィカルアプリケーションを強化することを目的としたものだ。
Ubuntu Frameを使うと、開発者は、ディスプレイに電力を供給したり保護したりするための、DRM、KMS、入力プロトコル、セキュリティポリシーなどの部品となるソリューションを統合、維持する必要がなくなります。 これは、管理するコードが少なくなり、未試行のコードのバグや脆弱性があるケースが少なくなることを意味します。そして、ディスプレイのコンテンツ開発により長い時間をかけられることを意味します。
Ubuntu Frameは、HTML5とJavaアプリに加え、Flutter、Qt、GTK、Electron、SDL2をサポートしている。そのゴールは、組み込みのグラフィカルアプリケーションで開発者が表示コンテンツに独自に集中できるようにするために必要とするすべてのコンポーネントを提供することだ。例えば、安全な通信、マウスとキーボードだけでなくタッチスクリーンのサポートなどである。
セキュリティのため、別々のコンテナでクライアントアプリとサーバーアプリを実行する。そのコンテナでは、安全なソケットを使ってのみUbuntu Frameと通信できる。
Ubuntu Frameのアーキテクチャは、Waylandをベースとしている。Waylandは、ディスプレイサーバとそのクライアント間の通信を可能にするディスプレイサーバプロトコルである。Waylandは、X Window Systemの最新のより安全な代替として開発された。
Ubuntu Frameは、デスクトップシステム、仮想マシンで実行できる。また、Ubuntu Coreを実行しているデバイス、またはスナップと互換性のある任意のデバイスで実行できる。下記の通り実行してインストールすることができる。
snap install ubuntu-frame
デスクトップベースの環境を使ってアプリをビルド、テストしてから、リモートにインストールできる。このためには、アプリのすべてのファイルとその依存関係をパッケージ化するスナップを作成する必要がある。Canonicalは、出発点として使用できるキオスクの例を公開している。開発が完了したら、snapcraft remote-build
を実行する組み込みのデバイスアーキテクチャのスナップを作成できる。生成されたスナップは、scp
を使ってコピーし、デバイスにインストールして実行できる。
Ubuntu FrameはCageに似ている。Cageはキオスクアプリを構築するための別のWaylandベースのソリューションである。Ubuntu Frameと比較してCageがどれほど成熟しているかは明らかではない。ただし、Canonicalの10年間の長期サポート保証は差別化要因となっている。さらに、Canonicalによれば、Ubuntu Frameは開発期間が7年で、5年間本番環境で使用されているため、組み込みデバイス向けの成熟したグラフィカルサーバである。