Saltamontes: Funktionen von externem Server cashen?

Hallo zusammen,

ich möchte bei meinem aktuellen Projekt eine Datei bzw. mehrere Dateien mit Funktionen von meinem Server importieren. Das ganze soll den Zweck haben, dass ich Änderungen zum einen zentral vornehmen kann und zum anderen, dass der Kunde nicht ohne weiteres das komplette Programm herunterladen kann.

Meine Idee war es die Dateien mit require_once und einem fixen Pfad zu den Dateien auf meinem Server zu realisieren - Problem dabei ist allerdings, dass die Dateien permanent neu geladen werden müssen was Unmengen an überflüssigem Traffic verursachen würde und die Performance beeinflusst.

Habt ihr eine Idee wie ich das lösen kann? Ich möchte nach Möglichkeit keine Änderungen per Upload auf jeder einzelnen Domain durchführen müssen.

Danke schonmal für eure Hilfe!

Gruß,
Saltamontes

  1. Code doch einfach eine Update-Skript das über cron beim Kunden aufgerufen wird und bei jeder neuen Version die Datei/das Skript herunterlädt.
    Du musst halt dem Kunden erklären wie er den cronjob einstellt und das wars auch schon.
    Das wäre meine Lösung.

    1. Code doch einfach eine Update-Skript das über cron beim Kunden aufgerufen wird und bei jeder neuen Version die Datei/das Skript herunterlädt.
      Du musst halt dem Kunden erklären wie er den cronjob einstellt und das wars auch schon.
      Das wäre meine Lösung.

      Ja, hab ich auch schon überlegt, würde das ganze aber lieber zentral haben, weil ich von meinem Kunden nicht erwarten kann, dass er das mit dem cronejob einstellt... da hab ich das falsche Zielpublikum zu ^^

      1. Ok, noch ein Vorschlang.

        Eigentlich das gleiche wie mit dem Cronjob.

        Deine Funktionen werden doch bestimmt von einem Skript aufgerufen?
        Wenn dieses Skript von dir ist könntest du dieses Erweitern das z. B. bei jedem x-ten Aufruf oder sonst einer Bedinung auf deinem Server nachgeschaut wird ob es eine neues Funktionsskript gibt. Wenn ja wird das vorhandene geupdated.

        Das ist zwar nicht die optimalste Lösung aber es wäre ein Ansatz ...

        Also nochmal

        Skript beim Kunden wird aufgerufen

        Skript ruft ein Skript auf deinem Server auf das nur die Versionsnummer liefert das Kundenskript schaut ob diese Version schon auf dem Server liegt wenn nein wird es geupdated
        Dann includiert das Kundenskript das Funktionsskript.

        Das muss ja nicht bei jedem Aufruf stattfinden musst du halt schauen welche möglichkeiten du hier hast.

        opa

        1. Besteht aber immernoch das Problem dass die Dateien mit den Funktionen auf dem Server des Kunden liegen und ohne weiteres kopiert werden könnten :/

          Um ein Update und Verschlüsselung der Dateien komm ich aber anscheinend nicht drum rum...

          Danke für die Hilfe.
          Wenn noch wer ne Idee hat wie man das Cashen könnte wär das natürlich weiterhin sehr willkommen - das ganze muss ja nicht 100% kopiersicher sein sondern soll lediglich den Standardbenutzer vom kopieren abhalten.

  2. Hallo Saltamontes!

    Meine Idee war es die Dateien mit require_once und einem fixen Pfad zu den Dateien auf meinem Server zu realisieren - Problem dabei ist allerdings, dass die Dateien permanent neu geladen werden müssen was Unmengen an überflüssigem Traffic verursachen würde und die Performance beeinflusst.

    Ich kann mir nicht vorstellen wie da funktionieren soll - wenn du die Dateien zum Beispiel mit require_once('http://externer-server.de/functions.inc.php') inkludieren willst, bekommst Du ja nicht die Datei, sondern den Output des Scripts (bei einer Funktionssammlung also wahrscheinlich ein leerer String).

    Eine Möglichkeit wäre die Benutzung von XML-RPC, bei dem Funktionsaufrufe an einen Server mit einer passenden XML Datei beantwortet werden.

    Aber das ist auch nicht gerade performant.

    Gruß,

    Andreas

    1. hi,

      Ich kann mir nicht vorstellen wie da funktionieren soll - wenn du die Dateien zum Beispiel mit require_once('http://externer-server.de/functions.inc.php') inkludieren willst, bekommst Du ja nicht die Datei, sondern den Output des Scripts

      Nur, wenn es dort geparst wird - wenn dieser Server .php nicht parsen lassen würde, oder man stattdessen .txt verwenden würde, dann würde der PHP-Code übertragen. Das ist aber natürlich auch wenig anzuraten, weil ihn dann jeder sehen kann, wenn er ungeschützt übertragen wird.

      Allerdings ist include mit "Caching" natürlich ebenfalls eine reichlich blödsinnige Idee. Der Cache müsste auf dem Server des "Kunden" liegen - also bräuchte dieser nur dort reinzuschauen, und hätte wiederum den Code.
      Gut, man könnte diesen auch noch irgendwie "verschlüsseln", wenn einem die Peformance wurscht ist - aber den nötigen Schlüssel müsste der Server des Kunden dann ja auch wieder kennen ...

      gruß,
      wahsaga

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }
      1. Stimmt das mit dem Include funktioniert so nicht, da hab ich nicht dran gedacht. Trotzdem muss es doch eine Lösung geben bei der ich mir einmal beim ersten Aufruf die Funktionen hole und dann während der Sitzungsdauer verwenden kann.

        Wenn ich nur umständlich an den Code komme ist das zu verkraften, mein Hauptanliegen ist eigentlich die zentrale verwaltung der Funktionen bei einer akzeptablen Performance.

        Gruß,
        Saltamontes