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

Ein neues Netz voller Objekte.

Das bestehende Netz

Bevor ich jetzt zur Beschreibung des neuen Netzes komme, das dadurch entsteht, dass immer mehr neue BrainExtender online gehen, möchte ich das alte Netz kurz beschreiben. Um anschließend die Unterschiede, und die damit verbundenen Vorteile, aufzuzeigen.

Das bestehende "WWW-Netz" mit seiner Client-Server-Architektur wird im Prinzip durch drei unterschiedliche Geräte-Gattungen aufgespannt:

  • Server, die den Inhalt und Dienste anbieten.
  • Knotenrechner (Router), die die Verbindung zwischen den Teilnehmern herstellen.
  • Dynamic Name Service-Server, kurz DNS-Server genannt, die die nicht besonders aussagekräftigen IP-Adressen in für Menschen besser verständliche Domain-Namen übersetzen und die es dadurch ermöglichen, dass die Server bei Bedarf leichter ausgetauscht werden können.
  • Zusätzlich zu diesen Hardware-Komponenten "werkeln" softwareseitig noch einige Protokolle bzw. Protokoll-Schichten (TCP, ICMP, UDP etc.) um dem Netz sein Leben "einzuhauchen".

Die Rechner, die als reine Client-Rechner fungieren, befinden sich quasi außerhalb des Netzes.

Bild 8: Schematisierte Darstellung des "www".

Das neue Objekte-Netz

Das "Internet", so wie wir es momentan erleben, hat seine Ursprünge in einer Zeit, zu der noch niemand wußte zu was es sich jemals entwickeln wird und schon gar nicht, dass es einmal quasi in jedem Haushalt präsent sein würde. Dennoch haben ihm seine "Väter und Mütter" schon damals viele kluge Anlagen und Konzepte mitgegeben, die es so zukunftsfähig gemacht haben, dass es bis heute unersetzlich ist.

Dennoch ist es an der Zeit einige Dinge zu überdenken und andere Dinge so zu belassen wie sie sind.

Viele Menschen werden nicht verstehen, was mich an der Client-Server-Struktur stört.

"Nun es ist eine Design-Idee, die nicht mit der Realität übereinstimmt. Vor allem dann nicht, wenn ich die die virtuelle Welt als eine modelhafte Nachbildung der realen Welt betrachte."

Niemand von uns Menschen ist ein reiner Dienstleister oder ein reiner Konsument. Wir sind stets beides. Selbst dann, wenn ich in einem Dienstleistungsberuf arbeite, leiste ich nicht 24/7 Dienste, sondern nehme zu bestimmten Zeiten selbstverständlich Dienstleistungen anderer Menschen in Anspruch. Oft ist sogar so, dass ich um meinen Dienst leisten zu können die Dienste anderer in Anspruch nehme.

Der gravierenste Unterschied der beiden Netze ist der, dass das ObjectsNet eine Peer-to-Peer-Architektur hat. D.h. jeder Rechner kann Inhalte und Dienste anbieten und gleichzeitig Inhalte von anderen Rechnern abrufen und deren Dienste in Anspruch nehmen.

Bild 9: Das ObjectsNet, das von den BrainExtendern aufgespannt wird.

Was ist anders?

Die Peer-Rechner (BrainExtender), die das Netz bilden stehen sozusagen mit einem Bein im Netz und mit dem anderen außerhalb. Der Eigentümer bestimmt in wie weit er seinen Rechner als Server zur Verfügung stellen möchte.

Es kann sein, dass er nur als reiner Client dienen soll. Peer ausschließlich als Client

Oder umgekehrt wird es auch BrainExtender geben, die ausschließlich als Server dienen. Firmen werden auch weiterhin große, schnelle BrainExtender ins ObjectsNet stellen, die ausschließlich Server-Dienste anbieten. Peer ausschließlich als Server

Den Unterschied machen die normalen, BrainExtender aus, die in einem Peer-to-Peer-Netz in ihrer Funktion als Server Teil "der Wolke" sind. Und sie bauen direkte Verbindungen untereinander auf ohne, dass dazu ein Server eines Dritten dazwischen geschaltet ist. Ein echter Peer

Ein kleines Beispiel:
Angenommen es gibt eine im System enthaltene Klasse namens InstantMessage. D.h. jeder kann ein Objekt der Klasse erzeugen, es mir einer Nachricht befüllen und an den Empfänger schicken. Und zwar direkt ohne einen vermittelnden Server dazwischen. Da jedes BrainExtender-System mit Objekten des Typs InstantMessage umgehen kann, können die Peers sich gegenseitig Nachrichten schicken ohne, dass ein vermittelnder Server vorhanden sein muß.

Es kommt auch heute schon vor, das sich zwei Client-Rechner direkt miteinander "unterhalten". Das sind aber seltene Ausnahmen, die überwiegend nach einer Vermittlung durch einen Server zustande kommen. Z.B. bei Fernwartung & Fernzugriff. (Dank IPv6 wären solche direkten Verbindungen auch leichter möglich. Aber überlegen Sie mal: Mit wem von Ihren Freunden oder Bekannten baut Ihr Computer eine direkte Verbindung zu deren Computer auf?)

Auf die technischen Gegebenheiten, die sich daraus ergeben, dass es plötzlich sehr viel mehr Server im Netz geben wird, wenn jeder Teilnehmer auch Server sein kann und die anderen Rechner deshalb seine IP-Adresse kennen sollten, möchte ich nicht im Detail eingehen. Dank IPv6 stehen genügend Adressen zur Verfügung um sie dediziert und fix vergeben zu können. Ob Modifikationen am DNS notwendig sind und die Netzgemeinde bereit für eventuelle Änderungen ist, steht noch quasi in den Sternen.

Sicher ist, dass es zumindest am Anfang, solange das Netz noch klein ist und die Teilnehmeranzahl noch überschaubar ist, die Peer-Rechner ohne DNS-Server auskommen. Unter der Voraussetzung, dass mit dedizierten, fixen IPv6-Adressen gearbeitet wird. Oder sagen wir mal, die Adressen eine längere Gültigkeit haben.

Gegen das Modell sprechen momentan auch die geringen Upload-Raten bei Verträgen zwischen Privatpersonen und den Providern. Aber es gibt schon heute vereinzelt die Möglichkeit höhere Uploadraten zu vereinbaren.

Und es ist so, dass wenn Jemand sehr erfolgreich Inhalte oder Dienste auf seinem BrainExtender anbietet und sein Angebot immer mehr Interessenten anlockt, er mit der Rechenleistung seines "Heim-BrainExtenders" diesen Dienst so nicht länger zufriedenstellend leisten kann. Hier kommen dann Lösungen zum Einsatz, dass man sich, wie heute auch schon, an einen professionellen Hoster wendet um sich von ihm passende Hard- und Software zu mieten.

Wie bestimmt der Benutzer, ob sein BrainExtender als Peer, reiner Client oder reiner Server arbeitet?

Der Objektespeicher ist in zwei Bereiche eingeteilt. In einen
  • öffentlichen Bereich
  • und
  • privaten Bereich.
Der Benutzer kann als Eigentümer jedes seiner Objekte angeben, in welchem der beiden Bereiche das Objekt abgelegt werden soll. Der Eigentümer eines Objektes veröffentlicht ein Objekt dadurch, dass er es im öffentlichen Bereich ablegt.

Ein Benutzer kann für den öffentlichen Bereiches seines BrainExtenders festlegen:

  • Ob er überhaupt eine öffentlichen Bereich haben möchte.
  • Wenn er einen öffentlichen Bereich haben möchte, wie groß dieser Bereich sein soll.
  • Ob ein Besucher sich ausweisen muß um den öffentlichen Bereich einzusehen.
  • Wenn er dort Inhalte veröffentlichen will, die nicht für Kinder und Jugendliche geeignet sind, dann muß er den öffentlichen Bereich so einstellen, dass Besucher, die sich mittels eines Identity-Tokens ausweisen können, zumindest ihr Alter preisgeben müssen. (Das System sorgt automatisch dafür, dass wenn ein Inhalt als nicht für Kinder und Jugendliche geeignet gekennzeichnet ist, ein Zugriff auf ein solches Objekt nur nach einer positiven Altersauskunft möglich ist.)
  • Er kann es zulassen, dass andere Benutzer Objekte in seinem öffentlichen Bereich ablegen dürfen. Er entscheidet, ob die anderen sich dazu ausweisen müssen oder nicht.
  • Wenn andere Benutzer Objekte bei ihm ablegen dürfen, kann er für jeden Benutzer ein Speicherplatz- Kontingent festlegen.

Kompatibilität der Netze

Das ObjectsNet ist eine neues Netz mit anderen Regeln als das bisherige Internet. Es wird langsam neben dem bisherigen WWW entstehen. Mit jedem BrainExtender wird es in Stück größer werden.

Es hat allerdings nur eine Chance zu wachsen, wenn den Benutzern der BrainExtender beide Netze offen stehen. Selbst dann, wenn im ObjectsNet viele Sachen einfacher zu bewerkstelligen sind, werden die Menschen es nur dann annehmen, wenn sie weiterhin ihre gewohnten Dienste des bestehenden WWW in Anspruch nehmen können.

Darum wird es einen Zugang zu den Inhalten und Diensten des WWW geben. Diese Funktionalität wird ausgelagert an eine weitere Unit, von der bisher noch keine Rede war. Ich nenne sie "Browser-Emulator".

Ich kann heute noch nicht abschätzen ob das gelingt. Aber eines der Design-Ziele ist, das ObjectsNet und die BrainExtender so zu gestalten, dass keine Rücksicht auf alte Strukturen genommen wird. Das bedeutet für den Browser-Emulator, dass er eine 100%tige Übersetzung vom Document Object Model (DOM) in ein BrainExtender-Objekt gewährleisten muß.

Technisch gesehen ist das eine anspruchsvolle Aufgabe. Der Browser-Emulator fordert eine Html-Seite an und bekommt sie vom WWW-Server geliefert. Aus dem DOM muß er für jede Seite dynamisch eine Klasse plus Meta-Information für die Anzeige und eine Instanz der Klasse machen. Diese schickt er dann an eine Ausgabe-Einheit weiter.

Bild 10: Der Browser-Emulator.

Und die Benutzer-Eingaben und -Befehle werden in entsprechende Html-Anforderungen umgesetzt. Auf diese Art und Weise können Inhalte und Daten aus dem WWW ins neue ObjectsNet gelangen.

Ein kleines Zwischenfazit

Die Einheiten-Familie ist zwischen um den Browser-Emulator angewachsen. Er ist weder Benutzer spezifisch noch muß er vor Ort eingebaut sein. D.h. unter anderem, dass sich bei Bedarf mehrere BrainExtender einen Browser-Emulator teilen können.

Bild 11: Alle Einheiten des Brainextendes inklusive des Browser-Emulators.

Jede dieser Einheiten ist spezialisiert auf eine oder mehrere Aufgaben.

Auf der nächsten Seite beschreibe ich wie ich mir einen BrainExtender vorstelle und wie er funktionieren soll.

Trenner für's vert. Verschieben bei Touchscreens