Modern App Development - SaaS Extensions

This Modern App Development reference architecture presents the design principles associated with creating SaaS extension apps, and an optimal implementation path.

Oracle Applications Cloud is the enterprise software as a service (SaaS) offering from Oracle that spans solutions for areas such as HCM, ERP, SCM, and CX. It provides extensive functionality, but sometimes organizations want to create customized UI and business processes that extend that functionality. These extension apps integrate with information from Applications Cloud, use the same security layer, and often “mash up” data from other systems, delivering a user experience that seamlessly integrates with Applications Cloud. Some of these apps need to be embedded in the Applications Cloud interface, and in other cases, they might be targeted to external customers and need to operate outside of the Applications Cloud environment.

Design Principles

When implementing a SaaS extension pattern, use the following design principles for the Modern App Development.

  • 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 for JavaScript-based apps that includes a collection of components with rich functionality. The Oracle Cloud Apps teams use the same components when developing new Redwood-based UIs. The same Redwood UI patterns, styles, and templates are available for developers working with Oracle JET and Oracle Visual Builder.

    The development language for the UI layer is JavaScript. For the backend, use mature languages such as Java.

  • Build your apps as microservices that communicate over APIs

    Develop business processes and data manipulation services as microservices exposed through an API. Doing so allows you to easily handle, scale, and access them.

    UIs developed with Oracle Visual Builder use REST-based backend services, including services exposed by Applications Cloud and services that expose data from other sources through standard REST APIs.

  • Automate build, test, and deployment

    Use Oracle Visual Builder Studio to automate the lifecycle of extensions that you develop for Applications Cloud. This automation includes the ability to package and deploy the UI and the backend services. Oracle Visual Builder Studio also integrates Git repositories, issue tracking, agile planning and tracking, and team collaboration capabilities with the continuous integration/continuous deployment (CI/CD) pipeline.

    Oracle Visual Builder CI/CD enables automation of the build and deploy steps of various Applications Cloud offerings, from the infrastructure layer to the platform layer (for artifacts such as visual apps, integrations, database objects, and middleware code) to Applications Cloud extensions. This provides a unified platform for managing the full set of artifacts involved in creating Applications Cloud extensions.

  • Use fully managed services to eliminate complexity across application development, runtimes, and data management

    Most organizations using Applications Cloud as a service don’t have the resources to manage their own infrastructure. Using a managed service simplifies the deployment and management of the apps for the business.

    Oracle Visual Builder provides a fully managed platform that hosts your web and mobile apps. In addition, Oracle Visual Builder manages custom business objects and the REST layer that exposes them, and secures access to external REST services. You can manage access to external data sources through Oracle Integration, a managed integration service. And you can implement more business logic as functions exposed through REST. Sometimes, data is replicated into standalone databases, so you can implement a set of REST services on top of that data by using Oracle REST Data Services.

  • Use multi-model databases with full featured support across all your data

    Applications Cloud uses a relational data model to store information about the various business objects that it tracks. When you need to replicate data out of Applications Cloud and into your own databases, it makes sense to use the same design and an Oracle relational database. Doing so makes data replication easier in both directions and provides you with all the benefits of Oracle's database engine.

  • Keep applications stateless

    Oracle Visual Builder creates stateless apps that communicate to the backend over REST services. 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 and tracing through the layers of the apps. Using this service, you can track the UI experience, REST calls, functions, and the database.

    In addition, various Oracle managed services provide monitoring and tracing on artifacts that they manage. For example, Oracle Integration has a monitoring dashboard to show the usage and status of integrations.

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

    Extension apps that you develop for Applications Cloud should enforce in-depth defense mechanisms to ensure that only the personnel with the right roles can interact with the data. Use single sign-on between your apps and Applications Cloud to ensure that users who access the data through REST APIs are doing it with the roles they have defined in Applications Cloud. Use Oracle Cloud Infrastructure API Gateway and Web Application Firewall (WAF) to limit access to the REST services and web interfaces based on the necessary rules.

Architecture

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



Oracle recommends using 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 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, which provides a more declarative and visual approach to development.

  • Web server

    Oracle Visual Builder provides a managed service that hosts your web app and provides secure access to Applications Cloud data objects and to external REST services. In addition, it supports single sign-on between your custom extension apps and Applications Cloud. When combined with Oracle Visual Builder Studio, it supports the full lifecycle of development including automation of the full continuous integration/continuous deployment (CI/CD) cycle.

  • Business logic

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

    Oracle Functions is a fully managed, multitenant, highly scalable, on-demand, Functions-as-a-Service (FaaS) platform. It is powered by the Fn Project open source engine. Functions enable you to deploy your code, and either call it directly or trigger it in response to events. Oracle Functions uses Docker containers hosted in Oracle Cloud Infrastructure Registry.

  • Integration

    Oracle Integration has unique adapters to Applications Cloud and other systems. These adapters let you mash up data from multiple sources for UI consumption as well as for data integration on the backend and data replication.

    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 Applications Cloud lack an easy or performant way to access and handle data directly.

  • API gateway

    Oracle API Gateway service 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 Customer Experience Cloud (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.