PDM(Product Data Management,產(chǎn)品數(shù)據(jù)管理)是以軟件為基礎,以產(chǎn)品管理為核心,實現(xiàn)對產(chǎn)品相關的數(shù)據(jù)、過程、資源一體化集成管理的技術。傳統(tǒng)C/S(Client/Server,客戶端/服務端)架構的PDM軟件主要應用于企業(yè)內(nèi)部的信息管理,而企業(yè)之間的異地協(xié)同設計則要求能夠通過互聯(lián)網(wǎng)實現(xiàn)PDM產(chǎn)品數(shù)據(jù)與資源的跨平臺、跨地域的共享和管理,但由于企業(yè)之間的應用軟件的異構性和數(shù)據(jù)傳輸過程中網(wǎng)絡通信協(xié)議的不同,導致了PDM的產(chǎn)品數(shù)據(jù)與資源在企業(yè)之間共享和管理難以實現(xiàn)。
目前,基于Web的PDM系統(tǒng)是PDM產(chǎn)品技術發(fā)展的重要趨勢,Sun Yong采用Java EE技術,設計了B/S(Browser/Service)模式的PDM系統(tǒng),范國磊等以J2EE平臺為基礎,根據(jù)SOA(面向服務的構架)的特點對PDM系統(tǒng)異地協(xié)同進行了研究,Li Shu-juan等分析了Web技術和PDM技術的關系,提出了三層模型的PDM系統(tǒng),本文在三層模型的PDM系統(tǒng)框架的基礎上,研究了基于Web的PDM四層模型結構,以開目公司C/S架構PDM軟件為例,構建了Web化的PDM系統(tǒng)應用,采用ADO.NET訪問PDM數(shù)據(jù)庫,根據(jù)表名查詢的表結構信息和主鍵分批訪問PDM服務端系統(tǒng)中的數(shù)據(jù)信息,然后將數(shù)據(jù)通過WCF通信平臺傳輸給PDM客戶端,實現(xiàn)C/S架構PDM的Web化應用的大批量數(shù)據(jù)的網(wǎng)絡分批傳輸。
1 C/S架構PDM的Web化系統(tǒng)總體結構
當前,基于Web的PDM系統(tǒng)多數(shù)采用B/W/D(瀏覽器/Web服務器/數(shù)據(jù)庫)三層構架,其中,Web服務器實現(xiàn)PDM所有的業(yè)務邏輯,并進行與瀏覽器的通信和數(shù)據(jù)庫的訪問,這將需要大量重寫PDM的業(yè)務邏輯,同時,也不利于實現(xiàn)與異構系統(tǒng)B/S(Browser/Server)架構PDM的系統(tǒng)集成和PDM產(chǎn)品數(shù)據(jù)二次開發(fā)的可擴展性,根據(jù)三層架構PDM系統(tǒng)的缺陷,采用四層模型的PDM系統(tǒng),四層模型的PDM系統(tǒng)與三層架構的PDM系統(tǒng)最大的變化是將Web服務器的Web服務層和業(yè)務邏輯層分開,減輕了PDM系統(tǒng)Web服務器的負載,更重要的是將Web服務層和業(yè)務邏輯層分開后,PDM服務端和數(shù)據(jù)庫之間依然可以采用傳統(tǒng)C/S模式,這樣PDM服務端可以更多的專注于傳統(tǒng)開發(fā),只需將得到的業(yè)務邏輯數(shù)據(jù)封裝后發(fā)布到Web服務層,然后給PDM客戶端調用,這樣便可以更大程度上對傳統(tǒng)C/S模式PDM系統(tǒng)數(shù)據(jù)和業(yè)務邏輯進行復用,四層模型的PDM系統(tǒng)如圖1所示,包括用戶層、Web服務層、業(yè)務邏輯層和數(shù)據(jù)服務層,其各個功能層的主要功能如下:
(1)用戶層:PDM客戶端提供可視化的用戶操作界面,具有數(shù)據(jù)請求和瀏覽的輸入輸出,通過與Web服務層進行通信獲取PDM產(chǎn)品數(shù)據(jù),但不能直接訪問數(shù)據(jù)庫。
(2)Web服務層:接收并組織用戶層的消息請求,提交用戶層消息請求到PDM服務端;同時,支持對服務端響應數(shù)據(jù)的緩存。
(3)業(yè)務邏輯層:在傳統(tǒng)PDM的業(yè)務邏輯的基礎上,支持Web服務層消息請求的進程通信,實現(xiàn)對產(chǎn)品數(shù)據(jù)、過程和資源信息的管理,提供數(shù)據(jù)管理、變更管理、系統(tǒng)集成、數(shù)據(jù)安全等傳統(tǒng)C/S架構PDM的業(yè)務功能。
(4)數(shù)據(jù)服務層:提供用戶層最終瀏覽的數(shù)據(jù)源,包括CAD圖紙、CAPP工藝過程、MES排產(chǎn)計劃文檔等數(shù)據(jù)。
根據(jù)PDM系統(tǒng)的四層結構模型,在傳統(tǒng)C/S架構PDM軟件基礎上,開發(fā)PDM客戶端,根據(jù)C/S架構PDM的Web化的企業(yè)業(yè)務需求部署數(shù)據(jù)的Web服務層,將PDM服務端的數(shù)據(jù)傳輸給PDM客戶端,實現(xiàn)C/S架構PDM的Web化應用。

圖1 C/S架構PDM的Web化系統(tǒng)總體結構
2 C/S架構PDM的Web化系統(tǒng)應用的構建過程
C/S架構PDM的Web化的實質是PDM功能模塊數(shù)據(jù)集能夠按照客戶需求安全有效的從PDM服務端傳送到PDM客戶端,實現(xiàn)PDM客戶端與PDM服務端產(chǎn)品數(shù)據(jù)的一致性,本文依托開目公司C/S架構的PDM產(chǎn)品軟件,采用VS2010開發(fā)環(huán)境,構建了Web化的PDM系統(tǒng)應用,在四層結構模型中,除了數(shù)據(jù)服務層依然采用PDM底層數(shù)據(jù)庫信息,其他的三層根據(jù)應用需求來構建。
2.1 用戶層的構建
本文的用戶層主要是根據(jù)開目公司PDM軟件二次平臺來定制,其提供了集成的可視化的輸入輸出界面,但需要建立一個可供PDM系統(tǒng)調用的客戶程序,其目的主要是為了引入發(fā)布的WCF服務ServiceReferences,根據(jù)其發(fā)布的服務契約訪問PDM服務端數(shù)據(jù)信息。
2.2 Web服務層的構建
Web服務層主要通過采用新型的WCF分布式通信技術構建,WCF是.Net建立和運行面向服務的應用程序的統(tǒng)一架構,它整合了.NET平臺下所有的和分布式系統(tǒng)有關的技術,例如ASP.NET Web服務(ASMX)、增強Web服務擴展(WSE)、.NET Remoting、企業(yè)(EntERPrise Service)和微軟消息隊列(MSMQ)。WCF是典型的面向服務的、松耦合的、可互操作的平臺,WCF不僅可以實現(xiàn)跨平臺跨地域的通信,并且支持包括HTTP、TCP、Named Pipe等多種通信協(xié)議。
WCF的通信模型如圖2所示,WCF各個應用的通信是由終結點(Endpoint)來實現(xiàn),其客戶端和服務端通過交換Endpoint進行通信,每個Endpoint由地址(Address)、綁定(Binding)和契約(Contact)三個部分組成,其中Address解決服務尋址問題;Binding實現(xiàn)服務器端和客戶端之間通信的所有細節(jié),包括網(wǎng)絡傳輸、消息編碼以及其他為實現(xiàn)某種功能(如安全、可靠傳輸、事務等)對消息進行的相應處理;Contract定義了消息交換模式和消息結構。

圖2 WCF通信模型
WCF提供了三種實例上下文的服務模式:單調(Per-Call)模式、會話(Per-Session)模式和單例(Single)模式,本系統(tǒng)采用會話模式,可以保持調用某個WCF服務的同一個客戶端多次服務調用的狀態(tài),因而在定義了OperationContract之后需要并在契約中將ServiceBehaviorAttribute特性將上下文模式設定為InstanceContextMode.PerSession,同時在服務契約上定義會話模式為Required。
2.3 業(yè)務邏輯層的構建
業(yè)務邏輯層是溝通Web服務層和數(shù)據(jù)庫的橋梁,是整個Web化PDM系統(tǒng)的核心,為了降低服務端的負載,在PDM客戶端未請求業(yè)務的時候是PDM服務端是關閉的,為了實現(xiàn)在PDM客戶端響應請求的過程中開啟后臺PDM服務端,首先根據(jù)Directory.SetCurrentDirectory設定PDM安裝目錄,然后通過System.IO空間的System.Diagno stics.Process類定義一個實體,接著將Startlnfo屬性類的FileName設定PDM的安裝路徑,Arguments設定用戶名和密碼的命令行參數(shù),假設用戶名sa,密碼為123,則設定命令行參數(shù)為-u sa-p 123,這樣便可以開啟后臺PDM服務端系統(tǒng)了。
后臺的PDM服務端系統(tǒng)開啟后,需要組織PDM服務端可供網(wǎng)絡傳輸?shù)漠a(chǎn)品數(shù)據(jù),本系統(tǒng)產(chǎn)品數(shù)據(jù)的獲取采用兩種方式:一種是根據(jù)自定義XML調取PDM系統(tǒng)API(Application Programming Interface,應用程序編程接口)獲取業(yè)務信息;一種是直接訪問操作數(shù)據(jù)庫獲取。
(1)XML數(shù)據(jù)交互技術
XML(Extensible Markup Language,可擴展標記語言)是一種標準通用的結構性標記語言,并允許用戶自己定義標記語言的源語言.XML采用統(tǒng)一結構化方式來描述并交換獨立于應用程序和廠商的結構化數(shù)據(jù),具有強大的擴展性,同時,XML支持對復雜數(shù)據(jù)關系的表達并提供數(shù)據(jù)節(jié)點相關搜索,XML的基本格式為<Tag>文本內(nèi)容</Tag>。
首先通過SOCKET通信PDM端口號,連接到PDM服務端系統(tǒng),根據(jù)PDM系統(tǒng)提供的API,自定義獲取業(yè)務數(shù)據(jù)的XML,然后根據(jù)File Stream類讀取XML并將取值傳給XmIDocument類,通過遍歷XmlDocument的XmINode各個節(jié)點,獲取到PDM產(chǎn)品數(shù)據(jù)的值后,重新組織一個有取值結果的XML,再通過XmINodeList截取想要的節(jié)點值。
(2)ADO.NET數(shù)據(jù)庫訪問技術
ADO.NET是.NET平臺下公開訪問服務的類,它為創(chuàng)建分布式數(shù)據(jù)共享應用程序提供了豐富的組件。ADO.NET支持Microsoft SQL和XML等數(shù)據(jù)源的訪問,ADO.NET的對象模型如圖3所示。

圖3 ADO.NET的對象模型
根據(jù)ADO.NET的對象模型,通過Connection對象進行對數(shù)據(jù)庫的連接,創(chuàng)建Command數(shù)據(jù)命令對象,然后根據(jù)數(shù)據(jù)需求,通過DataAdapter對象對數(shù)據(jù)進行查詢、刪除、插入、更新操作或通過DataReader對象讀取數(shù)據(jù),在數(shù)據(jù)處理的過程中,以DataSet對象為一個小數(shù)據(jù)集,DataSet對象中包含數(shù)據(jù)表、數(shù)據(jù)列、數(shù)據(jù)行、視圖、約束以及關系。DataSet對象也支持與XML文件的交互轉換,調用ReadXML和WriteXML即可進行XML的讀寫。
對于零部件繁多的產(chǎn)品,其在數(shù)據(jù)庫中保存的數(shù)據(jù)內(nèi)容可能有上萬條,如果采用一次性將數(shù)據(jù)從PDM服務端通過網(wǎng)絡傳輸?shù)絇DM客戶端,可能會由于網(wǎng)絡速度差出現(xiàn)卡死,數(shù)據(jù)崩壞等錯誤,而本文通過查詢的表結構信息和主鍵信息,將數(shù)據(jù)分段傳輸,首先根據(jù)查找的表名通過Connection對象的GetSchema方法獲得表結構信息,當GetSchema的第一個參數(shù)為Columns,獲取的為表結構的所有信息,當一個參數(shù)為IndexColumns時獲取的是主鍵列結構信息,根據(jù)表結構信息的主鍵變量的字段結構,定義查找數(shù)據(jù)排序方法,將它賦給Command對象構造函數(shù)的第一個參數(shù),然后將所得通過DataAdapter或DataReader對象傳給定義的DataSet對象。DataSet對象支持Web的序列化傳輸,PDM客戶端可以通過PDM服務端返回的DataSet對象讀取數(shù)據(jù)。
3 C/S架構PDMIYJWeb化系統(tǒng)應用的實現(xiàn)過程
根據(jù)上一節(jié)所述的C/S架構PDM的Web化系統(tǒng)應用的構建方法,C/S架構PDM的Web化系統(tǒng)應用過程如圖4所示,將PDM客戶端和PDM服務端安裝在不同的IP主機上,與C/S架構PDM系統(tǒng)直接操作數(shù)據(jù)庫不同,PDM客戶端只有顯示數(shù)據(jù)的操作界面,不能直接訪問數(shù)據(jù)庫,所有的數(shù)據(jù)是通過PDM服務端發(fā)布到ⅡS上的WCF服務訪問的,開啟PDM客戶端并定義操作界面,進而請求PDM服務端庫中的數(shù)據(jù),客戶端的數(shù)據(jù)請求通過WCF服務通信機制,連接到服務端的通信進程中,為了實現(xiàn)PDM產(chǎn)品數(shù)據(jù)的安全訪問,采用用戶口令的方式驗證客戶端請求的安全性,若判定客戶端請求是安全的,將通過服務端通信進程開啟PDM服務端,PDM服務端根據(jù)客戶端的請求,通過自有的對象模型(數(shù)據(jù)管理、編碼管理、過程管理等)組織業(yè)務邏輯,通過XML文件向PDM產(chǎn)品數(shù)據(jù)庫發(fā)送數(shù)據(jù)請求或采用ADO.NET的數(shù)據(jù)庫訪問得到所需要的PDM產(chǎn)品數(shù)據(jù),再通過原先的通信路徑將得到的產(chǎn)品數(shù)據(jù)返回給PDM客戶端,實現(xiàn)C/S架構PDM的Web化系統(tǒng)應用的實現(xiàn),在大批量數(shù)據(jù)的Web傳輸過程中,由于Web化的PDM系統(tǒng)與C/S架構PDM系統(tǒng)不同,PDM客戶端不能直接訪問數(shù)據(jù)庫,即不可能像C/S架構PDM系統(tǒng)總是在本地連接數(shù)據(jù)庫,需服務端組織并分發(fā)數(shù)據(jù),為了數(shù)據(jù)傳輸?shù)募皶r性和安全性,需要將數(shù)據(jù)分批傳輸?shù)娇蛻舳恕?/p>

圖4 C/S架構PDM的Web化系統(tǒng)應用過程
4 系統(tǒng)應用實例
本文以開目公司PDM產(chǎn)品為例,采用第3節(jié)所講的C/S架構PDM的Web化系統(tǒng)應用的實現(xiàn)過程,對產(chǎn)品軟件進行Web化實際應用,并驗證PDM客戶端不直接訪問數(shù)據(jù)庫,實現(xiàn)PDM數(shù)據(jù)庫通過PDM服務端業(yè)務邏輯組織后通過Web到達PDM客戶端。
下面展示的三張圖為信息流的依次傳遞過程,PDM大批量數(shù)據(jù)和信息從圖5的底層數(shù)據(jù)庫到圖6的Web服務層的ⅡS上,然后再到圖7的PDM客戶端界面上,如圖5為汽車產(chǎn)品數(shù)據(jù)庫,其包含了有上萬條的數(shù)據(jù),為了實現(xiàn)對大批量數(shù)據(jù)的Web化批量訪問,通過PDM客戶端的對象管理模塊中對象分類管理功能,向PDM服務端請求汽車產(chǎn)品數(shù)據(jù)庫中的汽車部件數(shù)據(jù),PDM服務端根據(jù)客戶請求,以ADO.NET訪問數(shù)據(jù)庫和PDM系統(tǒng)API組織業(yè)務過程,將得到的汽車產(chǎn)品數(shù)據(jù)通過WCF服務發(fā)布到ⅡS上,如圖6所示,然后PDM客戶端調用WCF服務,而不直接訪問數(shù)據(jù)庫,實現(xiàn)對汽車部件數(shù)據(jù)的瀏覽,其結果如圖7所示。

圖5 汽車產(chǎn)品數(shù)據(jù)庫

圖6 數(shù)據(jù)通過WCF服務發(fā)布到ⅡS

圖7 汽車產(chǎn)品的汽車部件數(shù)據(jù)瀏覽
5 結語
本文分析了C/S架構PDM軟件Web化過程中的四層結構模型,重點解決了C/S架構PDM系統(tǒng)如何進行Web升遷的難題,設計并構建了通用的C/S架構PDM的Web化系統(tǒng)應用,同時也解決了后臺大批量數(shù)據(jù)的網(wǎng)絡傳輸問題,此已在開目公司的C/S架構PDM系統(tǒng)中應用實施,最終實現(xiàn)了企業(yè)之間異地協(xié)同設計的產(chǎn)品數(shù)據(jù)的管理。
轉載請注明出處:拓步ERP資訊網(wǎng)http://www.sdyuan.com/
本文標題:C/S架構PDM的Web化升遷與應用
本文網(wǎng)址:http://www.sdyuan.com/html/solutions/1401938468.html
























