互联网商品交易业务支撑引擎的分析与设计

来源 :现代信息科技 | 被引量 : 0次 | 上传用户:liyqi
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘  要:互联网商品交易市场发展迅猛,交易规模及交易额屡创新高,其中,各类业务支撑引擎发挥了不可替代的作用,针对“面向对象编程(高级)”教学内容,对通用业务支撑引擎进行了分析与设计。软件以C++及Lua脚本语言为载体进行设计,主要模块包括Lua环境绑定及注册模块、核心业务场景模块、数据加密模块、数据通信模块、数据库操作模块、日志模块、配置模块等,引擎体系功能完备,性能高效且稳定,具有较高的教学指导意义。
  关键词:互联网商品交易;业务引擎;教学指导
  中图分类号:TP391.3       文献标识码:A 文章编号:2096-4706(2021)02-0024-04
  Abstract:Internet commodity transaction market is developing rapidly,and the scale and amount of transactions have repeatedly hit new highs. Among them,various business support engines have played an irreplaceable role. Aiming at the “Object Oriented Programming(Advanced)” teaching content,general business support engines have been analyzed and designed. The software is designed with C++ and Lua scripting language as the carrier. The main modules include Lua environment binding and registration module,core business scene module,data encryption module,data communication module,database operation module,log module,configuration module,etc.,the engine system has complete functions,high efficiency and stability,and has higher teaching guidance significance.
  Keywords:internet commodity transaction;business engine;teaching guidance
  0  引  言
  互联网商品交易是指通过互联网或其他电子渠道,针对个人或家庭需求销售商品以及提供服务,主要以B2B及B2C两种交易模式来实现交易。商品交易活动是通过互联网进行信息的组织及传递,实现了有形商品和无形商品所有权的转移及服务的消费。近年来,得益于通信技术的发展和普及,国内互联网用户逐年攀升,特别是手机用户增长迅猛,使得网络购物业已成为我国消费者较为重要的消费方式,年网络交易总额已近10万亿元,如此庞大市场规模的另一个支点就是互联网技术,而其中的业务支撑引擎则是较为关键的一环,它为高并发的交易订单在众多用户与商户之间的正常流转提供了保障。
  通过对业务支撑引擎软件的分析与设计,使学生了解更多有关互联网后台程序的技术细节,同时增强了对“面向对象编程(高级)”课程知识点的理解与掌握,可提升学生的实践动手能力。
  1  系统需求分析
  根据商品交易业务复杂多变的特性,在设计时采用了C++与Lua脚本语言相结合的方式,C++语言用于完成框架的通信、数据库交互等基本功能,Lua语言则在框架的基础上进行业务流程代码的开发。Lua语言作为一种脚本语言,具有编程简单、快速响应的特点,对于商品交易领域要求快速接入同时需求多变的应用场景具有明显的优势。因此软件功能设计上主要采用Lua环境绑定及注册模块、核心业务场景模块、数据加密模块、数据通信模块、数据库操作模块、日志模块、配置模块。Lua环境绑定及注册模块用于在C++的框架下将Lua代码执行的环境进行绑定,并将其他C++类功能函数注册到Lua环境中,以便可以在Lua脚本中直接调用,实现Lua代码与C++代码的相互配合调用。核心业务场景模块包含服务器模块、生产—消费者模块、定时器模块,可根据配置将软件注册为对应功能的系统服务。服务器模块主要用于接收网络请求,生产者—消费者模块主要用于筛选符合条件的订单记录并发处理,定时器模块间隔固定时间运行一次以完成特定业务功能。数据加密模块用于对交互的报文数据进行加密处理,发送端对数据进行加密生成签名信息,接收端进行同样的加密操作并进行对比验签,避免数据在传输过程中被篡改而造成损失。数据通信模块用于实现基础的http报文交互功能,確保报文交互高效稳定。数据库操作模块用于执行与数据库相关的操作,保证数据安全存储。日志模块主要用于订单业务流程的日志记录,便于对订单状态的跟踪分析。配置模块为系统启动提供初始配置,避免改动代码,便于灵活部署。
  2  开发环境及关键技术
  软件是基于Windows 10系统进行的设计,集成开发环境采用Visual Studio 2018,功能强大,操作简便,可有效提高编程效率。
  编程语言采用C++与Lua相结合的模式,充分结合两种语言各自的优势,使得软件功能稳定且易于扩展,因此两种语言的相互正确调用是此软件的关键技术点之一,这里采用以C++语言为主体,以Lua语言为嵌入语言的方式进行设计。
  在设计时将互联网常用的三种业务场景支撑后台程序集成到一个软件中也是个关键的技术点,通过配置启动对应的模块功能,增加了开发的难度,但却简化了程序部署等后期维护的工作量,从长远来看此举更为有利。   数据库采用目前广泛应用的开源数据库——MySQL数据库,其具有稳定、高效、易于开发的优点。为进一步提高数据库的性能,在实现基本的增删改查功能的基礎上增加了数据库连接池的设计,通过减少数据库连接对象的创建及释放操作,可有效提高并发操作性能。
  数据通信则是采用Windows系统下最高效的异步完成端口网络通信模型,以期实现单平台下最佳的网络报文通信能力,确保高并发订单接收的准确性。
  3  系统功能结构设计
  软件系统功能结构图如图1所示,其主要由7个模块构成。下文从类图的角度逐一说明各模块的设计。
  3.1  Lua环境绑定及注册模块
  Lua代码并不是直接被Lua解释器解释执行,而是先被编译为字节码,然后再交由lua虚拟机去执行。因此Lua脚本语言在执行之前,就需要在C++代码中对Lua虚拟机进行绑定,通过创建一个与之相对应的状态结构来实现对当前Lua环境的管理,上述步骤均可以通过相关的动态库函数来实现,方便快捷。在绑定好Lua环境之后,就可以往该环境中注册可在Lua脚本中直接调用的C++函数,注册时需要提供C++的类名及对应函数,同时在注册时需要指定对应环境的状态结构。通过此步骤即可在Lua脚本中调用其他各功能模块中的函数,以完成业务逻辑的编码工作。该模块的主要类图如图2所示,该类除了实现前述功能外,同时也是一个线程基类,后续部分模块类需要继承该类,才能实现函数的相互调用。
  3.2  核心业务场景模块
  核心业务场景模块包含服务器模块、生产—消费者模块、定时器模块。
  服务器模块用作报文通信的接收服务端,负责接收来自网络上不同节点商户或用户的请求,具有高并发的特点,若不能满足此项要求,会直接影响系统收单数量,降低收益。
  生产者—消费者模块是指由生产者脚本筛选符合条件的订单,再分配给消费者脚本进行处理,两者之间的关系是1:N,即1个生产者匹配多个消费者,如此达到并发处理的效果,快速将系统中的订单再次分发到下游商家或直接分发到供应商系统。
  定时器模块主要用于完成定时执行的监控任务,系统中的订单总会有少数订单会出问题,比如订单超时,为了实现自动扫描出现问题的订单,需要有定时程序不断轮询检查,以便及时发现问题订单并及时处理,避免造成不必要的损失。
  如图3所示,三个模块类均继承了cluabase类以实现各线程的Lua环境绑定及操作,也分别实现了各自线程的启动结束的函数,同时增加了加载配置信息操作,以便处理各个模块自身的配置信息。
  3.3  数据加密模块
  数据加密模块用于确保数据传输的安全性,数据报文在网络中传输时可能会被恶意截取篡改,轻则造成单笔交易订单的数据记录出现问题,重则对整个数据库内的数据造成不可逆的破坏,后果不堪设想,所以需要在数据发送前进行加密计算获取签名,在接收端进行签名验签,确保数据无误后才可对其进行后续处理。模块主要类图如图4所示,目前设计上只使用两种加密算法,一个是MD5信息摘要加密算法,一个是Des加密算法,这两种算法在实际应用中被广泛采用,安全度也较高,可有效验证数据安全性。
  3.4  数据通信模块
  数据通信是互联网软件的核心功能,http报文是网络通信的主要方式之一,本文设计的引擎系统采用该方式进行通信,数据通信模块需要解决http报文的组包、发送、接收、解析等功能。采用完成端口异步通信能最大限度地保证数据发送及接收的效率,但其组包及解析功能相对复杂,需要考虑的情况比较多。图5为该模块的主要类图,CSocketHandle类主要负责底层的套接字通信,而chttpprocess类继承了csockehandl类,在继承基类功能的基础上添加了http报文的两种请求方式,即Get和Post方式,两种方式在组包及解析上有较大不同,需要区别对待。
  3.5  数据库操作模块
  数据库操作是所有软件的必备功能,该模块功能组件化后也可直接集成于不同的软件系统,省时省力。从综合性能以及成本方面的考虑,软件设计采用MySQL数据库,在完成基本数据库操作功能后,性能是高并发应用软件主要的优化点,这里采用常用的数据连接池。图6为该模块的主要类图,cdatabase类图提供基础的数据库增删改查功能,在此基础上,cdbconncetpool在启动时创建多个数据库连接对象并将它们保存到队列中,需要时即从队列中提取,结束后再将其归还到队列中,此方法在高并发的数据库访问下可避免频繁地创建和释放数据库连接对象,减少资源消耗,有效地提高了访问性能。
  3.6  日志及配置模块
  日志模块用于记录时间及各函数调用情况,在函数调用前后及函数内部代码的执行过程中都需要日志输出,便于分析业务流程及查找问题,其类图如图7所示。
  配置模块用于配置信息的读取,比如数据库信息的配置、核心业务场景模块信息的配置等,都通过配置文件提供,其类图如图8所示。
  4  结  论
  本文分析了互联网商品交易业务支撑引擎的通用需求,并对引擎的设计展开描述,后台业务引擎可帮助进行线上商品交易的企业实现定单接收、订单转发、异常订单监控管理等产品链中的核心业务功能。本案例应用场景为“面向对象编程(高级)”课程,通过对软件系统设计的分析与描述,增进学生对行业应用的了解,提升了软件系统分析与设计的能力。
  参考文献:
  [1] 吴杰明,方英兰.软件工程实例教程 [M].北京:清华大学出版社,2010.
  [2] 王英英.MySQL8从入门到精通 [M].北京:清华大学出版社,2019.
  [3] 陈晓军,朱铨荃,何欣,等.网站后台通用管理系统分析与设计 [J].技术与市场,2009(9):11-12.
  [4] 李伟红,龚卫国,马任飞,等.基于C/S和B/S的大中型商场后台系统的设计与实现 [J].计算机应用研究,2004(5):94-96+162.
  [5] 刘天卓.基于GIS技术的城市交通信息查询系统分析与设计 [D].上海:复旦大学,2009.
  作者简介:谢剑(1987.06—),男,汉族,湖南长沙人,软件学院专任教师,初级职称,硕士,研究方向:计算机应用,图像处理。
其他文献
摘 要:近年来随着深度学习的发展,图像识别与分类问题取得了飞速进展。而在深度学习的研究领域中,卷积神经网络被广泛应用于图像识别。文章对前人在卷积神经网络领域的研究成果进行了梳理与总结。首先介绍了深度学习的发展背景,然后介绍了一些常见卷积网络的模型,并对其中的微网络结构进行简述,最后对卷积神经网络的发展趋势与特点进行分析与总结。在未来的研究中,卷积神经网络仍将作为深度学习的一种重要模型得到进一步发展
能源是保障经济平稳运行和提高人民生活水平的关键维度。为科学预测安徽省能源消费量,分别利用单项预测模型和组合预测模型预测能源消费总量,并对细分能源消费量进行预测,最
传统基于指纹库构建的无线地图没有考虑室内环境中指纹会随着接收信号强度的变化而变化这一因素,所以系统鲁棒性较差。为了解决这一问题,提出了一种基于特征迁移的室内定位算
文章以2009-2018年我国31个省为样本,通过构建经济权重矩阵的空间计量模型,分析地方财政支出对流动人口的影响,地方财政支出按照经济用途划分为维持型财政支出、生产型财政支
针对汽车ECU的Bootloader开发问题,使用恩智浦(NXP)S32DS IDE工具进行相关的开发与实现。作为汽车电子程序中需要运行的第一段代码,Bootloader的开发问题是该行业开发人员所
摘 要:电磁炮是一种利用电磁能量对弹丸进行加速赋能的武器装置。相较于常见的火药武器,电磁炮的杀伤性更强,打击范围更广。该模拟电磁曲射炮装置是以基于ARM Cortex-M4内核的MK66芯片为主处理器,由摄像头模块与激光模块定位后通过激光精准测量目标位置,得到所需的仰角与初速度。经由DAC控制继电器通断以控制电容充放电的方式控制电磁炮发射速度,同时运用PID控制技术控制舵机角度,实现电磁炮装置的精
后勤部门是高校基础性的管理部门,保证着高校各项工作、事业的顺利开展,其中强化后勤财务管理内控体系是提高后勤服务质量的重要环节,这也为高校实现发展战略目标提供了坚实
摘 要:中学生居家阅读是提高中学生综合素质的重要手段,同时居家阅读是学科学习的重要内容,它有利于学生突破传统教学模式的限制,对于培养中学生的语文思维,提升他们的精神境界,推动其综合素质的发展意义重大。在新课改背景下,中学生居家阅读受到了社会各界的广泛关注,并在教学实际中得到了一定程度的落实。然而,由于受到各种条件的限制,目前的中学生居家阅读也还存在诸多不容忽视的问题,亟待进一步解决。  关键词:中
为保证校园安全,提高车辆出入管理效率,外来访客在高校访问登记界面填写个人信息,车辆到达时,高校车牌登记识别系统通过摄像头捕获车牌信息,系统自动识别放行。该系统包含车牌在线登记子系统和车牌识别子系统两个部分。车牌在线登记子系统前端页面使用JSP技术,通过DIV+CSS对页面进行布局。后端基于Java语言、SSM框架开发,使用Maven进行项目管理。车牌识别子系统基于Python语言,使用OpenCV
基于2016年全国流动人口卫生计生动态监测调查数据,使用Probit和IVProbit模型,实证检验了城镇职工医疗保险对农民工落户意愿的影响效应。研究发现:参加城镇职工医疗保险对农