程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 《WCF技術內幕》翻譯6:第1部分_第2章_面向服務:概述、快速定義…

《WCF技術內幕》翻譯6:第1部分_第2章_面向服務:概述、快速定義…

編輯:關於.NET

《WCF技術內幕》翻譯6:第1部分_第2章_面向服務:概述、快速定義面向服務、理解消息

概述

互聯網上充斥著面向服務(SO)的對話,大部分會話都是抽象地描述為面向 服務。這一章我們會一些不同的方法。下面一些章頁,我們會站在需求的角度看 一下面向服務。更具體地說,我們將看一下一般的消息應用和需要什麼才能使他 們運轉。通過這個過程,我們將發掘幾個理解面向服務必需的幾個概念。本章的 最後幾段會給出面向服務的比較正式的定義,並且會討論一下為什麼當今世界裡 面向服務對於分布式計算意義重大。

如果你問10面向服務的專家去定義面向服務,你可能會得到10個不同的答案 。如果你幾年後再問他們一次,你可能得到另外一組不同的答案。這個不足為奇 ,當面向對象(OO)和組件驅動開發成為主流的時候,許多開發者也搞不清楚他 們應該如何適應或者考慮讓自己的流程設計展示符合新的架構模型。理解 OO和 組件架構需要關於應用系統設計在思想上根本的轉變。這個過程有時非常痛苦, 但是回報的確是強壯的設計、更好的代碼復用、先進的應用功能、易於調試和短 時間市場化。我的看法是,從組建驅動設計轉向面向服務設計像從面向過程到面 向對象的轉變一樣,需要思想上的根本轉變。好消息是,面向服務設計的好處是 可以提供更豐富的通信模式、松耦合的應用系統、改進的系統功能和兌現真正應 用程序互操作性的承諾。因為互操作性的術語使用過多,這些說明是為了避免混 淆。這本書裡,互操作性指的是系統改變硬件、操作系統或者平台而不會影響其 它的分布式場景裡參與者的能力。

面向服務,不管現在與它的定義有關的混淆,它不是一個新的概念。它誕生 於大型機統治的時代,並且最近已經在中間件裡被接受。最近互操作性的倡議和 富通信模式重新激起了面向對象的興趣,並且正在使面向服務成為主流。可以想 象隨著面向服務更加廣泛的實施,它的定義將會日益完善。

快速定義面向服務

簡單地說,面向服務是一種分布式應用組件通過消息和契約實現松耦合的架 構風格。面向服務的應用通過契約描述它們交互中使用的消息。這些契約必須使 用一種語言描述並且格式能夠被其它應用簡單地理解,因此可以減少組件實現帶 來的依賴性。

注意,在描述面向服務概念的時候我沒有提到廠商或者技術。所以這是一個 超越廠商和技術邊界的概念,在很大程度上,面向對象的也跨越了這些邊界。在 最初 OO的概念形成時期,它非常容易混淆,我猜想面向服務也會有類似的情況 。因此,我會首先通過一些列例子闡述面向服務的概念,避免和別的抽象概念一 起定義一些抽象的概念。

理解消息

在面向服務的應用中,消息是通信的基本單位。因此,面向服務的應用通常 被稱為消息應用系統。在某一時刻,每個面向服務的應用系統都會發送或者接受 消息。這個能夠幫助你理解面向服務的消息很像你在Email系統裡收到的信件一 樣。在郵件系統裡,一個信件是抽象的實體:它可以包涵任何類型的信息,可以 以不同的形式和大小存在,可以關聯任何東西。同樣,一個面向服務的消息也是 一個抽象實體:它幾乎可以包涵任何數據,可以使用許多不同的方式編碼,並且 可以關聯到虛擬東西,甚至是其它消息。郵件的一些屬性已經被廣泛接受。例如 ,一封信件可以被某個人發送,郵寄給某個人,並且可能被某個人投遞(某一時 刻更多的是“可能”)。同樣,一個面向服務的消息可以被計算機發送,發送給 另一個計算機,並且可能由另外的計算機來投遞。考慮某些喜歡死扣理論的書呆 子,我必須澄清,與面向服務消息交互的實體不一定必須是計算機。理論上說, 它們可以是信鴿,拉布拉多獵犬或者是獅虎。無論如何,這些與面向服務消息交 互的實體被稱作消息的參與者,並且在這本書裡,一個消息參與者可以是一個計 算機上的進程。

【地址】:http://www.cnblogs.com/frank_xl/

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved