一種基于xml rpc集成pdm系統的方法
【技術領域】
[0001 ] 本方法涉及計算機應用系統集成領域,適用于PDM系統的功能集成和信息集成方法。
【背景技術】
[0002]目前機械制造業基本上采用了 PDM系統來管理企業的設計、生產、制造等數據,為實現企業數據的共享及打通整個行業設計、生產、制造流程的數字化生產線,就需要實現PDM系統與其它系統實行集成。為了達到PDM系統與其它系統實行集成要求,在設計PDM系統集成接口時,主要有兩種設計辦法:一種是把PDM系統集成每一個接口函數設計成一個批處理程序,該接口函數的結果按約定的格式保存在一個文件中,通過一服務程序使用命令行的方式執行該批處理程序,解析結果文件的內容獲得接口函數的返回結果;另一種是把PDM系統集成每一個接口函數設計成一個控制臺批處理程序,通過一服務程序捕獲控制臺上顯示的字符串,解析該捕獲的字符串的內容獲得接口函數的返回結果。
[0003]這兩種集成方法存在以下一些缺點:
[0004]I)在每次執行PDM系統的接口函數時,都需要獲取PDM系統的License,在設計高峰期,存在因沒有License而導致接口函數不能運行。
[0005]2) PDM系統的接口函數只能在PDM服務器上以批處理的方式運行,每次都需要獲取PDM系統的Sess1n建立與PDM系統的訪問連接,時間一般都在5?7秒,響應效率低下,且客戶端程序需要對PDM系統接口函數返回的結果進行解析或判斷,執行效率不高。
【發明內容】
[0006]本發明的目的:
[0007]為了解決以上問題,提供一種基于以XML RPC的通訊機制的集成PDM系統的實用方法,該方法原理簡單、編程簡潔,提高系統集成接口的響應速度和穩定性。
[0008]本發明的技術方案:
[0009]為實現上述目的,本發明提出一種基于XML RPC集成PDM系統的方法,本方法包括以下步驟:
[0010]第一步,在PDM系統所在服務器上建立服務進程,對該服務進程分配服務端口,開啟該服務進程;開啟時如果該服務端口被占用,則該服務進程開啟失敗,對該服務進程重新分配服務端口,直至該服務進程開啟成功;
[0011]第二步,該服務進程調用PDM系統接口,建立與PDM系統的通訊鏈路,獲取經PDM授權的訪問Sess1n ;
[0012]第三步,該服務進程等待客戶端的請求;
[0013]第四步,如果該服務進程接收到來自客戶端的請求,則執行對應的PDM系統接口的函數,同步把結果返回客戶端;
[0014]第五步,重復執行第三步和第四步;
[0015]第六步,服務進程接收關閉指令,關閉與PDM系統的通訊鏈路,退出服務進程。
[0016]所說的PDM系統接口包括以下函數:建立服務進程與PDM系統的連接函數、關閉函數、讀文件函數、建立文件對象函數、讀取對象屬性函數、寫對象屬性函數以及下載文件函數。
[0017]在所說的第一步中根據需要,可建立多個服務進程,并對其分配不同的服務端口,執行第一步到第六步步驟,實現多進程服務。
[0018]本發明的優點:
[0019]由于采用了以上的方案,可以實現以下優點:
[0020]I)本發明的服務進程啟動后,會主動獲取PDM系統的一個License,可以一直為后續接口提供使用,不會因設計高峰期因License數量不夠而導致接口不能使用的情況,同時縮短了接口獲取訪問PDM系統的Sess1n的時間,提高了接口返回結果的時間;
[0021]2)本發明的PDM系統接口直接向調用者提供結果,調用者不需要對結果進行解析,可以直接加以利用,提高了接口使用效率和穩定性。
【附圖說明】
[0022]圖1為本方法的流程圖。
【具體實施方式】
[0023]一種基于XML RPC集成PDM系統的方法,本方法包括以下步驟:
[0024]第一步,編寫PDM系統的的連接函數、關閉函數、讀文件函數、建立文件對象函數、讀取對象屬性函數、寫對象屬性函數以及下載文件函數,并將其封裝在服務進程程序中;在PDM系統所在服務器上建立該服務進程的Shell腳本或服務程序,為該服務進程分配服務端口,運行該腳本或服務程序開啟該服務進程;開啟時如果該服務端口被占用,則該服務進程開啟失敗,對該服務進程重新分配服務端口,直至該服務進程開啟成功;
[0025]第二步,該服務進程調用PDM系統接口,調用時首先調用連接函數再調用其它函數,最后調用關閉函數,建立與PDM系統的通訊鏈路,獲取經PDM授權的訪問Sess1n,省去了每個接口函數調用的連接時間;
[0026]所說的PDM系統接口包括以下函數:
[0027]連接函數:通過調用OpenSess1n函數建立該服務進程與PDM系統的連接,由于每調用一次OpenSess1n函數時,服務進程會自動占用一個PDM系統的License,因此不會像原來那樣每訪問一次PDM系統時都需要占用License,且該函數返回的結果以XML的形式傳遞給客戶端,供客戶端直接使用;
[0028]關閉函數:通過調用CloseSess1n函數建立該服務進程與PDM系統的連接,由于每調用一次CloseSess1n函數時,服務進程會自動占用一個PDM系統的License,因此不會象原來那樣每訪問一次PDM系統時都需要占用License,且該函數返回的結果以XML的形式傳遞給客戶端,供客戶端直接使用;
[0029]讀文件函數:通過該文件在PDM系統中的ID獲取被讀文件的URL,再通過URL瀏覽該文件;由于在調用連接函數時已經獲取了 License,因此該函數不需要再占用新的License,且該函數返回的結果以XML的形式傳遞給客戶端,供客戶端直接使用;
[0030]建立文件對象函數:對由PDM系統提供標準的建立文件對象函數,通過選定預定義在PDM中的文件對象類型,建立相應的文件對象,所說的文件對象類型包括技術文件、試驗文件、CO單、EO單、ECO單;由于在調用連接函數時已經獲取了 License,因此該函數不需要再占用新的License,且該函數返回的結果以XML的形式傳遞給客戶端,供客戶端直接使用;
[0031]讀取對象屬性函數:依據PDM系統中的預定義的對象,通過調用PDM系統提供標準的提取對象屬性函數,獲取每個對象的一個或多個屬性值,該屬性值包括單值或多值;由于在調用連接函數時已經獲取了 License,因此該函數不需要再占用新的License,且該函數返回的結果以XML的形式傳遞給客戶端,供客戶端直接使用;
[0032]寫對象屬性函數:依據PDM系統中的預定義的對象,通過調用TOM系統提供標準的寫對象屬性函