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.
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
- 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
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
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.
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:
- 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.
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.
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
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.
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
- 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
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.