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