Gambaran umum aplikasi Azure Sphere
Penting
Ini adalah dokumentasi Azure Sphere (Warisan). Azure Sphere (Warisan) dihentikan pada 27 September 2027, dan pengguna harus bermigrasi ke Azure Sphere (Terintegrasi) saat ini. Gunakan pemilih Versi yang terletak di atas TOC untuk melihat dokumentasi Azure Sphere (Terintegrasi).
Perangkat Azure Sphere dapat menjalankan dua jenis aplikasi:
- Aplikasi tingkat tinggi menjalankan kontainer pada OS Azure Sphere
- Aplikasi berkemampuan real time (RTApps) berjalan pada bare metal 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 pada OS Azure Sphere dan dapat menggunakan pustaka aplikasi. Aplikasi tingkat tinggi dapat:
Mengonfigurasi dan berinteraksi dengan periferal Azure Sphere, seperti pin input/output tujuan umum (GPIO), 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 kontainer dalam mode pengguna Normal World, seperti yang dijelaskan dalam Apa itu Azure Sphere?. Kontainer aplikasi mendukung subset lingkungan POSIX dan sekumpulan pustaka aplikasi (Applibs) yang khusus untuk OS Azure Sphere. Pustaka dan fungsi yang tersedia untuk aplikasi tingkat tinggi dibatasi untuk memastikan bahwa platform tetap aman dan dapat dengan mudah diperbarui. Aplikasi hanya dapat mengakses pustaka dan layanan run-time yang disediakan Microsoft; tidak tersedia I/O file langsung atau akses shell, di antara batasan lainnya. Lingkungan pengembangan menjelaskan set API dasar dan memperkenalkan pustaka aplikasi Azure Sphere yang mendukung fitur khusus perangkat.
Aplikasi tingkat tinggi diharapkan berjalan terus menerus dan secara otomatis dimulai ulang jika berhenti atau gagal.
Membuat aplikasi tingkat tinggi menyediakan informasi selengkapnya tentang fitur.
Aplikasi berkemampuan real time
Perangkat Azure Sphere mungkin juga memiliki satu atau beberapa aplikasi yang mampu 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 bare metal atau dengan sistem operasi real time (RTOS). Repositori sampel Azure Sphere di GitHub mencakup sampel HelloWorld bare-metal serta sampel yang menunjukkan komunikasi antar-inti antara tingkat tinggi dan RTApps. Repositori Sampel Azure di GitHub berisi sampel yang menunjukkan 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 Mitra Azure Sphere MediaTek dan Codethink.
Setiap RTApp berjalan terisolasi pada inti I/O tertentu dan hanya dapat berkomunikasi dengan aplikasi tingkat tinggi; ini tidak dapat menggunakan internet, applibs Azure Sphere, atau fitur lain dari OS Azure Sphere.
Membuat aplikasi berkemampuan real time menyediakan informasi lebih lanjut tentang fitur dan proses pengembangan untuk RTApps.
Fitur umum untuk semua aplikasi
Terlepas dari perbedaan signifikan antara aplikasi tingkat tinggi dan RTApps, semua aplikasi Azure Sphere memiliki beberapa hal yang sama. 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:
Kemampuan aplikasi
Terlepas dari tempatnya berjalan, setiap aplikasi Azure Sphere harus menentukan layanan dan antarmuka eksternal yang diperlukan—misalnya, persyaratan I/O dan jaringannya—untuk mencegah penggunaan yang tidak sah atau tidak terduga.
Kemampuan aplikasi adalah sumber daya yang diperlukan aplikasi. Kemampuan aplikasi mencakup periferal yang digunakan aplikasi, host internet tempat aplikasi tingkat tinggi terhubung, dan izin untuk mengubah konfigurasi jaringan, antara lain. Setiap aplikasi harus memiliki manifes aplikasi yang mengidentifikasi sumber daya ini.
Kemampuan perangkat
Kemampuan perangkat memungkinkan aktivitas khusus perangkat. Kemampuan perangkat diberikan oleh Azure Sphere Security Service. Secara default, chip Azure Sphere tidak memiliki kemampuan perangkat. Ada dua jenis kemampuan perangkat utama: kemampuan perangkat appDevelopment dan kemampuan perangkat fieldServicing .
Kemampuan perangkat appDevelopment mengubah jenis 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 paket gambar yang ditandatangani SDK ke perangkat Azure Sphere yang tidak memiliki kemampuan ini. Namun, ketika kemampuan appDevelopment ada, perangkat mempercayai paket gambar yang ditandatangani SDK. Selain itu, ini memungkinkan Anda untuk memulai, menghentikan, men-debug, atau menghapus aplikasi dari perangkat. Singkatnya, kemampuan pengembangan aplikasi harus ada di perangkat sebelum Anda dapat:
- Muat sisi paket gambar yang dibangun oleh Visual Studio atau perintah paket gambar azsphere.
- Mulai, hentikan, debug, atau hapus paket gambar dari perangkat Azure Sphere, terlepas dari bagaimana paket gambar ditandatangani.
Perintah azsphere device enable-development membuat dan menerapkan kemampuan appDevelopment dan mencegah perangkat menerima pembaruan aplikasi cloud.
Kemampuan fieldServicing mengizinkan komunikasi perangkat-ke-komputer pada perangkat yang berada dalam status manufaktur DeviceComplete. Dengan kemampuan ini, Anda dapat memuat samping gambar yang ditandatangani produksi, 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 ditujukan untuk penggunaan jangka pendek selama sesi layanan, periode terbatas di mana akses ke perangkat diberikan 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 azsphere untuk pengujian dengan menggunakan kunci penandatanganan SDK. Perangkat Azure Sphere mempercayai kunci ini hanya jika kemampuan perangkat appDevelopment juga ada.
Paket gambar tanda tangan produksi Azure Sphere Security Service saat Anda mengunggahnya ke cloud. Paket gambar yang ditandatangani produksi dapat dimuat samping atau dimuat dari cloud.
Untuk mencegah penginstalan perangkat lunak nakal, aplikasi dapat dimuat pada perangkat Azure Sphere hanya dengan dua cara:
Sideloading, yang dapat digunakan baik untuk pengembangan dan pengujian perangkat lunak dan untuk layanan lapangan perangkat. Sideloading untuk pengembangan dan pengujian perangkat lunak memerlukan kemampuan perangkat appDevelopment. Sideloading untuk layanan bidang memerlukan bidangLayan kemampuan perangkat dan paket gambar yang ditandatangani produksi. Aplikasi sideload Visual Studio dan Visual Studio Code selama pengembangan dan penelusuran kesalahan; Anda juga dapat melakukan sideload secara manual dengan menggunakan Azure Sphere CLI.
Pembaruan cloud, yang hanya dapat dilakukan oleh Azure Sphere Security Service. Gunakan Azure Sphere CLI untuk membuat dan mengelola penyebaran cloud.
Aplikasi mitra
Aplikasi yang bekerja sama dapat dianggap sebagai aplikasi mitra dan kemudian dapat dimuat secara terpisah. Saat Anda memuat samping aplikasi yang memiliki mitra, aplikasi mitra tetap berada di perangkat Azure Sphere jika 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 dari bagian konfigurasi launch.vs.json atau file .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.