Updatesicherheit

Das Gambio Shopsystem ist mächtig und umfasst viele Funktionen und Möglichkeiten. Aber manchmal reichen auch diese nicht aus oder sie sind so designed, wie man sie gerade nicht brauchen kann oder aber man benötigt eine etwas andere Variante dessen, was im Shop eingebaut und umgesetzt ist.

Dann kann das Shopsystem in der Regel verändert werden.
Aber mit Veränderungen am System geht unmittelbar eine gewisse Unsicherheit einher.

Was passiert beim nächsten Update? Kann ich noch Aktualisierungen und Updates vom Shop einspielen und funktioniert der Shop weiterhin – und auch die vorhandene Änderung?

Ein Verlangen kommt dann schnell auf: die UPDATESICHERHEIT – die Veränderung des Systems, aber „update-sicher“, so dass bei Aktualisierungen nichts passiert und alles anschließend wie vorher funktioniert.

Eins vorne weg: Die UPDATESICHERHEIT im engsten Sinn ist ein Phantom, jeder hofft dass es sie gibt aber gesehen hat sie leider noch niemand, denn trotz der guten Ansätze und Vorsätze seitens Gambio hat die „Updatesicherheit“ so Ihre Grenzen.

Aber fangen wir vorne an: Was ISTUpdatesicherheit„?
Die Basis zur Updatesicherheit eines Systems entsteht, wenn der Urheber des Systems – hier also Gambio – vorausschauend programmiert und die Routinen und Funktionen des Systems so konzipiert, dass man diese sozusagen von außen modifizieren, ergänzen oder überlagern kann. So kann man bei diesem speziellen Design Konstrukte schaffen, die es erlauben die originalen Inhalte zu verändern. Hierbei gibt es eine – von Gambio – vorgegebene Grundform eines Prozesses und seiner Schritte; diese wird von Gambio mit dem Shop geliefert und erfüllt die von Gambio vorgesehene Aufgabe. Durch die bereits erwähnte spezielle Programmierung kann man aber diese Prozesse und die Schritte umdefinierbar machen: man kann sich von dritter Seite davor setzen, dahinter, mitten rein oder man kann sie ergänzen, verändern und modifizieren. Diese Veränderungsmöglichkeiten finden außerhalb des originalen von Gambio gelieferten Programmcodes statt und werden über die eingebaute Überladungsmechanik im Moment der Programmausführung hinzugezogen: ergänzend oder ersetzend. Die Originaldatei von Gambio bleibt hierbei unberührt und unverändert und dennoch erreicht man mit diesem Konstrukt eine Modifikation der Prozesse.

Voraussetzung hierfür ist die erwähnte spezielle Programmierung und Gambio entwickelt mit jeder neuen Version neue Bereiche, die diesem speziellen Design folgen. Die Umschreibung ehemals starrer Programme in so modifizierbare Konstrukte nennt man dann „Refactoring“ – also die Neugestaltung alter starrer Programmierungen in die neue Form mit der Möglichkeit diese zur Laufzeit zu verändern oder zu ergänzen. Ebenso implementiert Gambio auch ganz neue Bereiche, die direkt diesem Design entsprechen und von Anfang an Modifikationsmöglichkeiten ohne Veränderungen des Original-Codes ermöglichen.

Die Änderungsmöglichkeiten erstrecken sich aber nicht nur auf den Programmcode. So gibt es im Gambio Shop schon lange die Möglichkeit auch Template-Vorlagen „update-sicher“ zu modifizieren, indem man eine Kopie des jeweiligen Originals anfertigt und dieses mit einem geänderten Namen an die Stelle in dasselbe Verzeichnis auf dem Server packt, wo die Original-Datei liegt. Hierbei ergänzt man den Namen um „-USERMOD“ und schon greift eine im Shop verbaute Mechanik: Wann immer eine html (oder Javascript-Datei) angesprochen wird schaut der Shop vorher nach, ob es nicht eine Datei mit der o. g. Namenserweiterung gibt; ist das der Fall, dann wird diese Datei anstelle des Originals verwendet – und diese  Datei beinhaltet dann die gewünschten Änderungen, während die Originaldatei unverändert geblieben ist, so wie sie einst von Gambio geliefert wurde.

Diese beiden Mechaniken haben eines gemeinsam: die jeweiligen Original-Dateien bleiben unverändert und wenn Gambio ein Update herausgibt, dann sind hier nur die Originalversionen der jeweiligen Dateien betroffen. Gambio ändert KEINE Usermods und keine Überladungen, sondern kümmert sich nur um die jeweiligen Originaldateien.

So bleiben die Modifikationen erhalten während die Originaldateien von Gambio gepflegt und ggf. im Rahmen von Updates ausgetauscht werden.

Nun kommt aber das große ABER:
Das ganze funktioniert nur solange wie von Gambio keine elementaren oder strukturellen Veränderungen geliefert werden und die gemachten Modifikationen auch nach einem Update immer noch zum Rest des (aktualisierten) Shops passen. Sobald Gambio aber notwendigerweise grundlegende Prozesse neu designed, ersetzt oder auch „Refactoring“ durchführt ist das Risiko wieder da, dass die im Shop vorhandenen Modifikationen nicht mehr passen. Dann hat die „Updatesicherheit“ ein jähres Ende.

Und dennoch ist die separate Unterbringung von  Modifikationen durch „update-sichere“ Programmierung ein entscheidender Vorteil, denn die Modifikationen stehen nach einem Update unverändert zur Verfügung und sind leicht lokalisierbar – und können gezielt überarbeitet werden, damit sie dann wieder zum (neuen) Shop passen.

„Update-sicher“ programmierte Änderungen dezimieren also gravierend das Risiko von Verlusten bei Shopaktualisierungen, da sie separat und außerhalb der Originaldateien eingebaut sind und häufig auch nach Updates des Shops noch funktionieren. Aber bei strukturellen Änderungen besteht auch hier das Risiko, dass sie nachgearbeitet und wieder kompatibel gemacht werden müssen zu dem Shop, der nach dem Shop-Update vorliegt.

Noch ein Tipp: Lassen Sie Modifikationen an Ihrem Shopsystem grundsätzlich und im eigenen Interesse „update-sicher“ vornehmen, auch wenn es auch hierbei ein gewisses Risiko von späteren Anpassungen bei strukturellen Änderungen gibt. Einbauten in Original-Dateien sollten nur dort erfolgen, wo seitens Gambio (noch) keine update-sichere Modifikation möglich ist. Es gibt nichts teureres, als die Pflege von Modifikationen in Original-Dateien, denn jedes Shop-Update richtet hier fast automatisch erheblichen Schaden an, weil die in den Originalen eingebauten Veränderungen verloren gehen. Der Shop hat enorme Möglichkeiten für den update-sicheren Einbau und diese sollten genutzt werden. Wenn wider besseren Wissens und trotz dieser Möglichkeiten etwas in Original-Dateien eingebaut wird obwohl es andere Möglichkeiten gibt, dann muss man unterstellen dass hierdurch Folgeaufträge generiert werden sollen: denn nach jedem Update muss der unvermeidbare Schaden korrigiert und die Lösung neu eingebaut werden.

 

XYCONS-Module und die „Updatesicherheit“

Unsere Module sind „update-sicher“ entwickelt und nutzen alle Möglichkeiten die Gambio im Shopsystem hierfür bietet. Das heißt, dass der gesamte veränderte bzw. zusätzliche Programm- und HTML-Code in separaten Dateien abgelegt ist. Diese werden über das USERMOD-Konzept des Shops durch z. B. Klassenüberladungen zur Laufzeit eingebunden.

Das Konzept verfolgt den Ansatz, dass ein Shop-Update gegenüber den Modulen keinen Schaden anrichten kann und vor allem, dass das Modul erhalten bleibt, weil die durchgeführten Änderungen nicht in den Originaldateien des Shops eingearbeitet sondern separat gehalten sind. Dennoch müssen aber auch bei einem Update ggfl. die Inhalte der Moduldateien angepasst werden, damit die eigentlich aus den Originaldateien stammenden Anteile zur jeweiligen Shopversion aktuell gehalten werden, denn diese könnten durch das Update selbst verändert worden sein.

Ein Servicepack aktualisiert lediglich die Original-Dateien des Shops und diese Änderungen müssen dann ggf. auch in die „Parallelwelt“ des Moduls eingepflegt werden. Aber das Modul selbst geht nicht mehr automatisch verloren und müsste in die durch das Shop-Update veränderten Dateien neu eingebaut werden.