估計很多人都聽說過SOA這個詞了,但是很多人還是不知道到底什么是SOA。開發(fā)人員很容易理解為是一個Web Service,但是這絕對不是SOA,那頂多只能算是SOA的一種實(shí)現(xiàn)方法。那么,到底什么是SOA呢?最近正在看SOA Source Book,本篇我將介紹一下SOA到底是什么?如有錯誤,歡迎指正。
SOA是Service-Oriented Architecture的首字母簡稱,它是一種支持面向服務(wù)的架構(gòu)樣式。從服務(wù)、基于服務(wù)開發(fā)和服務(wù)的結(jié)果來看,向服務(wù)是一種思考方式。
服務(wù)
· 是一種有特定結(jié)果的可重復(fù)業(yè)務(wù)活動的邏輯表示(例如,檢查客戶信用度、提供天氣預(yù)報等)
· 自包含
· 可以組合其他服務(wù)
· 對于服務(wù)使用者來說是"黑盒"的
SOA架構(gòu)樣式
· 基于服務(wù)的設(shè)計,這些服務(wù)代表的是組成企業(yè)業(yè)務(wù)流程的業(yè)務(wù)活動
· 服務(wù)提供上下文描述(業(yè)務(wù)流程、目標(biāo)、規(guī)則、策略、服務(wù)接口和服務(wù)組件),使用服務(wù)編排來實(shí)現(xiàn)服務(wù)
· 對技術(shù)設(shè)施提出要求,建議采用開放標(biāo)準(zhǔn),以便更好的實(shí)現(xiàn)可交互性和透明性
· 實(shí)現(xiàn)是基于特定環(huán)境的,約束和使能都必須在上下文中進(jìn)行描述
· 服務(wù)描述和實(shí)現(xiàn)需要很好的治理
· 需要進(jìn)行驗證式的測試之后才能決定這個服務(wù)是否好的服務(wù)
SOA和EA
雖然SOA和企業(yè)架構(gòu)(EA)的開始不一樣,但是現(xiàn)在SOA已經(jīng)成為企業(yè)架構(gòu)的一個組成部分,所以這里也介紹一下企業(yè)架構(gòu)。
· 企業(yè)架構(gòu)比IT范圍大很多
· 除技術(shù)之外的業(yè)務(wù)操作、財務(wù)、人等
· 它包含除IT之外的技術(shù),例如制造或物流等
· 組織實(shí)現(xiàn)最大化定義的一些改變
· 對當(dāng)前操作的基本控制和治理
· 企業(yè)持續(xù)改變,帶來成本的減少并能提高商業(yè)價值
TOGAF是一個業(yè)界企業(yè)架構(gòu)框架,如果想更多了解TOGAF,可以參考我寫的企業(yè)架構(gòu)框架-TOGAF v0.2.pdf
由于企業(yè)架構(gòu)范圍很大,SOA Source Book值關(guān)注企業(yè)架構(gòu)的IT組件:
· 企業(yè)IT的戰(zhàn)略性開發(fā)
· 一個完整的企業(yè)系統(tǒng),而不只是一部分系統(tǒng)
· 長期的IT演進(jìn),而不只是滿足于短期目標(biāo)
SOA
· SOA并不會增大IT系統(tǒng)的內(nèi)容,但是會提高它們的可交互性
· IT系統(tǒng)執(zhí)行一些被明確定義和描述業(yè)務(wù)活動上下文的服務(wù)
· 之前的應(yīng)用是那種大的、一整塊的應(yīng)用,只有很小的可交互接口,比較勉強(qiáng)的做集成,對交互也不提供保證。而SOA提供一些小的、模塊化的服務(wù),這些服務(wù)接口被清晰描述和約定。
Overview of SOA
SOA架構(gòu)維度
· 成功應(yīng)用SOA需要具備豐富的知識和技能
· SOA不能解決所有IT問題,IT架構(gòu)師必須知道什么時候以及如何使用SOA
· SOA將是一個大的投資,是從企業(yè)長期戰(zhàn)略來考慮的
· 有時候,技術(shù)可能會改變戰(zhàn)略,但是業(yè)務(wù)需要和可能性仍舊是主要驅(qū)動力。這也是引入企業(yè)架構(gòu)的原因,企業(yè)架構(gòu)會依據(jù)企業(yè)的長期戰(zhàn)略來設(shè)計IT戰(zhàn)略。
SOA和無邊界信息流(Boundaryless Information Flow)
· The Open Group的愿景是Boundaryless Information Flow.
· 因為SOA可以帶來無邊界信息流,所以SOA在The Open Group占據(jù)了重要地位
· 使用服務(wù)來替代應(yīng)用
SOA給企業(yè)帶來敏捷
有三個不同的方法來實(shí)現(xiàn)企業(yè)敏捷性
· 服務(wù)組合
· 模型驅(qū)動開發(fā)
· 服務(wù)虛擬化
架構(gòu)師能夠把這些方法都應(yīng)用到SOA上,但是它們需要不同的基礎(chǔ)設(shè)施的支持,你必須根據(jù)需求來選擇合適的方案。
SOA功能和作用
功能 | 作用 | 基礎(chǔ)設(shè)施 |
Service | · 改善的信息流 · 對外公布的能力 · 功能組織的靈活性 | |
Service Re-use | · 低的軟件開發(fā)和管理費(fèi)用 | Service repository |
Messaging | · 配置靈活性 | Messaging program |
Message Monitoring | · 商業(yè)智能Business intelligence · 績效度量 · 安全攻擊檢測 | Activity monitor |
Message Control | · 應(yīng)用管理策略 · 應(yīng)用安全策略 | PDPs and PEPs |
Message Transformation | · 數(shù)據(jù)轉(zhuǎn)換 | Data translator |
Message Security | · 數(shù)據(jù)機(jī)密和集成 | Encryption engine |
Complex Event Processing | · 簡化軟件結(jié)構(gòu) · 快速適配外部不同環(huán)境的能力 · 提高可管理性和安全性 | Event processor |
Service Composition | · 快速開發(fā)新的功能組合 | Composition engine |
Service Discovery | · 優(yōu)化績效、功能和成本的能力 · 更容易的系統(tǒng)升級 | Service registry |
Asset Wrapping | · 集成現(xiàn)有資產(chǎn)的能力 | |
Virtualization | · 提高可靠性 · 可以擴(kuò)充滿足不同要求級別 | |
Model-driven Implementation | · 快速開發(fā)新功能 | Model-implementation environment |
推薦:你可能需要的在線電子書
我的新浪圍脖: http://t.sina.com.cn/openexpressapp
歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明:轉(zhuǎn)載自周金根[ http://zhoujg.cnblogs.com/ ]
分類: SOA
標(biāo)簽: SOA