面向服務的體系結構(SOA)——(4)對於服務的理解

在接觸SOA以前對「服務」這個詞沒有太多的感觸,無非就是爲別人作事情麼。固然在SOA中這個詞也脫離不了這層基本的涵義,可是具體到實際的架構中對這個詞的理解就更加深入了。本文就以「服務」爲中心說說筆者對這個詞的理解,尤爲是它在SOA這個環境下的理解。服務器

由淺入深我們先從現實提及,一般咱們平常所說的「服務」這個詞既能夠是動詞,也能夠是名詞例如:「爲人民服務」「服務行業」。在國內對「服務」這個詞理解有些偏差,這和咱們的民族文化有很大的關係。在好久以前做爲官員經常說「作人民的公僕,爲人民服務」使得人們感受當官的沒有架子,一心一意爲人民辦事(可事實上官員就是官員,有權利及時有權利,高高在上就是高高在上,人民無肯奈何)。這裏的服務是指做爲一個有能力的人處於某種目的來爲別人辦事。因此通常人們認爲服務這個字眼是等級高的人才享有的特色。架構

其實它的本意(這裏指從國外的翻譯而來意思)不是這樣的,能爲別人服務只能說明你的功能比較高級,不能表示你的地位高級。很簡單的一個例子,在國外服務行業稱客戶爲Client,這和BS系統中的那個ServerClient是一個Client。並且使人深思的是國外還有一句話叫作「The customer isgod」。這裏的customerClient是等價的,都是須要服務的對象。因此ServerClient若是從功能上來講Server更復雜、高級一些,可是不管Server多麼的高級與複雜都是爲Client服務的,是受Client調用的,是出於低級位置的。而國內資料將Server翻譯爲服務或者服務器這明顯就是提高了Server的等級。從這一點說臺灣的書籍就翻譯的比較到位,他們把Server翻譯爲「伺服器」,重點在於這個「伺」字。帝王之家伺候王室的人個個身懷絕技但最終也只能是受用於人……好像扯遠了;)spa

前面說了那麼多目的就是爲了說明服務的提供者是底層而服務調用者纔是上層。這麼一來在SOA中所說的「服務」這個詞就很好理解了。提供服務的系統或者模塊在整個業務中是處於低級的,雖然功能高級、實現複雜但終究是低級的。翻譯

進而能夠很好的理解服務應該有的主要特徵:對象

體現業務功能blog

咱們說一個Server或者說一個系統能提供某項服務,那麼這個系統必定能夠完成某項具體的操做來知足需求。說白了就是每一個服務都是爲了完成某項或某一系列相關聯的業務功能而存在的。接口

良好的契約以及類接口特性it

一項服務的提供必需是以接受他人消息做爲前提,而後返回處理後的消息,或者改變實體的狀態。因此說服務必需要有的就是接受消息的接口,或者能夠更宏觀一些,能夠把整個服務理解成一個接口io

自足class

既然爲別人服務首先須要要作的就是能夠本身顧住本身,不能出現泥菩薩過河的狀況。

可互操做

在整個SOA的架構中沒有絕對的服務提供者也沒有絕對的服務調用者,你們彼此相互服務。因此當自身做爲服務提供者的時候就必需要接受其餘系統的調用爲其餘系統服務,在本身須要其餘服務的時候又能夠調用其餘的系統爲本身實現相應的功能,美其名曰「互操做」(筆者更願意理解爲協調合做,由於原版書籍中用的是interoperability)。




【有感】就目前而言,感受學計算機更多的學的是國外的文化與思惟方式,不少時候恍然大悟,」丫的,藍眼珠大鼻子的怪物們竟然是特麼這麼想的!「

相關文章
相關標籤/搜索