Bagikan melalui


Fungsionalitas WS-Discovery Tambahan

Dalam beberapa kasus, Profil Perangkat untuk Layanan Web (DPWS) dan spesifikasi terkait tidak secara eksplisit menentukan fungsionalitas implementasi. Misalnya, spesifikasi WS-Discovery tidak menentukan perilaku klien dan host di lingkungan multi-homed. Ketika WSDAPI diimplementasikan, beberapa fungsi penemuan ditambahkan di luar fungsionalitas yang ditentukan dalam spesifikasi.

WSDAPI juga mengimplementasikan bagian WS-Discovery v1.1 CD1 yang dipilih untuk berkomunikasi dengan proksi penemuan melalui HTTP.

Tujuan dari topik ini adalah untuk menjelaskan fungsionalitas penemuan yang diterapkan oleh WSDAPI tetapi tidak dijelaskan dalam spesifikasi DPWS atau WS-Discovery.

Alamat IPv6 dan format URI soap.udp

SOAP-over-UDP dan WS-Discovery tidak secara eksplisit menjelaskan bagaimana alamat IPv6 harfiah diwakili dalam format URI soap.udp. RFC 2396, berjudul "Pengidentifikasi Sumber Daya Seragam (URI): Sintaks Generik", menunjukkan bahwa alamat IPv6 harfiah tidak didukung oleh format URI soap.udp.

Untuk kesederhanaan, WSDAPI mengenali alamat IPv6 yang diapit dalam kurung siku dalam skema soap.udp. Misalnya, alamat soap.udp://[2001:abcd:0001:0002:0003:0004:0005:0032]:3702 diakui oleh WSDAPI. Ini mirip dengan bagaimana alamat IPv6 ditangani di HTTP.

Halo dan XAddrs

Objek hosting DPWS WSDAPI tidak akan pernah mengirim pesan WS-Discovery Hello dengan XAddrs di isi pesan. Klien akan selalu mengirim pesan Selesaikan setelah menerima pesan Halo jika klien perlu mendapatkan XAddrs.

Ada dua manfaat dari pendekatan ini. Pertama, perangkat yang dibangun di WSDAPI tidak akan pernah mengekspos XAddrs yang mengungkapkan alamat IP jaringan privat. Kedua, perangkat yang dibangun di WSDAPI hanya mengekspos XAddrs yang dapat diakses oleh klien, yang berarti bahwa alamat IPv6 tidak pernah dikirim ke klien IPv4.

Saat pesan Probe atau Resolve diterima, hanya satu XAddr yang dikirim sebagai respons. XAddr yang dikirim sesuai dengan alamat lokal tempat permintaan diterima. Jika permintaan diterima di seluruh subnet melalui IPv6, WSDAPI akan memberikan alamat IPv6 global dalam respons.

Alamat pilihan

Perangkat dapat menyediakan beberapa XAddrs dalam pesan Hello, ProbeMatch, atau ResolveMatch . Layanan juga dapat tersedia di beberapa titik akhir dengan alamat transportasi yang berbeda. Dalam kasus ini, WSDAPI akan mencoba berkomunikasi dengan perangkat pada alamat pertama yang dapat digunakan yang ditemukannya. Alamat dapat digunakan jika berasal dari protokol yang tersedia, seperti IPv4 pada mesin tempat IPv4 diinstal atau IPv6 pada komputer tempat IPv6 diinstal. Selain itu, jika alamat berasal dari perangkat atau layanan yang tidak ada di subnet lokal, alamat tersebut hanya dapat digunakan jika IPv4, situs IPv6 lokal, atau tautan IPv6 lokal.

WSDL dalam pertukaran metadata

Perangkat dan layanan yang dibangun di WSDAPI tidak menyediakan WSDL mereka dalam pertukaran metadata kecuali diperluas oleh aplikasi untuk memberikan informasi ini. Secara default, provisi WSDL bukan bagian dari model pemrograman.

APP_MAX_DELAY

DPWS mendefinisikan APP_MAX_DELAY, interval acak untuk menunda antara menerima Probe dan mengirim ProbeMatch, sebagai 5.000 milidetik. Windows Firewall mengharuskan model respons permintaan/unicast multicast untuk UDP hanya akan berfungsi dalam jendela firewall 4 detik. Akibatnya, WSDAPI akan mengirimkan respons dalam 2.500 md atau kurang, bukan jendela 5.000 md yang dijelaskan oleh APP_MAX_DELAY.

Reservasi port IANA

WSDAPI menggunakan port TCP 5357 untuk lalu lintas HTTP dan port TCP 5358 untuk lalu lintas HTTPS secara default. Port ini dicadangkan untuk proses hak istimewa yang lebih rendah melalui reservasi URL di HTTP.sys, dan juga dicadangkan dengan IANA.

Berbagi port UDP

WSDAPI menggunakan berbagi port. Pesan unicast yang dikirim ke port 3702 mungkin tidak ditangani dengan benar oleh semua aplikasi berbasis WSDAPI. Jika aplikasi mengikat secara eksklusif ke port 3702, aplikasi berbasis WSDAPI dapat mencegah penggunaan port tersebut dengan benar.

WS-Discovery Proksi CD1 v1.1

WSDAPI akan mencari dan berkomunikasi dengan proksi penemuan yang mengimplementasikan protokol mode terkelola WS-Discovery v1.1 CD1. WS-Discovery v1.1 CD1 adalah revisi pertama WS-Discovery untuk menyertakan deskripsi eksplisit protokol HTTP untuk komunikasi antara proksi dan klien atau perangkat.

Untuk membatasi jumlah versi bersamaan yang digunakan dalam permintaan multicast, WSDAPI mengirimkan permintaan WS-Discovery Probe di namespace layanan 2005/04, tetapi mencari jenis WS-Discovery v1.1 CD1 DiscoveryProxy. Jika proksi merespons, WSDAPI akan mengirim permintaan Probe HTTP atau Selesaikan ke titik akhir proksi yang ditentukan seperti yang didefinisikan dalam WS-Discovery v1.1 CD1.