ESFramework解疑 --点滴(不断补充中)

1.IMessageHeader的实现在哪里?(2006.03.31) MSN上有个叫MeDiar的朋友问我ESFramework中IMessageHeader的实现在哪里?答案是,IMessageHeader在你的具体应用中实现,而不是在ESFramework框架中。 IMessageHeade...

2006-03-31 15:58:00

阅读数:6

评论数:0

ESFramework介绍之(18)―― Tcp用户管理器组件

当我们的应用中客户端与AS之间是通过Tcp进行通信的时候,通常,应用也要求管理所有在线的用户。这种管理至少包含以下几点:(1)当用户上线时,记录上线时间(2)当用户请求服务时,记录请求服务的时间、服务的类型、本次服务下载的数据量(3)当用户下线时,记录下线时间。并把本次用户登录、请求服务过程中的...

2006-03-31 15:58:00

阅读数:4

评论数:0

【Spring.net点滴】

(环境:.Net1.1 ,Spring.net 1.2 Preview)1.集合属性注入 我们的组件经常需要集合类型的属性注入,比如我的Hook(钩子)组件需要注入一个集合,该集合中的元素(int型)指明了要截获哪些类型的消息。我们经常使用IList处理集合问题: #regionHookLi...

2006-03-29 10:59:00

阅读数:8

评论数:0

“清华大学出版社抄袭事件”——章忆文给我的短信

今天,章忆文给我发来的短信——她对我说:“我觉得你是在污辱自己的人格”当我把“清华大学出版社抄袭事件”的整个过程发布了以后,一星期来,引起了清华大学出版社的编辑们强烈的反应(可以看看我的“清华大学出版社“抄袭事件”回放” 中的评论就知道他们在干什么了)。今天,我接到了章忆文的电话。她在电话里和我这...

2006-03-27 16:25:00

阅读数:14

评论数:0

ESFramework介绍之(17)―― 支持漫游用户和跨区域功能请求

对于漫游用户的支持和跨区域功能请求的支持是ESFramework最基本的目的之一(回顾),在详细讲述解决方案之前,先了解一下关于这个问题的上下文。 在我们前面讲述的4层C/S架构中,每个AS负责一块区域。比如上海AS负责处理所有目标城市为上海的功能请求和管理所有在上海AS上注册的用户(比如PDA...

2006-03-27 15:59:00

阅读数:4

评论数:0

VS小插件--属性自动生成器

对于“依赖注入”,我最常用的是“设值注入法”(即通过Setter属性注入),对于需要注入很多依赖的类来说,一个一个的手动写属性的繁琐已经让我难以忍受了。于是我写了一个VS2003的小插件,你只需要输入类型和属性名,它就能在编辑器指定的地方自动生成属性,并且一次可生成多个属性。(我试用了VS200...

2006-03-24 16:59:00

阅读数:11

评论数:0

ESFramework介绍之(16)―― Tcp数据自动发送器ITcpAutoSender

我们已经积累了这样的经验:如果有一个大块的数据需要通过Tcp发送,我们会采用异步的方式以避免当前工作线程阻塞。那么,如果我们有多个线程需要同时发送大块的数据了?每个线程都在NetworkStream或Socket上提交异步发送数据的请求会导致数据发送的混乱(多个线程同时在一个Socket上进行写...

2006-03-24 15:59:00

阅读数:3

评论数:0

ESFramework介绍之(15)-- IRAS

每个城市都对应着自己的AS,每个AS都有一组FS为之服务,而所有的AS都由一个IRAS联系/管理起来(回顾)。前面我们已经提到,所有的FS都可以是动态添加/移除的,并且FS的地址也是自由可变的。同样,所有AS也都是可以动态添加/移除的,并且AS的地址也是可变的(这里AS与IRAS的机制同上文介绍...

2006-03-24 09:59:00

阅读数:4

评论数:0

绝不妥协

  上周在BLOG上把“清华大学出版抄袭事件”来龙去脉说明了一下。看到了很多网友的评论和留言,各种观点的都有,在继续这篇文章之前,我把评论比较集中或是比较有代表性的几个贴子罗列以下,大家可以看看各种不同的评论和看法。 我在CSDN的BLOGhttp://blog.csdn.net/haoel...

2006-03-23 22:58:00

阅读数:7

评论数:0

ESFramework介绍之(14)-- AS与FS通信方案

前面我们已经多次提到,每个AS都有一组FS为之服务(回顾),AS将接收到的功能请求通过Tcp连接池或Remoting转发给某个FS处理。下面我们将深入讨论AS和FS之间的通信机制。 首先要解决第一个问题,AS如何知道每个为之服务的FS的地址? 最常见的一种解决方案是,AS处的配置文件中有一个FS...

2006-03-23 09:59:00

阅读数:5

评论数:0

ESFramework介绍之(13)-- 功能插件处理器工厂

上文讲述的是AS中的基于连接池的消息处理器,现在我们把焦点转移到功能服务器FS上来,看看FS上消息分派的过程。当FS接收到到一个请求后,会从已加载的功能插件列表中选择一个合适的插件来处理这个消息,而每一个功能插件就相当于一个消息处理器。FS和AS的结构一致: 要注意的是,功能服务器FS上收到的所...

2006-03-20 10:59:00

阅读数:6

评论数:0

清华大学出版社“抄袭事件”回放

关于“抄袭事件”,首先,我想感谢大家对我的支持。这些天来,我一直都在和律师、作者、清华大学出版社进行沟通和交涉。现在,我想把这期间发生的事情写下来,让大家看看这一事情中的众生百态。 首先先说第一本书《软件工程理论与实践》,2004年8月,某网友(请原谅我忘记了这位网友)在MSN上告诉我“...

2006-03-19 11:56:00

阅读数:6

评论数:0

ESFramework介绍之(12)―― 基于Tcp连接池的消息处理器

前面的两篇文章我们已经介绍了Tcp连接池和Tcp连接池管理器,并且引入了ITcpPool接口,这个接口可以将单个连接池和一组连接池统一起来,使它们有相同的外部使用方式。现在我们需要考虑的问题是,当消息分派器分派一个接收到的请求时,如果这个请求需要被FS上的某个功能插件处理,那么消息分派器是如何将...

2006-03-17 10:59:00

阅读数:3

评论数:0

ESFramework介绍之(11)-- Tcp连接池管理器

上文已经讲到,Tcp连接池管理器为我们的应用进行了很多复杂的管理,比如功能服务器的调度(实现FS的负载均衡)、连接池的动态添加/移除、控制每个连接池的相关参数在UI上的显示等,并且连接池管理器与单个连接池拥有一样的接口ITcpPool。我们先回顾一下这个接口: 1 publicinterface...

2006-03-16 15:59:00

阅读数:5

评论数:0

ESFramework介绍之(10)-- Tcp连接池

凡是带有“池”的,比如数据库连接池、对象池、缓冲区池(后面可以看到IBuffPool)等等,都是为了避免资源的反复创建/销毁所带来的开销。需要为哪些资源对象建立“池”了?这些资源对象通常符合下面几个特性:(1)在应用中需要反复的被创建/销毁。(2)创建/销毁的开销比较大(3)应用中给定时刻,...

2006-03-16 13:59:00

阅读数:11

评论数:0

抄袭的人是可耻的

前几天上网收信,看到网友发信给我说我的《跟我一起写Makefile》以及《用GDB调试程序》被抄袭了,已被出版。一看,还是清华大学出版社。唉,这是清华大学出版社出版的第二本抄袭我文章的书了,第一次是在两年前,我的《编程修养》被抄了,当然我还见了清华大学出版社的主编和书的第一作者(王立峰),我还记...

2006-03-16 13:37:00

阅读数:3

评论数:0

ESFramework介绍之(9)-- 插件对(Addin Pair)调试“框架”

使用ESFramework开发C/S(通常为4层、3层也没问题)应用,当需要增加一项新的业务时,我们需要做的仅仅是开发两个插件,一个是服务端的业务功能插件(FunAddin),一个是客户端插件(PassiveAddin),这两个插件合在一起称为Addin Pair。开发这两个插件,只需要关注于业...

2006-03-16 09:59:00

阅读数:6

评论数:0

ESFramework介绍之(8)-- 客户端插件IPassiveAddin

前文已经提到了,在IServerAgent的基础上,客户端也可以采用插件的结构形式,客户端插件需要实现IPassiveAddin接口。我的想法是,当客户端主程序加载一个新的PassiveAddin时,可以在某个菜单的子Items上添加一项,当双击这个子菜单项时,则弹出该客户端插件提供的“业务操作...

2006-03-15 17:59:00

阅读数:6

评论数:0

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

(本文原作于2006.03.15,第一次修正于2006.06.06,修正后适用于ESFramework V0.3+) (本文是ESFramework对客户端开发的支持特性之一 ,如果要按顺序阅读,请转到ESFramework介绍(序)) 分布式系统的构建一般有两种模式,一是基于消息(如T...

2006-03-15 16:59:00

阅读数:7

评论数:0

ESFramework介绍之(5)――消息分派器IMessageDispatcher

(本文原作于2006.03.14,第一次修正于2006.06.06,修正后适用于ESFramework V0.3+) 本来Tcp/udp组件是系统与外界交换消息的唯一进出口,而Tcp组件或Udp组件与我们系统唯一的联系是通过消息分派器IMessageDispatcher,如此一来,就相当于E...

2006-03-14 10:59:00

阅读数:5

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭