国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Axis2架構(gòu)+TC—ITK實(shí)現(xiàn)Teamcenter系統(tǒng)的Web Service接口

2019-09-10 07:22袁遠(yuǎn)
現(xiàn)代信息科技 2019年4期

摘 要:隨著智能制造的推廣和普及,企業(yè)實(shí)現(xiàn)系統(tǒng)間數(shù)據(jù)的互聯(lián)互通變得十分必要。Teamcenter(以下簡(jiǎn)稱TC)做為一款被廣泛使用的全生命周期產(chǎn)品數(shù)據(jù)管理系統(tǒng),必然會(huì)產(chǎn)生和其他系統(tǒng)如ERP、CRM、MES等的數(shù)據(jù)連接需求。本文對(duì)將Axis2作為Web Service架構(gòu)向其他系統(tǒng)開放TC的Web Service接口,并通過TC-ITK提取TC數(shù)據(jù)向接口傳遞的實(shí)現(xiàn)方法進(jìn)行了介紹。

關(guān)鍵詞:Axis2;Teamcenter;TC-ITK;數(shù)據(jù)連接傳遞;Web Service接口

中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):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 概述

本文簡(jiǎn)單介紹了Axis2實(shí)現(xiàn)Web Service的優(yōu)勢(shì)所在,對(duì)TC系統(tǒng)下的TC-ITK開發(fā)模式進(jìn)行了簡(jiǎn)單的介紹。然后深入探討了Axis2+TC-ITK實(shí)現(xiàn)TC Web Service接口的流程,并對(duì)這種實(shí)現(xiàn)方法的優(yōu)勢(shì)進(jìn)行了分析。最后根據(jù)該方法介紹了玉柴TC系統(tǒng)與CRM客服實(shí)現(xiàn)電控程序自動(dòng)下載的案例。

2 Axis2與TC-ITK簡(jiǎn)介

Axis2是通過用Java語言開發(fā)Web Service的工具,當(dāng)在其內(nèi)部處理SOAP消息時(shí),這一切對(duì)于用戶都是透明的。Axis2在封裝處理SOAP消息的同時(shí),還提供了如下多種功能。

(1)提供了一個(gè)處理SOAP消息的框架,這個(gè)框架極易擴(kuò)展,用戶可以在每個(gè)服務(wù)或操作上擴(kuò)展它。用戶也可以在這個(gè)框架的基礎(chǔ)上對(duì)不同的消息交換模型(MesSage Exchange Patterns)MEPs進(jìn)行建模。

(2)部署Web Service(可以用WSDL或者不用)。

(3)提供了客戶端API用來調(diào)用Web Service,可以用同步或者異步的編程方式。

(4)通過部署來配置Axis2和它的組件。

此文中不對(duì)Axis2做具體介紹,讀者可從參考文獻(xiàn)中進(jìn)一步了解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ù)庫模型,永久對(duì)象模型、應(yīng)用程序?qū)ο竽P偷冉Y(jié)構(gòu)。這些結(jié)構(gòu)使用C/C++開發(fā)。TC系統(tǒng)向外提供了部分C\C++的函數(shù),使得用戶可以通過這些函數(shù)直接與服務(wù)端對(duì)象模型交互,這就是ITK開發(fā)可以實(shí)現(xiàn)的功能。而若在客戶端通過Java語言開發(fā)模型處理請(qǐng)求(TC系統(tǒng)提供的另一種開發(fā)技術(shù),稱為RCP),處理請(qǐng)求則需通過CORBA IIOP/SOAP HTTP傳遞到服務(wù)端,然后再調(diào)用C/C++處理對(duì)象模型,最后返回結(jié)果。相比可知,ITK明顯是最有效率的開發(fā)模式。

ITK常處理的對(duì)象模型有如下內(nèi)容:

? POM:永久對(duì)象管理

– AOM:應(yīng)用程序?qū)ο竽P?/p>

· IMF:IMAN文件

· VM:TC卷

· CR:流程發(fā)布

· EPM:企業(yè)流程模塊

· WSOM:工作空間對(duì)象

– AE:應(yīng)用程序封轉(zhuǎn)

– ITEM:Item

– FORM:表單

– FL:文件夾管理

– MAIL:TC郵件

– PS:產(chǎn)品管理

· SA:系統(tǒng)管理員

· UOM:?jiǎn)挝?/p>

3 Axis2+TC-ITK實(shí)現(xiàn)TC Web Service接口

Axis2+TC-ITK實(shí)現(xiàn)TC Web Service接口的流程如圖1所示。

(1)與TC有接口請(qǐng)求的系統(tǒng)(處理TC數(shù)據(jù)或請(qǐng)求TC數(shù)據(jù))通過SOAP向Axis2服務(wù)發(fā)送TC賬號(hào)密碼及請(qǐng)求信息。

(2)Axis2服務(wù)接收到請(qǐng)求后,調(diào)用相應(yīng)的處理程序處理請(qǐng)求。

(3)Axis2的處理程序調(diào)用TC-ITK程序,TC-ITK程序通過接收到的賬號(hào)密碼登錄TC系統(tǒng),通過請(qǐng)求信息處理/請(qǐng)求TC數(shù)據(jù)返回信息到Axis2的處理程序。

(4)Axis2的處理程序?qū)Ψ祷匦畔⒆鲞M(jìn)一步處理后,返回給客戶系統(tǒng)。

通過以上方法實(shí)現(xiàn)TC Web Service接口的優(yōu)點(diǎn)如下。

(1)Axis2本質(zhì)上就是一個(gè)SOAP引擎,提供創(chuàng)建服務(wù)器端、客戶端和網(wǎng)關(guān)SOAP操作的基本框架。因此用戶無需編寫SOAP的相關(guān)代碼,只需專注完成數(shù)據(jù)的處理代碼后,注冊(cè)到Axis2上即可實(shí)現(xiàn)Web Service接口。

(2)TC-ITK技術(shù)與TC其他開發(fā)技術(shù)相比,TC-ITK的效率是最優(yōu)的。

(3)雖然TC的SOA技術(shù)可實(shí)現(xiàn)Web Service,但TC并沒有向外提供TC SOA技術(shù)的開發(fā)文檔與接口文檔。同時(shí)TC SOA在開發(fā)難度及與工具的兼容性上都不甚理想。

(4)Axis2與TC-ITK是成熟及應(yīng)用廣泛的技術(shù),網(wǎng)絡(luò)上可以搜索到大量的開發(fā)應(yīng)用資料。

4 玉柴應(yīng)用案例介紹

以下將對(duì)玉柴CRM客服系統(tǒng)從TC系統(tǒng)自動(dòng)下載電控程序的案例進(jìn)行介紹,其實(shí)現(xiàn)流程如圖2所示。

(1)用戶在CRM客服上創(chuàng)建電控程序申請(qǐng)單。

(2)在申請(qǐng)單中調(diào)用Axis2服務(wù)的電控程序下載接口,并向下載接口傳遞TC系統(tǒng)的賬號(hào)密碼,需下載的圖號(hào)的參數(shù)信息。

(3)Axis2服務(wù)的電控程序下載接口調(diào)用TC-ITK程序,向TC-ITK傳遞TC系統(tǒng)的賬號(hào)密碼,需下載的圖號(hào)的參數(shù)信息。

(4)TC-ITK使用傳遞過來的賬號(hào)密碼參數(shù)登錄TC系統(tǒng),根據(jù)圖號(hào)參數(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)的實(shí)現(xiàn)關(guān)鍵點(diǎn)介紹。

(1)通過TC-ITK登錄TC系統(tǒng)并下載電控程序:

int ITK_user_main(int argc, char* argv[]){

//接收登錄系統(tǒng)的賬號(hào)密碼及需要下載的電控程序圖號(hào)的各項(xiàng)參數(shù)

char* usr = ITK_ask_cli_argument("-u=");/* 用戶賬號(hào) */

char* upw = ITK_ask_cli_argument("-p=");/* 用戶密碼 */

char* ugp = ITK_ask_cli_argument("-g=");/* 用戶組 */

char* puid = ITK_ask_cli_argument("-m=");/* 圖號(hào) */

//登錄TC系統(tǒng)

ITK_initialize_text_services (0);

ITK_init_module( usr,upw,ugp);

//通過電控程序圖號(hào)在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項(xiàng)目名為DownloadCode。

(4)打包及部署:將DownloadCode打包為Download File.aar,并將此aar包放入到Axis2.war中的\web-inf\services路徑下,修改該路徑下的配置文件services.list,添加aar包的名稱。最后將此Axis2.war部署到weblogic中。打包及部署的方法在參考文獻(xiàn)中有詳細(xì)的介紹,讀者可從參考文獻(xiàn)中進(jìn)一步了解相關(guān)信息。

參考文獻(xiàn):

[1] 陳傳超.基于SOAP消息擴(kuò)展的Web服務(wù)安全模型研究與實(shí)現(xiàn) [D].重慶:重慶大學(xué),2008.

[2] 程飛.基于SOA的安全服務(wù)軟件架構(gòu) [D].西安:西安電子科技大學(xué),2012.

[3] 汪煒.電信大客戶離網(wǎng)和欠費(fèi)預(yù)警系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) [D].長(zhǎng)沙:湖南大學(xué),2011.

作者簡(jiǎn)介:袁遠(yuǎn)(1981-),男,漢族,廣西人,助理工程師,本科,學(xué)士學(xué)位,研究方向:企業(yè)信息技術(shù)。

都昌县| 柳河县| 闽侯县| 潜山县| 永丰县| 台北市| 那坡县| 闵行区| 黎平县| 壶关县| 云阳县| 武山县| 霍林郭勒市| 茂名市| 雷波县| 乡城县| 德昌县| 钟山县| 溆浦县| 瑞金市| 灵石县| 海晏县| 黔西县| 广元市| 吐鲁番市| 曲靖市| 政和县| 尼勒克县| 米脂县| 阳信县| 前郭尔| 苍南县| 色达县| 肥乡县| 伊宁县| 泰宁县| 石泉县| 区。| 民乐县| 赫章县| 临夏市|