l SOA架構(gòu)
SOA架構(gòu)是一種分布式的軟件組件模型。整個系統(tǒng)被設計和實現(xiàn)為一組相互交互的服務,它使得系統(tǒng)中的某些服務能夠充分利用其他的服務同時卻無需考慮其物理位置。在該模型中,任何的業(yè)務功能被作為提供的一個服務使用。應用程序的不同功能(服務)通過這些服務之間定義良好的接口和契約聯(lián)系起來,使得構(gòu)建在系統(tǒng)中的服務可以以一種統(tǒng)一和通用的方法進行調(diào)用。這種具有中立的接口定義(沒有強制綁定到特定的實現(xiàn)上)的特征稱為服務之間的松藕合。松藕合系統(tǒng)的好處有兩點:它的靈活性;當組成整個應用程序的每個服務的內(nèi)部結(jié)構(gòu)和實現(xiàn)逐漸地發(fā)生改變時,它能夠繼續(xù)存在。這就為解決EAI集成問題和快速開發(fā)新的IT系統(tǒng)鋪平了道路。SOA模型如圖1所示,說明了SOA中的不同角色及其工作流程。SOA架構(gòu)的組件包括:
(1)服務提供者:服務提供者是一個可通過網(wǎng)絡尋址的實體,它接受和執(zhí)行來自使用者的請求;
(2)服務使用者:服務使用者是一組使用服務提供者所提供的一項或多項服務的組件;
(3)服務儲備庫:服務儲備庫包含服務的描述,服務提供者在該儲備庫中注冊其服務,而服務使用者訪問該儲備庫已發(fā)現(xiàn)的所提供的服務。
2 SOA的具體實現(xiàn)
SOA是一種軟件架構(gòu),而不是局限于某個技術的組合,它超越了技術范圍。SOA的關鍵是“服務”。W3C將服務定義為:“服務提供者完成一組工作,為服務使用者交付所需的最終結(jié)果。最終結(jié)果通常是使用者的狀態(tài)發(fā)生變化,但也可能是提供者的狀態(tài)改變,或者雙方都產(chǎn)生變化”。服務是網(wǎng)絡中可用的軟件資源。服務提供者通過標準機制提供服務,使用者通過網(wǎng)絡有計劃地使用服務。服務儲備庫發(fā)布服務所在位置,并在使用者請求服務時定位服務。服務使用者和提供者的角色不是惟一的,服務提供者也可以是使用者,反之亦然。SOA具體的實現(xiàn)有很多,包括Web Service,Ses-sionBean,JINI等,但隨著Web Service技術被越來越重視,其己經(jīng)成為構(gòu)建SOA的主要技術。
3 基于Web Service實現(xiàn)SOA
3.1 Web Service體系結(jié)構(gòu)
Web Service是近幾年提出的一種新的面向服務的體系結(jié)構(gòu),它是基于Web服務提供者、服務請求者和服務注冊代理的不同操作來建立的。具體來說其運作分為三部分:發(fā)布操作一服務提供者通過發(fā)布操作向服務注冊代理注冊自己的功能和訪問接口;查找操作一服務請求者通過查找操作向服務注冊代理查找特定的服務;綁定操作一服務請求者通過綁定操作實際使用服務提供者所提供的服務。
3.2 Web Service技術支持
Web Service技術建立的面向服務架構(gòu)基于開放性標準。一些典型的開放性標準有:XML(可擴展標記語言);SOAP(簡單對象訪問協(xié)議);WSDL(Web服務描述語言);UDDI(Web服務注冊規(guī)范)。Web Serv-ice本身就是一種SOA架構(gòu),可以實現(xiàn)各種應用程序資源的互聯(lián)互通,大大促進了軟件源的共享,從而成為新型的提供分布式的(全球性的)信息整合手段和應用系統(tǒng)EAI解決方案。
3.3 Web Service結(jié)構(gòu)的構(gòu)造實現(xiàn)
(1)基于CORBA和Java的Web體系結(jié)構(gòu)
基于CORBA和Java的Web結(jié)構(gòu)的運行機制是:CORBA客戶方程序從Web服務器下載執(zhí)行,并與應用服務器上的CORBA應用對象通過Internet對象請求代理間協(xié)議(Internet Inter-ORB Protocol,IIOP)通信,調(diào)用其指定的操作。CORBA應用對象首先對客戶的請求進行認證和解釋,根據(jù)客戶請求的內(nèi)容,或直接訪問資源層的數(shù)據(jù)庫或與網(wǎng)絡上的其他CORBA對象交互,共同完成客戶請求。各種新開發(fā)的Web應用,只要使用接口定義語言(IDL)封裝成CORBA對象,在CORBA系統(tǒng)中登記注冊后,就可以動態(tài)地加載進入Web系統(tǒng),迅速地為客戶提供服務。體系結(jié)構(gòu)如圖2所示。
(2)基于微軟ActiveX的Web體系結(jié)構(gòu)
基于ActiveX的Web結(jié)構(gòu)的運行機制是:瀏覽器下載ActiveX控件、腳本或文檔并在本地運行,它們可以作為分布式組件對象模型(Distributed ComponentObiect Model,DCOM)客戶,利用DCOM的對象遠程過程調(diào)用(Object Remote Procedure Call,ORPC)機制訪問應用服務器中的DCOM對象;也可通過服務器上的Internet服務應用程序接口(ISAPI)等接口訪問后端數(shù)據(jù)庫。因此,在基于ActiveX的Web體系中,客戶端與應用服務器之間采用ORPC進行通信,而應用服務器與數(shù)據(jù)庫之間是采用ISAPI進行通信,整個Web體系中的核心技術是COM/DCOM技術。
(3)基于SUN公司的Java RMI的Web體系結(jié)構(gòu)基于Java RMI的Web結(jié)構(gòu)的運行機制是:客戶方程序是一個Java Applet或JavaBeans對象,通過RMI內(nèi)部通信機制(Jaya RMI是SUN公司用Java語言建立的分布對象環(huán)境)調(diào)用應用服務器上的Java對象,繼而以JDBC等方式訪問數(shù)據(jù)庫。因為Java RMI是用純Java環(huán)境實現(xiàn)的,Java語言本身的可移植性使得RMI具有很強的跨平臺性。此外,在處理純Java對象之間的通信時,RMI具有較高的效率。
3.4 三種Web系統(tǒng)體系結(jié)構(gòu)的比較
基于CORBA、微軟ActiveX和SUN Java RMI的Web體系結(jié)構(gòu)的主要差別比較如表1所示。
4 基于SOA架構(gòu)的系統(tǒng)開發(fā)與集成
傳統(tǒng)的EAI解決方案是私有的和復雜的,因而不能實現(xiàn)必要的靈活性和適應性。Web Service為實現(xiàn)EAI提供了一種全新的機制,它為本地和遠程服務的定義、發(fā)布和訪問提供了一整套開發(fā)標準的方法。它能徹底地改變傳統(tǒng)EAI中點對點的集成方式。
本應用實例是某生產(chǎn)彩電企業(yè)信息系統(tǒng)。將其銷售系統(tǒng)分解為描述彩電信息、訂單服務、購買服務三個功能,分別包裝成Web服務發(fā)布到網(wǎng)上,用戶查到這些Web服務后,就可以直接調(diào)用他們。該實例實現(xiàn)了Web服務的創(chuàng)建、部署和客戶對Web服務的調(diào)用。銷售系統(tǒng)Web服務和客戶端實現(xiàn)是基于Java的J2 SD-K1.4.1-01開發(fā)環(huán)境,以TomcatServer 4.1作為Web服務器,Web服務是利用JAX-RPC技術來創(chuàng)建,生成相應的WSDL文檔并部署在Tomcat上,客戶端利用JAX-RPC提供的xrpcc工具生成Web服務的存根,以Servlet通過存根調(diào)用Web服務的方法。
彩電信息Web服務refrilnforService的實現(xiàn)如下:
(1)首先定義接口tvlnformation和接口實現(xiàn)類tvlnforlmpl,實現(xiàn)接口的方法getRefrilnfor。
(2)用JAX-RPC提供的xrpcc工具根據(jù)配置文件tvforServiceConfig.xml生成tvforService.wsdl文檔和服務器配置文件refnInforServiceConfjg.proper.ties。命令為:xrpcc-classpath refriappServer-d refriappServer-server-keep tvlnforServiceConfig.-Xml。
(3)用deploytool工具將彩電信息Web服務部署在Tomcat上。
以客戶端調(diào)用tvlnforServiceWeb服務來說明如何用Web服務。
①根據(jù)配置文件tvInforCIienfConfig.xml,用xrpCc工具從WSDL文檔的描述生成tvlnforServiceWeb服務的客戶端類(tvlnfor-Stub存根和支撐類)。命令為:xrpcc-dtviappClient-client-keeptvlnforConfig.xml。
②在findTvServlet中通過JAX-RPC調(diào)用服務實現(xiàn)類tvforService-Im pl的方法getTvlnfor。
③在findBook.html中調(diào)用findTvServlet,取得彩電信息。
其他彩電生產(chǎn)系統(tǒng),人事管理系統(tǒng)等應用的實現(xiàn)部署情況與此類似。各種企業(yè)應用不管是遺留系統(tǒng)還是外部企業(yè)系統(tǒng),無論處于不同平臺,使用不同對象技術的CORBA,DCOM,EJB,以及不同的編程語言,只要能以Web服務進行封裝,將其統(tǒng)一在一個Web Service技術層面上,就能像插件一樣嵌人消息服務總線,實現(xiàn)松耦合SOA架構(gòu),從而實現(xiàn)了敏捷的企業(yè)應用集成EAI及企業(yè)信息系統(tǒng)的可擴展功能。
5 結(jié) 語
傳統(tǒng)EAI技術點對點的集成方式不能靈活、低代價地實現(xiàn)異構(gòu)系統(tǒng)的集成,難以適應企業(yè)快速的業(yè)務變化需求。SOA架構(gòu)提供了一種松耦合的服務模式,大大降低了應用系統(tǒng)的集成和維護難度。Web Service技術,能夠去除原來處在不同平臺,使用不同對象技術的CORBA,DCOM,EJB構(gòu)架的實現(xiàn)差異,將其統(tǒng)一在一個Web Service技術層面上,這也使得它成為現(xiàn)階段構(gòu)建基于SOA架構(gòu)集成系統(tǒng)的重要手段。然而Web Service技術現(xiàn)在尚未成熟,應該進一步針對面向服務的SOA體系架構(gòu)的其他實現(xiàn)技術如Session Bean,JINI等,進行研究和探索,比較其各自的優(yōu)勢和適用范圍,在企業(yè)EAI實踐中,能夠根據(jù)原有信息系統(tǒng)的實際情況,靈活選用不同的SOA技術手段,高效率地實現(xiàn)企業(yè)信息集成。
北京2022年10月18日 /美通社/ -- 10月14日,國際數(shù)據(jù)公司(IDC)發(fā)布《2022Q2中國軟件定義存儲及超融合市場研究報告》,報告顯示:2022年上半年浪潮超融合銷售額同比增長59.4%,近5倍于...
關鍵字: IDC BSP 數(shù)字化 數(shù)據(jù)中心要問機器人公司哪家強,波士頓動力絕對是其中的佼佼者。近來年該公司在機器人研發(fā)方面獲得的一些成果令人印象深刻,比如其開發(fā)的機器人會后空翻,自主爬樓梯等。這不,波士頓動力又發(fā)布了其機器人組團跳男團舞的新視頻,表演的機器人包括...
關鍵字: 機器人 BSP 工業(yè)機器人 現(xiàn)代汽車