Oracle ADF和Oracle Jet一起工作。 建筑模式
在本文中,我將考慮在Oracle ADF和Oracle Jet的組合之上實(shí)現(xiàn)應(yīng)用程序的各種體系結(jié)構(gòu)模式。 練習(xí)ADF的組織可能會考慮將Oracle Jet合并到現(xiàn)有項(xiàng)目中,以刷新外觀并使其具有現(xiàn)代感和響應(yīng)能力,并以新方式實(shí)施新功能。 它可能會考慮將Oracle Jet用于全新的項(xiàng)目,以及顯然用于與移動設(shè)備的混合應(yīng)用程序開發(fā)相關(guān)的項(xiàng)目。
Oracle Jet與UI有關(guān),僅與客戶端有關(guān)。 因此,無論如何,服務(wù)器端都必須實(shí)現(xiàn)一些東西。 顯然,許多組織將決定使用ADF來重用其在ADF中的知識,經(jīng)驗(yàn),實(shí)施和投資。 這是很合理的。 因此,讓我們看一下在將Oracle Jet與Oracle ADF相結(jié)合時我們有哪些選擇。
第一個,最明顯和最受歡迎的選擇是將Oracle Jet置于ADF BC之上。 因此,Web或混合移動應(yīng)用程序的客戶端是通過Jet實(shí)現(xiàn)的,而服務(wù)器端是作為Rest服務(wù)公開的ADF BC。 借助JDeveloper 12.2.x,您只需單擊幾下鼠標(biāo)便可以將ADF BC作為Rest服務(wù)公開。
這種方法的優(yōu)點(diǎn)是非常簡單的體系結(jié)構(gòu)。 簡單的東西就有機(jī)會工作更長的時間。 另一個非常有價值的好處是,我們將重用我們的資源,我們的知識和ADF經(jīng)驗(yàn),如果正確地實(shí)現(xiàn)了現(xiàn)有的ADF應(yīng)用程序,那么我們將重用業(yè)務(wù)邏輯實(shí)現(xiàn)的最關(guān)鍵部分。
但是,我們必須了解,在ADF應(yīng)用程序中完美運(yùn)行的ADF BC商業(yè)服務(wù)對于Jet應(yīng)用程序可能沒有用。 這是為什么? 主要原因是我們更改了狀態(tài)管理模型。 我們從經(jīng)典的ADF有狀態(tài)行為切換為REST無狀態(tài)模型。 此外,在Jet Web和Hybrid應(yīng)用程序中,UI設(shè)計更有可能會有所不同。
因此,我們需要創(chuàng)建新的ADF BC服務(wù),以支持無狀態(tài)模型并為新UI的方便提供服務(wù)。
好消息是,我們不必從頭開始構(gòu)建所有內(nèi)容。 如果以正確的方式構(gòu)建現(xiàn)有的ADF BC模型,則我們可以重用其核心部分,包括實(shí)體和在實(shí)體級別實(shí)現(xiàn)的業(yè)務(wù)邏輯。
因此,我們可以將整個ADF BC模型拆分為包含實(shí)體,實(shí)用程序和共享AM的核心部分,以及包含特定AM和VO并為ADF應(yīng)用程序和Jet應(yīng)用程序提供服務(wù)的外觀部分。
重新考慮了我們的ADF BC并準(zhǔn)備好為ADF和Jet應(yīng)用程序提供服務(wù)后,我們現(xiàn)在可以將Jet功能集成到現(xiàn)有的ADF項(xiàng)目中。 常見的架構(gòu)方法是
為了使用ADF來實(shí)現(xiàn)系統(tǒng)的某些頁面,一些頁面是使用Jet來實(shí)現(xiàn)的,還有一個移動混合應(yīng)用程序也可以通過Oracle Jet來實(shí)現(xiàn)。
這種方法的優(yōu)點(diǎn)是我們將事物分開保存。 看起來不同的應(yīng)用程序在共同的業(yè)務(wù)模型之上運(yùn)行。 每個應(yīng)用程序都引入了自己的UI,適用于針對其實(shí)現(xiàn)的那些用例。 此外,它們?yōu)檎麄€系統(tǒng)提供了不同的入口點(diǎn)。 我們可以通過常規(guī)ADF頁面訪問它,我們可以與移動設(shè)備一起使用,也可以從Jet網(wǎng)頁訪問它,而Jet網(wǎng)頁又可以輕松地集成到任何父級網(wǎng)頁中,例如門戶網(wǎng)站應(yīng)用程序。
但是這種優(yōu)勢可能會變成一種劣勢,因?yàn)閷τ诿總€進(jìn)入點(diǎn),我們都應(yīng)該考慮身份驗(yàn)證,內(nèi)部化,本地化等。
這種方法將更多的運(yùn)行組件帶入整個系統(tǒng)結(jié)構(gòu),因此CI,CD,自動化測試和環(huán)境在這里變得更加復(fù)雜。
另一個明顯的選擇是將Jet內(nèi)容集成到ADF頁面中,以便從用戶角度看它看起來像一個頁面,但在幕后卻是兩個不同Web應(yīng)用程序的混合。
這個選項(xiàng)不是我的最愛,我會避免。 因?yàn)榛旧?#xff0c;您在這里要做的是在同一頁面上混合兩個Web應(yīng)用程序。 這意味著將有兩個具有不同事務(wù)的不同會話,因此會有獨(dú)立的實(shí)體緩存和用戶上下文。
Jet內(nèi)容不參與JSF生命周期,因此整個頁面以兩種不同的方式提交。 ADF希望擁有整個頁面,因此諸如響應(yīng)式幾何管理和“拖放”之類的出色功能將不適用于Jet內(nèi)容。
在我看來,當(dāng)我們需要在頁面上顯示一些外部內(nèi)容形式時,這種方法在非常特殊的情況下是有意義的。 例如,如果我們的頁面是門戶或儀表板的一種,它在一個地方收集來自不同來源的數(shù)據(jù)。 在這種情況下,可以在類似的頁面和常規(guī)Jet應(yīng)用程序中使用相同的Jet組件。
當(dāng)我們通過遠(yuǎn)程任務(wù)流調(diào)用將ADF內(nèi)容集成到Jet頁面時,同樣的考慮也針對相反的方法。 該技術(shù)很有意義,但是當(dāng)我們想重用Jet中未實(shí)現(xiàn)的現(xiàn)有ADF功能時,僅應(yīng)在特定的用例中使用。 至少目前還沒有。 這種方法不應(yīng)用作構(gòu)建我們的應(yīng)用程序的標(biāo)準(zhǔn)工具。
最重要的是,Oracle ADF和Oracle JET可以完美地協(xié)同工作,這對于擁有扎實(shí)的ADF背景的組織來說是一個不錯的選擇。 唯一的選擇就是明智地選擇將這兩個完全不同的工具結(jié)合在一起的體系結(jié)構(gòu)方法。
而已
翻譯自: https://www.javacodegeeks.com/2018/05/oracle-adf-jet-architecture-patterns.html
總結(jié)
以上是生活随笔為你收集整理的Oracle ADF和Oracle Jet一起工作。 建筑模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多久一次用英语怎么说 多久一次用英语表达
- 下一篇: 孔子简介资料大全 有关孔子的简介