近年來, 大宗商品現(xiàn)貨交易作為一種新型的大宗商品交易模式, 在我國得到了迅猛發(fā)展, 中央、省、市各級地方政府及各大央企、國企、資本巨頭紛紛搶占先機, 爭相布局、建立各類大宗商品現(xiàn)貨交易場所。根據(jù)統(tǒng)計數(shù)據(jù)表明, 截止2016年底, 全國共有各類大宗商品電子類現(xiàn)貨交易市場1231家, 其中能源化工類電子交易市場175家。由于大宗商品現(xiàn)貨交易具備生產(chǎn)資料大宗貨物的戰(zhàn)略儲備、調(diào)節(jié)物價、組織生產(chǎn)和套期保值4大基本功能, 因此對整個國民經(jīng)濟的發(fā)展起到了十分重要的促進作用[1]。
浙江石油化工交易中心 (以下簡稱“浙油中心”) 是由物產(chǎn)中大集團股份有限公司 (以下簡稱“物產(chǎn)中大集團”) 與舟山市人民政府合作設(shè)立的一家石油化工類大宗商品現(xiàn)貨交易高技術(shù)服務(wù)平臺, 立足現(xiàn)貨交易、服務(wù)實體經(jīng)濟, 主要從事石油制品、化工原料及產(chǎn)品、燃料油、潤滑油等大宗商品現(xiàn)貨交易及相關(guān)服務(wù)。浙油中心積極布局和實施“平臺化、集成化、國際化、專業(yè)化”的“四化”戰(zhàn)略, 努力成為石油化工產(chǎn)業(yè)的供應(yīng)鏈管理者、產(chǎn)業(yè)資源整合者和交易要素配置者, 著力打造集石油化工產(chǎn)品交易中心、定價中心、信息中心、結(jié)算中心、金融中心、物流中心于一體的國際化石油化工大宗商品電子交易平臺, 立志做中國最優(yōu)秀的大宗商品交易集成服務(wù)商[2,3]。
以物產(chǎn)中大集團分管領(lǐng)導(dǎo)及浙油中心班子成員等為核心的高層管理團隊牽頭運用互聯(lián)網(wǎng)聚合行業(yè)內(nèi)產(chǎn)品、渠道、金融、物流、信息等各類服務(wù)資源, 組織進行了基于互聯(lián)網(wǎng)的新型大宗商品交易模式創(chuàng)新, 構(gòu)建了基于Spring MVC多層架構(gòu)的石油化工大宗商品現(xiàn)貨交易結(jié)算倉儲一體化線上與線下相結(jié)合的服務(wù)體系[4,5]。按照軟件工程項目管理規(guī)范, 帶領(lǐng)技術(shù)團隊并協(xié)同軟件廠商進行了交易系統(tǒng)的需求調(diào)研、系統(tǒng)設(shè)計、程序開發(fā)、軟件測試、數(shù)據(jù)準備、仿真測試及上線運行。系統(tǒng)在業(yè)務(wù)功能方面具有4個亮點: (1) 軟件涵蓋了掛牌交易、競價交易、采購招標及中遠期交易等多種交易模式, 實現(xiàn)了交易方式的多樣化; (2) 軟件實現(xiàn)了交易結(jié)算倉儲三位一體, 并支持銀商轉(zhuǎn)賬等多種結(jié)算模式, 確保業(yè)務(wù)流程的一體化; (3) 軟件實現(xiàn)了多級產(chǎn)品分類及屬性定制, 確保產(chǎn)品擴展的便捷化; (4) 軟件實現(xiàn)了郵件、站內(nèi)信及短信等多種信息推送機制, 確保業(yè)務(wù)處理的高效化。
系統(tǒng)在技術(shù)應(yīng)用方面具有4個特點: (1) 系統(tǒng)采用了基于J2EE、Spring MVC、i BATIS的多層架構(gòu)模式, 確保軟件具有很強的開放性和可擴展性; (2) 系統(tǒng)采用了大容量分布式處理和集群技術(shù), 確保軟件具有很強的可靠性和易維護性; (3) 系統(tǒng)采用了高端金融交易中間件技術(shù), 確保軟件的穩(wěn)定性和高效性; (4) 系統(tǒng)采用了CA認證、二重密碼驗證、數(shù)據(jù)加密、動態(tài)碼、多級角色權(quán)限控制、業(yè)務(wù)復(fù)核、網(wǎng)絡(luò)隔離等整體安全解決方案, 確保軟件的安全可靠性[6,7]。
J2EE是近年來廣泛運用的利用Java平臺來簡化諸多與企業(yè)解決方案的開發(fā)、部署和管理相關(guān)的復(fù)雜問題的體系結(jié)構(gòu), 其核心是一組以Java平臺的標準版為基礎(chǔ)的技術(shù)規(guī)范與指南, 包含了各類組件、技術(shù)層次及服務(wù)架構(gòu)并具有良好的兼容性, J2EE的出現(xiàn)解決了傳統(tǒng)技術(shù)存在局限性導(dǎo)致的內(nèi)部和外部難以互通的困境。
Spring MVC框架作為Spring開源框架的7大模塊之一, 具有面向切面編程和控制反轉(zhuǎn)的能力, 且具有完善的Controller控制器集成架構(gòu), 用戶可以通過先連接到前端控制器并由其判斷用戶的請求, 然后再根據(jù)需要指派給合適的控制對象來進行處理, 而不需要直接連接到所需要的資源。Spring開源框架的7大模塊如圖1所示。
i BATIS是軟件組織Apache的一個開源項目, 一種輕量級的對象關(guān)系映射 (ORM) 框架, 其突出特點就是小巧且易于上手。它不同于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫通過DML/DDL等SQL語句操作數(shù)據(jù)庫表的操作方式, ORM通過面向?qū)ο蠓绞讲僮麝P(guān)系型數(shù)據(jù)庫。在Java面向?qū)ο缶幊陶Z言中, 所有的操作對象都是對象, ORM的功能就是把數(shù)據(jù)庫的表和Java編程語言中的對象對應(yīng)起來, 把表的列和Java對象中的字段相互匹配, 在程序開發(fā)過程中通過ORM提供的查詢語句操作普通的Java對象, 而非使用原始SQL語句去直接操作數(shù)據(jù)庫。ORM將其提供的對普通Java對象的查詢語句翻譯成SQL語句來操作數(shù)據(jù)庫, 從而屏蔽了不同數(shù)據(jù)庫SQL語句的差別, 簡化了程序開發(fā)工作, 提高了程序的可移植性。
項目開發(fā)如果采用EJB等重量級框架會帶來很多技術(shù)上的困擾, 主要原因是EJB的服務(wù)組件提供了許多多余服務(wù), 且在存在擴展方面的困難。因此, 選用Spring MVC框架和i BATIS技術(shù)的輕量級框架進行設(shè)計, 許多應(yīng)用不需要采用分布式、不需要J2EE中那些重量級的技術(shù), 開發(fā)過程中可以進行技術(shù)隔離和改造, 可以有針對性地對應(yīng)用進行最常見、最簡單的應(yīng)用設(shè)計, 在提高系統(tǒng)開發(fā)效率的同時還能降低開發(fā)的復(fù)雜性, 確保系統(tǒng)的穩(wěn)定性、健壯性及安全性方面都能得到有效的提升。
視圖層承擔了用戶與系統(tǒng)進行信息交互的重任, 是Spring MVC框架系統(tǒng)面向操作用戶最直接展示的操作界面。通過表單提交登錄信息進行身份合法性驗證時, 控制器Login Controller處理登錄的業(yè)務(wù)邏輯是DispatchServlet通過配置文件進行調(diào)度提供, 并以Spring Ioc注入屬性對后臺數(shù)據(jù)庫進行操作。在處理實現(xiàn)Spring MVC框架接口時, 控制器Login Controller以handle Requst方法同時實現(xiàn)了接口包含的數(shù)據(jù)處理請求。在收到分發(fā)器Dispatch Servlet分配的數(shù)據(jù)請求時, 控制器Login Controller會通過執(zhí)行handle Requst來驗證判斷用于登錄系統(tǒng)的用戶名和密碼正確與否, 從而完成系統(tǒng)登錄處理的業(yè)務(wù)邏輯。如果用戶名和密碼驗證通過, 視圖解析器則將信息返回至Model And View對象, 通過Spring MVC框架控制器Bean配置文件beans-config.xml進行處理, 并跳轉(zhuǎn)到登錄系統(tǒng)成功的操作界面。如果驗證不通過, 則跳轉(zhuǎn)到登錄系統(tǒng)失敗的操作界面。相關(guān)配置文件的部分代碼如下:
持久層在系統(tǒng)中主要承擔了與數(shù)據(jù)庫進行交互的重任。i BATIS的系統(tǒng)結(jié)構(gòu)主要是根據(jù)JDBC規(guī)范建立與數(shù)據(jù)庫的連接, 并通過反射打通Java對象與數(shù)據(jù)庫參數(shù)交互之間相互轉(zhuǎn)化關(guān)系。i BATIS的框架結(jié)構(gòu)也是按照這種思想來組織類層次結(jié)構(gòu)的, 其實它是一種典型的交互式框架。在本項目應(yīng)用中, 系統(tǒng)通過web.xml中的context Config Location讀取i BATIS相關(guān)的配置文件Sql Map Config.xml、ibatis_beans.xml, 其中ibatis_beans定義了系統(tǒng)的數(shù)據(jù)源 (datasource) 、數(shù)據(jù)源包裝器 (data Source Proxy) 、spring事物管理器 (transaction Manager) 、基于bean屬性名的orm映射 (named ParameterJdbc Template) 、sql Map Client模板類 (sql Map Client Template) 以及sql Map Client對象, sql Map Client引用了系統(tǒng)各個數(shù)據(jù)庫表對象的映射文件, 通過mapping Locations屬性來讀入, 其中包括了登錄相關(guān)的sqlmap文件。i-BATIS相關(guān)配置文件的部分代碼如下:
業(yè)務(wù)層組件在Spring MVC框架中起到十分重要的作用, 提供了處理業(yè)務(wù)邏輯的服務(wù)組件。通過對業(yè)務(wù)對象建模, 可以將業(yè)務(wù)模型進行抽象, 并且封裝在Model組件中。控制層組件通過接口方式向業(yè)務(wù)層組件發(fā)出所需服務(wù)的指令, 并根據(jù)其配置文件配置實例化業(yè)務(wù)層組件, 業(yè)務(wù)層將配置實例注入到控制層的組件中, 在Model組件中方便地調(diào)用DAO組件來存取數(shù)據(jù)。在業(yè)務(wù)層采用Spring MVC框架, 使得管理業(yè)務(wù)層的對象依賴更加方便, Model組件、DAO組件及事務(wù)處理、緩沖連接池等服務(wù)組件都能得到統(tǒng)一管理。并且, 系統(tǒng)中的業(yè)務(wù)校驗、業(yè)務(wù)邏輯和系統(tǒng)事務(wù)管理得到了大大簡化。同時, 在系統(tǒng)的應(yīng)用和優(yōu)化層面, 采用Spring MVC框架可使得系統(tǒng)具有良好的兼容性和可擴展性。以下為業(yè)務(wù)層登錄服務(wù)Login Service部分代碼:
Memcache是一項開源的高性能、分布式內(nèi)存對象緩存技術(shù), 是解決系統(tǒng)訪問量大、數(shù)據(jù)庫壓力倍增的有效方案之一。其主要策略是用內(nèi)存換磁盤讀寫, 通過在內(nèi)存中緩存數(shù)據(jù)和對象來減少讀取數(shù)據(jù)庫的次數(shù), 從而提高了系統(tǒng)訪問的速度。部分用戶信息、系統(tǒng)常量存儲在高速緩存中, 在用戶登錄、高頻交易的業(yè)務(wù)中提供數(shù)據(jù)服務(wù)。只有當緩存中數(shù)據(jù)過期時, 再把數(shù)據(jù)庫中的數(shù)據(jù)讀取到緩存中, 從而減少了I/O讀寫操作, 提高系統(tǒng)的性能。Memcache通過鍵值對 (keyvalue) 的Hash Map形式在內(nèi)存中對任意的數(shù)據(jù) (比如字符串、對象等) 存儲, 數(shù)據(jù)可以來自數(shù)據(jù)庫調(diào)用、API調(diào)用, 或者頁面渲染的結(jié)果。本系統(tǒng)采用“數(shù)據(jù)庫+緩存技術(shù)”的分布式緩存技術(shù)來優(yōu)化系統(tǒng)性能, 能夠減輕數(shù)據(jù)庫壓力、提高訪問速度、提升系統(tǒng)運行效率。以下為會員添加權(quán)限時, 將權(quán)限更新至緩存服務(wù)器的代碼:
考慮到整個交易系統(tǒng)所面向的用戶群包括生產(chǎn)商、經(jīng)銷商、貿(mào)易商、終端消費企業(yè)、銀行、倉儲、監(jiān)管、擔保機構(gòu)、物流配送等, 涉及的交易模式也包括掛牌、競價、商城、撮合等多種, 交易品種也會較多, 因而系統(tǒng)的整體架構(gòu)和數(shù)據(jù)的處理上比較復(fù)雜。為了保證整體業(yè)務(wù)流程的合理順暢, 數(shù)據(jù)流轉(zhuǎn)和處理的完整高效, 采用了如下圖中所示的“四個統(tǒng)一”作為整體業(yè)務(wù)功能設(shè)計的關(guān)鍵, 即統(tǒng)一用戶核心, 統(tǒng)一交易架構(gòu)設(shè)計, 統(tǒng)一支付、結(jié)算管理, 統(tǒng)一數(shù)據(jù)中心。交易系統(tǒng)整體業(yè)務(wù)功能設(shè)計如圖2所示。
按照“統(tǒng)一規(guī)劃、分步實施”的在原則, 根據(jù)交易系統(tǒng)建設(shè)目標, 全力打造集資訊、交易、結(jié)算、倉儲于一體、功能全面的電子交易平臺, 因此, 在核心功能設(shè)計上提出了“一個支撐平臺, 八大功能系統(tǒng), 一個統(tǒng)一異構(gòu)數(shù)據(jù)轉(zhuǎn)換”的系統(tǒng)結(jié)構(gòu)。其中, “一個支撐平臺”指的是系統(tǒng)運行需要的基礎(chǔ)支撐平臺, 如短信服務(wù)、郵件服務(wù)、搜索服務(wù)、CA認證、電子簽章、報表等輔助支撐模塊, 為整個平臺的有效運作和擴展提供了基礎(chǔ)的服務(wù)和保證。“八大功能系統(tǒng)”主要是指門戶網(wǎng)站、電子交易系統(tǒng)、資金賬戶系統(tǒng)、融資系統(tǒng)、會員系統(tǒng)、統(tǒng)一登錄系統(tǒng)、信用評價、運維后臺。“一個統(tǒng)一異構(gòu)數(shù)據(jù)轉(zhuǎn)換”是指提供統(tǒng)一的異構(gòu)數(shù)據(jù)轉(zhuǎn)換模式, 與倉儲管理等系統(tǒng)有效對接, 整合各種協(xié)同服務(wù)流程, 整合各種服務(wù)資源, 集成各種外部配套服務(wù)系統(tǒng), 形成有效的一站式服務(wù)體系。交易系統(tǒng)核心功能設(shè)計如圖3所示。
在網(wǎng)絡(luò)與信息安全、冗余、災(zāi)備等基礎(chǔ)設(shè)施方面, 結(jié)合交易業(yè)務(wù)的實際需求, 交易系統(tǒng)采用雙活集群部署, 對于關(guān)鍵數(shù)據(jù)通過Oracle數(shù)據(jù)庫的RAC技術(shù)進行了雙機熱備, 以保證交易系統(tǒng)的高可用性。集群中兩節(jié)點同時運行各自的應(yīng)用, 并且能實時相互監(jiān)控對方的運行情況, 當集群應(yīng)用中的一臺主機宕機后, 預(yù)先設(shè)定好的另一臺主機可立即接管它的一切工作, 確保前臺的交易業(yè)務(wù)不間斷進行。這種設(shè)計方案可以最大程度地利用硬件資源, 一般要求各節(jié)點具有相等或相似的處理能力, 所有的服務(wù)在故障轉(zhuǎn)移后均保持可用, 確保交易系統(tǒng)安全、穩(wěn)定、高效運行。交易系統(tǒng)網(wǎng)絡(luò)與信息安全設(shè)計如圖4所示。
分為3個階段:
(1) 完成需求調(diào)研和核心功能的開發(fā), 包括門戶網(wǎng)站、電子交易系統(tǒng)、資金賬戶系統(tǒng)、融資系統(tǒng)、會員系統(tǒng)、統(tǒng)一登錄系統(tǒng)、信用評價、運維后臺等功能以及外部接口的開發(fā)并進行測試, 平臺1.0版本上線試運行, 并在選擇部分石油化工類產(chǎn)品進行掛牌交易。計劃完成時間為2017年1月, 目前已經(jīng)完成。
(2) 深入會員企業(yè)開展調(diào)研、考察與交流, 根據(jù)會員企業(yè)的反饋與需求, 與油品倉儲、物流企業(yè)進行戰(zhàn)略合作, 優(yōu)化相應(yīng)的軟件功能模塊并創(chuàng)新交易模式、拓展交易品種, 軟件版本進行升級, 推進系統(tǒng)數(shù)據(jù)的本地、同城、異地3個階段的冷、熱備份處理, 進一步提高交易系統(tǒng)的安全性。計劃完成時間為2017年7月, 目前正在進行之中。
(3) 加大線下現(xiàn)貨會員向線上交易的轉(zhuǎn)化力度, 引導(dǎo)、調(diào)動并激發(fā)會員企業(yè)的線上交易熱情, 在2016年底已有現(xiàn)貨會員228家、現(xiàn)貨貿(mào)易額達到139.73億元的基礎(chǔ)上, 爭取在2017年達到線上線下500家會員企業(yè)的規(guī)模, 線上線下交易額達到300億元以上, 并適時導(dǎo)入包括金融、倉儲、物流在內(nèi)的供應(yīng)鏈管理集成服務(wù), 不斷優(yōu)化、更新平臺軟件版本, 目前正在進行之中。
項目進度表如圖5所示。
浙油中心從成立之日起就堅持“專業(yè)、誠信、公平、共贏”的經(jīng)營宗旨, 以服務(wù)實體經(jīng)濟為己任, 以為客戶創(chuàng)造價值為目標, 在充分借鑒國內(nèi)外大宗商品電子經(jīng)驗的同時, 采用新穎的技術(shù)開發(fā)、交易管理理念, 積極打造“互聯(lián)網(wǎng)+交易”新型商業(yè)模式, 協(xié)同國內(nèi)知名軟件廠商開發(fā)了石油化工現(xiàn)貨交易細分領(lǐng)域內(nèi)的專業(yè)化、全面化、系統(tǒng)化的交易系統(tǒng)軟件, 全面滿足石油化工大宗商品現(xiàn)貨交易的需求, 對于提升浙油中心交易平臺的核心競爭力、促進國內(nèi)外石油化工大宗商品現(xiàn)貨交易商業(yè)模式創(chuàng)新等都具有十分重要的意義。
權(quán)所有©:上海陽合儲運
專業(yè)承接上海倉庫租賃、上海倉儲配送物流、上海電商倉儲企業(yè)服務(wù)與微笑同在"的先進理念不斷發(fā)展壯大。