Kategorien
Cloud Infrastruktur Wunschthema

Zentrale, dezentrale und verteilte Systeme

Bei der Diskussion um Cloud Computing, Blockchain basierten Technologien, Client-Server Ansätzen und „klassischen“ Computern spielen oft die Begriffe zentral, dezentral und verteilt eine Rolle.

In diesem Artikel versuche ich diese Begriffe anhand von ein paar Beispielen zu erläutern um eine Einordnung zu erleichtern.

Zentrales System

Ein zentrales System hat eine Zentrale. In dieser Zentrale wird festgelegt, wie die einzelnen Akteure innerhalb des Systems agieren. Das klassische Beispiel für ein zentrales System ist eine Armee. Es gibt den Chef, der auf der Basis von Informationen seiner Stäbe, Befehle gibt. Diese Befehle werden von den jeweils niedrigeren Rängen ausgeführt. Die Befehlsketten und die Hierarchien sind klar definiert.

So ein zentrales System hat den Vorteil, dass Befehle schnell und weitgehend ohne Rückfragen ausgeführt werden. Das ermöglicht schnelles Handeln.

Zentrale Systeme sind angreifbar in besagter Zentrale. Fällt der Oberbefehlshaber aus, gibt keiner mehr Befehle und das System kommt zum Stillstand.

Ein anschauliches Beispiel aus den Anfängen der Kommunikation über das Telefon stellt ein Problem zentraler Systeme gut dar.
1887 wurde ein Turm in Stockholm gebaut um jedem der 4,832 Anschlüsse eine Leitung aus der Zentrale legen zu können.

Phone Tower - Stockholm 1887
Phone Tower – Stockholm 1887

Quelle: When the telephone lines darkened the sun in Stockholm

Ein anderes Beispiel sind Währungen. Du und ich glauben daran, dass ein Schweizer Franken, ein Euro und ein US Dollar eine gewisse Menge Kaufkraft bieten und von unserem Gegenüber als Zahlungsmittel akzeptiert werden. Die Garantie dafür übernimmt der Herausgeber der Währung, die jeweilige Zentralbank. Sie legt als zentrale Stelle die vielen Parameter fest, um die Währung Preis- und Geldwertstabil zu halten. Durch ihre Entscheidungen wird „Geld erzeugt“ und „Geld vernichtet“. Wenn eine Zentralbank etwas ankündigt oder entscheidet, wird das sofort im Markt umgesetzt.

Ob es erfolgreich ist oder nicht, ist eine andere Frage, wie bei der Armee.

Dezentrale Systeme

Ein dezentrales System hat keine Zentrale und besteht aus mehr oder weniger eigenständigen Elementen innerhalb eines Netzes. Das Internet an sich und, vielleicht etwas greifbarer, der E-Mail Verkehr sind Beispiele für dezentrale Systeme. Da es um Nachrichten geht, die aus Zeichen bestehen, ist es möglich, die Nachricht in beliebig viele Pakete zu verpacken, mit einer Adresse zu versehen, auf den Weg zu schicken und beim Empfänger wieder zu einer Nachricht zusammen zu bauen.

Damit die einzelnen Teile des Systems wissen, was sie tun sollen, gibt es  allgemeine Anweisungen, die Protokolle. Bevor die erste E-Mail versendet wurde, einigte man sich auf die Spielregeln des E-Mail Versands. Das „Einfache E-Mail-Transportprotokoll“ (SMTP) beschreibt wie eine E-Mail theoretisch versendet werden soll. Ausser dem E-Mail Protokoll gibt es dutzende weitere Protokolle, die jeden denkbaren Schritt beschreiben. Wurde ein Schritt vergessen oder falsch beschrieben, muss neu diskutiert und das Protokoll angepasst werden.

Weder das „erfinden“, noch die Implementierung, also die Umsetzung des Protokolls in Software ist dabei verbindlich geregelt. Jeder, der Lust und Zeit hat, kann einen Baustein des Systems, beispielsweise einen E-Mail Client schreiben, zum freien Download anbieten oder natürlich auch verkaufen. Die Qualität der Software ist messbar anhand der möglichst kompletten Implementierung des Protokolls. Natürlich spielt die Benutzerfreundlichkeit auch eine Rolle, grundsätzlich muss die Software aber erstmal funktionieren. Das tut sie, wenn sie das Protokoll korrekt implementiert.

Der Vorteil eines dezentrales Systems ist die Unabhängigkeit seiner Bestandteile. Wenn weniger E-Mail „Bestandteile“ (Server) vorhanden sind, werden trotzdem noch E-Mails verschickt, es dauert nur länger, bis sie weitergeleitet werden und letztlich ankommen.

Das wohl gerade bekannteste dezentrale System ist Bitcoin, ein dezentrales Zahlungssystem. Im Jahr 2009 wurde das Bitcoin Protokoll beschrieben, das nach und nach von unterschiedlichen Akteuren implementiert wird. Wer dieses Protokoll schrieb, ist prinzipiell egal, solange es in sich schlüssig ist und tut, was es soll. Ob Bitcoin eine Währung darstellt oder nicht, ob es für die Menschen gut ist oder schlecht, wird sich im Laufe der Implementierung herausstellen (Bitcoin: A Peer-to-Peer Electronic Cash System PDF 184 Kb).

bitcoin - White Paper
bitcoin – White Paper

Verteilte Systeme

Verteilte Systeme versuchen Aufgaben parallel abzuarbeiten. Also beispielsweise anstelle von nur einen Menschen der Sand schaufelt, 1000 Menschen die Sand schaufeln zu beschäftigen. Solche Systeme haben einen gewissen Verwaltungsaufwand, da die 1000 Schaufler ja jeweils eine Schaufel benötigen und auch koordiniert werden müssen.

Die Realität

Wie könnte man eine Armee bezeichnen, in der Oberbefehlshaber seine Befehle als E-Mails verschickt, ein angeheuerter Soldat mit Bitcoin bezahlt wird und tausende Soldaten auf Abruf bereit stehen?

Informationstechnologisch betrachtet sind es mehrere Systeme, die sich für den Betrachter aber als ein System darstellen. Die Armee wäre in diesem Fall also einerseits zentral und andererseits dezentral und irgendwie, bei Bedarf, auch verteilt organisiert.

Wenn man sich in seiner Umgebung umsieht, stellt man schnell fest, dass es überall solche gemischte Systeme gibt. Die Bestandteile sind eher zentral oder eher dezentral und werden bei Bedarf noch mit einem Schuss „verteilt“ versehen.

Genauso verhält es sich auch mit den real existierenden E-Mail Systemen. Firmen wie Google übernehmen heute den Transport von sehr, sehr vielen E-Mails. Intern verarbeitet Google die Informationen verteilt. Trotzdem können du und ich auch einen E-Mail Server aufsetzen, der mit den Google Servern prinzipiell in einem Netz zusammenarbeitet. Dieser Server verschickt dann eine E-Mail an Google und Google leitet sie an den Empfänger weiter.

Beim Bitcoin verhält es sich ähnlich. Du kannst selbst einen Bitcoin Node betreiben, Transaktionen abwickeln und damit Geld verdienen, oder du überlässt es anderen Betreibern, die durch die zusätzliche Verteilung von Aufgaben unter Umständen effektiver sind als du.

Dezentrale Systeme können sehr flexibel sein, da die Anzahl der Akteure variabel ist. Wichtig ist allerdings eine Balance der Bestandteile. Wenn mehr als 50% des Systems von einem Akteur kontrolliert werden, tendiert das System zu einem zentralen Verhalten, weil dieser Akteur meistens auch das Protokoll ein wenig zu seinem Gunsten verändert.

Eine Idee im Bitcoin Protokoll ist die Kette aller Blöcke, die Blockchain. Die Kette enthält alle Transaktionen bis zurück zur ersten Buchung. Weil jeder ein Protokoll erfinden und implementieren kann, gibt es momentan einen Hype um diese Blockchain. Der Hype ist so ähnlich wie beim echten Goldrausch. Die einen schürfen Gold, sie anderen verkaufen den Schürfern die Schaufeln und andere Werkzeuge.

Die Goldschürfer sind momentan die Programmierer und Glücksritter, die dezentral täglich neue Protokolle erfinden und Implementierungen vornehmen. Die Anderen sind die Hardware Hersteller und die Stromerzeuger, die den Schürfern ihre Produkte verkaufen. Sie haben einen eher zentralen Charakter.

Ein neuer Akteur in diesem „Goldrausch“ sind die etablierten und „verteilt“ arbeitenden Cloud Anbieter. Sie bieten „Distributed Ledger Technology“, also verteilte Blockchains an (Microsoft, Oracle, SAP, IBM, Amazon, …).
Dabei läuft eine prinzipiell dezentrale Blockchain Anwendung auf einem zentralen System in der Cloud welches verteilt organisiert ist :).


tl;dr: Systeme sind sehr selten rein zentral, dezentral oder verteilt. Es handelt sich fast immer um gemischte Systeme, bei denen unterschiedliche Akteure unterschiedliche Rollen einnehmen und dem System als Ganzem je nach Zielsetzung einen zentralen, dezentralen und/oder verteilten Charakter geben.

Kategorien
Infrastruktur Server Shared Hosting

RSS – Es gibt nichts besseres!

„Ein RSS-Feed? Das geht gar nicht! Das ist so 2007!“

„Was schlägst du vor?“

„Bau‘ eine Facebook-Page! Die Leute sehen die Updates dann in ihrer Timeline.“

„Aber dann sehen meine Updates vielleicht nur die Hälfte derer, die sie mal geliked haben, oder noch weniger, je nachdem, wie der Facebook Algorithmus gerade eingestellt ist. Außerdem muss jeder ein Facebook Benutzerkonto haben. “

„Dann nimm Twitter: Das zwingt die Leute nicht dazu, sich anzumelden, außerdem wird weniger algorithmisch manipuliert. „

„Auf Twitter bin ich nur eine Meldung unter vielen Katzenfotos, Retweets, Witzen und politischen Meinungen von Berühmtheiten!“

„Die Leute können doch Twitter-Listen nutzen!“

„Kennst du jemanden, der Twitter-Listen nutzt?“

„Nein“

„Twitter ist ein gutes zusätzliches Werbemedium, aber ich möchte nicht, dass es meine Hauptplattform ist. Das wäre ja so, als ob das Zeitschriftenabonnement in der Werbepost versteckt wird“

„Mach‘ doch einen E-Mail-Newsletter! Mit so einem schicken PopUp Fenster zum Eintragen der E-Mail Adresse. Das funktioniert total gut!“

„Es gibt wirklich genug SPAM E-Mails auf der Welt!“

„Aber es funktioniert! Jeder hat E-Mail, und die meisten Leute erhalten sogar Benachrichtigungen auf ihrem Smartphone, wenn sie eine E-Mail erhalten! Kein Algorithmus pfuscht da rein und keine E-Mail geht verloren! „

Kategorien
Webdesign Wunschthema

Gestaltung mit CSS Grids

Alle Websites bestehen aus Inhaltselementen, die auf-, unter- und nebeneinander verteilt und manchmal auch übereinander gestapelt werden. Innerhalb dieser Elemente befinden sich Texte, Bilder, Videos, Graphiken und Fotos. Ob du diese Elemente Kästen, Kisten, Boxen oder Tabellen nennst, ist egal. So grundsätzlich geht es hier um einen Plan (Layout, Struktur) und die sehr grundsätzliche Gestaltung eine Site. Solche Pläne sind nicht neu und seit mehr als 500 Jahren bei bedrucktem Papier ebenfalls ein großes Thema. Es geht dabei immer um Rastersysteme, Verhältnisse, Ränder und Abstände. Sind beim Druck auf Papier zumindest die Größe der Ausgabe und die Seitenverhältnisse bekannt, so ist das bei Websites nicht mehr wirklich der Fall. Es ist nicht mehr vorhersehbar auf welchem Endgerät die Website angezeigt wird.

Kategorien
Content Management Systeme Shared Hosting Webdesign

Joomla 4

Joomla 4 kommt! Es wird die nächste Major Version nach der 3.x Reihe sein, die mittlerweile seit 5 Jahren auf dem Markt ist.

In diesen fünf Jahren gab es zwei Ansätze eine neue Major Version zu starten. Der erste war im Jahr 2014 mit dem Icarus Projekt. Die Idee dabei war, die Zukunft von Joomla zu diskutieren und dann gewissermaßen auf einer grünen Wiese neu anzufangen. Der Ansatz endete in einer unübersichtlichen Gemengelage aus unterschiedlichen Interessen und Ideen.

Der nächste Versuch ab dem Jahr 2015 nannte sich „Pythagoras“ oder Joomla X und hatte das Ziel, die existierende Code Basis schrittweise zu modernisieren und dann ein 1-Klick Update auf diese neue Version zu ermöglichen (Joomla! X – Niels Braczek – JUG Fulda).


Schritt 2 - Joomla X
Schritt 2 – Joomla X

Der Ansatz klingt gut, ist auch sinnvoll, dauert aber natürlich lange und bedarf vieler Ressourcen. An dieser Stelle siegte der Pragmatismus und eine Gruppe begann parallel zu Joomla X mit der Arbeit an Joomla 4, der nächsten Generation. Dabei geht es in erster Linie um die Behebung bekannter Schwachstellen aus dem Joomla 3 Zweig und der schrittweisen Verbesserung des Systems.

In diesem Zusammenhang stellte sich das Team immer wieder die Frage nach der Definition und dem Zweck eines Content Management Systems in der heutigen Zeit, in der sich das Web stark verändert hat, verglichen mit der Zeit, in der Joomla entstanden ist. Damals gab es keine Smartphone Apps, wenig APIs, kein Internet of Things und viel weniger JavaScript. Damals war es möglich, ein System für „alle“ zu bauen. In der heutigen Zeit scheint das nicht mehr möglich zu sein. Drupal beispielsweise wendet sich explizit an Entwickler, WordPress an Enduser. Wer benötigt Joomla? Bisher versuchte Joomla eine Mischung aus allem für jeden zu sein. Für Joomla 4 wurde nun „Leute die Websites bauen!“ als Zielgruppe erkannt. Diese Leute werden Systemintegratoren genannt.

Joomla wird immer noch gern benutzt, weil es eine modulare Struktur in den Erweiterungen hat, die auch die Interaktion zwischen Erweiterungen ermöglicht. Gerade diese Interaktion ist in Systemen wie WordPress oftmals schwer. Das Joomla Core Projekt sieht sich selbst als kleinste gemeinsame Basis für die Installation von Erweiterungen und bietet sich daher für Projekte an, die komplizierter sind als ein Blog, aber nicht so kompliziert wie ein völlig individualisiertes System.

Joomla 4 soll einen einfacheren Installer erhalten und die Administrationsoberfläche soll benutzerfreundlicher werden. Der völlig veraltete Media Manager wird komplett neu geschrieben. Einfache Bildbearbeitung und die Speicherung der Dateien in einer Cloud werden möglich sein. Das Plugin System wird radikal vereinfacht. Suchmaschinenfreundlichkeit und Barrierefreiheit, sowie das Bootstrap Framework, werden jeweils auf den neuesten Stand gebracht. Das Layout soll in Joomla 4 in erster Line mit CSS Grids angepasst werden können. Web Components und Shadow DOM sind zwei weitere Features, die Front End Anpassungen vereinfachen sollen (siehe auch Web Components: Ist Shadow DOM die Rettung aus dem CSS-Wildwuchs?).Unnötiger Quellcode wird entfernt, neuer Code wird einfacher und eindeutig dokumentiert werden. Das Joomla Framework wird genutzt um automatisierte Tests zu ermöglichen. Webservices sollen die Möglichkeiten von Komponenten erweitern.

Die Migration von 3.x auf 4 soll bis auf evtl. Bootstrap Anpassungen in individualisierten Templates problemlos sein.

Das hört sich alles gut an und es gibt sogar schon eine Alpha Version von Joomla 4. Diese Version soll ein Gefühl für die neuen Ideen geben und zu Feedback anregen. Im Laufe des Jahres 2018 soll Joomla 4 in der stabilen Version veröffentlicht werden.

Joomla4 Alpha – ausprobiert

Der Installer ist tatsächlich einfacher und und das Backend wirkt sehr viel aufgeräumter!

Joomla 4 Alpha - Backend
Joomla 4 Alpha – Backend

Der Media Manager ist bereits beeindruckend und bietet auch schon Möglichkeiten der Bildbearbeitung, hier die Beschneidung von Bildern …

Joomla 4 Alpha - Media Manager
Joomla 4 Alpha – Media Manager

Das System läuft erstaunlich stabil, ist aber noch NICHT für einen produktiven Einsatz gedacht.

Links


tl;dr: Joomla 4 macht vieles besser und erscheint in der zweiten Jahreshälfte 2018!