Bagikan melalui


Gambaran umum aplikasi Azure Sphere

Perangkat Azure Sphere dapat menjalankan dua tipe aplikasi:

  • Aplikasi tingkat tinggi berjalan terkandung di Azure Sphere OS
  • Aplikasi berkemampuan real-time (RTApps) berjalan dengan logam kosong atau dengan sistem operasi real-time (RTOS) pada inti real-time

Aplikasi tingkat tinggi diperlukan untuk setiap perangkat Azure Sphere; RTApps bersifat opsional.

Aplikasi tingkat tinggi

Setiap perangkat Azure Sphere memiliki aplikasi tingkat tinggi, yang berjalan di Azure Sphere OS dan dapat menggunakan pustaka aplikasi. Aplikasi tingkat tinggi dapat:

  • Mengonfigurasi dan berinteraksi dengan periferal Azure Sphere, seperti pin input/output (GPIO) tujuan umum, penerima/pemancar asinkron universal (UART), dan antarmuka lainnya

  • Berkomunikasi dengan RTApps

  • Berkomunikasi dengan layanan berbasis internet dan cloud

  • Hubungan kepercayaan broker dengan perangkat dan layanan lain melalui autentikasi berbasis sertifikat

Aplikasi tingkat tinggi berjalan dalam wadah dalam mode pengguna Normal World, seperti yang dijelaskan di Apa itu Azure Sphere?. Wadah aplikasi mendukung subset lingkungan POSIX dan sekumpulan pustaka aplikasi (Applibs) yang khusus untuk Azure Sphere OS. Pustaka dan fungsi yang tersedia untuk aplikasi tingkat tinggi dibatasi untuk memastikan bahwa platform tetap aman dan dapat diperbarui dengan mudah. Aplikasi hanya dapat mengakses pustaka dan layanan run-time yang disediakan Microsoft; akses I/O atau shell file langsung tidak tersedia, di antara batasan lainnya. Lingkungan pengembangan menjelaskan kumpulan API dasar dan memperkenalkan pustaka aplikasi Azure Sphere yang mendukung fitur khusus perangkat.

Aplikasi tingkat tinggi diharapkan berjalan terus menerus dan otomatis dimulai ulang jika berhenti atau gagal.

Buat aplikasi tingkat tinggi menyediakan informasi selengkapnya tentang fitur.

Aplikasi yang mampu real-time

Perangkat Azure Sphere mungkin juga memiliki satu atau beberapa aplikasi berkemampuan real-time selain aplikasi tingkat tingginya. RTApp dapat:

  • Mengonfigurasi dan berinteraksi dengan periferal yang terintegrasi ke dalam Azure Sphere MCU, seperti pin GPIO dan UART
  • Berkomunikasi dengan aplikasi tingkat tinggi

RTApps dapat berjalan baik pada logam telanjang atau dengan sistem operasi real-time (RTOS). Repo sampel Azure Sphere di GitHub menyertakan sampel HelloWorld bare-metal serta sampel yang menunjukkan komunikasi antar-inti antara RTApps dan tingkat tinggi. Repo Sampel Azure di GitHub berisi sampel yang memperlihatkan cara menggunakan Azure Sphere dengan Azure RTOS.

Driver dan sampel tambahan untuk RTApps yang menargetkan inti real-time M4 pada chip MT3620 tersedia di GitHub dari Azure Sphere mitra MediaTek dan Codethink.

Setiap RTApp berjalan terisolasi pada inti I/O tertentu dan hanya dapat berkomunikasi dengan aplikasi tingkat tinggi; tidak dapat menggunakan internet, aplikasi Azure Sphere, atau fitur lain dari Azure Sphere OS.

Buat aplikasi yang berkemampuan real-time menyediakan informasi selengkapnya tentang fitur dan proses pengembangan untuk RTApps.

Fitur yang umum untuk semua aplikasi

Terlepas dari perbedaan yang signifikan antara aplikasi tingkat tinggi dan RTApps, semua aplikasi Azure Sphere memiliki beberapa kesamaan. Anda dapat mengembangkan, membangun, dan men-debug kedua jenis aplikasi menggunakan Visual Studio atau Visual Studio Code, atau dengan memanggil CMake dan Ninja menggunakan CLI.

Selain itu, fitur keamanan berikut berlaku untuk RTApps dan tingkat tinggi:

Kapabilitas aplikasi

Terlepas dari tempatnya berjalan, setiap aplikasi Azure Sphere harus menentukan layanan dan antarmuka eksternal yang diperlukan—misalnya, I/O dan persyaratan jaringannya—untuk mencegah penggunaan yang tidak sah atau tidak diharapkan.

Kapabilitas aplikasi adalah sumber daya yang diperlukan aplikasi. Kemampuan aplikasi mencakup periferal yang digunakan aplikasi, host internet tempat aplikasi tingkat tinggi tersambung, dan izin untuk mengubah konfigurasi jaringan, antara lain. Setiap aplikasi harus memiliki manifes aplikasi yang mengidentifikasi sumber daya ini.

Kapabilitas perangkat

Kemampuan perangkat memungkinkan aktivitas khusus perangkat. Kemampuan perangkat diberikan oleh Azure Sphere Security Service. Secara default, chip Azure Sphere tidak memiliki kapabilitas perangkat. Ada dua tipe utama kemampuan perangkat: kemampuan perangkat appDevelopment dan bidangMenyervis kapabilitas perangkat.

Kemampuan perangkat appDevelopment mengubah tipe penandatanganan yang dipercaya perangkat. Secara default, perangkat Azure Sphere mempercayai paket gambar yang ditandatangani produksi tetapi tidak mempercayai paket gambar yang ditandatangani SDK. Akibatnya, Anda tidak dapat memuat sisi paket gambar bertanda tangan SDK ke perangkat Azure Sphere yang tidak memiliki kapabilitas ini. Namun, ketika kapabilitas appDevelopment hadir, perangkat mempercayai paket gambar yang ditandatangani SDK. Selain itu, aplikasi ini memungkinkan Anda memulai, menghentikan, men-debug, atau menghapus aplikasi dari perangkat. Singkatnya, kemampuan pengembangan aplikasi harus ada di perangkat sebelum Anda bisa:

  • Muat sisi paket gambar yang dibuat oleh Visual Studio atau perintah paket gambar azsphere .
  • Mulai, hentikan, debug, atau hapus paket gambar dari perangkat Azure Sphere, terlepas dari cara paket gambar ditandatangani.

Perintah pengembangan mengaktifkan perangkat az membuat dan menerapkan kapabilitas appDevelopment dan mencegah perangkat menerima pembaruan aplikasi cloud.

BidangMenyervisikan kemampuan memungkinkan komunikasi perangkat-ke-komputer pada perangkat yang berada dalam status manufaktur DeviceComplete. Dengan kapabilitas ini, Anda dapat memuat gambar bertanda tangan produksi secara sampingan, tetapi tidak menghapusnya. Anda dapat memulai dan menghentikan aplikasi, tetapi tidak men-debugnya. Anda juga dapat melakukan tugas pemeliharaan rutin seperti mengonfigurasi Wi-Fi. Ini dimaksudkan untuk penggunaan jangka pendek selama sesi pelayanan, periode terbatas di mana akses ke perangkat diberikan berdasarkan per-operasi.

Persyaratan penandatanganan dan penyebaran

Semua paket gambar yang disebarkan ke perangkat Azure Sphere harus ditandatangani. Azure Sphere SDK dan paket gambar tanda perintah paket gambar bola az untuk pengujian menggunakan kunci penandatanganan SDK. Perangkat Azure Sphere mempercayai kunci ini hanya jika kemampuan perangkat appDevelopment juga ada.

Paket gambar tanda produksi Azure Sphere Security Service saat Anda mengunggahnya ke awan. Paket gambar yang ditandatangani produksi dapat dimuat dari sisi atau dimuat dari awan.

Untuk mencegah penginstalan perangkat lunak nakal, aplikasi dapat dimuat di perangkat Azure Sphere hanya dengan dua cara:

  • Muat sisi, yang dapat digunakan untuk pengembangan dan pengujian perangkat lunak dan untuk pelayanan lapangan perangkat. Muat sisi untuk pengembangan dan pengujian perangkat lunak memerlukan kemampuan perangkat appDevelopment. Muat sisi untuk pelayanan bidang memerlukan bidangKapabilitas perangkat layanan dan paket gambar yang ditandatangani produksi. Baik Visual Studio maupun Visual Studio Code aplikasi muat sisi selama pengembangan dan proses debug; Anda juga dapat melakukan sideload secara manual dengan menggunakan Azure CLI.

  • Pembaruan awan, yang hanya dapat dilakukan oleh Azure Sphere Security Service. Gunakan Azure CLI untuk membuat dan mengelola penyebaran cloud.

Aplikasi mitra

Aplikasi yang bekerja sama dapat dianggap sebagai aplikasi mitra lalu dapat dimuat secara terpisah. Saat Anda memuat sisi aplikasi yang memiliki mitra, aplikasi mitra tetap berada di perangkat Azure Sphere jika aplikasi tersebut telah disebarkan. Setiap aplikasi mendeklarasikan daftar mitranya dalam konfigurasi proyeknya.

Untuk menambahkan mitra ke konfigurasi proyek CMake, tentukan ID komponen aplikasi mitra di bidang partnerComponents bagian konfigurasi dari file launch.vs.json atau .vscode/launch.json:

"partnerComponents": [ "25025d2c-66da-4448-bae1-ac26fcdd3627" ]

Aplikasi tingkat tinggi dan RTApps yang berkomunikasi satu sama lain harus diidentifikasi sebagai mitra. Azure Sphere tidak mendukung komunikasi antara pasangan aplikasi tingkat tinggi atau pasangan RTApps.