Viele Leute sind ja der Meinung, dass Second Life nicht wirklich die Zukunft virtueller Welten sein wird. Zu geschlossen ist das System und so richtig Open Source ist es auch noch nicht. Wenn man sich so umhört, so soll es doch in Zukunft zumindest möglich sein, eigene Stücke der Welt selbst zu hosten und diese nach Belieben zusammenschalten zu können. Und es stimmt, das geht mit Second Life nicht. Aber es ist leider auch kein Konkurrent weit und breit zu sehen, noch eine Open Source-Entwicklung, die dieses erlauben würde. Zumindest nicht, wenn man es mit der Popularität von Second Life vergleicht. So wird in neueren virtuellen Welten wie vSide, Secret City oder Stage Space eher das Gegenteil von Offenheit propagiert. So scheint es bei StageSpace z.B. doch mehr darum zu gehen, eine Welt abzugrenzen, damit das Branding des Kunden auch voll zur Geltung kommt.
Open Source und Open Grid
Doch scheint man bei Linden Lab da schon etwas weiter zu denken. Es stimmt, dass die Welt im Moment noch etwas geschlossen ist, und das auch trotz des Clients, der Open Source ist. Was fehlt, ist der offene Quellcode des Servers und eine Möglichkeit, Land selbst zu hosten und dann mit dem Second Life-Grid verbinden zu können. Beides jedoch soll kommen, und zwar zusammen. Während die Offenlegung des Server-Quellcodes sicherlich wieder ein hartes Stück Arbeit bzgl. Lizenzen und Organisationsaufwand sein dürfte, so gibt es bei der Öffnung des Netzes noch größere Probleme zu bedenken. Was passiert mit Objekten, die von einer Sim zur evtl. außerhalb Linden Lab’s gehosteten Sim wandern, was mit Scripts? Wie läuft der Zahlungverkehr? Und vieles mehr. Dies alles zu lösen, dauert sicher noch eine Zeitlang. Und solange wird es keinen Open Source-Server geben, denn das Business-Modell scheint zu sein, für extern gehostete Sims Anschlussgebühren zu verlangen.
Skalierbarkeit
Doch das sind nicht die einzigen Probleme, die Linden Lab umtreibt. Ein großes Problem ist weiterhin die Skalierbarkeit. Vor ca. einem Jahr ging der große Run auf Second Life los und man war plötzlich darum besorgt, das Grid skalieren zu können. Man hat damals 2 Zeithorizonte festgemacht: die nächsten Monate und die nächsten Jahre. Die nächsten Monate sind inzwischen vergangen und das Grid scheint noch (wenn auch manchmal mehr schlecht als recht) zu laufen. Dazu waren einerseits Datenbank-Optimierungen nötig, aber auch Umstrukturierungen in bestimmten zentralen Services. Die nächsten Jahre kommen jedoch erst noch und dazu hat Mark Lenctzer aka Zero Linden letztens ein paar interessante Zahlen genannt. So geht er innerhalb der nächsten 5-15 Jahre von folgenden Kenngrößen für virtuelle Welten aus:
- Es wird ca. 16 Millionen Regions geben (jetzt 8000-10.000). Dies würden eher mehr als weniger sein.
- Es wird ca. 2 Milliarden Nutzer geben in virtuellen Welten geben (jetzt ca. 9,5 Millionen)
- Die Concurrency wird sich auf ca. 50 Millionen belaufen (jetzt knapp unter 50.000). Dies mit allen möglichen Clients, also auch Blackberrys etc.
Es ist klar, dass es in Linden Lab’s Interesse liegt, bei dieser Entwicklung mit dabei zu sein.
Der Plan für die Zukunft von Second Life
Und dazu hat Linden Lab am letzten Donnerstag ca. 20 Residents nach San Francisco und in Second Life eingeladen, um eine neue Architektur, die all diese Probleme lösen soll, zu diskutieren. So auch mich und daher berichte ich nun.
Einen recht mutigen Schritt hat Linden Lab damit schon getan, nämlich zu entscheiden, die unterliegenden Protokolle und Standards offen zu entwickeln. Zero Linden hat klar gemacht, dass sie keine politischen Spielchen spielen wollen, die dann nachher möglichst viele Nutzer auf die von ihnen geschaffene Plattform schafft. Stattdessen wollen sie eine offene Plattform und hoffentlich einen Standard entwickeln, den sie wohl auch bei verschiedenen Standardisierungsinstitutionen einreichen wollen.
Dies bedeutet auch, dass dieses erste Meeting nur der Anfang war. Es wurden bislang noch keine Entscheidungen getroffen und dieses erste Meeting im kleinen Kreis diente bislang nur zum ersten Informationsaustausch. Jeder ist eingeladen, bei diesem Projekt mitzumachen. Die Kommunikation wird dabei über die üblichen Wege, wie Wiki, JIRA und Mailingliste durchgeführt. Zudem wird es auch wieder Meetings geben. Doch gibt es eine Bedingung, die an die Einladung zu solch einem Meeting geknüpft ist, nämlich die Mitarbeit. Denn Linden Lab will nicht nur Feedback, sondern will auch, dass wir SL-Bewohner (und sicherlich auch solche, die es nicht sind), aktiv an der Architektur mitarbeiten.
D.h. im einzelnen ist gefragt:
- Das Sammeln von Anwendungsfällen und Szenarien
- Die Identitfizierung und Entwicklung von Interfaces und damit dem Protokoll
- Dem Schreiben von Code
Eben letzteres ist sehr wichtig, denn ich gehe zunächst einmal nicht davon aus, dass der Code von Linden Lab in Open Source-Form entwickelt wird. Dies gilt nur für die Protokolle. Die Idee ist eher, dass viele Leute viele der definierten Komponenten in verschiedensten Sprachen entwickeln und man dann nachher schaut, ob diese miteinander funktionieren. Eine solche Komponente wird sicherlich OpenSim sein, denn dies ist ja schon ein lauffähiger Simulator, wenn auch mit eingeschränkten Features (aber die Entwicklung hier scheint gerade im Moment rasant voranzuschreiten). Andere, evtl. einfacher zu implementierende Dinge werden folgen. Eine Idee ist auch, sich irgendwann noch einmal in San Francisco zu treffen, dann jeder mit seinem Laptop, um dann zu sehen, wo welche Komponente noch Probleme macht und wo evtl. noch etwas am Protokoll genauer definiert werden muß.
All dies hört sich in meinen Ohren recht gut an. Wir werden sehen, wie gut die Zusammenarbeit zwischen Linden Lab und dem Rest der Welt klappt, aber bislang sehe ich das schonmal als guten Start an.
Die Architektur
Zero Linden hat uns schon einmal einen kleinen Einblick darin gegeben, wie die neue Architektur aussehen könnte. Die detaillierte Beschreibung habe ich im Second Life-Wiki abgelegt, aber hier ein kleiner Überblick, wie es heute aussieht und in Zukunft aussehen mag.
Das Grid heute
Das obige Bild stellt das Second Life Grid heute dar. Wie man sieht verbindet sich ein Viewer (Client) hauptsächlich mit einem Simulator. Dieser simuliert einen Teil der Welt (genauer gesagt 256x256m). Doch dieser Simulator braucht Daten und auch der Viewer braucht Daten. Daher dient der Simulator auch als eine Art Proxy auf zentrale Datenbanken wie dem Asset Server, dem User Server usw. Will also ein User sein Inventory anschauen, so werden die ganzen Daten vom Asset Server via den Simulator geholt. Man erkennt schnell, dass dies mit den oben genannten Zahlen nicht mehr funktionieren kann, denn jede zentrale Anlaufstelle ist hier kritisch. Hinzu kommt, dass insbesondere der Asset-Server sehr viel Arbeit übernimmt. Es ist nicht mit z.B. einem Login getan, der nur einmal pro Session vorkommt, sondern es werden an sich ständig von jeder Sim und jedem User Daten abgefragt.
Das Grid morgen
Die Idee von Linden Lab ist nun, dass man 2 Domains einführt, die Agent Domain und die Region Domain. Die Agent Domain kümmert sich um alles, was mit einem Agent (also im Prinzip einem User) zu tun hat. Die Region Domain dagegen kümmert sich um alles, was mit Regions zu tun hat, also dem Ort, in dem Agents mit der Welt und/oder anderen Agents interagieren.
Jede Agent Domain besteht dabei wieder aus 3 Komponenten: Die Agent Services, die Agent Hosts und die Agent Stores.
- Agent Services sind im Prinzip Web Services, die 100% stateless sind, also gut gecacht werden können. Sie geben Dinge wie Profildaten und andere Dinge zurück, die sich nur selten ändern.
- Agent Hosts sind die Komponenten, die sich um eine Session kümmern, wenn ein Agent eingeloggt ist. Sie halten Statusdaten wie z.B. die Freundesliste oder den Ort des Agents fest.
- Agent Stores speichern alle Daten über Agents, wie das Inventory, die Profildaten usw.
Eine Region Domain sieht im Prinzip ähnlich aus, auch hier gibt es Services, Hosts und Stores.
- Ein Region Services liefert sich selten ändernde Daten über eine bestimmte Region zurück. Das kann der Name sein, die Aufteilung in Parzellen usw.
- Ein Region Host ist im Prinzip das, was heute ein Simulator ist, er simuliert also einen Teil der Welt und kümmert sich um Interaktionen zwischen Agents, Land und Objekten.
- Ein Region Store ist die Datenbank dahinter. Dort werden die in einer Region abgelegten Objekte gespeichert sowie die eigentlichen unterliegenden Regionsdaten.
Die Grundideen hierbei sind, dass
- man hinter einem Service, Host oder Store beliebig viele Rechner oder auch nicht haben kann. Es könnte also im Prinzip auch ein Cluster hinter einem Store arbeiten. Nach außen hin sieht es aber wie nur ein Interface aus.
- man verschiedene Domains haben kann, die miteinander kommunizieren. So kann man eine weitere Agent Domain von irgendeinem sozialen Netzwerk haben, deren Agents dann evtl. auch an eine Region Domain verbinden dürfen. Gleichermassen kann es weitere Region Domains geben (z.B. neue Kontinente), auf denen sich Agents bestehender Agent Domains auch einloggen dürfen (also im Prinzip der initiale Use Case bei dem es erlaubt sein soll, seine eigene Region zu hosten).
Weitere Anforderungen sind, dass man eine Region auch bei sich daheim hosten können muß und dass man in der Lage sein soll, ein kleines Grid auch komplett ohne Internet-Anschluß betreiben zu können.
Das Grid der Zukunft
Hier noch ein Bild, wie sich Linden Lab dann das Grid komplett vorstellt:
Aber wie gesagt, all dies ist noch nicht in Stein gemeißelt. Linden Lab will vor allem wissen, ob denn hier etwas fehlt, ob alle Anwendungsfälle, die man sinnvoll sind, auch hiermit funktionieren werden.
Die nächsten Schritte
Das erste Meeting ist vorbei und die Ideen sind nun publik. Ich habe versucht, die Ideen im Wiki zusammenzufassen und habe auch mal eine erste Struktur dafür aufgesetzt. Wichtig wäre nun wohl vor allem, erst einmal alle möglichen Anwendungsfälle zu sammeln. Nur dies ermöglicht es uns dann später zu entscheiden, ob diese denn auch wirklich alle abgedeckt werden (bzw. zumindest diejenigen, für die wir uns initial entscheiden). Es gibt außerdem eine Liste von Work Items, die während des ersten Meetings zusammengetragen worden sind.
Außerdem werde ich wohl auch demnächst mal ein kleines Meeting zu dem Thema in-world machen, zu dem ich alle interessierten Personen herzlich einlade. Weitere Details folgen.
Technorati Tags: future, secondlife, grid, architecture, standard, mrtopf, lindenlab