SOA是英文Service-Oriented Architecture的縮寫,中文名稱為“面向服務(wù)架構(gòu)”,是指為了解決在Internet環(huán)境下業(yè)務(wù)集成的需要,通過連接能完成特定任務(wù)的獨立功能實體實現(xiàn)的一種軟件系統(tǒng)架構(gòu)。盡管這一定義看上去有些晦澀難懂,但只要告訴你這樣一個事實,我們最熟悉的HTTP協(xié)議就是一個非常典型的SOA架構(gòu)設(shè)計,你就可能會對SOA 有了好感。面向服務(wù)強調(diào)邏輯處理單元(服務(wù))之間的松耦合。其核心在于將單個應(yīng)用程序功能彼此分開,以便這些功能可以單獨用作單個的應(yīng)用程序功能或"組件"。
這些組件可以用于在企業(yè)內(nèi)部創(chuàng)建各種其他的應(yīng)用程序,或者如有需要,對外向合作伙伴公開,以便用于合作伙伴的應(yīng)用程序。而在沒有SOA的情況下,軟件包是被編寫為獨立的(self-contained)軟件,即在一個完整的軟件包中將許多應(yīng)用程序功能整合在一起。實現(xiàn)整合應(yīng)用程序功能的代碼通常與功能本身的代碼混合在一起。我們將這種方式稱作軟件設(shè)計"單一應(yīng)用程序"。與此密切相關(guān)的是,更改一部分代碼將對使用該代碼的代碼具有重大影響,這會造成系統(tǒng)的復(fù)雜性,并增加維護系統(tǒng)的成本。而且還使重新使用應(yīng)用程序功能變得較困難,因為這些功能不是為了重新使用而打的包。
SOA架構(gòu)理念最關(guān)鍵的優(yōu)勢在于交互性(互操作性),在基于SOA的系統(tǒng)平臺上,人們可以使用任何平臺之間的功能,而不必考慮編程的語言、操作系統(tǒng)和計算機類型等等。SOA可以實現(xiàn)軟件程序的大量復(fù)用。不僅僅是在開發(fā)層被調(diào)用,而是在應(yīng)用層可以被用戶調(diào)用,可以根據(jù)服務(wù)請求通過分布式網(wǎng)絡(luò)對松散耦合的應(yīng)用群件進行部署、組合和使用。用戶通過調(diào)用SOA的程序服務(wù),可以建立適合自己的軟件應(yīng)用功能,可以為直接用戶建立起完全個性化的軟件應(yīng)用功能,實現(xiàn)表單的多樣化和角色的動態(tài)化、流程的柔性化,以適應(yīng)深化協(xié)同軟件應(yīng)用和管理變革的需要。SOA架構(gòu)使得應(yīng)用程序的重復(fù)使用成為可能,并且能夠降低開發(fā)成本。服務(wù)的重復(fù)使用,其長期作用在于減少企業(yè)中冗余的功能,簡化基礎(chǔ)架構(gòu),從而降低維護代碼的成本。
SOA等新需求的提出,使得協(xié)同軟件概念也賦予了新的含義。在激烈競爭的市場環(huán)境下,企業(yè)的管理模式很難固化,當企業(yè)要做出一些改動時需要面對巨大的挑戰(zhàn)。同時,隨著信息化建設(shè)的深入,不同應(yīng)用系統(tǒng)之間的功能界限已趨于模糊。目前的協(xié)同軟件,已經(jīng)超出了早期的公文管理等簡單內(nèi)容,參與協(xié)同的事務(wù)不僅包括了行政辦公事務(wù),還包括了企業(yè)的人、財、物等等多項管理事務(wù),這就要求協(xié)同軟件能夠自動與企業(yè)現(xiàn)有的管理信息系統(tǒng),如ERP、CRM、HR等實現(xiàn)無縫連接,滿足企業(yè)業(yè)務(wù)靈活性和數(shù)據(jù)接口復(fù)雜性的需求。這種需求定決定了基于SOA理念的協(xié)同軟件在未來將大有所為。
|