鄭曉健,鄭子維
(1. 昆明理工大學(xué)津橋?qū)W院 電氣與信息工程學(xué)院,云南 昆明 650106;2. 云南云投股權(quán)投資基金管理有限公司,云南 昆明 650100)
企業(yè)在經(jīng)營(yíng)管理過(guò)程中要通過(guò)持續(xù)的商品銷(xiāo)售來(lái)獲取經(jīng)營(yíng)收入,以覆蓋生產(chǎn)和管理的消耗,維持企業(yè)的正常運(yùn)轉(zhuǎn),進(jìn)而取得良好的經(jīng)濟(jì)效益。因此,建立和維護(hù)良好的銷(xiāo)售過(guò)程是企業(yè)管理的重要環(huán)節(jié)之一。隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展、全球化步伐的加快、客戶需求的不斷變化,企業(yè)需要降低管理成本、提高產(chǎn)品品質(zhì),用現(xiàn)代化的經(jīng)營(yíng)理念來(lái)整合所有資源。本文根據(jù)企業(yè)的運(yùn)營(yíng)需求,設(shè)計(jì)了一種P2P模式下的企業(yè)商品銷(xiāo)售系統(tǒng),在業(yè)務(wù)和管理、商品和客戶間建立高效的信息管理平臺(tái),提高企業(yè)銷(xiāo)售管理的運(yùn)行效率。
商品銷(xiāo)售系統(tǒng)的用戶對(duì)象主要是商業(yè)公司和生產(chǎn)企業(yè),它的功能需求涵蓋銷(xiāo)售業(yè)務(wù)管理、銷(xiāo)售查詢統(tǒng)計(jì)管理、系統(tǒng)基礎(chǔ)信息管理等。在系統(tǒng)的支持下企業(yè)希望實(shí)現(xiàn)從客戶訂貨、商品銷(xiāo)售、到售后服務(wù)的全過(guò)程管理。同時(shí),用戶要求在各部門(mén)協(xié)同合作的條件下,系統(tǒng)還能有較好的擴(kuò)展性,可以比較方便、靈活地增加業(yè)務(wù)處理節(jié)點(diǎn)。鑒于以上情況,宜采用 P2P架構(gòu)[1]實(shí)現(xiàn)一個(gè)分布式的商品銷(xiāo)售管理系統(tǒng),從而為系統(tǒng)帶來(lái)較好的健壯性、擴(kuò)展性[2]、安全性、負(fù)載平衡性等性能特點(diǎn)[1-3]。
近年來(lái),采用P2P架構(gòu)實(shí)現(xiàn)分布式應(yīng)用正逐漸流行起來(lái)[4-8]。網(wǎng)絡(luò)的資源和服務(wù)被部署在眾多P2P節(jié)點(diǎn)上,為使分散的資源和服務(wù)形成一個(gè)協(xié)調(diào)一致的統(tǒng)一體,通過(guò)建立網(wǎng)絡(luò)基礎(chǔ)層來(lái)實(shí)現(xiàn)。節(jié)點(diǎn)之間通過(guò)點(diǎn)對(duì)點(diǎn)方式直接互訪[7]來(lái)交換協(xié)同工作消息、共享資源和服務(wù),為分布式應(yīng)用打下良好的條件。
通過(guò)對(duì)目標(biāo)企業(yè)的需求分析,商品銷(xiāo)售系統(tǒng)的功能模塊包括:銷(xiāo)售業(yè)務(wù)管理、銷(xiāo)售查詢報(bào)表管理、系統(tǒng)基礎(chǔ)信息維護(hù)。(1)銷(xiāo)售業(yè)務(wù)管理主要完成客戶訂貨、商品銷(xiāo)售、商品退貨等功能。(2)銷(xiāo)售查詢統(tǒng)計(jì)管理提供企業(yè)用戶完成銷(xiāo)售商品查詢、客戶訂貨查詢、退貨查詢等功能。(3)系統(tǒng)基礎(chǔ)信息維護(hù)完成商品信息、客戶信息、操作人員信息、操作權(quán)限等信息維護(hù)功能。系統(tǒng)功能結(jié)構(gòu)圖如圖1所示。系統(tǒng)按照用戶要求可以將功能模塊部署到P2P網(wǎng)絡(luò)的不同節(jié)點(diǎn)上,然后協(xié)同完成系統(tǒng)功能。

圖1 系統(tǒng)功能結(jié)構(gòu)圖Fig.1 System function structure diagram
商品銷(xiāo)售數(shù)據(jù)庫(kù)管理系統(tǒng)的所有業(yè)務(wù)信息,包含在10個(gè)數(shù)據(jù)表中,包括:客戶訂貨表、客戶訂貨明細(xì)表、商品銷(xiāo)售表、商品銷(xiāo)售明細(xì)表、商品退貨表、商品退貨明細(xì)表、商品信息表、客戶信息表、商品庫(kù)存表、操作人員信息表等,以下給出部分?jǐn)?shù)據(jù)表結(jié)構(gòu)設(shè)計(jì)。部署了功能模塊的P2P節(jié)點(diǎn),根據(jù)處理需要在各節(jié)點(diǎn)安裝配置本地?cái)?shù)據(jù)庫(kù)管理系統(tǒng)(例如Access2010),創(chuàng)建與功能對(duì)應(yīng)的數(shù)據(jù)表,用來(lái)保存業(yè)務(wù)處理信息。

表1 商品銷(xiāo)售表Tab.1 Commodity sales table
本系統(tǒng)的目標(biāo)是建立分布式應(yīng)用系統(tǒng),以 P2P網(wǎng)絡(luò)構(gòu)建一個(gè)去中心化的點(diǎn)對(duì)點(diǎn)架構(gòu)[8]。P2P網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)分三類(lèi):集中式、分布式和混合式,本系統(tǒng)屬于集中式P2P模式。由網(wǎng)絡(luò)基礎(chǔ)層和業(yè)務(wù)覆蓋網(wǎng)絡(luò)層組成。網(wǎng)絡(luò)基礎(chǔ)層由P2P系統(tǒng)服務(wù)器和P2P節(jié)點(diǎn)構(gòu)成,P2P系統(tǒng)服務(wù)器的任務(wù)是管理P2P節(jié)點(diǎn)自由地加入和退出,而不影響節(jié)點(diǎn)間的連接。業(yè)務(wù)覆蓋網(wǎng)絡(luò)層,通過(guò)P2P用戶協(xié)議和節(jié)點(diǎn)任務(wù)協(xié)同處理模塊構(gòu)成資源覆蓋網(wǎng)絡(luò)。當(dāng)P2P節(jié)點(diǎn)加入時(shí),必須在系統(tǒng)服務(wù)器注冊(cè),系統(tǒng)服務(wù)器根據(jù)節(jié)點(diǎn)所屬的部門(mén)和訪問(wèn)權(quán)限返回所有節(jié)點(diǎn)列表,構(gòu)成該節(jié)點(diǎn)的成員節(jié)點(diǎn)列表。節(jié)點(diǎn)利用該表就可以與其他節(jié)點(diǎn)進(jìn)行點(diǎn)對(duì)點(diǎn)通信[13],完成功能設(shè)定的任務(wù)。

表2 商品銷(xiāo)售明細(xì)表Tab.2 Commodity sales schedule

表3 客戶信息表Tab.3 Customer Information Form

表4 操作人員信息表Tab.4 Operator Information Sheet
要實(shí)現(xiàn)用戶提出的方便地?cái)U(kuò)展系統(tǒng)的要求,意味著允許P2P節(jié)點(diǎn)可以自由地加入和退出。設(shè)立P2P系統(tǒng)服務(wù)器的主要目的也就在于此。最直接的方法是系統(tǒng)服務(wù)器保存所有P2P節(jié)點(diǎn)的網(wǎng)絡(luò)連接信息,并保證及時(shí)刷新。當(dāng)用戶要加入新節(jié)點(diǎn)處理銷(xiāo)售業(yè)務(wù)時(shí),向P2P系統(tǒng)服務(wù)器發(fā)送請(qǐng)求注冊(cè)消息,服務(wù)器將節(jié)點(diǎn)的連接信息保存到節(jié)點(diǎn)列表,通知所有節(jié)點(diǎn)更新各自的成員節(jié)點(diǎn)列表,同樣有節(jié)點(diǎn)要退出時(shí)也采用相同做法。
商品信息表、商品庫(kù)存表、操作人員信息表等公共信息有變化,可以通過(guò)系統(tǒng)服務(wù)器,轉(zhuǎn)發(fā)更新消息,讓所有相關(guān)節(jié)點(diǎn)刷新數(shù)據(jù)。節(jié)點(diǎn)狀態(tài)監(jiān)控,由于網(wǎng)絡(luò)環(huán)境的影響,可能使節(jié)點(diǎn)的網(wǎng)絡(luò)連接中斷,系統(tǒng)服務(wù)器要定時(shí)向各節(jié)點(diǎn)發(fā)送心跳監(jiān)測(cè)消息,監(jiān)測(cè)節(jié)點(diǎn)的連接狀態(tài),及時(shí)修改節(jié)點(diǎn)的連接情況,并及時(shí)向節(jié)點(diǎn)發(fā)布節(jié)點(diǎn)狀態(tài)刷新消息。
由節(jié)點(diǎn)通信結(jié)構(gòu),節(jié)點(diǎn)包括消息收發(fā)、消息解析、任務(wù)調(diào)度、節(jié)點(diǎn)注冊(cè)、節(jié)點(diǎn)狀態(tài)監(jiān)測(cè)等模塊。網(wǎng)絡(luò)消息的收發(fā)涉及到節(jié)點(diǎn)之間的通信采用TCP協(xié)議,通過(guò)TCP協(xié)議提供的通信技術(shù)可以保證消息及資源傳輸?shù)目煽啃浴K蠵2P節(jié)點(diǎn)也包括系統(tǒng)服務(wù)器節(jié)點(diǎn),監(jiān)聽(tīng)連接請(qǐng)求端口,有連接請(qǐng)求時(shí)要?jiǎng)?chuàng)建消息接收線程,然后建立socket通信連接并接收消息,通過(guò)應(yīng)用層通信協(xié)議解析消息,接著任務(wù)調(diào)度轉(zhuǎn)發(fā)消息給各相關(guān)業(yè)務(wù)處理模塊,再由模塊完成相應(yīng)的銷(xiāo)售業(yè)務(wù)處理。
P2P商品銷(xiāo)售系統(tǒng)的類(lèi)圖如圖2所示。各節(jié)點(diǎn)間的通信連接由通信類(lèi)(P2Pcommunication)完成,接收消息和解析由消息收發(fā)類(lèi)(Msg_transceiver)完成,任務(wù)調(diào)度調(diào)配相關(guān)模塊完成業(yè)務(wù)消息處理工作。客戶類(lèi)(Customer)處理客戶信息,操作員類(lèi)(Operator)處理操作員信息,商品類(lèi)(Commodity)處理商品信息。銷(xiāo)售業(yè)務(wù)類(lèi)(Sales_business)、銷(xiāo)售查詢類(lèi)(Sales_query)、系統(tǒng)基礎(chǔ)信息類(lèi)(Basic_system_inf)處理銷(xiāo)售業(yè)務(wù)。
商品銷(xiāo)售系統(tǒng)軟件由 Microsoft Visual C++6.0編程實(shí)現(xiàn)。節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù)采用 Microsoft Access2010完全可以勝任業(yè)務(wù)要求,還可以減少系統(tǒng)投資成本,且方便維護(hù)。

圖2 系統(tǒng)類(lèi)圖Fig.2 System class diagram
本文通過(guò)P2P 網(wǎng)絡(luò)結(jié)構(gòu)下商品銷(xiāo)售系統(tǒng)設(shè)計(jì),介紹了一種P2P模式分布式應(yīng)用系統(tǒng)在企業(yè)管理信息系統(tǒng)的應(yīng)用。系統(tǒng)能夠滿足企業(yè)用戶的業(yè)務(wù)要求。同時(shí),通過(guò)P2P模式下的分布式應(yīng)用系統(tǒng),介紹了P2P平臺(tái)的具體實(shí)現(xiàn)技術(shù)。理論和實(shí)踐證明,P2P網(wǎng)絡(luò)系統(tǒng)可以發(fā)揮系統(tǒng)的擴(kuò)展性及靈活性特點(diǎn),提高管理信息系統(tǒng)的工作效率[3],系統(tǒng)運(yùn)行穩(wěn)定,適合于各種規(guī)模的分布式應(yīng)用環(huán)境。
系統(tǒng)的后續(xù)開(kāi)發(fā)和應(yīng)用計(jì)劃,打算在一些商業(yè)企業(yè)推廣應(yīng)用和進(jìn)一步完善系統(tǒng)功能,應(yīng)用面向領(lǐng)域的智能搜索引擎技術(shù)[9],實(shí)現(xiàn)商品和客戶資源信息的智能檢索,挖掘更多的與客戶合作的機(jī)會(huì)。運(yùn)用區(qū)塊鏈[10-11]技術(shù)解決P2P網(wǎng)絡(luò)的安全性、追溯性問(wèn)題[12],提高系統(tǒng)的實(shí)用性。