Megosztás a következőn keresztül:


Tudnivalók a társterjesztésről

A Társterjesztési API, amely támogatja a Branch Cache funkciót a Windows 7, a Windows Server 2008 R2, a Windows 8 és a Windows Server 2012 rendszerben, platform API-k készletét kínálja, amelyek növelhetik a központosított alkalmazások hálózati válaszképességét távoli irodákból való hozzáféréskor, és a hálózatbiztonsági technológiák megzavarása nélkül csökkentik a teljes széles körű hálózat (WAN) kihasználtságát.

A társterjesztési rendszer olyan platform API-kat kínál, amelyeket a digitális tartalmakat biztosító közzétevők és azokat igénylő felhasználók egyaránt használnak. A szerepkörök egyszerű megkülönböztetése érdekében egyszerűbb lehet a közzétevőre gondolni egy kiszolgálói szerepkörben, és a fogyasztóra egy ügyfélszerepkörben. Emellett fontos megjegyezni, hogy ezen elméleti szerepkörök mellett a társterjesztési szolgáltatás egy valódi társrendszer, amit az is jelez, hogy bármely társterjesztési csomópont képes digitális tartalmak közzétételére és felhasználására. A társterjesztési platform API-jait egy Win32-importálási kódtár (PeerDist.Lib) teszi elérhetővé a közzétevők és a felhasználók számára.

A közzétevő által szolgáltatott és a társterjesztési szolgáltatással a fogyasztó által lekért tartalom életciklusa a következő műveletekből áll:

Leírás
Tartalom közzététele A közzététel célja a tartalom leírásának készítése tartalominformációsvagy rövid tartalominformációs. Ezt a tartalominformációt a társterjesztési szolgáltatás egy példánya felhasználhatja a tartalom hitelesítésére és újraépítésére. Amikor egy alkalmazás közzéte egy tartalmat a társterjesztési szolgáltatásban, amely elméletileg kiszolgálóoldali művelet, az a tartalom társítva lesz a Publisher-identitással, amely a szálelérési jogkivonathoz társított felhasználó SID-jén alapul. Ez a kötés azért történik, hogy jogosulatlan entitások korlátozzák a tartalomhoz való hozzáférést. Fontos azonban megjegyezni, hogy a tartalomadatokhoz való hozzáférés egyenértékű a tartalomhoz való hozzáféréssel, mivel a tartalomadatok felhasználhatók a tartalom társviszonyban lévőktől vagy egy üzemeltetett gyorsítótárból való beszerzéséhez.
A Windows 8-ban a tartalominformációs adatstruktúra új verziója érhető el; az előző verzió azonban továbbra is támogatott. A Windows 7-ügyfelekkel való együttműködéshez a rendszergazda konfigurálhatja a társterjesztési szolgáltatást a tartalominformációs adatstruktúra előző verziójának használatára.
Tartalom lekérése Ahhoz, hogy egy felhasználó tartalmat kérjen le a társterjesztési szolgáltatásból, hozzáférést kell biztosítani a tartalomhoz társított közzétett tartalomadatokhoz. A tartalom közzétételéhez használt társterjesztési szolgáltatás megadhatja a kapcsolódó tartalomadatokat. Miután a fogyasztó megkapta a tartalominformációkat, más társterjesztési API-k is használhatók a társterjesztési szolgáltatástól származó tartalom lekérésére. A társterjesztési szolgáltatás megpróbálja lekérni a tartalmat a helyi hálózatról. Ha a tartalom nem érhető el, az ügyfélalkalmazás feladata a tartalom lekérése a forráskiszolgálóról.
kiadvány eltávolítása A társterjesztési szolgáltatásban tartalmat közzétevő alkalmazások esetében a PeerDistServerUnpublish függvény lett megadva a tartalom közzétételének megszüntetéséhez. A tartalom közzétételének megszüntetése után a helyi társterjesztési szolgáltatás többé nem adja meg az adott tartalomhoz társított tartalomadatokat.

Aszinkron befejezések

A Társterjesztési API támogatja az aszinkron API-modellt, így a társterjesztési API-k lehetővé teszik az I/O-befejezési portok vagy események használatát az aszinkron társterjesztési műveletek befejezésének feldolgozására szolgáló jelátviteli mechanizmusként. A társeloszlás mindkét mechanizmus esetében átfedésben lévő struktúrát használ. Általában, a Peer Distribution átveszi a tulajdonjogát egy ÁTFEDÉSBEN lévő struktúrának, valamint bármely kimenő paraméternek, amit az ügyfél aszinkron API-függvényekhez továbbít. Az ügyfél csak akkor férhet hozzá ezekhez az erőforrásokhoz, ha az adott aszinkron függvény befejeződik. Amint az aszinkron függvények befejeződnek, a Társterjesztési szolgáltatás már nem igényel hozzáférést ezekhez az erőforrásokhoz, és ezek újra felhasználhatóvá válnak a hívó alkalmazás igényei szerint.

Nem lesz aszinkron befejezés, ha a függvény a ERROR_IO_PENDINGkivételével bármilyen hibakódot ad vissza. A nem ERROR_IO_PENDING érték visszaadása azt jelenti, hogy a hívás szinkron módon meghiúsult. Amennyiben a Társterjesztési API ERROR_IO_PENDINGértéket ad vissza, a hívónak meg kell várnia az aszinkron befejezést.

Az aszinkron befejezés hibakódja kétféleképpen kérhető le:

I/O-befejezési port alapú befejezés

A felhasználó meghívja az I/O-befejezési port mechanizmusát egy befejezési port leírójának és a befejezési kulcsnak a következő API-függvényekhez való megadásával:

PeerDistRegisterForStatusChangeNotification
PeerDistServerPublishStream
PeerDistServerOpenContentInformation
PeerDistClientOpenContent

A felhasználó létrehoz egy befejezési portot CreateIoCompletionPortmeghívásával. Ez a befejező portfogantyú egyidejűleg használható más aszinkron I/O-műveletekhez, valamint társelosztási műveletekhez.

A hívónak GetQueuedCompletionStatus függvényt kell használnia az aszinkron befejezés kezeléséhez. Ha az aszinkron művelet meghiúsul, a GetQueuedCompletionStatus függvény HAMIS ad vissza, és GetLastError a megfelelő hibakódot adja vissza. A hívónak figyelmen kívül kell hagynia a OVERLAPPED szerkezet összes mezőjét, ha a hibakód nem ERROR_SUCCESS. Az aszinkron művelet akkor sikeres, ha a GetQueuedCompletionStatus függvény IGAZértéket ad vissza.

További információ: I/O-befejezési portok.

eseményalapú befejezés

Ha a hívó érvényes Eseménykezelőt állít be az hEvent mezőre a ÁTFEDÉS szerkezeten belül, a társeloszlás azt az eseményt használja annak jelzésére, hogy a kapcsolódó aszinkron I/O-művelet befejeződött.

A szálhívó az átfedéses műveleteket úgy kezelheti, hogy a struktúra kézi visszaállítású eseményobjektumának egy leíróját adja meg a várakoztató függvények egyikében. Az esemény jelzése után a hívónak meg kell hívnia PeerGetOverlappedResult a megfelelő ÁTFEDÉSBEN lévő struktúrában. PeerGetOverlappedResultHAMIS ad vissza, a hibakód lekéréséhez pedig a hívónak meg kell hívnia GetLastError. A hívónak figyelmen kívül kell hagynia az OVERLAPPED struktúra összes mezőjét, ha a hibakód nem ERROR_SUCCESS. Az aszinkron művelet sikeres, ha a PeerGetOverlappedResult függvény IGAZértéket ad vissza.

Ha a hívó egy befejezési portot és egy eseményt biztosít, a rendszer az eseményt fogja használni befejezési mechanizmusként.

Windows 7: Használja a GetOverlappedResult függvényt PeerGetOverlappedResulthelyett.

Partnerelosztási API-referencia