Wolfgang Roller, Ehningen
Hier sollte eigentlich ein Bild angezeigt werden.

Was kann man daraus für ein Design ableiten?

Eine Identität für die virtuelle Welt.

Wenn Sie nicht gerade an einer multiplen Persönlichkeitsstörung leiden, dann empfinden Sie sich als ein Mensch, als eine Einheit. Und somit brauchen Sie für den Aufenthalt in der virtuellen Welt irgendwas, was Sie dort angemessen repräsentiert. Und da diese Repräsentation, diese Identität, möglichst fälschungssicher und eindeutig sein soll, reicht eine rein "software-mäßige" Repräsentation nicht aus. Es muß ein Stück möglichst fälschungssichere Hardware mit dabei sein. Da ein Stück Hardware ohne weitere Sicherung im Falle eines Diebstahles von anderen leicht zweckentfremdet werden kann, muß eine zusätzliche Sicherung in Form eines Geheimnisses, wie einer PIN, oder durch die Überprüfung eines eindeutigen Körpermerkmales wie ein Fingerabdruck, ein Iris-Scan oder eine Gesichtserkennung, erfolgen.

Seit längerem gibt es sogeannte Security-Tokens. Sie sind jedoch nicht standardmäßig Teil der heutigen Systeme. Und ihre Funktion sollte erweitert werden. Denn auf ihnen sollte auch die Konfiguration des Systems gespeichert werden.

Sie dienen zwar der Sicherheit, aber im Zusammenhang mit dem BrainExtender-System, nenne ich ihn "Identity-Token".

1. Identifizierte Komponente: Identity-Token zur Identifizierung und Authentifizierung und Speicherung der Konfiguration.

Ein Gehirn, also auch nur eine Erweiterung.

Machen Sie sich Gedanken wo Ihre "Daten" im Gehirn abgelegt werden, bzw. in welchem Gehirn?

Genauso soll es mit den Objekten und Klassen im BrainExtender sein. Für Sie als User gibt es nur einen Speicher. Intern kann das viel komplexer aussehen. Vom Menschen hergestellte Technik kann ausfallen. Darum ist Redundanz notwendig. Sich darum zu kümmern ist jedoch die Aufgabe des Systems.

Halten wir fest: Es gibt von außen gesehen einen Speicher.

2. Identifizierte Komponente: Ein Objekte-Speicher.

Jede Menge der verschiedenartigsten Ein-/Ausgabe-Geräte, IoT-Geräte und andere Sensoren, Messgeräte etc.

Im Zeitalter des Smart-Homes gibt es neben den klassischen Geräten wie Bildschirm, Tastatur und Maus jede Menge anderer Geräte, die an einen BrainExtender, angeschlossen werden sollen.

Es sind zum einen die Bildschirme, die uns in die virtuelle Welt blicken lassen und zum anderen die ganzen Aktoren (wie Tastatur, Maus etc.) mit deren Hilfe wir die Objekte der virtuellen Welt bearbeiten.

Neu hinzukommen jetzt viele Geräte die Daten liefern und/oder Daten zur Steuerung bekommen.

3. Identifizierte Komponenten: Ein-/Ausgabe-Geräte und viele anderen Daten-Quellen und -Senken, wie Nachrichtentechniker sagen würden.

Verarbeitungs-Prozessoren / Verarbeitungs-Einheiten

Wir sollten hier zuerst einmal darüber nachdenken was denn Verarbeitung bedeutet. In den bisher beschriebenen Komponenten kommen Prozessoren zum Einsatz. Aber es sind Spezialisten. Für die grafische Ausgabe sind die Prozessoren eben auf diese Ausgabe getrimmt, während die in der Speicher-Einheit auf das Speichern und das Ausliefern der Objekte getrimmt sind.

Aber was bedeutet "Verarbeitung"?

Verarbeiten bedeutet z.B. nicht dass, wenn ein User entweder über ein Terminal oder eine graphische Benutzeroberfläche neue Objekte anlegt oder bestehende Objekte ändert.

Das ist zwar Datenverarbeitung, aber aus der Sicht eines Prozessors eine sehr langsame Verarbeitung. Dazu braucht es keine schnellen Prozessoren.

Es ist auch keine Verarbeitung, wenn auf einem Bildschirm ein in Echtzeit gerendertes Objekt angezeigt wird. Dafür braucht es zwar ordentlich Rechenleistung, aber die übernimmt der Prozessor, der für die Darstellung zuständig ist.

Den Objekte-Speicher kann man als eine Objekt-Datenbank betrachten. Und so wie bei den SQL-Datenbanken Manipulationen via SQL-Anweisungen vorgenommen werden können, ist dies beim BrainExtender ebenfalls möglich. D.h. der Prozessor des Objekte-Speichers kann Anweisungen ausführen die äquivalent einer SQL-Update- Anweisung funktionieren. Nur das kein Tabellen-Name sondern stattdessen ein Klassen-Name oder der Name eines Containers angegeben wird. Und die Manipulation beschränkt sich über die Änderung einer oder mehrerer Objekt-Eigenschaften mittels dem Aufruf von Setter-Methoden.

Verarbeitung ist ...

... wenn Objekte durch abarbeiten von Skripten und Programmen manipuliert werden. Diese Skripte und Programme brauchen eine Hardware auf der sie laufen können. Und beim BrainExtender laufen die auf einer in einer dafür vorgesehenen Verarbeitungs-Einheit bestehend aus einem Prozessor und RAM.

4. Identifizierte Komponenten: Verarbeitungs-Einheiten zum Ausführen von Skripten und Programmen.

Zwischenstand: Vier identifizierte unterschiedliche Einheiten.

Bis jetzt haben wir vier Einheiten eines BrainExtenders spezifiziert.

Bild 1: Die bisher festgestellten Komponenten eines BrainExtenders

Was fehlt ist die Verbindung zwischen den vier Einheiten. Würde man sie in einem Gehäuse, z.B. in Form eines Laptops, unterbringen, könnte man die Einheiten 2 - 4 über einen Bus verbinden.

Mir schwebt allerdings mehr Flexibilität vor. Deshalb trenne ich die Einheiten in einem ersten Schritt in zwei Gruppen. Nämlich welche der Einheiten einem ganz bestimmten Benutzer zugeordnet sind und in die, die nicht Benutzer-spezifisch sind.

Bild 2: Benutzer-spezifische und -unspezifische Einheiten.

In einem zweiten Schritt kann man sich dann fragen, wo sich die Einheiten örtlich befinden sollten. Dabei ist klar, dass diejenigen Geräte, deren Zweck die Bedienung des Systems ist, sich beim Benutzer befinden sollten. Aber die Objektespeicher- und die Verarbeitungs-Einheit(en) müssen sich dank schneller Netzwerk-Technik nicht unbedingt im selben Raum befinden. Die könnten auch in einem Rechenzentrum hunderte Kilometer entfernt stehen.

Bild 3: Unterscheidung nach der Örtlichkeit.

Nach diesen Vorüberlegungen geht es jetzt weiter mit den Verbindungen unter den Einheiten.

Die Verbindung zwischen den Einheiten.

Ich möchte mich hier noch gar nicht exakt festlegen wie die Einheiten miteinander verbunden werden sollen. Klar ist dass es sich um eine Stern-Topologie handeln soll.

Bild 4: Verbindung der drei Grund-Einheiten untereinander über eine Stern-Topologie.

Wie die Verbindungen untereinander hardwaremäßig ausgeführt werden steht noch nicht fest. Momantan denkbar ist eine eigene Entwicklung oder aber eine bestehende Technologie wie LAN, WLAN und Bluetooth.

Aber bevor ich weiter darauf eingehe, schauen wir uns mal an, was denn für Daten übertragen werden sollen.

Als Erstes haben wir den "Objekte-Zoo" in der Objektespeicher-Einheit. Angenommen so ein BrainExtender wird gestartet, dann holt sich der Benutzer, sagen wir mal ein, zwei Objekte auf den Bildschirm. Das bedeutet, dass die Objekte von der Objektespeicher-Einheit zur Ein-/Ausgabe-Einheit geschickt werden. Da die Objekte dargestellt werden sollen, ist es notwendig, dass Meta-Daten hinsichtlich der Anzeige mitgeschickt werden.

Wir haben bisher noch nicht über ein Rechte-Modell gesprochen. Aber es ist offensichtlich, dass es ein Rechte-Modell geben wird. Folglich werden weitere Metadaten hinsichtlich der Rechte mitgesendet.

Bild 5: Objektdaten von der Objektespeicher-Einheit zu einer Ein-/Ausgabe-Einheit.

Der Anwender manipuliert das Objekt auf irgendeine Art und Weise und, wenn er sagt, dass diese Änderungen jetzt gespeichert werden sollen, so fließen Objektdaten zurück an die Objektespeicher-Einheit. D.h. hier werden ausschließlich die geänderten Daten zurück geschickt.

Eventuell kann es sein, dass ein Objekt gelöscht wird. Das erfolgt durch einen Löschbefehl. Auch beim Erzeugen von Objekten handelt sich um Objektdaten, die hin und her übertragen werden.

Bild 6: Geänderte Objektdaten von einer Ein-/Ausgabe-Einheit werden zurück zur Objektespeicher-Einheit geschickt.

Genauso verhält es sich auch, wenn eine oder mehrere Verarbeitungs-Einheiten mitbeteiligt sind. Auch Sie händeln Objekte.

Das gilt auch für Drucker. In einem BrainExtender-Verbund ist ein Drucker ein Ausgabe-Gerät das Objekte geschickt bekommt und deren Darstellung selbstständig bewältigt. Ein BrainExtender-Drucker hat einen Prozessor der ganz ähnlich wie ein Graphik-Prozessor arbeitet. Mit Hilfe der Metadaten für die Anzeige erstellt er seine Seiten.

Nicht wie in Windows-Welt, in der es die GDI-Drucker ohne eigene Rechenleistung gibt und der Rechner-Prozessor die Daten für's Druckwerk berechnet und für jede neue Betriebssystem-Version ein angpaßter Druckertreiber vom Drucker-Hersteller zur Verfügung gestellt werden muß, damit der Drucker weiterhin seine Dienste tun kann.

Im Übrigen unterscheiden sich die Postscript-Druckern auch nicht so gravierend davon. Dort sendet der verabeitende Prozessor Postscript-Befehle an den Drucker, der diese mit Hilfe eines Prozessors dann auf das Papier umsetzt.

Anders beim BrainExtender. Dort unterscheiden sich die Daten, die an einen Bildschirm geschickt werden nicht großartig von denen an einen Drucker. Es kann lediglich bestimmte Metadaten speziell für die Ausgabe auf einem Bildschirm geben und andere Metadaten speziell für Drucker. (Die jeweilige Geräte-Art ignoriert die Metadaten für die jeweils andere Art, so fern sie diese überhaupt gesendet bekommt.)
Die Ausgabe-Einheiten sind also komplett alleine für die Ausgabe verantwortlich. Jede erzeugt nach ihren eigenen ganz speziellen Ausgabe-Fähigkeiten aus dem Objekt-Modell eine Ausgabe. Die Verarbeitungs-Einheiten sind von der Aufgabe der Ausgabe voll entkoppelt und übernehmen absolut keine Funktion bei der Ausgabe.

Was wird außer Objekt-Daten noch übertragen?

Tastaturen, Mäuse, Kameras und IoT-Geräte und andere Geräte kennen keine Objekte. Sie erhalten entweder Steuerdaten oder senden Steuerdaten, Bilddaten oder Meßdaten. Von der Größe und vom Format her würde man in Java sagen es sind Daten vom Typ der primitiven Datentypen. Also z.B. vom Typ char, int, long oder double. Je nach Gerät werden sie spezifisch interpretiert. Für die Übertragung spielt das jedoch keine Rolle.
Halten wir also fest: Zwischen den Einheiten werden Daten übertragen. Dazu benötigen wir zwei unterschiedliche Protokolle. Eines für die Übertragung von Objekt-Daten und ein zweites für die Übertragung von einfacheren Daten wie Meß- und Steuerdaten.

Dann ist es so, dass wir es uns heutzutage aus Sicherheitsgründen nicht mehr leisten können Daten unverschlüsselt über das öffentliche Netz zu übertragen. Folglich müssen die Daten nicht nur übertragen werden, sondern vor dem Senden kodiert und nach dem Empfangen dekodiert werden.

5. Identifizierte Komponente: Eine Übertragungs- und Kodier-/Dekodier-Einheit.

Etwas fehlt noch.

Als erste identifizierte Einheit habe ich den Identity-Token aufgeführt. Was noch fehlt ist sein dazu passendes Gegenstück. Wo soll er ein eingesteckt werden? In welchen Slot und wer kommuniziert mit ihm?

Was noch fehlt ist eine Einheit die den BrainExtender definiert und seine Teile/Einheiten sozusagen zusammen hält. Und sich die Konfiguration merkt. D.h. ich erweitere die bereits als 1. identifizierte Komponente Identity-Token um eine Identitäts- und Konfigurations-Einheit.

6. Identifizierte Komponente: Eine Einheit die für die Identifikation und Sicherheit zuständig ist.

Zusammenlegung der 5. Einheit mit der 6.

Ausarbeitung hat bis jetzt sechs verschiedene Einheiten/Units oder Moduln ergeben, aus denen ein BrainExtender aufgebaut werden kann.

Diese Anzahl möcht ich nun wieder reduzieren. Und zwar in dem ich die Einheiten "Übertragungs- und Kodier-/Dekodier-Einheit" und die "Einheit die für die Identifikation und Sicherheit" zu einer sogenannten Sicherheits- und Verbindungs-Einheit zusammenfasse. Auf englisch Security- and Connection-Unit. Also S&C-Unit oder auch S&C-Einheit.

Desweiteren nehme ich auch den Identity-Token aus der Begrifflichkeit der Einheiten heraus. Der oder die Identity-Tokens sind ein Bestandteil der S&C-Unit.

Die Aufgaben dieser S&C-Unit

Im Vergleich zu den anderen Einheiten übernimmt die S&C-Unit relativ viel unterschiedliche Aufgaben:
  • Überprüft die Identität der Benutzer.
  • Verbindet die die übrigen Einheiten miteinander.
  • Ist zuständig für die Kommunikation der Einheiten untereinander. Fungiert als Switch.
  • Zusammen mit dem Identity-Token speichert und verwaltet sie die Konfiguration des Systems.
  • Erzeugen und Duplizieren von Identity-Token.
  • Sie ist für die Verschlüsselung des Datenverkehrs nach außen zuständig.
  • Sie fungiert als Firewall.
  • Sie übernimmt das Monitoring der Kommunikation.
  • Sie übernimmt die Verwaltung der anderen Einheiten des BrainExtenders.
Eine Bemerkung zum letzten Punkt:

Man sollte sich das so vorstellen, dass bei der S&C-Unit die anderen Units registriert werden. Mit der Registratur gehören sie zum Verbund, zu diesem BrainExtender. Nun ist so, dass manche Einheiten neutral und nicht benutzerspezifisch sind. Ich als Eigentümer kann nach belieben eine neutrale Einheit auch zur temporären Benutzung durch andere freigeben.

Zusammenfassung

Ein BrainExtender setzt sich aus vier verschiedenen Einheiten zusammen. Jede Einheit ist auf eine bestimmte Aufgabe spezialisiert. Eine Ausnahme bildet die S&C-Unit, deren verschiedene Aufgaben aber unter den beiden Stichworten Sicherheit & Konnektivität zusammen gefaßt werden können.

Der Identity-Token ist im eigentlichen Sinne ein Bestandteil der S&C-Unit. Da er jedoch den Benutzer innerhalb der virtuellen Welt repräsentiert und er sich stets im Besitz des Benutzers befinden sollte, wird er immer wieder mal als separates Element dargestellt oder bezeichnet. Stellt aber keine eigenständige Einheit dar.

Bild 7: Die verschiedenen Typen von Einheiten eines BrainExtenders.

  1. S&C-Unit inkl. Identity-Token
  2. Objects-Storage-Unit
  3. In-/Output-Units
  4. Processing-Unit
oder alternativ dazu die deutschen Ausdrücke:
  1. S&C-Einheit inkl. Identity-Token (Soll auch im Deutschen S&C heißen und nicht S&V)
  2. Objektespeicher-Einheit
  3. Ein-/Ausgabe-Einheiten
  4. Verarbeitungs-Einheit
Trenner für's vert. Verschieben bei Touchscreens