Oracle Database provides the most comprehensive platform with both application and data services to make development and deployment of enterprise applications simpler. Build SaaS apps with CI/CD, Multitenant database, Kubernetes, cloud native, and low-code technologies.
Microservices with Oracle's Converged Database (1:09)
Build a mobile food delivery app with a data-centric architecture pattern using Kubernetes engine, Docker containers, and Oracle Autonomous Database. Modern AppDev is synonymous with data-driven microservices generating operational data and code events, and it incorporates artificial intelligence (AI) and/or machine learning (ML). A converged data platform on Oracle Cloud Infrastructure (OCI) simplifies the creation of new microservices to handle a variety of events and data with tables, JSON, graph, and spatial data types. The GrabDish app example shows how a complete microservices platform can be instantiated automatically using terraform scripts, simplified DevOps with Kubernetes, and sample microservices code.
e-shop is a web-based, ecommerce retail application example, developed to demonstrate Oracle Sharding, a hyperscale globally distributed converged database with OLTP and analytics in a massively parallel processing (MPP) architecture. Multiple technologies and products are usually required to develop an application such as this. For example, you would need a JSON database, a text index application, a relational database, and an analytics engine—all of which makes it difficult to query data across multiple data stores. This example uses Oracle Sharding (with three shards) with different types of data —including structured and unstructured data, relational, JSON, and text—stored in a single database platform.
This example app includes multiple capabilities, such as the simple Oracle document access (SODA) API and text search for JSON, joins, transactions, and ACID properties for relational queries, fuzzy match, type ahead, free-form text search, and sentiment.
Make specialized offers to at-risk customers using Autonomous Database.
Modern data platforms require analytics across storage engines (relational, object storage, and others) and data types. Oracle Autonomous Database captures tabular, spatial, graph, and JSON data and includes specialized algorithms for each of these data types. Oracle MovieStream—a fictitious online movie streaming company—is used to illustrate how different types of sophisticated analytics can be applied to both structured and unstructured data. You can access data from a data lake, unlock and discover movie viewing insights from tabular and JSON data, use machine learning to predict churn, localize offers using spatial analytics, and apply graph algorithms to recommend movies based on derived communities.
Build and deploy a personal productivity application using cloud native services, such as Oracle Autonomous Database, Oracle Container Registry, Kubernetes clusters, API gateway, and Helidon.
This application makes REST calls to a Java backend using the Helidon microservices framework. The application is containerized using Docker, deployed in the Container Registry, and managed by Kubernetes. The Java code implements the REST APIs and connects to the Autonomous Database to persist changes.
A shopping cart app allows customers to select, review, and purchase a product or service from an online store at any time.
This sample application creates a shopping cart from scratch using Oracle Autonomous Database and Oracle APEX. First, a sample dataset is imported, and then an app is built with pages, such as dashboard, products, and multiple reports. You can then add pages to manage the shopping cart.
The application allows online store administrators to manage products, customers, and stores. Customers can explore, add products to the cart, and eventually proceed to checkout. This method can be applied to other use cases, building a starter application in 60 minutes with customer features and administrator features to securely manage changes to the site.
Oracle Machine Learning is a powerful solution for analyzing data and applying it to the most valuable data in your organization—the existing enterprise data in your Oracle Database. This example shows how a data professional can build a machine learning–driven insurance app with APEX, starting with data preparation and finishing up with the successful deployment of a model.
The sample insurance application also addresses DevOps best practices for model deployment in real applications so developers have simple access to powerful AI/ML.
Java is the #1 programming language and development platform. It reduces costs, shortens development timeframes, drives innovation, and improves application services. With millions of developers running more than 51 billion Java Virtual Machines worldwide, Java continues to be the development platform of choice for enterprises and developers.
The Python programming language is actively used across all domains of contemporary computer science. Since Python development is more efficient than most other languages, it is a popular choice for startups where changes to the codebase must be made quickly and cheaply. It's also used by scientists and mathematicians and in a number of powerful, in-house libraries for statistics and complex math. Explore the features of the Python cx_Oracle interface for Oracle Database. cx_Oracle is a Python extension module that enables access to Oracle Database. It conforms to the Python database API 2.0 specification with a considerable number of additions and a couple of exclusions.
The Oracle Call Interface C and C++ APIs let you create applications that use function calls to access Oracle Database and control all phases of the SQL statement execution and data access.
Node.js allows developers to build fast, scalable network applications using easy-to-understand code. It runs on Windows OS, Mac OSX, Linux, Unix, and other operating systems. It has support for ARM processors, such as Raspberry Pi or BeagleBone Black. Node.js is an ideal choice for developers who need to build fast, scalable network applications, such as web servers and other back-end systems powering mobile apps, using simple code.
Oracle Developer Tools for Visual Studio (ODT) is an add-in that ensures all Oracle .NET programming stays within Oracle Visual Builder Studio. Oracle Data Provider for .NET (ODP.NET) is optimized to use all the advanced high availability, performance, and security features of the Oracle Database while giving developers complete access to .NET Core and .NET Framework. ODP.NET offers 100% managed code drivers to ease deployment to either .NET runtime.
PL/SQL is an embedded language designed to work efficiently with Oracle Database. PL/SQL adds procedural constructs to SQL and provides a more comprehensive programming language solution for building mission-critical applications on Oracle Databases.
Microservices are an architectural approach to developing modern software. Each core function, or service, represents a related business context that is built and deployed independently. Microservices provide agility in building and maintaining applications. Application modernization today is synonymous with microservices.
Building small, self-contained, ready-to-run applications can bring great flexibility and added resilience to your code. Spring Boot’s many purpose-built features make it easy to build and run your microservices in production at scale. The distributed nature of microservices brings challenges. Spring Boot helps you mitigate them. Spring Cloud Stream makes it easy to consume and produce events, no matter which messaging platform you choose.
Helidon is a collection of Java libraries for writing microservices that run on a fast web core powered by Netty.
A modern, JVM-based, full-stack framework for building modular, easily testable microservice and serverless applications. With this framework, application startup time and memory consumption aren't bound to the size of your codebase, resulting in a reduced startup time, fast throughput, and minimal memory footprint.
Oracle Transaction Manager for Microservices simplifies application development and operations by enabling distributed transactions to ensure consistency across polyglot microservices deployed in Kubernetes and/or other environments. This transaction manager runs outside the database and is suited for running across heterogeneous databases. In addition MicroTX supports Long Running Actions (LRA) and Try-confirm-cancel (TCC) consistency protocols.
Opinionated choices with recommended technologies cover the following, although we realize there may be an overlap of design choices and best practices among these categories, such as a mobile app that is event-driven, built with low code, and crunches big data. We’ve got you covered with the recommendations below as the main categories of architecture patterns:
Low-code platforms enable you to build enterprise apps faster than with traditional hand coding. These platforms are well suited for building data reporting and analysis apps and opportunistic applications in collaboration with business stakeholders, extending SaaS apps and modernizing legacy applications.
Oracle APEX uses a database-encapsulated simple, metadata-driven architecture that provides fast data access, top performance, and scalability.
Blockchain App Builder provides a low-code development and test environment to support the scaffolding, local testing, and automated deployment of smart contracts. It can automatically generate smart contracts from declarative specs and aids in development, testing, and deployment. It also provides tokenization support with autogeneration of chain codes for the full token lifecycle.
Oracle Transactional Event Queues (TxEventQs) are high-performance partitioned implementation queues with multiple event streams per queue. A TxEventQ is the partitioned and in-memory implementation of Oracle Advanced Queuing. TxEventQ queues support the JMS spec and can be accessed in Java, Python, Node.js, PL/SQL, C/C++, .NET, and Go.
XML is a scripting language similar to HTML and is mainly used to store and transport data. Oracle XML Developer’s Kit (XDK) is a versatile set of components that enables you to build and deploy C, C++, and Java software programs that process XML. You can assemble these components into an XML application that serves your business needs.
Oracle Database accelerates machine learning with powerful algorithms that run inside the database. This allows you to build and run ML models without having to move or reformat data. Data scientists leverage Python, R, SQL, and other tools to integrate ML capabilities into database applications and deliver analytics results in easy-to-use dashboards.
The Oracle REST Data Services API allows Oracle REST Data Services users to perform Oracle Database management and monitoring operations through a user-friendly REST API. ORDS database APIs provide services, such as pluggable database management, data export, and database performance review.
Oracle SQL provides an easy, elegant, and performant architecture for accessing, defining, and maintaining data. Use SQL with Oracle and PHP, Java, Python, .NET, Hadoop, Node.js, and Oracle APEX.
SQL*Plus is an interactive and batch query tool provided with every Oracle Database server or client installation. It provides a command-line user interface that allows you to enter and execute SQL, PL/SQL, SQL*Plus, and operating system commands.
Oracle SQL Developer is a free graphical tool that simplifies database development tasks. With SQL Developer, you can browse database objects, run SQL statements and SQL scripts, edit and debug PL/SQL statements, manipulate and export data, and view and create reports. You can connect to both Oracle Databases and selected third-party (non-Oracle) databases, view metadata and data, and migrate these databases to Oracle. SQL Developer also integrates interfaces into several related technologies, including Oracle Data Miner, Oracle OLAP, Oracle TimesTen In-Memory Database, and SQL Developer Data Modeler (read-only).
Oracle SQL Developer Data Modeler is a data modeling and database design tool that provides an environment to capture, model, manage, and exploit metadata.
Oracle SQLcl (SQL developer command line) is a Java-based command line interface for Oracle Database. Using SQLcl, you can execute SQL and PL/SQL statements in interactive or batch mode. SQLcl provides inline editing, statement completion, command recall, and supports your existing SQL*Plus scripts.
Learn and share SQL while getting better at writing code. This includes tutorials, sample macros, explanation of query plans. Run code in the browser in seconds.
Oracle Database Actions (formerly SQL Developer Web) is a web-based interface that provides development, data tools, administration, and monitoring features for Oracle Database. It is available with Oracle Autonomous Database and included with the Oracle REST Data Services (ORDS) download for on-premises use.
Oracle Database provides APIs for the manipulation of JSON data and support for native storage of JSON data. These allow you to analyze, secure, and perform other operations on JSON data.
Oracle's spatial database is available in Oracle Database. It allows developers and analysts to get started easily with location intelligence analytics and mapping services. It enables geographic information system (GIS) professionals to successfully deploy advanced geospatial applications. Organizations can manage different types of geospatial data, perform hundreds of spatial analytic operations, and use interactive map visualization tools with the spatial features in Oracle Autonomous Database and Oracle Database.
Oracle’s graph database is available in Oracle's converged database. It allows graph users to use two popular graph models: property graphs and RDF graphs. Developers, analysts, and data scientists can explore data relationships using graph queries and perform graph analytics using prebuilt graph algorithms to gather business insights, such as making recommendations, finding communities, pattern matching, identifying fraud, and other anomalies. Graph Studio in Oracle Autonomous Database provides a fully managed, automated graph data interface that makes it easier to create and query graphs. It delivers extensive graph analytics and graph query support with advanced notebooks and interactive visualizations.
Oracle XML Database (XML DB) allows you to store and manipulate XML data natively. It provides complex data analysis and reporting, high performance and scalability, data protection, and access control..
Oracle Database Operator for Kubernetes (also called. OraOperator) extends the Kubernetes API with custom resource definitions and controllers for automating Oracle Databases operations. Kubernetes has become the most popular and ubiquitous open source framework for automating continuous integration and continuous delivery (CI/CD) pipelines.
End-to-end observability of application development, including app-tier, mid-tier, and data-tier. Metrics, logs, and traces are collected and analyzed with Prometheus, using Grafana as the monitoring dashboard.
Oracle Database Real Application Security Administration (RASADM) lets you create Real Application Security data security policies using a graphical user interface.
Real Application Security manages application security for application users, rather than database users. It enables application user identity to be known during security enforcement. With Real Application Security, developers can manage security for application-level tasks and return security to the database layer, either incrementally, or all at once.
Java Database Connectivity (JDBC) is a Java standard that provides the interface to connect Java applications to relational databases. In addition to supporting the standard JDBC application programming interfaces (APIs), Oracle JDBC also provides extensions to support Oracle-specific data types and enhance performance of Java applications that connect to Oracle Database.
The converged data architecture patterns provide convergence across multiple dimensions of an application stack, enabling you to run a query on a variety of data types together, work with operational data and analytics with AI/ML, develop in multiple languages, deploy on multiple clouds. DevOps is simpler and easier with a containerized database architecture managed by Kubernetes.
Support for ACID transactions across a variety of data in Oracle’s converged database, with programming in language of choice and built-in transactional messaging/events.
Metrics and logs are collected and analyzed at every tier—app, mid, and data—all unified for the developer to simplify debugging and performance tuning.
Integrates security for app roles with Kubernetes Secrets using vaults for passwords with data security assessment, masking, and encryption.
Paul Parkinson, Developer Evangelist, Oracle
Microservices increasingly use event-driven architectures for communication, which is why many data-driven systems are also employing an event-sourcing pattern of one form or another. This is when data changes are sent via events that describe the data change that are received by interested services. The data is sourced from the events and event sourcing, in general, moves the source of truth for data to the event broker. This fits nicely with the decoupling paradigm of microservices.