Architektur

Unsere Module setzen auf dem etablierten LAMP Stack auf

  1. Linux
  2. Apache Web Server
  3. MySQL
  4. PHP

Diese Architektur ist kostengünstig, schnell und praktisch überall vorhanden.

 

 

Architektur
 
Entstehung

Unser modulares Konzept wurde 2018 implementiert um die Anforderungen der Firma Röhm GmbH, einer Evonik Tochter, zu erfüllen. Röhm verfolgt das Konzept des 'Continuous Improvement', also der ständigen prozessualen Verbesserungen, so dass in kurzen Abständen neue Funktionen umgesetzt werden. Um nicht jedes Mal erneut die aufwändigen QA-Maßnahmen für die komplette Lösung durchführen zu müssen, werden für die Neuerungen kleine, leicht zu testende Module implementiert.

Um den Anwendern eine übersichtliche Oberfläche anzubieten, integriert unser Portal die Module in eine gemeinsam verwaltbare Oberfläche.

Warum PHP

PHP hat sich als Standard für Web-Anwendungen aus gutem Grund durchgesetzt. Blockbuster Anwendungen wie WordPress und SalesForce bauen auf PDF auf. Der Großteil des Web-Traffics ist inzwischen PHP basiert.

Sicherheit von PHP

Eine absolute Sicherheit vor Hackerangriffen kann es nicht geben. Leider.

Vergleicht man PHP zahlenmäßig mit Java, so bewegen sich laut einer Analyse von WhiteHead, die bekannt gewordene Sicherheitslücken statistisch analysiert haben, beide in einem ähnlichen Bereich.

Viel entscheidender ist jedoch, wie lange es dauert eine Sicherheitslücke zu schließen. Betrachtet man die Abläufe bei der bekannten log4j Sicherheitslücke im Dez. 2021, so führte diese nach Einschätzung des BSI zu einer extrem kritischen Bedrohungslage. Obwohl sofort nach Bekanntwerden der Sicherheitslücke ein Fix bereitstand, vergingen Wochen, bis diese auf allen Servern behoben war (Quelle: BSI). Ursache war, dass die Softwarelieferanten für eine neue Version typischerweise Wochen brauchen, um eine neue Library einzubauen, zu testen und zu deployen.

Bei PHP wird ein solcher Fix vom RZ-Betreiber umgehend eingespielt.

PHP hat sich mit der Version 7 als professionelle IT-Basis etabliert. Spätestens seit der Version 8 wurden auch die letzten Schwachstellen aussortiert - doch - absolute Sicherheit kann es nicht geben. Die Entwicklung muss stets am Ball bleiben.

Die Datenbank

Für mySQL braucht man keine Lanze mehr zu brechen. Kostenlos, schnell, zuverlässig, etabliert.

Bei vielen unserer Kunden ist jedoch MS-SQL / SQL-Server oder Oracle im Einsatz. Kein Problem. Wir unterstützen auch diese und viele weitere Datenbanken.

Rechtesystem

Ein Rechtesystem sorgt dafür, dass für jeden Datensatz und jede Anwendungsseite genau eingestellt werden kann, wer diese Daten lesen, erstellen oder ändern darf. Dabei werden sowohl die Account-Informationen (Benutzername, Gruppenzugehörigkeit) als auch die Bezugsinformationen (Ersteller, Eigentümer, Eigentümergruppe) verwendet.

Zur Vereinfachung werden sowohl die Benutzer als auch die Zielobjekte gruppiert. Die Rechtezuordnung erfolgt per Benutzergruppe auf Zielgruppe.

Performance von PHP

Kann eine interpretierte Skript-Sprache so schnell sein wie eine compilierte Software?

Natürlich nicht - denkt man. Doch PHP-Kommandos werden direkt an bereits compilierte Funktionen übergeben. Die Rechenzeit zum Interpretieren ist marginal. Zudem compilieren moderne PHP-Server den PHP-Code schon vor.

Den Java Anwendungen wird hingegen ihr größter Vorteil, die Wiederverendung von Programmiercode, zunehmen zu Verhängnis. Durch die spielerische Leichtigkeit, mit der sich Funktionalitäten von einer riesigen GIT-Programmwelt kostenlos holen lassen, wächst die Library-Pyramide in schwindelnde Höhen. Und damit auch die Wahrscheinlichkeit, dass man sich damit irgendein Problem, einen Fehler, Wurm oder gar Sicherheitslücke eingefangen hat. Und irgendwann sammeln sich auch die Microzeiten zur Parameterübergabe zu Sekunden oder Minuten an.

Bei mir ist einmal die Installation einer Java-Anwendung auf einem Windowssystem gescheitert, weil die maximale Verzeichnistiefe überschritten war. 255 Ebenen! Das konnte relativ schnell behoben werden aber zeigt auf welchem Niveau sich diese Libraryverschachtelungen bewegen. Pfadangaben groß wie ganze PHP-Programme.