专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »编程综合 » ESFramework介绍的(7)-- 服务器代理IServerAgent »正文

ESFramework介绍的(7)-- 服务器代理IServerAgent

来源: 发布时间:星期四, 2009年1月15日 浏览:13次 评论:0
  分布式系统构建般有两种模式是基于消息(如Tcphttp等)是基于思路方法(如RPC、WebService、Remoting)深入想它们其实是回事如果你了解过.NETProxy那么你会发现思路方法和消息请求/回复实际上是可以相互转换.NETProxy实现就是在堆栈帧和消息的间相互转换过程有关这方面详细论述可以参见.Net本质论

  我觉得IServerAgent是我在开发ESFramework期间非常满意个想法相信大家也会对它感兴趣它使得使用基于消息请求/回复交互就像思路方法样简单

  客户端和服务器的间所有通信都可经过IServerAgent包括要转发P2P消息主要目是:

  (1)屏蔽客户端和服务端的间通信协议(Tcp/Udp)ITcpServerAgent、IUdpServerAgent

  (2)可将异步消息请求/回复转化为同步思路方法   ESFramework主要支持基于Tcp或UdpC/S系统所以客户端和服务端的间是通过消息进行交互如果仅仅是客户端发出请求、服务器给出服务这种情况很容易处理但是如果服务端有主动发消息给客户端情况事情就会变得稍微复杂通常客户端会有个专门接收线程来负责从网络接收数据然后把接收消息交给对应处理器处理或者这个接收到消息是个服务端给出回复那么这个回复就应该交给发出请求请求者但是对应请求者在哪里了?这种回复消息和请求消息匹配是比较繁琐特别是在上述服务端可以主动给客户端发送消息情况下为了简化这个过程IServerAgent出现了它用于客户端像它名字可以把它当作服务器IServerAgent主要目就是将消息请求/回复转换成思路方法就像该接口定义样:

  
       messageDispatcher ;
    }

  在IServerAgent基础的上我们就可以从个新角度来设计客户端结构那就是采用和功能服务器插件方式在ESFramework支持下我们应用开发变得非常简洁和简单所要做主要内容就是开发服务端“业务功能插件”和对应客户端“PassiveAddin”(客户端插件)如果我们应用已经发布投入使用而此时用户要求添加项新业务那将是非常简单事情那就是开发个实现了新业务功能插件动态加载到功能服务器中、再开发个对应客户端插件动态加载到客户端中这样就可以了服务器不用重编译、甚至不用停止服务;客户端也不用重编译、甚至不用停止使用切都是在运行中动态完成



  这是如何做到?请关注本系列文章



0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: