I3 Dialer之蜻蜓点水(一)
学习原由:
公司前段时间上了Dailer功能,此系列文档记录我了解I3 Dailer过程中的点滴,仅限于个人了解和学习。
术语:
ODS (Outbound Dialer Server) ,CCS (Central Campaign Server) ,PMQ (Persistent Message Queuing),Campaign
Dialer机制:
I3服务主要使用 PMQ 和专用通告程序协议进行通信。在如告知ODS启动,停止或者重启workflows and campaigns会用到专用通告程序协议进行控制信息交换。仅在数据库方面的会基于PMQ进行有关操作。PMQ(持久性消息队列)提供了使用存储和转发模型的松散耦合的通信方式。数据更新和控制信息会暂时保存在队列中,确保事务和信息不会因为网络或计算机故障而丢失。
一般部署:
一般部署ODS、CCS和DB各自分别部署在不同的服务器上,CCS可以同时管理多个ODS。ODS为了利用CIC的failover功能,一般情况下会和CIC安装在同一服务器中。CCS可以控制多个ODS。
硬件服务器VS软件服务器(软件服务器其实就是应用或应用进程)
硬件服务器 |
托管软件服务器 |
Central Campaign server |
CampaignServer process |
Outbound Dialer servers |
Customer Interaction Center |
信息流
下图拷贝于参考文档,也仅限我日后便于回顾。
注意:
1、上图CCS和DB安装在一台物理服务器上
2、Software Process是基于PMQ的,Control Message基于Notify
3、ODS利用PMQ向CCS的UpdateServer Process传送数据库更新的信息,这些信息包括:ContactList、CallHistory、CallRecordSchedule和Agnet统计表的更新。
4、各阶段数据库更新会在被各自的应用以.I3P文件方式临时保存
5、只有确认UpdateServer process接收到信息,该信息的会在ODS的队列中移除。
6、UpdateServer process接收到ODS的信息并传递给DialerTranServer process,如果无法传递给DialerTranServer process,则保存在UpdateServer process的队列中。
7、DialerTranServer process根据接收到信息发送给DBMS相应的操作。DBMS操作成功,信息中UpdateServer process队列中移除,如果失败则从UpdateServer process队列转移到Error Recory Queue队列。
数据流
参考(摘自原文Interaction Dialer Product Concepts):
Differences between PMQ and Microsoft MSMQ MSMQ and PMQ route and store messages until they can be processed. A message is any unit of work that is saved and processed as a chunk of binary data. However, there are significant differences between PMQ and MSMQ, in terms of architecture, administration requirements, and performance. PMQ is a client send-side utility that functions as a send-cache. PMQ support is built directly into CIC applications such as Interaction Dialer. MSMQ requires customers to install external software "clients" and "servers". MSMQ is monolithic; it requires developers to use a rigid set of predefined methods. PMQ is more flexible for developers. It provides base classes that standardize the algorithms used to cache, save, or send data between applications. CIC application developers can extend these classes to custom-tailor messaging for an application. PMQ is more efficient than MSMQ, since PMQ messages pass directly between applications and do not traverse through MSMQ components. PMQ does not use or require DCOM, Active Directory, MSMQ Client, Server, or a Primary Enterprise Controller (PEC). Moreover, PMQ stays in process, uses an efficient idle state, and avoids the cross-network overhead associated with MSMQ.