專利名稱:數(shù)據(jù)同步的制作方法
技術領域:
本發(fā)明涉及部署和同步數(shù)據(jù)的技術。
2.背景技術基于網(wǎng)站的軟件應用程序已作為強大的工具出現(xiàn),以同樣的方式提供有用的服務給賣主和顧客。電子商務網(wǎng)站應用程序可配置為依照業(yè)務邏輯而運作來實現(xiàn)有助于電子商務的各種過程。這種應用程序也可提供與遠程互聯(lián)網(wǎng)客戶交互的服務和/或應用程序。
Java2平臺企業(yè)版(J2EE),來自于加州圣克萊拉的Sun微系統(tǒng)公司,有助于在多層企業(yè)應用程序環(huán)境中運行的電子商務網(wǎng)站應用程序的開發(fā)。這種網(wǎng)站應用程序的運作由用于配置網(wǎng)站應用程序的數(shù)據(jù)(“應用程序數(shù)據(jù)”)來控制。因此,通過更新與應用程序關聯(lián)的應用程序數(shù)據(jù),可修改由網(wǎng)站應用程序所提供的功能。
遺憾的是,從新的或更新的應用程序數(shù)據(jù)到J2EE網(wǎng)站應用程序的部署和同步工作是麻煩的過程。新創(chuàng)建的應用程序數(shù)據(jù)通常依照數(shù)據(jù)庫所使用的特定模型存儲在數(shù)據(jù)庫中。如果開發(fā)者試圖部署這種應用程序數(shù)據(jù)到運行中的產(chǎn)品服務器,數(shù)據(jù)在轉(zhuǎn)換成適合傳輸?shù)椒掌鞯男问街氨仨毾葟臄?shù)據(jù)庫中提取出來。通常都需要腳本來從數(shù)據(jù)庫導出應用程序數(shù)據(jù)到文件系統(tǒng)中。導入應用程序數(shù)據(jù)到運行中的服務器也需要腳本。因為這些原因,維護應用程序數(shù)據(jù)的不同版本也會成為一種笨拙和難做的努力。
此外,在新應用程序數(shù)據(jù)可被移動到運行中的產(chǎn)品服務器之前,可能需要部署應用程序數(shù)據(jù)到多個服務器以遵循多階段測試過程。這種應用程序數(shù)據(jù)遷移可能會是麻煩的手工過程,在應用程序數(shù)據(jù)從一個服務器遷移到另一個服務器并且涉及多個人時會變得愈加容易出錯。因此,在J2EE平臺環(huán)境中部署和同步應用程序數(shù)據(jù)的現(xiàn)有技術很大程度上是專用的和不方便的。
發(fā)明內(nèi)容
本發(fā)明,粗略地說,公開了同步運行在一個或多個服務器上的企業(yè)應用程序所用的應用程序數(shù)據(jù)。例如,在一個實施例中,接收應用程序數(shù)據(jù)并與數(shù)據(jù)庫和數(shù)據(jù)儲藏庫同步。在另一個實施例中,提供了應用程序數(shù)據(jù)部署方法,允許應用程序數(shù)據(jù)的創(chuàng)建、提交到源碼控制系統(tǒng)、以及發(fā)送到其數(shù)據(jù)儲藏庫與數(shù)據(jù)同步的遠程服務器。
在另一個實施例中,通過使用代理數(shù)據(jù)儲藏庫來在企業(yè)應用程序之間同步應用程序數(shù)據(jù)。在另一個實施例中,通過使用一個數(shù)據(jù)儲藏庫詢問另一個來在數(shù)據(jù)儲藏庫之間同步應用程序數(shù)據(jù)。
系統(tǒng)和計算機可讀介質(zhì)也提供作為這些方法的實現(xiàn)部分和變體。如本公開內(nèi)容中所述,也可能有其他許多實施例。
圖1展示了如本發(fā)明的實施例所述的用于創(chuàng)建應用程序數(shù)據(jù)文件和劃分其版本的系統(tǒng)的概念圖。
圖2展示了如本發(fā)明的實施例所述的用于同步數(shù)據(jù)的系統(tǒng)的高層方框圖。
圖3展示了如本發(fā)明的實施例所述的運行著具有可被同步的數(shù)據(jù)的企業(yè)應用程序的服務器的方框圖。
圖4是展示了如本發(fā)明的實施例所述的用于同步數(shù)據(jù)的過程的流程圖。
圖5展示了如本發(fā)明的實施例所述的運行著企業(yè)應用程序的多個服務器的方框圖,該企業(yè)應用程序帶有通過使用代理數(shù)據(jù)儲藏庫可被同步的數(shù)據(jù)。
圖6展示了如本發(fā)明的實施例所述的運行著企業(yè)應用程序的一群服務器的方框圖,該企業(yè)應用程序帶有可被管理服務器同步的數(shù)據(jù)。
具體實施例方式
圖1展示了如本發(fā)明的實施例所述的用于創(chuàng)建應用程序數(shù)據(jù)文件和劃分其版本的系統(tǒng)的概念圖。創(chuàng)建者110是具有創(chuàng)建可被一個或多個網(wǎng)站應用程序和/或服務所使用的應用程序數(shù)據(jù)的職責的人。在各種實施例中,創(chuàng)建者110可以是業(yè)務線(line-of-business)經(jīng)理、業(yè)務工程師、開發(fā)人員或負責創(chuàng)建應用程序數(shù)據(jù)的其他人。應用程序數(shù)據(jù)可被用于配置網(wǎng)站應用程序來依照創(chuàng)建者110所定義的業(yè)務邏輯運作。例如,創(chuàng)建者110創(chuàng)建的應用程序數(shù)據(jù)可包括比如活動定義的業(yè)務政策文檔、計劃說明書、業(yè)務規(guī)則集、門戶定義和/或網(wǎng)站應用程序使用的其他類型數(shù)據(jù)。
為了產(chǎn)生應用程序數(shù)據(jù),創(chuàng)建者110可與各種軟件工具建立聯(lián)系,比如控制中心120。在一個實施例中,控制中心120是來自加州圣約斯的BEA系統(tǒng)公司的電子商務控制中心工具。創(chuàng)建者110使用控制中心120創(chuàng)建的數(shù)據(jù)可作為一組應用程序數(shù)據(jù)文件存儲在本地層次文件系統(tǒng)中。圖1展示了存儲在層次文件系統(tǒng)中的應用程序數(shù)據(jù)文件130的例子。應用程序數(shù)據(jù)文件130可根據(jù)需要創(chuàng)建它們的網(wǎng)站應用程序來組織。在一個實施例中,由控制中心120創(chuàng)建的應用程序數(shù)據(jù)存儲在遵循由需要創(chuàng)建(author)這些數(shù)據(jù)的網(wǎng)站應用程序所解釋的XML(可擴展標記語言)模型的XML文件中。因為XML可被跨越多種平臺的各種系統(tǒng)所讀取和解釋,使用XML應用程序數(shù)據(jù)要優(yōu)于數(shù)據(jù)庫面向腳本方法。
創(chuàng)建者110和控制中心120交互所產(chǎn)生的應用程序數(shù)據(jù)文件130可被檢入源碼控制系統(tǒng)140。源碼控制系統(tǒng)140允許應用程序數(shù)據(jù)文件130的不同版本可為測試、部署、同步和/或其他用途而很容易地取回。例如,如果網(wǎng)站應用程序部署了有錯的應用程序數(shù)據(jù),源碼控制系統(tǒng)140允許創(chuàng)建者110來取回應用程序數(shù)據(jù)的先前版本和重新部署數(shù)據(jù)到網(wǎng)站應用程序??僧敳⑿袆?chuàng)建應用程序數(shù)據(jù)時,使用源碼控制系統(tǒng)140也避免多個創(chuàng)建者覆蓋彼此的文件。在一個實施例中,源碼控制系統(tǒng)140是本領域中所知的任何適用的源碼控制系統(tǒng)。
在創(chuàng)建系統(tǒng)數(shù)據(jù)后,典型地要遵循多階段核準過程來測試新創(chuàng)建的應用程序數(shù)據(jù)和其他創(chuàng)建者所創(chuàng)建的其他數(shù)據(jù)和/或應用程序之間的交互。例如,在應用程序數(shù)據(jù)部署到產(chǎn)品服務器之前,會遵循獨立的開發(fā)和質(zhì)量保證階段。這些階段幫助確保在產(chǎn)品服務器上運行的網(wǎng)站應用程序?qū)⒖煽康剡\作。
在網(wǎng)站應用程序的這種協(xié)作開發(fā)中,軟件開發(fā)者會很希望同步跨越企業(yè)應用程序界限來將應用程序數(shù)據(jù)與遠程服務器同步。此后進一步描述的各種數(shù)據(jù)同步過程利用(leverage)了由HTTP(超文本傳輸協(xié)議)提供的優(yōu)勢來使可通過互聯(lián)網(wǎng)訪問的遠程服務器上的應用程序數(shù)據(jù)同步變得更容易。如本發(fā)明的特定實施例所述,新創(chuàng)建的應用程序數(shù)據(jù)可與一個或多個正運行的遠程服務器同步。通過識別服務器所關聯(lián)的URL(統(tǒng)一資源定位符),應用程序數(shù)據(jù)可遠程地與經(jīng)過HTTP通過互聯(lián)網(wǎng)可訪問的任何服務器同步。
圖2展示了如本發(fā)明的實施例所述的用于同步數(shù)據(jù)的系統(tǒng)的高層方框圖。圖2的系統(tǒng)可用于在將網(wǎng)站應用程序最終部署到產(chǎn)品服務器上之前協(xié)作開發(fā)和測試它們。在一個實施例中,圖2的系統(tǒng)實現(xiàn)為使用來自加州圣約斯的BEA系統(tǒng)公司的BEA WebLogic平臺的一個或多個組件。如圖2中所示,多個服務器與網(wǎng)絡210通訊。在一個實施例中,圖2的系統(tǒng)實現(xiàn)為點對點網(wǎng)絡。圖2的每個服務器與可存儲運行在服務器上的網(wǎng)站應用程序和/或服務所用的應用程序數(shù)據(jù)的數(shù)據(jù)庫相關聯(lián)。如圖2所示,在多階段應用程序數(shù)據(jù)核準過程中,每個服務器可用于不同的用途。例如,這些用途可包括開發(fā)(服務器230和數(shù)據(jù)庫235)、質(zhì)量保證(服務器240和數(shù)據(jù)庫245)、產(chǎn)品化(服務器250和數(shù)據(jù)庫255)和其他(未顯示)。
圖2的每個服務器通過網(wǎng)絡210能夠接收來自于創(chuàng)建者系統(tǒng)220的應用程序數(shù)據(jù)。接收自創(chuàng)建者系統(tǒng)220的應用程序數(shù)據(jù)可與此后進一步描述的各種服務器上運行的網(wǎng)站應用程序所用的應用程序數(shù)據(jù)同步。在一個實施例中,創(chuàng)建者系統(tǒng)220是圖1中展示的系統(tǒng)。
服務器工具260和數(shù)據(jù)庫工具265也在圖2中展示。這些工具允許分別對在產(chǎn)品服務器250和產(chǎn)品數(shù)據(jù)庫255上的數(shù)據(jù)進行實時修改。在一個實施例中,服務器工具260是基于JSP(Java服務器端頁面)的工具,允許直接地施加變化到產(chǎn)品服務器250去。
圖3展示了如本發(fā)明的實施例所述的運行著有可被同步的數(shù)據(jù)的企業(yè)應用程序的服務器的方框圖。服務器310可為圖2中展示的能夠接收來自于創(chuàng)建者系統(tǒng)220的應用程序數(shù)據(jù)的任何服務器。如圖3中所示,多個網(wǎng)站應用程序和服務駐留在服務器310上運行的企業(yè)應用程序320中。電子商務網(wǎng)站應用程序350包括依賴于在服務數(shù)據(jù)儲藏庫370、375和/或377中存儲的應用程序數(shù)據(jù)的服務360。在企業(yè)應用程序320環(huán)境中運行的附加服務365也可依賴于在服務數(shù)據(jù)儲藏庫中存儲的應用程序數(shù)據(jù)。在一個實施例中,服務數(shù)據(jù)儲藏庫是作為對于已被部署的服務類而言重要的、在數(shù)據(jù)項的內(nèi)存中緩沖的Java對象。
數(shù)據(jù)同步網(wǎng)站應用程序330也運行在企業(yè)應用程序320中并且負責執(zhí)行如本發(fā)明所述的數(shù)據(jù)同步操作。如圖3所示,數(shù)據(jù)同步應用程序330可通過網(wǎng)絡210與圖2的創(chuàng)建者系統(tǒng)220通訊。企業(yè)應用程序320中的主數(shù)據(jù)儲藏庫340可與數(shù)據(jù)同步應用程序330、數(shù)據(jù)庫380和數(shù)據(jù)儲藏庫370及375通訊。
數(shù)據(jù)同步應用程序330可攔截通過網(wǎng)絡210從創(chuàng)建者系統(tǒng)220發(fā)送的同步請求。在一個實施例中,這些同步請求遵循遠程協(xié)議通過HTTP作為XML發(fā)送。當數(shù)據(jù)同步應用程序330接收到來自創(chuàng)建者系統(tǒng)220的同步請求時,它引導接收自創(chuàng)建者系統(tǒng)220的應用程序數(shù)據(jù)到作為應用程序數(shù)據(jù)的運行時間表示的主數(shù)據(jù)儲藏庫340去。數(shù)據(jù)同步應用程序330也引導所接收的應用程序數(shù)據(jù)到作為應用程序數(shù)據(jù)的持久性存儲位置的數(shù)據(jù)庫380去。在一個實施例中,數(shù)據(jù)儲藏庫340以企業(yè)Java Beans(EJB)存儲到來的應用程序數(shù)據(jù)。在另一個實施例中,數(shù)據(jù)庫380是關系數(shù)據(jù)管理系統(tǒng)。
在一個實施例中,數(shù)據(jù)同步應用程序330包括一組JSP,它們能夠報告主數(shù)據(jù)儲藏庫340的內(nèi)容、與主數(shù)據(jù)儲藏庫340成功同步的數(shù)據(jù)儲藏庫和在企業(yè)應用程序320中每個數(shù)據(jù)儲藏庫的內(nèi)容。
圖3的服務數(shù)據(jù)儲藏庫中的每個都包含了存儲在主數(shù)據(jù)儲藏庫340中的應用程序數(shù)據(jù)的子集。服務360和365使用服務數(shù)據(jù)儲藏庫中的數(shù)據(jù)來執(zhí)行商業(yè)任務。例如,規(guī)則服務可使用數(shù)據(jù)來評定顧客是否適合特定的顧客區(qū)段(segment)。因為圖3的服務數(shù)據(jù)儲藏庫只維護在主數(shù)據(jù)儲藏庫340中數(shù)據(jù)的子集,每個服務能夠解析服務所需要的應用程序數(shù)據(jù)的一個小的特定集合,而不需要維護在主數(shù)據(jù)儲藏庫340中維護的所有應用程序數(shù)據(jù)的副本。
每次主數(shù)據(jù)儲藏庫340同步時,它通知數(shù)據(jù)儲藏庫370和375。這些數(shù)據(jù)儲藏庫于是將這些數(shù)據(jù)子集與主數(shù)據(jù)儲藏庫中的數(shù)據(jù)進行同步。在一個實施例中,應用程序數(shù)據(jù)遵循二進制協(xié)議在企業(yè)應用程序320的組件之間通訊。運行在服務器310上的多個企業(yè)應用程序(未顯示)也可使用運行在每個企業(yè)應用程序中的獨立數(shù)據(jù)同步應用程序進行同步。代理數(shù)據(jù)儲藏庫可用來輔助這種同步。
在某些情況下,主數(shù)據(jù)儲藏庫340不直接將數(shù)據(jù)與數(shù)據(jù)儲藏庫同步。而是,使用多個數(shù)據(jù)儲藏庫來形成通知鏈。參見圖3,數(shù)據(jù)儲藏庫375和377建立了通知鏈。當數(shù)據(jù)儲藏庫375接收到來自主數(shù)據(jù)儲藏庫340的更新后的應用程序數(shù)據(jù)時,它通知數(shù)據(jù)儲藏庫377。數(shù)據(jù)儲藏庫377于是可與數(shù)據(jù)儲藏庫375所接收的應用程序數(shù)據(jù)進行同步。因此,儲藏庫375和377都可以不需要在主數(shù)據(jù)儲藏庫340發(fā)送更新后的應用程序數(shù)據(jù)到這些儲藏庫的條件下進行同步。
圖4是展示了如本發(fā)明的實施例所述的用于同步數(shù)據(jù)的過程的流程圖。當應用程序數(shù)據(jù)創(chuàng)建者系統(tǒng)220與圖2的任何服務器進行同步時,可通過從創(chuàng)建者系統(tǒng)220發(fā)送同步請求到待同步服務器的URL來發(fā)起同步過程,在那里請求會被數(shù)據(jù)同步應用程序330攔截。在各種實施例中,創(chuàng)建者110可使用控制中心120的圖形界面或Java命令行發(fā)起同步過程。
在本發(fā)明的各種實施例中,可使用不同的同步模式。在從客戶刷新模式中,同步所有用于特定應用程序的應用程序數(shù)據(jù)。使用這種模式,所有數(shù)據(jù)從數(shù)據(jù)儲藏庫中清除,然后將所有相關應用程序數(shù)據(jù)文件從創(chuàng)建者的本地文件系統(tǒng)發(fā)送到數(shù)據(jù)同步網(wǎng)站應用程序。這種模式有助于將內(nèi)存中數(shù)據(jù)與持久性數(shù)據(jù)進行同步,或者從同步錯誤中恢復。在非客戶(one-way-from-client)模式中,只更新那些已被刪除、更新或者在創(chuàng)建者的本地文件上創(chuàng)建的應用程序數(shù)據(jù)文件。于是,將在創(chuàng)建者系統(tǒng)和待同步服務器之間的數(shù)據(jù)傳輸量減到最少。
當在步驟410中的同步過程初始化時,待同步應用程序數(shù)據(jù)將通過網(wǎng)絡210從創(chuàng)建者系統(tǒng)220發(fā)送到服務器310(步驟420)。在一個實施例中,應用程序數(shù)據(jù)使用POST命令通過HTTP作為XML文件發(fā)送。應用程序數(shù)據(jù)由數(shù)據(jù)同步應用程序330接收。數(shù)據(jù)同步應用程序330于是將數(shù)據(jù)庫380和主數(shù)據(jù)儲藏庫340與新接收的應用程序數(shù)據(jù)進行同步(步驟430)。作為步驟430的結(jié)果,數(shù)據(jù)庫380包含以用于持久性存儲的數(shù)據(jù)庫格式來存儲的更新后的應用程序數(shù)據(jù),并且主數(shù)據(jù)儲藏庫340包含以EJB運行時間格式存儲的更新后的應用程序數(shù)據(jù)。
如此前所述,圖3的各種應用程序和服務會依賴于駐留在服務數(shù)據(jù)儲藏庫中的應用程序數(shù)據(jù)。從而,每個服務數(shù)據(jù)儲藏庫可訂閱接收更新后的應用程序數(shù)據(jù)。為了更新在數(shù)據(jù)儲藏庫370和375中的應用程序數(shù)據(jù),主數(shù)據(jù)儲藏庫340通知服務數(shù)據(jù)儲藏庫370和375中的每一個以這些儲藏庫已訂閱接收的任何更新后的應用程序數(shù)據(jù)(步驟440)。如前所述,服務數(shù)據(jù)儲藏庫377通過通知鏈接收它的通知。主數(shù)據(jù)儲藏庫340也通知運行在其他服務器上的企業(yè)應用程序所用的代理數(shù)據(jù)儲藏庫(未顯示),如此后進一步描述。在服務數(shù)據(jù)儲藏庫已被通知更新后的應用程序數(shù)據(jù)之后,每個儲藏庫將自己與它所訂閱的主數(shù)據(jù)儲藏庫中的特定應用程序數(shù)據(jù)進行同步(步驟450)。代理數(shù)據(jù)儲藏庫也轉(zhuǎn)發(fā)在步驟440中發(fā)送的任何通知到它們的遠程數(shù)據(jù)同步網(wǎng)站應用程序,以同步在服務器310上的其他企業(yè)應用程序(未顯示)中運行的儲藏庫或其他遠程服務器(步驟460),如此后進一步描述。
服務數(shù)據(jù)儲藏庫370和/或375也可周期性詢問主數(shù)據(jù)儲藏庫340來檢查應用程序數(shù)據(jù)是否已更新。如果檢測到更新后的數(shù)據(jù),則在主數(shù)據(jù)儲藏庫340中維護的應用程序數(shù)據(jù)可與服務數(shù)據(jù)儲藏庫370和/或375同步。
主數(shù)據(jù)儲藏庫340維護著描述每次更新的日志和包括了對哪個數(shù)據(jù)儲藏庫已成功更新和哪個沒有的描述。數(shù)據(jù)同步應用程序330可通過HTTP或Java命令解釋器返回狀態(tài)消息到創(chuàng)建者系統(tǒng)220來標識哪個應用程序數(shù)據(jù)文件已成功同步。圖3的每個數(shù)據(jù)儲藏庫也可維護描述當前內(nèi)容的日志。
如圖3中所示,應用程序數(shù)據(jù)可在創(chuàng)建者系統(tǒng)和運行在單個服務器上的企業(yè)應用程序之間同步。如本發(fā)明的各種實施例所述,多個服務器也可通過在圖4的步驟410中發(fā)起的單個同步過程同步。通過使用在圖5中闡述的附加部件,可輔助這種多個服務器的同步。
圖5展示了如本發(fā)明的實施例所述的運行著企業(yè)應用程序的多個服務器的方框圖,該企業(yè)應用程序帶有通過使用代理數(shù)據(jù)儲藏庫可被同步的數(shù)據(jù)。企業(yè)應用程序620和660分別運行在服務器610和650上。運行在企業(yè)應用程序620中的主數(shù)據(jù)儲藏庫630可被數(shù)據(jù)同步應用程序(未顯示)同步,如此前所述,該數(shù)據(jù)同步應用程序與創(chuàng)建者系統(tǒng)(未顯示)通訊。主數(shù)據(jù)儲藏庫630與也在企業(yè)應用程序620中運行的代理數(shù)據(jù)儲藏庫640通訊。代理數(shù)據(jù)儲藏庫640可訂閱,以接收在主數(shù)據(jù)儲藏庫630中存儲的更新后的應用程序數(shù)據(jù)。
數(shù)據(jù)同步網(wǎng)站應用程序680是運行在遠程服務器650上的數(shù)據(jù)同步應用程序的實例。但是,數(shù)據(jù)同步應用程序680并非直接從創(chuàng)建者系統(tǒng)220(類似于圖3的數(shù)據(jù)同步應用程序330)接收更新,而是接收從代理數(shù)據(jù)儲藏庫640發(fā)送的更新。遠程主數(shù)據(jù)儲藏庫670是用于企業(yè)應用程序660的主數(shù)據(jù)儲藏庫,該企業(yè)應用程序依照由數(shù)據(jù)同步應用程序680接收的應用程序數(shù)據(jù)進行更新。遠程主數(shù)據(jù)儲藏庫670可傳遞更新后的應用程序數(shù)據(jù)到在如此前討論的在企業(yè)應用程序660中運行的其他代理和/或服務數(shù)據(jù)儲藏庫(未顯示)。應該理解,在圖5的服務器上可出現(xiàn)附加部件(未顯示),比如在圖3和/或圖6的服務器中闡述的一個或多個部件。
在操作中,主數(shù)據(jù)儲藏庫630從與諸如圖2的創(chuàng)建者系統(tǒng)220一樣的創(chuàng)建者系統(tǒng)(未顯示)通訊的數(shù)據(jù)同步網(wǎng)站應用程序接收更新后的應用程序數(shù)據(jù)。代理數(shù)據(jù)儲藏庫640訂閱,以接收來自于主數(shù)據(jù)儲藏庫640的更新后的應用程序數(shù)據(jù)。因此,主數(shù)據(jù)儲藏庫630接收的更新后的應用程序數(shù)據(jù)被傳遞到代理數(shù)據(jù)儲藏庫640。代理數(shù)據(jù)儲藏庫640于是從服務器610傳遞應用程序數(shù)據(jù)到運行在服務器650上的數(shù)據(jù)同步應用程序。在一個實施例中,應用程序數(shù)據(jù)由代理數(shù)據(jù)儲藏庫640遵循二進制協(xié)議接收。從而,在以XML通過HTTP傳遞應用程序數(shù)據(jù)到在遠程服務器650中的數(shù)據(jù)同步應用程序680之前,代理數(shù)據(jù)儲藏庫640將應用程序數(shù)據(jù)編制成XML格式。
當數(shù)據(jù)同步應用程序680接收更新后的應用程序數(shù)據(jù)時,數(shù)據(jù)同步應用程序650開始用更新后的應用程序數(shù)據(jù)更新遠程主數(shù)據(jù)儲藏庫670。如圖3中所示的持久性存儲數(shù)據(jù)庫(未在圖5中顯示)也被同步,并且更新后的應用程序數(shù)據(jù)則轉(zhuǎn)發(fā)到企業(yè)應用程序660的所有數(shù)據(jù)儲藏庫(未顯示),該數(shù)據(jù)儲藏庫訂閱以接收更新后的應用程序數(shù)據(jù)。
于是,通過訂閱代理數(shù)據(jù)儲藏庫來接收來自于主數(shù)據(jù)儲藏庫的更新,運行在遠程服務器上的企業(yè)應用程序中的應用程序數(shù)據(jù)可用由主數(shù)據(jù)儲藏庫接收的應用程序數(shù)據(jù)來同步。也可用代理跨越運行在相同服務器上的不同企業(yè)應用程序來同步數(shù)據(jù)。此外,通過經(jīng)由代理鏈接遠程服務器到附加遠程服務器,可同步多個服務器的鏈。這些準則也可進一步用于對跨越如圖6中闡述的服務器群集的應用程序數(shù)據(jù)進行同步。
圖6展示了如本發(fā)明的實施例所述的一群服務器的方框圖,該服務器運行著具有可被管理服務器同步的數(shù)據(jù)的企業(yè)應用程序。在管理服務器710上的企業(yè)應用程序720的數(shù)據(jù)同步網(wǎng)站應用程序730和主數(shù)據(jù)儲藏庫740可與群集790的被管理服務器760通訊。如前所述,在遠程服務器760上運行的企業(yè)應用程序770的數(shù)據(jù)儲藏庫(未顯示)中駐留的應用程序數(shù)據(jù)可與在主數(shù)據(jù)儲藏庫740中存儲的更新后的應用程序數(shù)據(jù)進行同步。主數(shù)據(jù)儲藏庫740可傳遞更新后的應用程序數(shù)據(jù)到代理數(shù)據(jù)儲藏庫(未顯示),代理數(shù)據(jù)儲藏庫于是傳遞數(shù)據(jù)到在企業(yè)應用程序770上運行的數(shù)據(jù)同步網(wǎng)站應用程序(未顯示)。因此,多個服務器760可被從創(chuàng)建者系統(tǒng)(未顯示)接收更新后的應用程序數(shù)據(jù)的單個管理服務器710同步。應該理解,在圖6的服務器上可出現(xiàn)附加部件(未顯示),比如在圖3和/或圖5的服務器中闡述的一個或多個部件。
如果可行,本發(fā)明可使用硬件、軟件或硬件和軟件的組合來實現(xiàn)。符合本發(fā)明的軟件,比如程序代碼和/或數(shù)據(jù),可存儲在一個或多個計算機可讀介質(zhì)上。在不脫離本發(fā)明的精神的情況下,如果也可行,此處闡述的各種硬件組件和/或軟件組件可組合成包括軟件、硬件或兩者的復合組件。類似地,在不脫離本發(fā)明的精神的情況下,如果可行,此處闡述的各種硬件組件和/或軟件組件可分解成包括軟件、硬件或兩者的子組件。此外,如果可行,應該想到,軟件組件可實現(xiàn)為硬件組件,和反之亦然。而且,如果可行,這里闡述的各種步驟可組合成復合步驟和/或分解成子步驟。也應該想到,這里闡述的軟件組件可使用一個或多個一般用途或特定用途的計算機和/或計算機系統(tǒng)、網(wǎng)絡和/或其他來實現(xiàn)。
上述公開內(nèi)容不是要將本發(fā)明局限在所公開的特定應用程序領域的精確形式里。應該想到,根據(jù)本公開內(nèi)容的本發(fā)明的各種替代實施例和/或修改都是可能的。
權(quán)利要求
1.一種用于在服務器上同步應用程序數(shù)據(jù)的方法,包括接收待同步的應用程序數(shù)據(jù);將數(shù)據(jù)庫與所述應用程序數(shù)據(jù)進行同步;和將第一數(shù)據(jù)儲藏庫與所述應用程序數(shù)據(jù)同步。
2.如權(quán)利要求1所述的方法,其中所述第一數(shù)據(jù)儲藏庫是服務數(shù)據(jù)儲藏庫。
3.如權(quán)利要求1所述的方法,進一步包括以所述應用程序數(shù)據(jù)的至少一個子集來通知第二數(shù)據(jù)儲藏庫;和將所述第二數(shù)據(jù)儲藏庫與所述應用程序數(shù)據(jù)的所述子集同步。
4.如權(quán)利要求3所述的方法,其中所述第二數(shù)據(jù)儲藏庫是代理數(shù)據(jù)儲藏庫。
5.如權(quán)利要求3所述的方法,其中所述第二數(shù)據(jù)儲藏庫從所述第一數(shù)據(jù)儲藏庫被訂閱,以接收所述應用程序數(shù)據(jù)的所述子集。
6.如權(quán)利要求1所述的方法,其中所述第一數(shù)據(jù)儲藏庫包括所述應用程序數(shù)據(jù)的運行時間表示。
7.如權(quán)利要求1所述的方法,其中所述數(shù)據(jù)庫提供所述應用程序數(shù)據(jù)的持久性存儲。
8.如權(quán)利要求1所述的方法,其中所述同步步驟由J2EE企業(yè)應用程序執(zhí)行。
9.如權(quán)利要求1所述的方法,其中所述應用程序數(shù)據(jù)由在企業(yè)應用程序中運行的服務使用。
10.如權(quán)利要求9所述的方法,其中所述服務由網(wǎng)站應用程序使用。
11.如權(quán)利要求1所述的方法,其中所述應用程序數(shù)據(jù)定義了網(wǎng)站應用程序的業(yè)務邏輯。
12.如權(quán)利要求1所述的方法,其中所述應用程序數(shù)據(jù)包括至少一個XML文件。
13.如權(quán)利要求1所述的方法,其中所述應用程序數(shù)據(jù)包括適合于通過HTTP傳輸?shù)膽贸绦驍?shù)據(jù)文件。
14.如權(quán)利要求1所述的方法,其中所述方法作為準備將所述應用程序數(shù)據(jù)部署到產(chǎn)品服務器的測試過程的一部分執(zhí)行。
15.一種用于通過網(wǎng)絡部署應用程序數(shù)據(jù)到遠程網(wǎng)站服務器的方法,包括創(chuàng)建應用程序數(shù)據(jù);提交所述應用程序數(shù)據(jù)到源碼控制系統(tǒng);確定接收應用程序數(shù)據(jù)的服務器;和發(fā)送應用程序數(shù)據(jù)到所述服務器,所述服務器能夠?qū)⑺龇掌鞯臄?shù)據(jù)儲藏庫與所述應用程序數(shù)據(jù)進行同步。
16.如權(quán)利要求15所述的方法,其中所述服務器由與所述服務器所關聯(lián)的URL來標識。
17.如權(quán)利要求15所述的方法,其中所述應用程序數(shù)據(jù)包括至少一個XML文件。
18.如權(quán)利要求15所述的方法,其中所述應用程序數(shù)據(jù)包括適合于通過HTTP傳輸?shù)膽贸绦驍?shù)據(jù)文件。
19.如權(quán)利要求15所述的方法,其中所述方法作為準備將所述應用程序數(shù)據(jù)部署到產(chǎn)品服務器的測試過程的一部分執(zhí)行。
20.一種用于在企業(yè)應用程序之間同步應用程序數(shù)據(jù)的方法,包括接收應用程序數(shù)據(jù);以所述應用程序數(shù)據(jù)通知代理數(shù)據(jù)儲藏庫,所述代理數(shù)據(jù)儲藏庫運行在第一企業(yè)應用程序中;發(fā)送所述應用程序數(shù)據(jù)到所述代理數(shù)據(jù)儲藏庫;和轉(zhuǎn)發(fā)來自于代理數(shù)據(jù)儲藏庫的所述應用程序數(shù)據(jù)到第二企業(yè)應用程序。
21.如權(quán)利要求20所述的方法,其中所述第一和第二企業(yè)應用程序駐留在單個服務器中。
22.如權(quán)利要求20所述的方法,其中所述第一和第二企業(yè)應用程序駐留在分離的服務器中。
23.如權(quán)利要求20所述的方法,其中所述應用程序數(shù)據(jù)包括至少一個XML文件。
24.如權(quán)利要求20所述的方法,其中所述應用程序數(shù)據(jù)包括適合于通過HTTP傳輸?shù)膽贸绦驍?shù)據(jù)文件。
25.如權(quán)利要求20所述的方法,其中所述方法作為準備將所述應用程序數(shù)據(jù)部署到產(chǎn)品服務器的測試過程的一部分執(zhí)行。
26.一種用于在企業(yè)應用程序的數(shù)據(jù)儲藏庫中同步數(shù)據(jù)的方法,包括詢問主數(shù)據(jù)儲藏庫;確定在已訂閱數(shù)據(jù)儲藏庫中存儲的應用程序數(shù)據(jù)是否已與所述主數(shù)據(jù)儲藏庫同步;和響應于所述確定步驟,將所述已訂閱數(shù)據(jù)儲藏庫與所述主數(shù)據(jù)儲藏庫進行同步。
27.如權(quán)利要求26所述的方法,其中所述應用程序數(shù)據(jù)遵循EJB運行時間格式。
28.如權(quán)利要求26所述的方法,其中所述方法作為準備將所述應用程序數(shù)據(jù)部署到產(chǎn)品服務器的測試過程的一部分執(zhí)行。
29.一種用于同步應用程序數(shù)據(jù)的系統(tǒng),包括網(wǎng)站服務器;在所述網(wǎng)站服務器上運行的數(shù)據(jù)同步應用程序,所述數(shù)據(jù)同步應用程序能夠接收通過互聯(lián)網(wǎng)連接發(fā)送的應用程序數(shù)據(jù);和與所述數(shù)據(jù)同步應用程序通訊的數(shù)據(jù)儲藏庫,所述數(shù)據(jù)儲藏庫適合于維護所述應用程序數(shù)據(jù)的運行時間表示,所述數(shù)據(jù)同步應用程序能夠?qū)⑺鲆呀邮諔贸绦驍?shù)據(jù)與所述數(shù)據(jù)儲藏庫進行同步。
30.如權(quán)利要求29所述的系統(tǒng),其中所述數(shù)據(jù)同步應用程序運行在所述服務器的企業(yè)應用程序中。
31.如權(quán)利要求30所述的系統(tǒng),其中所述企業(yè)應用程序是J2EE企業(yè)應用程序。
32.如權(quán)利要求29所述的系統(tǒng),其中所述服務器是開發(fā)服務器。
33.如權(quán)利要求29所述的系統(tǒng),其中所述服務器是測試服務器。
34.如權(quán)利要求29所述的系統(tǒng),其中所述服務器是產(chǎn)品服務器。
35.如權(quán)利要求29所述的方法,其中所述應用程序數(shù)據(jù)包括至少一個XML文件。
36.如權(quán)利要求29所述的方法,其中所述應用程序數(shù)據(jù)包括適合于通過HTTP傳輸?shù)膽贸绦驍?shù)據(jù)文件。
37.一種用于測試應用程序數(shù)據(jù)的系統(tǒng),包括多個網(wǎng)站服務器;通過互聯(lián)網(wǎng)與所述服務器通訊的創(chuàng)建者系統(tǒng);在至少一個所述服務器上運行的數(shù)據(jù)同步應用程序,所述數(shù)據(jù)同步應用程序能夠?qū)乃鰟?chuàng)建者系統(tǒng)接收的應用程序數(shù)據(jù)與所述服務器的應用程序數(shù)據(jù)進行同步。
38.如權(quán)利要求37所述的方法,其中所述應用程序數(shù)據(jù)包括至少一個XML文件。
39.如權(quán)利要求37所述的方法,其中所述應用程序數(shù)據(jù)包括適合于通過HTTP傳輸?shù)膽贸绦驍?shù)據(jù)文件。
40.一種計算機可讀介質(zhì),包括存儲介質(zhì);和在所述存儲介質(zhì)上實現(xiàn)的計算機可讀代碼,所述計算機可讀代碼用于給計算機編程來執(zhí)行用于在服務器上同步應用程序數(shù)據(jù)的方法,該方法包括接收待同步的應用程序數(shù)據(jù);將數(shù)據(jù)庫與所述應用程序數(shù)據(jù)進行同步;和將第一數(shù)據(jù)儲藏庫與所述應用程序數(shù)據(jù)進行同步。
41.如權(quán)利要求40所述的計算機可讀介質(zhì),其中所述應用程序數(shù)據(jù)包括至少一個XML文件。
42.如權(quán)利要求40所述的計算機可讀介質(zhì),其中所述應用程序數(shù)據(jù)包括適合于通過HTTP傳輸?shù)膽贸绦驍?shù)據(jù)文件。
43.一種用于將應用程序數(shù)據(jù)與服務器群同步的方法,包括將應用程序數(shù)據(jù)通知代理數(shù)據(jù)儲藏庫,所述代理數(shù)據(jù)儲藏庫運行在管理服務器上的企業(yè)應用程序中;發(fā)送所述應用程序數(shù)據(jù)到所述代理數(shù)據(jù)儲藏庫;轉(zhuǎn)發(fā)來自于所述代理數(shù)據(jù)儲藏庫的所述應用程序數(shù)據(jù)到在服務器群的服務器上的企業(yè)應用程序;將在所述群集服務器上的所述企業(yè)應用程序與所述應用程序數(shù)據(jù)進行同步;和在所述服務器群中為所有現(xiàn)存的服務器執(zhí)行所述轉(zhuǎn)發(fā)和同步步驟。
44.如權(quán)利要求43所述的方法,其中訂閱所述代理數(shù)據(jù)儲藏庫,以接收所述應用程序數(shù)據(jù)。
45.如權(quán)利要求43所述的方法,其中所述應用程序數(shù)據(jù)包括至少一個XML文件。
46.如權(quán)利要求43所述的方法,其中所述應用程序數(shù)據(jù)包括適合于通過HTTP傳輸?shù)膽贸绦驍?shù)據(jù)文件。
47.如權(quán)利要求43所述的方法,其中所述方法作為準備將所述應用程序數(shù)據(jù)部署到產(chǎn)品服務器的測試過程的一部分執(zhí)行。
全文摘要
在一個或多個服務器(230、240、250)上運行的企業(yè)應用程序(320)所用的應用程序數(shù)據(jù)可與從其他地方部署的應用程序數(shù)據(jù)進行同步。應用程序數(shù)據(jù)可通過HTTP以XML文件傳輸來使與網(wǎng)站可用的服務器的同步更容易。多個服務數(shù)據(jù)儲藏庫(370、375)可與在企業(yè)應用程序中運行的主數(shù)據(jù)儲藏庫(340)中駐留的應用程序數(shù)據(jù)進行同步。通過使用代理數(shù)據(jù)儲藏庫也提供了服務器到服務器的數(shù)據(jù)同步功能。應用程序數(shù)據(jù)文件可從創(chuàng)建者系統(tǒng)(220)部署到遠程服務器。新創(chuàng)建應用程序數(shù)據(jù)文件可使用源碼控制系統(tǒng)在創(chuàng)建者系統(tǒng)(220)中劃分版本,并且與為將應用程序數(shù)據(jù)部署到產(chǎn)品服務器作準備的多階段測試過程一起,由創(chuàng)建者可選擇性地部署到各種服務器去。
文檔編號G06Q10/00GK1647071SQ02824587
公開日2005年7月27日 申請日期2002年10月24日 優(yōu)先權(quán)日2001年10月24日
發(fā)明者丹尼爾·塞爾曼, 羅伯特·伯格曼, 愛德華·K·奧尼爾 申請人:Bea系統(tǒng)公司