劉建國
(黑龍江省建安公路工程有限公司,哈爾濱150001)
一種面向網(wǎng)絡化制造的企業(yè)異構(gòu)數(shù)據(jù)轉(zhuǎn)換集成技術(shù)
劉建國
(黑龍江省建安公路工程有限公司,哈爾濱150001)
在企業(yè)集成環(huán)境中,提出了數(shù)據(jù)全生命周期管理的概念。針對制造企業(yè)內(nèi)部的各種異構(gòu)的數(shù)據(jù)存儲系統(tǒng)、數(shù)據(jù)類型和存儲格式,采用J2EE構(gòu)架,搭建了可伸縮的、功能可配置的數(shù)據(jù)集成平臺。該平臺具有存儲系統(tǒng)智能管理功能,為用戶屏蔽了各種數(shù)據(jù)存儲系統(tǒng)差異性。系統(tǒng)采用XML技術(shù),使數(shù)據(jù)文件內(nèi)部結(jié)構(gòu)對外界可見;通過配置不同數(shù)據(jù)格式的數(shù)據(jù)轉(zhuǎn)換模塊,實現(xiàn)對不同存儲格式數(shù)據(jù)的存儲、轉(zhuǎn)換及集成的智能管理。
J2EE;數(shù)據(jù)轉(zhuǎn)換;數(shù)據(jù)集成;XML
網(wǎng)絡化制造是以數(shù)字化、柔性化、敏捷化為基本特征[1]。在網(wǎng)絡化制造模式下,要求企業(yè)不僅要能夠?qū)崿F(xiàn)其內(nèi)部業(yè)務軟件系統(tǒng)的集成,還要實現(xiàn)不同企業(yè)之間應用系統(tǒng)的動態(tài)集成和相互協(xié)作。因此,對于制造企業(yè),面向網(wǎng)絡化制造就是利用網(wǎng)絡技術(shù),將異構(gòu)、異地的應用系統(tǒng)集成起來,實現(xiàn)企業(yè)內(nèi)部和企業(yè)之間應用集成,使企業(yè)具有快速重組、快速響應的能力,以適應市場需求的變化。由于企業(yè)使用的軟件系統(tǒng)種類繁多,數(shù)據(jù)類型和數(shù)據(jù)輸出的格式也不盡相同,造成了數(shù)據(jù)交流和共享的困難,進而成為企業(yè)應用集成的頸瓶。
本文針對網(wǎng)絡化制造環(huán)境下,提出了數(shù)據(jù)全生命周期管理的概念,即:數(shù)據(jù)全生命周期管理是指在多數(shù)據(jù)存儲系統(tǒng)、多數(shù)據(jù)存儲格式的環(huán)境中,為用戶屏蔽多數(shù)據(jù)存儲系統(tǒng)、多數(shù)據(jù)存儲格式帶來的數(shù)據(jù)使用的差異性,提供統(tǒng)一的數(shù)據(jù)使用接口,以實現(xiàn)數(shù)據(jù)的存儲、查詢、讀取、刪除等操作。數(shù)據(jù)全生命周期管理體現(xiàn)了真正對用戶有用的數(shù)據(jù),是數(shù)據(jù)內(nèi)容本身,而非其所在的數(shù)據(jù)存儲系統(tǒng)以及與它的通信及其具體的數(shù)據(jù)存儲格式。基于J2EE技術(shù)構(gòu)建了一個數(shù)據(jù)集成平臺-基于網(wǎng)絡的企業(yè)數(shù)據(jù)集成系統(tǒng)(WEDIS,Web-based Enterprise Data Integration System),實現(xiàn)制造企業(yè)內(nèi)部的各種異構(gòu)的數(shù)據(jù)存儲系統(tǒng),數(shù)據(jù)類型和存儲格式數(shù)據(jù)集成。
1.1 支撐技術(shù)的選擇
對于可伸縮的、分布式的軟件平臺,通常采用基于組件的方法構(gòu)建,常用的分布式組件技術(shù)有COM+、CORBA(Common Object Request Broker Architecture)、J2EE(Java 2 Platform Enterprise Edition)技術(shù)等。但作為當前主流技術(shù)的J2EE技術(shù)有以下優(yōu)點:
1)它能夠保留原有企業(yè)資源;2)高效的開發(fā);3)支持異構(gòu)環(huán)境集成。J2EE作為一種技術(shù)規(guī)范,鞏固了標準版(Java 2 Platform Standard Edition,J2SE)中的許多優(yōu)點,“編寫一次、隨處運行”的特性、方便存取數(shù)據(jù)庫的JDBC API,同時還提供了對EJB(Enterprise JavaBeans)、Java Servlet API、JSP(Java Server Pages)以及對XML技術(shù)的全面支持[2]。此外,J2EE對于XML技術(shù)的支持使其在網(wǎng)絡化制造中的數(shù)據(jù)轉(zhuǎn)換集成平臺中具有不可替代的作用。因此,基于J2EE技術(shù)構(gòu)建的數(shù)據(jù)集成平臺是解決企業(yè)應用軟件集成的首選。
1.2 WEDIS集成系統(tǒng)的體系結(jié)構(gòu)
WEDIS系統(tǒng)是基于J2EE三層構(gòu)架體系的,即:客戶層、服務器層和數(shù)據(jù)層。其總體體系結(jié)構(gòu)如圖1所示。
1.2.1 客戶端
客戶端是數(shù)據(jù)用戶終端,包括瀏覽器用戶和應用程序用戶。瀏覽器用戶一般是指通過B/S的方式來使用平臺進行數(shù)據(jù)操作的操作者;而應用程序則是通過SOAP協(xié)議來調(diào)用系統(tǒng)的數(shù)據(jù)操作接口,從而實現(xiàn)應用程序間無障礙的進行數(shù)據(jù)交換。
1.2.2 WEDIS系統(tǒng)
為了適應數(shù)據(jù)類型繁多、數(shù)據(jù)存儲格式各異的現(xiàn)實,要求WEDIS系統(tǒng)具有靈活的結(jié)構(gòu),以實現(xiàn)功能上的開放性和性能上的伸縮性。針對以上的要求,平臺的結(jié)構(gòu)如圖1所示。其中,工作引擎是平臺的基體,其他的服務模塊都將部署到它的上面。數(shù)據(jù)存儲系統(tǒng)管理器具體維護在系統(tǒng)中注冊的數(shù)據(jù)存儲系統(tǒng)及其相關(guān)信息。數(shù)據(jù)收發(fā)模塊與各個數(shù)據(jù)存儲系統(tǒng)通信,進行各種數(shù)據(jù)操作。而服務模塊則是根據(jù)用戶的具體要求定制的。

圖1 WEDIS系統(tǒng)體系結(jié)構(gòu)
1)工作引擎。工作引擎模塊是本系統(tǒng)中比較重要的模塊之一,它起到了系統(tǒng)基體的作用,把各個服務模塊“聚集”成一個系統(tǒng)。它為服務模塊提供諸如用戶身份驗證、系統(tǒng)運行情況記錄等基礎性服務,而且還能“發(fā)現(xiàn)”可用的服務模塊,即:每當系統(tǒng)啟動時,工作引擎都將通過查詢服務模塊管理器來獲得當前情況下可以為用戶提供服務的服務模塊,然后將這些服務模塊提供的服務展示給用戶。但工作引擎并不代表用戶所需的具體需求,而是用戶服務模塊來代替的。這樣的設計使得工作引擎和服務模塊之間的關(guān)系非常松散,進而帶來了性能上的可伸縮性,一旦有需要,可以將服務模塊部署到別的機器上,從而獲得巨大的性能優(yōu)勢;也可適應用戶需求的變化和用戶新的需求,一旦用戶的某個需求發(fā)生變化,只需對相應的服務模塊進行更改,當有新的需求出現(xiàn)時,用戶只需在系統(tǒng)提供的二次開發(fā)環(huán)境中開發(fā)專門針對該需求的服務模塊,服務模塊提供本系統(tǒng)定義的接口,然后通過平臺的部署工具將其部署到系統(tǒng)中去。這樣,服務模塊便會被工作引擎發(fā)現(xiàn)進而呈現(xiàn)給用戶。
2)數(shù)據(jù)存儲系統(tǒng)管理器。它向系統(tǒng)管理員提供專門的數(shù)據(jù)存儲系統(tǒng)管理工具,以方便系統(tǒng)管理員注冊數(shù)據(jù)存儲系統(tǒng),維護其有關(guān)諸如物理地址、通信協(xié)議、通信接口等信息。通過這些工具,系統(tǒng)管理員還可以隨時啟用或停用特定數(shù)據(jù)存儲系統(tǒng),從而實現(xiàn)數(shù)據(jù)存儲系統(tǒng)的全面管理。數(shù)據(jù)存儲系統(tǒng)管理器還要向數(shù)據(jù)收發(fā)模塊提供用于和具體數(shù)據(jù)存儲系統(tǒng)通信的通信連接(connection),數(shù)據(jù)收發(fā)模塊通過它將實現(xiàn)與各種各樣的數(shù)據(jù)存儲系統(tǒng)通信。該連接是通過JCA(J2EE Connector Architecture)技術(shù)來實現(xiàn)的。
3)服務模塊。服務模塊是按用戶需求定制的功能模塊,當用戶有新的需求,或現(xiàn)有需求發(fā)生變化時,則只需增加或改變相應的服務模塊即可。我們的平臺將開發(fā)服務模塊二次開發(fā)環(huán)境,在此環(huán)境中,用戶可以調(diào)用系統(tǒng)的基礎服務。這樣,用戶通過它就可以方便地擴展系統(tǒng)的功能。我們?yōu)榉漳K定義了與平臺交互的接口。所以,只要用戶遵守該接口,而具體用什么技術(shù)來實現(xiàn),則不重要,在本次實現(xiàn)中,我們用Servlet和JSP技術(shù)開發(fā)與個人用戶進行交互的服務模塊,而使用EJB技術(shù)開發(fā)與遠程客戶端運用程序交互的服務模塊,圖2是系統(tǒng)服務模塊結(jié)構(gòu)圖。

圖2 WEDIS系統(tǒng)功能
1.2.3 數(shù)據(jù)層
此處數(shù)據(jù)層是指各種各樣的數(shù)據(jù)存儲系統(tǒng),包括數(shù)據(jù)庫系統(tǒng),EIS系統(tǒng),以及一切可以用于存儲數(shù)據(jù)的系統(tǒng)。WEDIS系統(tǒng)的主要作用便是將它們封裝起來,以方便各種應用系統(tǒng)對它們的訪問。
WEDIS系統(tǒng)作為數(shù)據(jù)集成、轉(zhuǎn)換的統(tǒng)一解決方案,充分實現(xiàn)了數(shù)據(jù)全生命周期管理功能。它為用戶屏蔽了眾多數(shù)據(jù)存儲系統(tǒng)帶來的不便,提出一種統(tǒng)一的機制解決數(shù)據(jù)集成、轉(zhuǎn)換,并且為用戶提供了一套統(tǒng)一的數(shù)據(jù)存儲、查詢和讀取的接口,其功能如圖2所示。
2.1 智能管理各種數(shù)據(jù)存儲系統(tǒng)

圖3 WEDIS數(shù)據(jù)存儲系統(tǒng)管理
本系統(tǒng)提供了管理各種數(shù)據(jù)存儲系統(tǒng)的功能,如圖3為WEDIS數(shù)據(jù)存儲系統(tǒng)管理。它首先包括對數(shù)據(jù)存儲系統(tǒng)的基本管理功能。系統(tǒng)管理員通過它可靈活、機動地在該系統(tǒng)中注冊所需要的各種數(shù)據(jù)存儲系統(tǒng),配置這些數(shù)據(jù)存儲系統(tǒng)的諸如物理地址、交互接口和通信協(xié)議等的信息;與此同時,也可以將特定的數(shù)據(jù)存儲系統(tǒng)從本系統(tǒng)中注銷。此外,系統(tǒng)管理員還可以動態(tài)地啟用、停用各個存儲系統(tǒng)。而系統(tǒng)本身則維護關(guān)于數(shù)據(jù)存儲系統(tǒng)各種的信息。
系統(tǒng)的數(shù)據(jù)存儲系統(tǒng)管理管理功能還包括向外界提供的統(tǒng)一的數(shù)據(jù)操作接口,如:讀取數(shù)據(jù),查詢數(shù)據(jù),刪除數(shù)據(jù)和存儲數(shù)據(jù)。這些接口將以Web Component和Web Service endpoint的形式提供。通過Web Component形式的接口,瀏覽器用戶可以與本系統(tǒng)交互,從而以統(tǒng)一的方式實現(xiàn)對各種數(shù)據(jù)存儲系統(tǒng)的操作,簡化的各種數(shù)據(jù)存儲系統(tǒng)的使用。通過Web Service endpoint形式的接口,本系統(tǒng)中所定義的各個服務模塊和遠程應用程序便可以與各種數(shù)據(jù)存儲系統(tǒng)交互,這樣,便為企業(yè)應用集成奠定了基礎。系統(tǒng)內(nèi)部則通過JCA(J2EE Connector Architecture)技術(shù)與具體的數(shù)據(jù)存儲系統(tǒng)通信,將數(shù)據(jù)存儲到各個數(shù)據(jù)存儲系統(tǒng)中去,或從中讀取特定數(shù)據(jù)。
2.2 管理在數(shù)據(jù)存儲系統(tǒng)中的數(shù)據(jù)
系統(tǒng)為數(shù)據(jù)用戶提供的數(shù)據(jù)操作包括數(shù)據(jù)存儲、數(shù)據(jù)查詢、數(shù)據(jù)讀取和數(shù)據(jù)刪除。系統(tǒng)對數(shù)據(jù)的管理是指為了響應用戶的操作而將數(shù)據(jù)存儲到特定地方,或從中讀取特定數(shù)據(jù),或檢索出特定數(shù)據(jù)。其中存儲數(shù)據(jù)、讀取數(shù)據(jù)和刪除數(shù)據(jù)都可以通過與數(shù)據(jù)存儲系統(tǒng)的交互完成,但檢索數(shù)據(jù)則不然,由于數(shù)據(jù)是被分散地存儲在不同的數(shù)據(jù)存儲系統(tǒng)中的,如果檢索數(shù)據(jù)也通過與數(shù)據(jù)存儲系統(tǒng)進行交互來完成,其效率是相當?shù)偷模瑢嶋H能記錄的關(guān)于數(shù)據(jù)的信息也是有限的。因此,將在本系統(tǒng)層面維護通過該系統(tǒng)進行存儲的數(shù)據(jù)的信息,這些信息包括諸如數(shù)據(jù)名稱、數(shù)據(jù)存儲格式、數(shù)據(jù)文件大小等基本信息和數(shù)據(jù)存儲時間、數(shù)據(jù)存儲者等數(shù)據(jù)操作信息。這樣一來,方便了數(shù)據(jù)查詢管理,使用戶可從多角度獲取數(shù)據(jù),也可了解數(shù)據(jù)多方面的信息。
2.3 數(shù)據(jù)轉(zhuǎn)換和集成
對用戶而言,真正有用的是數(shù)據(jù)的內(nèi)容,但在實際中卻因為存在著各種異質(zhì)、異構(gòu)的應用軟件和信息系統(tǒng)而使得即使同一種數(shù)據(jù)也有不同的存儲格式,這種情況在一般情況下不是問題,但在進行各種應用集成時,在各個應用軟件之間需要進行通信、交流時,卻顯得尤為突出,從而形成了所謂的信息孤島。
在該方案中,我們首先搭建一個數(shù)據(jù)轉(zhuǎn)換平臺,然后針對具體的轉(zhuǎn)換需求,開發(fā)特定的轉(zhuǎn)換模塊,最后將轉(zhuǎn)換模塊部署到平臺上,以實現(xiàn)對各種數(shù)據(jù)的轉(zhuǎn)換。該方案避開了構(gòu)建統(tǒng)一數(shù)據(jù)格式,或者說,該方案并不依賴于統(tǒng)一的存儲格式,而是直接在數(shù)據(jù)格式之間進行轉(zhuǎn)換,這樣作最直接的好處是降低了轉(zhuǎn)換的難度以及提高了數(shù)據(jù)轉(zhuǎn)換的精度,而且能高度適應將來的變化。這樣一來,企業(yè)可以較低的成本實現(xiàn)數(shù)據(jù)轉(zhuǎn)換,而且能保證轉(zhuǎn)換精度,能適應企業(yè)今后的發(fā)展變化。以同樣的原理,我們也將采用“平臺+數(shù)據(jù)集成模塊”的形式來實現(xiàn)數(shù)據(jù)集成,該方案特別適合企業(yè)需求多變的情況。通過上述方案的實施,我們較好地解決了數(shù)據(jù)轉(zhuǎn)換、集成問題,為實現(xiàn)企業(yè)集成奠定了堅實的基礎。
XML是W3C提出的一種基于互聯(lián)網(wǎng)上交換數(shù)據(jù)的標準,是標準通用語言SGML的簡化版本。XML是定義標記語言的一種元語言,語法簡單,其文檔中的數(shù)據(jù)內(nèi)容和表現(xiàn)形式是分離的,文檔編寫一次可以以不同的方式解析并表現(xiàn)出來,為數(shù)據(jù)表達提供了一種與平臺無關(guān)的格式。通過XML來表達知識、傳遞數(shù)據(jù),它具有的可擴展性、結(jié)構(gòu)性、平臺無關(guān)性使XML成為數(shù)據(jù)交換和網(wǎng)絡計算的基礎[3]。在企業(yè)應用集成中,利用XML可以實現(xiàn)不同應用和平臺間數(shù)據(jù)存儲和信息傳遞,允許不同來源的數(shù)據(jù)無縫集成。而且XML支持WEB應用,瀏覽器與文檔可直接進行動態(tài)的交互操作。XML的上述這些特點以及它對J2EE技術(shù)的完全支持,已經(jīng)成為異構(gòu)系統(tǒng)間數(shù)據(jù)交換的首選語言。
在集成系統(tǒng)中,數(shù)據(jù)轉(zhuǎn)換模塊功能通過模塊描述文檔來對其進行描述。其中模塊描述文檔采用XML技術(shù)來實現(xiàn),而功能轉(zhuǎn)換部分是真正現(xiàn)實數(shù)據(jù)轉(zhuǎn)換功能的執(zhí)行機構(gòu),其數(shù)據(jù)轉(zhuǎn)換過程如圖4所示。

圖4 XML數(shù)據(jù)轉(zhuǎn)換流程
對于轉(zhuǎn)換模塊,我們對外定義了其統(tǒng)一接口,而其內(nèi)部的具體實現(xiàn)卻可不同。這正是平臺的創(chuàng)新點。從數(shù)據(jù)轉(zhuǎn)換圖可知,首先通過文件讀取器讀取一種軟件設計的圖形文件,轉(zhuǎn)換成用XML表示的臨時文件,然后在不同的XML臨時文件之間進行映射,最后再通過文件生成器將臨時文件生成另一種設計軟件目標文件。
針對企業(yè)的實際情況,并在對該領(lǐng)域多年研究的基礎上,提出了一套完整的數(shù)據(jù)集成轉(zhuǎn)換方案,基于J2EE技術(shù)構(gòu)建了網(wǎng)絡環(huán)境下的企業(yè)數(shù)據(jù)集成和轉(zhuǎn)換平臺,開發(fā)基于XML的異構(gòu)數(shù)據(jù)轉(zhuǎn)換模塊,實現(xiàn)了對各種異構(gòu)數(shù)據(jù)的集成、轉(zhuǎn)換,實現(xiàn)了數(shù)據(jù)全生命周期管理的理念,解決了信息孤島的問題,為企業(yè)應用集成奠定了基礎,加快了企業(yè)信息化進程。
[1] 楊叔子,吳波,胡春華,等.網(wǎng)絡化制造與企業(yè)集成[J].中國機械工程,2000(2):45-48.
[2] 文震.基于J2EE的工作流管理系統(tǒng)的設計與實現(xiàn)[D].成都:四川大學,2004:25-26.
[3] 石為人,馮朝剛,張星.基于中間件的企業(yè)應用集成[J].重慶大學學報,2003(12):48-50.
(編輯:立 明)
TP 391.7
A
1002-2333(2014)04-0136-03
劉建國(1959—),男,助理工程師,從事公路機械方面工作。
2013-12-20