ksi
consulting

Technik & Standards

Systemarchitektur des Drupal CMS

Drupal ist auf aktuellem Stand der Software­entwicklung und zeichnet sich durch eine sehr saubere System­architektur aus. Einheit­liche, bewährte Methoden und Techniken eines zukunfts­weisenden Software­engineering sichern eine hohe Qualität.

Die Vorteile, die sich daraus ergeben, sind:

  • Hohe Sicherheit (Datensicherheit und Informations­sicherheit) und Zuverlässig­keit
  • Zukunftssicherheit, da schnell und leicht auf Ent­wicklungen reagiert werden kann
  • Gute Erweiterbarkeit und Wartbarkeit (Pflege der Anwendung)
  • Hohe Qualität und Kompatibilität von Erwei­terungen (Module) unter­einander.

Durch die Unterstützung aktueller und kommender Standards und Schnitt­stellen ermöglicht Drupal:

  • Eine hohe Funktionalität
  • Neues flexibles Web-Design
  • Hohen Komfort für Anwender und Redakteure
  • Vielfältige Integrationsmöglichkeit mit anderen DV-Systemen.

System­­­­architektur

In der ingenieur­­mäßigen Software­­­ent­wicklung ist es gute Praxis, Methoden und Techniken anzu­wenden, die eine hohe Qualität der Soft­ware auf dem Stand der Technik gewähr­leisten. Drupal ist ein System mit einer sauber konstru­ierten und von Version zu Version aktuali­sierten System­architektur, bei dem durch­gängig diese Prinzi­pien verwirk­licht sind:

  • Strikte Trennung der Programm­logik für Benutzer­schnitt­stelle, Verar­beitung (Steue­rung) und Daten­modell (Inhalt) bei nur loser Kopp­lung dieser Kompo­nen­ten unter­einander.
  • Eine sogenannte „Templateengine“ ermög­licht die Tren­nung des Layouts (HTML) von der Pro­gramm­logik der Benut­zer­schnittstelle.
  • Das Entwicklungs­framework mit wieder­verwend­baren Standard­kompo­nenten für immer wieder auftre­tende Auf­gaben (siehe auch rechts).

Vorteile

  • Das Drupal-Kernsystem selbst, sowie die Erwei­terungen (Module) basieren auf dem Drupal-Framework, wodurch ein ein­heit­liches und dennoch hoch­flexib­les Sys­tem ent­stand.
  • Das Sys­tem kann konsis­tent mit Individual­ent­wick­lungen erweitert werden, was gerade für kom­plexere Sys­teme und bei indivi­duellen Anfor­derun­gen hilf­reich ist. Das ermög­licht eine besonders wirt­schaft­liche Ent­wicklung und Pflege bei hoher Qualität.
  • Erwei­terung­en oder Änder­ungen von Funk­tion­ali­tät und Layout sind in der Regel pro­blem­los möglich.
  • Für das CMS und die Erwei­terungs­module werden die hohen, oben genann­ten Qualitäts­ziele erreicht.

Framework

Drupal basiert auf einem sogenannten Framework, dass wesentlich für Standar­disierung, Flexi­bi­lität, und Sicher­heit, sowie für die Quali­tät und den enor­men Erfolg von Drupal war und ist.

  • Ein feinglie­driges, sicheres und flexibles Rechte­system mit Authenti­fizier­ung, Autori­sierung, Sitzungs­manage­ment und den zuge­höri­gen Sicher­heits­funktionen
  • Lokali­sier­ung und Mehr­sprachig­keit (von  Pro­gramm­mel­dun­gen und Daten)
  • Testunter­stützung
  • Benutzer­schnitt­stellen-Generier­ung und -validierung
  • AJAX-Unter­stützung (asyn­chrone Daten­über­tragung zwischen einem Internet-Browser und dem Server)
  • Absta­hieren­de Daten­zugriffs­schicht zur Unter­stützung unter­schied­licher Daten­bank­sys­teme (DBMS)
  • Sicherheits­funktionen
  • Ausgefeilte, abge­stuft steuer­bare Zwischen­spreicherungs­techniken (Caching) für dyna­mische und perfor­mante Anwendungen.

Aufgrund der Mächtig­keit dieses Frameworks bietet es sich nicht nur als Basis für Erwei­terungs­module an; es ist genauso hervor­ragend als Grund­lage für die Entwick­lung individu­eller Anwen­dungen geeignet: Sinn­voller­weise wird heut­zutage in Software­entwicklungs­projekten fast immer ein Framework als Basis benutzt. Da ist es sinnvoll, man kann ein gemein­sames Framework für CMS und Individual­entwicklung­en einsetzen.

Durch das gemein­same Framework im CMS und in indi­vidueller Soft­ware erhält man eine hohe Kompa­tibili­tät, da sich viele Eigen­schaften des CMS-Frame­works vererben.

Web-Standards

Drupal unterstützt u.a. die folgen­den aktuellen Web-Standards:

  • HTML 5, XHTML
  • CSS 3, Sass
  • Ajax mit Java­script-Biblio­thek jQuery
  • XML (für Importe und Exporte)
  • Web-Service-Proto­kolle (SOAP, XML-RPC, JSON, REST, etc.)
  • PHP 5
  • RDF
  • PDF-Ausgabe
  • Integration von Multi­media-Dateien
  • Diverse Daten­austausch­formate.

Vorteile

Das ermöglicht:

  • Hohen Komfort für die Nutzer
  • Angepasste Benutzer­oberfläche für unter­schied­liche Geräte, ins­be­son­dere Unter­stützung von Smart­phones und Tablets mit Touch­screen (iPhone, iPad, Android-Geräte, Windows Phone)
  • Zukunfts­weisen­des responsives Web-Design
  • Semantisches Web (manch­mal auch als Web 3.0 bezeichnet)
  • Barriere­freiheit (gute Nutz­barkeit für Nutzer mit Behin­derungen)
  • Ausgabe­formate nach Bedarf, sowie Importe und Exporte von/zu anderen Systemen
  • Client-Server-Anwen­dungen mit Drupal als Server für ent­fernte Dienste, beispiels­weise Drupal als Daten- und Kommunikations­server für native Smartphone-Apps (Clients)
  • Nutzen bei der Such­maschinen-Opti­mierung.

Administration

System­­anforderungen

  • Betriebssystem: platt­form­un­ab­hängig
  • Webserver: Apache, Microsoft IIS,
  • Datenbank­system: MySQL, MariaDB, Postgres­SQL, SQLite; per Erweiterungs­modul: Oracle, Microsoft SQL Server
  • Programmier­sprache: ab PHP 5.2.

Administration

  • Administrations­menü mit auto­ma­tischer An­passung der Funktiona­lität an die Benutzer­rechte
  • Editier­funktionen direkt auf der jewei­ligen Webseite
  • Individu­ell konfi­gurier­bares benutzer- bzw. rollen­spezi­fisches Dashboard für Ver­waltungs­auf­gaben
  • Updatemanager für auto­ma­tisches Über­prü­fen auf Up­dates und für die Instal­lation von Updates
  • Shell-Tool für alter­native Adminis­tration auf Betriebs­system-Shell-Ebene
    • Updates, Sicherung, Modul­instal­lation mit ein­fachen einzel­nen Komman­dos;
      z.B. ist das Up­date einer kom­pletten Installation (Programm­installation von Kern­system,  allen Modulen und Daten­bank­update) mit einem ein­zigen Befehl mög­lich
    • Möglich­keit zu Erstel­lung von Skripten für Admin­istrations­auf­gaben Pro­ze­duren z.B. Installation
    • Clonen von Instal­lationen (Drupal-Instal­lation und/oder Daten­bank), u.a. geeigent für Sand­box-Tests.
  • Synchroni­sieren von Instal­lationen und/oder der Daten­banken
  • Cron-Job-Verwal­tung mit auto­mati­schem Ein­fügen wieder­kehren­der Auf­gaben der aktiven Module
  • Ausgefeil­tes Rechte­system (siehe geson­derten dazu: Eigen­schaften).