Tentang Distribusi Serekan

API Distribusi Serekan, yang mendukung fitur Cache Cabang di Windows 7, Windows Server 2008 R2, Windows 8, dan Windows Server 2012 menawarkan serangkaian API platform yang dapat meningkatkan respons jaringan aplikasi terpusat ketika diakses dari kantor jarak jauh dan membantu mengurangi pemanfaatan jaringan area luas (WAN) secara keseluruhan tanpa mengganggu teknologi keamanan jaringan.

Sistem Distribusi Serekan menawarkan serangkaian API platform yang digunakan oleh penerbit yang menyediakan konten digital dan konsumen yang memintanya. Untuk membedakan peran ini dengan mudah, mungkin lebih mudah untuk memikirkan penerbit dalam peran server dan konsumen dalam peran klien. Selain itu, penting untuk diingat bahwa selain dari peran konseptual ini, layanan Distribusi Serekan adalah sistem serekan yang sebenarnya, seperti yang ditunjukkan oleh kemampuan untuk setiap simpul Distribusi Serekan untuk menerbitkan dan mengonsumsi konten digital. API platform Distribusi Serekan diekspos ke penerbit dan konsumen oleh pustaka impor Win32 (PeerDist.Lib).

Siklus hidup konten yang disediakan oleh penerbit dan diambil oleh konsumen dengan layanan Distribusi Serekan terdiri dari operasi berikut:

Deskripsi
Publikasi Konten Penerbitan dilakukan untuk menghasilkan deskripsi Informasi Konten ber istilah konten, atau Info Konten singkatnya. Info Konten ini kemudian dapat digunakan oleh instans layanan Distribusi Serekan untuk mengautentikasi dan membangun kembali konten. Ketika konten diterbitkan oleh aplikasi ke dalam layanan Distribusi Serekan, yang secara konseptual merupakan operasi sisi server, konten tersebut akan dikaitkan dengan Identitas Penerbit, yang didasarkan pada SID pengguna yang terkait dengan token akses utas. Pengikatan ini dilakukan untuk membatasi akses ke konten oleh entitas yang tidak sah. Namun, penting untuk dicatat bahwa akses ke informasi konten setara dengan akses ke konten itu sendiri, karena informasi konten dapat digunakan untuk mendapatkan konten dari rekan atau cache yang dihosting.
Ada versi baru struktur data informasi konten di Windows 8; namun, versi sebelumnya masih didukung. Untuk beroperasi dengan klien Windows 7, administrator dapat mengonfigurasi layanan Distribusi Serekan untuk menggunakan versi struktur data informasi konten sebelumnya.
Pengambilan Konten Agar konsumen dapat mengambil konten dari layanan Distribusi Serekan, akses harus diberikan ke Info Konten yang diterbitkan yang terkait dengan konten tersebut. Layanan Distribusi Serekan yang digunakan untuk menerbitkan konten dapat menyediakan Info Konten terkait. Setelah konsumen memiliki Info Konten, API Distribusi Serekan lainnya dapat digunakan untuk meminta konten dari layanan Distribusi Serekan. Layanan Distribusi Serekan akan mencoba mengambil konten dari jaringan lokal. Jika konten tidak tersedia, aplikasi klien bertanggung jawab untuk mengambil konten dari server sumber.
Penghapusan Publikasi Untuk aplikasi yang telah menerbitkan konten ke dalam layanan Distribusi Serekan, fungsi PeerDistServerUnpublish telah disediakan untuk memungkinkan konten tidak diterbitkan. Setelah konten tidak diterbitkan, layanan Distribusi Serekan lokal tidak akan lagi memberikan info konten yang terkait dengan konten tersebut.

Penyelesaian Asinkron

API Distribusi Serekan mendukung model API asinkron, dan sebagai hasilnya API Distribusi Serekan memungkinkan penggunaan Port Penyelesaian I/O atau Peristiwa sebagai mekanisme sinyal untuk memproses penyelesaian operasi Distribusi Serekan asinkron. Untuk salah satu mekanisme, Distribusi Serekan menggunakan struktur yang TUMPANG TINDIH . Secara umum, Distribusi Serekan mengambil kepemilikan struktur yang TUMPANG TINDIH dan parameter apa pun yang diteruskan Klien ke fungsi API asinkron. Klien tidak boleh mengakses sumber daya ini sampai fungsi asinkron tertentu selesai. Segera setelah fungsi asinkron selesai, layanan Distribusi Serekan tidak akan lagi memerlukan akses ke sumber daya ini dan mungkin digunakan kembali karena aplikasi panggilan terlihat pas.

Tidak akan ada penyelesaian asinkron jika fungsi mengembalikan kode kesalahan selain ERROR_IO_PENDING. Pengembalian nilai selain ERROR_IO_PENDING berarti bahwa panggilan telah gagal secara sinkron. Jika API Distribusi Serekan mengembalikan ERROR_IO_PENDING, pemanggil harus menunggu penyelesaian asinkron.

Kode kesalahan penyelesaian asinkron dapat diambil dengan salah satu dari dua cara:

Penyelesaian Berbasis Port Penyelesaian I/O

Pengguna memanggil mekanisme port penyelesaian I/O dengan menyediakan handel port penyelesaian dan kunci penyelesaian ke fungsi API berikut:

PeerDistRegisterForStatusChangeNotification
PeerDistServerPublishStream
PeerDistServerOpenContentInformation
PeerDistClientOpenContent

Pengguna membuat port penyelesaian dengan memanggil CreateIoCompletionPort. Handel port penyelesaian ini dapat digunakan secara bersamaan untuk operasi I/O asinkron lainnya serta operasi khusus Distribusi Serekan.

Pemanggil harus menggunakan fungsi GetQueuedCompletionStatus untuk mengelola penyelesaian asinkron. Jika operasi asinkron gagal, fungsi GetQueuedCompletionStatus akan mengembalikan FALSE dan GetLastError akan mengembalikan kode kesalahan yang sesuai. Penelepon harus mengabaikan semua bidang struktur yang TUMPANG TINDIH jika kode kesalahan adalah apa pun selain ERROR_SUCCESS. Operasi asinkron berhasil jika fungsi GetQueuedCompletionStatus mengembalikan TRUE.

Untuk informasi selengkapnya, lihat Port Penyelesaian I/O.

Penyelesaian Berbasis Peristiwa

Jika penelepon mengatur handel Peristiwa yang valid ke bidang hEvent dari struktur yang TUMPANG TINDIH , Distribusi Serekan menggunakannya untuk memberi sinyal bahwa operasi I/O asinkron terkait telah selesai.

Pemanggil utas dapat mengelola operasi yang tumpang tindih dengan menentukan handel ke objek peristiwa reset manual struktur yang TUMPANG TINDIH di salah satu fungsi tunggu. Setelah Peristiwa diberi sinyal, pemanggil harus memanggil PeerGetOverlappedResult yang melewati struktur TUMPANG TINDIH yang sesuai. PeerGetOverlappedResult akan mengembalikan FALSE dan pemanggil harus memanggil GetLastError untuk mengambil kode kesalahan. Pemanggil harus mengabaikan semua bidang struktur yang TUMPANG TINDIH jika kode kesalahan adalah apa pun selain ERROR_SUCCESS. Operasi asinkron berhasil jika fungsi PeerGetOverlappedResult mengembalikan TRUE.

Jika penelepon menyediakan port penyelesaian bersama dengan peristiwa, peristiwa akan digunakan sebagai mekanisme penyelesaian.

Windows 7: Gunakan fungsi GetOverlappedResult alih-alih PeerGetOverlappedResult.

Referensi API Distribusi Serekan