4
I Use This!
Inactive

News

Analyzed 3 days ago. based on code collected 4 days ago.
Posted over 7 years ago by yallie
GenuineChannels are now MIT-licensed and open-source:https://github.com/dbelikov/GenuineChannelsPress release archived from [theserverside.com](http://www.theserverside.com/news/thread.tss?thread_id=34741): >GenuineChannels.com announced version ... [More] 2.5 of its complete .NET remoting package for clients behind NAT, Firewall, and proxy; guaranteed call timeout; and other conditions with unstable communications. With Genuine Channels, clients can detect whether the server was restarted; receive better options while hosting; and get compression, encryption, and SSPI support, as well as simplified event development and IP multicasting support. >Besides offering steady connections in any environment thanks to configurable reconnect feature, Genuine Channels support communication with clients located behind firewalls, NAT and proxy servers (including those requiring authorization). Data encryption managed by security sessions and data compression without installing sinks provide for both easier coding and fast and secure client-server communication. According to multiple reports by developers using Genuine Channels, guaranteed call timeout, thread operations outside thread pool limits as well as detailed logging and debugging information and many other handy features allow for building much more reliable software while decreasing overall development time about 30 to 50 per cent! >Genuine Channels is intended mainly for .NET developers who would like to save time by utilizing much improved .NET channels when developing client-server solutions. Much care is taken about reliable server side performance, which to mention, can operate outside IIS. This includes predictable and customizable invocation times, automatic connection re-establishing, decreased bandwidth with several messages sent in one packet via GHTTP channels and reduced server loads thanks to IP multicast feature. Genuine Channels broadcast engine allows for advanced events management in distributed applications, while built-in GUI-render engine allows for displaying network usage stats in real time >For more information, visit [The GenuineChannels Website](http://www.genuinechannels.com/). [Less]
Posted over 7 years ago by yallie
Hello Mark, what you describe is a typical scenario supported by Zyan.   I've read the documentation, and realize that I should implement IAuthenticationProvider in some way. (Is this on the server side?)   Yes, the authentication provider is ... [More] a server-side class that checks the credentials before letting a client in. Here is a simple authentication provider with the hardcoded login and password strings (your real application will of course use the database of some sort): class MyAuthProvider : IAuthenticationProvider { public AuthResponseMessage Authenticate(AuthRequestMessage authRequest) { // here you check if your login/password is in the database if (authRequest.Credentials["Login"].ToString() == "Hacker" && authRequest.Credentials["Password"].ToString() == "Pa55w0rd") { // ok return new AuthResponseMessage { Success = true, AuthenticatedIdentity = new GenericIdentity("Hacker") }; } // fail return new AuthResponseMessage { Success = false, ErrorMessage = "Access denied" }; } } To enable encryption, set the encryption parameter to true in the protocol setup classes: // server var proto = new TcpDuplexServerProtocolSetup(port, new MyAuthProvider(), encryption: true); // client var proto = new TcpDuplexClientProtocolSetup(encryption: true); I've just uploaded the complete sample code to this Gist: https://gist.github.com/yallie/1e31bef306f7c53db8b9e9e23187c10f It's a tiny console program that acts both as a client and a server. Compile the program and start it up 3 times. You'll have three local peers ready to connect to each other. Type in a few words in the console and press ENTER to send a message to all connected peers. Press ENTER to shut down the peer and close its connections. Hope that helps. Regards, Alex. [Less]
Posted over 7 years ago by MarkSulkowski
I'm looking to have authentication and encrypted communications using TCP between clients and servers that don't have to be Windows-based (could be Linux). The clients can each be connected to one or more servers using multiple Zyan connection and ... [More] proxy objects. Both clients and servers are Windows services that can be initialized with database settings. There could be usernames and passwords. Some simple encryption is desirable for communications after authentication. I've read the documentation, and realize that I should implement IAuthenticationProvider in some way. (Is this on the server side?) I'm not quite sure how it is all supposed to work. May I see an example of a likely setup, with client and server code? [Less]
Posted over 7 years ago by yallie
Project descriptionZyan is a framework that simplifies development of distributed applications.With Zyan you can publish every .NET class for remote access over the network.Zyan is highly customizable and provides you with tools to build modular ... [More] and plugable distributed applications.Project homepage: zyan.com.deNuGet package: Zyan 2.8Zyan runs on Microsoft .NET Framework 3.5 Client Profile or Mono 2.10 or higher.It supports Windows, Linux (screenshot), MacOS and Android. Features Intuitive RPC communication Versatile hosting opportunities for .NET components (local or remote) Singleton and SingleCall Component Activiation Supports TCP, HTTP and Named Pipes (Other protocols can be backfitted via custom plug-ins) Bidirectional TCP communication through clientside NAT firewalls Encrypted communication without certificates and Active Directory possible Transparent network traffic compression Easy to use customizable authentication system Support for integrated Windows authentication (Single Sign On) Support for basic authentication against the servers SAM (useful, if no Active Directory present) Replaceable session managment Fast and slim in-proc session management (Sessions are stored th the server´s memory) or scalable SQL Server based session management (Sessions are stored in a SQL Server database) Support for Session Variables in In-Proc sessions and SQL stored sessions Distributed Events as easy as button_Click in Windows.Forms Support for wiring distributed Event Based Components (EBC) Zyan says "Hello World"To publish component for remote access: // Create component host named "ZyanDemo" and bind to TCP port 8080 var host = new ZyanComponentHost("ZyanDemo", 8080); // Register component type and interface host.RegisterComponent(); That's all what is needed to make HelloWorld service remotely accessible.HelloWorldService doesn't have to derive from MarshalByRefObj class. It don't need to be decorated with ServiceContract attribute either. Any .NET class can be used as a hosted component. The only requirement is that it must implement some interface. This interface is used to communicate with remote component.To access published component from remote computer: // Connect to server var connection = new ZyanConnection("tcp://localhost:8080/ZyanDemo"); // Create HelloWorldService proxy var proxy = connection.CreateProxy(); // Invoke method (just like for local object) proxy.SayHello("HelloWorld"); Click here for English Documentation.Click here to display Credits.Profiled using NProfiler by Corvios GmbH:If you have any questions about Zyan, please feel free to contact me. ProjektbeschreibungZyan ist ein Framework für die einfache Erstellung von verteilten Anwendungen. Erstellen Sie ganz einfach Applikationen, deren Komponenten entweder über ein LAN oder über das Internet miteinander kommunizieren. Zyan ist sehr einfach einzusetzen und hochgradig anpassbar. Außerdem unterstützt Zyan auch Event Based Components!Zyan läuft sowohl unter dem Microsoft .NET Framework 3.5 Client Profile als auch unter Mono 2.8 oder höher. Hier erfahren Sie mehr: Zyan auf LinuxFeatures Intuitive RPC-Kommunikation Vielseitige Hosting-Möglichkeiten für .NET Komponenten (lokal oder verteilt) Singleton- and SingleCall-Komponentenaktivierung Unterstützung von TCP, HTTP und Named Pipes (Beliebige weitere Protokolle sind über Plug-Ins nachrüstbar) Bidirektionale TCP-Kommunikation durch clientseitige NAT-Firewalls hindurch Veschlüsselung der Kommunikation ohne Zertifikate und ohne Active Directory möglich Transparente Komprimierung des Netzwerkverkehrs Authentifizierungssystem (über Plug-Ins erweiterbar) Unterstützung für Integrierte Windows-Authentifizierung mit Active Directory (Single Sign On) Serverseitige Prüfung von Windows-Anmeldeinformationen (nützlich, wenn kein Active Directory verfügbar ist) Sitzungsverwaltung (über Plug-Ins erweiterbar/austauschbar) Schnelle In-Process Sitzungsverwaltung (Sitzungen werden im Arbeitsspeicher des Servers gehalten) oder skalierbare SQL Server Sitzungsverwaltung (Sitzungen werden in einer SQL Server Datenbank gespeichert); Ab ChangeSet 5707 Unterstützung für Sitzungsvariablen für In-Process-Sitzungen und SQL Server gespeicherte Sitzungen Verteilte Ereignisse, die so einfach einzusetzen sind, wie button_Click bei Windows.Forms Unterstützung für einfache Verdrahtung von verteilten EBCs Zyan sagt "Hello World"So veröffentlichen Sie eine Klasse für den entfernten Zugriff übers Netzwerk: // Komponentenhost mit dem namen "ZyanDemo" erzeugen und auf TCP-Anschluss 8080 auf Anfragen lauschen ZyanComponentHost host = new ZyanComponentHost("ZyanDemo", 8080); // Typ der zu veröffentlichenden Komponente mit Schnittstelle registrieren host.RegisterComponent(); Das genügt schon, um HelloWorldService enfernt aufrufen zu können.HelloWorldService muss nicht von MarshalByRefObj abgeleitet sein. Sie müssen auch keine Contract-Attribute hinschreiben.Nein, sie können jede X-beliebige Klasse für den entfernten Zugriff veröffentlichen. Das einzige was Sie außer der Klasse brachen, ist eine Schnittstelle.Über die Schnittstelle kommunizieren die Clients mit der veröffentlichten Klasse.So rufen Sie die veröffentliche Komponente von einem anderen Computer aus auf: // Verbindung zum Server herstellen ZyanConnection connection = new ZyanConnection("tcp://localhost:8080/ZyanDemo"); // Proxy für die Kommunikation mit dem entfernten HelloWordService erzeugen IHelloWordService proxy = connection.CreateProxy(); // Methode aufrufen (ganz genauso wie bei lokalen Objekten auch) proxy.SayHello("HelloWorld"); So einfach können Sie mit Zyan verteilte Anwendungen erstellen.Klicken Sie hier, um Danksagungen anzuzeigen: CreditsMöchten Sie mehr wissen? Описание проектаZyan — это инфраструктура, упрощающая разработку распределенных приложений.Используя Zyan, вы можете опубликовать любой .NET-класс для удаленного взаимодействия.Zyan гибко настраивается и предоставляет все необходимые инструменты для построения модульных распределенных приложений.Zyan требует для работы Microsoft .NET Framework 3.5 Client Profile, либо Mono 2.10 или выше.Поддерживаются платформы Windows, Linux (скриншот), MacOS и Android.Особенности Интуитивный программный интерфейс Широкий выбор вариантов хостинга .NET-компонентов (локальных или удаленных) Два режима активации компонентов: сингльтон и режим одиночных вызовов Поддержка TCP, HTTP и именованных каналов (для других протоколов возможно написать собственные плагины) Дуплексный TCP-канал позволяет серверу взаимодействовать с клиентами, находящимся за NAT-ом или брандмауэром Поддержка шифрованных каналов, не требующая сертификатов и наличия служб Active Directory Прозрачная упаковка сетевого трафика Простая в использовании расширяемая система аутентификации Поддержка интегрированной аутентификации Windows (единый вход в систему) Поддержка базовой аутентификации на серверах SAM (удобно при отсутствии служб Active Directory) Расширяемое управление сессиями Быстрый и легкий однопроцессный менеджер сессий (сессии хранятся в памяти сервера) Масштабируемый менеджер сессии на базе SQL-сервера (сессии хранятся в СУБД) Переменные сессий поддерживаются обоими вариантами менеджера сессий Распределенные события обрабатываются так же просто, как button_Click в Windows.Forms-приложениях Поддержка связывания распределенных EBC-компонентов (Event Based Components) Простейший пример распределенного приложенияПубликация компонента: // Создаем сервер ZyanDemo и привязываем его к TCP-порту 8080 var host = new ZyanComponentHost("ZyanDemo", 8080); // Регистрируем тип и интерфейс компонента host.RegisterComponent(); Вот и все, что нужно, чтобы компонент HelloWorldService стал доступным для удаленного взаимодействия.Классу HelloWorldService не требуется наследование от MarshalByRefObject. Кроме того, не требуется разметка класса атрибутами ServiceContract и OperationContract. Любой .NET-класс может быть опубликован для удаленного взаимодействия. Единственное требование к нему — наличие интерфейса, через который будут осуществляться вызовы методов.Получение доступа к службе с удаленного компьютера: // Соединяемся с сервером var connection = new ZyanConnection("tcp://localhost:8080/ZyanDemo"); // Создаем прокси-объект для HelloWorldService var proxy = connection.CreateProxy(); // Вызываем метод (точно так же, как метод локального объекта) proxy.SayHello("HelloWorld"); Дальнейшие подробности см. в разделе Документация. Zyan NuGet Package [Less]
Posted over 7 years ago by yallie
Hello everyone, Zyan 2.8 is now published. Please rate this release to encourage other codeplex users to join Zyan community! Nuget package: http://nuget.org/List/Packages/Zyan Binaries: https://zyan.codeplex.com/releases/view/625495 This is a ... [More] bugfix release, fully backwards-compatible. Most important fixes address stability, thread safety issues and memory leaks. What's new: ComponentCatalog is now decoupled from ZyanComponentHost Bugfixes: An issue with events when a program has two or more registered TcpEx channels Memory leak with session variables held by InProcSessionManager Race condition in ZyanConnection.Dispose method Bad client could crash the TcpEx-based server instance Thanks to: Max Sobolev — for fixing the TcpEx events bug, issue #2283. Active users of Zyan — for their bug reports and feature requests. P.S. If you use Zyan please share a short summary of your project here: Projects using Zyan Framework [Less]
Posted over 7 years ago by yallie
Zyan 2.8 NuGet package Project description Zyan is an easy to use distributed application framework for .NET, Mono and Android.With Zyan you can publish any .NET class for remote access over network. What's new in Zyan 2.8 New features: [en] ... [More] Decouple the host from the catalog Bugfixes: [en] TcpEx: two channels and events [en] InProcSessionManager session variable leak [en] ZyanConnection.Dispose race condition [en] TcpEx: server may crash on bad client data Acknowledgements We'd like to express our gratitude to the following people who have helped to improve this release of Zyan: Max Sobolev — for fixing the TcpEx events bug, issue #2283. Active users of Zyan — for their bug reports and feature requests. [Less]
Posted over 7 years ago
Zyan 2.8 NuGet package Project description Zyan is an easy to use distributed application framework for .NET, Mono and Android. With Zyan you can publish any .NET class for remote access over network. What's new in Zyan 2.8 New features: [en] ... [More] Decouple the host from the catalog Bugfixes: [en] TcpEx: two channels and events [en] InProcSessionManager session variable leak [en] ZyanConnection.Dispose race condition [en] TcpEx: server may crash on bad client data Acknowledgements We'd like to express our gratitude to the following people who have helped to improve this release of Zyan: Max Sobolev — for fixing the TcpEx events bug, issue #2283. Active users of Zyan — for their bug reports and feature requests. [Less]
Posted over 7 years ago by yallie
[en] Prepared release 2.8 for publishing.
Posted over 7 years ago by yallie
Падение сервера пофиксил, в следующем релизе все будет хорошо.
Posted over 7 years ago by yallie
Originated from this discussion: https://zyan.codeplex.com/discussions/657090Mono has a weird deserialization bug that might crash the server application.We should stop the server from crashing. >И сервер и клиент на моно.На сервере выпадает такая ... [More] ошибка и приложение закрывается. Так как выловить ошибку нельзя.Можно конечно сохранить трафик в файлик, но сервер зачастую работает несколько недель с кучей транзакций, а потом падает. Большой файлик будет.Причём как мы поняли, это происходит при входящем запросе.Comments: Fixed, see changeset #44719. [Less]