估計很多人都聽(tīng)說(shuō)過(guò)SOA這個(gè)詞了,但是很多人還是不知道到底什么是SOA。開(kāi)發(fā)人員很容易理解為是一個(gè)Web Service,但是這絕對不是SOA,那頂多只能算是SOA的一種實(shí)現方法。那么,到底什么是SOA呢?最近正在看SOA Source Book,本篇我將介紹一下SOA到底是什么?如有錯誤,歡迎指正。
SOA是Service-Oriented Architecture的首字母簡(jiǎn)稱(chēng),它是一種支持面向服務(wù)的架構樣式。從服務(wù)、基于服務(wù)開(kāi)發(fā)和服務(wù)的結果來(lái)看,向服務(wù)是一種思考方式。
服務(wù)
· 是一種有特定結果的可重復業(yè)務(wù)活動(dòng)的邏輯表示(例如,檢查客戶(hù)信用度、提供天氣預報等)
· 自包含
· 可以組合其他服務(wù)
· 對于服務(wù)使用者來(lái)說(shuō)是"黑盒"的
SOA架構樣式
· 基于服務(wù)的設計,這些服務(wù)代表的是組成企業(yè)業(yè)務(wù)流程的業(yè)務(wù)活動(dòng)
· 服務(wù)提供上下文描述(業(yè)務(wù)流程、目標、規則、策略、服務(wù)接口和服務(wù)組件),使用服務(wù)編排來(lái)實(shí)現服務(wù)
· 對技術(shù)設施提出要求,建議采用開(kāi)放標準,以便更好的實(shí)現可交互性和透明性
· 實(shí)現是基于特定環(huán)境的,約束和使能都必須在上下文中進(jìn)行描述
· 服務(wù)描述和實(shí)現需要很好的治理
· 需要進(jìn)行驗證式的測試之后才能決定這個(gè)服務(wù)是否好的服務(wù)
SOA和EA
雖然SOA和企業(yè)架構(EA)的開(kāi)始不一樣,但是現在SOA已經(jīng)成為企業(yè)架構的一個(gè)組成部分,所以這里也介紹一下企業(yè)架構。
· 企業(yè)架構比IT范圍大很多
· 除技術(shù)之外的業(yè)務(wù)操作、財務(wù)、人等
· 它包含除IT之外的技術(shù),例如制造或物流等
· 組織實(shí)現最大化定義的一些改變
· 對當前操作的基本控制和治理
· 企業(yè)持續改變,帶來(lái)成本的減少并能提高商業(yè)價(jià)值
TOGAF是一個(gè)業(yè)界企業(yè)架構框架,如果想更多了解TOGAF,可以參考我寫(xiě)的企業(yè)架構框架-TOGAF v0.2.pdf
由于企業(yè)架構范圍很大,SOA Source Book值關(guān)注企業(yè)架構的IT組件:
· 企業(yè)IT的戰略性開(kāi)發(fā)
· 一個(gè)完整的企業(yè)系統,而不只是一部分系統
· 長(cháng)期的IT演進(jìn),而不只是滿(mǎn)足于短期目標
SOA
· SOA并不會(huì )增大IT系統的內容,但是會(huì )提高它們的可交互性
· IT系統執行一些被明確定義和描述業(yè)務(wù)活動(dòng)上下文的服務(wù)
· 之前的應用是那種大的、一整塊的應用,只有很小的可交互接口,比較勉強的做集成,對交互也不提供保證。而SOA提供一些小的、模塊化的服務(wù),這些服務(wù)接口被清晰描述和約定。
Overview of SOA

SOA架構維度
· 成功應用SOA需要具備豐富的知識和技能
· SOA不能解決所有IT問(wèn)題,IT架構師必須知道什么時(shí)候以及如何使用SOA
· SOA將是一個(gè)大的投資,是從企業(yè)長(cháng)期戰略來(lái)考慮的
· 有時(shí)候,技術(shù)可能會(huì )改變戰略,但是業(yè)務(wù)需要和可能性仍舊是主要驅動(dòng)力。這也是引入企業(yè)架構的原因,企業(yè)架構會(huì )依據企業(yè)的長(cháng)期戰略來(lái)設計IT戰略。
SOA和無(wú)邊界信息流(Boundaryless Information Flow)
· The Open Group的愿景是Boundaryless Information Flow.

· 因為SOA可以帶來(lái)無(wú)邊界信息流,所以SOA在The Open Group占據了重要地位
· 使用服務(wù)來(lái)替代應用

SOA給企業(yè)帶來(lái)敏捷
有三個(gè)不同的方法來(lái)實(shí)現企業(yè)敏捷性
· 服務(wù)組合
· 模型驅動(dòng)開(kāi)發(fā)
· 服務(wù)虛擬化
架構師能夠把這些方法都應用到SOA上,但是它們需要不同的基礎設施的支持,你必須根據需求來(lái)選擇合適的方案。
SOA功能和作用
| 功能 | 作用 | 基礎設施 |
| Service | · 改善的信息流 · 對外公布的能力 · 功能組織的靈活性 | |
| Service Re-use | · 低的軟件開(kāi)發(fā)和管理費用 | Service repository |
| Messaging | · 配置靈活性 | Messaging program |
| Message Monitoring | · 商業(yè)智能Business intelligence · 績(jì)效度量 · 安全攻擊檢測 | Activity monitor |
| Message Control | · 應用管理策略 · 應用安全策略 | PDPs and PEPs |
| Message Transformation | · 數據轉換 | Data translator |
| Message Security | · 數據機密和集成 | Encryption engine |
| Complex Event Processing | · 簡(jiǎn)化軟件結構 · 快速適配外部不同環(huán)境的能力 · 提高可管理性和安全性 | Event processor |
| Service Composition | · 快速開(kāi)發(fā)新的功能組合 | Composition engine |
| Service Discovery | · 優(yōu)化績(jì)效、功能和成本的能力 · 更容易的系統升級 | Service registry |
| Asset Wrapping | · 集成現有資產(chǎn)的能力 | |
| Virtualization | · 提高可靠性 · 可以擴充滿(mǎn)足不同要求級別 | |
| Model-driven Implementation | · 快速開(kāi)發(fā)新功能 | Model-implementation environment |
我的新浪圍脖: http://t.sina.com.cn/openexpressapp
歡迎轉載,轉載請注明:轉載自周金根[ http://zhoujg.cnblogs.com/ ]
分類(lèi): SOA
標簽: SOA
聯(lián)系客服