So langsam nimmt die WCF-Alternative doch Fahrt auf. Oder besser: die nächste Abstraktionsstufe oberhalb von WCF. Vor ein paar Jahren waren Spaces nur eine recht akademische Idee. Jetzt aber finden sie den Weg in die Öffentlichkeit. Der Beginn eines neuen Paradigmas.
Neulich hatte ich schon ein paar Gedanken zu einer Technologie nach bzw. komplementär zu WCF geäußert. In die selbe Richtung gingen davor auch schon meine Spekulationen über eine neue Klasse von Anwendungen: serverless real-time online collaborative (SROC) applications. Die scheinen nämlich von Spaces als Grundlage für die Kollaboration besonders profitieren zu können.
Als ich 2006 schon einmal über "Life Beyond WCF" und Virtual Shared Memory geblogt hatte, waren Spaces auch noch weniger greifbar. Aber nun hat Amazon einen Tuple Space in die Öffentlichkeit entlassen - mehr dazu in einige Postings in meinem englischen Blog - und das rennomierte Portal "The Serverside" hat (mithilfe des Space-Produktanbieters GigaSpaces) ein eigenes Knowledge Center zum Thema aus der Taufe gehoben. Das machen die ja nicht, wenn da kein Potenzial wäre.
Alles sehr schöne Entwicklungen wie ich finde :-) Weiter ermutigt hat mich auch ein Abend bei der .NET User Group Hamburg: Da habe ich neulich 2,5 Stunden eine Space Implementation diskutiert und demonstriert - und die Teilnehmer waren sehr interessiert bei der Sache. Die Aussicht, eine Alternative zu WCF auf höherem Abstraktionsniveau in die Hände zu bekommen, fanden fast alle sehr attraktiv. Ein besonderer Glücksmoment war dann, als ein Teilnehmer zu dem Chat-Beispiel, das ich live gebastelt hatte sagte, das sei der kürzeste Code für die Chat-Funktionalität, den er je gesehen hätte. Seufz... genau das wollte ich nämlich rüberbringen: Space Based Collaboration macht Code für die Kommunikation in verteilten Anwendungen kürzer und leichter zu lesen und intuitiver.
Nach so positivem Feedback aus der User Group freue ich mich nun, das Team hinter der Implementation auch einmal zeigen zu können. Es hat jetzt nämlich selbst eine Presseveröffentlichung herausgegeben und ist online mit einer Projektbeschreibung zu finden. Rechts zu sehen die Helden der XcoSpaces, der .NET-Implementierung der Space Based Collaboration: Prof. Eva Kühn (vorne rechts) ist die Initiatorin und Koordinatorin des Projektes und unermüdliche Verfechterin des Space-Paradigmas seit vielen Jahren; und Thomas Scheller (vorne links) zusammen Markus Karolus (dahinter) haben die XcoSpaces tapfer implementiert. Es macht Spaß, mit dem Team an der Idee zu arbeiten und sie aus der akademischen in die praktische .NET-Welt zu tragen.
Wer nun neugierig geworden ist, was es denn mit Spaces auf sich hat, der melde sich gern bei mir via Email oder per Blog-Kommentar. Der XcoSpaces-Prototyp zweiter Generation ist für Interessenten kostenlos erhältlich. Eva Kühn et al. und ich sind sehr daran interessiert, Erfahrung im Einsatz von Spaces in realen Problemszenarien zu sammeln.
3 Kommentare:
Guten Morgen :)
Ich bin sehr interessiert an den Binaries. Gibt es auch eine Reference Implementation und ein gescheites Sample für den Einstieg?
grüsse
laurin
Erstmal, Danke dass du deine Gedanken frei und umfangreich weiter gibst, es regt ungemein zum Nachdenken an. Das weis ich auch von Kollegen, die gern dein Blog lesen.
Spaces scheinen ein schöner Platz für den Datenaustausch zu sein. Darüber hinaus hatte ich die Assozation mit einem Marktplatz, auf dem die Waren offen angeboten werden. Wenn die Waren also einfach nur so darum liegen, woher weis ich dann welche Eigenschaften sie haben? Da brauchen doch alle Beteiligten gemeinsame Absprachen sprich Verträge.
OK, jetzt schieße ich mal über das Ziel hinaus, aber du bist ja auch gerne philosophisch unterwegs. Kaum hat man sich auf Datenstrukturen und eine Technik festgelegt, sind diese schon nicht mehr zutreffend oder veraltet. Das ist im Grunde nicht schlimm, denn die Implementation läuft ja immer noch, aber dadurch dass sich mehrere Beteiligte darauf eingelassen haben, wird es für die Zukunft schwer sein Änderungen an z.B. Datenstrukturen mit allen Kommunikationspartnern synchron durchzuführen.
Den Marktplatzgedanken würde ich so weit führen, dass man diesen Platz nicht nur zum Datenaustausch einrichtet, sondern auch zusätzlich dort auch die Beschaffenheit seiner Daten und Dienstleistungen beschreibt. Genau wie im realen Leben. Dabei sollte der Faktor Zeit, also die Laufzeit der Vereinbarungen, eine Entscheidende Rolle spielen um dabei automatisch die Möglichkeit zu definieren, dass sich die Beschaffenheit der Ware (Version) in Zukunft ändern darf.
Bei Dienstleistungen in Form von Software spielt die Performance auch immer eine große Rolle und nur allzu leicht wird diese außerhalb der Spezifikation betrieben. Wäre die Dienstleistung vertraglich geregelt und limitiert, wie Z.B. ich verarbeite x Daten in einer gewissen Zeit, dürfte es nicht zu Missverständnissen kommen.
Meiner Meinung nach gibt es leider zu viele Absprachen außerhalb der Deklaration des Softwareprodukts, die sich in einem Netzwerk von interagierenden Anwendungen negativ auf die Wahrnehmung der Funktionstüchtigkeit und den Lebenszyklus eines jeden Produktes auswirken. Es gibt keine flexible Software, wenn es sie nicht selbst ist, außer in der Interpretation dieser.
Volker
@Volker: Die Idee mit dem "Marktplatz" finde ich interessant. Statt "Vertragspartnern" Zugriff auf Endpunkte im eigenen Unternehmen zu geben, könnte man "Arbeitspakete" in den Space stellen und dort auch von mehreren konkurrierenden "Workern" abarbeiten lassen. Sicherheit müsste dabei natürlich gewährleistet werden.
Statt also Workern Pakete zuzuschieben oder sie sich herausziehen zu lassen, stellt man sie an einen Ort in der Mitte - mit der Erwartung, dass sie dort abgeholt und bearbeitet werden.
Ich bewege den Gedanken mal weiter im Herzen...
-Ralf
Kommentar veröffentlichen