Custom applications with a user interface can be categorized along various dimensions. Is the user interface a front end for a system of record or a system of change or innovation? What about the users: trained power users or very occasional visitors? What is the purpose of the system, such as entice potential buyers or voters, inform and support users with knowledge and information, facilitate data entry and other data manipulation tasks? What are the channels and communication protocols through which a user experience should be provided: web browser, mobile device, email, telephone (voice response and SMS), chat, wearables? What are the non-functional specifications: volume, performance, availability, confidentiality. Will the system live for a long time, undergo frequent changes during its lifetime, be used in an international and multilingual environment? How is the change process to be organized, who needs to [be able to] make the changes?
Oracle offers a number of technologies to build custom applications along with a portfolio of cloud services that can be used to create or enrich a part of the end user experience.
The most prominent application development technologies offered by Oracle are presented in the matrix below, organized by programming language and delivery platform. Each of these technologies can be deployed on the Oracle Public Cloud and except for MAX and ABCS, they can also be run on premises. Except APEX, all of these technologies are used within the SaaS development teams at Oracle and as such guarantee a certain degree of strategic importance and continued evolution and investment for Oracle. The rate of evolution differs considerably between these offerings, with Forms at the mature end and JET on a fast innovation track. The arrows suggest migration paths – both within Oracle and for the rest of the world.
ADF on JCS-SX and ABCS are the two technologies promoted for doing SaaS extensions – for example on top of ERP Cloud or Sales Cloud, leveraging the quickly growing set of RESTful APIs available with the SaaS products.
Note that plain, standards and/or 3rd party framework based Java EE application development should be considered part of this matrix and the Oracle technology spectrum for application development.
The Oracle Reports product has always been closely associated with Forms, right up to 12c. However, it has now become very clear: Reports has come to the end of its lifetime. Customers are recommended to start adopt BI Publisher for reporting needs. Tight integration in Forms with BI Publisher has been introduced in release 12c. Apparently – but please check the license conditions in the most recent pricelist – BI Publisher will be available as part of both the Developer Suite and the WebLogic Enterprise Suite and therefore to any Forms customer at no additional cost. However, there is no conversion for existing reports to Bi Publisher.
The evolution of APEX continues – on premises and in the [DBaaS] cloud. The next major release is 5.1 – in Early Adopter mode since Fall 2016 and expected to be generally available in the Spring of 2017.
A striking new feature in this release is the new charting engine adopted from JET – to replace the AnyChart component. This is a good example of Oracle teams eating the internally served dogfood. It allows APEX applications to offer the same level of advanced data visualizations that is available in ADF and in JET based user interfaces.
Other new features in 5.1 include:
- the Interactive Grid – a new rich, client-side region type that allows editing multiple rows of data in a dynamic, JSON-enabled grid, and supports multiple grids on a single page.
- a wizard interface to define declarative master/detail/detail regions.
- Ability to have multiple tabs open to the same APEX application and isolate session state
- Declarative RTL Support
The Java EE Application Development Framework from Oracles dates back to 2004. Through the years it has evolved in a robust technology foundation for substantial systems of record such as internally facing ERP systems: 18.104.22.168 in 2007 and 12c starting in 2013. Oracle has used ADF for the development of the Fusion Applications – the portfolio that contains Sales, ERP, HCM and Supply Chain Management Cloud – and is also making use of ADF for the development of other SaaS applications as well as on premises applications such as EBS (E-Business Suite). The creation of extensions to these applications is typically done using ADF and will rapidly come to account for a substantial percentage of global ADF usage. Note that currently all internal Oracle SaaS product teams use release 11g (22.214.171.124) with many backported features from the latest 12c releases.
The most recent release of ADF is 126.96.36.199 (June 2016) 188.8.131.52 (end of October 2016). See the ADF New Features documentation for the latest new features in this release, including pass-through (HTML5) attributes in ADF Faces.
The ADF Business Components framework is extended with entity and view object triggers, more Groovy support with declarative code snippets and integrated debugging, improved support for REST enabling an ADF BC business service.
The REST Data Control is extended to consume almost any REST API and handles any ADF BC based REST APIs completely automatically.
Skins for ADF applications can be developed using the browser based Theme Editor.
The skin created can be exported to a jar file and imported into any ADF Faces application.
A little fun feature is the ‘notification popup’ described as “Self dismissing messages are popping up everywhere these days (when you get an email, when you have a new calendar invite etc), and you might want to use this UI pattern in your ADF apps too.” in this blog article by Shay Shmeltzer.
Some advanced visualizations were added in the DVT library – initially released in the JET charting engine that will now also be shared by APEX. These visualizations include the picto chart, the tag cloud, the stock chart and the range series.
Probably driven by requirements from the SaaS teams, the ADF Desktop Integration component – for offline data reporting and manipulation in MS Excel – has been further improved. A soon to be expected new feature is a facility to embed JET Composite Components in ADF pages.
Because of Oracle’s own SaaS development needs, the future of ADF is quite solid and the evolution will continue. The framework will not necessarily be at the bleeding edge of what is technically possible but it will continue to track the development of browser and web standards, make new options available to developers and shield them from most underlying potentially disruptive changes. ADF absorbed the impact for example of moving from Flash to SVG for data visualizations, gradually makes the benefits available of leveraging HTML5 and has enabled responsive layouts and tablet based touch-screen interaction all with no or very low impact on developers.
For the development of custom ERP style applications that require a rich and productive user experience – especially for power users – with fairly heavy data retrieval and manipulation and no requirements for very high rates of innovation or demanding and pixel perfect user experiences that go beyond or even against the framework, ADF is a reliable, proven and quite productive choice.
The upcoming support for embedding JET Composite Components (read my previous article for details) will provide an innovation injection for ADF – the combination of the enterprise framework and the rapid evolution in the UI facilitated by JET.
User interfaces that need to be really responsive – both in terms adapting to device display layout and in terms of ultra-quick user feedback – and that are lightweight in terms of network traffic and very good at leveraging REST APIs, JET is a fitting technology. Aligning itself with the rich web client development trends in the industry including the MVVM and Single Page Application architecture patterns and offering very quick develop-test/run round trips and lightweight development and deployment tooling makes JET attractive to a large group of developers.
JET is positioned by Oracle for various use cases – from ‘add a little UI enrichment’ (such as the quite amazing data visualization components) to build a complete new application:
JET development can simply be done using text editors like Sublime or with the polyglot IDE NetBeans (that provides quick start project templates, code completion, build, deployment and local run support).
In the near future, Oracle will provide a browser based IDE – code name Tailwind – that provides these same functions as part of the Developer Cloud Service, including deployment to Compute VMs for dev-test/run cycles.
JET is now also considered the number one choice from Oracle for developing mobile applications, taking over from MAF (the Mobile Application Framework). The visual shows an mobile application built using JET and Apache Cordova – running against the MCS:
A major development are the JET Composite Components, based on the W3C Web Component standard. These reusable components take configuration meta data, runtime data through parameters and emit (client side) events that other components can consume and act upon.
The composite components can be distributed in simple zip files and through the Component Catalog. This catalog is accessible to JET developers, business users developing with MAX or ABCS as well as MAF and ADF developers.
This means that Oracle will enable ADF to embed JET Composite Components and interact with them – also using a client side event mechanism. The reuse potential of JET components is considerable, especially as Oracle expects and encourages components to be exchanged in the community, either for free or for a fee. Oracle intends to itself publish a set of components to expose its own public Cloud Services, presumably such as Document Cloud, Data Visualization CS and Process Cloud. (read my previous article for details)
Project Visual Code
Under the marketing theme Project Visual Code, Oracle “unveiled” what they called “a complete cloud-based application platform for low-code development”. The figure describing the scope of Project Visual Code looks like this:
As best as I can tell, they unveiled again Application Builder Cloud Service (ABCS) – a service that was also unveiled a year ago – and added MAX (see below). The term low-code is a somewhat clumsy attempt to indicate that development is done declaratively, and requires no programming or professional IT skills; it does not refer to low quality code, adolescent style code comments or 2GL programming. ABCS can be used for stand-alone applications or for SaaS extensions and offers single sign on for SaaS users when navigating to or using embedded ABCS applications.
The citizen developer is a business user who has very limited IT skills and yet has some requirements for which she preferably would not have to call in the professional IT people. That takes forever if it gets approved at all. If a user can create an animation in Powerpoint or a macro in Excel – that may be quite enough to be able to create a simple user interface or report on top of the enterprise IT resources. Provided these resources are exposed through APIs and a simple, declarative, browser based WYSIWYG tool is available for composing the user interface.
With Application Builder Cloud Service, Oracle provides exactly this facility. The business user can drag and drop UI widgets and associate them with business objects that can be defined as locally persisted custom data objects or as representatives of APIs for Oracle SaaS services or – in the near future – any REST API.
Applications created with ABCS are mobile enabled: they are responsive out of the box and ABCS offers a multi device live preview while developing the application. Applications can be staged and are finally deployed to a cloud environment – no set up is required to make this happen. Applications can be private or public.
A close relative of ABCS is MAX – the Mobile Application Accelerator. Like ABCS, MAX offers a rich, visual, declarative and code free application assembly experience, resulting in a mobile application. To build a mobile app, you don’t have to download platform-specific development tools like Android Studio or Xcode. And you don’t have to worry about configuring device simulators, either. With MAX, you’re not even tied to a development machine. Because it’s a web-based tool, you can log in from any computer or tablet and immediately begin building, testing and deploying your app.
At the time of writing: MAX has a different application designer than ABCS, even though the objective of ABCS and MAX is very similar. The technology of the mobile app produced by MAX is at this moment MAF – the Mobile Application Framework. JET is the technology in ABCS. The message from Oracle is that ABCS and MAX will merge together – to provide a single citizen developer’s user interface for composing applications – and that both will produce JET applications – either published as hybrid mobile app or hosted on the cloud as web application.
Note: ABCS can consume any REST API (or at least it will be able to) and MAX is bound for now to APIs exposed on Mobile Cloud Service (MCS). New business object-centric API builder coming to MCS: “Express APIs”. This will help developers build MAX-friendly API interfaces from the start. It follows HATEOAS methodology (Hypermedia as the Engine of Application State) instead of random collections of endpoints / resources in your REST services
Download the AMIS OOW16 Highlights for an overview of announcements at OOW16.