現代化的 App 開發- SaaS 擴充功能

Oracle Applications Cloud 是一套完整的軟體即服務 (SaaS) App 套件,可為人力資本管理 (HCM)、企業資源規劃 (ERP)、Supply Chain Management (SCM) 及客戶體驗 (CX) 等領域提供解決方案。

如同任何 SaaS 應用程式,您可能需要您組織獨有的擴充程式,例如自訂 UI 版面配置或其他業務流程。這些延伸會以整合 Oracle Applications Cloud 資訊或結合其他系統的資料的方式實施。App 會使用相同的安全層,並與 Oracle Applications Cloud 緊密整合的使用者體驗。部分擴充功能 App 內嵌在 Oracle Applications Cloud 介面中,如果是針對外部客戶設定,則會在 Oracle Applications Cloud 環境外作業。

本文件提供架構設計原則給架構師 SaaS 擴充 App、參照架構以及最佳實作路徑。

設計原則

請使用下列設計原則來建置您的 SaaS 擴充套件。

  • 使用輕量型開放原始碼架構和成熟化程式設計語言

    在 UI 層使用 Oracle JavaScript Extension Toolkit (Oracle JET)。Oracle JET 是 Oracle Applications Cloud 團隊用於開發 Redwood 型 UI 的 Oracle 與開放式來源 JavaScript 程式庫的開放原始碼工具程式。JET 提供這些相同的 Redwood UI 樣式、樣式和樣板。

    使用 JavaScript 作為 UI 層,以及 HTML5 和 CSS。針對後端,請使用 Java。

  • 藉由使用 REST API 通訊的微服務套件建立 App

    以微服務公開的 REST API 方式開發業務流程和資料處理服務。這樣一來,您便可以輕鬆處理、調整及存取服務。

    使用 Oracle Visual Builder Studio 開發的 UI 使用以 REST 為基礎的後端服務,包括 Oracle Applications Cloud 顯示的服務,以及將其他來源的資料公開為 REST API 的服務。

  • 自動化組建、測試及部署

    您可以使用 Oracle Visual Builder Studio 自動執行 SaaS 擴充功能的建置、封裝及部署步驟,從基礎架構層到平台層。(這包括像視覺應用程式、整合、資料庫物件和中介軟體程式碼等使用者自建物件。)Oracle Visual Builder Studio 也透過持續整合 / 持續部署 (CI/CD) 管線,整合 Git 儲存區域、問題追蹤、靈活的規劃與追蹤和團隊協同合作功能。

  • 使用完全託管的服務減少 App 開發、程式實際執行及資料管理方面的複雜性

    大多數使用 Oracle Applications Cloud 的組織都不需要或資源管理自己的基礎架構。改為使用完全託管的服務,簡化業務 App 的部署和維護。

    Oracle Visual Builder Studio 提供一個完全託管的平台,可用來代管您的 Web 和行動 App。此外,它還會管理自訂業務物件、公開的 REST 層,以及保護對外部 REST 服務的存取。您可以透過 Oracle Integration (一項受管理的整合服務) 設定對外部資料來源的存取。而且,您可以將額外的業務邏輯作為公開為 REST API 的函數。對於某些應用程式,您的資料可能會複製到獨立資料庫,在這種情況下,您可以導入一組 REST 服務以使用 Oracle REST Data Services 存取該資料。

  • 保持應用程式層狀態

    Oracle Visual Builder Studio 建立可透過 REST API 與後端服務進行通訊的無狀態 App。Oracle Functions 也可以為其他伺服器端業務邏輯提供無狀態功能。

  • 實行端對端監督與追蹤功能

    使用 Oracle Application Performance Monitoring 來監控及追蹤 App 的層。您可以使用這項服務來追蹤 UI 體驗、REST 呼叫、功能及資料庫。

    此外,許多 Oracle 管理的服務也提供監督與追蹤他們所管理的使用者自建物件。例如,Oracle Integration 提供顯示整合用途與狀態的監控儀表板。

  • 實行深度防禦方法以保護應用程式生命週期

    強制實行深度防禦機制來確保只有具備正確角色的人員才能與資料互動。在您的 App 與 Oracle Applications Cloud 之間使用單一登入 (SSO),確保透過 REST API 存取資料的使用者符合 Oracle Applications Cloud 中定義的角色。使用 Oracle Cloud Infrastructure API 閘道和 Web 應用系統防火牆建立規則,限制使用者依據這些規則存取 REST 服務和 Web 介面。

    Oracle Visual Builder Studio 已預先設定 SSO 並提供識別傳輸功能。例如,從 Oracle Visual Builder Studio 呼叫 REST API 會自動將 Oracle Visual Builder Studio 使用者傳輸至 API 呼叫。

架構

您可以使用以此意見為基礎的建置來實行設計原則。



maf-arch-paas.zip

Oracle 建議您的 SaaS 延伸架構中下列元件:

  • UI

    Oracle JavaScript Extension Toolkit (Oracle JET) 提供了輕量的開源工具程式,供用於建置跨多個裝置的豐富 UI。此服務也支援 Redwood 使用者體驗,讓您開發 Oracle Applications Cloud 的擴充功能,可提供與 Oracle 提供之 App 相同的體驗。若要簡化並加速您開發 Oracle JET 應用程式,請使用 Oracle Visual Builder Studio,此方法提供更具宣告性的視覺開發方法。

  • Web 伺服器

    Oracle Visual Builder Studio 提供完全託管的服務來代管您的 Web App,並對 Oracle Applications Cloud 內和外部 REST 服務提供安全的資料存取。此外,它支援您自訂擴充功能應用程式與 Oracle Applications Cloud 之間的單一登入。

  • Business logic - 商業邏輯

    若要實作業務邏輯需求,請使用可擴充的可伺服器技術 (例如 Oracle Functions 和 Helidon),然後將它們公開為 REST API 以方便使用。

  • 整合

    Oracle Integration 是一項完全受管理的服務,可讓您整合應用程式、自動化程序、深入瞭解您的商業流程,以及建立視覺應用程式。

    Oracle Integration for SaaS 是一種簡化的 Oracle Integration 版本,讓瞭解 Oracle Integration 的功能和優點,並將焦點放在 SaaS。

  • 資料庫

    Oracle Applications Cloud缺乏可直接存取及處理資料的簡單或效能方式,Oracle Database 可讓您以更容易存取的方式儲存資料。

  • API 閘道

    Oracle API Gateway 可讓您在網路內存取的專用端點發布 API,並且在需要時向公用網際網路公開。端點支援 API 驗證、要求與回應轉換、CORS、認證與授權,以及要求限制。

替代與反面樣式

請考量此樣式中描述之架構的替代方法,以避免嘗試實行反向樣式。
  • 替代方式

    對於不需要整合至 Applications Cloud 介面的應用程式,您可以考慮使用替代 UI 架構。

    如果現有系統需要從 Applications Cloud 存取資料,而且您關心使用外部要求超載 Applications Cloud,您可以將資料集擷取至外部資料庫。

  • 反面樣式

    請勿嘗試複製外部系統的 Applications Cloud 中已定義的業務處理、驗證及安全性。這麼做會導致與原始系統不同步的風險。

使用案例範例

以下是一些使用類似架構的 SaaS 擴充功能使用案例的範例:
  • 自訂的內部系統

    追蹤新員工到職、停車位配置、差旅核准、商業發票規範檢查等等。

  • 混搭系統

    使用來自外部系統 (例如 SalesForce) 的客戶資訊遮蔽 Applications Cloud 產品目錄。

  • 外部系統

    訂單輸入、合作夥伴型錄及自有服務支援入口網站。

公共案例研究

以下是一些使用此「現代化應用程式開發」樣式來推出 SaaS 擴充功能的公司:
  • Panasonic

    建置支援 Web 的合作夥伴入口網站,從 Oracle 廣告和客戶體驗 (Oracle CX) 存取資料。

  • Yum!品牌

    為任務 (如時間報表) 建立一組內部 HCM 擴充程式。

  • Caesars Entertainment

    建立延伸 ERP 的商業發票規則修訂系統。

探索更多

進一步瞭解相關資源。

變更日誌

此日誌列出重大變更:

致謝

  • 作者:Shay Shmeltzer
  • 貢獻者:Hassan Ajan、Matthias Brantner、James Emerson、Bernard Horan、Harshad Kasture、Parvez Syed Mohamed、Sajan Parihar、Joshua Stanley