国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

互聯(lián)網(wǎng)商品交易業(yè)務(wù)支撐引擎的分析與設(shè)計

2021-07-28 23:17謝劍
現(xiàn)代信息科技 2021年2期
關(guān)鍵詞:教學(xué)指導(dǎo)

摘? 要:互聯(lián)網(wǎng)商品交易市場發(fā)展迅猛,交易規(guī)模及交易額屢創(chuàng)新高,其中,各類業(yè)務(wù)支撐引擎發(fā)揮了不可替代的作用,針對“面向?qū)ο缶幊蹋ǜ呒墸苯虒W(xué)內(nèi)容,對通用業(yè)務(wù)支撐引擎進(jìn)行了分析與設(shè)計。軟件以C++及Lua腳本語言為載體進(jìn)行設(shè)計,主要模塊包括Lua環(huán)境綁定及注冊模塊、核心業(yè)務(wù)場景模塊、數(shù)據(jù)加密模塊、數(shù)據(jù)通信模塊、數(shù)據(jù)庫操作模塊、日志模塊、配置模塊等,引擎體系功能完備,性能高效且穩(wěn)定,具有較高的教學(xué)指導(dǎo)意義。

關(guān)鍵詞:互聯(lián)網(wǎng)商品交易;業(yè)務(wù)引擎;教學(xué)指導(dǎo)

中圖分類號:TP391.3? ? ? ?文獻(xiàn)標(biāo)識碼: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? 引? 言

互聯(lián)網(wǎng)商品交易是指通過互聯(lián)網(wǎng)或其他電子渠道,針對個人或家庭需求銷售商品以及提供服務(wù),主要以B2B及B2C兩種交易模式來實現(xiàn)交易。商品交易活動是通過互聯(lián)網(wǎng)進(jìn)行信息的組織及傳遞,實現(xiàn)了有形商品和無形商品所有權(quán)的轉(zhuǎn)移及服務(wù)的消費。近年來,得益于通信技術(shù)的發(fā)展和普及,國內(nèi)互聯(lián)網(wǎng)用戶逐年攀升,特別是手機(jī)用戶增長迅猛,使得網(wǎng)絡(luò)購物業(yè)已成為我國消費者較為重要的消費方式,年網(wǎng)絡(luò)交易總額已近10萬億元,如此龐大市場規(guī)模的另一個支點就是互聯(lián)網(wǎng)技術(shù),而其中的業(yè)務(wù)支撐引擎則是較為關(guān)鍵的一環(huán),它為高并發(fā)的交易訂單在眾多用戶與商戶之間的正常流轉(zhuǎn)提供了保障。

通過對業(yè)務(wù)支撐引擎軟件的分析與設(shè)計,使學(xué)生了解更多有關(guān)互聯(lián)網(wǎng)后臺程序的技術(shù)細(xì)節(jié),同時增強(qiáng)了對“面向?qū)ο缶幊蹋ǜ呒墸闭n程知識點的理解與掌握,可提升學(xué)生的實踐動手能力。

1? 系統(tǒng)需求分析

根據(jù)商品交易業(yè)務(wù)復(fù)雜多變的特性,在設(shè)計時采用了C++與Lua腳本語言相結(jié)合的方式,C++語言用于完成框架的通信、數(shù)據(jù)庫交互等基本功能,Lua語言則在框架的基礎(chǔ)上進(jìn)行業(yè)務(wù)流程代碼的開發(fā)。Lua語言作為一種腳本語言,具有編程簡單、快速響應(yīng)的特點,對于商品交易領(lǐng)域要求快速接入同時需求多變的應(yīng)用場景具有明顯的優(yōu)勢。因此軟件功能設(shè)計上主要采用Lua環(huán)境綁定及注冊模塊、核心業(yè)務(wù)場景模塊、數(shù)據(jù)加密模塊、數(shù)據(jù)通信模塊、數(shù)據(jù)庫操作模塊、日志模塊、配置模塊。Lua環(huán)境綁定及注冊模塊用于在C++的框架下將Lua代碼執(zhí)行的環(huán)境進(jìn)行綁定,并將其他C++類功能函數(shù)注冊到Lua環(huán)境中,以便可以在Lua腳本中直接調(diào)用,實現(xiàn)Lua代碼與C++代碼的相互配合調(diào)用。核心業(yè)務(wù)場景模塊包含服務(wù)器模塊、生產(chǎn)—消費者模塊、定時器模塊,可根據(jù)配置將軟件注冊為對應(yīng)功能的系統(tǒng)服務(wù)。服務(wù)器模塊主要用于接收網(wǎng)絡(luò)請求,生產(chǎn)者—消費者模塊主要用于篩選符合條件的訂單記錄并發(fā)處理,定時器模塊間隔固定時間運行一次以完成特定業(yè)務(wù)功能。數(shù)據(jù)加密模塊用于對交互的報文數(shù)據(jù)進(jìn)行加密處理,發(fā)送端對數(shù)據(jù)進(jìn)行加密生成簽名信息,接收端進(jìn)行同樣的加密操作并進(jìn)行對比驗簽,避免數(shù)據(jù)在傳輸過程中被篡改而造成損失。數(shù)據(jù)通信模塊用于實現(xiàn)基礎(chǔ)的http報文交互功能,確保報文交互高效穩(wěn)定。數(shù)據(jù)庫操作模塊用于執(zhí)行與數(shù)據(jù)庫相關(guān)的操作,保證數(shù)據(jù)安全存儲。日志模塊主要用于訂單業(yè)務(wù)流程的日志記錄,便于對訂單狀態(tài)的跟蹤分析。配置模塊為系統(tǒng)啟動提供初始配置,避免改動代碼,便于靈活部署。

2? 開發(fā)環(huán)境及關(guān)鍵技術(shù)

軟件是基于Windows 10系統(tǒng)進(jìn)行的設(shè)計,集成開發(fā)環(huán)境采用Visual Studio 2018,功能強(qiáng)大,操作簡便,可有效提高編程效率。

編程語言采用C++與Lua相結(jié)合的模式,充分結(jié)合兩種語言各自的優(yōu)勢,使得軟件功能穩(wěn)定且易于擴(kuò)展,因此兩種語言的相互正確調(diào)用是此軟件的關(guān)鍵技術(shù)點之一,這里采用以C++語言為主體,以Lua語言為嵌入語言的方式進(jìn)行設(shè)計。

在設(shè)計時將互聯(lián)網(wǎng)常用的三種業(yè)務(wù)場景支撐后臺程序集成到一個軟件中也是個關(guān)鍵的技術(shù)點,通過配置啟動對應(yīng)的模塊功能,增加了開發(fā)的難度,但卻簡化了程序部署等后期維護(hù)的工作量,從長遠(yuǎn)來看此舉更為有利。

數(shù)據(jù)庫采用目前廣泛應(yīng)用的開源數(shù)據(jù)庫——MySQL數(shù)據(jù)庫,其具有穩(wěn)定、高效、易于開發(fā)的優(yōu)點。為進(jìn)一步提高數(shù)據(jù)庫的性能,在實現(xiàn)基本的增刪改查功能的基礎(chǔ)上增加了數(shù)據(jù)庫連接池的設(shè)計,通過減少數(shù)據(jù)庫連接對象的創(chuàng)建及釋放操作,可有效提高并發(fā)操作性能。

數(shù)據(jù)通信則是采用Windows系統(tǒng)下最高效的異步完成端口網(wǎng)絡(luò)通信模型,以期實現(xiàn)單平臺下最佳的網(wǎng)絡(luò)報文通信能力,確保高并發(fā)訂單接收的準(zhǔn)確性。

3? 系統(tǒng)功能結(jié)構(gòu)設(shè)計

軟件系統(tǒng)功能結(jié)構(gòu)圖如圖1所示,其主要由7個模塊構(gòu)成。下文從類圖的角度逐一說明各模塊的設(shè)計。

3.1? Lua環(huán)境綁定及注冊模塊

Lua代碼并不是直接被Lua解釋器解釋執(zhí)行,而是先被編譯為字節(jié)碼,然后再交由lua虛擬機(jī)去執(zhí)行。因此Lua腳本語言在執(zhí)行之前,就需要在C++代碼中對Lua虛擬機(jī)進(jìn)行綁定,通過創(chuàng)建一個與之相對應(yīng)的狀態(tài)結(jié)構(gòu)來實現(xiàn)對當(dāng)前Lua環(huán)境的管理,上述步驟均可以通過相關(guān)的動態(tài)庫函數(shù)來實現(xiàn),方便快捷。在綁定好Lua環(huán)境之后,就可以往該環(huán)境中注冊可在Lua腳本中直接調(diào)用的C++函數(shù),注冊時需要提供C++的類名及對應(yīng)函數(shù),同時在注冊時需要指定對應(yīng)環(huán)境的狀態(tài)結(jié)構(gòu)。通過此步驟即可在Lua腳本中調(diào)用其他各功能模塊中的函數(shù),以完成業(yè)務(wù)邏輯的編碼工作。該模塊的主要類圖如圖2所示,該類除了實現(xiàn)前述功能外,同時也是一個線程基類,后續(xù)部分模塊類需要繼承該類,才能實現(xiàn)函數(shù)的相互調(diào)用。

3.2? 核心業(yè)務(wù)場景模塊

核心業(yè)務(wù)場景模塊包含服務(wù)器模塊、生產(chǎn)—消費者模塊、定時器模塊。

服務(wù)器模塊用作報文通信的接收服務(wù)端,負(fù)責(zé)接收來自網(wǎng)絡(luò)上不同節(jié)點商戶或用戶的請求,具有高并發(fā)的特點,若不能滿足此項要求,會直接影響系統(tǒng)收單數(shù)量,降低收益。

生產(chǎn)者—消費者模塊是指由生產(chǎn)者腳本篩選符合條件的訂單,再分配給消費者腳本進(jìn)行處理,兩者之間的關(guān)系是1:N,即1個生產(chǎn)者匹配多個消費者,如此達(dá)到并發(fā)處理的效果,快速將系統(tǒng)中的訂單再次分發(fā)到下游商家或直接分發(fā)到供應(yīng)商系統(tǒng)。

定時器模塊主要用于完成定時執(zhí)行的監(jiān)控任務(wù),系統(tǒng)中的訂單總會有少數(shù)訂單會出問題,比如訂單超時,為了實現(xiàn)自動掃描出現(xiàn)問題的訂單,需要有定時程序不斷輪詢檢查,以便及時發(fā)現(xiàn)問題訂單并及時處理,避免造成不必要的損失。

如圖3所示,三個模塊類均繼承了cluabase類以實現(xiàn)各線程的Lua環(huán)境綁定及操作,也分別實現(xiàn)了各自線程的啟動結(jié)束的函數(shù),同時增加了加載配置信息操作,以便處理各個模塊自身的配置信息。

3.3? 數(shù)據(jù)加密模塊

數(shù)據(jù)加密模塊用于確保數(shù)據(jù)傳輸?shù)陌踩?,?shù)據(jù)報文在網(wǎng)絡(luò)中傳輸時可能會被惡意截取篡改,輕則造成單筆交易訂單的數(shù)據(jù)記錄出現(xiàn)問題,重則對整個數(shù)據(jù)庫內(nèi)的數(shù)據(jù)造成不可逆的破壞,后果不堪設(shè)想,所以需要在數(shù)據(jù)發(fā)送前進(jìn)行加密計算獲取簽名,在接收端進(jìn)行簽名驗簽,確保數(shù)據(jù)無誤后才可對其進(jìn)行后續(xù)處理。模塊主要類圖如圖4所示,目前設(shè)計上只使用兩種加密算法,一個是MD5信息摘要加密算法,一個是Des加密算法,這兩種算法在實際應(yīng)用中被廣泛采用,安全度也較高,可有效驗證數(shù)據(jù)安全性。

3.4? 數(shù)據(jù)通信模塊

數(shù)據(jù)通信是互聯(lián)網(wǎng)軟件的核心功能,http報文是網(wǎng)絡(luò)通信的主要方式之一,本文設(shè)計的引擎系統(tǒng)采用該方式進(jìn)行通信,數(shù)據(jù)通信模塊需要解決http報文的組包、發(fā)送、接收、解析等功能。采用完成端口異步通信能最大限度地保證數(shù)據(jù)發(fā)送及接收的效率,但其組包及解析功能相對復(fù)雜,需要考慮的情況比較多。圖5為該模塊的主要類圖,CSocketHandle類主要負(fù)責(zé)底層的套接字通信,而chttpprocess類繼承了csockehandl類,在繼承基類功能的基礎(chǔ)上添加了http報文的兩種請求方式,即Get和Post方式,兩種方式在組包及解析上有較大不同,需要區(qū)別對待。

3.5? 數(shù)據(jù)庫操作模塊

數(shù)據(jù)庫操作是所有軟件的必備功能,該模塊功能組件化后也可直接集成于不同的軟件系統(tǒng),省時省力。從綜合性能以及成本方面的考慮,軟件設(shè)計采用MySQL數(shù)據(jù)庫,在完成基本數(shù)據(jù)庫操作功能后,性能是高并發(fā)應(yīng)用軟件主要的優(yōu)化點,這里采用常用的數(shù)據(jù)連接池。圖6為該模塊的主要類圖,cdatabase類圖提供基礎(chǔ)的數(shù)據(jù)庫增刪改查功能,在此基礎(chǔ)上,cdbconncetpool在啟動時創(chuàng)建多個數(shù)據(jù)庫連接對象并將它們保存到隊列中,需要時即從隊列中提取,結(jié)束后再將其歸還到隊列中,此方法在高并發(fā)的數(shù)據(jù)庫訪問下可避免頻繁地創(chuàng)建和釋放數(shù)據(jù)庫連接對象,減少資源消耗,有效地提高了訪問性能。

3.6? 日志及配置模塊

日志模塊用于記錄時間及各函數(shù)調(diào)用情況,在函數(shù)調(diào)用前后及函數(shù)內(nèi)部代碼的執(zhí)行過程中都需要日志輸出,便于分析業(yè)務(wù)流程及查找問題,其類圖如圖7所示。

配置模塊用于配置信息的讀取,比如數(shù)據(jù)庫信息的配置、核心業(yè)務(wù)場景模塊信息的配置等,都通過配置文件提供,其類圖如圖8所示。

4? 結(jié)? 論

本文分析了互聯(lián)網(wǎng)商品交易業(yè)務(wù)支撐引擎的通用需求,并對引擎的設(shè)計展開描述,后臺業(yè)務(wù)引擎可幫助進(jìn)行線上商品交易的企業(yè)實現(xiàn)定單接收、訂單轉(zhuǎn)發(fā)、異常訂單監(jiān)控管理等產(chǎn)品鏈中的核心業(yè)務(wù)功能。本案例應(yīng)用場景為“面向?qū)ο缶幊蹋ǜ呒墸闭n程,通過對軟件系統(tǒng)設(shè)計的分析與描述,增進(jìn)學(xué)生對行業(yè)應(yīng)用的了解,提升了軟件系統(tǒng)分析與設(shè)計的能力。

參考文獻(xiàn):

[1] 吳杰明,方英蘭.軟件工程實例教程 [M].北京:清華大學(xué)出版社,2010.

[2] 王英英.MySQL8從入門到精通 [M].北京:清華大學(xué)出版社,2019.

[3] 陳曉軍,朱銓荃,何欣,等.網(wǎng)站后臺通用管理系統(tǒng)分析與設(shè)計 [J].技術(shù)與市場,2009(9):11-12.

[4] 李偉紅,龔衛(wèi)國,馬任飛,等.基于C/S和B/S的大中型商場后臺系統(tǒng)的設(shè)計與實現(xiàn) [J].計算機(jī)應(yīng)用研究,2004(5):94-96+162.

[5] 劉天卓.基于GIS技術(shù)的城市交通信息查詢系統(tǒng)分析與設(shè)計 [D].上海:復(fù)旦大學(xué),2009.

作者簡介:謝劍(1987.06—),男,漢族,湖南長沙人,軟件學(xué)院專任教師,初級職稱,碩士,研究方向:計算機(jī)應(yīng)用,圖像處理。

猜你喜歡
教學(xué)指導(dǎo)
基于合作學(xué)習(xí)的工科學(xué)生本科畢業(yè)論文教學(xué)指導(dǎo)探索
“2016全國中小學(xué)身體運動功能教學(xué)指導(dǎo)”培訓(xùn)活動在青島成功舉辦
中學(xué)數(shù)學(xué)學(xué)科核心素養(yǎng)的內(nèi)涵及教學(xué)指導(dǎo)
微課在初中歷史教學(xué)中的應(yīng)用
淺析日語「逆接」接續(xù)詞
幼兒園線描畫教學(xué)的方式方法
直角三角形課程難度變化分析及其教學(xué)指導(dǎo)的探究
相似三角形課程難度變化分析及其對教學(xué)指導(dǎo)的探究
淺談?wù)Z文課堂的朗讀指導(dǎo)
初中敘事類作文教學(xué)指導(dǎo)策略及方法探微
沙湾县| 香港 | 玛曲县| 呼和浩特市| 沁源县| 镇雄县| 海安县| 武冈市| 汉沽区| 南召县| 黄梅县| 沾化县| 独山县| 墨脱县| 商洛市| 彝良县| 醴陵市| 化州市| 赤水市| 平南县| 邵阳市| 定远县| 清河县| 大关县| 繁昌县| 夏河县| 治县。| 杭锦后旗| 健康| 蓝山县| 耒阳市| 盐池县| 长乐市| 祁东县| 延川县| 枞阳县| 浦县| 桐柏县| 缙云县| 辽宁省| 安新县|