COP僅僅只是提出了一個系統劃分的基礎,要構成一個完整應用,光有組件和服務還不夠,還需要將組件和服務以一種有效的方式組織起來,有些文章把這種組織性的代碼稱為 Fabric,有結構和組織的意思。而在我們的文章中,稱之為軟件總線(bus)。
軟件總線是什么?他和計算機的總線一樣,它負責在各個組件中傳遞信息流,將各個組件組織起來,完成一個具體的任務?偩是一個抽象的概念,在實際中總線也是由具體的技術構成。例如,一個總線可能是一段代碼,負責調用各個組件;總線也能是一個消息系統,負責收集和分派消息;總線也可能是一個工作流系統,負責系統信息的流轉;總線還可能是一個JMX,負責將消息路由到目標組件。但無論總線的實現技術是什么,總線的特點就是采用一種松耦合的方式將組件組織起來。這樣,總線本身和掛接在總線上的組件就是松耦合的,至于組件掛接到總線的形式,也就是我們之前討論過的服務和服務適配器要做的事情了。
例如,目前的軟件總線有三種可能的實現:直接調用/遠程調用/WebService,MOM,以及工作流,根據應用系統的特點可以采用不同的總線實現。例如以調用為主的總線適用于那些流程比較明確的應用,因為流程是硬編碼的,變化起來相對麻煩一些。工作流為主的總線適用于流程比較靈活,需要復雜的分支和人為的干預。MOM為主的總線則適用于大型的分布式,或是異構的應用,不同的應用之間以一種松散的方式進行協作。但是無論采取哪一種的總線實現方式,組件和服務是不變的,變化的是服務適配器,MOM的服務適配器和工組流的服務適配器是不同的。MOM的服務適配器主要的工作是將消息中的內容翻譯為POJO,并調用服務;而工作流的服務適配器可能就只是一個基于當前工作流狀態的調用。這樣形成的系統架構就是相對穩定、松散耦合的,不論是組件發生變化,還是總線的技術發生變化,只要服務和總線的規范是穩定的,整體的軟件系統就是穩定的。而服務和總線規范才是軟件組織的核心競爭力所在,而這也正是軟件總線的主要目的。
Patterns and Best Practices for Enterprise Integration (http://www.enterpriseintegrationpatterns.com/)中收集整理了大量有價值的和消息相關的企業集成模式
軟件工廠在組件和軟件總線的基礎上發展,并根據組件和軟件總線的技術特點,定義了一系列的管理活動,以提高開發效率。軟件工廠是我們定義的軟件質量框架的一種實現方式。對于不同的軟件組織來說,根據自身的研發特點來定義軟件工廠的構成是非常重要的。具體的內容包括管理實踐的選擇,組件的積累,軟件總線的技術實現。在本系列文章中推薦的前兩項實踐都屬于管理實踐范疇的內容,而第三項實踐則偏重于建立軟件工廠的底層支撐框架。
軟件工廠的概念代表了一種新的軟件開發模式。他的優勢在于能夠把技術和管理結合起來,提高生產力。
關于作者
林星,致力于研究敏捷理論和優秀的軟件設計思想,并將之應用于國內的軟件組織?梢酝ㄟ^ iamlinx@21cn.com 和他聯系,也可以通過訪問 http://www-900.ibm.com/developerWorks/cn/linux/software_engineering/l-frmwk/www.qca.cn 和 http://www-900.ibm.com/developerWorks/cn/linux/software_engineering/l-frmwk/www.aglichina.org 來獲得更多的信息。
文章來源于領測軟件測試網 http://www.kjueaiud.com/