楊明
摘要:Windchill PLM積累了大量技術(shù)準(zhǔn)備階段的數(shù)據(jù),可以為產(chǎn)品全生命周期階段的其他系統(tǒng)提供有效的實(shí)時(shí)數(shù)據(jù)服務(wù)。本文旨在通過開發(fā)、配置來實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)服務(wù)。
關(guān)鍵詞:Windchill;PLM;微服務(wù)
中圖分類號(hào):TP316 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2020)03-0130-02
1 背景
Windchill PLM已在公司運(yùn)行了多年,積累了大量技術(shù)準(zhǔn)備階段的數(shù)據(jù),包括cad圖紙、物料數(shù)據(jù)、BOM結(jié)構(gòu)、文件、工藝等,也具有豐富的功能,完全可以支持在產(chǎn)品全生命周期中的業(yè)務(wù)流轉(zhuǎn)。公司信息化是一個(gè)整體性的規(guī)劃,還存在其他的信息系統(tǒng),它們有些場(chǎng)景需要PLM中的實(shí)時(shí)數(shù)據(jù)提供的有效支撐。所以,Windchill PLM需要提供實(shí)時(shí)數(shù)據(jù)的微服務(wù)能力。
2 Windchill PLM開發(fā)技術(shù)
Windchill是PTC的產(chǎn)品生命周期管理(PLM)軟件,用于管理產(chǎn)品內(nèi)容和過程。PDMLink是Windchill的基礎(chǔ)模塊,主要提供文檔管理、產(chǎn)品結(jié)構(gòu)管理、工程變更管理、產(chǎn)品配置管理、生命周期管理、工作流程管理、Windchill架構(gòu)、業(yè)務(wù)和系統(tǒng)管理、Office集成等功能。PartsLink是Windchill的零部件分類管理模塊,主要通對(duì)零部件的分類庫(kù)的建立,提高零部件的標(biāo)準(zhǔn)化、模塊化、通用化,最大限度地提高設(shè)計(jì)重用,降低設(shè)計(jì)風(fēng)險(xiǎn)和產(chǎn)品全生命周期內(nèi)的成本。MPMLink是Windchill的基礎(chǔ)模塊,主要提供制作工藝過程管理、制造資源管理、制造標(biāo)準(zhǔn)管理、設(shè)計(jì)產(chǎn)品結(jié)構(gòu)和制造產(chǎn)品結(jié)構(gòu)關(guān)系管理等功能。
3 Windchill開發(fā)模式
Wizards包含一個(gè)容器,容器中可以包含一個(gè)或多個(gè)單獨(dú)的步驟,Custom-actions.xml中定義每個(gè)單獨(dú)的步驟,并且在Wizards框架中定義一個(gè)JAVA類,來處理Form里面的數(shù)據(jù),custom-actionModels.xml中定義組合頁面的顯示,資源文件實(shí)現(xiàn)國(guó)際化。Processor是Wizards最后的確定執(zhí)行。Validator是用來決定組件是否顯示,Validator須繼承com.ptc.core.ui.validation.DefaultUI ComponentValidator。DataUtility為某一列提供顯示內(nèi)容,這些內(nèi)容通常情況下,在對(duì)象中并不存在,在該列中可顯示各種不同的控件,例如:文本框,文字、按鈕等。
4 Windchill微服務(wù)實(shí)現(xiàn)
4.1 更新最新版本的webservices-api到j(luò)re的運(yùn)行環(huán)境中
復(fù)制windchill
4.2 生成Truststores與Keystores
% cd
% ant-f jws-stores.xml包括服務(wù)端和客戶端的認(rèn)證信息。執(zhí)行完成后,會(huì)自動(dòng)創(chuàng)建prog_examples/jws/stores目錄,并且包含client.cer,client.p12server.cer,server.p12,server-keystore.jks,server-truststore.jks幾個(gè)文件。
4.3 創(chuàng)建項(xiàng)目目錄結(jié)構(gòu)
在prog_examples/jws/目錄下創(chuàng)建項(xiàng)目文件夾,此次以WCRDMService為例子,在命令行中的windchill目錄下執(zhí)行:
ant-Dproject.dir="D:\ptc\wcrdm\windchill\prog_examples\jws\WCRDMService"
-Dservlet.name=WCRDMService-Dsecurity.policy= webServerAuthenticated
-Dmain.class=ext.rdm.client.RDMServiceClient-Dservice.type=java
-Dservice.class=ext.rdm.service.RDMServiceService-f
bin/adminTools/WebServices/new-project.xml create
其中-Dproject.dir=的參數(shù)值為完整目錄名稱。執(zhí)行完成后,要注意查看是否執(zhí)行成功。執(zhí)行完成后,系統(tǒng)就prog_ examples/jws/RDMService目錄自動(dòng)創(chuàng)建一個(gè)簡(jiǎn)單的項(xiàng)目目錄。
(1)src/(web service的基本目錄);
(2)src/build.xml(構(gòu)建和發(fā)布web service的文件);
(3)src_client/(web service client的基本目錄);
(4)src_client/build.xml(構(gòu)建web service的文件)。
4.4 編譯、打包、以及部署
% cd
% ant注意查看編譯結(jié)果,完成后,檢查服務(wù)是否在windchill服務(wù)中正常注冊(cè)文件中。重啟Apache,并檢查以下URL是否可以被訪問,如圖1所示。
4.5 邏輯代碼實(shí)現(xiàn)
拷貝prog_examples/jws/WCRDM Service/src目錄下的ext.rdm.service.RDMServiceService類到編輯工具中,進(jìn)行代碼的修改,如圖2所示。
該類的方法是用來供其它集成軟件使用的,對(duì)于該類各方法調(diào)用到的其它windchill的程序邏輯,在windchill其他代碼邏輯中實(shí)現(xiàn),如圖3所示。
4.6 代碼部署
先將windchill邏輯代碼實(shí)現(xiàn)中設(shè)計(jì)到的各class類拷貝到windchill的codebase目錄下對(duì)應(yīng)的定制代碼包中。然后將web service的類(比如上面的ext.rdm.service.RDMServiceService類)拷貝覆蓋回原來對(duì)應(yīng)的web service服務(wù)的目錄下(比如上面的
完成后,然后在windchill shell中執(zhí)行重新編譯的命令。比如:% cd
% ant
重新進(jìn)行編譯,重新檢查wsdl是否可以被訪問。比如:新的wsdl的顯示效果跟原來的不一樣,證明修改及編譯正常。
4.7 用SoapUI測(cè)試接口的正確性
推薦使用SoapUI 5.x版本,填寫好wsdl,用戶名、密碼,如圖4所示。
5 結(jié)語
通過上述微服務(wù)的實(shí)現(xiàn),可以更好的發(fā)揮現(xiàn)有PLM中數(shù)據(jù)的價(jià)值,體現(xiàn)出產(chǎn)品全生命周期管理的理念。
Abstract:Windchill PLM has accumulated a large amount of data in the technical preparation stage, which can provide effective real-time data services for other systems in the product life cycle stage. This article aims at real-time data services through development and configuration.
Key words:Windchill; PLM; microservices
數(shù)字技術(shù)與應(yīng)用2020年3期