原文地址

本文示例

Zyan是一个简单直观的分布式应用程序开发框架。

以下是Zyan项目的简要概述。

架构图:

Zyan一般由客户端和服务端组成。服务端(以组件的形式)提供服务,客户端远程调用服务端的方法。

客户端通过代理访问服务端的方法。代理是一个对象,在客户端进行远程调用,代理实现了和远程服务组件相同的接口(如:相同的方法,属性,事件)。

因此,典型的Zyan应用程序有三个独立的组件,或三个Visual Studio项目:

客户端:包含客户端代码

共享程序集:包含公共接口

服务端组件:包含服务端实现代码

注意:客户端和服务端都需要引用 Zyan.Communications.dll 。

这里做一个简单的示例

1,创建一个接口 IEchoComponent,定义一个方法Echo

 public interface IEchoComponent
{
string Echo(string message);
}

2,服务端创建一个类(组件)EchoComponent 实现IEchoComponent中的方法

public class EchoComponent : IEchoComponent
{
public string Echo(string message)
{
return message;
}
}

服务端还要对相应类(组件)进行注册发布:

组件通过ZyanComponentHost发布,

var protocolSetup = new HttpCustomServerProtocolSetup(, new NullAuthenticationProvider(), true);
var host = new ZyanComponentHost("EchoExample", protocolSetup); host.RegisterComponent<IEchoComponent, EchoComponent>(ActivationType.SingleCall);
Console.Write("service starting");
Console.Read();

ZyanComponentHost是一个专用的服务,用来处理组件的创建,托管和网络通信(打开/关闭网络套接字等)。

ZyanComponentHost可以处理任意数量的组件。

每一个ZyanComponentHost实例需要唯一的名称,端口和可选的协议。

Zyan拥有一批ProtocolSetup类,可以在Zyan.Communication.Protocols命名空间中找到:

ProtocolSetup类允许来调整通信参数,即:
端口号(默认80用于HTTP)
身份验证提供程序
安全设置,加密算法等。

提示:这里没有可以在浏览器中打开的URL。 Zyan不会产生WSDL或任何其他类型的元数据。

客户端使用共享接口组件,因此没有必要在与元数据服务器进行通信。通过基于浏览器的用户界面则不能调用Zyan托管组件的方法,你需要编写客户端应用程序来测试它。

3,客户端调用:

要使用服务端组件,客户端应该与服务端主机建立连接。

ZyanConnection用于客户端连接到远程主机。

这有点类似于ADO.NET模型(例如,SqlConnection类是用于连接到远程数据库服务器)。

ZyanConnection构造函数有两个参数:远程主机的URL和可选的协议设置类。

 var protocolSetup = new HttpCustomClientProtocolSetup(true);
var connection = new ZyanConnection("http://localhost:8080/EchoExample", protocolSetup); var proxy = connection.CreateProxy<IEchoComponent>(); var result = proxy.Echo("Hello, World!"); Console.Write(result);
Console.Read();

代理对象的行为就像本地EchoComponent。唯一的区别是,Echo方法在服务器端执行。

原文地址

示例

Zyan 一个通信框架的更多相关文章

  1. 高性能 TCP/UDP/HTTP 通信框架 HP-Socket v4.1.1

    HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通信系统,提供 C/ ...

  2. 高性能 TCP/UDP/HTTP 通信框架 HP-Socket v4.1.2

    HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通信系统,提供 C/ ...

  3. 高性能 TCP/UDP/HTTP 通信框架 HP-Socket v4.0.1

    HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通信系统,提供 C/ ...

  4. 高性能 TCP & UDP 通信框架 HP-Socket v3.5.3

    HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...

  5. 高性能 TCP & UDP 通信框架 HP-Socket v3.5.2

    HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...

  6. 高性能 TCP & UDP 通信框架 HP-Socket v3.5.1

    HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...

  7. 高性能 TCP & UDP 通信框架 HP-Socket v3.4.1

    HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...

  8. 高性能 TCP & UDP 通信框架 HP-Socket v3.3.1

    HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...

  9. AgileEAS.NET SOA 中间件平台.Net Socket通信框架-介绍

    一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...

随机推荐

  1. TCP系列18—重传—8、FACK及SACK reneging下的重传

    一.介绍 FACK的全称是forward acknowledgement,FACK通过记录SACK块中系列号最大(forward-most)的SACK块来推测丢包信息,在linux中使用fackets ...

  2. ES6之 =>箭头函数

    原文,请点此链接http://www.cnblogs.com/allenxieyusheng/p/5784728.html 1. 第一个函数 ()=>1 解析:其实这是一个匿名函数直接执行 (f ...

  3. phpcms找不到模板、空白模板的解决办法

    有时候会出现这个问题,尤其是在调试模板的过程中,不知道别的朋友的操作习惯.我的习惯是,先保留一份原始的模板.比如: index原版.html. 以便对比之用.但是呢,这样,往往会造成 找不到模板的情况 ...

  4. docker中crontab无法运行

    yum install -y crontabssed -ri 's/.*pam_loginuid.so/#&/' /etc/pam.d/crond   vi /etc/pam.d/crond ...

  5. 用svmpredict输出的结果为空

    源程序:

  6. 【ADO.NET】ADO.NET知识点

    ADO.NET 是一组向 .NET 程序员公开数据访问服务的类.提供了对各种关系数据.XML 和应用程序数据的访问. 所有的数据访问类位于System.Data.dll中.System.Data包含了 ...

  7. 【其他】VS提示不一致的行尾

    应该是用不同的编辑器或平台编辑过同一个文件,比如Windows是\r\n,有的系统只有一个\n, 需要都统一,否则代码可能会堆成一堆.

  8. Dom事件的三种绑定方式

    1.事件 2.  onclick, onblur, onfocus, 需求:请写出一个行为,样式,结构,相分离的页面.   JS,   CSS,  HTML, 示例1,行为结构样式粘到一起的页面: & ...

  9. 前端开发学习之——使用jquery/javascript判断及改变checkbox选中状态

    一.使用jquery判断及改变checkbox选中状态 1.使用JQuery判断一个checkbox 是否为选中: (1).attr('checked) 看JQuery版本1.6+返回:”checke ...

  10. POJ3678:Katu Puzzle——题解

    http://poj.org/problem?id=3678 总觉得这题比例题简单. 设a为x取0的点,a+n为x取1的点. 我们还是定义a到b表示取a必须取b. 那么我们有: 当AND: 1.当c= ...