Oracle’s portfolio for Custom Application Development – snapshot taken at Oracle OpenWorld 2016

1

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.

image

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.

image

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.

Forms

imageForms is currently (as of late October 2016) at release 12.2.1.2.0 – new releases (with small, incremental changes) on the roadmap. Support for Forms from Oracle will be available for many years into the future. However, the functional evolution of the product has almost come to an end. The main new developments are to deal with the fact that almost all modern browsers are dropping support for the Java Runtime plugin. In other words: it is not possible to run Forms with current or future versions of Chrome, Firefox and Edge. The short-term work arounds involve running an older browser [version] or using the IE Tab in Chrome. The recommended approach going forward is to run Forms as stand-alone Java Web Start application – outside the browser context. This means the Single Sign On capabilities and any feature involving browser interaction – such as the bi-directional JavaScript API introduced in Forms 11g – is impaired or disabled.

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.

APEX

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

Image result for oracle apex 5.1 chart jetImage result for oracle apex 5.1 chart jet

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.
    Image result for oracle apex 5.1 interactive grid
  • 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

ADF

imageThe 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: 11.1.1.0 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 (11.1.1.9) with many backported features from the latest 12c releases.

The most recent release of ADF is 12.2.1.1 (June 2016) 12.2.1.2 (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.

image

The REST Data Control is extended to consume almost any REST API and handles any ADF BC based REST APIs completely automatically.

image

An improved feature that could probably be worked into a microservice story is remote regions that allow one application to embed a taskflow deployed in another applications. Other improvements include better runtime performance by doing more on the client (JavaScript in the browser) and using less server round trips. For example: client side row caching for tables and client side input date. The code editor component now has code completion. Touch support has been added for Microsoft Edge.

Skins for ADF applications can be developed using the browser based Theme Editor.

image

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.

image

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.

image

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.

JETimage

From the public launch of the technology only one year ago, the rich web client development toolkit JET (short for JavaScript Extension Toolkit) seems to have taken off with a vengeance. Both within Oracle – dozens of products teams have created new user interfaces based on JET – and outside where over 3,000 developers have tried their hands at JET – the interest is quite strong. JET combines a number of popular open source JavaScript libraries with a rich set of Oracle’s own UI components – derived from and aligned with the Oracle Application Cloud User Experience and Alta look and feel and reusing many existing DVT (or data visualization) components known from ADF, BI Enterprise Edition, Enterprise Manager and other Oracle products.

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.

image

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:

image

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:

image

 

MAF resembles ADF – one of its initial attractions – and uses an embedded JVM running on the mobile device. However, with the rapid evolution of HTML5 and the JavaScript engines on mobile devices as well as the progress in the Cordova library for integration with native device features, the general trend for mobile applications has been towards JavaScript based apps. JET integrates with Cordova to allow the development of these so-called hybrid apps – a stack internally referred to as ‘JET Mobile’ within Oracle, even though that is not a real product name. MAF will not go away overnight, but no major new features are to be expected. Mobile initiatives within Oracle will all be done using JET it appears.

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.

image

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.

image

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:

image

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.

Application Builder Cloud Serviceimage

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.

image

You may have a little déjà vu from the early APEX days: wasn’t that originally positioned in a very similar way? And you would be right – it was. APEX evolved into a popular PL/SQL programmer tool, quite removed from departmental business developers. ABCS is based on JET – and applications can be enriched with JavaScript code snippets and JET composite components. So when the citizen developer hits a functional wall with the declarative features, she can bring in a web developer to help her out.

image

MAX

A close relative of ABCS is MAX – the Mobile Application Accelerator. imageLike 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.

Image result for oracle max mobile

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.

About Author

Lucas Jellema, active in IT (and with Oracle) since 1994. Oracle ACE Director and Oracle Developer Champion. Solution architect and developer on diverse areas including SQL, JavaScript, Kubernetes & Docker, Machine Learning, Java, SOA and microservices, events in various shapes and forms and many other things. Author of the Oracle Press book Oracle SOA Suite 12c Handbook. Frequent presenter on user groups and community events and conferences such as JavaOne, Oracle Code, CodeOne, NLJUG JFall and Oracle OpenWorld.

1 Comment

  1. Lucas, I would like to say ‘excellent summary’ of the Oracle Dev Tool stack, but it is so much more than a summary. Well done. Extra choice requires more informed decisions, which I think many Oracle dev shops are struggling with. But a good time to be involved with the Oracle Dev stack. One thing that has changed is the pace of change, even with pre-pre announcements of technology, new features are regularly appearing without the long wait for the next release train to leave the station. You will remember the pain of getting a new feature into a dev tools release, years could go by! Today, the sometimes monthly cloud releases bring new features out before marketing can catch up. Somewhat of a turnaround I think.

    David

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.