摘 要:隨著智能制造的推廣和普及,企業(yè)實現(xiàn)系統(tǒng)間數(shù)據(jù)的互聯(lián)互通變得十分必要。Teamcenter(以下簡稱TC)做為一款被廣泛使用的全生命周期產(chǎn)品數(shù)據(jù)管理系統(tǒng),必然會產(chǎn)生和其他系統(tǒng)如ERP、CRM、MES等的數(shù)據(jù)連接需求。本文對將Axis2作為Web Service架構(gòu)向其他系統(tǒng)開放TC的Web Service接口,并通過TC-ITK提取TC數(shù)據(jù)向接口傳遞的實現(xiàn)方法進行了介紹。
關(guān)鍵詞:Axis2;Teamcenter;TC-ITK;數(shù)據(jù)連接傳遞;Web Service接口
中圖分類號:TP391 文獻標(biāo)識碼:A 文章編號:2096-4706(2019)04-0007-03
Teamcenter System Web Service Interface Implemented Based on
Axis2 Architecture +TC-ITK
YUAN Yuan
(Department of Information Technology,Guangxi Yuchai Machinery Co.,Ltd.,Yulin 537005,China)
Abstract:With the popularization of intelligent manufacturing,it is necesSary for enterprises to realize the interconnection and interoperability of data between systems. Teamcenter(hereinafter referred to as TC) as a widely used life cycle product data management system,will inevitably produce data connection requirements with other systems such as ERP,CRM,MES,and so on. In this paper,Axis2 is used as Web Service architecture to open TC’s Web Service interface to other systems,and the implementation method of extracting TC data and transferring it to the interface through TC-ITK is introduced.
Keywords:Axis2;Teamcenter;TC-ITK;data connection transfer;Web Service interface
1 概述
本文簡單介紹了Axis2實現(xiàn)Web Service的優(yōu)勢所在,對TC系統(tǒng)下的TC-ITK開發(fā)模式進行了簡單的介紹。然后深入探討了Axis2+TC-ITK實現(xiàn)TC Web Service接口的流程,并對這種實現(xiàn)方法的優(yōu)勢進行了分析。最后根據(jù)該方法介紹了玉柴TC系統(tǒng)與CRM客服實現(xiàn)電控程序自動下載的案例。
2 Axis2與TC-ITK簡介
Axis2是通過用Java語言開發(fā)Web Service的工具,當(dāng)在其內(nèi)部處理SOAP消息時,這一切對于用戶都是透明的。Axis2在封裝處理SOAP消息的同時,還提供了如下多種功能。
(1)提供了一個處理SOAP消息的框架,這個框架極易擴展,用戶可以在每個服務(wù)或操作上擴展它。用戶也可以在這個框架的基礎(chǔ)上對不同的消息交換模型(MesSage Exchange Patterns)MEPs進行建模。
(2)部署Web Service(可以用WSDL或者不用)。
(3)提供了客戶端API用來調(diào)用Web Service,可以用同步或者異步的編程方式。
(4)通過部署來配置Axis2和它的組件。
此文中不對Axis2做具體介紹,讀者可從參考文獻中進一步了解Axis2的相關(guān)信息。
TC系統(tǒng)是一整套全方位的數(shù)字化生命周期管理、解決方案。而ITK全稱為The Integration Toolkit(集成工具包),是TC系統(tǒng)提供的系統(tǒng)程序或由用戶自主開發(fā)的程序,可用于處理系統(tǒng)數(shù)據(jù)、與其他系統(tǒng)集成等。TC系統(tǒng)提供了一系列的C函數(shù)以用于ITK開發(fā)。
TC系統(tǒng)服務(wù)端包含了數(shù)據(jù)庫模型,永久對象模型、應(yīng)用程序?qū)ο竽P偷冉Y(jié)構(gòu)。這些結(jié)構(gòu)使用C/C++開發(fā)。TC系統(tǒng)向外提供了部分C\C++的函數(shù),使得用戶可以通過這些函數(shù)直接與服務(wù)端對象模型交互,這就是ITK開發(fā)可以實現(xiàn)的功能。而若在客戶端通過Java語言開發(fā)模型處理請求(TC系統(tǒng)提供的另一種開發(fā)技術(shù),稱為RCP),處理請求則需通過CORBA IIOP/SOAP HTTP傳遞到服務(wù)端,然后再調(diào)用C/C++處理對象模型,最后返回結(jié)果。相比可知,ITK明顯是最有效率的開發(fā)模式。
ITK常處理的對象模型有如下內(nèi)容:
? POM:永久對象管理
– AOM:應(yīng)用程序?qū)ο竽P?/p>
· IMF:IMAN文件
· VM:TC卷
· CR:流程發(fā)布
· EPM:企業(yè)流程模塊
· WSOM:工作空間對象
– AE:應(yīng)用程序封轉(zhuǎn)
– ITEM:Item
– FORM:表單
– FL:文件夾管理
– MAIL:TC郵件
– PS:產(chǎn)品管理
· SA:系統(tǒng)管理員
· UOM:單位
3 Axis2+TC-ITK實現(xiàn)TC Web Service接口
Axis2+TC-ITK實現(xiàn)TC Web Service接口的流程如圖1所示。
(1)與TC有接口請求的系統(tǒng)(處理TC數(shù)據(jù)或請求TC數(shù)據(jù))通過SOAP向Axis2服務(wù)發(fā)送TC賬號密碼及請求信息。
(2)Axis2服務(wù)接收到請求后,調(diào)用相應(yīng)的處理程序處理請求。
(3)Axis2的處理程序調(diào)用TC-ITK程序,TC-ITK程序通過接收到的賬號密碼登錄TC系統(tǒng),通過請求信息處理/請求TC數(shù)據(jù)返回信息到Axis2的處理程序。
(4)Axis2的處理程序?qū)Ψ祷匦畔⒆鲞M一步處理后,返回給客戶系統(tǒng)。
通過以上方法實現(xiàn)TC Web Service接口的優(yōu)點如下。
(1)Axis2本質(zhì)上就是一個SOAP引擎,提供創(chuàng)建服務(wù)器端、客戶端和網(wǎng)關(guān)SOAP操作的基本框架。因此用戶無需編寫SOAP的相關(guān)代碼,只需專注完成數(shù)據(jù)的處理代碼后,注冊到Axis2上即可實現(xiàn)Web Service接口。
(2)TC-ITK技術(shù)與TC其他開發(fā)技術(shù)相比,TC-ITK的效率是最優(yōu)的。
(3)雖然TC的SOA技術(shù)可實現(xiàn)Web Service,但TC并沒有向外提供TC SOA技術(shù)的開發(fā)文檔與接口文檔。同時TC SOA在開發(fā)難度及與工具的兼容性上都不甚理想。
(4)Axis2與TC-ITK是成熟及應(yīng)用廣泛的技術(shù),網(wǎng)絡(luò)上可以搜索到大量的開發(fā)應(yīng)用資料。
4 玉柴應(yīng)用案例介紹
以下將對玉柴CRM客服系統(tǒng)從TC系統(tǒng)自動下載電控程序的案例進行介紹,其實現(xiàn)流程如圖2所示。
(1)用戶在CRM客服上創(chuàng)建電控程序申請單。
(2)在申請單中調(diào)用Axis2服務(wù)的電控程序下載接口,并向下載接口傳遞TC系統(tǒng)的賬號密碼,需下載的圖號的參數(shù)信息。
(3)Axis2服務(wù)的電控程序下載接口調(diào)用TC-ITK程序,向TC-ITK傳遞TC系統(tǒng)的賬號密碼,需下載的圖號的參數(shù)信息。
(4)TC-ITK使用傳遞過來的賬號密碼參數(shù)登錄TC系統(tǒng),根據(jù)圖號參數(shù)找到相應(yīng)的電控程序并下載到電腦上。
(5)TC-ITK向Axis2服務(wù)的電控程序下載接口返回執(zhí)行成功/失敗的信息。如成功,向接口傳遞電控程序文件數(shù)據(jù)流。
(6)Axis2服務(wù)的電控程序下載接口調(diào)用CRM客服提供的接口,把電控程序上傳到CRM客服的DMS(文件服務(wù)器)上。
(7)CRM服務(wù)把電控程序的路徑更新到電控程序單中。
以下為流程中Axis2服務(wù)-電控下載接口→TC系統(tǒng)的實現(xiàn)關(guān)鍵點介紹。
(1)通過TC-ITK登錄TC系統(tǒng)并下載電控程序:
int ITK_user_main(int argc, char* argv[]){
//接收登錄系統(tǒng)的賬號密碼及需要下載的電控程序圖號的各項參數(shù)
char* usr = ITK_ask_cli_argument("-u=");/* 用戶賬號 */
char* upw = ITK_ask_cli_argument("-p=");/* 用戶密碼 */
char* ugp = ITK_ask_cli_argument("-g=");/* 用戶組 */
char* puid = ITK_ask_cli_argument("-m=");/* 圖號 */
//登錄TC系統(tǒng)
ITK_initialize_text_services (0);
ITK_init_module( usr,upw,ugp);
//通過電控程序圖號在TC中的找到電控程序并下載
tag_t Item = NULLTAG;
ITEM_find_item(puid,&Item);
ITKCALL(ifail = ITEM_ask_latest_rev (Item,&rev));
ITKCALL(GRM_find_relation_type(RL,& relation_type));
ITKCALL( GRM_list_secondary_objects_only (rev,relation_type,&count,&second_objects));
............................................
以上C程序編譯為YCCRMDownload.exe。
(2)通過BAT腳本調(diào)用TC-ITK程序:
:: argv1=%1 argv2=%2 argv3=%3 argv4=%4
set USER=%1
set PW=%2
set GROUP=%3
set PUID=%4
SET TC_ROOT=C: \\Teamcenter11
SET TC_DATA= C: \\Teamcenter11\\tcdata
start D:\\ Teamcenter11\\bin\\YCCRM Download.exe -u=%user%-p=%pw% -g=%group% -m=%puid%
以上腳本名稱為YCCRMDownload.bat。
(3)通過MyEclipse建立WebProject調(diào)用BAT腳本:
publicclass Download {
public String GetFileFromTC(String userid, String pw,String group ,String item_id){
String batpath = path+"D:\\ Teamcenter11\\bin\\YCCRMDownload.bat";
String[] cmd =WebUtil.runcmd (batpath,new String[]{userid,pw,group,item_id});
Process ps;
try {
ps = Runtime.getRuntime().exec(cmd); ps.waitFor();
StringBuffer sb = new String-Buffer();
BufferedReader br = new BufferedReader(new InputStreamReader(ps.getInputStream()), 4096);
String line = null; int i = 0;
while ((line = br.readLine()) != null) {
if (0 != i) sb.append("\r\n");
i++;
sb.append(line);
}
int r=ps.exitValue();
ps.destroy();
............................................
以上WebProject項目名為DownloadCode。
(4)打包及部署:將DownloadCode打包為Download File.aar,并將此aar包放入到Axis2.war中的\web-inf\services路徑下,修改該路徑下的配置文件services.list,添加aar包的名稱。最后將此Axis2.war部署到weblogic中。打包及部署的方法在參考文獻中有詳細的介紹,讀者可從參考文獻中進一步了解相關(guān)信息。
參考文獻:
[1] 陳傳超.基于SOAP消息擴展的Web服務(wù)安全模型研究與實現(xiàn) [D].重慶:重慶大學(xué),2008.
[2] 程飛.基于SOA的安全服務(wù)軟件架構(gòu) [D].西安:西安電子科技大學(xué),2012.
[3] 汪煒.電信大客戶離網(wǎng)和欠費預(yù)警系統(tǒng)設(shè)計與實現(xiàn) [D].長沙:湖南大學(xué),2011.
作者簡介:袁遠(1981-),男,漢族,廣西人,助理工程師,本科,學(xué)士學(xué)位,研究方向:企業(yè)信息技術(shù)。