fsockopen () für automatische Updates

  • fsockopen () ist eine Verbindungsart, bei der eine direkte Verbindung zwischen zwei Servern/Webspaces hergestellt wird.


    Grundsätzlich wird dadurch auch Traffic erzeugt, wenn diese Funktion aktiviert ist und genutzt wird.
    Je nach Webspaceanbieter kann es deshalb sein, dass diese Funktion
    - nicht aktiviert ist
    - auf einen bestimmten Wert begrenzt ist
    - extra "beantragt" werden muss


    Ist diese Funktion nicht aktiviert, gibt es auch keine automatischen Updates.
    In diesem Fall sollte man keinesfalls ein Seitensystem benutzen, das sich nicht manuell updaten lässt.


    Ist der fsockopen-Wert begrenzt, muss man sehen wie man damit auskommt, um auch wirklich alle Updates zu erhalten.


    Grundsätzlich läuft ein Update wie folgt ab:


    1) Das System prüft den anderen Server auf Updates
    Hierbei wird für jede eingebaute Funktion eine Prüf-Verbindung zum entsprechenden Bereich des anderen Servers hergestellt.
    Dieser gibt dann eine Rückmeldung, ob ein Update bereit steht oder auch nicht


    2) Das System fordert die einzelnen Updates an
    Für die Anforderung/Abruf des Updates wird erneut eine entsprechende Verbindung aufgebaut.


    Bei einer begrenzten Anzahl an fsockopen-Verbindungen gibt es ein Problem, wenn die Anzahl der zu prüfenden Funktionen mehr als die Hälfte der zulässigen fsockopen-Verbindungen ausmacht.


    Ich benutze im folgenden Beispiel einmal eine Begrenzung von 1.000 fsockopen-Verbindungen am Tag und 600 zu prüfende Funktionen:


    Was kann in einem solchen Fall tun ?


    1) Anzahl der Funktionen verringern
    Je weniger Funktionen, desto weniger Verbindungen werden für eine Update-Prüfung benötigt.
    Die Anzahl der Funktionen darf dabei maximal die Hälfte des fsockopen-Limits betragen.


    Benutzt man weitere Funktionen, die fsockopen benötigen, muss man deren Updates genauso berücksichtigen als wenn man sie im System eingebaut hätte.
    Viele externe Funktionen öffnen aber mehrmals täglich fsockopen-Verbindungen ! Die Zahl muss man also ganz genau kennen und auch berücksichtigen


    2) Sequenzielle Updates durch Aktivierung/Deaktivierung der Update-Server im System
    Beim WBB hat man zum Beispiel in der Regel 2 Update-Server zur Verfügung: Den für das Hauptsystem und den für die zusätzlichen Funktionen. Zusätzlich kann man auch weitere Server eintragen.


    In diesem Fall kann man die Updateserver wechselnd ein- und abschalten


    Beispiel:



    Dieses sequenzielle Aktivieren der Updateserver ist nur ein übergangsweiser "Ausweg aus dem Update-Dilemma".

    Je mehr Funktionen und Server man im Einsatz hat, desto kritischer wird es jedoch mit der Systemsicherheit:
    Das Hauptsystem bekommt nur alle paar Tage Verbindung zum Updateserver.
    Gibt es ein sicherheitskritisches Update, bekommt man es zu spät mit.

    Es gibt eigentlich folgende Möglichkeiten:


    1) Nichts tun und einfach darauf verlassen, dass "schon nichts passieren wird" = "NICHTS ist gut"
    2) Das fsockopen-Volumen erhöhen lassen = "alles IST gut"
    3) Zu einem Hoster wechseln, der dieses Limit nicht hat = "alles WIRD gut"
    4) sequenzielles Aktivieren der Updateserver = "besser als nichts ... schlechter als gut"


    Die beste Alternative wäre dann noch:
    5) Ein anderes System benutzen, das man auch manuell updaten kann = "alles KANN gut sein" .. wenn man das Update nicht vergisst - aber wenigstens ist man dann nicht mehr von fsockopen() abhängig


    Natürlich gibt es noch andere Verbindungsarten, wie man automatische Updates bekommen kann.
    Diese passen jedoch nicht in dieses Thema "fsockopen"


    ----------------------------------------------------


    Anmerkung:
    Ich habe ganz absichtlich eine "Milchmädchen-Rechnung" aufgemacht, damit es verständlich bleibt/wird.


    In manchen Fällen liefert der Updateserver nicht nur eine Update-Info zurück , sondern direkt das Update. In solchen Fällen würde das Limit der Verbindungen natürlich viel später erreicht werden und man könnte auch mehr Funktionen einbauen, die dann ein Update erhalten.
    Andererseits prüfen selbst Systeme, die man manuell updaten kann/muss über diese Verbindung auch, ob es neue Versionen gibt.
    Im Einzelfall (und je nach Entwicklungsstadium) kommt es also auf das einzelne System an und wie genau die Updateroutinen jeweils programmiert wurden, wie viele Verbindungen im Einzelfall nötig werden.
    Das hier war also nur eine "Grundsatz-Erklärung".