`
冰火特蕾莎
  • 浏览: 20830 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

面向服务的体系架构-SOA

    博客分类:
  • SOA
阅读更多

   偶長期以來一直想寫一篇關於SOA的文字,但是遲遲没有動筆。
   偶今天感冒在家,終於可以有這個機會咯。

   面向服務的體系架構(Service Oriented Architeture,即SOA)在今天這個軟件業中,可謂是如雷貫耳,如日中天。其架勢直逼當年“面向對象”(Object Oriented ,OO)出道之時。偶們都知道,對象是現實世界中實體的縮影,面向對象編程,即面向現實世界中的實體編程。那麼“服務”又是什麼涅?如何面向“服務”去架構呢?這個東東雖然大家都聽說過,但是真正理解起來的想法可謂是千奇百怪哦。

   偶雖然也不能說真正讀懂SOA,但是偶覺得偶想象中的SOA,絕對是架構設計的巔峰之作。更為重要的是,SOA並不遥遠,近得唾手可得。

   從面向過程到面向對象到現在的面向服務,軟件的抽象程度逐漸提高,軟件的复用率也逐漸被人們作為重要話題一再提及,面向過程時期講的是函數的复用,面向對象時期講的是類和對象的重用。從零散的函數升級到了整體的對象級别,明顯是層次的進步。到了面向服務時代,就應該是組件級、或者說構件級的重用。
   然而項目中可能會出現千奇百怪,種類繁多的各種服務構件。有時候,被調者根本不知道誰會來調用,調用者也不知道應該去調用誰?(您可能覺得不太可能,但是偶可是深有體會的哦,偶要調用的組件可能還没有寫好,可能還只出現在計劃中,你根本不知道它會部署在哪台server中,是一個什麼樣的接口,但是偶這邊的業務也得進行了)。

   談到這裏,不得不引出所謂的服務中間件的概念了。其實這對偶來說是一個很陌生的概念,也是一個正在探索的概念。像ESB(SUN的openESB)和ogsi都可以作為中間件的基礎。偶覺得,既然要SOA,要分布式,就要進行得徹底一點。服務的使用和服務的提供應該圍繞着這個中間件來進行,我注册了(不一定要實現),你就可以使用。所以SOA應該不再是點對點式的服務提供和調用的關系。服務調用者不一定要知道服務提供者的接口細節,因為我只關注你在中間件上的服務注册信息而已。至於調用方式到底原則跨平台跨語言的Web Service,還是選擇皇家正統的EJB,那就看到底要把這個架構做到何種程度的松散耦合了。

   很多人看到這裏(如果能忍受偶的繁體文字和淩亂文筆堅持看到這裏的話)都覺得SOA是一個很亂很亂的東西咯。所以不得不再談談關於如何將這些亂七八糟的東西整合到一起來,即所謂的集成。
   要做應用集成,就看看以下幾種繼承的層次
   數據集成:說白了就是用同一個數據庫,同一些表啦。需要集成雙方知道對象的底細啦(數據庫都知道了,還不是底細?)
   方法集成:就是你調我的方法來獲取我的數據,你可以不用知道偶的數據庫設計結構啦。但是你必須綁定在我的方法上。
   業務集成:在應用系統之間建設業務集成總線,實現業務數據按照一定的規則在應用系統之間流動。這個好像有點SOA的感腳咯。
   表示層集成:通過注册表示層的url和唯一的一個門户系統,就可以把多個應用系統進行集成,偶們現在正是這麼做的,偶滴感腳:耦合程度很低,但是很多問題哦。
   B2B集成:跨組織的應用訪問,通過傳輸協議(HTTP)和數據描述(XML)為核心的技術路線,繼承程度不可能很高。但是雙方耦合程度也最低。

   如果涉及到SOA和應用集成的話,那麼傳統的一些架構模式可能不再適用了,像什麼MVC啦之類,因為最起碼,在你的架構裏,得多加一個層面“集成層”。

   綜上所述,偶要做出一個小小的,不算很嚴謹的結論啦(各位GGJJ,偶發現自己真是不擅長言辭,不要罵偶膚淺)。SOA是一個架構設計思想,而不是一種具體的技術,要實現SOA,首先得定出game rule。對於多個業務系統之間,這個rule必須保證是中立,不依賴於任何一方的。然後業務系統要想納入這個SOA的集群中,就必須依賴於制定這個rule的Service Manager,而非另外一個真正要被依賴的業務系統。彼此把接口暴露給Service Manager就可以了。
   SOA的要義就是:

   松散耦合
   位置透明
   規則中立

偶肯定地認為,在不久的將來,SOA必定會大行其道,成為改變軟件世界的一次革命。偶將成為SOA的忠實FANS,哈哈

分享到:
评论
1 楼 daquan198163 2009-11-06  
SOA不是据说已经快死了么?
ps:这位妹妹来自我国台湾省的吧?哈哈

相关推荐

    面向服务体系架构(soa)和数据

    面向服务体系架构(soa)和数据

    IDC资料:SOA面向服务的体系架构- 挑战与机会

    ### IDC资料:SOA面向服务的体系架构- 挑战与机会 #### SOA-中国的挑战与机会 面向服务的架构(SOA)在中国面临着独特的挑战与机遇。随着中国经济的快速发展,企业和政府机构需要更加灵活高效的信息系统来支持其...

    面向服务体系架构的SOA

    面向服务体系架构(Service-Oriented Architecture,简称SOA)是一种设计和构建分布式系统的架构风格,其核心思想是将业务逻辑分解为一系列可复用的服务,这些服务之间通过标准的接口进行交互,从而实现业务流程的...

    面向服务体系架构SOA.ppt

    面向服务体系架构SOA是一种计算机系统架构,旨在通过服务的方式来实现业务功能。该架构具有分布式系统、Web服务、面向服务的体系结构等特点。 面向服务体系架构的主要内容包括: 1. 分布式系统概述:分布式系统是...

    SOA面向服务的体系架构介绍

    面向服务的体系架构(SOA)是一种软件设计和构建的方法,其核心思想是将复杂的业务逻辑分解为一系列可重用的服务。这些服务彼此之间通过标准化的接口和契约进行通信,从而实现了不同应用和资源的灵活连接。SOA的出现...

    面向服务架构(SOA)web系统架构设计-SOA原理与技术 08 期末复习(共11页).pptx

    面向服务架构(SOA)是一种软件设计方法,它提倡将应用程序构建为一组可重用的服务,这些服务可以独立地开发和部署,然后通过标准接口进行交互。这种架构风格旨在提高系统的灵活性、可重用性和互操作性。在本课程中...

    面向服务体系架构(SOA)和业务组件(BC)的思考1

    面向服务体系架构(SOA)是一种设计方法,它提倡将应用程序构建为一组独立的服务,这些服务可以通过标准协议进行交互,以实现业务流程的整合和灵活性。SOA的核心思想是解耦和重用,允许不同的系统和服务之间进行互...

    面向服务体系架构(SOA)和业务组件(BC)的思考

    ### 面向服务体系架构(SOA)与业务组件(BC)的核心概念解析 #### 一、概述 随着信息技术的不断发展,企业的信息化建设越来越依赖于高效、灵活且可扩展的技术架构。面向服务体系架构(Service-Oriented ...

    SOA(面向服务的体系结构)

    ### SOA(面向服务的体系结构) #### 一、SOA是什么? ##### (一) 什么是SOA SOA(Service-Oriented Architecture,面向服务的体系结构)是一种设计复杂应用和服务的方式,它强调通过一组定义明确的服务来构建应用...

    面向服务体系架构SOA

    面向服务体系架构(Service-Oriented Architecture,简称SOA)是一种设计模式,旨在构建灵活、可重用和松散耦合的系统。SOA的核心思想是将业务功能分解为一系列可独立部署的服务,这些服务可以通过标准的接口进行...

    SOA面向服务架构

    ### SOA面向服务架构知识点详解 #### 一、面向服务架构(SOA)概述 面向服务架构(Service-Oriented Architecture, SOA)是一种组件模型,它将应用程序的不同功能单元(即服务)通过这些服务之间定义良好的接口和契约...

    面向服务体系架构SOA.pptx

    面向服务体系架构(Service-Oriented Architecture,简称SOA)是一种设计模式,旨在通过将功能封装为独立的服务,实现系统的模块化、可重用性和互操作性。这些服务可以通过标准的接口进行通信,允许不同的应用程序和...

    SOA(面向服务架构):实现上的挑战

    ### SOA(面向服务架构): 实现上的挑战 #### 引言 面向服务架构(SOA)作为一种重要的架构模式,支持跨平台、跨技术的中间层解决方案的模块化实现。对于许多希望提升业务灵活性和效率的企业来说,SOA提供了一种有效...

    SOA:面向服务的体系结构 - 企业投资回报评测实用指南.pdf

    《SOA:面向服务的体系结构 - 企业投资回报评测实用指南》这一文档深入探讨了SOA(面向服务的架构)对企业投资回报的影响,并提供了一种实用的评估方法。SOA作为一种先进的信息技术架构,旨在通过将复杂的软件系统...

    面向服务的体系结构(SOA)

    面向服务的体系结构(Service-Oriented Architecture,简称SOA)是一种软件设计和架构风格,其核心理念是将业务功能封装为独立、可重用的服务,这些服务通过标准的接口进行交互,从而实现不同系统之间的互操作性。...

Global site tag (gtag.js) - Google Analytics