不同的IM软件不同的增值服务多线程运行平台的架构设计

目前正在开发一个针对流行IM软件增值服务开发的平台
 
我现在的设计已经有了一个雏形,是这个样子的:

IMFlat层 IM软件运行平台层

Business层 增值服务的商业逻辑层

WinFrom层  界面层


IMFlat层的设计是这个样子的:

接口:
IInstantMessageServer - 即时通讯软件的基本接口 有两个属性 Name属性表示该服务名称 Status属性表示该服务进行的状态 有两个方法Start方法表示启动该服务 Stop方法表示停止该服务

MsnServerBase - 微软MSN的基类 继承自IInstantMessageServer,实现了两个属性,但是对两个方法没有做实现仅仅做了一个Virtual的空函数,另外增加了Account和Password的字段及其属性 还增加了一个名字叫OnStatusChange的事件,我在Status属性的set访问器中调用了该事件

MsnServerByDotmsn - 微软MSN的使用dotmsn类库的具体实现版,继承自MsnServerBase,包含的字段有kernelObject(dotmsn的Messenger类型,核心对象),conversations(dotmsn的Conversation类型的IList,会话队列)

MsnBusinessBase - 业务逻辑的抽象基类 拥有Start及Stop方法 这两个方法控制业务服务的启动及停止

以上是IMFlat层,该层主要管理与支持各种IM软件的运行,调度。



Business层的设计:

Business层必须有一个Public访问级别的Business类,并且该类从IMFlat层的MsnBusinessBase继承,该类实现具体的业务逻辑,而且该DLL是利用反射机制动态加载的,也就是软件运行时才决定要加载那个业务DLL来执行特定的业务服务。

以上是Business层,该层主要是业务服务的具体实现,比如www.fanfou.com - 饭否  或者 www.xiaoi.com - 小I聊天机器人,等等,都只是Business层的一个业务逻辑类。


WinForm层:

Windows界面层,该层主要是向用户提供图形操作接口,用户可以选择使用哪个账号启动哪些服务。

posted on 2007-08-27 11:25  李超  阅读(373)  评论(0编辑  收藏  举报

导航