第3章基于SOA的中小型企業(yè)業(yè)務(wù)流集成系統(tǒng)解決方案
3.1軟件開發(fā)方法的演變
軟件開發(fā)的歷史開始于1945年,當時馮·諾依曼提出了二進制方案,建立多級存儲結(jié)構(gòu)和并行計算原理,確立20世紀計算機的基本數(shù)學構(gòu)型。軟件開發(fā)的過程就是人們使用各種計算機語言將人們關(guān)心的現(xiàn)實世界映射到計算機世界的過程,軟件開發(fā)一般分為五個階段:問題的定義及規(guī)劃一需求分析一軟件設(shè)計一程序編碼一軟件測試。
從編程的方法論上來說,從一開始的機器語言和匯編語言直接對機器碼進行編程,然后,“結(jié)構(gòu)化"的編程方法開始出現(xiàn)并流行起來。E.W.Dijkstra在1969年提出了結(jié)構(gòu)化程序設(shè)計(Structurcd Programming,SP)方法,它是以模塊化設(shè)計為中心,將待開發(fā)的軟件系統(tǒng)劃分為若干個相互獨立的模塊,這樣每一個模塊的工作變單純而明確,為設(shè)計一些較大的軟件打下了良好的基礎(chǔ)。
1960年代“軟件危機"的發(fā)生,促使了面向?qū)ο?Object-Oriented Programming,ooP)的軟件開發(fā)方法的誕生,面向?qū)ο蟮拈_發(fā)強調(diào)從問題域的概念到軟件程序和界面的直接映射,在面向?qū)ο缶幊讨,程序被看作是相互協(xié)作的對象集合,每個對象都是某個類的實例。
隨著軟件的迅猛發(fā)展,軟件系統(tǒng)是越做越大,功能是越來越強,而其中出現(xiàn)的問題同時也是越來越多,于是,可復(fù)用的軟件方法論開始流行,“面向構(gòu)件"進行編程的理論開始出現(xiàn),從2005年開始,SOA推廣和普及工作開始加速,并逐步發(fā)展了三個SOA的標準規(guī)范:SCA,SDO,WS.Policy,這三個規(guī)范的發(fā)布,標志著基于SOA解決方案進入了可實施的階段,在此條件下,本研究提出了基于SOA的中小型企業(yè)業(yè)務(wù)流集成應(yīng)用系統(tǒng)解決方案。
3.2基于SOA的解決方案概述
企業(yè)的應(yīng)用集成目前存在4個不同層次的解決方案:數(shù)據(jù)集成,業(yè)務(wù)邏輯集成,函數(shù)或方法集成,用戶界面集成。傳統(tǒng)的解決方案大都采用緊密耦合的集成方式,忽視了流程設(shè)計,不利于企業(yè)流程重組和調(diào)整,缺乏可擴展性和靈活性。根據(jù)浙江鼎盛工業(yè)有限公司提供的業(yè)務(wù)需求與流程,本研究提出了一種了基于SOA的企業(yè)業(yè)務(wù)流集成系統(tǒng)解決方案,該方案包含了系統(tǒng)功能、開發(fā)技術(shù)的選擇、解決方案實施計劃,該方案具有:松散耦合,復(fù)用程度高,跨平臺,易擴展的優(yōu)點。
在導師以“項目實施"來帶動課題研究的建議下,本人找了浙江鼎盛工業(yè)有限公司作為本次研究的課題研究對象,浙江鼎盛工業(yè)有限公司是一家生產(chǎn)汽車配件為主的民營企業(yè),業(yè)務(wù)流程比較典型,主要是汽車配件產(chǎn)品的生產(chǎn)與銷售。
在企業(yè)各部門員工的幫助下,根據(jù)業(yè)務(wù)需求分析,以SOA設(shè)計思想,劃分了本系統(tǒng)的四個主要系統(tǒng)功能:產(chǎn)品服務(wù)模塊、客戶服務(wù)模塊、購物車服務(wù)模塊、訂單服務(wù)模塊,根據(jù)企業(yè)的具體業(yè)務(wù)流程,再次可以細分模塊,如圖3.1所示。
圖3.1系統(tǒng)功能結(jié)構(gòu)圖
根據(jù)系統(tǒng)功能結(jié)構(gòu)圖,以SOA的思想,可以理解為四個功能模塊就是四個服務(wù)單元,每個服務(wù)單元包含了若干個服務(wù)操作,產(chǎn)品信息維護操作、客戶信息維護操作、購物車信息維護操作都包含了信息的添加、修改與刪除三個具體操作,訂單信息維護操作包含了訂單的修改與刪除操作。以“服務(wù)”思想劃分系統(tǒng)功能結(jié)構(gòu),根據(jù)服務(wù)設(shè)計原則,設(shè)計好服務(wù)單元功能,定義好各個服務(wù)單元的接口,就為服務(wù)集成建立了基礎(chǔ)。
3.3開發(fā)平臺的選擇
SOA是一個分布式架構(gòu),使用Web服務(wù)來構(gòu)建。因此,一個具備SOA能力的開發(fā)與運行環(huán)境,才能適用于支持Web服務(wù)技術(shù)集的分布式編程架構(gòu)。分析SOA架構(gòu)的特性,一個通用的SOA開發(fā)平臺應(yīng)該具備5個基本需求:
(1)需要一個開發(fā)環(huán)境來編寫和組裝軟件程序,這個環(huán)境必須提供支持一種編程語言的開發(fā)工具,來編寫和組裝軟件程序。
(2)有能力將軟件程序劃分成自包含的和可組合的處理邏輯單元,并能在運行時候內(nèi)部或跨實例相互通信。
(3)能夠通過行業(yè)標準的Web服務(wù)技術(shù)封裝和暴露應(yīng)用邏輯。
(4)需要暴露特性和運行提供功能的API,以便能夠構(gòu)建于這些特性和功能進行交互并利用其優(yōu)勢的軟件程序。
(5)需要一個運行來設(shè)計軟件,同時提供將永久駐留此軟件的環(huán)境。每個需求代表一個層,能夠?qū)崿F(xiàn)面向服務(wù)解決方案的平臺基本架構(gòu)模型如圖3.2示。
圖3-2構(gòu)建SOA解決方案平臺所需的層次圖
3.3.1常用的開發(fā)平臺
(1)J2EE平臺中的SOA支持
J2EE平臺是基于Java編程語言的一個開發(fā)與運行環(huán)境,J2EE開發(fā)平臺包含了大量的可組合片段,能夠?qū)⑵浣M裝成合格的Web服務(wù)解決方案,J2EE平臺中與SOA相關(guān)聯(lián)的層如圖3.3所示。
圖3-3與SOA關(guān)聯(lián)的J2EE平臺相關(guān)層次圖
在架構(gòu)組件方面,用于構(gòu)建J2EE Web應(yīng)用的組件有:JSP(Java Server Pages,Java服務(wù)器頁面)組件,JSP可以動態(tài)地生成Web頁面,駐留于Web服務(wù)器;Struts組件用于復(fù)雜用戶界面和導航的Web應(yīng)用開發(fā);Java Servlet組件用于處理HTTP請求及響應(yīng)交換,它是一個編譯程序;JavaBean組件是一個用于企業(yè)解決方案環(huán)境內(nèi)執(zhí)行大量處理的業(yè)務(wù)組件,借助中間件支持,它可以實現(xiàn)Web服務(wù)。
在運行時環(huán)境方面,為了支持Web服務(wù),J2EE提供了附加的運行層,依次提供附加服務(wù)的特定API。最顯著的是JAX.RPC運行時,建立了基本服務(wù),包括SOAP通信與WSDL處理的支持。此外,JE22提供了EJB容器與Web容器用于駐留Web服務(wù)應(yīng)用程序的環(huán)境。
在編程語言方面,J2EE平臺以Java編程語言為核心,雖然有很多不同的廠商提供的開發(fā)產(chǎn)品,但是這些產(chǎn)品都使用了標準的Java語言,都可以用于構(gòu)建Web服務(wù),目前常用的開發(fā)工具有:Sun的Java Studio Creator、Oracle的Jdeveloper和IBM的RationalApplication Developer。
在API方面,J2EE包含了一些支持Web服務(wù)的可編程功能API,構(gòu)建SOA相關(guān)的API有:JAXP,它用來處理XML文檔,還可以使用XSLT樣式表與XSD schema進行轉(zhuǎn)換和驗證XML文檔;JAX.RPC,它用來處理SOAP,同時支持RPC.1iteral與document.1iteral的請求.響應(yīng)交換與傳輸;JAXR,它提供訪問業(yè)務(wù)與服務(wù)注冊標準接口的處理,對UDDI形成支持;JAXM,它用于異步的、文檔類型的SOAP通信,支持單向和廣播式的消息傳輸;SAAJ,它專門用于需要附件的SOAP消息處理;JMS,它是以Java為核心的消息協(xié)議,用于傳統(tǒng)的消息中間件解決方案;JAXB,它用于XSD schema生成Java類,并可以進一步抽象XML的開發(fā)。
在服務(wù)提供者方面,服務(wù)提供者需包含服務(wù)端點和端口組件底層模型。服務(wù)端點在J2EE中,可以構(gòu)建JAX-RPC服務(wù)端點和EJB服務(wù)端點,前者通常由底層Web容器邏輯作為servlet開發(fā)來實現(xiàn),后者通過底層EJB組件來實現(xiàn)。端口組件底層模型在J2EE中,通過服務(wù)端點接口與服務(wù)實現(xiàn)Bean來實現(xiàn)組件。
在服務(wù)請求者方面,JAX.RPC負責將代理與請求業(yè)務(wù)邏輯組件間的通信轉(zhuǎn)換成SOAP消息,JAX-RPC能用于開發(fā)服務(wù)請求者,并可以提供創(chuàng)建客戶代理的能力,它們分別是:。靜態(tài)代理和動態(tài)代理,靜態(tài)代理由JAX.RPC編譯器在設(shè)計時,自動生成服務(wù)提供者WSDL,為每個WSDL創(chuàng)建一個遠程接口,以便其他組件調(diào)用;動態(tài)代理分為動態(tài)代理和動態(tài)調(diào)用接口動態(tài)代理,在被其他組件調(diào)用時才創(chuàng)建,動態(tài)生成WSDL與遠程接口。
在服務(wù)代理方面,J2EE通常采用服務(wù)代理來執(zhí)行各種運行時過濾、處理及路由任務(wù),通俗點講,就是使用服務(wù)代理處理SOAP報頭,JAX.PRC API通過創(chuàng)建處理器處理J2EE服務(wù)請求者發(fā)送的或EJB端點和JAX-RPC服務(wù)端點接收的SOAP消息報頭條目。
在平臺擴展方面,目前J2EE以SDK的形式提供各種平臺的擴展,目前可用的平臺擴展實例主要有兩個:Java Web服務(wù)開發(fā)包和mM浮動技術(shù)工具箱。
(2).NET平臺中的SOA支持
.NET平臺是微軟公司研發(fā)的一個可視化開發(fā)工具,.NET開發(fā)平臺由一組用于建立Web服務(wù)應(yīng)用程序和Windows桌面應(yīng)用程序的軟件組件構(gòu)成,包括.NET框(Framework)、.NET開發(fā)者工具和ASRNET。與SOA相關(guān)的是.NET平臺的ASP.NET環(huán)境與Web服務(wù)增強擴展(Web Services Enhancements,WSE),ASP.NET是一種建立在通用語言上的程序構(gòu)架,能被用于一臺Web服務(wù)器來建立強大的Web應(yīng)用程序,ASP.NET同樣具有強大的web服務(wù)開發(fā)功能。WSE是一個用來建設(shè)Web服務(wù)的.NET類庫,它支持最新的Web服務(wù)協(xié)議,它支持用傳輸?shù)姆绞桨l(fā)送SOAP消息,而不是HTTP。.NET平臺中與SOA相關(guān)聯(lián)的層如圖3-4所示。
圖3-4與SOA關(guān)聯(lián)的.NET平臺相關(guān)層次圖
在架構(gòu)組件方面,ASENET Web窗體可用于動態(tài)構(gòu)建Web頁面;ASENET Web是特別為Web服務(wù)提供者設(shè)計的ASP.NET應(yīng)用;程序集組件是.NET平臺的標準處理單元,Web服務(wù)的應(yīng)用邏輯都能包含在一個程序集中。
在運行時環(huán)境方面,在.NET平臺中有一個CLR(Common Language Runtime,通用語言運行時),CLR是一個運行時代理集合,可以管理.NET應(yīng)用程序,并且可以加入各種輔助運行時層,比如ASENET中的HTTP管道運行時層。
在編程語言方面,.NET平臺包含了四個編程語言:C#、C++、VB、J#,不管用哪種語言,程序代碼都會轉(zhuǎn)換成中間語言(Microsoft Intermediate Language,MSlL)的標準格式,MSIL最終在CU之中執(zhí)行。
在API方面,.NET平臺通過類庫提供了進行訪問的可編程接口,并組成了一個大的API集,與Web服務(wù)相關(guān)的API有:System.Xml,System.WebService,前者提供了XML文檔的解析和處理功能,后者提供Web服務(wù)接口與Web服務(wù)器交互層的文檔分解。除此之外,還有一些類族用來支持Web服務(wù),比如System.Web.Services.Discovery提供Web服務(wù)元數(shù)據(jù)的可編程發(fā)現(xiàn)。
在服務(wù)提供者方面,.NET平臺通過ASP.NET Web服務(wù)組件來編寫一個“.a(chǎn)snlx”擴展文件來承擔服務(wù)端點,ASMX文件通常包含一個ASMX端點與一個駐留各個業(yè)務(wù)邏輯的編譯程序集。
在服務(wù)請求者方面,.NET平臺提供了一個位于服務(wù)請求者的應(yīng)用邏輯代理類,該代理類將方法調(diào)用轉(zhuǎn)換成HTTP請求,然后服務(wù)提供者將處理的消息轉(zhuǎn)換回本地方法的調(diào)用。代理類代碼,通常由Visual Studio或WSDL的命令行程序自動生成,然后將代理類編譯成一個DLL文件。
在服務(wù)代理方面,在.NET環(huán)境中,ASENET運行時配備了HTTP模塊,能夠代理執(zhí)行認證、授權(quán)和狀態(tài)管理等系統(tǒng)任務(wù);由WSE工具集提供的過濾器代理能夠處理SOAP報頭,可以在服務(wù)提供者發(fā)送之后與服務(wù)請求者接受之前,截取SOAP消息。
在平臺擴展方面,.NET平臺的WSE(Web Services Enhancement,Web服務(wù)增強)工具,提供了支持WS-*宰規(guī)范特性的一系列類,目前支持WS-尋址、WS-策略、WS-安全、WS-安全策略、WS-安全會話、WS-信任等。
3.3.2開發(fā)平臺的選擇
J2EE與.Net平臺都能實現(xiàn)基于SOA的解決方案,但是.NET平臺被微軟獨家全面支持,因此有著更為一致性的行為方式和可預(yù)見性,而J2EE沒有兩個廠家的J2EE規(guī)范是完全一致的,這意味著在兩個平臺之間的應(yīng)用移植需要因為這種差異性的存在而付出額外代價。另外,.NET的易用性、效率和成本均領(lǐng)先于J2EE,使用.Net平臺開發(fā)比使用J2EE平臺更加不用關(guān)心底層細。因此,在第2章SOA技術(shù)概要的基礎(chǔ)上,結(jié)合本章3.3.1小節(jié)中的J2EE平臺與.NET平臺的比較,本人認為在.NET平臺能夠較好實現(xiàn)基于SOA的系統(tǒng)解決方案。
基于SOA的中小型企業(yè)業(yè)務(wù)流集成應(yīng)用研究(一)
http://articles.e-works.net.cn/SOA/Article95112.htm
基于SOA的中小型企業(yè)業(yè)務(wù)流集成應(yīng)用研究(二)上
http://articles.e-works.net.cn/SOA/Article95113.htm
基于SOA的中小型企業(yè)業(yè)務(wù)流集成應(yīng)用研究(二)下
http://articles.e-works.net.cn/SOA/Article95114.htm
基于SOA的中小型企業(yè)業(yè)務(wù)流集成應(yīng)用研究(三)上
http://articles.e-works.net.cn/SOA/Article95130.htm
基于SOA的中小型企業(yè)業(yè)務(wù)流集成應(yīng)用研究(三)下
http://articles.e-works.net.cn/SOA/Article95133.htm
基于SOA的中小型企業(yè)業(yè)務(wù)流集成應(yīng)用研究(四)
http://articles.e-works.net.cn/SOA/Article95189.htm
基于SOA的中小型企業(yè)業(yè)務(wù)流集成應(yīng)用研究(五)上
http://articles.e-works.net.cn/SOA/Article95191.htm
基于SOA的中小型企業(yè)業(yè)務(wù)流集成應(yīng)用研究(五)下
http://articles.e-works.net.cn/SOA/Article95221.htm
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標題:基于SOA的中小型企業(yè)業(yè)務(wù)流集成應(yīng)用研究(三)上
本文網(wǎng)址:http://www.ezxoed.cn/html/support/1112154146.html