楊明



摘要:Windchill PLM積累了大量技術準備階段的數據,可以為產品全生命周期階段的其他系統提供有效的實時數據服務。本文旨在通過開發、配置來實現實時數據服務。
關鍵詞:Windchill;PLM;微服務
中圖分類號:TP316 文獻標識碼:A 文章編號:1007-9416(2020)03-0130-02
1 背景
Windchill PLM已在公司運行了多年,積累了大量技術準備階段的數據,包括cad圖紙、物料數據、BOM結構、文件、工藝等,也具有豐富的功能,完全可以支持在產品全生命周期中的業務流轉。公司信息化是一個整體性的規劃,還存在其他的信息系統,它們有些場景需要PLM中的實時數據提供的有效支撐。所以,Windchill PLM需要提供實時數據的微服務能力。
2 Windchill PLM開發技術
Windchill是PTC的產品生命周期管理(PLM)軟件,用于管理產品內容和過程。PDMLink是Windchill的基礎模塊,主要提供文檔管理、產品結構管理、工程變更管理、產品配置管理、生命周期管理、工作流程管理、Windchill架構、業務和系統管理、Office集成等功能。PartsLink是Windchill的零部件分類管理模塊,主要通對零部件的分類庫的建立,提高零部件的標準化、模塊化、通用化,最大限度地提高設計重用,降低設計風險和產品全生命周期內的成本。MPMLink是Windchill的基礎模塊,主要提供制作工藝過程管理、制造資源管理、制造標準管理、設計產品結構和制造產品結構關系管理等功能。
3 Windchill開發模式
Wizards包含一個容器,容器中可以包含一個或多個單獨的步驟,Custom-actions.xml中定義每個單獨的步驟,并且在Wizards框架中定義一個JAVA類,來處理Form里面的數據,custom-actionModels.xml中定義組合頁面的顯示,資源文件實現國際化。Processor是Wizards最后的確定執行。Validator是用來決定組件是否顯示,Validator須繼承com.ptc.core.ui.validation.DefaultUI ComponentValidator。DataUtility為某一列提供顯示內容,這些內容通常情況下,在對象中并不存在,在該列中可顯示各種不同的控件,例如:文本框,文字、按鈕等。
4 Windchill微服務實現
4.1 更新最新版本的webservices-api到jre的運行環境中
復制windchill
4.2 生成Truststores與Keystores
% cd
% ant-f jws-stores.xml包括服務端和客戶端的認證信息。執行完成后,會自動創建prog_examples/jws/stores目錄,并且包含client.cer,client.p12server.cer,server.p12,server-keystore.jks,server-truststore.jks幾個文件。
4.3 創建項目目錄結構
在prog_examples/jws/目錄下創建項目文件夾,此次以WCRDMService為例子,在命令行中的windchill目錄下執行:
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=的參數值為完整目錄名稱。執行完成后,要注意查看是否執行成功。執行完成后,系統就prog_ examples/jws/RDMService目錄自動創建一個簡單的項目目錄。
(1)src/(web service的基本目錄);
(2)src/build.xml(構建和發布web service的文件);
(3)src_client/(web service client的基本目錄);
(4)src_client/build.xml(構建web service的文件)。
4.4 編譯、打包、以及部署
% cd
% ant注意查看編譯結果,完成后,檢查服務是否在windchill服務中正常注冊文件中。重啟Apache,并檢查以下URL是否可以被訪問,如圖1所示。
4.5 邏輯代碼實現
拷貝prog_examples/jws/WCRDM Service/src目錄下的ext.rdm.service.RDMServiceService類到編輯工具中,進行代碼的修改,如圖2所示。
該類的方法是用來供其它集成軟件使用的,對于該類各方法調用到的其它windchill的程序邏輯,在windchill其他代碼邏輯中實現,如圖3所示。
4.6 代碼部署
先將windchill邏輯代碼實現中設計到的各class類拷貝到windchill的codebase目錄下對應的定制代碼包中。然后將web service的類(比如上面的ext.rdm.service.RDMServiceService類)拷貝覆蓋回原來對應的web service服務的目錄下(比如上面的
完成后,然后在windchill shell中執行重新編譯的命令。比如:% cd
% ant
重新進行編譯,重新檢查wsdl是否可以被訪問。比如:新的wsdl的顯示效果跟原來的不一樣,證明修改及編譯正常。
4.7 用SoapUI測試接口的正確性
推薦使用SoapUI 5.x版本,填寫好wsdl,用戶名、密碼,如圖4所示。
5 結語
通過上述微服務的實現,可以更好的發揮現有PLM中數據的價值,體現出產品全生命周期管理的理念。
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