This article gives an overview of some of the most eye catching stories from Oracle OpenWorld 2015 around application development. It discusses traditional technology as well as the most recent introductions and cloud services. The main topics are JET, ADF, APEX, Forms, Developer Cloud Service and Application Builder Cloud Service.
When Oracle first started, its product portfolio was limited in scope. An RDBMS that summed it up. After several years, the demand for tools to more easily create, inspect and manipulate the data led to the predecessor of what was to become Oracle Forms & Reports. For two decades, Forms was the premier application development technology coming out of Oracle Corporation. Tens of thousands of organizations around the world have used the technology to create end user applications to support their business processes. Oracle itself became the most prominent user of Forms when it created its enterprise applications eBusiness Suite.
This should not be interpreted as a signal that when you have a critical Forms application in your organization, you can just sit back and relax. Forms, while still running, is a dead end technology. Will it ever make the step into the clouds? Is the support in browsers for Java applets around for much longer? (note: Oracle strongly dissuades companies and developers from creating Java Applets, primarily because of security risks) For how much longer will business users accept the user experience offered by existing Forms applications? And how long before Forms developers are so hard to find that any functional change in existing applications are virtually impossible to realize?
Many organizations are making a move away from Forms – or at least considering one. Some choose to expose the business logic in their existing Forms as a web service on top of which they create new applications – even mobile ones. The AuraPlayer technology allows this elegant encapsulation of existing logic, without touching the existing application.
Large scale development of new functionality using Forms as the development technology is not something that seems like a particularly good idea. Implementing the functionality in a modern technology that than coexists with the Forms application is probably a more future proof approach. Oracle itself uses such an hybrid approach in the E Business Suite – where new modules are developed in ADF and even some “hybrid pages” exist (based on the OA Framework page with an embedded ADF region). Forms applications can be replaced with similar applications, newly built in modern technologies. Various tools are around that help quick start such a migration, primarily from Forms to ADF, including QAFE. The business case for a purely technology driven migration is frequently hard to put together; implementing new business requirements and realigning the application with the current design of business processes are probably in order to make the migration meaningful.
As with many thriving communities, there is a plethora of tools, frameworks and libraries to choose from. New open source projects are started every week – and older ones are abandoned. As with the scattered landscape of uncountable Java Web development frameworks in the first decade of the century, we now see a similar situation on the client side. Several libraries have been around a long time and continue to evolve and flourish, such as JQuery (which was first released in 2006). The technology currently attracting the most attention is the client side MVC framework AngularJS – created by Google – that provides the backbone of many modern rich web applications.
Oracle does not have the ambition to replace the existing web development frameworks. It wants to complement them, based on its need for a set of technologies that provide:
· productive development
· a consistent user experience completely in line with the Oracle Applications User Experience and the Alta UI look and feel, used across the SaaS and PaaS cloud services (this means that by just looking at the UI, it should not be possible to tell JET applications from ADF Faces applications)
· accessibility and internationalization (very relevant to Oracle as vendor of enterprise applications around the world that have to comply with many governmental regulations)
· built-in validation and security
· a responsive user interface across devices – with many different screen sizes and form ratios
· rich data visualizations (because data visualizations are a key element in the Oracle user experience)
Oracle first of all has these needs for itself – primarily with the cloud services it is rapidly churning out – and then also wants its customers to be able to use JET and benefit from its capabilities. JET was made public at the end of October. At the time of writing, it is only allowed in production applications for organizations who have subscribed to at least one PaaS offering from Oracle. In the near future – early 2016 seems a reasonable assumption – JET will be released under an open source license. The JET release pace will be much higher compared to other products – the objective is to do a bimonthly release – in line with the hot, vibrant state JET is in.
JET is intended to be modular. This means that you can leverage parts of JET (for example the rich data visualization components) but not necessarily all of it. It also means that you can replace some of the libraries used by JET with other libraries to fulfill a specific role.
The launch of JET at Oracle OpenWorld has caused a lot of buzz among developers. It definitely appeals to developers wanting to join the rich client development frenzy and seems to fill a gap in the Oracle technology stack in the area of development of large scale, public internet web applications. Already, bloggers are trying out JET in various combinations: integrated with AngularJS, embedded in an ADF Faces web application, used in APEX and more. JET also made an appearance in many seemingly unrelated conference sessions, where it turned out to be the underlying UI technology – for example for Enterprise Manager 13c, StreamExplorer and most browser based development interfaces.
Where does this leave ADF, you wonder. What does this introduction of JET mean for Oracle’s strategic 10-year old, mature enterprise application development framework? What is the status of ADF anyway?
Not much has changed really. Within Oracle, 1000s of developers work with ADF to implement the SaaS applications – both the original Fusion Applications as well as many of the acquired SaaS applications. ADF is also used – along with MAF for mobile extensions – for implementing some rich additions to the traditional Applications (such as E Business Suite). An increasing number of partners and consultants around Oracle Apps are [finally] adopting ADF as the development technology to implement customizations and extensions. Apparently recent releases of EBS (12.2.5 was released just prior to OOW 2015) have spurred on this trend.
The PaaS4SaaS offering in the Oracle Public Cloud provides the platform for extensions to the SaaS applications such as Sales Cloud and HCM Cloud. These extensions are developed using ADF, deployed to the PaaS4SaaS Cloud Service and subsequently integrated into the SaaS UI using the extensibility mechanism. The Oracle Applications User Experience is based on three high level objectives: simplicity, mobility and extensibility. The simplified UI that provides the initial interaction of users with the SaaS applications is attractive, intuitive and functional. This UI allows people to glance to make sure there are no urgent tasks, scan for more details if something comes up, and commit to fully engaging with an app only when a task requires it. ADF was extended with several powerful UI components that help implement this approach – such as the PanelDrawer, PanelTabbed, the SpringBoard, the Deck component (with flappable cards). Similar components are available in JET.
The User Experience Rapid Development Kit (UX RDK) was announced by the Oracle Applications Cloud User Experience team. This kit helps organizations design and build elegant, simplified UIs according to the Cloud Applications User Experience. The RDK contains sample ADF applications that are ready to be deployed either to a local WebLogic server or to the Oracle public Java Cloud. These applications are built using reusable components that constitute the heart of the simplified UI.
The reusable components in the rapid development kit are the same that Oracle uses when creating the SaaS applications such as the HCM cloud and the Sales cloud. This means that when you want to develop extensions to the SaaS applications these components are a perfect starting point to achieve the same look and feel. If you were Oracle’s competitor who wants to create a similar SaaS application the rapid development kit is your perfect starting point too.
The RDK also contains tools for creating wireframes for your web pages. Using straightforward PowerPoint presentations, you can easily design the pages with the main interactions and navigation flows. The predefined design building blocks in the wireframe tool make it easy to also map the design to the ADF implementation building blocks.
Finally, the RDK contains instructions for deployment of the ADF application to the Oracle Java cloud.
A new release of both JDeveloper and ADF was part of Fusion Middleware 12cR2 (12.2.1), published just before the start of the OOW conference. Some eye catching features in this release:
· ADF 12.2.1 runs on WLS 12.2.1 which is now fully Java EE 7 compliant – including JMS 2.0, Servlet 3.1, JSF 2.2, EJB 3.2, CDI 1.1, Java Batch 1.0
· Integration with Developer Cloud Service; from JDeveloper we can create a connection to an Oracle Developer Cloud Service environment, we can track and update tasks and issues, we have GIT integration, we can schedule and track builds and more
· Integration with Java Cloud Service (note: JCS will probably have support for WebLogic 12.2.1 as of early Spring of 2016)
· REST Data Control – to consume REST/JSON or XML services
· Remote Regions – to embed in ADF Faces pages one or more task flows deployed in different web applications, potentially on remote application servers
· Masonry (response) Layout and the Match Media tag for advanced responsive-ness
· New Data Visualization Components (NBox, Funnel, Doughnut Chart, Polar Coordinate) aligned with JET components; also an improved, more declarative Chart design time
· The Alta UI is now the default user interface; http://altaui.com contains the latest resources for this user-interface style
· Theme Editor – for declarative, WYSIWYG style editing (resulting in an ADF Faces skin)
· Enhancements in Desktop Integration (aka ADF for MS Excel)
This list of features demonstrates the stage ADF is in: rich, mature, steadily evolving, absorbing major technology trends, and not rapidly changing or participating in popularity contests by taking on board short term hypes. Oracle strives for hybrid co-existence between JET and ADF – with mutual reuse of visual components whenever possible. At the moment, MAF is the third guest at this party – providing the native app technology that gives the same user experience.
On a final note: shortly before OOW 2015, Oracle Consulting also released JHeadstart 12c. JHeadstart is a framework for declarative application design & ADF generation – similar to Oracle Designer’s declarative Module design & Forms generation.
Visualizations are probably the most effective way to convey information, insights and prompts for action to humans. We are not terribly good at quickly and correctly interpreting textual information that require sequential processing. Our brains however are very well equipped to rapidly interpret information presented in a well defined visualization. The expression ‘one picture says more than a thousand words’ is one that speaks volumes (and a picture capturing that expression would of course tell us even more…).
Visualizations were omnipresent at Oracle OpenWorld 2015. From keynote sessions by Larry Ellison and Thomas Kurian to the demo grounds where SaaS applications as well as development tools, PaaS services and other products were demonstrated, visualizations were everywhere. In part because they look nice and have an immediate appeal. But far more than just eye candy, visualizations are truly very effective in many use cases – especially when rapid responses to real time findings are required or where decisions need to be made based on deep insight in trends, patterns, correlations and underlying causes.
At the heart of Oracle’s strategic design philosophy for [cloud]user experience is the ‘glance, scan, commit’ way of working we humans tend to adopt. We scan our surroundings for things that stand out in some way and therefore may require more attention. The things that attracted attention on our first scan are then glanced at – to better understand what makes them stand out, quickly interpret if action is indeed required (such as more in depth investigations, decisions or execution of a workflow or business process). Some things can perhaps be done on the fly (accept/reject, send left or right, acknowledge) and are immediately removed from the to-do list. For others we may determine that nothing further needs to be done. Then there are more involved tasks that are the end result of the scan and glance stages. These tasks form a to do list of things that we need to work on – commit ourselves to – either instantaneously or at a later moment.
Glance, Scan and Commit are implemented throughout Oracle’s SaaS applications. Users typically start from an initial dashboard that provides them the information they need to perform the Glance. This is typically information that is the outcome of aggregations and advanced data analysis – resulting in condensed reports of those facts that the user needs to be aware of, needs to react to or decide upon. This information should be presented in such a way that the ‘cost of understanding is minimized’. This cost consists of time and potential for misinterpretation.
Usually this means that the presentation shows a recent change or trend, a comparison with a threshold, deadline or other target or a list of action items. Data Visualizations are used to present these elements in a way that makes them easy to interpret quickly and correctly. Compared with a purely textual representation, most visualizations can easily add context – such as time or location – and categorizations or grouping. Visualizations can leverage special traits of our human minds. These include our ability to quickly interpret, compare and spot differences in position, shape and size, color (to some extent) and extract a story from animation. Our brain’s associative powers quickly come into play with visualizations.
Jeremy Ashley, GVP Cloud Applications UX at Oracle and responsible for the Glance, Scan, Commit philosophy, stresses that visualizations may not be too simplistic, or our brain simply zooms out. A visualization needs to hold a certain challenge in order to pique our curiosity.
Visualizations not only cater for the glance phase, they can usually also play an important role in the scan phase. Visualizations can allow drill down, to analyze a little further and look in more details into specific areas of interest indicated during glance. Additionally, visualizations may go beyond just presenting the data and also support simple manipulation of data – for example adjusting a gauge or dragging elements on a time line or even a bubble chart.
consistency in the design of visualizations in an enterprise is important. Visual clues are very powerful to human brains. It is important therefore to use the same visual clues for the same type of information. When we assign a certain meaning to a color or shape in one situation, we should not have that meaning represented by a different color in another situation. The same with axis-orientation, use of shapes and fonts. Similarly, the same visualization – progress indicator, arrow gauge, tree map, doughnut chart – should be used for presenting a certain type of information across the user experience. It is not efficient – to use just one term for it – to represent the same information in different ways. That would definitely increase the cost of understanding and the risk of misinterpretation (as well as alienating the end user).
· Interactive Grid – a new rich client side centric region that allows editing multiple rows of data in a dynamic JSON enabled grid; multiple grids can be included in a page
· Page Designer Enhancements, including Component View and improved property palette
· Declarative Master-Detail-Detail regions
· Declarative RTL-support (Right to Left languages)
· More and improved packaged applications
The SoD also highlights the importance of APEX to Oracle itself. The tool is used for many internal applications – such as the Aria People employee overview system – that support Oracle’s own business processes. The Oracle Store and Oracle Partner Store are examples of external facing applications that were created using APEX. Parts of some products, such as Audit Vault, are based on APEX. Oracle Application Express is the standard development tool included with the Oracle Database Cloud Service, as well as with the Database (on premises). With APEX in the cloud, organizations can achieve a running application in record time – as discussed in this article: The APEX of Business Value… or: the Business Value of APEX? Cloud takes Oracle APEX to new heights!. The new Application Builder Cloud Service (discussed in the next section) offers a similar rapid application development proposition, that is more targeted at business users than at [PL/SQL] developers.
Application Builder Cloud Service
The Citizen Developer – also known as the Line of Business user – is the non-technical but still somewhat IT-savvy member of a business department. She may configure web surveys, create macros in Excel spreadsheets, perform complex data analysis or maintain a departmental web site. She does things that touch upon the responsibilities of the corporate IT department, probably knows some people in that department to consult with and she may want to do even more. Gartner identified the citizen developer a few years ago and Oracle has identified her as a persona it wants to cater for with the public cloud.
The Application Builder Cloud Service (ABCS) allows our line of business user to develop a web application in a declarative manner. ABCS hosts the application, does access management, manages custom data objects and takes care of interactions with REST services. As Oracle puts it on https://cloud.oracle.com/ApplicationBuilder :” Oracle Application Builder Cloud Service enables business users with no previous programming experience to rapidly create web and mobile apps, minimizing dependence on IT departments and reducing infrastructure costs.”
Applications on ABCS are created with either the Alta UI or the Oracle Applications Cloud UI template – extended with custom logo’s and design elements. These applications can work with custom data objects (for which ABCS creates tables in an associated database schema) and existing REST services selected from a catalog . Derived from these data sources are Data Objects that have attributes, calculated attributes and lookup attributes that reference other data objects.
Pages are created declaratively, based on data objects and for the operations to be performed (pages for table listing, detail presentation, form editing etc) on them. In the WYSIWYG page designer, using drag & drop and through a property inspector, data bound visual elements can be added, moved around and configured- similar to IDEs such as JDeveloper or even Forms Builder – but all inside the browser.
When the application has reached the point where it can be released to real users, a two-step stage-and-publish workflow is performed; ABCS then makes the application available on a URL that can be shared around, enforces authentication and authorization (unless the application is publicly available) based on Oracle Public Cloud accounts and provides Single Sign On within the Oracle Public Cloud (for example for users navigating to the ABCS app from within a SaaS application
The visual experience with ABCS is very impressive. The page designer is attractive and seems very intuitive. The Live Preview Mode provides the next level of WYIWYG experience. With drag & drop, pages are easily constructed and (re)organized. Creating data objects is fairly straightforward and consuming REST services a piece of cake. Many preconfigured application actions – lookup & join, CRUD, validate, navigate – are available out of the box to be associated with fields, buttons and links.
Anyone can get their stab at their first application running in a few minutes and enriching that application is apparently very simple and productive too. And that application looks great: templates for both Alta UI (used for example for all Oracle Public Cloud user interfaces) and Oracle Applications Cloud User Interface (used in all SaaS applications) can be selected. Launching the application for a larger user community or even for public access is very easy.
A substantial degree of overlap exists with APEX- that other browser based declarative development environment for departmental application development. Oracle’s positioning seems to state that APEX is primarily seen as the tool for reporting and for applications used within the IT department. Additionally, at least for now, ABCS does not exist in an on premises edition
At the time of writing, ABCS only supports custom data objects and interaction with REST services exposed by Oracle Sales Cloud. Integration with other SaaS Services and especially with REST services exposed on ICS, MCS, JCS and SOA CS – and preferably any REST service anywhere – is very much looked forward to (and is in the works at Oracle, to be added in the next few months)
The temptation will be enormous to use ABCS to create far more complex applications than are currently suggested as the scope for ABCS; when the envelope of a particular application has been pushed and pushed – as will happen – the productivity is bound to collapse and at some point a dead-end will be reached; in the longer term, there may be the possibility to then export the application as an Oracle JET application and continue development on it
The Application Builder Cloud Service is an impressive piece of work. Attractive and productive web applications can be put together very rapidly in an apparently very agreeable manner and subsequently published to a selected user group or the general public. It can be used for extending Oracle SaaS applications or creating simple stand-alone applications. Once more data visualizations – the stunning charts from JET – have been added along with internationalization and the more generic REST service support, this is one hell of a tool in the Oracle Public Cloud toolbox.
Developer Cloud Service
The Developer Cloud Service is one of the earliest PaaS offerings from Oracle, around already for a few years. Initially, the service came as a free entitlement with other cloud services such as Java Cloud Service. It can now also be purchased in its own right.
This cloud service supports development teams in their efforts to coordinate the work and track issues, manage and version control sources, run unit tests and perform quality reviews, orchestrate build jobs and deploy to target environments. Being cloud based and accessible from anywhere, this service is particularly good at supporting distributed teams. Developer Cloud Service provides a very convenient way to build artifacts for and deploy to one of the Oracle Public Cloud services.
The Developer Cloud Service can be accessed through a web browser – as well as in many other ways, such as directly from IDEs (Eclipse, NetBeans and JDeveloper and from MyLyn), through REST APIs and from the command line through an SSH tunnel.
The service comes with a hosted Maven and Git repository – and more repositories can be configured, including on premises environments. Developer Cloud Service has a built in Hudson based build management system with support for building with Ant and Maven. It supports unit testing including Selenium based web application testing.
Fairly recent features include:
· integration with new cloud services: SOA CS (for SOA Suite Composite build and deployment), Mobile CS, Java SE and Node.JS. Strong support for development and build plus deployment of SaaS extensions in the PaaS4SaaS cloud.
· integration with Oracle’s public Maven repository – with WebLogic and other Fusion Middleware artifacts, including for ADF, SOA Suite, Service Bus and Coherence.
· Code Reviews – coordination of the peer reviews of code artifacts
The functionality and relevance of the Developer Cloud Service has increased quite substantially in the last year. The user experience is much better and the functionality is much richer. It seems that having such an integrated collaboration environment will be a real benefit for creating a smoother, more productive and higher quality development process, especially for distributed teams and/or deployment to (Oracle) Public cloud environments. At this moment, there is no support for PL/SQL development – which is a bit of a shame given the importance of PL/SQL artifacts in most Oracle based development projects – and the general lack of good software engineering practices for PL/SQL development. Hopefully, this will soon be remedied. One thing I would be very interested to know: is this service dogfood in the sense that Oracle product development teams use it for real? If so, that would be almost the ultimate proof of the pudding.