SOA 比 Web Services 涵义更广

SOA 比 Web Services 涵义更广

ID:37901157

大小:132.50 KB

页数:7页

时间:2019-06-02

SOA 比 Web Services 涵义更广_第1页
SOA 比 Web Services 涵义更广_第2页
SOA 比 Web Services 涵义更广_第3页
SOA 比 Web Services 涵义更广_第4页
SOA 比 Web Services 涵义更广_第5页
资源描述:

《SOA 比 Web Services 涵义更广》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、SOA比WebServices涵義更廣時間:2004-08-31作者:SteveWilkes下面是相當常見的狀況,在街上問一個略懂技術的人有關服務導向架構(SOA)概念,首先浮現他腦海的將是WebServices,這一點都不讓人驚訝,儘管SOA已經存在一段時間了,但在WebServices的助力之下,已使得SOA這個詞彙的名聲大幅上升。為了使我們有所共識,定義本文SOA如下:“SOA是一種設計和實作企業應用程式的方法,應用程式處理那些透過定義良好、平台獨立的介面約定(interfacecontracts)來擷取鬆散耦合、粗粒度(業務

2、層級)、可重覆使用元件(服務)的互通問題。”很清楚的是該定義不包含用來呼叫服務的通訊協定或者線路格式。不同於其他服務為基礎的方式,真正的SOA鼓勵透過不同方法存取服務──而不只是HTTP之上的SOAP。本文的目的是以此點為基礎展開的。本文提供其它選擇的服務呼叫模式並且解釋為什麼SOA要比WebServices涵義更廣。背景服務基礎的概念在WebServices之前就有很長並且成功的歷史了。常見的物件請求代理體系結構(CommonObjectRequestBrokerArchitecture,CORBA)已經存在多年並且提供許多至今仍

3、被稱許的SOA優點。根據我們的定義,很明顯CORBA不是一個真正的SOA實作。儘管CORBA有一個透過IDL(介面定義語言)定義的平台獨立的服務約定和一個支援不同語言和平台的實作,但是它需要一個稱為IIOP(InternetInter-ORBProtocol)的特定通訊協定和標準化的線路格式。此外,編譯IDL以產生存根(stub)和骨架(skeleton)的需求表示產生的應用程式是緊密耦合的。如果我們將SOA的範圍縮小為只是WebServices,我們將有一個相似的故事。WSDL代替了IDL,並且服務透過一個特定的(雖然成本較低但更

4、流行)具有標準線路格式(SOAP)的協定(HTTP)來呼叫。使用現在的開發環境,可以從WSDL產生存根和骨架,並且產生更具緊密耦合性的服務。當我們放寬這些限制並且使得服務可以透過不同協定呼叫的時候,真正SOA的威力就顯現出來了。協定的問題問你自己這樣的問題——“我的組織內部使用了多少種不同的協定處理內部通訊?”根據公司規模的不同,你可能使用了HTTP、HTTPS、訊息代理(JMS、MQ、MSMQ等)、CORBA和SMTP。你可能也意識到了,EJB的遠端呼叫或者遠端物件上一個方法的簡單執行都將利用諸如JRMP這樣的協定。你將意識到的其

5、他事情是,為一個特定情況選擇協定經常並非以真正的使用案例分析為基礎,而是建立在當前的實作上,選擇的依據通常是現有基礎設施或者選擇最快的和最容易的路由來整合。該問題的另一個方面是整合機制可能透過轉接器、打包器或者委託機制使用現有的原始碼並且沒有嘗試去確定通訊顆粒度的正確水準。在一個真正的SOA中,上面提到的所有協定都可以為服務提供一個擷取點。原則上,一個服務可以透過服務介面被定義一次,但可以利用不同擷取協定產生許多實作。這一點是目前用來描述服務語言WSDL中最明顯的一點。WSDL-去掉W儘管WSDL的名字是WebServices描述語

6、言,實際上它並沒有描述WebServices。它有一個獨立於通訊協定或資料格式的核心服務定義框架,該核心框架描述了組成一個服務的操作和每次請求和回應中傳送的資料,處於該層之上的是綑綁延伸,它將一個特定的協定或格式附加到一個訊息、操作或者擷取點上。一般的理解認為WSDL描述了WebServices,而SOA是關於WebServices的,這種理解來自於延伸到SOAP、HTTP和MIME綑綁的核心框架的混淆方式就包含在最初的WSDL規範中。以這些綑綁為例子包含在規範中是為了讓使用方法更清楚,但是正如規範中聲明的:“不排除在WSDL中使用

7、其他綑綁延伸。”根據上面的說明,我們可以明白WSDL規範的作者希望用它從總體上來描述服務,將這些綑綁範例與解決特定使用案例的現有技術結合,增加此規範的相關性。WSDL的完全形式鼓勵將服務綑綁到多個協定;關鍵是決定哪個協定最適合特定場合。最佳實務產生完美的產品任何單一服務都有很多呼叫服務的方法。假設服務已經綑綁到很多協定,一個IT架構師如何決定在一個特定範例中使用哪種方法呢?下表總述普遍的協定屬性和資料格式:傳輸協定同步性資料格式描述HTTP同步或非同步表單(Get/Post)、XML、SOAP遠端、無安全性、平台獨立、組織內部或外部

8、服務擷取HTTPS同步或非同步表單(Get/Post)、XML、SOAP遠端、安全性、平台獨立、組織內部或外部服務擷取JMS非同步XML、SOAP、Java物件在通訊Java環境中點對點或者發佈訊息SMTP非同步基於情境的、XML、S

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。