Informationen zur Peerverteilung

Die Peer-Verteilungs-API, die das Branch-Cache-Feature in Windows 7, Windows Server 2008 R2, Windows 8, unterstützt und Windows Server 2012 bietet eine Reihe von Plattform-APIs, die die Netzwerk-Reaktionsfähigkeit von zentralisierten Anwendungen erhöhen können, wenn auf Remotestellen zugegriffen wird und bei der Verringerung der Nutzung des gesamtweiten Netzwerks (WAN) ohne Die Netzwerksicherheitstechnologien beeinträchtigen.

Das PeerVerteilungssystem bietet eine Reihe von Plattform-APIs, die von den Herausgebern genutzt werden, die digitale Inhalte und Verbraucher bereitstellen, die sie anfordern. Um diese Rollen einfach zu unterscheiden, kann es einfacher sein, den Herausgeber in einer Serverrolle und dem Verbraucher in einer Clientrolle zu denken. Auf diese Weise ist es wichtig, daran zu denken, dass neben diesen konzeptionellen Rollen der Peerverteilungsdienst ein wahrer Peer-System ist, wie durch die Möglichkeit für jeden Peerverteilungsknoten angegeben, sowohl digitale Inhalte zu veröffentlichen als auch zu nutzen. Die Peer-Verteilungsplattform-APIs werden Herausgebern und Verbrauchern von einer Win32-Importbibliothek (PeerDist.Lib) verfügbar gemacht.

Der Lebenszyklus von Inhalten, die von einem Herausgeber bereitgestellt und von einem Verbraucher mit dem PeerVerteilungsdienst abgerufen werden, besteht aus den folgenden Vorgängen:

Beschreibung
Inhaltsveröffentlichung Die Veröffentlichung erfolgt, um eine Beschreibung von Inhaltsinformationen oder Inhaltsinformationen für kurze Zeit zu erstellen. Diese Inhaltsinformationen können dann von einer Instanz des Peerverteilungsdiensts verwendet werden, um den Inhalt zu authentifizieren und neu zu erstellen. Wenn Inhalte von einer Anwendung in den Peerverteilungsdienst veröffentlicht werden, der konzeptionell ein serverseitiger Vorgang ist, wird dieser Inhalt dem Publisher Identity zugeordnet, der auf der SID des Benutzers basiert, der dem Threadzugriffstoken zugeordnet ist. Diese Bindung erfolgt, um den Zugriff auf Inhalte durch nicht autorisierte Entitäten zu beschränken. Es ist jedoch wichtig zu beachten, dass der Zugriff auf die Inhaltsinformationen dem Zugriff auf den Inhalt selbst entspricht, da die Inhaltsinformationen verwendet werden können, um den Inhalt von Peers oder einem gehosteten Cache abzurufen.
Es gibt eine neue Version der Inhaltsinformationsdatenstruktur in Windows 8. Die vorherige Version wird jedoch weiterhin unterstützt. Um mit Windows 7 Clients zu interoperieren, kann ein Administrator den Peerverteilungsdienst so konfigurieren, dass die vorherige Version der Inhaltsinformationsdatenstruktur verwendet wird.
Inhaltsabruf Um Inhalte vom Peerverteilungsdienst abzurufen, muss der Zugriff auf die veröffentlichten Inhaltsinformationen bereitgestellt werden, die diesem Inhalt zugeordnet sind. Der Peerverteilungsdienst, der zum Veröffentlichen des Inhalts verwendet wird, kann die zugeordneten Inhaltsinformationen bereitstellen. Sobald der Verbraucher über die Inhaltsinformationen verfügt, können andere Peerverteilungs-APIs verwendet werden, um Inhalte vom Peerverteilungsdienst anzufordern. Der Peerverteilungsdienst versucht, den Inhalt aus dem lokalen Netzwerk abzurufen. Wenn der Inhalt nicht verfügbar ist, ist die Clientanwendung dafür verantwortlich, den Inhalt vom Quellserver abzurufen.
Entfernen der Publikation Für Anwendungen, die Inhalte im Peerverteilungsdienst veröffentlicht haben, wurde die Funktion PeerDistServerUnpublish bereitgestellt, damit Inhalte nicht veröffentlicht werden können. Sobald Inhalte nicht veröffentlicht wurden, stellt der lokale Peerverteilungsdienst nicht mehr die Inhaltsinformationen bereit, die diesem Inhalt zugeordnet sind.

Asynchrone Fertigstellungen

Die Peerverteilungs-API unterstützt ein asynchrones API-Modell, und daher ermöglichen Peer-Verteilungs-APIs die Verwendung von I/O-Abschlussports oder Ereignissen als Signalmechanismen für die Verarbeitung asynchroner Peerverteilungsvorgänge. Für einen anderen Mechanismus verwendet Peerverteilung eine ÜBERLAPPENDE Struktur. Im Allgemeinen übernimmt Peer Distribution den Besitz einer ÜBERLAPPENDEN Struktur und alle Parameter, die der Client an asynchrone API-Funktionen übergibt. Der Client darf erst auf diese Ressourcen zugreifen, bis die bestimmte asynchrone Funktion abgeschlossen ist. Sobald die asynchronen Funktionen abgeschlossen sind, benötigt der Peerverteilungsdienst keinen Zugriff auf diese Ressourcen mehr und kann wiederverwendet werden, wenn die aufrufende Anwendung passt.

Es gibt keinen asynchronen Abschluss, wenn die Funktion einen anderen Fehlercode als ERROR_IO_PENDING zurückgibt. Die Rückgabe eines anderen Werts als ERROR_IO_PENDING bedeutet, dass der Aufruf synchron fehlgeschlagen ist. Wenn die Peerverteilungs-API ERROR_IO_PENDING zurückgibt, muss der Aufrufer auf asynchrone Fertigstellung warten.

Der Fehlercode des asynchronen Abschlusses kann auf zwei Arten abgerufen werden:

I/O-Abschlussport basierend

Der Benutzer ruft den I/O-Abschlussportmechanismus auf, indem er einen Abschlussporthandpunkt und abschlussschlüssel für die folgenden API-Funktionen bereitstellt:

PeerDistRegisterForStatusChangeNotification
PeerDistServerPublishStream
PeerDistServerOpenContentInformation
PeerDistClientOpenContent

Der Benutzer erstellt einen Abschlussport durch Aufrufen von CreateIoCompletionPort. Dieser Abschlussporthandpunkt kann gleichzeitig für andere asynchrone I/O-Vorgänge sowie Peerverteilungsspezifische Vorgänge verwendet werden.

Der Aufrufer sollte die Funktion "GetQueuedCompletionStatus " verwenden, um asynchrone Fertigstellung zu verwalten. Wenn der asynchrone Vorgang fehlschlägt, gibt die Funktion "GetQueuedCompletionStatus " FALSCH zurück, und GetLastError gibt den entsprechenden Fehlercode zurück. Der Aufrufer sollte alle Felder der ÜBERLAPPENDEN Struktur ignorieren, wenn der Fehlercode etwas anderes ist als ERROR_SUCCESS. Der asynchrone Vorgang erfolgreich, wenn die Funktion "GetQueuedCompletionStatus " TRUE zurückgibt.

Weitere Informationen finden Sie unter I/O-Abschlussports.

Ereignisbasierte Fertigstellung

Wenn der Aufrufer einen gültigen Ereignishandpunkt auf das hEvent-Feld der ÜBERLAPPENDEN Struktur festlegt, wird peer Distribution verwendet, um zu signalisieren, dass der zugeordnete asynchrone I/O-Vorgang abgeschlossen ist.

Ein Threadanrufer kann überlappende Vorgänge verwalten, indem ein Handle für das manuell zurückgesetzte Ereignisobjekt der ÜBERLAPPENDEN Struktur in einer der Wartenfunktionen angegeben wird. Nachdem das Ereignis signalisiert wurde, muss der Anrufer PeerGetOverlappedResult aufrufen, das in der entsprechenden ÜBERLAPPENDEN Struktur übergeben wird. PeerGetOverlappedResult gibt FALSE zurück, und der Aufrufer muss GetLastError aufrufen, um den Fehlercode abzurufen. Der Aufrufer sollte alle Felder der ÜBERLAPPENDEN Struktur ignorieren, wenn der Fehlercode etwas anderes ist als ERROR_SUCCESS. Der asynchrone Vorgang erfolgreich, wenn die PeerGetOverlappedResult-FunktionTRUE zurückgibt.

Wenn der Aufrufer einen Abschlussport zusammen mit einem Ereignis bereitstellt, wird das Ereignis als Abschlussmechanismus verwendet.

Windows 7: Verwenden Sie die GetOverlappedResult-Funktion anstelle von PeerGetOverlappedResult.

Peer-Verteilungs-API-Referenz