LightweightCTI架构设计(5)
五、适配器层整体结构图
(图5.1 适配器层整体结构图)
在LightweightCTI适配器层由如下类构成:
Ø 通道管理器(ChannelManager);
Ø 板卡适配器(CTICardDriver);
Ø 通道(Channel);
Ø 脚本引擎(ScriptEngine);
Ø 任务管理器(TaskManager);
Ø 呼叫任务(CallTask);
Ø 会话(Session);
Ø 任务队列填充器(TaskQueueFillter);
Ø TTS(适配器)引擎(TTSEngine);
Ø 临界区(CriticalSection)。
六、应用LightweightCTI的软件结构
前面对LightweightCTI的体系结构进行了详细的介绍,我们已经知道其灵活性及强大的扩展性。但是再强大、再灵活的框架如果不好使用的话,那也没有任何价值。为此,在本节将对使用LightweightCTI进行应用开发的软件结构进行简要的介绍。
6.1、框架整体设计模式
为了便于LightweightCTI本身的开发以及使用它进行语音应用软件的开发,在设计之初始我们就对其进行了相应的规划。无论是LightweightCTI核心系统还是外围的扩展组件都遵循MVC(模型-视图-控制器)的设计模式。
视图(View) 用户界面包括基本的GUI、字符界面或系统服务 |
模型(Model) 脚本程序、任务管理器及队列填充器等 |
控制器(Controller) 通道管理器、板卡适配器、TTS/脚本引擎及通道等 |
(图6.1 适配器层应用开发模式)
通过MVC模式的应用能够使控制器、视图对模型中数据的变化做出相应的响应,同时又减小了系统中各组件之间的依赖关系。也有利于对系统进行单元测试,因为对模型中的数据(业务逻辑)的操作根本不涉及视图,所以有机会单独的对模型进行测试,当然它的好处绝不仅于此,这方面的资料十分多大家可以找来详细了解一下这里便不再详述。
6.2、应用LightweightCTI的软件结构
在面向对象的软件开发与应用中,良好的层次结构不但有利于软件系统的开发与维护工作,更能够提高系统相关组件的复用程度,从而实现构件化的软件开发。LightweightCTI的设计目标之一就是实现组件化的应用软件结构,对此在LightweightCTI体系结构一节有详细的介绍,在此将只对应用LightweightCTI进行应用软件开发的结构图作一简要介绍。
操作系统、数据库软件 |
板卡驱动程序软件 |
其它软件如CRM、ERP |
公共服务、相关工具等 |
全局属性、资源 |
组件容器 可扩展插件树 |
呼叫中心、800电话服务系统、娱乐声讯台等应用软件 |
IVR流程编辑器 |
IVR流程调试器 |
IVR脚本编辑器 |
板卡适配器层 |
动态脚本引擎 |
IVR流程引擎 |
(图6.2 应用LightweightCTI的软件结构)
从上图可以看出利用LightweightCTI所开发的软件结构层次主要有:(1)、底层的操作系统、数据库系统、其它软件如CRM、ERP等及语音卡等板卡驱动程序软件;(2)、LightweightCTI框架微内核系统,此层向上层提供基础的全局属性、资源管理、系统扩展组件的管理等功能;(3)、系统扩展组件,这一层次包括提供基础服务的板卡适配器层、动态脚本引擎、IVR流程引擎及稍上层次的IVR流程编辑器、调试器和脚本编辑器;另外一方面是具体的业务软件,如呼叫中心、客服800系统、娱乐声讯软件等。整个系统由系统组件容器接口进行统一的管理与调度,最终使插入到其中的各扩展组件相互协作完成特定的业务功能。
七、LightweightCTI发展规划
应用LightweightCTI框架为东莞市自来水公司开发的自动催缴与查询系统已经成功部署并稳定运行一个多月时间。因此,我们对于运用LightweightCTI框架作为商业软件的开发是充满信心的。另外一方面,由于本人专业技术水平的限制,在文中难免出现这样那样的错误,而框架本身也有待进一步完善和丰富,为此请各方面的专家就文中出现的错误及框架设计不完善之处予于斧正。在接下来的时间里我将就大家提供的反馈意见对其进行修正。在中长期的发展中,我将在资源允许的条件下着重完成如下工作:
(1)、对国内目前主流的板卡适配器的开发,当然有些受到开发环境搭建的限制将会推迟完成;
(2)、为LightweightCTI for Delphi/C++Builder
(3)、研究VoiceXML RFC文档,今后无论哪个版本的框架将以VoiceXML作为首先支持的脚本语言;
(4)、将LightweightCTI移植到.NET 2.0环境下,并以其作为后续版本主要的开发环境;