專利名稱:一種基于服務(wù)規(guī)范的軟件開發(fā)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機領(lǐng)域,特別涉及一種基于服務(wù)規(guī)范的軟件開發(fā)方法。
技術(shù)背景
一般來說,軟件開發(fā)過程中,緊耦合意味著應(yīng)用程序的不同組件之間的接口與其功能和結(jié)構(gòu)是緊密相連的,因而當(dāng)需要對部分或整個應(yīng)用程序進行某種形式的更改時,它們就顯得非常脆弱。
相對于上面緊耦合系統(tǒng)的軟件開發(fā),松耦合系統(tǒng)也是軟件開發(fā)一種技術(shù),在這種技術(shù)中,強調(diào)的是軟件的松散耦合。它是將應(yīng)用程序的不同功能單元通過定義良好的接口和契約聯(lián)系起來,藉此讓軟件應(yīng)用系統(tǒng)變得靈活。松耦合系統(tǒng)的好處有兩點一是它的靈活性;另一個是當(dāng)組成整個應(yīng)用程序的每個組件的內(nèi)部結(jié)構(gòu)和實現(xiàn)逐漸地發(fā)生改變時,它能夠繼續(xù)的存在。
簡單來說,松耦合系統(tǒng)開發(fā)技術(shù)是一種分布式和減少服務(wù)和服務(wù)之間耦合的架構(gòu)模式。目前,現(xiàn)有耦合性減少是通過00方法中以對象和對象之間關(guān)系的耦合性減少來實現(xiàn),但00方法對于異構(gòu)系統(tǒng)的集成方面,逐漸不能滿足用戶需求變更加速和老系統(tǒng)集成的需求。
所以,需要提出一種新的軟件開發(fā)方法,以實現(xiàn)服務(wù)在不同業(yè)務(wù)系統(tǒng)中模塊之間的耦合問題,實現(xiàn)了模塊之間的松耦合。發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種基于服務(wù)規(guī)范的軟件開發(fā)方法,實現(xiàn)服務(wù)在不同業(yè)務(wù)系統(tǒng)中的模塊之間的耦合問題,減少服務(wù)和服務(wù)之間的耦合性,實現(xiàn)了模塊之間的松耦合, 能很好的解決異構(gòu)系統(tǒng)的集成問題。
為了解決以上技術(shù)問題,本發(fā)明提供一種基于服務(wù)規(guī)范的軟件開發(fā)方法,包括
步驟1、將業(yè)務(wù)系統(tǒng)的業(yè)務(wù)需求劃分成服務(wù);
步驟2、將上述劃分后的服務(wù)再細(xì)分成細(xì)小粒度的服務(wù)場景;
步驟3、根據(jù)業(yè)務(wù)需求確定上述每個服務(wù)場景的輸入條件和輸出條件;
步驟4、將上述服務(wù)場景形成服務(wù)規(guī)范,提供給各個業(yè)務(wù)系統(tǒng)調(diào)用。
進一步地,所述步驟1具體包括對業(yè)務(wù)系統(tǒng)的業(yè)務(wù)需求進行整理并劃分成服務(wù), 給定唯一的服務(wù)代碼。
進一步地,所述步驟2具體包括將上述劃分后的服務(wù)在細(xì)分成細(xì)小粒度的服務(wù)場景,給定唯一的服務(wù)場景代碼,同時對其功能描述即對已經(jīng)定義的服務(wù)進行說明。
進一步地,所述方法還進一步包括步驟5、服務(wù)提供方調(diào)用上述服務(wù)規(guī)范提供服務(wù);具體包括
Bi、對企業(yè)服務(wù)總線進行安全認(rèn)證;
B2、根據(jù)每個服務(wù)場景輸入條件,向企業(yè)服務(wù)總線發(fā)送請求XML報文;
B3、將XML報文轉(zhuǎn)換成結(jié)構(gòu)對象;
B4、根據(jù)服務(wù)規(guī)范的服務(wù)代碼和服務(wù)場景判斷,進行業(yè)務(wù)處理;
B5、將處理的結(jié)果結(jié)構(gòu)對象轉(zhuǎn)換成XML報文;
B6、返回響應(yīng)的報文給企業(yè)服務(wù)總線。
進一步地,所述方法還進一步包括步驟6、服務(wù)消費方調(diào)用上述服務(wù)進行業(yè)務(wù)處理;具體包括
Cl、構(gòu)造CompositeData對象,向企業(yè)服務(wù)總線發(fā)送請求;
C2、根據(jù)服務(wù)規(guī)范遠程調(diào)用企業(yè)服務(wù)總線服務(wù),進行CompositeData對象調(diào)用;
C3、判斷交易狀態(tài),從返回的CompositeData對象中提取數(shù)據(jù)進行處理。
與現(xiàn)有技術(shù)相比,本發(fā)明提供一種基于服務(wù)規(guī)范的軟件開發(fā)方法,實現(xiàn)服務(wù)在不同業(yè)務(wù)系統(tǒng)中的模塊之間的耦合問題,減少服務(wù)和服務(wù)之間的耦合性,實現(xiàn)了模塊之間的松耦合,能很好的解決異構(gòu)系統(tǒng)的集成問題。具體來說,在軟件開發(fā)過程中通過定義服務(wù)規(guī)范,然后以服務(wù)的方式去開發(fā)業(yè)務(wù)系統(tǒng),在服務(wù)消費方直接調(diào)用服務(wù),實現(xiàn)了服務(wù)提供方和消費方的完全獨立。同時服務(wù)提供方和消費方之間又可以通過ESB(Enterprise Service Bus,企業(yè)服務(wù)總線)交換XML (Extensible Markup Language,可擴展標(biāo)記語言)數(shù)據(jù),達到了系統(tǒng)內(nèi)高內(nèi)聚,系統(tǒng)間低耦合的預(yù)期效果,同時也各系統(tǒng)實現(xiàn)數(shù)據(jù)雙向互通提供了很好的方法。
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本發(fā)明的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中
圖1是本發(fā)明提供的一種基于服務(wù)規(guī)范的軟件開發(fā)方法的流程圖2是本發(fā)明提供的服務(wù)提供方調(diào)用服務(wù)規(guī)范提供服務(wù)的流程圖3是本發(fā)明提供的服務(wù)消費方調(diào)用上述服務(wù)進行業(yè)務(wù)處理的流程圖;具體實施方式
為了使本發(fā)明所要解決的技術(shù)問題、技術(shù)方案及有益效果更加清楚、明白,以下結(jié)合附圖和實施例,對本發(fā)明進行進一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
如圖1所示,本發(fā)明提供一種基于服務(wù)規(guī)范的軟件開發(fā)方法,包括
步驟1、將業(yè)務(wù)系統(tǒng)的業(yè)務(wù)需求劃分成服務(wù);具體包括
對業(yè)務(wù)系統(tǒng)的業(yè)務(wù)需求進行整理并劃分成服務(wù),給定唯一的服務(wù)代碼;同一個服務(wù)可以有不同場景。
步驟2、將上述劃分后的服務(wù)再細(xì)分成細(xì)小粒度的服務(wù)場景;具體包括
將上述劃分后的服務(wù)在細(xì)分成細(xì)小粒度的服務(wù)場景,給定唯一的服務(wù)場景代碼 (服務(wù)代碼+場景代碼),同時對其功能描述即對已經(jīng)定義的服務(wù)進行說明,方便開發(fā)人員更深一層的理解需求以及該服務(wù)的功能,方便以后的分析人員復(fù)用已有的服務(wù)。
步驟3、根據(jù)業(yè)務(wù)需求確定上述每個服務(wù)場景的輸入條件和輸出條件;具體包括
根據(jù)業(yè)務(wù)需求整理出每個服務(wù)場景的輸入條件和輸出條件,輸入字段包括字段的中文名稱,英文名稱,字段長度,字段類型,備注等,同時字段的英文名稱要代碼一定含義。步驟4、將上述服務(wù)場景形成服務(wù)規(guī)范,提供給各個業(yè)務(wù)系統(tǒng)調(diào)用;具體包括將上述服務(wù)場景形成服務(wù)規(guī)范,提供給各個業(yè)務(wù)系統(tǒng)調(diào)用服務(wù)。服務(wù)規(guī)范發(fā)布具備權(quán)威性,版本發(fā)布后消費方和服務(wù)方都按照規(guī)范來開發(fā)。每次發(fā)布一個版本都要有個版本號碼,如第一個版本是1. 0. 0,后續(xù)做了少量的修改,版本號是1. 0. 1,如果有大量修改, 版本號是1.1.0。步驟5、服務(wù)提供方調(diào)用上述服務(wù)規(guī)范提供服務(wù);如圖2所示,具體包括5. 1、對ESB進行安全認(rèn)證(根據(jù)業(yè)務(wù)若要進行安全驗證則要此操作);5. 2、根據(jù)每個服務(wù)場景的輸入條件,向ESB發(fā)送請求XML報文;5. 3、將XML報文轉(zhuǎn)換成CD (CompositeData,結(jié)構(gòu)對象,是系統(tǒng)信息傳遞的標(biāo)準(zhǔn)數(shù)據(jù)結(jié)構(gòu));5. 4、根據(jù)服務(wù)規(guī)范的服務(wù)代碼和服務(wù)場景判斷,進行業(yè)務(wù)處理;5. 5、將處理的結(jié)果⑶轉(zhuǎn)換成XML報文;5. 6、返回響應(yīng)的報文給ESB。步驟6、服務(wù)消費方調(diào)用上述服務(wù)進行業(yè)務(wù)處理。如圖3所示,具體包括6. 1、構(gòu)造 CompositeData 對象,向 ESB 發(fā)送請求;6. 2、根據(jù)服務(wù)規(guī)范遠程調(diào)用 ESBClient. request (CompositeData data)服務(wù),進行CompositeData對象調(diào)用;6. 3、判斷交易狀態(tài),從返回的CompositeData對象中提取數(shù)據(jù)進行處理。本發(fā)明提供一種基于服務(wù)規(guī)范的軟件開發(fā)方法,實現(xiàn)服務(wù)在不同業(yè)務(wù)系統(tǒng)中的模塊之間的耦合問題,減少服務(wù)和服務(wù)之間的耦合性,實現(xiàn)了模塊之間的松耦合,能很好的解決異構(gòu)系統(tǒng)的集成問題。具體來說,在軟件開發(fā)過程中通過定義服務(wù)規(guī)范,然后以服務(wù)的方式去開發(fā)業(yè)務(wù)系統(tǒng),在服務(wù)消費方直接調(diào)用服務(wù),實現(xiàn)了服務(wù)提供方和消費方的完全獨立。 同時服務(wù)提供方和消費方之間又可以通過ESB交換XML數(shù)據(jù),達到了系統(tǒng)內(nèi)高內(nèi)聚,系統(tǒng)間低耦合的預(yù)期效果,同時也各系統(tǒng)實現(xiàn)數(shù)據(jù)雙向互通提供了很好的方法。上述說明示出并描述了本發(fā)明的一個優(yōu)選實施例,但如前所述,應(yīng)當(dāng)理解本發(fā)明并非局限于本文所披露的形式,不應(yīng)看作是對其他實施例的排除,而可用于各種其他組合、 修改和環(huán)境,并能夠在本文所述發(fā)明構(gòu)想范圍內(nèi),通過上述教導(dǎo)或相關(guān)領(lǐng)域的技術(shù)或知識進行改動。而本領(lǐng)域人員所進行的改動和變化不脫離本發(fā)明的精神和范圍,則都應(yīng)在本發(fā)明所附權(quán)利要求的保護范圍內(nèi)。
權(quán)利要求
1.一種基于服務(wù)規(guī)范的軟件開發(fā)方法,其特征在于,包括 步驟1、將業(yè)務(wù)系統(tǒng)的業(yè)務(wù)需求劃分成服務(wù);步驟2、將上述劃分后的服務(wù)再細(xì)分成細(xì)小粒度的服務(wù)場景; 步驟3、根據(jù)業(yè)務(wù)需求確定上述每個服務(wù)場景的輸入條件和輸出條件; 步驟4、將上述服務(wù)場景形成服務(wù)規(guī)范,提供給各個業(yè)務(wù)系統(tǒng)調(diào)用。
2.如權(quán)利要求1所述的方法,其特征在于,所述步驟1具體包括對業(yè)務(wù)系統(tǒng)的業(yè)務(wù)需求進行整理并劃分成服務(wù),給定唯一的服務(wù)代碼。
3.如權(quán)利要求1所述的方法,其特征在于,所述步驟2具體包括將上述劃分后的服務(wù)在細(xì)分成細(xì)小粒度的服務(wù)場景,給定唯一服務(wù)場景代碼。
4.如權(quán)利要求1所述的方法,其特征在于,所述方法還進一步包括 步驟5、服務(wù)提供方調(diào)用上述服務(wù)規(guī)范提供服務(wù);具體包括Bi、對企業(yè)服務(wù)總線進行安全認(rèn)證;B2、根據(jù)每個服務(wù)場景輸入條件,向企業(yè)服務(wù)總線發(fā)送請求XML報文; B3、將XML報文轉(zhuǎn)換成結(jié)構(gòu)對象;B4、根據(jù)服務(wù)規(guī)范的服務(wù)代碼和服務(wù)場景判斷,進行業(yè)務(wù)處理; B5、將處理的結(jié)果結(jié)構(gòu)對象轉(zhuǎn)換成XML報文; B6、返回響應(yīng)的報文給企業(yè)服務(wù)總線。
5.如權(quán)利要求1所述的方法,其特征在于,所述方法還進一步包括 步驟6、服務(wù)消費方調(diào)用上述服務(wù)進行業(yè)務(wù)處理;具體包括Cl、構(gòu)造CompositeData對象,向企業(yè)服務(wù)總線發(fā)送請求;C2、根據(jù)服務(wù)規(guī)范遠程調(diào)用企業(yè)服務(wù)總線服務(wù),進行CompositeData對象調(diào)用;C3、判斷交易狀態(tài),從返回的CompositeData對象中提取數(shù)據(jù)進行處理。
全文摘要
本發(fā)明提供一種基于服務(wù)規(guī)范的軟件開發(fā)方法,包括步驟1、將業(yè)務(wù)系統(tǒng)的業(yè)務(wù)需求劃分成服務(wù);步驟2、將上述劃分后的服務(wù)再細(xì)分成細(xì)小粒度的服務(wù)場景;步驟3、根據(jù)業(yè)務(wù)需求確定上述每個服務(wù)場景的輸入條件和輸出條件;步驟4、將上述服務(wù)場景形成服務(wù)規(guī)范,提供給各個業(yè)務(wù)系統(tǒng)調(diào)用。通過本發(fā)明提供一種軟件開發(fā)的服務(wù)規(guī)范方法,實現(xiàn)服務(wù)在不同業(yè)務(wù)系統(tǒng)中的模塊之間的耦合問題,減少服務(wù)和服務(wù)之間的耦合性,實現(xiàn)了模塊之間的松耦合,能很好的解決異構(gòu)系統(tǒng)的集成問題。
文檔編號G06Q10/06GK102542407SQ201110427488
公開日2012年7月4日 申請日期2011年12月16日 優(yōu)先權(quán)日2011年12月16日
發(fā)明者侯明軍, 吳振宇, 張弛, 李江濤, 李海蔚 申請人:深圳中興網(wǎng)信科技有限公司