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