Es gibt grundsätzlich zwei Arten von Server zu Server (S2S) Verbindungen. Die erste wird entweder Gateway oder Transport genannt, aber sie sind dasselbe. Das ist wahrscheinlich die Art, nach der Sie suchen. Ich konnte keine spezifische Dokumentation für die Nicht-XMPP-Seite finden, aber wie XMPP darüber nachdenkt, Übersetzungen zu Legacy-Servern durchzuführen, ist unter http://xmpp.org/extensions/xep-0100.html. Die zweite Art wird wirklich nicht in irgendwelchen zusätzlichen XEPs erklärt - es sind normale XMPP s2s Verbindungen. Suchen Sie nach "Server-zu-Server-Kommunikation" in RFC 3920 oder RFC 3920bis für das neueste Entwurfsupdate.
Da Sie Ihre eigenen Benutzer und Präsenz auf Ihrem Server haben und es nicht XMPP ist, werden die Konzepte nicht vollständig auf das XMPP-Modell abgebildet. Hier kommt die Arbeit des Transports ins Spiel. Sie müssen die Übersetzung von Ihrem Modell zum XMPP-Modell durchführen. Während dies etwas Arbeit ist, musst du alle Entscheidungen treffen.
Das bringt uns direkt zu einer der wichtigsten Design-Entscheidungen - Sie müssen wirklich entscheiden, welche Dinge Sie XMPP von Ihrem Service zuordnen und was Sie nicht sind. Diese Merkmale und Anwendungsfälle werden die Gesamtstruktur bestimmen. Zum Beispiel, ist das wie ein Transport, um mit AOL oder MSN Chat-Diensten zu sprechen? Dann benötigen Sie eine Möglichkeit, das Äquivalent von Anwesenheitslisten zu protokollieren und Sitzungsinformationen zusammen mit Benutzernamen und Kennwörtern von Ihren lokalen Benutzern zum Remote-Server zu speichern. Dies liegt daran, dass Ihr Transport sich als diese Benutzer ausgeben muss und sich für sie anmelden muss.
Oder vielleicht bist du nur eine s2s-Brücke zu einem anderen XMPP-basierten Schachspiel, also brauchst du keine Anmeldung auf dem Remote-Server und kannst genauso wie ein E-Mail-Server agieren und die Informationen zurück und weitergeben her. (Bei normalen s2s-Verbindungen wäre die einzige Sitzung, die gespeichert werden würde, die SASL-Authentifizierung, die mit dem Remote-Server verwendet wird, aber auf der Benutzerebene behält s2s nur die Verbindung und nicht die Anmeldesitzung bei.)
Andere Faktoren sind Skalierbarkeit und Modularität an Ihrem Ende. Sie haben einige Bedenken hinsichtlich der Skalierbarkeit geäußert. Werfen Sie einen Blick auf mehrere Transporte, um die Last auszugleichen. Sehen Sie anhand der Modularität, wo Sie entscheiden möchten, was mit den einzelnen Paketen oder Aktionen geschehen soll. Zum Beispiel, wie behandeln und verfolgen Sie Abonnementdaten? Sie können es auf Ihren Transport setzen, aber das macht die Verwendung mehrerer Transporte schwieriger. Oder, wenn Sie diese Entscheidung näher an Ihrem Hauptserver treffen, können Sie einfachere Transporte durchführen und einen gemeinsamen Code verwenden, wenn Sie mit anderen Diensten als XMPP sprechen müssen. Der Trade-Off ist ein komplexerer Core-Server mit mehr Schwachstellen.