Reflections after Oracle OpenWorld 2015 – Application Development

9

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

Forms

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.

imageOver the years, Forms evolved – from terminal to fat client and back to thin client (browser). It embraced Java and later JavaScript as well. And although even in the late 90s of the previous century an imminent demise of the product was predicted (Oracle’s slogan at the time was ‘300% Java’ – which did definitely not include Forms), Forms has been going pretty strong through the first decade and a half in the 21st Century. The release of Forms 12c is therefore relevant for many companies that still run business applications on this mature technology. The lifetime of Forms has been extended even further, now that the product runs on the latest WebLogic Server, release 12.2.1. The functional evolution of Forms as a development platform has come to an almost complete stop (check the ultra thin release notes for this release for new features) – but that is not the point. Existing applications are guaranteed to be runnable for yet a bit longer.

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.

JET – JavaScript Extension Toolkit

JET_hero_girlThe very latest in application development technology coming out of Oracle is called JET, short for JavaScript Extension Toolkit. JET is a toolkit that supports the development of rich client web applications that can run on any device that supports HTML 5 and JavaScript. Oracle has been working on JET for a number of years. One of the main original objectives is to provide a light weight, spiffy user interface for the Oracle Public Cloud services. JET is the technology driving the consoles, configuration pages and reports for the cloud. It is also the technology used for the services aimed at the citizen developer such as the Data Visualization Cloud Service and the Application Builder CS.

The browser has evolved into an application platform, with recent advances in JavaScript and the general adoption of HTML5. A shift in web application architecture is taking place as a result. Especially for public web applications that potentially attract large number of users that require a simple [often self-service], attractive and smooth user experience across a substantial number of devices, it has become common to have a rich [JavaScript] client that interacts with stateless REST-services provided by backend servers. The client is responsible for rendering and manipulating the HTML, a departure from traditional Java EE web applications where server side generation of HTML – for example in Servlets, JSPs and JSF Facelets – is common.

The already large and thriving community of web developers has thrived even more with the advent of HTML5. Many libraries and frameworks have come into existence or were rejuvenated into this new era of web development. Far more web developers and JavaScript programmers are around than Java EE web developers. On top of the shift in [public] web application architecture, this is a compelling argument for many organizations, including Oracle, to embrace rich client/thin server web development in addition to – or for some even instead of – the thin client/rich server model.

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.

image

JET consists of a set of Oracle contributed JavaScript libraries that make it as simple and efficient as possible to build applications that consume and interact with Oracle products and services, specifically Oracle Cloud Services. These Oracle libraries work with generally available open source JavaScript libraries that are leveraged and tied together by JET. JQuery and JQueryUI are the most obvious libraries in this set; the others are RequireJS, Hammer and Knockout. The latter simplifies the implementation of the MVVM (client side Model-View-ViewModel) architecture with two-way data binding and provides a common model layer for binding to REST, WebSocket and SSE sources

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.

Development of JET applications largely means JavaScript development – for which developers can use their favorite text editor (Sublime is a popular choice). Note that Oracle stipulates that JET is for intermediate or advanced JavaScript programmers; it does have a fairly steep learning curve. Alternatively, the NetBeans 8.1 IDE has built in support for JET – including the JET QuickStart Basic template, pre-installed libraries and code completion. JET has been released with extensive documentation, cookbooks and many code samples that can be tried out and edited on line. These samples can be copied and pasted into newly developed applications.

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.

ADF

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.

image

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.

Apart from the crucial role ADF plays for the Oracle Applications and SaaS products, it is used by many organizations around the world for the development of enterprise applications – the type of application developed using Oracle Forms in the recent past. User interfaces that support trained users with complex tasks, elaborate transactions and extensive data analysis or manipulation – the commit stage from glance, scan , commit philosophy – are prime candidates for implementation with ADF. For applications that stay within the constraints of the framework – which have been stretched considerably through the introduction of many UI components in recent years – ADF offers very productive development. ADF, because of its foundation on Java and Java EE and its still growing strategic importance to Oracle, is a safe bet for any organization that wants to do custom application development. The evolution of HTML, JavaScript, Java (such as the new DateTime API, Lambda expressions and Streams, HTTP/2, WebSockets, Server Side javaScript) and Java EE (JCache, Servlet 3.1/4.0, JSON binding, JMS 2.0/2.1, REST) make their way into ADF and ensure its continued relevance.

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 support in ADF BC – to expose Application Modules as REST/JSON services image

· 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

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.

imageAt 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).

Applications developed by Oracle and developed by others using Oracle technology have at least the potential to provide both a powerful and appeals as well as a consistent visualization of data. The data visualizations that have been part of ADF for a long time were introduced in the Mobile Application Framework (MAF) a few years back. These same components now also are a core constituent of Oracle JET (the JavaScript framework released by Oracle to implement rich client web applications) and will be adopted in Oracle APEX 5.1 and in the Application Builder Cloud Service. This means that visualizations in any application, no matter how it has been developed, can be consistent: same exact look and feel. It now becomes the responsibility of application designer and developers to design the visualizations in a consistent way that represents data in such a way that the cost of understanding for the user is minimized.

imageThe set of visualization components handed to us by Oracle keeps on getting richer. Some of the more recently introduced or enriched visualizations demonstrated during OOW 2015 are: Range Chart, Stock Chart, Tag Cloud, Funnel, Polar and Radar Chart, Donut Chart and NBox. The best way to experience these visualizations is through the WorkBetter Demo Application or through the JET Cookbook section on Data Visualizations. The Cookbook shows the various configuration options for the visualization components, explain interactivity (drilldown, manipulate) and animation as well as styling – all through many live examples. For JET developers, it even contains ready to copy-and-paste JavaScript code.

APEX

APEX 5.0 – the biggest release for APEX in many years – was finally released in the Spring of 2015 after an extensive beta testing phase. The WYSIWYG page designer is a key feature – bringing a modern IDE like experience to browser based development. Universal Theme is an all-new user interface for applications that has been built from the ground up. It aims to empower developers to build modern, responsive, sophisticated applications without requiring expert knowledge of HTML, CSS, or JavaScript. The user experience for the APEX developer has been much improved too. Interactive reports have been redesigned from the ground up – resulting in new capabilities for developers and end users. Also included are modal pages, a new calendar, support for mobile reporting and packaged apps (small, ready to run or extend applications).

According to the latest Statement of Direction for APEX (published in October 2015), there will be yearly updates to APEX. The next one will be APEX 5.1, which will probably hit the streets in the Spring of 2016. This release will among other things start to take on board elements from Oracle JET: the SoD indicates that a new JavaScript charting engine is part of release 5.1, which produces responsive and accessible HTML5 charts. Other new features in 5.1 are:

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

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

designer

Actions to be performed on button click, link activation or other events can be specified using a set of preconfigured actions (such as query data, create new record, delete record) or using custom actions (to be programmed in JavaScript – which is probably a bit of a stretch for true Line of Business users; it does seem likely that a citizen developer asks some assistance from developers – or perhaps acquaintances with some web development experience)

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

When the citizen developer is stuck, there are few extension points – custom actions in response to UI events, embedding of custom HTML, CSS and JavaScript and integration of custom components, for example shared through the Cloud Marketplace – where a real developer can step in to help out; this developer needs to have web development skills, especially JavaScript.

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

The story of the Line of Business user or citizen developer is a little hard to swallow; the first steps towards the application can probably be taken by such a person with ABCS, but quite rapidly some form of guidance by someone with real development skills will be needed (to write a few lines of JavaScript, wire up REST services and help with custom components)

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

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

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.

· in browser code editing –for code review and editing directly from the browser, with formatting and code completion support for Java, JavaScript, Node.JS and Oracle JET applications

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

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.

9 Comments

  1. Great article Lucas.

    Regarding internal use, the Developer Cloud Service team and many Oracle product teams use this service as our day to day development platform. DevCS is developed as a single project with features broken into individual Git repositories. All specs, sprint meetings, etc. are tracked in the Wiki and all development tasks are tracked in Issues. We have a robust continuous delivery pipeline defined in Hudson with jobs to perform builds, unit tests, Selenium tests, and promotion to multiple test and staging environments.

    If you still have access to the JavaOne 2015 catalog, checkout this session – Development Operations in the Cloud: A Use Case and Best Practices [CON3439]. We went into detail on how the DevCS team uses the product internally and did a live Merge Request of a real issue that was being worked on for the next product release.

    • Lucas Jellema on

      Hi Greg,

      Thanks for your reaction – and your compliment. I do indeed still have access to the catalog: CON3439 Session Slides at JavaOne 2015 and was able to download the slides. It is interesting to learn more about how your team uses DevCS.

      Can you also name other teams for Cloud Services that use DevCS? Is it mandated for every team – or optional? And if some teams are not using it – do you know what is holding them back?

      regards,

      Lucas

  2. It was a great article. I believe that Oracle Developer Cloud Service can be used for PL/SQL development activities such as code versioning (looks to me like a GIT), build (using ANT scripts), code reviews (again using GIT similar interface). Is there something I’m missing here?

    • Lucas Jellema on

      Hi Satya,

      Thanks for the compliment. And yes, you are right: that level of support is available for PL/SQL in the Developer Cloud Service. However, the service does not have any awareness itself of the database as deployment target and PL/SQL code as a source type. The upcoming in browser code-editor does not have support for PL/SQL. While these are not major limitations – in view of the incredible amount of PL/SQL programming done around the Oracle stack every day, it would be nice to have some special support for PL/SQL and PL/SQL developers (especially since PL/SQL development is not quite at the bleeding edge of adopting software engineering and continuous delivery practices).

      Lucas

      • Thanks for the clarification Lucas. Now I realize how strange it was that it didn’t have support for PL/SQL. Once again, your articles are just awesome.