Freitag, 11. September 2020

Änderungen für LSL HTTP, Testregionen im Beta Grid

Quelle: ClipartMax
Gestern haben sowohl Oz Linden im LSL Scripting Forum als auch etwas später Maestro Linden im Second Life Server Forum auf Änderungen hingewiesen, die mit der Migration von Second Life in die Amazon Cloud bei den Skriptfunktionen stattfinden werden.

Zusätzlich diskutiert im erstgenannten Thread auch noch Monty Linden mit. Wenn diese drei Linden Lab Koryphäen sich gemeinsam um ein Thema kümmern, dann ist das schon ziemlich wichtig für Second Life. Zumindest für alle, die mit LSL arbeiten und Produkte anbieten, die Skripte mit den entsprechenden Funktionen enthalten.

Die ausführliche Erklärung zu den Änderungen wurde von Oz hier gegeben. Ich habe heute keine Lust, das komplett zu übersetzen. Wer mit Skripten arbeitet, wird sicher so viel Englisch können, um die Erklärung von Oz zu verstehen. Ich fasse den Inhalt nur einigermaßen verständlich zusammen.

Allgemein

Im Zusammenhang mit HTTP gibt es innerhalb der Linden Script Language (LSL) eine ganze Reihe von Funktionen. Diese werden dazu genutzt, Daten zwischen SL und einem Server im Internet auszutauschen. Oder auch, um mit anderen Skripten in Second Life zu kommunizieren. Die angesprochenen Änderungen betreffen nur den Datenaustausch mit externen Diensten. Oz bittet alle, die solche Skripte verwenden, die Funktionen auf den weiter unten angegebenen Regionen im Beta Grid zu testen und Probleme in der JIRA zu melden.

Betroffen sind die folgenden Funktionen:

llHTTPRequest - Ausgehende HTTP Anfrage

Die Schnittstelle zu dieser Methode ändert sich nicht (abgesehen von einer zusätzlichen Fehlerprüfung), aber einige Verhaltensweisen im Netzwerk ändern sich. HTTP-Anfragen von LSL an externe Systeme wurden bisher über einen HTTP-Proxy weitergeleitet, der jedem Simulator-Host zugeordnet war. In Zukunft befindet sich der Proxy in einem Pool separater Server, wie hier gezeigt:


Das bedeutet:
  • Die IP-Adresse des HTTP-Clients vom HTTP-Server stimmt nicht mit der IP-Adresse des Simulators überein, von dem die Anfrage gesendet wurde. Der Hostname, der durch das Auslesen der Client-/Proxy-Adresse zurückgegeben wird, ist nicht der Simulator-Host.
  • Einige Timeout-Verhaltensweisen für Server, die nicht schnell genug reagieren, können sich geringfügig ändern.
  • Der Aufbau einiger Fehlerantworten der Proxys kann sich ändern, einschließlich des Inhaltstyps.
  • Unterschiedliche Anfragen von einem bestimmten Simulator können über verschiedene Proxys geleitet werden und Anfragen von verschiedenen Simulatoren können über denselben Proxy (möglicherweise sogar über dieselbe TCP-Verbindung) geleitet werden.
  • Bei Skripten, bei denen mehr als eine HTTP-Anfrage zeitlich überlappt, können sich Änderungen in der Reihenfolge ergeben, in der diese Anfragen beim Server eingehen und/oder in der Reihenfolge, in der die Antworten zurückgegeben werden.

Die IP-Adressen für Simulatoren werden in unterschiedlichen Bereichen liegen und sind nicht vorhersehbar. Deshalb sollten in LSL-Skripten keine Prüfungen mehr enthalten sein, ob die IP-Adresse von einem Simulator aus einem der Linden Lab Rechenzentren kommt. Die Kommunikation zwischen zwei Skripten in SL ist davon nicht betroffen.

Der llHTTPRequest-Parameter HTTP_CUSTOM_HEADER darf nicht zum Festlegen von Werten für die Header "Connection" oder "Host" verwendet werden. Es wird eine Prüfung hinzugefügt, damit jeder Aufruf, der dies versucht, einen Fehler auslöst und die Anforderung abbricht (derzeit sind diese Headernamen zulässig, aber die Werte werden normalerweise nicht verwendet oder an den Remote-Server gesendet, was irreführend ist).

llRequestURL oder llRequestSecureURL

Hier weist Oz noch einmal darauf hin, dass bereits im Juni 2020 die Empfehlung gegeben wurde, keine Prüfung des Domainnamens in einer URL durchzuführen. Eine Suche nach Hostnamen für eine Simulator-IP-Adresse gibt nicht denselben Namen zurück, wie eine der beiden o.a. Methoden. Das heißt, wenn man nach der IP-Adresse für einen Simulatornamen sucht, wird die richtige Adresse zurückgegeben. Wenn man jedoch nach dem Namen für diese Adresse sucht, wird ein anderer Name zurückgegeben. Diese Art von Asymmetrie wird es zukünftig für viele SL-Dienste in der Cloud geben.

Hier die Regionen, auf denen die neuen LSL-Funktionen im Beta Grid bereits getestet werden können (Links nur anklicken, wenn man schon im Beta Grid eingeloggt ist):

Wichtig ist vor allem, dass Händler, die Produkte anbieten, welche mit dem Internet Daten austauschen, ihre Skripte überprüfen und gegebenenfalls anpassen. Zum Beispiel Rental-Boxen, Vendoren, Breedable-Informationen oder Anzeigetafeln, die ihren Inhalt von einer Webseite auslesen.

Links:

Keine Kommentare:

Kommentar veröffentlichen