QuickFix/J 源代码
研究(四)
guibin.beijing@gmail.com
(四). QuickFix/J总体逻辑
架构
1. QuickFix/J是以Initiator为核心,如下图所示
上图中各个模块的关系:
处于核心位置的是Initiator,具体如图上表示的一系列继承关系构成,正是Initiator将QuickFix/J的大多数的核心功能组合在一起,成为一个整体。而各个核心组件之间的关系非常松散,多数都可以由XXXFactory生成。Initiator由大约6核心个组件组成,分别是处理消息的EventHandlerStrategy,存储配置的SessionSettings,存储所有session的容器sessions,存储所有IoSessionInitiator的容器ioInitiators,SessionFactory,以及QuickFix/J客户端的“发动机”SessionTimerTask。SessionTimerTask在启动Initiator时触发,并持续一直运行,直到被取消运行为止,它定时检查Session中所有状态并做相关操作,细节请参考QuickFix/J 源代码研究(一)中的A-5。
2. IoSessionInitiator的结构:
下图描述的是容器ioInitiators中每个元素IoSessionInitiator的结构:
这里有QuickFix/J中的另一台“发动机”ConnectTask,它通过Mina的底层IoConnector得到网络中的数据事件,触发IoHandler中的processMessage,逐层回调到用户,并驱动整个客户单Initiator工作。细节请参考QuickFix/J 源代码研究(一)中的A-6和B。
Guibin
2011-01-09