Modern App Development - SaaS Extensions

Oracle Applications Cloud is a complete suite of Software as a Service (SaaS) apps that provides solutions for areas such as Human Capital Management (HCM), Enterprise Resource Planning (ERP), Supply Chain Management (SCM), and Customer Experience (CX).

As with any SaaS apps, you may require extensions that are unique to your organization, such as customized UI layouts or additional business processes. These extensions are implemented as apps that integrate with information from Oracle Applications Cloud or combine data from other systems . The apps use the same security layer and deliver a user experience that seamlessly integrates with Oracle Applications Cloud. Some extension apps are embedded in the Oracle Applications Cloud interface or, if targeted at external customers, operate outside the Oracle Applications Cloud environment.

This document presents the design principles to architect SaaS extension apps, a reference architecture, and an optimal implementation path.

Design Principles

Use the following design principles to build your SaaS extension apps.

  • Use lightweight open-source frameworks and mature programming languages

    Use Oracle JavaScript Extension Toolkit (Oracle JET) for the UI layer. Oracle JET is an open source toolkit of Oracle and open source JavaScript libraries used by the Oracle Applications Cloud teams to develop Redwood-based UIs. JET provides you with these same Redwood UI patterns, styles, and templates.

    Use JavaScript for the UI layer, along with HTML5 and CSS. For the backend, use Java.

  • Build your apps as a suite of microservices that communicate using REST APIs

    Develop business processes and data manipulation services as microservices exposed as REST APIs. Doing so allows you to easily handle, scale, and access the services.

    UIs developed with Oracle Visual Builder Studio use REST-based back end services, including services exposed by Oracle Applications Cloud and services that expose data from other sources as REST APIs.

  • Automate build, test, and deployment

    Use Oracle Visual Builder Studio to automate the build, package, and deployment steps of your SaaS extension, from the infrastructure layer to the platform layer. (This includes artifacts such as visual apps, integrations, database objects, and middleware code.) Oracle Visual Builder Studio also integrates Git repositories, issue tracking, agile planning and tracking, and team collaboration capabilities with a continuous integration/continuous deployment (CI/CD) pipeline.

  • Use fully managed services to eliminate complexity in app development, runtimes, and data management

    Most organizations using Oracle Applications Cloud don’t have the desire or the resources to manage their own infrastructure. Instead, use a fully managed service to simplify the deployment and maintenance of your business apps.

    Oracle Visual Builder Studio provides a fully managed platform to host your web and mobile apps. In addition, it manages custom business objects, the REST layer that exposes them, and secures access to external REST services. You can configure access to external data sources through Oracle Integration, a managed integration service. And you can implement additional business logic as functions exposed as REST APIs. For some apps, your data might be replicated into standalone databases, in which case you can implement a set of REST services to access that data using Oracle REST Data Services.

  • Keep the app tier stateless

    Oracle Visual Builder Studio creates stateless apps that communicate to back end services over REST APIs. Oracle Functions can also provide stateless capabilities for additional server side business logic.

  • Implement end-to-end monitoring and tracing

    Use Oracle Application Performance Monitoring to monitor and trace the tiers of your app. Using this service, you can track the UI experience, REST calls, functions, and the database.

    In addition, many Oracle managed services offer monitoring and tracing of the artifacts that they manage. For example, Oracle Integration provides a monitoring dashboard that shows the usage and status of integrations.

  • Implement a defense-in-depth approach to secure the app lifecycle

    Enforce in-depth defense mechanisms to ensure that only the personnel with the right roles can interact with the data. Use single sign-on (SSO) between your app and Oracle Applications Cloud to ensure that users who access data through REST APIs are adhering to the roles they have defined in Oracle Applications Cloud. Use Oracle Cloud Infrastructure API Gateway and Web Application Firewall to create rules to limit users’ access to REST services and web interfaces based on those rules.

    Oracle Visual Builder Studio is pre-configured with SSO and provides identity propagation. For example, a call from Oracle Visual Builder Studio to a REST API automatically propagates the Oracle Visual Builder Studio user to the API call.

Architecture

You can implement the design principles by using a deployment based on this opinionated architecture.



maf-arch-paas.zip

Oracle recommends the following components in your SaaS extension architecture:

  • UI

    Oracle JavaScript Extension Toolkit (Oracle JET) provides a lightweight open source toolkit for building rich UIs that span multiple devices. It also supports the Redwood user experience, which lets you develop extensions to Oracle Applications Cloud that provide the same experience as the apps delivered from Oracle. To simplify and accelerate your development of Oracle JET applications, use Oracle Visual Builder Studio, which provides a more declarative and visual approach to development.

  • Web server

    Oracle Visual Builder Studio provides a fully managed service to host your web app and provides secure access to data within Oracle Applications Cloud and to external REST-based services. In addition, it supports single sign-on between your custom extension apps and Oracle Applications Cloud.

  • Business logic

    To implement business logic requirements, use scalable serverless technologies such as Oracle Functions and Helidon and expose them as REST APIs for easy consumption.

  • Integration

    Oracle Integration is a fully managed service that allows you to integrate your applications, automate processes, gain insight into your business processes, and create visual applications.

    Oracle Integration for SaaS, a streamlined version of Oracle Integration, gives you the features and benefits of Oracle Integration with a focus on SaaS.

  • Database

    Oracle Database provides a way for you to store data in a more accessible way when Oracle Applications Cloud lacks an easy or performant way to access and handle data directly.

  • API gateway

    Oracle API Gateway enables you to publish APIs with private endpoints that are accessible from within your network, and which you can expose to the public internet if required. The endpoints support API validation, request and response transformation, CORS, authentication and authorization, and request limiting.

Alternatives and Antipatterns

Consider the alternatives to the architecture described in this pattern, and avoid attempting to implement antipatterns.
  • Alternatives

    For apps that don't require integration into the Applications Cloud interface, you can consider using alternative UI frameworks.

    If existing systems require access to data from Applications Cloud and you’re concerned about overloading Applications Cloud with external requests, you can extract sets of data to external databases.

  • Antipatterns

    Don’t try to replicate business processes, validations, and security that are already defined in Applications Cloud in external systems. Doing so introduces a risk of getting out of sync with the original system.

Example Use Cases

These are a few example use cases for SaaS extensions using similar architectures:
  • Customized internal systems

    Track new employee onboarding, parking space allocation, travel approval, invoice compliance checks, and more.

  • Mashup systems

    Mash up Applications Cloud inventory with customer information from external systems such as SalesForce.

  • External systems

    Order entry, partner catalogs, and selve service support portals.

Public Case Studies

Here are some companies that used this Modern App Development pattern to roll out SaaS extensions:
  • Panasonic

    Built a web-facing partner portal that accessed data from Oracle Advertising and Customer Experience (Oracle CX).

  • Yum! Brands

    Created a set of internal HCM extensions for tasks such as time reporting.

  • Caesars Entertainment

    Created an invoice regulation revising system that extended ERP.

Change Log

This log lists significant changes:

Acknowledgements

  • Author: Shay Shmeltzer
  • Contributors: Hassan Ajan, Matthias Brantner, James Emerson, Bernard Horan, Harshad Kasture, Parvez Syed Mohamed, Sajan Parihar, Joshua Stanley