一種面向服務(wù)的軟件構(gòu)建方法
【專利摘要】一種面向服務(wù)的軟件構(gòu)建方法,首先搭建一個(gè)SOA的基礎(chǔ)平臺,作為面向服務(wù)構(gòu)建軟件的基礎(chǔ)環(huán)境。其次,業(yè)務(wù)模型分析和服務(wù)的抽象,此過程通過服務(wù)治理平臺來支撐。再次,服務(wù)的開發(fā)和組合,此過程通過服務(wù)的集成開發(fā)環(huán)境來實(shí)現(xiàn),新服務(wù)的開發(fā)過程,提供一些通用的組件的支持,如前段展現(xiàn)組件、數(shù)據(jù)庫訪問、日志組件、消息組件等。集成服務(wù)的開發(fā),提供各種集成類的組件包括技術(shù)協(xié)議HTTP、Web?Service、Socket、JMS等支持。最后,服務(wù)的運(yùn)行和監(jiān)控。上述技術(shù)方案實(shí)施時(shí),可以解決融合類應(yīng)用軟件業(yè)務(wù)需求變化快、軟件復(fù)用程度低、技術(shù)和業(yè)務(wù)混雜等問題,有效提高了開發(fā)效率和交付質(zhì)量,同時(shí)大大降低了運(yùn)維成本。
【專利說明】一種面向服務(wù)的軟件構(gòu)建方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種面向服務(wù)的軟件構(gòu)建方法,特別是指一種采用面向服務(wù)的架構(gòu)進(jìn)行業(yè)務(wù)模型分析、服務(wù)抽象、服務(wù)的實(shí)現(xiàn)與組合、服務(wù)運(yùn)行、以及服務(wù)監(jiān)控的全生命周期的軟件構(gòu)建方法,這個(gè)方法主要針對融合類應(yīng)用軟件,典型應(yīng)用包括銀行的中間業(yè)務(wù)、政府的市民服務(wù)等。
【背景技術(shù)】
[0002]隨著信息化技術(shù)的不斷發(fā)展,為了解決業(yè)務(wù)復(fù)雜度和業(yè)務(wù)變化導(dǎo)致的軟件危機(jī),軟件方法沿著結(jié)構(gòu)化、面向?qū)ο蟆?gòu)件技術(shù)和面向服務(wù)一路變革,軟件開發(fā)的正確性、可重用性逐步得到提高。傳統(tǒng)的軟件開發(fā)模式在開發(fā)效率、軟件質(zhì)量方面都存在很多問題,而采用面向服務(wù)架構(gòu)風(fēng)格后,軟件的復(fù)用程度、業(yè)務(wù)敏捷能力得到了大幅提升,軟件技術(shù)也越來越接近業(yè)務(wù)本質(zhì)。
[0003]融合類應(yīng)用軟件的特點(diǎn)一般是存在一些現(xiàn)有的應(yīng)用系統(tǒng),而新業(yè)務(wù)的開發(fā)會使用到部分現(xiàn)有系統(tǒng)提供的能力,且業(yè)務(wù)需求變化較快。傳統(tǒng)的開發(fā)模式采用系統(tǒng)接口的方式進(jìn)行系統(tǒng)互聯(lián),當(dāng)接口變化時(shí)就需要進(jìn)行程序調(diào)整??焖僮兓臉I(yè)務(wù)需求,也會導(dǎo)致程序頻繁的修改,開發(fā)和維護(hù)工作量巨大。針對這樣的軟件特點(diǎn),新的開發(fā)模式必須具備松耦合性、可重用性、可擴(kuò)展性、可組合性的特點(diǎn),而面型服務(wù)架構(gòu)(SOA)是最佳選擇。
[0004]采用本發(fā)明,使用SOA架構(gòu)方法進(jìn)行融合類軟件的構(gòu)建,能夠?qū)崿F(xiàn)技術(shù)和業(yè)務(wù)的有效分離,能夠大大提高軟件開發(fā)效率和交付質(zhì)量?;诖思軜?gòu)進(jìn)行軟件的開發(fā),可以有效提高業(yè)務(wù)的敏捷性,以及對變化的響應(yīng)能力。服務(wù)的重用性,有利于業(yè)務(wù)的積累和沉淀。
【發(fā)明內(nèi)容】
[0005]本發(fā)明目的在于提供一種面向服務(wù)的軟件構(gòu)建方法,解決融合類應(yīng)用軟件不能快速響應(yīng)業(yè)務(wù)的變化、軟件復(fù)用程度低、技術(shù)和業(yè)務(wù)混雜、以及開發(fā)效率和交付質(zhì)量不高的問題。
[0006]本發(fā)明所述的方法至少包括如下的步驟:
[0007]步驟一:業(yè)務(wù)模型分析。根據(jù)當(dāng)前融合類應(yīng)用軟件的業(yè)務(wù)特征,基于領(lǐng)域知識,梳理和歸納業(yè)務(wù)模型。
[0008]步驟二:服務(wù)的抽象。服務(wù)是具備特定業(yè)務(wù)功能的、可獨(dú)立運(yùn)行的、具有穩(wěn)定接口的、可被重用的技術(shù)實(shí)體。采用自頂向下以及自底向上的兩種方法相結(jié)合的方式進(jìn)行服務(wù)的抽象。自頂向下一般是指從組織高層業(yè)務(wù)目標(biāo)開始往下進(jìn)行分解,推導(dǎo)出支撐目標(biāo)的業(yè)務(wù)服務(wù)。自底向上一般是指從現(xiàn)有支持的信息系統(tǒng)出發(fā),梳理現(xiàn)有的可以支撐的服務(wù)能力。兩種方法結(jié)合,既可以保證業(yè)務(wù)目標(biāo)的達(dá)成也可確保業(yè)務(wù)服務(wù)的落地能力。通過服務(wù)的抽象,最終形成服務(wù)的技術(shù)和業(yè)務(wù)規(guī)范,實(shí)現(xiàn)技術(shù)和業(yè)務(wù)的有效分離。
[0009]步驟三:服務(wù)的實(shí)現(xiàn)?;诓襟E二中抽象出的服務(wù)規(guī)范,進(jìn)行服務(wù)的實(shí)現(xiàn),此處服務(wù)的實(shí)現(xiàn)有兩種方式,既全新服務(wù)實(shí)現(xiàn)以及集成服務(wù)實(shí)現(xiàn)。全新服務(wù)實(shí)現(xiàn),是指當(dāng)前抽象的服務(wù)不能被目前環(huán)境的系統(tǒng)所支撐,需要從頭從進(jìn)行設(shè)計(jì)和開發(fā),采用成熟的面向?qū)ο蠓椒ㄒ约皹?gòu)件技術(shù)等進(jìn)行服務(wù)的開發(fā)。集成服務(wù)實(shí)現(xiàn)是指當(dāng)前的抽象服務(wù)可以被某些現(xiàn)有系統(tǒng)實(shí)現(xiàn),就采用集成的手段把系統(tǒng)集成進(jìn)來,實(shí)現(xiàn)服務(wù)的功能。
[0010]步驟四:服務(wù)的組合。服務(wù)組合是軟件構(gòu)建的關(guān)鍵,根據(jù)業(yè)務(wù)模型的分析,抽象出軟件或功能所需的業(yè)務(wù)服務(wù)以及組合邏輯,并進(jìn)行服務(wù)組合的設(shè)計(jì)和編排,采用可視化的編排方式、支持靈活的組合模式,采用動態(tài)編譯技術(shù)或者組合引擎的模式進(jìn)行組合服務(wù)的執(zhí)行。從而能夠適應(yīng)快速多變的業(yè)務(wù)需求。
[0011]步驟五:服務(wù)的發(fā)布和運(yùn)行。完成對服務(wù)的實(shí)現(xiàn)和組合后,可以對服務(wù)進(jìn)行注冊和發(fā)布。服務(wù)會加載服務(wù)容器,生命周期會被服務(wù)容器所管理。服務(wù)消費(fèi)者或者對應(yīng)業(yè)務(wù)功能的前段界面進(jìn)行服務(wù)的查找和調(diào)用,當(dāng)然服務(wù)的查找和調(diào)用的過程可以是本地的也可以是遠(yuǎn)程的。
[0012]步驟六:服務(wù)的監(jiān)控。對于采用此過程進(jìn)行構(gòu)建的應(yīng)用系統(tǒng),能夠有效的監(jiān)控服務(wù)的健康狀態(tài),以及應(yīng)用的各項(xiàng)指標(biāo),為運(yùn)維人員提供了很好的管理依據(jù)。
[0013]步驟七:新業(yè)務(wù)開發(fā)的時(shí)候,首先重復(fù)步驟一,然后到服務(wù)治理平臺看是否服務(wù)已經(jīng)存在,如果存在即可直接調(diào)至步驟四,有效重用已有的服務(wù)。如不存在,即按原順序進(jìn)行。當(dāng)原有業(yè)務(wù)需要調(diào)整時(shí),調(diào)整步驟四,然后動態(tài)發(fā)布即可,快速響應(yīng)業(yè)務(wù)的變化。
【具體實(shí)施方式】
[0014]上述方法的實(shí)施辦法如下:
[0015]首先,搭建一個(gè)SOA的基礎(chǔ)平臺,包括服務(wù)治理環(huán)境、服務(wù)開發(fā)環(huán)境、服務(wù)運(yùn)行時(shí)和應(yīng)用支撐環(huán)境、以及管理監(jiān)控環(huán)境。作為面向服務(wù)構(gòu)建軟件的基礎(chǔ)環(huán)境。
[0016]其次,業(yè)務(wù)模型分析和服務(wù)的抽象,此過程通過服務(wù)治理平臺來支撐。一般會有一個(gè)服務(wù)治理小組(COE),由對應(yīng)的業(yè)務(wù)人員和技術(shù)人員組成,負(fù)責(zé)組織體系中服務(wù)規(guī)范的抽象和梳理,以及監(jiān)督過程。服務(wù)梳理和抽象的過程包括服務(wù)字典管理、服務(wù)元數(shù)據(jù)管理等。并通過元數(shù)據(jù)的方式來進(jìn)行服務(wù)的定義以及接口的定義,把技術(shù)和業(yè)務(wù)較好的分離。另外服務(wù)定義需要定義服務(wù)模型信息、服務(wù)水平契約等相關(guān)信息。另外,服務(wù)規(guī)范的變更需要COE小組人員的流程審核,審核通過才能進(jìn)行服務(wù)規(guī)范等變更。
[0017]再次,服務(wù)的開發(fā)和組合,此過程通過服務(wù)的集成開發(fā)環(huán)境來實(shí)現(xiàn),新服務(wù)的開發(fā)過程,提供一些通用的組件的支持,如前段展現(xiàn)組件、數(shù)據(jù)庫訪問、日志組件、消息組件等。集成服務(wù)的開發(fā),提供各種集成類的組件包括技術(shù)協(xié)議HTTP、Web Service、Socket、JMS等支持。服務(wù)組合功能,需要提供圖形化的拖拽方式實(shí)現(xiàn)服務(wù)的靈活組合能力,實(shí)現(xiàn)服務(wù)的有效重用、這樣大大提高了軟件的開發(fā)效率和質(zhì)量。當(dāng)業(yè)務(wù)發(fā)生變化時(shí),及時(shí)調(diào)整組合的方式,動態(tài)的生效,有效提升了業(yè)務(wù)敏捷性。
[0018]最后,服務(wù)的運(yùn)行和監(jiān)控。采用面向服務(wù)架構(gòu)構(gòu)建的融合軟件是運(yùn)行在SOA基礎(chǔ)平臺之上的,具備很高的穩(wěn)定性、可靠性、安全性以及可擴(kuò)展能力。并且基于基礎(chǔ)平臺能夠?qū)\(yùn)行其之上的業(yè)務(wù)服務(wù)有效的管理和監(jiān)控,為運(yùn)維人員提供了極大的便利。
[0019]上述技術(shù)方案實(shí)施時(shí),可以解決融合類應(yīng)用軟件業(yè)務(wù)需求變化快、軟件復(fù)用程度低、技術(shù)和業(yè)務(wù)混雜等問題。采用面向服務(wù)的軟件構(gòu)件方法提出一個(gè)高復(fù)用性,高可靠性,高擴(kuò)展性以及高度敏捷的技術(shù)方案,有效提高了開發(fā)效率和交付質(zhì)量,同時(shí)大大降低了運(yùn)維成本。
[0020]最后所應(yīng)說明的是,以上實(shí)施例僅用以說明而并非限制本發(fā)明所描述的技術(shù)方案;因此,盡管本說明書參照上述的實(shí)施例對本發(fā)明已進(jìn)行了詳細(xì)的說明,但是,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,仍然可以對本發(fā)明進(jìn)行修改或者等同地替換;而一切不脫離本發(fā)明的精神和范圍的技術(shù)方案及其改進(jìn),其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。
【權(quán)利要求】
1.一種面向服務(wù)的軟件構(gòu)建方法,其特征在于:該方法至少包括如下的步驟: 步驟一:業(yè)務(wù)模型分析。根據(jù)當(dāng)前融合類應(yīng)用軟件的業(yè)務(wù)特征,基于領(lǐng)域知識,梳理和歸納業(yè)務(wù)模型。 步驟二:服務(wù)的抽象。服務(wù)是具備特定業(yè)務(wù)功能的、可獨(dú)立運(yùn)行的、具有穩(wěn)定接口的、可被重用的技術(shù)實(shí)體。采用自頂向下以及自底向上的兩種方法相結(jié)合的方式進(jìn)行服務(wù)的抽象。自頂向下一般是指從組織高層業(yè)務(wù)目標(biāo)開始往下進(jìn)行分解,推導(dǎo)出支撐目標(biāo)的業(yè)務(wù)服務(wù)。自底向上一般是指從現(xiàn)有支持的信息系統(tǒng)出發(fā),梳理現(xiàn)有的可以支撐的服務(wù)能力。兩種方法結(jié)合,既可以保證業(yè)務(wù)目標(biāo)的達(dá)成也可確保業(yè)務(wù)服務(wù)的落地能力。通過服務(wù)的抽象,最終形成服務(wù)的技術(shù)和業(yè)務(wù)規(guī)范,實(shí)現(xiàn)技術(shù)和業(yè)務(wù)的有效分離。 步驟三:服務(wù)的實(shí)現(xiàn)。基于步驟二中抽象出的服務(wù)規(guī)范,進(jìn)行服務(wù)的實(shí)現(xiàn),此處服務(wù)的實(shí)現(xiàn)有兩種方式,既全新服務(wù)實(shí)現(xiàn)以及集成服務(wù)實(shí)現(xiàn)。全新服務(wù)實(shí)現(xiàn),是指當(dāng)前抽象的服務(wù)不能被目前環(huán)境的系統(tǒng)所支撐,需要從頭從進(jìn)行設(shè)計(jì)和開發(fā),采用成熟的面向?qū)ο蠓椒ㄒ约皹?gòu)件技術(shù)等進(jìn)行服務(wù)的開發(fā)。集成服務(wù)實(shí)現(xiàn)是指當(dāng)前的抽象服務(wù)可以被某些現(xiàn)有系統(tǒng)實(shí)現(xiàn),就采用集成的手段把系統(tǒng)集成進(jìn)來,實(shí)現(xiàn)服務(wù)的功能。 步驟四:服務(wù)的組合。服務(wù)組合是軟件構(gòu)建的關(guān)鍵,根據(jù)業(yè)務(wù)模型的分析,抽象出軟件或功能所需的業(yè)務(wù)服務(wù)以及組合邏輯,并進(jìn)行服務(wù)組合的設(shè)計(jì)和編排,采用可視化的編排方式、支持靈活的組合模式,采用動態(tài)編譯技術(shù)或者組合引擎的模式進(jìn)行組合服務(wù)的執(zhí)行。從而能夠適應(yīng)快速多變的業(yè)務(wù)需求。 步驟五:服務(wù)的發(fā)布和運(yùn)行。完成對服務(wù)的實(shí)現(xiàn)和組合后,可以對服務(wù)進(jìn)行注冊和發(fā)布。服務(wù)會加載服務(wù)容器,生命周期會被服務(wù)容器所管理。服務(wù)消費(fèi)者或者對應(yīng)業(yè)務(wù)功能的前段界面進(jìn)行服務(wù)的查找和調(diào)用,當(dāng)然服務(wù)的查找和調(diào)用的過程可以是本地的也可以是遠(yuǎn)程的。 步驟六:服務(wù)的監(jiān)控。對于采用此過程進(jìn)行構(gòu)建的應(yīng)用系統(tǒng),能夠有效的監(jiān)控服務(wù)的健康狀態(tài),以及應(yīng)用的各項(xiàng)指標(biāo),為運(yùn)維人員提供了很好的管理依據(jù)。 步驟七:新業(yè)務(wù)開發(fā)的時(shí)候,首先重復(fù)步驟一,然后到服務(wù)治理平臺看是否服務(wù)已經(jīng)存在,如果存在即可直接調(diào)至步驟四,有效重用已有的服務(wù)。如不存在,即按原順序進(jìn)行。當(dāng)原有業(yè)務(wù)需要調(diào)整時(shí),調(diào)整步驟四,然后動態(tài)發(fā)布即可,快速響應(yīng)業(yè)務(wù)的變化。
【文檔編號】G06F9/44GK103543992SQ201210238071
【公開日】2014年1月29日 申請日期:2012年7月11日 優(yōu)先權(quán)日:2012年7月11日
【發(fā)明者】馬正修, 徐嘯 申請人:神州數(shù)碼信息系統(tǒng)有限公司