The Oracle JET Architecture

Oracle JET supports the Model-View-ViewModel (MVVM) architectural design pattern.

In MVVM, the Model represents the application data, and the View is the presentation of the data. The ViewModel exposes data from the Model to the view and maintains the application's state.

To support the MVVM design, Oracle JET is built upon a modular framework that includes a collection of third-party libraries and Oracle-provided files, scripts, and libraries.

The Oracle JET Common Model and Collection Application Programming Interface (API) implements the model layer. The API includes the following JavaScript objects:

  • oj.Model: Represents a single record data from a data service such as a RESTful web service

  • oj.Collection: Represents a set of data records and is a list of oj.Model objects of the same type

  • oj.Events: Provides methods for event handling

  • oj.KnockoutUtils: Provides methods for mapping the attributes in an oj.Model or oj.Collection object to Knockout observables for use with component view models.

To implement the View layer, Oracle JET provides a collection of UI components implemented as HTML5 custom elements, ranging from basic buttons to advanced data visualization components such as charts and data grids.

Knockout.js implements the ViewModel and provides two-way data binding between the view and model layers.

Oracle JET Features

Oracle JET features include:

  • Messaging and event services for both Model and View layers

  • Validation framework that provides UI element and component validation and data converters

  • Caching services at the Model layer for performance optimization of pagination and virtual scrolling

  • Filtering and sorting services provided at the Model layer

  • Connection to data sources through Web services, such as Representational State Transfer (REST) or WebSocket

  • Management of URL and browser history using Oracle JET oj.Router and oj-module components

  • Integrated authorization through OAuth 2.0 for data models retrieved from REST Services

  • Resource management provided by RequireJS

  • API compatibility with Backbone.js Model, Collection, and Events classes, except for Backbone.js Underscore methods.

  • JavaScript logging

  • Popup UI handling

Hybrid Mobile Application Development Toolkit Features

Oracle JET includes support for hybrid mobile applications that run on iOS, Android, and Windows mobile devices within the Apache Cordova container.

Apache Cordova enables you to use web technologies such as HTML5, CSS, and JavaScript to develop applications that you can deploy to mobile devices. Using the Cordova JavaScript APIs to access native device services, major mobile platforms such as Android, iOS, and Windows can be supported from a common code base.

The following image shows the same application code rendered on an iOS, Android, and Windows mobile device. Oracle JET automatically applies the native theme when you configure the application for the desired platform.

To support hybrid mobile development, Oracle JET includes the following features:

  • Native themes that you can use with Cordova to create hybrid mobile applications that emulate the look and feel of native iOS, Android, and Windows mobile devices

  • Tooling that enables you to scaffold and build Cordova-based hybrid applications using Oracle JET directly from the command line

  • Code samples, applications, and demos that you can use to create hybrid mobile applications using Oracle JET best practices

  • Mobile UI behaviors and interactive gestures such as animation, sticky headers, pull to refresh, and swipe to reveal

  • An oj.Config.getDeviceType() function that returns the type of device your application runs on. This can be useful if you want to configure different behavior for different devices or different types of application (hybrid mobile application versus web applications).

Oracle JET Visual Component Features

Oracle JET visual components include the following features and standards compliance:

  • Compliance with Oracle National Language Support (NLS) standards (i18n) for numeric, currency, and date/time formatting

  • Built-in theming supporting the Oracle Alta UI style specifications

  • Support for Oracle software localization standards, l10n, including:

    • Lazy loading of localized resource strings at run time

    • Oracle translation services formats

    • Bidirectional locales (left-to-right, right-to-left)

  • Web Content Accessibility Guidelines (WCAG) 2.0. In addition, components provide support for high contrast and keyboard-only input environments.

  • Gesture functionality by touch, mouse, and pointer events where appropriate

  • Support for Oracle test automation tooling

  • Responsive layout framework