How much knowledge is needed for a chair holder?

I’m participating in a work group. This group gets together every 2 Months and discusses IT topics and problems within the enterprise. It’s the destiny of the chair holder to shout on a regular base against Mac products. “They’re all crap”, is just one example.  Of course everybody in the group tend to believe the highly decorated group leader, disregarding the fact he never owned a Mac Computer nor does he use any other Mac device. Ok, so far so good. This morning I was amused when the anticipation pairs with the lack of technical facts. Here’s the statement: “Mac software installs very complicated with lots of mutual dependencies. This makes it nearly impossible for decent administration.”

I’m not entirely sure if I missing here something (I’m using OSX, Windows, Solaris on a everyday base for years). I asked several “cracks and nerds” if they could list me essential differences comparing OSX and Windows. Despite the list is not very long and after a reduction to “real essential difference” the list became very short. One thing popping up is the missing registry in the OSX Operating System. A programm ist installed by copying the binaries into a folder. The program is removed by deleting this folder.

I recall the statement: “Mac software installs very complicated with lots of mutual dependencies. This makes it nearly impossible for administration.”

I strongly suggest for every emotional criticizer: Get to know the product first, then start shouting.

LDAP schemas, Oracle DSEE, OpenDS, OpenLDAP, Switch AAI and the rest…..

Context

For our Lab we are deploying a new service frontend (login.enterpriselab.ch) which allows elegible students, faculty members and partners with Switch AAI enabled accounts to create and manage an EnterpriseLab account. The frontend it self has been created as part of a Bachelor Diploma work and is now adapted by us to fit some changed requirements. As a backend we us ODSEE (Oracle Directory Server Enterprise Edition) 11g, the successor (or minor update) of Sun DSEE 7.

The actual stuff – LDAP schemas

To store the AAI attributes in LDAP Switch provides OpenLDAP schema files to extend the available LDAP attributes and objectclasses, but sadly the syntax which OpenLDAP uses is not supported in ODSEE. So conversions where in order. After a bit of searching around the web I found a few scripts which are supposed to do the task… some of them where better, some worse and others didn’t even work…
In the end I went with schema-convert.py by Ludovic Poitou, an ex- SUN/Oracle employee, now apparently working at ForgeRock. He wrote this script to convert OpenLDAP schemas to OpenDS schemas, which luckily are (almost) compatible with ODSEE.

The most important transformations required being:

  • replacing keyword “attributetype” with “attributeTypes:”
  • replacing keyword “objectClass” with “objectClasses:”
  • “correct” indentation
  • OID expansion

There only was one problem left after the conversion: ODSEE (in contrast to OpenDS, OpenLDAP and OpenDJ) does not support the full range of syntax definitions specified in RFC 2252 but only the ones defined as MUST, so it does not support SYNTAX 1.3.6.1.4.1.1466.115.121.1.36, probably better know as numericString which is used in the attributes “swissEduPersonMatriculationNumber” and “swissEduPersonDateOfBirth”. I decided to replace it with 1.3.6.1.4.1.1466.115.121.1.26 aka IA5String (the closest match available in this case) which allows not only numbers but also almost any ASCII characters to be stored.

Results

The results of the whole ODSEE installation and configuration procedure can be found in our wiki including some more links and references.

And here the resulting schema files:

distributed self-converging social networks

Ich habe etwas über Social Networking nachgedacht, nachdem ich mich der Diaspora Community angeschlossen hatte. Diaspora hat mich überzeugt. Klar ist, dass das Projekt im Alpha-Status nicht gerade ein Facebook-Gegener sein kann, aber die Ansätze sind klar vorhanden und das Potential liegt ebenfalls in vollem Mass vor.

Ich habe mir einige Gedanken dazu gemacht, wie Diaspora schneller bekannt und populär werden kann. Dazu habe ich Wissen aus der Netzwerktechnik und dem Web vereint und mir daraus eine Vision aufgestellt.

Diaspora verfolgt einen guten Ansatz, in dem es seine Server verteilt und jeder Besitzer eines Webservers einen eigenen Diasporaserver betreiben kann. Die Server können untereinander verbunden werden. Dies spart Geld, da die Server auf sehr vielen kleinen und bereits vorhandenen und bezahlten Ressourcen laufen können. Da so die Nutzerzahl auf einen Server eher beschränkt bleibt, ist die nicht ganz optimale Skalierbarkeit von Diaspora nur zweitrangig wichtig. Das aktuelle Konzept von Diaspora lässt mir einen Aspekt leider etwas zu sehr ausser Acht, welchen man bei verteilten Systeme dieser Art beachten sollte: die Skalierbarkeit.

Das aktuelle Konzept von Diaspora sieht vor, dass die Administratoren auf einer Diaspora-Instanz eigenhändig Verbindungen zu anderen Instanzen erzeugen müssen, dass die Nutzer der beiden Systeme kollaborieren können. Wenn man nun davon ausgeht, dass Diaspora mit derselben Geschwindigkeit wie Facebook seinerzeit wachsen könnte, wird genau dieser Aspekt zu einem Problem.

Der entscheidenen Vorteil von zentralisierten Systemen wie Facebook ist der, dass sich die Nutzer nicht überlegen müssen, ob ihr Freund, den sie in den Ferien kennengelernt haben, über ihren Server erreichbar sein wird oder nicht. Dies ist bei Diaspora nicht gegeben. Es ist möglich, dass mein Server denjeneigen des Freunden aus den Ferien nicht erreichen kann, somit verfehlt das SocialNetwork seinen Zweck.

Gesucht ist also ein Lösungsansatz welcher diese Mauer fallen lässt. Hier kommt das Wissen aus der Netwerk Welt ins Spiel. Denn Router innerhalb eines Netzwerkes sehen sich mit einer ähnlichen Problematik konfrontiert: Wie finde ich meine Nachbaren automatisch? Wie sende ich die Posts eines Nutzers an den richtigen Server, auch wenn ich diesen nicht kenne? Gelöst wir dies im Bereich der Netzwerke mittels einer Vielzahl unterschiedlicher Routing-Protokolle. Dieses Wissen und dieses Konzept kann nun auch auf ein verteiltes Soziales Netzwerk angewendet werden, denn Sie haben eines gemeinsam: Es sind beides Netzwerke und verteilte Infrastrukturen.

Wie könnte dies nun im Fall Diaspora aussehen? Wir möchten nun also den Diaspora-Server ‘Bern’ mit dem Diaspora-Server ‘Alaska’ bekanntmachen. Wie dies bei Routern der Fall ist muss natürlich zuerst eine Verbindung zwischen den zwei Instanzen bestehen. Dies wir mit einem sogenannten ‘Link’ realisiert. Links können grundsätzlich vom Administrator manuell oder aber vom Server autonom erstellt werden. Wir machen nun Instanz Bern mit Instanz Alaska bekannt. Nun kann der Benutzer ‘bob@diaspora-bern.ch’ mit seiner Flamme ‘alice@diaspora-alaska.com’ in Verbindung treten. Dies ist der einfachste Fall und braucht keine Routingfunktionalität. Wie sieht es jedoch aus, wenn der Server in Alaska noch einen weiteren Server in China kennt? Wie kann nun Bob in der Schweiz mit einer Ferienbekanntschaft aus Taiwan in Kontakt bleiben? Wie kann der Server in Bern herausfinden, dass sein Gegenüber in Alaska, den taiwanesischen Diaspora-Server kennt? (einfach dass keine Verwirrung entsteht – Diasporaserver sind nicht an Hoheitsgebiete oder Landesgrenzen gebunden, die hier geschilderte Ausgangslage dient als anschauliches Beispiel) Die Lösung der Netzwerkwelt zu dieser Fragestellung lautet: Routingtabellen. Jeder Router hat eine solche Routingtabelle in die er die Wege zu den gewünschten Netzwerken einträgt. Ein ähnliches Konstrukt könnte nun jede Diaspora-Instanz implementieren.

In diese ‘Linktables’ werde nun alle Netzwerke eingetragen welche manuell von einem Systemadministrator erstellt wurden. Der Server in Alaska trägt nun den Server in Taiwan mit Name und IP-Addresse in seine Linktable ein. Im Moment in dem Server Bern und Alaska verbunden werden, tauschen die beiden Server ihre Linktables aus. Der berner Server nimmt nun Alaskas Linkstable entgegen und vergleicht diese mit seiner eigenen Tabelle. Der Eintrag des Servers Taiwan fehlt in seiner Tabelle höchstwarscheinlich und wird nun hinzugefügt.

Bei klassischen Routingprotokollen würde nun der Router Bern seine Routingtable so ergänzen, dass er weiss: eine Nachricht für den Router in Taiwan muss über den Router in Alaska geleitet werden. Dies ist bei Routern deshalb notwendig, da der Router Bern keine physikalische Verbindung nach Taiwan besitzt, daher muss er den Umweg über den Router in Alaska gehen. Bei einem sozialen Netzwerk wie Diaspora ist dieser Schritt nicht notwendig, da die Netzwerkverbindung nach Taiwan besteht und sich der OSI-Stack darum kümmert, dass unser Nachrichten korrekt von Bern nach Taiwan gelangen. Der Diaspora Server in Bern trägt also einfach die IP-Adresse des Diaspora-Servers in Taiwan in seine Linktable ein, und erstellt eine direkte Verbindung nach Taiwan. Es ist somit kein Zwischenschritt über Alaska mehr notwendig. Somit erspahrt man dem Diaspora-Server in Alaska viel Datenverkehr, welcher ihm nichts nützt und reduziert die Latenzzeit bei der Übertragung zwischen den Servern.

Auf diese Art kann nun Bob auf dem Server in der Schweiz mit seinen Freunden auf dem Diasporaserver in Taiwan in Verbindung treten ohne, dass die Administratoren in Taiwan oder Bern einen neuen Link auf den jeweiligen Server erstellen.

Nun kann also ein Diaspora-Netzwerk auf die hier geschilderte Art selbständig konvergieren. Bedenken treten bei mir jedoch bei der Sicherheit der neu erstellten Verbindung zwischen Taiwan und Bern auf, denn das Einrichten der verschlüsselten Verbindung könnte mitgehört und somit die Verschlüsselung angreifbar werden. Da ich mich gerade entschlossen habe, dieser Idee etwas mehr Aufmerksamkeit zu schenken, werde ich ein Whitepaper aufsetzen worin ich auch den Aspekt der Sicherheit näher beleuchten werde. Ebenfalls weiterverfolgen werde ich den Spezialfall, dass ein Diaspora-Server einen anderen Server nicht in seine Routingantworten einbinden möchte, sodass dieser versteckt bleibt. Auch wichtig zu wissen ist, in welchen UseCases ein solchen Bedürfniss entstehen könnte.

 

Diaspora – SocialNetworking der Zukunft

Kürzlich fand ich mich gerade mit einem Mitstudenten in einer Diskussion über Facebook wieder, nachdem ich ihm erzählt hatte, dass ich mein Facebook-Konto gelöscht habe. Ich erzählte ihn wie wenig ich die Geschäfts und Werbetpraktiken von Facebook verabscheue und nun die Vorteile von Facebook vorallem als Nachteile und für mich unwichtig erachte.

Da erzählte er mir von einem Opensource-Projekt, welches mich interessieren könnte: Diaspora! Natürlich klebte ich den Begriff sofort in die Suchzeile meines Browers und wähle den ersten Eintrag aus. Die Hautpwebsite des Projekts Diaspora erschien auf meinem Bildschirm. Ich war jedoch etwas enttäuscht, da die Website sehr wohl ansprechend war, jedoch kaum etwas über das Projekt und dessen Architektur aussagte. Zum Glück gibt es Wikipedia!

Diaspora ist ein sehr erfolgreicher Kickstart im Bereich SocialNetworking, von welchem sogar der Firmenchef und Gründer von Facebook sagt, dass es “eine coole Idee” sei. Unter anderem ist er auch einer der mehr als 6000 Spendern welche sich finanziell für Diaspora einsetzen. Die Idee für Diaspora stammt von vier amerikanischen Informatikstudenten, welche sich eine Vorlesung von Eben Moglen an der Columbia Law School zum Thema “Freedom in the Cloud” angehört hatten. Diese drehte sich vorallem darum wei zentralisierte Netzwerke und Dienste ihre Nutzer ausspionieren. Ihr Lösungsansatz: eine Fragmentierung der Serverstruktur eines Sozialen Netzes. Das heisst, dass das Netzwerk sich nicht aus einem (rein administrativ) zentralisierten Serversystem läuft und seine Daten verwaltet, sondern wie dies z.B bei IRC-Servern oft der Fall ist, über keinen zentralen Knotenpunkt verfügt. Damit kann jeder Administrator eines Servers sein eigenes kleines Soziales Netzwerk aufbauen und dieses z.B an einer Schule als geschlossenes System zur Verfügung stellen, oder aber er kann seinen Server nach aussen mit andern Servern verknüpfen (diese Kommunikation erfolgt verschlüsselt) und und so können die Nutzer von Server A auch die Informationen ihrer Freunde auf Server B erreichen. Diese Architektur nennt man allgemein eine Mesh(zu Deutsch: Netz). Das Fehlen eines zentralen Servers und die auf viele verschiedene Server(sogenannten ‘Pods’) verteilten Administrationen verhindern Zensur oder staatliche Kontrolle in derselben Weise wie dies z.B Torrent-Netzwerke heute schon äusserst effektiv tun.

Da die Diaspora Server nicht über ein zentrales MainFrame-System verfügen, ist ihre Architektur äusserst robust. Geht ein Server down, beeinflusst dies die anderen Server nicht und es sind einzig die Informationen auf dem abgestürtzten Server nicht mehr zugänglich. Ein weiterer Vorteil ist, dass es keinen Sinn macht, einen Domain-Namen wie z.B Facebook.com zu sperren wenn man das Anzeigen einer Website in einem Land unterbinden will. Da Diaspora auf unzähligen Servern mit ebensovielen unterschiedlichen Domainnamen läuft, kann dieses Netzwerk kaum unterbunden werden und leistet somit einen wesentlichen Beitrag zur Informations und Meinungsfreiheit in der ganzen Welt.

Weiter ist Diaspora als OpenSource-Projekt gestaltet. So können Entwickler aus der ganzen Welt überprüfen was mit ihren Daten bei Diaspora geschieht. Doch Diaspora bietet auch den Nutzern viele verschiedene Vorteile: Einerseites sind ihre Daten und persönlichen Informationen auf einem Server ihres Vertrauens gespeichert, andererseits ist es ein Grundsatz bei der Entwicklung von Diaspora, dass alle Daten eines Benutzers gelöscht werden, wenn sich dieser entscheidet die Plattform zu verlassen. Es gehen auch Mutmassungen um, dass es möglich werden solle, sein Benutzerkonto mit einem Klick von einem Server auf den anderen zu transferieren. Für mich persönlich ein nettes Feature! Diaspora soll mit Hilfe von Add-ons Modular aufgebaut werden, um jede denkbare Art von Kommunikation zwischen den Benutzern zu ermöglichen.

Im Moment befindet sich Diaspora noch in einer Alpha-Phase und nimmt daher aus Leistungsgründen bis etwas Herbst 2011 keine neuen Nutzer mehr an. Es gibt jedoch eine ganze Reihe freier Server welche von der Community erstellt und gewartet werden. Ist man auf einem anderen Server registriert, kann man auch mit Nutzern auf dem Diaspora-Hauptserver interagieren.

Ich habe mich auf einem deutschen Server registriert, da es momentan in der Schweiz scheinbar keine Diaspora Server gibt. Vielleicht bin ich irgendwann einer der Ersten der in der Schweiz einen solchen Server aufsetzt. Nachdem ich nun Diaspora etwas ausprobiert habe, kann diese Art von SocialNetworking jedem weiterempfehlen. Auch werde ich Diaspora genaustens weiterverfolgen und auf diesem Blog über meine Erfahrungen berichten.

 

Spam on your Blog?

If you have a lot of spam in your Enterprise Lab Blog, please check your SI Captcha options. You can find them (when you’re logged in) in the Plugins menu.
You’re Setting should look like this:
SI Captcha Options
Please be sure that the CAPTCHA difficulty level is set to high.