緊耦合
緊耦合就是模組或者系統之間關係太緊密,存在相互調用。緊耦合系統的缺點在於更新一個模組的結果導致其它模組的結果變化,難以重用特定的關聯模組。
拿軟體開發(三層架構)做個示例說明
三層架構是
1、表示層
2、業務邏輯層
3、數據訪問層
他們之間的依賴關係是:
表示層 -> 業務邏輯層 -> 數據訪問層
松耦合
松耦合系統通常是基於訊息的系統,此時客戶端和遠程服務並不知道對方是如何實現的。客戶端和服務之間的通訊由訊息的架構支配。只要訊息符合協商的架構,則客戶端或服務的實現就可以根據需要進行更改,而不必擔心會破壞對方。
簡介
松耦合通訊機制提供了緊耦合機制所沒有的許多優點,並且它們有助於降低客戶端和遠程服務之間的依賴性。但是,緊耦合性通常可以提供性能好處,便於在客戶端和服務之間進行更為緊密的集成。
最近,人們越來越熱衷於比較應用程式互動的[1]松耦合方法和緊耦合方法。
造成這個趨勢的主要技術原因是:使用UDDI(Universal Description, Discovery and Integration,通用描述、發現和集成)等標準,Web服務可以動態地發現和綁定到其他服務。
而主要業務原因是:企業越來越需要靈活地處理業務流程的更改以及與合作夥伴的互動方式。松耦合系統的優點在於更新一個模組不會引起其它模組的改變。
傳統上,業務流程是在企業範圍,甚至在企業的不同業務單元內開發。這些活動在詳細的實時信息的幫助下進行管理。跨多個業務單元或跨企業的流程必須更加靈活,以應對各種各樣的需求。在這種情況下,可能出現更多的不確定性:參與者及其角色不斷變化,所需的互動類型也不斷變化。
在運營狀況起伏不定的環境下,必須有一個松耦合架構,以降低整體複雜性和依賴性。松耦合使應用程式環境更敏捷,能更快地適應更改,並且降低了風險。除此之外,系統維護也更方便。在B2B領域,由於要求業務實體之間獨立互動,因此松耦合顯得尤為重要。
業務合作夥伴之間的關係變化莫測,聯合關係時而建立,時而又斷絕,還需要在商業合作夥伴之間建立業務流程以滿足市場的要求。兩家公司在某一市場是合作夥伴,而在另一市場卻可能是競爭對手。底層IT基礎結構要適應這樣的靈活性和獨立性要求。
理想情況下,業務關係應當互不影響:在建立新型業務關係時,不對已有的業務關係造成影響。為一個業務合作夥伴提供的功能或許不應當供給另一個合作夥伴;與一個業務合作夥伴相關的更改不應對其他合作夥伴造成影響。一個商業合作夥伴不應為了等待一個同步回響,而阻塞另一個合作夥伴。IT系統的可用性也不應依賴於業務合作夥伴IT系統的技術可用性 。
對比
所謂“耦合”,指將兩個元素像鏈子一樣連線在一起。
在軟體領域,“耦合”一般指軟體組件之間的依賴程度。那么,什麼是依賴?各種依賴對[2]耦合度和鬆散度有多大影響?軟體耦合可以發生在許多級別。必須區分生成時(編譯時)依賴和運行時依賴。在分布環境中,為了確定系統的耦合程度,必須分析各個級別。表3-1簡要介紹了這些級別,以及這些級別與緊耦合-松耦合的關係。