基于Internet的商品交易系统设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机工程与应用
2003.51引言
随着Internet 与电子商务的发展,网上拍卖与网上证券交
易等新型的交易模式应运而生,基于Web 的软件结构也为许多信息系统所采用[1]。
该文介绍的商品交易系统以浏览器作为用户界面,接收客户的买卖委托、信息查询等交易指令,采用集中竞价、自动撮合与实时行情发布的方式,实现商品的网上交易。
系统不仅要求能实现交易数据传输的准确、可靠,而且要充分考虑未来的扩展需要。
2系统结构
图1
系统的软件结构
商品交易系统的核心是对客户交易指令的处理,特别是联机的交易查询与委托撮合。
若采用浏览器/Web 服务器/数据库的三层模型,将应用处理纳入Web 服务器,
直接访问数据库,虽然易于实现,但增加了Web 服务器的负担,不仅不利于系统的安全控制,而且降低了系统的可扩展性和代码的可移植性[2]。
另外,随着交易客户数量的增加,Web 服务器将承受日益膨胀的压力,系统的设计方案必须要考虑到能适应交易客户增加而带来的负载问题,同时应具有较强的可扩展性。
因此,将处理核心业务的应用服务器从Web 服务器中分离,选择基于浏览器/Web 服务器/应用服务器/数据库的多层结构,配置协同工作的多个Web 服务器与多个应用服务器,以提高系统的安全性与灵活性。
其次,设计一个独立于DBMS 的通用数据库接口,以提高系统的可移植性与代码可重用性。
系统的软件结构如图1所示。
系统包括下列4层:
2.1人机交互层
以浏览器作为用户界面,实现与Web 服务层的交互和数
据显示。
2.2Web 服务层
由分布在多台计算机上的Web 服务器构成,负责客户与
后台应用服务器之间的信息转发。
在Windows NT /2000环境下,以IIS (Microsoft Internet Information Server )作为Web 服务器,以Web 扩展(Extension )模块作为浏览器与应用服务器之
间的接口,接收来自浏览器的客户请求,由消息转发模块将请求的参数解释、重组为特定格式的请求消息后,传送给应用服务器,并将应答返回相应的浏览器。
2.3应用服务层
以基于UNIX 操作系统的多台交易主机实现核心的商品
基于Internet 的商品交易系统设计与实现
王成耀
(北京科技大学计算机系,北京100083)
E-maii :**********************
摘
要
给出了一个基于Internet 的商品交易系统的软件结构、设计方法和实现技术。
该系统采用了基于浏览器/Web 服
务器/应用服务器/数据库的多层结构模型,以黑板结构实现应用服务器多进程之间的协同,可作为复杂应用系统的开发模板。
关键词
多层客户/服务器
商品交易
Internet 电子商务多线程
文章编号1002-8331-(2003)05-0227-03文献标识码A
中图分类号TP311
Design and Implementation of Internet-based Commodity Trading System
Wang Chengyao
(Department of Computer ,Beijing University of Science and Technoiogy ,Beijing 100083)
Abstract :In the paper ,an Internet-based Commodity Trading System is introduced.The software architecture ,design
methods and impiementation technigues are given.The Browser /Web Server /Appiication Server /Database structure is adopted ,which can be used to deveiop sophisticated appiications as a tempiate.Muitipie processes of the Appiication Server cooperate by means of a Biackboard structure.
Keywords :Muiti-tier Ciient /Server ,Commodity trading ,Internet ,Eiectronic Commerce ,Muitithread
作者简介:王成耀(1966-),副教授,主要研究领域为计算机软件。
227
交易服务,分为委托撮合服务器、交易查询服务器与行情服务器等,并可随着交易量的增加而扩展。
其主要功能是接收来自Web服务器的请求消息,根据服务码,与资源管理层交互,实现对资源的存取,返回应答消息。
其中,通用数据库I/O接口[3]独立于具体使用的关系数据库(如Oracie、Informix等),为数据库应用编程提供了一个简洁、通用和独立于具体数据表的高层接口,使开发人员能专注于应用的核心业务处理,大大降低了数据库编程的复杂性。
无论是业务处理模式的变化还是数据库环境的改动,都不至于牵一发、动全身,便于系统维护。
2.4资源管理层
以Oracie作为数据库服务器,管理整个交易系统的信息资源。
3基于多线程的Web服务器
Web服务层由可配置的多个Web服务器构成,主要包括消息转发模块与实时信息服务模块。
3.1消息转发
采用多线程(muitithread)结构,通过ISAPI MFC实现Web 扩展,以手动复位事件(Manuai Reset event)实现线程之间的同步。
主要功能包括:
(1)翻译请求:接收浏览器请求,解析、生成约定格式的请求消息。
(2)生成HTML:解析来自应用服务器的应答消息,动态生成HTML回送浏览器。
(3)Web通讯:以Socket方式实现请求/应答消息与应用服务器的交互。
3.1.1主线程
MainThread()
{
与应用服务器的通信进程建立Socket连接;
创建应答接收线程RepiyReceiver;
whiie(1)
{
接收浏览器请求,获取并记录客户信息(用户名、序列号、口令等);
截取服务码ServiceCode;
if(ServiceCode属于应用服务请求)
创建消息转发线程Transmitter;
eise
生成HTML串,回送相应的浏览器;
}
return;
}
3.1.2消息转发线程
Transmitter()
{
根据ServiceCode,生成约定格式的请求消息;
创建“应答缓冲区”Repiybuffer;
创建“应答OK”事件Repiyevent;
以网络格式通过Socket发送请求;
等待Repiyevent事件为有信号;
从Repiybuffer中读取应答消息;
生成HTML串,回送相应的浏览器;
释放Repiybuffer;
return;
}
3.1.3应答接收线程
RepiyReceiver()
{
通过Socket接收应答消息;
转换成主机格式;
写入相应的Repiybuffer;
置Repiyevent事件为有信号;
return;
}
3.2实时信息服务
实时信息服务模块主要包括下列功能:
(1)成交回报服务:对于成交回报等个人信息,通过与嵌入浏览器页面的ActiveX通信控件主动建立临时连接,实现信息推送,达到真正的实时。
(2)交易行情服务:一方面,从应用服务器接收实时的交易行情,动态更新相应的HTML文件,实现页面的动态刷新;另一方面,客户可选择只接收感兴趣的某些品种的交易行情,由浏览器定时拉取,增强交易行情的针对性和及时性。
4基于多进程协同的应用服务器
4.1结构与功能
应用服务层负责与交易有关的业务处理,由多个应用服务器构成。
每个应用服务器负责与多个Web服务器的交互,接收由Web服务器转发来的客户请求消息,并将处理后的应答通过Web服务器返回到相应的浏览器。
这种由多个应用服务器构成的应用服务层,使得系统只要修改配置文件,即可适应应用服务器与Web服务器数量的变化。
每个应用服务器采用多进程(muiti-process)结构,由系统控制模块、网络通信模块与若干相对独立的应用服务模块构成。
4.1.1系统控制模块
负责一个应用服务器中所有应用进程的启动与终止,以黑板结构实现进程间的协同操作,并监控各进程的运行状态。
4.1.2网络通信模块
(1)TCP通信:由多个进程构成,每个进程负责与多个Web 服务器的数据通信。
一方面以网络格式接收客户的交易请求(如登录、委托、委托删除等),转换成主机格式后,根据服务码,确定服务模块,按轮流服务原则,送给相应的应用服务进程;另一方面,以主机格式接收应用服务模块的交易应答,转换成网络格式后,返回到相应的Web服务器。
(2)UDP广播:接收并广播来自服务进程的广播型信息,其中包括将最新的行情信息广播到所有的Web服务器。
4.1.3应用服务模块
(1)委托撮合:为了提高撮合效率,将委托撮合分为撮合前处理、撮合与撮合后处理三个模块,以便能将其配置在不同的应用服务器中。
其中,撮合前处理模块由多个进程、以轮流服务方式接收来自网络通信模块的委托请求,处理后,发回委托应答,并将有效委托请求送给撮合模块;撮合模块按交易品种划分为多个进程,接收来自撮合前处理模块的有效委托请求,插入内存中的撮合队列,以价格优先、时间优先的原则自动进行匹配撮合,然后将成交回报发送给撮合后处理模块;撮合后处理模块由多个进程、以轮流服务方式处理成交回报。
228
2003.5计算机工程与应用
(上接219页)
5结束语
选择合理的石化行业企业信息化建设架构包含了大量技术、管理、经济方面的考虑,该文从石化行业的生产经营特点出发给出了以上的基本架构,目前已在齐鲁石化分公司和抚顺石化分公司应用,并得到一致的好评。
相信随着技术的进步和应用的深入,上述架构还会进一步更新发展,成为越来越多石化企业实施信息化建设的基石。
(收稿日期:2002年10月)参考文献
1.Aspen Corp.Aspen SoIution Architecture
2.~oneyweII Corp.~oneyweII SoIution Architecture
3.大连石油化工公司CIMS工程总体技术详细设计报告[R].DP-CIMS 总体技术详细设计小组,1999
4.王凌,王雄,金以慧等.基于生命周期和集成平台思想的流程工业CIMS 体系结构[J].化工自动化及仪表,2001;28(1):1~5
5.曹军威,范玉顺,吴澄.新一代CIMS应用集成平台系统体系结构[J].北京:清华大学学报(自然科学版),1999;39(7):28~35
6.迈克尔波特.竞争优势[M].华夏出版社,1997
(2)客户登录:由一个进程接收来自网络通信模块的客户登录与退出请求,返回登录与退出应答。
(3)交易查询:由多个进程、以轮流服务方式处理来自网络通信模块的委托、资金、交易品种与成交等查询请求。
(4)风险监控:当行情涨跌幅超过设定的阈值时,动态启动,实现客户资金的风险控制。
(5)行情分析:实现盘中、盘后的商品价格走势分析,为客户交易提供参考。
此外,还有行情发布、结算处理与交易管理等模块,分别用来发布行情信息、进行交易结算与自动设置交易状态等。
4.2多进程间的协同
以黑板BLACKBOARD作为应用服务器各进程之间共享信息与协同操作的数据结构,描述模块、进程、服务等信息。
为了达到进程间的启停同步,简化程序设计,采用“多步启停”方式[4]。
当同一服务对应多个处理进程时,采取“轮流服务”(如交易查询模块、撮合前处理模块)或“服务预分配”(如多个撮合进程按照交易品种划分服务范围)的消息传递策略,同一进程的多个服务请求以优先级排队。
系统控制进程根据配置文件实现系统的初始化,以信号量控制多个进程对黑板的存取,通过多个软件定时器为所有进程提供统一的定时服务。
其主要功能包括:
4.2.1系统初始化
!从配置文件装入系统环境参数,如缺省工作目录、模块信息、进程信息等。
"设置缺省工作目录。
#为所有进程创建消息队列;建立黑板BLACKBOARD。
$进入消息处理循环,以接收应用进程的服务请求(如定时),向应用进程发送应答。
4.2.2启动应用进程
!根据BLACKBOARD记录的进程信息,创建应用进程。
"向各应用进程的消息队列发送“初始化”消息。
4.2.3终止应用进程
根据BLACKBOARD记录的进程信息,向各应用进程的消息队列发送“终止”消息。
4.3基于框架的应用进程实现
一个好的框架可大大降低应用系统的开发成本、提高代码的可重用性[5],因此,系统采用了基于框架的设计模式。
将每个应用服务模块所处理的服务分类,以服务码标识,并确定其优先级,每个服务对应一个处理函数。
采用统一的程序框架和公共的main函数,基于消息驱动实现服务处理,各应用进程只要设计并实现相应的服务处理函数即可[2][4]。
其次,采用信号量实
现进程间的同步。
以撮合前处理模块为例。
该模块主要用来对委托指令进行有效性检查,分为委托处理、委托删除处理、开盘处理与收盘处理等功能。
因此,建立如下所示的服务映射:
BEGIN_SERVICE_MAPPING//服务码,优先级,服务处理函数
ON_SERVICE(SM_START P,200,StartupEntry)
ON_SERVICE(SM_S~ TDOWN,200,ShutdownEntry)
ON_SERVICE(SM_BS_REO,100,BSEntry)//委托处理
ON_SERVICE(SM_DEL_REO,100,DeIEntry)//委托删除处理
ON_SERVICE(SM_OPEN_REO,100,OpenEntry)//开盘处理
ON_SERVICE(SM_CLOSE_REO,100,CIoseEntry)//收盘处理
END_SERVICE_MAPPING
5结束语
(1)系统采用了基于浏览器/Web服务器/应用服务器/数据库的多层结构,根据需要可配置多个Web服务器与多个应用服务器,具有较强的可扩展性。
(2)系统实现了不依赖于具体数据库系统的I/O接口,具有较好的可移植性。
(3)系统采用了基于框架的软件开发模式,具有较好的代码可重用性。
其中,采用统一的应用进程框架,极大地提高了系统的开发效率;Web服务层作为用户与应用服务器之间通信的中转站,其核心代码可保持相对稳定,只要稍加修改即可用于不同应用系统的实现中。
(4)Web服务器与应用服务器之间保持相对独立,不仅提高了系统的安全性,而且有利于系统功能的修改、扩充以及系统环境的升级。
(5)文中所述的商品交易系统已投入使用。
(收稿日期:2002年1月)
参考文献
1.Sanjaya~ettihewa著.李茂贞等译.Windows NT4WEB开发指南[M].
北京:清华大学出版社,1997
2.Wang Chengyao,Tu Xuyan,Zhou Yongdong.A Web Based MuIti-Iayer InteIIigent Management System and Its AppIication[C].In:Proceedings of4th Asia Pacific Decision Sciences Institute Conference,Shanghai,1999
3.王成耀.关系数据库通用表I/O API及应用模板的实现[J].计算机工
程与应用,2001;37(6):79~81
4.王成耀.基于多层客户/服务器模型的多线程应用实现框架[J].计算机
工程与应用,2001;37(21):147~149
5.SommerviIIe I.Software Engineering[M].Fourth Edition,Addison-WesIey,1993
229
计算机工程与应用2003.5。