30
17

More than 3 years have passed since last update.

ファーウェイのHarmony OSの技術概要

Last updated at Posted at 2021-05-31

Harmony OSとは

  • ファーウェイが開発した次世代OS
  • 複数デバイスを互いに接続しあうことで、リソースを共有し、スーパーデバイスを構築することが理念
  • スマホ、タブレット、テレビ、腕時計、スピーカー、車、家電など、様々なデバイスに対応

Harmony OSとAndroidとの違い

Harmony OS Android
理念 複数種類のデバイスの同時使用 単独のデバイスの使用
OS対象 ・スマホ
・タブレット
・テレビ
・腕時計
・スピーカー
・メガネ
・車
・カメラ
・電子レンジ
・エアコン
・その他の電子機器
・スマホ
・タブレット
・テレビ
IDE DevEco Studio Android Studio
開発言語 ・Java
・JavaScript
・Java
・Korlin
レイアウト開発言語 ・XML
・HTML+CSS
・XML
カーネル Linux Linux

Harmony OSのアーキテクチャ

Harmony OSのアーキテクチャ.png

Linuxカーネル層、システムサービス層、フレームワーク層、アプリケーション層で構成されます。

Linuxカーネル層

カーネルサブシステム

マルチカーネルが採用されます。デバイスのリソースに応じて、適切なカーネルが選ばれます。

カーネル抽象化層

マルチカーネルをフィルタすることで、上の層にタスク管理、メモリ管理、ファイル管理、ネットワーク管理などのカーネル機能を提供します。

ドライバサブシステム

HDFはHarmony OSにおけるハードウェアのエコシステム基礎であり、外部デバイスのアクセス機能、ドライバの開発・管理機能を提供します。

システムサービス層

Harmony OSのメイン機能となる層であり、フレームワーク層を通してサービスを提供します。

基本機能サブシステムセット

分散スケジューラ、分散データ管理、分散ソフトウェアバス、アーク多言語ランタイム、ユーティリティ、マルチモデル入力、グラフィックス、セキュリティ、人工知能で構成されており、Harmony OSで動作する分散型アプリケーションに実行、スケジューリング、遷移などの機能を提供します。また、アーク多言語ランタイムはC、C++、JSの基礎ライブラリとJavaの静的コンパイラを提供します。

基本サービスサブシステムセット

Harmony OSが提供している基本サービスです。イベント通知、電話、マルチメディア、Design for X、MSDP & DVなどのサービスで構成されます。

強化サービスサブシステムセット

様々なデバイスの特有のサービスを提供します。スマートテレビ、ウェアブル端末、IoTなどのサービスで構成されます。

ハードウェアサービスサブシステムセット

ハードウェアのサービスを提供します。ロケーション、生体認証、ウェアブル端末ハードウェア、IoTハードウェアなどのサービスで構成されます。

フレームワーク層

アプリケーションを開発するのに必要なUIフレームワーク、アプリケーションフレームワーク、アビリティフレームワーク、各種APIを提供します。デバイスによって提供するAPIが異なります。

アプリケーション層

システムアプリケーションとサードパーティーアプリケーションで構成されます。Harmony OSのアプリケーションは一つ以上のフィーチャーアプリティ(FA)またはパーティカルアビリティ(PA)で構成されます。

フィーチャーアプリティ(FA)

UIがあり、ユーザーとやり取りができます。

パーティカルアビリティ(PA)

UIがないサービスになります。たとえば、バックグラウンドサービスなどです。

Harmony OSの特徴

複数デバイスのリソース共有

Harmony OSの特徴は複数デバイスのリソース共有です。それを実現する主な技術は分散ソフトウェアバス、デバイスの仮想化、分散データ管理、分散スケジューラです。

分散ソフトウェアバス

image.png

分散ソフトウェアバスはスマホ、タブレット、ウェアブル端末、スマートテレビ、車などの通信基盤であり、複数デバイス間のアクセスに分散通信機能を提供し、複数デバイス間の瞬時接続を容易にします。開発者はビジネスロジックに集中でき、ネットワーク管理をすべてHarmony OSに任せることができます。

デバイスの仮想化

image.png

分散型デバイスの仮想化は、複数デバイスのリソース統合、デバイス管理、データ処理を実現することができ、一つのスーパー仮想デバイスに融合させます。様々な場面に応じて、最適なデバイスが選ばれ、タスクが複数デバイス間に行き来し、そのデバイスの得意な機能(表示機能、撮影機能、オーディオ機能など)を生かします。

分散データ管理

image.png

分散データ管理は分散ソフトウェアバスに基いた機能であり、アプリデータとユーザーデータの分散管理を実現します。ユーザーデータが一つのデバイスに依存することがなくなり、ビジネスロジックとデータ保存が分離され、複数デバイス間のデータ処理がまるで単一デバイスのデータ処理のように便利かつ迅速になります。開発者は様々な場面における複数デバイスのデータ保存、共有、アクセスを簡単に取り扱うことができるようになります。

分散スケジューラ

image.png

分散スケジューラは分散ソフトウェアバス、分散データ管理、分散型プロフィール等の技術に基いて、分散型サービス管理システム(発見、同期、登録、呼び出し)を構築し、リモート起動、リモート呼び出し、リモート接続、アプリケーションの遷移をサポートします。デバイスのスペックや、場所、システム状況、リソース状況、ユーザーの習慣と意図に応じて、最適なデバイスを選びます。

一回のみの開発で多種類のデバイスに対応

image.png

Harmony OSはユーザーアプリケーションフレームワーク、アビリティフレームワーク、UIフレームワークを提供し、アプリケーション開発中における多種類デバイスのビジネスロジックとUIロジックの再利用をサポートし、一回のみの開発で多種類デバイスに対応することを実現し、開発の効率を上げます。

また、UIフレームワークはJavaとJavaScriptをサポートし、様々なUIコンポーネントを提供し、スマホ、タブレット、ウェアブル端末、スマートテレビ、車に多様なUI表示を見せます。業界主流のデザインコンセプトを採用し、様々なレイアウトソリューションを提供します。

OSが同じなのでデプロイが簡単

Harmony OSはコンポーネント化と小型化を利用し、多種類デバイスに必要な時にデプロイする機能をサポートし、様々なハードウェアリソースと場面に適応できます。また、コンポーネントの依頼関係はコンパイル時に自動的に生成されるので、ハードウェアの性能を気にする必要がなくなり、開発の効率がさらに高くなります。

参考

30
17
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
30
17