Skip to content

Übersicht über Zyan

Alexey Yakovlev edited this page May 21, 2018 · 3 revisions

Übersicht über Zyan

Zyan ist ein Framework für die einfache und intuitive Erstellung verteilter .NET Anwendungen. Ursprünglich wollte ich nur ein Demo-Projekt aufsetzen, um auszuprobieren, wie Event Based Components in einem verteilten Szenario funktionieren können. Am Ende ist jetzt doch ein bischen mehr daraus geworden. Im folgenden möchte ich eine kurze Übersicht über das Projekt Zyan geben.

Architektur

Übersicht über Zyan_Zyan Architektur.png

Server Komponenten werden in einem Komponenten Katalog registriert. Der Zyan Komponenten Host macht die Komponenten eines Katalogs für den entfernten Zugriff zugänglich. Clients stellen über ein Zyan Verbindungsobjekt eine Verbindung zum Komponenten Host her. Als Stellvertreter der Server Komponente wird in der Anwendungsdomäne des Clients ein Proxy erzeugt. Über den Proxy kann der Client Methoden der Server Komponente aufrufen.

Welche Arten von Anwendungen kann ich mit Hilfe von Zyan erstellen?

Beliebige .NET-Anwendungen, die über Prozess- oder Maschinengrenzen hinweg kommunizieren sollen. Zyan unterstützt sowohl Kommunikation im Lokalen Netzwerk (LAN) als auch Kommunikation im weltweiten Internet.

Welche Netzwerkprotokolle und Standards unterstützt Zyan?

Standardmäßig versendet Zyan binärcodierte Nachrichten (BinaryFormatter) über das TCP/IP-Protokoll. Sie können Zyan aber auch so konfigurieren, dass die Kommunikation über HTTP läuft. Trotzdem eigent sich Zyan nicht für interoperable Kommunikation, wie sie z.B. SOAP-Webservices bieten. Zyan kann also nur dann sinnvoll zu Einsatz kommen, wenn sowohl Client als auch Server .NET Anwendungen sind. Dafür ist Zyan in genau diesem Szenario einfach, schnell und sehr intuitiv in der Handhabung.

Wie kann die Kommunikation mit Zyan abgesichert werden?

Zyan unterstützt standardmäßig Windows-Authentifizierung mit NTLM und Kerberos. Dabei werden auch die übertragenen Daten automatisch verschlüsselt. Windows-Sicherheit kommt hauptsächlich in LAN-Szenarien zum Einsatz, bei welchen ein Active Directory-Domäne vorhanden ist. Für den Fall, dass kein Active Directory verfügbar ist, können Sie das integrierte Verschlüsselungs-Feature von Zyan zuschalten, um die Netzwerknachrichten mit einem Kryptografiealgorithmus Ihrer Wahl verschlüsseln zu lassen. Sie benötigen dazu keine Zertifikate! Zyan kümmert sich automatisch um die Generierung eines asymmetrischen Schlüsselpaares, den Austausch von Schlüsseln und Sitzungsinformationen zwischen Client und Server, usw.. Statt Windows-Authentifizierung, können Sie auch eine benutzerdefinierte Authentifizierung implementieren (z.B. über Benutzername und Kennwort, die gegen eine eigene SQL Datenbank auf dem Server geprüft werden). Natürlich können Sie alle Sicherheitsfeatures auch ganz einfach abschalten, wenn Sie in einem konkreten Projekt keine Absicherung benötigen.

Welche Komponenten-Programmiermodelle kann man zusammen mit Zyan verwenden?

Neben klassischen statuslosen Komponenten, kann Zyan auch sog. Event Based Components (kurz EBC) abbilden. Außerdem können ohne Umstände Dependency Injection Frameworks wie z.B. Unity für Komponenten einsetzten, die sie mit Zyan für den entfernten Zugriff übers Netzwerk veröffentlichen möchten.

Für welche Anwendungsgröße ist Zyan ausgelegt?

Zyan ist nicht für eine bestimmte Größenordnung entwickelt worden. Von einem einzelnen PC bis hin zu großen Serverfarmen sollte grundsätzlich alles mögich sein. Da Zyan dem Entwickler alle nur erdenklichen Freiheiten lässt (jede .NET Klasse kann praktisch für Netzwekzugriff veröffentlicht werden) hängt es stark von der einzelnen Anwendung, wie skalierbar diese am Ende ist.