運(yùn)行時(shí)定制基礎(chǔ)設(shè)施的制作方法
【專(zhuān)利說(shuō)明】運(yùn)行時(shí)定制基礎(chǔ)設(shè)施
[0001]對(duì)相關(guān)申請(qǐng)的交叉引用
[0002] 本申請(qǐng)要求以下申請(qǐng)的權(quán)益和優(yōu)先權(quán):
[0003] 于2013年9月20日提交且標(biāo)題為"Runtime Customization Infrastructure"的美 國(guó)臨時(shí)申請(qǐng)No · 61/880,767,
[0004] 于2013年11月26日提交且標(biāo)題為"Workbook Composer"的美國(guó)臨時(shí)申請(qǐng)No · 61/ 909,205,
[0005] 于2014年6月 13 日提交且標(biāo)題為 "Runtime Customization Infrastructure" 的美 國(guó)申請(qǐng)No .14/304,356,及
[0006] 于2014年6月13日提交且標(biāo)題為"Workbook Composer"的美國(guó)申請(qǐng)No · 14/304, 393,
[0007] 這些申請(qǐng)的公開(kāi)內(nèi)容通過(guò)引用被結(jié)合于此,用于所有目的。
【背景技術(shù)】
[0008] 應(yīng)用是指在執(zhí)行時(shí)執(zhí)行特定期望任務(wù)的軟件程序。一般而言,若干應(yīng)用在包含操 作系統(tǒng)、虛擬機(jī)(例如,支持Java?編程語(yǔ)言)、設(shè)備驅(qū)動(dòng)器等當(dāng)中一個(gè)或多個(gè)的運(yùn)行時(shí)環(huán)境 中執(zhí)行,如在相關(guān)領(lǐng)域中眾所周知的。
[0009] 開(kāi)發(fā)人員常常使用應(yīng)用開(kāi)發(fā)框架(ADF)(它們自己就是應(yīng)用)用于實(shí)現(xiàn)/開(kāi)發(fā)期望 的應(yīng)用。ADF提供可以直接/間接地在應(yīng)用的開(kāi)發(fā)中使用的預(yù)定義的代碼/數(shù)據(jù)模塊集合。 ADF還可以提供工具,諸如IDE(集成開(kāi)發(fā)環(huán)境)、代碼生成器、調(diào)試器等等,這便于開(kāi)發(fā)人員 以更快/更簡(jiǎn)單的方式編碼/實(shí)現(xiàn)應(yīng)用的期望邏輯。
[0010] -般而言,ADF通過(guò)提供應(yīng)用開(kāi)發(fā)人員可用來(lái)定義用戶(hù)界面和應(yīng)用邏輯的可重用 的部件和集成開(kāi)發(fā)環(huán)境來(lái)簡(jiǎn)化應(yīng)用的開(kāi)發(fā),例如,通過(guò)選擇執(zhí)行期望任務(wù)的部件并定義被 選部件的外觀、行為和交互。一些ADF是基于模型-視圖-控制器設(shè)計(jì)模式,其促進(jìn)松散耦合 及更容易的應(yīng)用開(kāi)發(fā)和維護(hù)。Oracle應(yīng)用開(kāi)發(fā)框架是利用這種設(shè)計(jì)模式的ADF的一個(gè)例子。
[0011] Oracle ADF包括基于標(biāo)準(zhǔn)的Java Server Faces(JSF)部件庫(kù),具有內(nèi)置的HTML5 和Ajax功能。利用這些部件,web部署的用戶(hù)界面可以利用先前為胖客戶(hù)端應(yīng)用預(yù)留的功能 和交互級(jí)別來(lái)開(kāi)發(fā)。部件在容易使用的部件集合中提供數(shù)據(jù)交互、數(shù)據(jù)可視化和封裝的瀏 覽器側(cè)操作,這使得富客戶(hù)端應(yīng)用的開(kāi)發(fā)比以前更容易。Oracle ADF還提供了數(shù)據(jù)綁定框 架,它通過(guò)IDE中簡(jiǎn)單的拖放操作簡(jiǎn)化了到業(yè)務(wù)服務(wù)的綁定。這是在保持企業(yè)服務(wù)與消耗接 口的獨(dú)立性的同時(shí)進(jìn)行的。利用這種框架,UI開(kāi)發(fā)人員與業(yè)務(wù)服務(wù)層的底層實(shí)現(xiàn)絕緣。這使 得構(gòu)建UI的過(guò)程真正與業(yè)務(wù)服務(wù)層的實(shí)現(xiàn)脫鉤,從而更好地定位要在面向服務(wù)的體系架構(gòu) 中實(shí)現(xiàn)的應(yīng)用。
[0012] 因此,所期望的是解決與利用應(yīng)用開(kāi)發(fā)框架構(gòu)建應(yīng)用用戶(hù)界面相關(guān)的問(wèn)題,其中 一些可在本文中討論。此外,所期望的是減少與利用應(yīng)用開(kāi)發(fā)框架構(gòu)建應(yīng)用用戶(hù)界面相關(guān) 的缺點(diǎn),其中一些可在本文中討論。
【發(fā)明內(nèi)容】
[0013] 為了至少提供對(duì)主題的基本理解,本公開(kāi)內(nèi)容的以下部分給出了對(duì)在本公開(kāi)內(nèi)容 中發(fā)現(xiàn)的一個(gè)或多個(gè)創(chuàng)新、實(shí)施例和/或例子的簡(jiǎn)化概述。本概述不是要提供對(duì)任何特定實(shí) 施例或例子的廣泛綜述。此外,本概述不是要識(shí)別實(shí)施例或例子的關(guān)鍵/重要元素或者要描 繪本公開(kāi)內(nèi)容的主題的范圍。因此,本概述的一個(gè)目的可以是以簡(jiǎn)化的形式給出在本公開(kāi) 內(nèi)容中發(fā)現(xiàn)的一些創(chuàng)新、實(shí)施例和/或例子,作為隨后給出的更詳細(xì)描述的前言。
[0014] 在各種實(shí)施例中,公開(kāi)了允許開(kāi)發(fā)人員對(duì)利用桌面集成框架開(kāi)發(fā)的文檔的運(yùn)行時(shí) 定制的方法、系統(tǒng)和非暫態(tài)計(jì)算機(jī)可讀介質(zhì)。工作簿元數(shù)據(jù)是描述給定的工作簿如何與特 定的web應(yīng)用集成的一組信息。當(dāng)工作簿被發(fā)布時(shí),元數(shù)據(jù)可被寫(xiě)入所發(fā)布的工作簿的本地 高速緩存以及工作簿定義文件中。元數(shù)據(jù)管理可以被元數(shù)據(jù)服務(wù)處理,從而允許所發(fā)布的 工作簿的更新和定制獨(dú)立于所發(fā)布的工作簿中的本地高速緩存和工作簿定義文件。
[0015] 在各種實(shí)施例中,用于創(chuàng)建為基于web的應(yīng)用充當(dāng)用戶(hù)界面的桌面應(yīng)用的文檔的 方法包括從第一應(yīng)用接收識(shí)別文檔的信息,其中所述文檔的內(nèi)容是以與第二應(yīng)用關(guān)聯(lián)的原 生應(yīng)用格式創(chuàng)建的。確定與用于所述文檔的元數(shù)據(jù)關(guān)聯(lián)的規(guī)則集,元數(shù)據(jù)提供所述文檔的 內(nèi)容的一部分與和由與第一應(yīng)用通信的一個(gè)或多個(gè)基于web的應(yīng)用提供的數(shù)據(jù)模型關(guān)聯(lián)的 數(shù)據(jù)之間的鏈接。基于所確定的配置要應(yīng)用到用于所述文檔的元數(shù)據(jù)的定制的規(guī)則集,生 成用于所述文檔的元數(shù)據(jù)。用于所述文檔的元數(shù)據(jù)被傳送到第二應(yīng)用,使得該文檔充當(dāng)用 于一個(gè)或多個(gè)基于web的應(yīng)用的用戶(hù)界面。
[0016] 確定與用于所述文檔的元數(shù)據(jù)關(guān)聯(lián)的規(guī)則集可以包括確定規(guī)定要使用的用于該 文檔的元數(shù)據(jù)的版本的至少一個(gè)規(guī)則。確定與用于所述文檔的元數(shù)據(jù)關(guān)聯(lián)的規(guī)則集可以包 括基于與該文檔的用戶(hù)關(guān)聯(lián)的角色確定規(guī)定要使用的用于該文檔的元數(shù)據(jù)的至少一個(gè)規(guī) 貝1J。確定與用于所述文檔的元數(shù)據(jù)關(guān)聯(lián)的規(guī)則集可以包括基于時(shí)間或日期信息確定規(guī)定要 使用的用于該文檔的元數(shù)據(jù)的至少一個(gè)規(guī)則。確定與用于所述文檔的元數(shù)據(jù)關(guān)聯(lián)的規(guī)則集 可以包括基于組織的部門(mén)確定規(guī)定要使用的用于該文檔的元數(shù)據(jù)的至少一個(gè)規(guī)則。確定與 用于所述文檔的元數(shù)據(jù)關(guān)聯(lián)的規(guī)則集可以包括從元數(shù)據(jù)管理服務(wù)器檢索一個(gè)或多個(gè)規(guī)則。
[0017] 在一些實(shí)施例中,基于所確定的配置要應(yīng)用到用于所述文檔的元數(shù)據(jù)的定制的規(guī) 則集生成用于該文檔的元數(shù)據(jù)可以包括對(duì)用于該文檔的基本元數(shù)據(jù)應(yīng)用多個(gè)元數(shù)據(jù)定制。
[0018] 在一種實(shí)施例中,提供了一種存儲(chǔ)計(jì)算機(jī)可執(zhí)行代碼的非暫態(tài)計(jì)算機(jī)可讀介質(zhì), 所述代碼用于創(chuàng)建為基于web的應(yīng)用充當(dāng)用戶(hù)界面的桌面應(yīng)用的文檔。該非暫態(tài)計(jì)算機(jī)可 讀介質(zhì)包括用于從第一應(yīng)用接收識(shí)別其內(nèi)容以與第二應(yīng)用關(guān)聯(lián)的原生應(yīng)用格式創(chuàng)建的文 檔的信息的代碼,用于確定與用于所述文檔的元數(shù)據(jù)關(guān)聯(lián)的規(guī)則集的代碼,元數(shù)據(jù)提供所 述文檔的內(nèi)容的一部分與和由與第一應(yīng)用通信的一個(gè)或多個(gè)基于web的應(yīng)用提供的數(shù)據(jù)模 型關(guān)聯(lián)的數(shù)據(jù)之間的鏈接,用于基于所確定的配置要應(yīng)用到用于所述文檔的元數(shù)據(jù)的定制 的規(guī)則集生成用于所述文檔的元數(shù)據(jù)的代碼,以及用于將用于所述文檔的元數(shù)據(jù)傳送到第 二應(yīng)用使得該文檔充當(dāng)用于一個(gè)或多個(gè)基于web的應(yīng)用的用戶(hù)界面的代碼。
[0019] 在一種實(shí)施例中,提供了用于創(chuàng)建為基于web的應(yīng)用充當(dāng)用戶(hù)界面的桌面應(yīng)用的 文檔的系統(tǒng)。該系統(tǒng)包括處理器和存儲(chǔ)指令集的存儲(chǔ)器,指令集當(dāng)被處理器執(zhí)行時(shí),配置處 理器從第一應(yīng)用接收識(shí)別其內(nèi)容以與第二應(yīng)用關(guān)聯(lián)的原生應(yīng)用格式創(chuàng)建的文檔的信息,確 定與用于所述文檔的元數(shù)據(jù)關(guān)聯(lián)的規(guī)則集,元數(shù)據(jù)提供所述文檔的內(nèi)容的一部分與和由與 第一應(yīng)用通信的一個(gè)或多個(gè)基于web的應(yīng)用提供的數(shù)據(jù)模型關(guān)聯(lián)的數(shù)據(jù)之間的鏈接,基于 所確定的配置要應(yīng)用到用于所述文檔的元數(shù)據(jù)的定制的規(guī)則集,生成用于所述文檔的元數(shù) 據(jù),以及將用于所述文檔的元數(shù)據(jù)傳送到第二應(yīng)用,使得該文檔充當(dāng)用于一個(gè)或多個(gè)基于 web的應(yīng)用的用戶(hù)界面。
[0020] 通過(guò)參考本公開(kāi)內(nèi)容的剩余部分、任何附圖和權(quán)利要求,除了以上部分,對(duì)本公開(kāi) 內(nèi)容的主題的本質(zhì)和等同物(以及所提供的任何固有的或明確的優(yōu)點(diǎn)和改進(jìn))的進(jìn)一步理 解也應(yīng)當(dāng)被認(rèn)識(shí)到。
【附圖說(shuō)明】
[0021] 為了合理地描述和說(shuō)明在本公開(kāi)內(nèi)容中發(fā)現(xiàn)的那些創(chuàng)新、實(shí)施例和/或例子,可以 參考一個(gè)或多個(gè)附圖。被用來(lái)描述一個(gè)或多個(gè)附圖的附加細(xì)節(jié)或例子不應(yīng)當(dāng)被認(rèn)為是對(duì)在 本公開(kāi)內(nèi)容中給出的任何所要求保護(hù)的發(fā)明、任何目前描述的實(shí)施例和/或例子或者目前 被認(rèn)為是任何創(chuàng)新的最佳模式的限制。
[0022] 圖1是示出在根據(jù)本發(fā)明的一種實(shí)施例中的應(yīng)用開(kāi)發(fā)框架(ADF)的框圖。
[0023]圖2是示出在根據(jù)本發(fā)明的一種實(shí)施例中、用于圖1的ADF的桌面集成框架的框圖。 [0024]圖3是在根據(jù)本發(fā)明的一種實(shí)施例中、用于利用圖2的桌面集成框架設(shè)計(jì)文檔的方 法的流程圖。
[0025] 圖4是在根據(jù)本發(fā)明的一種實(shí)施例中、用于利用圖2的桌面集成框架與文檔交互的 方法的流程圖。
[0026] 圖5是在根據(jù)本發(fā)明的一種實(shí)施例中、其視圖可被底層數(shù)據(jù)模型驅(qū)動(dòng)的文檔部件 的屏幕截圖的說(shuō)明。
[0027] 圖6是在根據(jù)本發(fā)明的一種實(shí)施例中、用于利用圖2的桌面集成框架設(shè)計(jì)部件的模 型驅(qū)動(dòng)方面的方法的流程圖。
[0028]圖7是示出在根據(jù)本發(fā)明的一種實(shí)施例中、提供元數(shù)據(jù)管理的用于圖2的ADF的桌 面集成框架的框圖。
[0029] 圖8是示出在根據(jù)本發(fā)明的一種實(shí)施例中、在圖2的桌面集成框架之間提供元數(shù)據(jù) 管理的交互的框圖。
[0030] 圖9是在根據(jù)本發(fā)明的一種實(shí)施例中、用于利用具有元數(shù)據(jù)管理的圖2的桌面集成 框架運(yùn)行文檔的方法的流程圖。
[0031] 圖10是在根據(jù)本發(fā)明的一種實(shí)施例中、用于定制元數(shù)據(jù)的用戶(hù)界面的屏幕截圖。
[0032] 圖11繪出了用于實(shí)現(xiàn)其中一種實(shí)施例的分布式系統(tǒng)的簡(jiǎn)化圖。
[0033] 圖12示出了本發(fā)明的各種實(shí)施例可以在其中實(shí)現(xiàn)的示例性計(jì)算機(jī)系統(tǒng)。
【具體實(shí)施方式】
[0034] 在下面的描述中,為了解釋而闡述具體的細(xì)節(jié),以便提供對(duì)本發(fā)明的實(shí)施例的透 徹理解。但是,將顯而易見(jiàn)的是,各種實(shí)施例可以在沒(méi)有這些特定細(xì)節(jié)的情況下實(shí)踐。附圖 和描述并不旨在是限制性的。
[0035]
[0036] Java EE是構(gòu)成許多當(dāng)今企業(yè)應(yīng)用的基礎(chǔ)的標(biāo)準(zhǔn)的、健壯的、可擴(kuò)展的和安全的平 臺(tái)。Java EE提供了用于利用Java語(yǔ)言構(gòu)建多層應(yīng)用程序的規(guī)范集。在過(guò)去,在應(yīng)用的健壯 本質(zhì)與實(shí)現(xiàn)它所需的復(fù)雜性之間存在直接的關(guān)聯(lián)。但是,隨著ADF的出現(xiàn),諸如Oracle ADF, 極其豐富的Java EE應(yīng)用的實(shí)現(xiàn)可以通過(guò)遵守標(biāo)準(zhǔn)模式和實(shí)踐以大大減少的工作量來(lái)提 供。
[0037]隨著組織構(gòu)建使用面向服務(wù)的體系架構(gòu)(S0A)原理的復(fù)合應(yīng)用的增加的需求,開(kāi) 發(fā)人員不得不創(chuàng)建極其敏捷的應(yīng)用。在敏捷的應(yīng)用中實(shí)現(xiàn)這些最佳實(shí)踐通常涉及編寫(xiě)顯著 數(shù)量的基礎(chǔ)設(shè)施代碼,從而對(duì)開(kāi)發(fā)人員構(gòu)建其第一個(gè)Java EE應(yīng)用添加了另一個(gè)障礙。除了 提供健壯的、高性能的和可維護(hù)的應(yīng)用-Oracle ADF還提供基礎(chǔ)設(shè)施代碼來(lái)實(shí)現(xiàn)基于敏捷 的S0A的應(yīng)用,由此去除了組織"自己滾(rolling their own)"中所涉及的勞動(dòng)。
[0038] Oracle ADF還通過(guò)Oracle JDeveloper llg開(kāi)發(fā)工具向Java EE開(kāi)發(fā)提供了可視 的和可聲明的方法。Oracle ADF實(shí)現(xiàn)模型-視圖-控制器設(shè)計(jì)模式,并且利用對(duì)諸如對(duì)象/關(guān) 系映射、數(shù)據(jù)持久化、可重用的控制器層、豐富的Web用戶(hù)界面框架、到UI的數(shù)據(jù)綁定、安全 性和定制之類(lèi)的領(lǐng)域的解決方案提供覆蓋這種體系架構(gòu)的所有層的集成解決方案。超出核 心基于Web的MVC方法,ADF還與Oracle S0A和WebCenter Portal框架集成,從而簡(jiǎn)化了完整 的復(fù)合應(yīng)用的創(chuàng)建。
[0039]例如,Oracle ADF通過(guò)將服務(wù)接口耦合到ADF中的內(nèi)置業(yè)務(wù)服務(wù)而使得容易開(kāi)發(fā) 將數(shù)據(jù)作為服務(wù)暴露的敏捷應(yīng)用。業(yè)務(wù)服務(wù)實(shí)現(xiàn)細(xì)節(jié)的這種分離在Oracle ADF中是經(jīng)由元 數(shù)據(jù)執(zhí)行的。這種元數(shù)據(jù)驅(qū)動(dòng)的體系架構(gòu)的使用使得應(yīng)用開(kāi)發(fā)人員能夠?qū)W⒂跇I(yè)務(wù)邏輯和 用戶(hù)體驗(yàn),而不是服務(wù)如何被訪問(wèn)的細(xì)節(jié)。
[0040] Oracle ADF在ADF模型層中的元數(shù)據(jù)中存儲(chǔ)這些服務(wù)的實(shí)現(xiàn)細(xì)節(jié)。這使得開(kāi)發(fā)人 員無(wú)需修改用戶(hù)界面就可以交換服務(wù),從而使得應(yīng)用極其敏捷。此外,創(chuàng)建用戶(hù)界面的開(kāi)發(fā) 人員不需要受業(yè)務(wù)服務(wù)訪問(wèn)細(xì)節(jié)的打擾。相反,開(kāi)發(fā)人員可以專(zhuān)注于開(kāi)發(fā)應(yīng)用接口和交互 邏輯。創(chuàng)建用戶(hù)體驗(yàn)可以像將期望的業(yè)務(wù)服務(wù)拖放到可視化頁(yè)面設(shè)計(jì)器上并指示什么類(lèi)型 的部件應(yīng)當(dāng)代表那個(gè)數(shù)據(jù)一樣簡(jiǎn)單。
[0041 ]圖1是示出在根據(jù)本發(fā)明的一種實(shí)施例中的應(yīng)用開(kāi)發(fā)框架(ADF) 100的框圖。圖1是 可以結(jié)合在本公開(kāi)內(nèi)容中給出的一個(gè)或多個(gè)發(fā)明的各種實(shí)施例或?qū)崿F(xiàn)的系統(tǒng)的簡(jiǎn)化說(shuō)明。 圖1可以?xún)H僅是說(shuō)明本文公開(kāi)的發(fā)明的實(shí)施例或?qū)崿F(xiàn)不應(yīng)當(dāng)限制如在權(quán)利要求中闡述的任 何發(fā)明的范圍。本領(lǐng)域普通技術(shù)人員可以通過(guò)本公開(kāi)內(nèi)容和本文給出的示教認(rèn)識(shí)到作為附 圖中所示的其它實(shí)施例或?qū)崿F(xiàn)的其它變體、修改和/或備選方法。
[0042] 作為一個(gè)例子,ADF 100可以體現(xiàn)為Oracle ADF。因此,ADF100是基于模型-視圖-控制器(MVC)設(shè)計(jì)模式。MVC應(yīng)用被分成:1)處理與數(shù)據(jù)源的交互并且運(yùn)行業(yè)務(wù)邏輯的模型 層,2)處理應(yīng)用用戶(hù)界面的視圖層,和3)管理應(yīng)用流并且充當(dāng)模型和視圖層之間的接口的 控制器。將應(yīng)用分成這三個(gè)層簡(jiǎn)化了部件跨應(yīng)用的維護(hù)和重用。每個(gè)層與其它層的獨(dú)立性 導(dǎo)致松散耦合的、面向