Bagikan melalui


Kepatuhan Spesifikasi DPWS

Topik ini menjelaskan bagaimana WSDAPI mengimplementasikan fungsionalitas pilihan dalam spesifikasi Profil Perangkat untuk Layanan Web (DPWS). Ini juga menjelaskan fungsionalitas DPWS mana yang dihilangkan dari implementasi WSDAPI.

Spesifikasi DPWS menyediakan cara yang konsisten untuk mengirim pesan dengan perangkat. Ini juga menambahkan pembatasan dan rekomendasi khusus yang menyederhanakan proses mendukung layanan web pada perangkat keras yang disematkan.

Spesifikasi DPWS menjelaskan fungsionalitas elektif dengan menggunakan istilah MAY atau SHOULD dalam rekomendasi atau pembatasan implementasi tertentu. Fungsionalitas yang dihilangkan dapat digambarkan sebagai DIPERLUKAN dalam spesifikasi DPWS yang tidak diterapkan oleh WSDAPI, atau mungkin fungsionalitas yang diterapkan WSDAPI dalam metode lain dalam yang ditentukan dalam spesifikasi DPWS.

Topik ini mengikuti tata letak bagian DPWS menurut bagian. Setiap bagian menjelaskan bagaimana pembatasan, persyaratan, dan fungsionalitas pilihan tertentu ditangani oleh implementasi WSDAPI. Topik ini paling baik dibaca bersama dengan spesifikasi DPWS.

Olahpesan DPWS 3.0

Format URI DPWS 3.1

Pembatasan R0025 dan R0027 membatasi URI ke oktet MAX_URI_SIZE. WSDAPI memberlakukan kedua pembatasan ini seperti yang ditentukan.

Olahpesan DPWS 3.2 UDP

Rekomendasi R0029 menunjukkan bahwa paket UDP yang lebih besar dari unit transfer maksimum (MTU) untuk UDP tidak boleh dikirim. WSDAPI tidak menerapkan rekomendasi ini, dan akan memungkinkan implementasi untuk mengirim dan menerima pesan penemuan yang lebih besar dari MTU.

Olahpesan HTTP DPWS 3.3

R0001 mengharuskan layanan mendukung transfer yang dipotong. WSDAPI menerima data yang dipotong dalam pesan permintaan, dan akan mengirim data yang dipotong dalam pesan permintaan.

R0012 dan R0013 menjelaskan bagian yang diperlukan dari pengikatan HTTP SOAP. Untuk R0012, WSDAPI menerapkan pengikatan HTTP SOAP, tetapi tidak akan mulai membaca respons HTTP sampai WSDAPI selesai mengirim permintaan HTTP. WSDAPI menerapkan pola pertukaran pesan yang diperlukan di R0013, menerapkan simpul SOAP respons opsional di R0014, dan tidak menerapkan fitur metode web opsional di R0015. WSDAPI juga mendukung persyaratan di R0030 dan R0017.

Amplop SOAP DPWS 3.4

WSDAPI mendukung R0034, dan memberlakukan R0003 dan R0026 secara default. Lebih khusus lagi, sesuai dengan R0003 dan R0026, jika WSDAPI menerima amplop SOAP yang lebih besar dari MAX_ENVELOPE_SIZE melalui HTTP, koneksi ditolak dan koneksi ditutup.

WS-Addressing DPWS 3.5

R0004 mencerminkan penggunaan API perangkat yang direkomendasikan di WSDAPI, dan didukung oleh API klien di WSDAPI. Karena ini adalah rekomendasi, WSDAPI akan memungkinkan klien dan perangkat untuk menggunakan URI selain urn:uuid URI untuk titik akhir perangkat mereka untuk memastikan kompatibilitas maksimum. Karena API perangkat di WSDAPI tidak mempertahankan status antara inisialisasi, terserah pengembang aplikasi yang menggunakan API perangkat di WSDAPI untuk memastikan R0005 dan R0006 didukung dengan benar. API klien di WSDAPI akan mengasumsikan bahwa identitas perangkat unik dan bertahan, dan fungsionalitas yang dibangun pada API klien di WSDAPI (seperti PnP-X) akan memerlukan ini untuk mengenali perangkat dengan benar di seluruh reboot perangkat.

R0007 merekomendasikan terhadap penggunaan properti referensi dalam referensi titik akhir. WSDAPI masih akan mengenali dan menerima titik akhir dengan properti referensi, dan pengembang dapat memilih untuk menggunakannya, tetapi secara default WSDAPI tidak akan mengisinya di titik akhir yang dibuatnya. Demikian pula, dengan R0042, ketika WSDAPI membuat titik akhir layanan, WSDAPI akan menggunakan alamat transportasi HTTP atau HTTPS, tetapi tidak akan mengharuskan perangkat menggunakan alamat transportasi HTTP atau HTTPS di titik akhir layanan mereka. Perilaku klien saat mencoba berkomunikasi dengan layanan yang tidak menggunakan HTTP atau HTTPS tidak ditentukan.

Pada kesalahan, R0031 membatasi titik akhir balasan dan menjelaskan kesalahan untuk dikirim jika kesalahan tidak anonim. WSDAPI memaksa titik akhir balasan untuk menggunakan nilai yang benar saat mengirim pesan, dan akan salah jika WSDAPI menerima pesan permintaan dengan titik akhir balasan yang salah. R0041 memberi implementasi opsi untuk menghilangkan kesalahan jika titik akhir balasan tidak valid. Daripada menghilangkan kesalahan, WSDAPI akan mengirim kesalahan kembali pada saluran permintaan, yang ditujukan ke titik akhir anonim, sebagai "upaya terbaik" untuk berkomunikasi dengan klien.

Terakhir, ada dua pembatasan pada header SOAP, R0019 dan R0040, yang keduanya sesuai dengan dan diterapkan WSDAPI pada pesan yang diterima.

Lampiran DPWS 3.6

WSDAPI mendukung lampiran dan mematuhi R0022. WSDAPI juga sesuai dengan R0037. Saat mengirim lampiran, WSDAPI akan selalu mengatur Pengodean Transfer Konten ke "biner" untuk semua bagian MIME. Namun, WSDAPI tidak memberlakukan R0036. Perilaku WSDAPI saat menerima bagian MIME dengan Pengodean Transfer Konten yang tidak diatur ke "biner" tidak terdefinisi.

DPWS juga mendefinisikan klausul pemesanan bagian MIME. Untuk R0038, WSDAPI akan memberlakukan pemesanan bagian dan akan menolak pesan MIME jika amplop SOAP bukan bagian MIME pertama. Untuk R0039, WSDAPI akan selalu mengirim amplop SOAP sebagai bagian MIME pertama.

Penemuan DPWS 4.0

R1013 dan R1001 membedakan penemuan perangkat dan penemuan layanan. WSDAPI mematuhi R1013. Implementasi hosting sesuai dengan R1001, tetapi WSDAPI tidak memberlakukan rekomendasi ini pada klien.

DPWS juga memberikan panduan tentang jenis dan aturan pencocokan cakupan. WSDAPI mendukung semua aturan pencocokan cakupan yang ditentukan dalam WS-Discovery kecuali LDAP. WSDAPI juga menyediakan model yang dapat diperluas untuk menentukan aturan pencocokan cakupan kustom, sehingga mematuhi R1019. API hosting juga akan selalu menyediakan wsdp:Device jenis penemuan per R1020, tetapi API klien tidak mengharuskannya ada. Aplikasi lain yang dibangun di WSDAPI, seperti PnP-X, memang memiliki persyaratan keras untuk jenis yang wsdp:Device akan ada dalam penemuan.

Untuk memfasilitasi penemuan dan pengikatan, WSDAPI mendukung R1009 dan R1016. Per R1018, WSDAPI akan mengabaikan UDP multicast yang tidak dikirim ke alamat anonim. R1015, R1021, dan R1022 menentukan pengikatan HTTP untuk pesan Probe, yang didukung WSDAPI seperti yang dijelaskan.

Deskripsi DPWS 5.0

WSDAPI memberlakukan R2044 pada klien. Di sisi hosting, WSDAPI hanya akan pernah memberikan wsx:Metadata elemen dalam isi amplop SOAP. R2045 memungkinkan perangkat untuk mendukung subset fungsionalitas WS-Transfer . API hosting akan selalu menghasilkan wsa:ActionNotSupported kesalahan.

Karakteristik DPWS 5.1

DPWS menjelaskan karakteristik dasar untuk perangkat. Selain pembatasan yang dijelaskan dalam topik ini, batas panjang ditentukan untuk string dan URI tertentu. WSDAPI memberlakukan batas panjang di bagian DPWS 5.1 ini, baik sebelum mengirim pesan atau setelah mengurai kontennya.

DPWS juga menjelaskan bagian metadata yang diperlukan dan bersepeda versi metadata. Implementasi klien memberlakukan kehadiran metadata ThisModel dan ThisDevice. Implementasi hosting juga mengelola versi metadata dengan benar dan selalu menyediakan bagian ini, mematuhi R2038, R2012, R2001, R2039, R2014, dan R2002.

DPWS 5.2 Hosting

Bagian ini menjelaskan hierarki layanan dan metadata hubungan. WSDAPI tidak memberlakukan keunikan ServiceId seperti yang dijelaskan di bagian ini baik di sisi klien atau perangkat.

WSDAPI memang mematuhi R2040, dan dimungkinkan bagi implementasi hosting untuk mengirim respons metadata tanpa bagian hubungan jika tidak ada layanan yang dihosting. Implementasi klien menerima respons metadata dengan benar.

R2029 memungkinkan beberapa bagian hubungan dalam respons metadata, yang akan diterima WSDAPI dengan benar. R2030 dan R2042 menjelaskan manajemen versi metadata, yang diterapkan dengan benar di API hosting.

DPWS 5.3 WSDL

Jika layanan menyediakan data Web Services Description Language (WSDL), implementasi klien bisa mendapatkan definisi layanan dan memanipulasi layanan dengan cepat. Ini digunakan oleh klien yang terlambat terikat. Implementasi klien WSDAPI akan menerima WSDL yang disediakan dari layanan, tetapi klien tidak memvalidasinya dan klien tidak menyediakan model pemrograman yang terlambat. Implementasi hosting dapat digunakan untuk menyediakan WSDL, tetapi host tidak diperlukan untuk melakukannya karena metadata tingkat layanan tidak dikelola oleh host itu sendiri.

WS-Policy DPWS 5.4

DPWS menjelaskan pernyataan Kebijakan yang akan digunakan untuk perangkat. Karena WSDAPI tidak menyediakan dan tidak menginterpretasikan WSDL, WSDL tidak dapat mengenali dan menerapkan kebijakan yang disematkan dalam data WSDL.

Peristiwa DPWS 6.0

Langganan DPWS 6.1

DPWS memerlukan dukungan untuk pengiriman Push. WSDAPI menerapkan pengiriman Push di sisi layanan, sehingga mematuhi R3009 dan R3010, dan hanya akan menerima mode pengiriman Push di sisi klien. R3017 dan R3018 memerlukan kesalahan khusus dari layanan jika tidak mengenali NotifyTo alamat atau EndTo . WSDAPI tidak memvalidasi alamat ini di muka dan tidak akan menghasilkan kesalahan ini. Namun, implementasi klien akan mengenali kesalahan ini dengan benar. Demikian pula, R3019 bersifat opsional dan WSDAPI tidak menerapkan rekomendasi ini, tetapi implementasi klien akan mengenali SubscriptionEnd pesan dengan benar dan akan memberi tahu penerapan kegagalan pengiriman.

Pemfilteran DPWS 6.1.1

WSDAPI mematuhi R3008 dan mengimplementasikan Action filter. Sesuai dengan R3011 dan R3012, WSDAPI tidak akan menghasilkan kesalahan dalam kondisi yang dinyatakan. WSDAPI juga mengimplementasikan kesalahan yang dijelaskan R3020 jika tidak mengenali tindakan yang diminta untuk memfilter.

Durasi dan Perpanjangan Langganan DPWS 6.2

WSDAPI sesuai dengan R3005, R3006, dan R3016. WSDAPI akan selalu menggunakan xs:duration tetapi akan menerima xs:dateTime jika disediakan, dan dengan demikian tidak akan mengeluarkan kesalahan opsional di R3013. WSDAPI mendukung GetStatus dan tidak akan mengeluarkan wsa:ActionNotSupported kesalahan per R3015. WSDAPI menerima wsa:ActionNotSupported kesalahan jika layanan merespons GetStatus permintaan dengannya.

Keamanan DPWS 7.0

DPWS menjelaskan model keamanan yang direkomendasikan untuk perangkat. WSDAPI tidak menerapkan rekomendasi ini seperti yang dijelaskan, dan tidak memberlakukan pembatasan di bagian ini seperti yang dijelaskan.

Lampiran DPWS I

DPWS mengubah konstanta global dari spesifikasi lain agar sesuai dengan perangkat. WSDAPI menggunakan konstanta dari bagian ini, dan mengambil alih konstanta default dalam implementasi WS-Discovery dengan konstanta ini. Aplikasi yang menggunakan WSDAPI untuk WS-Discovery akan terikat dengan konstanta yang ditentukan dalam DPWS, bukan konstanta yang ditentukan dalam WS-Discovery.