劉亞峰
中航工業(yè)西安飛行自動(dòng)控制研究所網(wǎng)絡(luò)信息中心,陜西西安 710065
淺談基于Info*Engine的Windchill系統(tǒng)集成應(yīng)用
劉亞峰
中航工業(yè)西安飛行自動(dòng)控制研究所網(wǎng)絡(luò)信息中心,陜西西安 710065
Windchill PDMLink作為主要的PDM產(chǎn)品之一,在制造業(yè)得到廣泛應(yīng)用。隨著企業(yè)信息化發(fā)展,Windchill系統(tǒng)與其他管理信息系統(tǒng)間的集成需求越來越得到人們的關(guān)注與重視。本文介紹了Windchill系統(tǒng)中Info*Engine組件的基本原理,以及如何利用它實(shí)現(xiàn)多系統(tǒng)間的集成,并完成了一個(gè)與檔案管理系統(tǒng)集成的實(shí)例。
Windchill;PDMLink;Info*Engine;系統(tǒng)集成
產(chǎn)品數(shù)據(jù)管理系統(tǒng)(Product Data Management,PDM)通過與各種計(jì)算機(jī)輔助系統(tǒng)的集成,在邏輯上連通了各設(shè)計(jì)單元的信息化孤島,實(shí)現(xiàn)了對(duì)產(chǎn)品設(shè)計(jì)數(shù)據(jù)的統(tǒng)一管理。但是在企業(yè)運(yùn)作中產(chǎn)品數(shù)據(jù)管理會(huì)關(guān)聯(lián)到多種業(yè)務(wù)。因此,要從業(yè)務(wù)流程出發(fā)思考PDM與多種管理信息系統(tǒng)的集成,這將有助于優(yōu)化企業(yè)整體業(yè)務(wù)流程。
Windchill PDMLink(以下簡稱Windchill)系統(tǒng)是目前市場上主要的PDM產(chǎn)品之一,在航空、船舶、汽車等行業(yè)均有廣泛應(yīng)用。Windchill系統(tǒng)基于J2EE標(biāo)準(zhǔn)的三層體系架構(gòu)實(shí)現(xiàn)[1]??蛻魴C(jī)層屬于用戶接口部分,服務(wù)器層實(shí)現(xiàn)了業(yè)務(wù)邏輯,數(shù)據(jù)層包含Oracle數(shù)據(jù)庫、文件服務(wù)器和LDAP服務(wù)器,實(shí)現(xiàn)了系統(tǒng)服務(wù)信息管理和用戶、角色信息管理的數(shù)據(jù)存儲(chǔ)。
Windchill系統(tǒng)中的Info*Engine組件采用了先進(jìn)的系統(tǒng)集成思想并能提供較強(qiáng)的技術(shù)支持能力。本文將研究Windchill系統(tǒng)與第三方軟件基于Info*Engine實(shí)現(xiàn)的集成應(yīng)用。
Info*Engine是Windchill系統(tǒng)中一個(gè)可獨(dú)立部署的集成引擎。Info*Engine提供了標(biāo)準(zhǔn)的適配器(Info*Engine Adapter),能夠直接將Windchill應(yīng)用程序第三方信息系統(tǒng)連接,還可以“插入”到面向服務(wù)的體系架構(gòu)(SOA)或其他企業(yè)集成體系結(jié)構(gòu)設(shè)計(jì)中。
Info*Engine的主要特點(diǎn)體現(xiàn)在提出了“Hub-and-spoke”架構(gòu)[2]的系統(tǒng)集成思路,能夠建立一種復(fù)雜的多應(yīng)用集成模式。從而把信息系統(tǒng)間一對(duì)一直接集成的網(wǎng)狀關(guān)系優(yōu)化為以Info*Engine為中心媒介的星型結(jié)構(gòu),大大降低了多系統(tǒng)集成的耦合性,提高了多系統(tǒng)集成的可擴(kuò)展性和可維護(hù)性。
Info*Engine Adapter提供了Info*Engine server與信息系統(tǒng)的連接,能夠?qū)nfo*Engine server的請(qǐng)求轉(zhuǎn)換為信息系統(tǒng)請(qǐng)求,因此Adapter是實(shí)現(xiàn)信息系統(tǒng)集成的關(guān)鍵組件。Info*Engine提供的Adapter包 括 Windchill Adapter、SAP Adapter、DOORS Adapter、Database Adapter等,可分別實(shí)現(xiàn)Info*Engine與Windchill、SAP、DOORS、數(shù)據(jù)庫等系統(tǒng)的集成訪問。
隨著企業(yè)信息化體系的日趨完善,多系統(tǒng)的集成的重要性日益顯現(xiàn)。Info*Engine Adapter為企業(yè)的多信息系統(tǒng)集成提供了一種可行、有效的實(shí)現(xiàn)途徑。
Info*Engine的數(shù)據(jù)管理機(jī)制基于5個(gè)基本的概念:JSP、Task、Webject、Group和 Virtual Database(VDB)。JSP頁 和 Task定義了Info*Engine如何獲取和顯示信息。Webject則能夠被JSP頁和Task組織起來,具體實(shí)現(xiàn)數(shù)據(jù)的收集、處理和顯示。Group是JSP頁和Task生成的信息塊。VDB是Group的存儲(chǔ)區(qū)域。
Info*Engine的JSP頁面包含Info*Engine的自定義標(biāo)記,主要封裝了一些可重用的功能,用于簡化JSP頁和Task文件的實(shí)現(xiàn)。
Task的基本語法與功能JSP相同,但不包含如HTML標(biāo)記等顯示組件,因此不提供數(shù)據(jù)顯示功能。
Webject將特定Info*Engine功能封裝成一條命令,JSP頁和Task可以通過調(diào)用這些Webject達(dá)到動(dòng)態(tài)的組織、處理信息的目的。
能夠返回的數(shù)據(jù)Webject被調(diào)用時(shí)會(huì)創(chuàng)建一個(gè)Object Group。Object Group存儲(chǔ)于VDB,并確保具有唯一的命名。
檔案管理系統(tǒng)要求能夠?qū)崿F(xiàn)對(duì)企業(yè)所有歸檔資料的管理和檢索功能,因此檔案管理系統(tǒng)需要從PDM系統(tǒng)中獲取文檔的信息用來建立歸檔記錄。
本集成應(yīng)用的典型業(yè)務(wù)場景如下:
檔案管理員將遵循產(chǎn)品的生命周期過程,在規(guī)定的關(guān)鍵技術(shù)狀態(tài)節(jié)點(diǎn)進(jìn)行PDM系統(tǒng)中技術(shù)文件的歸檔工作。用戶在檔案管理系統(tǒng)中,通過系統(tǒng)集成應(yīng)用,從PDM系統(tǒng)中檢索該產(chǎn)品的文檔,獲取的文檔信息包括:文件名稱、編號(hào)、版本、狀態(tài)、文件代號(hào)、創(chuàng)建者、創(chuàng)建時(shí)間、文檔摘要、所屬產(chǎn)品。檢索到的文檔信息返回到檔案管理系統(tǒng),用戶再對(duì)反饋信息進(jìn)行必要的篩選,完成文檔信息的歸檔工作。
系統(tǒng)集成的總體思路是PDM系統(tǒng)向檔案管理系統(tǒng)提供一個(gè)Webservice,檔案管理系統(tǒng)通過對(duì)該Webservice的調(diào)用實(shí)現(xiàn)PDM系統(tǒng)文檔的檢索功能。
在技術(shù)上主要利用Info*Engine對(duì)SOAP(簡單對(duì)象訪問協(xié)議)的支持,創(chuàng)建一個(gè)Task實(shí)現(xiàn)Webservice用于集成應(yīng)用。文檔信息檢索的具體邏輯會(huì)在Java類的檢索方法中實(shí)現(xiàn),Task通過對(duì)文檔檢索方法的調(diào)用獲得符合條件的文檔信息,然后利用Windchill Adapter實(shí)現(xiàn)文檔信息的收集并以xml格式反饋到客戶端。檔案管理系統(tǒng)的開發(fā)環(huán)境為Visual Studio 2008,在該環(huán)境下完成對(duì)Webservice的調(diào)用并對(duì)反饋的xml文件進(jìn)行解析。
3.3 .1 文檔信息檢索的Java方法
根據(jù)輸入?yún)?shù)搜索到符合要求的文檔的集合,抽取出文檔信息,以字符串方式返回。
在Java方法中,Windchill系統(tǒng)首先創(chuàng)建一個(gè)基于文檔類的QuerySpec對(duì)象表示一個(gè)初始的查詢結(jié)果集合。然后針對(duì)每個(gè)檢索條件創(chuàng)建一個(gè)SearchCondition對(duì)象,QuerySpec對(duì)象的appendWhere方法以一個(gè)SearchCondition對(duì)象為參數(shù)實(shí)現(xiàn)一次按條件檢索。面對(duì)多個(gè)SearchCondition對(duì)象,QuerySpec對(duì)象的appendAnd方法可以實(shí)現(xiàn)多條件的邏輯連接,完成查詢。
查詢的結(jié)果可以轉(zhuǎn)換為一個(gè)文檔集合。通過對(duì)該集合的循環(huán)處理,獲得每個(gè)文檔的信息,并將這些信息按照特定的分隔符組合為一個(gè)字符串對(duì)象,并返回個(gè)本方法的調(diào)用者。
3.3 .2 實(shí)現(xiàn)Webservice的Task文件
在Task文件開始首先要設(shè)定輸入?yún)?shù),這定義了調(diào)用Webservice時(shí)需要輸入的查詢條件。
然后建立一系列的Java腳本,該腳本直接調(diào)用已經(jīng)定義的Java方法執(zhí)行文檔信息查詢工作。由于文檔名稱中可能存在中文,須進(jìn)行BASE64編碼轉(zhuǎn)換,以保證使用HTTP協(xié)議Webservice能夠確保使用正確的字符編碼。
Task文件的最后部分使用了Adapter中定義的部分Webject。創(chuàng)建了一個(gè)Group定義了數(shù)據(jù)的輸出,實(shí)際的數(shù)據(jù)從Java腳本中的Java方法返回值變量獲取,根據(jù)預(yù)先定義的分隔符分析返回的字符串對(duì)象并形成xml文件,該xml文件最后返回到Webservice的請(qǐng)求者。
3.3 .3 創(chuàng)建Info*Engine委派
Info*Engine提供圖形化向?qū)е笇?dǎo)完成最終的Webservice設(shè)置,最終完成一個(gè)基于SOAP的WebService的創(chuàng)建。
3.3 .4 Webservice的調(diào)用
在Visual Studio 2008中,可以實(shí)現(xiàn)對(duì)基于SOAP的WebService調(diào)用的圖形化配置,但Windchill系統(tǒng)擁有自身的安全機(jī)制,WebService的調(diào)用并不能繞過用戶認(rèn)證的要求。因此,在Visual Studio 2008中,對(duì)WebService的調(diào)用可進(jìn)行封裝,解決以下問題:
1)封裝預(yù)設(shè)的Windchill系統(tǒng)用戶和口令,用以實(shí)現(xiàn)其他應(yīng)用程序?qū)indchill提供的WebService的自動(dòng)調(diào)用;
2)對(duì)調(diào)用WebService返回的xml文件進(jìn)行分析處理,轉(zhuǎn)換為Visual Studio 2008環(huán)境下的DataTable對(duì)象供其他應(yīng)用程序調(diào)用,簡化了Visual Studio 2008環(huán)境下的后續(xù)開發(fā)工作;
3)在封裝過程中增加用戶和客戶端IP的控制機(jī)制,防止Windchill的WebServiced被濫用。
4結(jié)論
隨著企業(yè)信息化發(fā)展,異構(gòu)系統(tǒng)間的集成問題越來越得到人們的普遍關(guān)注與重視。本文介紹了如何利用Windchill的Info*Engine組件實(shí)現(xiàn)多系統(tǒng)間集成的框架并完成了一個(gè)與檔案管理系統(tǒng)集成的實(shí)例。
[1][美]PTC公司 Windchill9.1 Customizer’s Guide 2008.
[2][美]PTC公司 Info*Engine Administration and Implementation Guide 2008.
[3]李東.周曉宇SOAP及其對(duì)Web服務(wù)的影響[J].計(jì)算機(jī)工程與 應(yīng)用2002(12).
[3]陳文,漆進(jìn),劉仕琴.Web Service關(guān)鍵技術(shù)研究[J].電腦 知識(shí)與技術(shù) 2009(13).
TP315
A
1674-6708(2010)23-0239-02