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