现代应用开发 — SaaS 扩展

Oracle Applications Cloud 是一套完整的软件即服务 (SaaS) 应用套件,可为人力资本管理 (HCM)、企业资源计划 (ERP)、Supply Chain Management (SCM) 和客户体验 (CX) 等领域提供解决方案。

与任何 SaaS 应用一样,您可能需要贵组织特有的扩展,例如自定义 UI 布局或其他业务流程。这些扩展作为应用程序实施,可与 Oracle Applications Cloud 中的信息集成或组合来自其他系统的数据。这些应用使用相同的安全层,并提供了与 Oracle Applications Cloud 无缝集成的用户体验。某些扩展应用程序嵌入到 Oracle Applications Cloud 界面中,如果针对外部客户,则在 Oracle Applications Cloud 环境中运行。

本文档介绍了构建 SaaS 扩展应用的设计原则、参考架构和优化实施路径。

设计原则

使用以下设计原则构建 SaaS 扩展应用。

  • 使用轻量级开源框架和成熟的编程语言

    Oracle JavaScript Extension Toolkit (Oracle JET) 用于 UI 层。Oracle JET 是 Oracle 的开源工具包,由 Oracle Applications Cloud 团队使用开源 JavaScript 库开发基于 Redwood 的 UI。JET 为您提供了相同的 Redwood UI 模式、样式和模板。

    将 JavaScript 用于 UI 层以及 HTML5 和 CSS。对于后端,使用 Java。

  • 将应用构建为使用 REST API 进行通信的微服务套件

    以 REST API 形式的微服务形式开发业务流程和数据操纵服务。这样,您可以轻松处理、扩展和访问服务。

    使用 Oracle Visual Builder Studio 开发的 UI 使用基于 REST 的后端服务,包括 Oracle Applications Cloud 公开的服务,以及将来自其他源的数据作为 REST API 公开的服务。

  • 自动进行构建、测试和部署

    使用 Oracle Visual Builder Studio 可以自动执行 SaaS 扩展的构建、程序包和部署步骤,包括从基础设施层到平台层。(其中包括可视化应用、集成、数据库对象和中间件代码等对象。)Oracle Visual Builder Studio 还将 Git 资源库、问题跟踪、敏捷规划和跟踪以及团队协作功能与连续集成 / 连续部署 (CI/CD) 管道集成。

  • 使用完全托管的服务消除应用开发、运行时和数据管理的复杂性

    大多数使用 Oracle Applications Cloud 的组织并不希望或资源来管理自己的基础设施。您需要使用完全托管的服务来简化业务应用的部署和维护。

    Oracle Visual Builder Studio 提供了一个完全托管的平台来托管您的 Web 和移动应用。此外,它管理定制业务对象、公开这些对象的 REST 层,并保护对外部 REST 服务的访问。您可以通过托管集成服务 Oracle Integration 配置对外部数据源的访问。还可以将其他业务逻辑实施为以 REST API 公开的函数。对于某些应用,您的数据可能会复制到独立数据库中,在这种情况下,您可以实施一组 REST 服务来使用 Oracle REST Data Services 访问该数据。

  • 将应用层保持无状态

    Oracle Visual Builder Studio 创建无状态应用程序,以通过 REST API 与后端服务进行通信。Oracle Functions 还可以为其他服务器端业务逻辑提供无状态功能。

  • 实施端对端监视和跟踪

    使用 Oracle Application Performance Monitoring 可以监视和跟踪应用的层。使用此服务,您可以跟踪 UI 体验、REST 调用、函数和数据库。

    此外,许多 Oracle 托管服务还提供对所管理对象的监视和跟踪。例如,Oracle Integration 提供了监视仪表盘,其中显示集成的使用情况和状态。

  • 实施深度防御方法来保护应用生命周期

    强制实施深度防御机制,确保只有担任适当角色的人员才能与数据交互。在您的应用与 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 提供的应用相同的体验。要简化并加速 Oracle JET 应用程序的开发,请使用 Oracle Visual Builder Studio,该方法可提供更声明和更直观的开发方法。

  • Web 服务器

    Oracle Visual Builder Studio 提供了完全托管的服务来托管 Web 应用,并支持在 Oracle Applications Cloud 中安全访问数据以及基于 REST 的外部服务。此外,它支持自定义扩展应用程序与 Oracle Applications Cloud 之间的单点登录。

  • 业务逻辑

    要实施业务逻辑要求,请使用 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、验证和授权以及请求限制。

替代和反模式

考虑此模式中描述的体系结构的替代方法,并避免尝试实施反模式。
  • 替代方法

    对于不需要集成到应用云界面的应用,您可以考虑使用替代 UI 框架。

    如果现有系统需要访问 Applications Cloud 中的数据,并且您担心使用外部请求重载应用程序云,您可以将数据集提取到外部数据库。

  • Antipatterns

    不要尝试复制在外部系统的应用云中定义的业务流程、验证和安全性。这样做会带来与原始系统不同步的风险。

使用案例示例

以下是使用类似体系结构的 SaaS 扩展的一些用例:
  • 定制的内部系统

    跟踪新员工入职、停车位分配、差旅审批、发票合规性检查等。

  • 混合系统

    应用云库存与外部系统(例如 SalesForce)中的客户信息相混搭。

  • 外部系统

    订单条目、合作伙伴目录和搜索服务支持门户。

公共案例分析

以下是一些使用这种现代应用开发模式来推出 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