当前位置: 首页 > 工具软件 > CWSS > 使用案例 >

CWSS开发版本历史, 持续更新中

陈志
2023-12-01

 

 

VERSION: 0.8.0
2008-2-26:
1. 使用EasySoap++-0.8.0(expat-2.0.0)开源库,正式支持WebService接口;


2008-2-22:
1. 修正关闭TCP通讯连接时,发生内存异常问题;
2. 增加AceHTTPServer类,使用ACE支持HTTP,方便日后系统移植;


2008-1-9:
1. 当注册CWSS为NT服务自动启动时, 有时会比其他服务(比如Oracle)更快启动, 这时会导致某些模块数据库连接失败;
为解决此问题, 在conf/default.xml增加一个配置参数如下, 启动模块前等待秒数, 不填默认为5秒.
  <time waitsleep="10" />

 

2007-12-17:
1. 完善CwsClient的退出机制, 避免在有些应用环境(比如定义全局变量)时, 无法退出客户端, 导致发生线程挂死现象;

VERSION: 0.5.7
2007-11-28:
1. CwsBase.md5类, 增加cws namespace, 避免跟其他库相同类冲突;


2007-11-27:
1. 去掉CWSClass.vcproj工程, 不再编译有CWSClass.lib; 调整CWSClass类结构, 使更方便使用;
2. 完善对ACELib和XercescLib的使用;


2007-11-26:
1. 增加CwsClient.SetCidData(), GetCidData()等函数;
2. 增加cws::gTimer->KillAllTimer();
3. CwsClient其他完善;


VERSION: 0.5.6
2007-11-23:
1. 解决0.5.5版本客户端创建CwsClient类偶尔会发生线程死锁问题:
2. CWSClass项目类, 增加cws namespace(命名空间)定义;


2007-11-22:
1. 增加定时器功能, 接口和事件函数描述如下:
virtual bool SetTimer(unsigned int nIDEvent, unsigned int nElapse, void * pvParam) = 0;
virtual void KillTimer(unsigned int nIDEvent) = 0;
extern "C" void CWS_API CWS_OnTimer(unsigned int nIDEvent, void * pvParam){}


2007-11-21:
1. 解决客户端不会定时激活SESSION问题;
2. 完善客户端验证群集服务器机制;

 

VERSION: 0.5.5
2007-11-20:
1. 完善群集协议, 增加端口字段, 便于支持在同一机器上实现群集功能;
2. CWSLib客户端实现群集(负载均衡)功能, 详细见CwsClient类结构;
3. 动态将客户端数据保存到[CURRENT_PATH]/cwss_client_info文件, 比如群集服务器信息等;

 

2007-11-15:
1. 增加模块调用接口加锁控制, 有三种锁状态:
 LS_NONE : 无锁控制, 可以并行处理, 模块内部自己处理并发控制;
 LS_WAIT : 等待锁控制, 也即单线程处理模式, 等待上一个调用返回后, 继续当次调用;
 LS_RETURN : 返回锁控制, 如果上一调用未完成, 不等待, 立即返回, 客户端会收到'-107'错误;

2007-11-13:
1. cwsAttributes除了StringMap实现属性外,增加ULongMap,可以用于提高查找效率,以及减少内存储存空间.
2. cwsSystem增加getCwsSession(), 定义如下:
virtual cwsSession * getCwsSession(const std::string & sessionId) =0;
(应用: 成功获得cwsSession, 可以通过cwsSession->getLastResponse()获得到cwsResponse, 获得cwsResponse后,
就可以发送信息; 也就是说只要知道某个客户端的sessionId, 就可以主动发送信息给对方(典型IM应用).)


2007-11-9:
1. sotp.ses和sotp.clu同sotp.app一样增加cid协议字段;
2. 完善CWSLib.CwsClient类结构.


2007-11-8:
1. 提高底层日志打印速度.
2. 把CWSLib的CwsUdpClient(UDP)和CWSMsgProxy(TCP)统一集成到CwsClient类中,方便维护和使用.


VERSION: 0.5.3
2007-11-1:
1. 调整CWSS解决方案框架, 增加CWSClass工程; 用于保存CWS基础类;


VERSION: 0.5.2
2007-10-31:
1. 完善sotp.app协议; 增加'sign'字段项, 用于标识一个呼叫, callid用于系统自动分配唯一标识;
2. CWSLib.CwsUdpClient增加超时重发机制, CWSLib.CwsUdpClientHandler增加OnCidTimeout()超时重发通知事件接口;
3. 修正添加系统配置参数功能后, 在命令行方式操作(stopwss,startwss重启CWSS)时, CWSS发生异常问题;
4. 解决日志打印级别配置无效问题;


2007-10-29:
1. 去掉cwsOut的打印测试接口, 统一使用cwsApplication->log()代替;
2. 完善调整cwsSystem实现框架, 并增加getServerHttpPort()接口;
3. cwsSystem增加实现cwsAttributes功能, 实现系统级属性, 可以应用于模块间实现数据交互;
4. cwsSystem增加getInitParameter(), getInitParameterString()接口, 实现系统级配置参数;
  系统配置参数文件为conf/params/params_cwss.xml, 配置格式同模块参数配置.


VERSION: 0.5.0
2007-10-23:
1. SESSION增加引用计数器, 解决调用API和关闭SESSION同时操作时(或其他情形)发生内存异常问题;


2007-10-22:
1. 去掉对WinBaseLib组件的依赖;


VERSION: 0.4.5
2007-10-19:
1. CWS协议改名为SOTP(简单对象传输协议);
2. 增加实现群集功能协议;
3. 为了支持群集功能, 修改conf/default.xml配置项位置, 并增加clusters.xml和auths.xml;


2007-10-17:
1. 解决退出CWSS后台(或NT服务)时有时会发生异常挂死问题;
2. 完善内置对象使用cwsAttributes类接口, 增加存取锁, 避免发生内存存取异常;
3. 解决CWSS 不时不能正常打开监听端口错误;


VERSION: 0.4.2
2007-10-16:
1. 增加配置组件验证用户帐号功能;
2. 修正CWSS内部打开日志时, 有时会发生死锁问题;


VERSION: 0.4.0
2007-10-12:
1. 修正四个可选函数发生异常时, 导致CWSS退出问题;
2. 完善对客户端的SESSION管理, 避免多客户端打开,关闭SESSION频繁操作时, 发生链表操作异常;


2007-10-11:
1、增加对HTTP POST协议的通讯支持:


VERSION: 0.3.2
2007-10-10:
1、修改Open Session协议,增加Account和Passwd二个字段,如下:
<cws.ses type="open" value="[APPLICATION_NAME]" account="[ACCOUNT]" passwd="[PASSWD]" />

2. 修改(FAR *FPCWS_Session_Open)(cwsSession * pHandler)可选;
原来:
typedef void (FAR *FPCWS_Session_Open)(cwsSession * pHandler);
改为:
typedef bool (FAR *FPCWS_Session_Open)(cwsSession * pHandler);

3. 完善系统返回错误代码;


VERSION: 0.3.0
2007-10-9:
1、在所有ACE_TEXT_CHAR_TO_TCHAR宏位置增加try{}catch(...){}处理;
2、在AppLog打印日志关键位置增加存取锁机制,避免链表操作异常;
3、增加virtual ULONG cwsResponse::getParameterCount(void) const =0;()函数;
4、修改cwsResponse类的setParameters()、setParameter()函数为返回ULONG类型(原来为int);


2007-9-26:
1、增加CWS_Session_Open()可选函数;
2、修正tstring->std::string引起的打印乱码问题;


2007-9-21:
1、增加并支持<attach>发送接收附件数据协议;
2、全面修改,统一使用std::string;


VERSION: 0.2.6
2007-9-5:
1、cwsString增加replace函数;

2007-8-17:
1、CWSS增加打印日志配置功能,配置文件为conf/log.xml;
2、修正部分打印BUG,会导致异常退出;


2007-8-2:
1、CWSS增加支持ACE日志配置cwss_acelog.conf;
2、在初始化模块以及释放模块增加捕捉异常处理,解决DEBUG/RELEASE版本不一致时发生CWSS退出异常。


2007-8-1:
1、CWSS添加支持注册NT服务功能;


VERSION: 0.2.5
2007-7-25:
1、增加gApplication->getInitParameterString,和request->getParameterString;
方便直接对参数值进行操作;


2007-7-13:
1、完善cwsString类,增加Char2W,W2Char,Convert,toMd5等常用函数;
2、增加对UTF-8通讯支持;


2007-6-25:
1、完善CWSLib.XmlParseCwsProto,可以直接通过参数名称获得参数;
2、完善cwsResponse内部实现,限制不能发送相同名称的参数;
3、增加cwsString类,支持常用字符串操作;


2007-6-22:
1、增加组件打印日志文件功能,如下调用;
gApplication->log()


VERSION: 0.2.4
2007-6-14:
1、conf/default.xml增加配置UDP最大客户端数;


2007-6-7:
1、增加SESSION超时处理机制;
TCP:SOCKET断开后,超过60秒没有重连时,CWSS自动关闭该SESSION;
UDP:UDP没有连接机制,当超过10分钟没有新访问,CWSS自动关闭该SESSION;(该超时同时对TCP有效)

2、增加异常处理捕捉机制,以及多线程访问加锁处理;

3、完善打印测试信息;


2007-6-5:
1、CWSS增加对UDP通讯支持,目前支持SOCKET TCP & UDP二种通讯;

VERSION: 0.2.3
2007-6-4:
1、CWSS增加命令行控制方式管理功能;

2、去掉远程SOCKET命令行控制方式管理功能;

3、简单调整返回协议,如下;这样可以知道返回协议对应请求:
原来:
<cws.ses type="result" value="[SESSION_ID]" />
改为:
<cws.ses type="open" result="[SESSION_ID]" />
其他的close active call的返回协议都一样修改。


2007-6-1:
1、增加会话协议机制(打开会话、关闭会话和激活会话);

2、基于增加会话机制,修改旧应用模块调用通讯协议;

3、增加一个、修改二个应用模块可选项函数;最新如下:
extern "C" bool CWS_API CWS_Module_Init(void)
extern "C" void CWS_API CWS_Module_Free(void)
extern "C" void CWS_API CWS_Session_Close(cwsSession * pHandler)

4、cwsSession会话增加引用机制,同时支持实现主动发送数据功能:


VERSION: 0.2.2
2007-5-30:
1、增加支持长数据包多次处理机制;

2、错误XML格式包超时返回处理机制;

3、优化数据处理和内存处理,提高响应速度;


VERSION: 0.2.1
2007-5-29:
1、修改并完善cwsRequest、cwsResponse、cwsApplication和cwsSession内置对象:

2、修改cont/modules.xml配置文件格式:
<module name="DllTestd.dll" type="DLL" allowall="1" />
TO:
<module appname="DllTest" appmodule="DllTestd.dll" type="DLL" allowall="1" />

3、功能模块参数配置文件conf/params/[appname]_params.xml,增加版本号设置:
<version Major="1" Minor="0" />

4、完善并修改调用协议,如:
原来是:
  <module name="stringtest" type="DLL" />
  <method id="1" name="SetString" type="1" />
修改后是:
  <module appname="stringtest" />
  <method id="1" name="SetString" />
没有模块类型以及函数类型设置。


2007-5-28:
1、完善cwsResponse:
增加virtual int setParameters(const MyParameterList & parameters)接口;

2、返回XML数据时,在结尾增加'/n'回车换行符,方便JAVA语言readLine();

3、完善cwsResponse返回数据机制;


VERSION: 0.2.0
2007-5-25:
1、框架调整,修改成以下一种API类型:
typedef int (FAR *FPCWSApi)(const cwsRequest * request, cwsResponse * response, cwsSession * session);

2、简化模块应用开发,添加CWSBase.lib,增加二个全局变量:
extern CWS_API cwsSystem * gSystem;
主要用于打印测试信息。

extern CWS_API cwsApplication * gApplication;
主要用于获取初始化参数。


VERSION: 0.1.2
2007-5-18:
1、修改conf/modules.xml模块配置格式:

<module name="UserRegisterd.dll" type="DLL" method="allow.all" />
改为
<module name="UserRegisterd.dll" type="DLL" allowall="0" />

2、增加设置功能组件模块允许调用函数功能;
配置文件为conf/allows/modulename_methods.xml


2007-5-17:
1、参数基础类Parameter增加Index成员变量。


2007-5-16:
1、增加功能模块主动发送数据给远程调用者机制。


2007-5-10:
1、CWSS使用绝对路径xml配置文件;
2、完善退出事件处理机制。


2007-5-9:
1、增加事件接收器机制,实现CWSS接收模块事件功能。
CModuleHandler接收器类
extern "C" bool SetModuleHandler(CModuleHandler * pHandler)
extern "C" void ClearModuleHandler(void)


VERSION: 0.1.1
2007-4-27:
1、完善框架;
2、增加模块初始参数、模块启动、模块退出调用机制。
extern "C" bool WINAPI Module_InitParam(const Parameter * pParam)
extern "C" bool WINAPI Module_Init(void)
extern "C" void WINAPI Module_Free(void)


VERSION: 0.1.0
2007-2-27:
1、CWSS基本框架;
2、调用、返回通讯协议,数据类型等基本信息;
3、基本通讯,调用、返回;
 

 类似资料: