肖迎賓,莊文杰,邢 陽
江蘇中煙工業(yè)有限責(zé)任公司信息中心,南京市中山北路406-3號(hào) 210011
近年來隨著煙草行業(yè)信息化水平的不斷提升,利用信息化手段支撐卷煙工業(yè)企業(yè)基礎(chǔ)管理上水平取得了一系列成果,卷煙生產(chǎn)經(jīng)營統(tǒng)計(jì)系統(tǒng)、企業(yè)資源計(jì)劃系統(tǒng)(ERP,Enterprise Resource Planning)、企業(yè)制造執(zhí)行系統(tǒng)(MES,Manufacturing Execution System)、兩項(xiàng)工作系統(tǒng)、資金監(jiān)管系統(tǒng)等項(xiàng)目的實(shí)施[1],為企業(yè)管理水平的提升發(fā)揮了重要作用。目前煙草行業(yè)信息化建設(shè)逐步向大集成、大整合、大共享和一體化的方向發(fā)展,特別是在工業(yè)企業(yè)之間合作加工業(yè)務(wù)范圍不斷擴(kuò)大,對(duì)于已實(shí)施SAP ECC(SAP,Enterprise Central Component)軟件的企業(yè)[2],如何以SAP ECC 為中心構(gòu)建一個(gè)安全穩(wěn)定、準(zhǔn)確高效的一體化系統(tǒng)整合架構(gòu),處理因系統(tǒng)平臺(tái)不同帶來的集成技術(shù)難題,解決因跨地區(qū)、跨工廠帶來的網(wǎng)絡(luò)信息傳輸不穩(wěn)定的問題,實(shí)現(xiàn)公司與下屬各工廠和合作加工工廠之間的一體化信息化運(yùn)作,已成為卷煙工業(yè)企業(yè)信息化建設(shè)的難題。為此,結(jié)合江蘇中煙工業(yè)有限責(zé)任公司信息化建設(shè)實(shí)例,構(gòu)建了基于SAP XI 的跨工廠應(yīng)用整合技術(shù)架構(gòu),以期解決各工廠應(yīng)用與中煙公司應(yīng)用一體化整合的問題。
中煙公司實(shí)施SAP ERP 系統(tǒng)主要是為了實(shí)現(xiàn)集中經(jīng)營、分散管理,實(shí)現(xiàn)公司與下屬各工廠和合作加工工廠之間的一體化信息化運(yùn)作[3]。在實(shí)施ERP 系統(tǒng)之前,公司下屬各工廠的一些信息系統(tǒng)無法完全被ERP系統(tǒng)取代,例如高架庫倉儲(chǔ)管理系統(tǒng)、生產(chǎn)執(zhí)行系統(tǒng)(MES)等,這些應(yīng)用系統(tǒng)專業(yè)性強(qiáng),功能設(shè)計(jì)相對(duì)ERP系統(tǒng)更明細(xì)、更適合工廠的生產(chǎn)經(jīng)營組織管理。因此在實(shí)施ERP 系統(tǒng)過程中,為便于管理首先應(yīng)進(jìn)行集成整合,形成公司一體化的應(yīng)用系統(tǒng),以支撐集中經(jīng)營、分散管理的需要。在各應(yīng)用系統(tǒng)集成整合時(shí),除確??傮w架構(gòu)安全、穩(wěn)定、準(zhǔn)確、易維護(hù)外[4],還應(yīng)遵循以下規(guī)則:
(1)與ERP 系統(tǒng)統(tǒng)一的主數(shù)據(jù)規(guī)范。主數(shù)據(jù)規(guī)范統(tǒng)一,才能降低系統(tǒng)集成整合的復(fù)雜程度,提高集成整合效率,降低系統(tǒng)運(yùn)維成本,確保系統(tǒng)數(shù)據(jù)準(zhǔn)確。
(2)與ERP 系統(tǒng)統(tǒng)一的業(yè)務(wù)數(shù)據(jù)規(guī)范。業(yè)務(wù)數(shù)據(jù)規(guī)范統(tǒng)一,才能夠統(tǒng)一財(cái)務(wù)、物流、銷售、生產(chǎn)和研發(fā),實(shí)現(xiàn)企業(yè)物流、資金流、信息流和工作流的有機(jī)集成,提高對(duì)多點(diǎn)生產(chǎn)的管控能力。
(3)松散耦合的系統(tǒng)集成。由于各工廠在網(wǎng)絡(luò)通信、系統(tǒng)平臺(tái)等方面存在較大差異,且集成整合的應(yīng)用系統(tǒng)與生產(chǎn)緊密關(guān)聯(lián)。因此進(jìn)行集成整合時(shí)要確保系統(tǒng)間通信安全、穩(wěn)定且相對(duì)獨(dú)立,在出現(xiàn)故障時(shí)不會(huì)影響各工廠的生產(chǎn)運(yùn)作。
(4)安全、準(zhǔn)確、高效的信息交互。跨工廠應(yīng)用集成整合架構(gòu)涉及的單位和應(yīng)用系統(tǒng)較多,特別是合作加工工廠差異性更大。為保障公司能夠詳細(xì)、準(zhǔn)確、全面掌握運(yùn)作數(shù)據(jù),系統(tǒng)間的信息傳遞不應(yīng)受地域、網(wǎng)絡(luò)和技術(shù)平臺(tái)的限制。
綜上所述,基于SAP XI 的應(yīng)用整合架構(gòu)總體設(shè)計(jì)應(yīng)遵循安全性、穩(wěn)定性、準(zhǔn)確性、易維護(hù)的原則,并能夠?qū)崿F(xiàn)公司統(tǒng)一財(cái)務(wù)、統(tǒng)一物流、統(tǒng)一銷售、統(tǒng)一生產(chǎn)、統(tǒng)一研發(fā)的管理要求。整個(gè)總體架構(gòu)設(shè)計(jì)分為中煙公司層面和工廠層面兩大部分,見圖1。
圖1 跨工廠應(yīng)用整合架構(gòu)總體設(shè)計(jì)圖
在中煙公司層面部署滿足業(yè)務(wù)管理需要的SAP ERP 系統(tǒng),即SAP ECC。SAP ERP 系統(tǒng)根據(jù)各業(yè)務(wù)模塊管理需要,與各工廠應(yīng)用系統(tǒng)實(shí)現(xiàn)下行、上行、同步的數(shù)據(jù)交互業(yè)務(wù),數(shù)據(jù)交換在ABAP PROXY 內(nèi)完成業(yè)務(wù)邏輯的設(shè)計(jì)與實(shí)現(xiàn),通過ABAP PROXY 與SAP XI 進(jìn)行無縫連接。SAP XI 負(fù)責(zé)將SAP ECC 的業(yè)務(wù)數(shù)據(jù)與各工廠應(yīng)用系統(tǒng)的業(yè)務(wù)數(shù)據(jù)進(jìn)行MAPPING,并按照數(shù)據(jù)要求或特定數(shù)據(jù)庫的規(guī)則進(jìn)行格式轉(zhuǎn)換,以滿足目標(biāo)系統(tǒng)的要求。SAP XI 通過適配器與消息中間件直連,消息中間件一方面將來自于SAP XI 的數(shù)據(jù)組織成消息,建立傳輸通道,傳輸至目標(biāo)工廠;另一方面接收工廠內(nèi)傳輸至公司的消息,并將消息數(shù)據(jù)傳輸給SAP XI。
在工廠層面,各工廠分別部署一套消息中間件系統(tǒng)與公司消息中間件系統(tǒng)對(duì)接。各工廠消息中間件系統(tǒng)通過公網(wǎng)或?qū)>€與公司建立網(wǎng)絡(luò)連接,一方面接收公司消息中間件的消息數(shù)據(jù),供企業(yè)內(nèi)應(yīng)用系統(tǒng)進(jìn)行處理;另一方面將企業(yè)內(nèi)應(yīng)用系統(tǒng)業(yè)務(wù)操作結(jié)果的數(shù)據(jù)及時(shí)回傳給公司的SAP ERP 系統(tǒng),從而實(shí)現(xiàn)各工廠應(yīng)用系統(tǒng)與公司SAP ERP 系統(tǒng)之間的互動(dòng)[5]。
整體設(shè)計(jì)中考慮了業(yè)務(wù)單據(jù)同步、信息傳遞高效、信息追溯便捷等要求。SAP ECC 是否正常封裝消息并發(fā)送給XI,可通過ECC 的標(biāo)準(zhǔn)功能SXI_MONITOR 實(shí)時(shí)查詢。XI 是否根據(jù)映射關(guān)系正確轉(zhuǎn)換消息并成功發(fā)送給接口平臺(tái),可通過XI 的標(biāo)準(zhǔn)組建Runtime WorkBench實(shí)時(shí)查詢。利用消息中間件傳輸消息數(shù)據(jù)時(shí)若網(wǎng)絡(luò)不通暢,消息將存儲(chǔ)在消息中間件隊(duì)列管理器的遠(yuǎn)程隊(duì)列中,不會(huì)出現(xiàn)丟失現(xiàn)象。
SAP XI(Exchange Infrastructure)是SAP Netweaver 中間件產(chǎn)品的核心組件之一,其主要功能是為外部的非SAP 系統(tǒng)提供一個(gè)與SAP 系統(tǒng)進(jìn)行數(shù)據(jù)交互和流程銜接的集成平臺(tái)[6]。SAP XI 平臺(tái)支持 如SOAP,JMS,HTTP 等多種數(shù)據(jù)交互協(xié)議,以XML 作為數(shù)據(jù)交互消息格式實(shí)現(xiàn)與應(yīng)用組件或其他中間件的同步或異步交互[7]。SAP XI 在總體架構(gòu)上包括System Landscape Directory(SLD),Integration Repository(IR),Integration Directory(ID),Integration Server(IS)4 部分[8],見圖2。用路由和映射規(guī)則處理消息,最終送達(dá)或接收應(yīng)用系統(tǒng)消息。
圖2 SAP XI 總體技術(shù)架構(gòu)圖
SLD 是向SAP XI 提供已安裝系統(tǒng)、產(chǎn)品、組件、版本以及相互關(guān)系等實(shí)體信息的中央應(yīng)用服務(wù),其實(shí)體信息的組織基于公共信息模型(CIM,Common Information Model),提供一致的使用面向?qū)ο蠹夹g(shù)的數(shù)據(jù)定義和結(jié)構(gòu)。IR 的接口開發(fā)設(shè)計(jì)過程信息,例如接口定義信息、映射定義信息等,ID 的接口交互配置信息,例如發(fā)送方配置、接收方配置等信息,在SLD 中都是以CIM 的形式進(jìn)行管理和組織,并為運(yùn)行中的IR,ID,IS 等組件提供服務(wù)。
IR 是SAP XI 中用于接口定義、設(shè)計(jì)對(duì)象信息的資源庫。通過利用IR 提供的可視化編輯工具完成接口信息的定義、映射等工作,從而實(shí)現(xiàn)SAP ECC 與外圍應(yīng)用或系統(tǒng)之間的信息交互;ID 是SAP XI 中用以定義、配置系統(tǒng)間連接關(guān)系的信息庫,包括路由規(guī)則、活動(dòng)狀態(tài)服務(wù)、可執(zhí)行映射規(guī)則、特定系統(tǒng)狀態(tài)、發(fā)送系統(tǒng)、接收系統(tǒng)等信息;IS 在SAP XI 中按照IR 和ID 定義好的邏輯規(guī)則,實(shí)現(xiàn)從外圍(或內(nèi)部SAP)應(yīng)用系統(tǒng)接收消息,利
SAP 系統(tǒng)中新增的生成PROXY 功能,實(shí)現(xiàn)了SAP ECC 與SAP XI 的無縫連接,并可通過PROXY 與SAP XI進(jìn)行通信。PROXY 是SAP 提供的一種新型編程范式,是企業(yè)服務(wù)架構(gòu)(Enterprise Services Architecture)的重要組成部分,主要用于定義業(yè)務(wù)處理邏輯單元,XI 是用于定義系統(tǒng)接口信息、系統(tǒng)集成整合信息的功能單元。SAP XI 組件IR 根據(jù)接口信息組織成接口定義語言WSDL,SAP ECC 依據(jù)此WSDL 在ECC 端自動(dòng)生 成PROXY,在PROXY 中允許通過編寫程序代碼定義業(yè)務(wù)處理邏輯,完成信息交互,并可方便地引用SAP ECC 中的標(biāo)準(zhǔn)函數(shù)。根據(jù)SAP 系統(tǒng)編譯語言的不同,分為兩種PROXY:ABAP PROXY 和JAVA PROXY。
ABAP PROXY 根據(jù)處理數(shù)據(jù)流向的不同分為Client PROXY 和Server PROXY。Client PROXY 的生成對(duì)應(yīng)于Outbound 接口,主要用于從ECC 向外發(fā)送信息,在SAP ECC 中以ABAP 類的形成存在。對(duì)應(yīng)于WSDL 的描述,在ABAP 類中同時(shí)生成特定前綴格式的數(shù)據(jù)結(jié)構(gòu)和表類型參數(shù),根據(jù)數(shù)據(jù)接口處理同步或異步要求,由函數(shù) EXECUTE_SYNCHRONOUS 或 EXECUTE_ASYNCHRONOUS 完成由SAP ECC 傳輸至XI 的業(yè)務(wù)邏輯。Server PROXY 的生成對(duì)應(yīng)于Inbound 接口,作為服務(wù)接收端接收XI 傳輸過來的消息。Server PROXY的生成與Client PROXY 類似,根據(jù)數(shù)據(jù)接口處理同步或異步要求,Server PROXY 運(yùn)行時(shí)調(diào)用EXECUTE_SYNCHRONOUS 或EXECUTE_ASYNCHRONOUS 函數(shù)來完成數(shù)據(jù)處理邏輯。
XI 是跨工廠應(yīng)用集成整合的核心組成部分,而集成服務(wù)器(IS)則是XI 的核心部分。如圖3 所示,XI 采用SOAP 協(xié)議及XML 消息機(jī)制與外圍應(yīng)用系統(tǒng)保持連接,進(jìn)入XI 的消息數(shù)據(jù)要經(jīng)過一系列的處理步驟,稱為XI Pipeline。XI Pipeline 由Pipeline Services 組 成,每 個(gè)Pipeline Service 都是一個(gè)ABAP 對(duì)象類,負(fù)責(zé)對(duì)進(jìn)入XI的消息數(shù)據(jù)執(zhí)行特定的業(yè)務(wù)邏輯。IR 中的接口信息定義和ID 中的路由規(guī)則定義在Pipeline 處理過程中根據(jù)需要被引用。
集成適配器(Integration Adapter)提供了各種類型的接口用于外圍系統(tǒng)與XI 連接,XI 提供了PCK 工具(Partner Connectivity Kit)與XI 基于XML 格式進(jìn)行數(shù)據(jù)交互。集成適配器是雙向的,可以將各種協(xié)議和數(shù)據(jù)轉(zhuǎn)換成XML 格式的消息對(duì)象,從而實(shí)現(xiàn)信息傳輸功能。
圖3 XI 內(nèi)部集成處理機(jī)制流程圖
圖4 消息中間件的信息傳輸過程圖
消息中間件MOM(Message Oriented Middleware)是一種利用消息傳送機(jī)制或消息隊(duì)列模式技術(shù),在分布式系統(tǒng)中實(shí)現(xiàn)可靠、高效、安全的跨平臺(tái)數(shù)據(jù)傳輸?shù)闹虚g件,支持多種通訊協(xié)議、語言、應(yīng)用程序、硬件和軟件平臺(tái)。相對(duì)于其他通信技術(shù),消息通信技術(shù)更適合于跨工廠的應(yīng)用集成整合,其優(yōu)勢(shì)在于可實(shí)現(xiàn)松耦合的跨平臺(tái)、跨應(yīng)用的異構(gòu)集成,解決系統(tǒng)間大數(shù)據(jù)量傳輸時(shí)的系統(tǒng)瓶頸問題,提高系統(tǒng)的可伸縮性和吞吐量,確保體系結(jié)構(gòu)的靈活性和敏捷性。XI 通過適配器與消息中間件建立標(biāo)準(zhǔn)的通訊協(xié)議,實(shí)現(xiàn)XI 與消息中間件的互聯(lián)互通,見圖4。
本地系統(tǒng)A 通過調(diào)用MOM1 的API 接口函數(shù)PUT(),將系統(tǒng)A 中待傳輸?shù)臄?shù)據(jù)交給消息中間件MOM1,根據(jù)系統(tǒng)A 的傳送數(shù)據(jù)目的地技術(shù)參數(shù)信息,MOM1 通過隊(duì)列管理器創(chuàng)建本地消息隊(duì)列或遠(yuǎn)程消息隊(duì)列。隊(duì)列是用于存儲(chǔ)消息的數(shù)據(jù)結(jié)構(gòu),隊(duì)列管理器將待傳輸?shù)臄?shù)據(jù)組織成標(biāo)準(zhǔn)消息數(shù)據(jù)存放于隊(duì)列中,每一個(gè)消息均由應(yīng)用程序數(shù)據(jù)和消息描述符組成,消息描述符用以標(biāo)識(shí)消息,并包含其他控制信息。遠(yuǎn)程消息隊(duì)列2的消息傳輸由消息中間件MOM1 的通道管理器負(fù)責(zé)管理,MOM1 的通道管理器可與遠(yuǎn)端系統(tǒng)MOM2 中的通道管理器共同創(chuàng)建通道并傳輸消息。本地系統(tǒng)B 或遠(yuǎn)端系統(tǒng)C 可通過API 接口函數(shù)GET()獲取消息隊(duì)列中的數(shù)據(jù)信息。根據(jù)消息的傳輸應(yīng)答要求,可選擇異步通信或同步通信模式。
基于SAP XI 的跨工廠應(yīng)用整合架構(gòu),以公司SAP ECC 系統(tǒng)發(fā)布一條主數(shù)據(jù)同步到各工廠應(yīng)用系統(tǒng)為例,其技術(shù)實(shí)現(xiàn)流程為:
(1)通過對(duì)SAP 標(biāo)準(zhǔn)功能的ABAP 增強(qiáng)開發(fā)[9],可以在SAP ERP 中創(chuàng)建新物料主數(shù)據(jù),點(diǎn)擊保存按鈕時(shí),增強(qiáng)開發(fā)程序調(diào)用PROXY 內(nèi)的函數(shù),并向PROXY 內(nèi)的數(shù)據(jù)結(jié)構(gòu)賦值,由PROXY 負(fù)責(zé)將數(shù)據(jù)消息組織成XML推送給XI。
(2)XI 解析XML 消息,并按照映射關(guān)系將接收消息中的字段信息轉(zhuǎn)換為新的字段,以JMS(Java Message Service)的適配方式,配置消息服務(wù)器的地址、端口、隊(duì)列管理器名稱、通道名稱、隊(duì)列名稱,將該XML 消息通過通道傳輸?shù)街袩煿鞠⒎?wù)器。
(3)中煙公司消息服務(wù)器將接收到的主數(shù)據(jù)信息,根據(jù)需要按照業(yè)務(wù)規(guī)則進(jìn)行再處理,然后根據(jù)配置的通道信息將主數(shù)據(jù)信息傳達(dá)到各工廠消息服務(wù)器。
(4)各工廠應(yīng)用系統(tǒng)根據(jù)設(shè)定好的規(guī)則,從企業(yè)消息服務(wù)器中取出新增主數(shù)據(jù)信息,在應(yīng)用系統(tǒng)中處理完成主數(shù)據(jù)的創(chuàng)建工作,保證工廠應(yīng)用系統(tǒng)主數(shù)據(jù)規(guī)范并與公司SAP ERP 系統(tǒng)一致。
為驗(yàn)證應(yīng)用整合架構(gòu)的實(shí)際運(yùn)行性能,對(duì)該架構(gòu)的運(yùn)行數(shù)據(jù)進(jìn)行了測(cè)試,結(jié)果見表1。可見,上下行數(shù)據(jù)傳輸平均消息數(shù)量分別為7359 條/周和4876 條/周,成功率均為100%;上下行數(shù)據(jù)傳輸平均用時(shí)分別為1.938 s 和0.510 s。說明該架構(gòu)能夠穩(wěn)定、準(zhǔn)確、高效地實(shí)現(xiàn)跨工廠的應(yīng)用整合,滿足業(yè)務(wù)運(yùn)轉(zhuǎn)需要。
基于SAP XI 的跨工廠應(yīng)用整合架構(gòu),實(shí)現(xiàn)了中煙公司SAP ERP 系統(tǒng)與下屬各卷煙廠MES、TIMMS(Total Integrated Material Management System)等系統(tǒng)之間的一體化應(yīng)用整合,系統(tǒng)運(yùn)行穩(wěn)定,數(shù)據(jù)準(zhǔn)確,處理高效,安全可靠,取得了良好的運(yùn)行效果。但整個(gè)架構(gòu)在設(shè)計(jì)過程中未考慮全程監(jiān)控?cái)?shù)據(jù)處理流程的顯示,在數(shù)據(jù)處理出現(xiàn)問題時(shí)需要人工按步驟發(fā)現(xiàn)和解決問題,無法準(zhǔn)確定位、快速解決,因此在此基礎(chǔ)上還需繼續(xù)完善設(shè)計(jì)和提高運(yùn)行效率。
表1 應(yīng)用整合架構(gòu)性能測(cè)試數(shù)據(jù)
[1]陸海良,章志華,汪歡文.基于SOA 架構(gòu)運(yùn)用SAP XI 實(shí)現(xiàn)卷煙工業(yè)企業(yè)一體化信息集成平臺(tái)的應(yīng)用研究[J].煙草科技,2011(1):29-32.
[2]吳秋果.SAP 應(yīng)用集成研究[D].北京:北京交通大學(xué),2007.
[3]王偉民.煙草工業(yè)集團(tuán)化運(yùn)作產(chǎn)銷集成系統(tǒng)的研究應(yīng)用[J].煙草科技,2007(5):29-33.
[4]王金亮.煙草行業(yè)信息應(yīng)用系統(tǒng)總體技術(shù)架構(gòu)研究[J].煙草科技,2001(5):3-7.
[5]于燁,李向輝.SAP 與外圍系統(tǒng)接口的開發(fā)與實(shí)現(xiàn)[J].自動(dòng)化與儀表,2010,25(3):48-51.
[6]馮亞麗,蔣文文,陶慶軍,等.基于XI 的SAP 系統(tǒng)與外圍系統(tǒng)集成[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2012,21(2):9-12.
[7]趙佳琦.SAP 與其他系統(tǒng)集成的接口技術(shù)研究[D].廣州:華南理工大學(xué),2010.
[8]劉洋,王海鳳,杜景紅,等.SAP XI 在ERP 與MES 集成中的應(yīng)用[J].冶金自動(dòng)化,2008,32(4):35-38.
[9]唐亮.SAP 接口技術(shù)研究與開發(fā)[D].上海:同濟(jì)大學(xué),2006.