Summary of Day 4 at the Oracle Open World 2016

Late, but not forgotten, here is the summary of day four. It was too late yesterday, after the appreciation event to write it all down,

Wednesday was a somehow slow day for me as I attended two sessions only. Most of the day was reserved for meetings around my other activities in the OTN network like moderation and the German ADF Community which will soon relaunch their community page on OTN.

The first session was about testing web applications with Selenium ‘Testing Java Web Applications with Selenium: A Cookbook‘ by Jorge Hidalgo and Vicente Gonzalez Arellano, over at the Java One. It turned out that the Selenium Webdriver for JDev ADF is better working than the one showed in the demo in this session. The JDev Webdriver abstracts all the tricky stuff like waiting for ajax calls or finding the right component away from the developer. This make the job really easy. Summary: nothing new learned.


After a nice working lunch with my peer OTN moderators and the Queen of Moderators I attended a session about developing applications with Oracle JET and ADFbc REST services ‘Oracle Application Development Framework and Oracle JavaScript Extension Toolkit in the Cloud‘ by Sherry Yu, Shray Bansal and Abhinav Shroff. This session was interesting to see as it used REST services generated from ADFbc. This kind of REST services offer many usages

ADFbc REST Services Usage

ADFbc REST Services Usage

and allow some very nice features out of the box like pageable collections, rich set of meta data, list of values, attribute types and validation and resource discovery

ADFbc REST Services Functions

ADFbc REST Services Functions

During run time you can tailor the payload by only retrieving the attributes you need, execute batch transactions, sort the results and have build in security.

ADFbc Run Time Features

ADFbc Run Time Features

Simple queries can be added to the REST calls. These are working like ‘Query by Example’ in ADF tables. This set of features allows for many different use cases

ADFbc REST Use Cases

ADFbc REST Use Cases

like back end for OracleJET based applications, mobile friendly UIs, integration with other services and as REST solution for SaaS.


The remaining part of the day I spend on multiple events like hte OTN Blogger Meetup, OTN Happy Hour and finally the Oracle Appreciation Event featuring Sting and Gwen Stefani.

 

Summary of Day 5 at Oracle Open World 2016

I started the day with a session on Alta UI ‘Implementing Oracle’s New Alta UI Features’ by Richard Wright. Richard started by giving some reasoning about why Oracle developed Alta UI. It was manly because the users demanded a more mobile friendly UI. The biggest change which came with Alta UI was that the UI has to be build by thinking ‘mobile first’ and by more designing the flow of operations by personas. Only then you gain the full advantage of the Alta UI.

Transforming a older (legacy) application to a modern application using the Alta UI is not just migrating the skin. You have to redo the UI and design it for mobile first.This means that you have to think about different device sizes which in the end means that you have to design the application in a responsive manner.

Here the page stretches on the device. This is mostly not working on small devices as it makes the user to zoom into the right section to see the information. Because of hte size mobile friendly means that you try to visualize the information instead of e.g. showing the user a table. An image is giving information a human can intake more easily than  data in a table.

For a developer this means that using a list view should be preferred over using a table. A list view allows better responsive design.

Summary is that you should

  • Leverage major UI updates as an opportunity
  • Verify actual users versus previously targeted users
  • Target UI for preferred user devices
  • Understand their most important artifacts and tasks

Next session of the day was ‘Cloud-Native Application Development with Oracle Application Container Cloud‘ by Shaun Smith, Anand Kothari and Eric Jacobsen. This session is about the Oracle Application Container Cloud Service which lets you run native Java SE applications or Node.js based application run in the cloud.

I already mentioned the ‘Cloud Native Architecture’ on day 2.

img_bqnk2w

 

and the demands on the application development

and tools to use to make this architecture work from Oracles point of view

The Application Container Cloud should allow you to make such development simpley by

  • Develop
  • Zip
  • Deploy

your application. This can be done on a polyglot platform using java, php, Node.js and later even Ruby and Java EE. It’s an open platform allowing you to run many applications. Oracle provides a Linux system and you can bring what ever you like.

All this runs on Docker containers. The only constraint is that the applications must be stateless, as the containers are build up and shut down on the fly to load balance your application. This is done automatically without you needing to interfere.

Once your application runs monitoring the JVM or the performance of the application is done via the cloud services. Patching, if needed, is done for you too. Not that you don’t know about it, but it’s just a click on a button. If you don’t like the patch because it breaks your application you can easily rollback the patch


Final session of the day and OOW 2016 for me was ‘Using Docker with Continuous Delivery in Oracle Cloud‘ by Greg Stachnick and Mike Raab. This session talked about how Docker is used in the Oracle Container Cloud Service to allow agile, containerized development in the cloud.

The first part was about the developers cloud which was covered in almost every session about the cloud.

img_20160922_132523

Second part was about the Container Cloud Service and it’s base implementation StackEngine (a company bought by Oracle end of last year).

IMG_20160922_132704.jpg

Key features of the Container Cloud are shown in the image below:

IMG_20160922_132757.jpg

When setting up a service in a docker container the UI looks like

IMG_20160922_134200.jpg

Changes made in the UI are reflected directly in a docker run script (which you can get on the same page). Spinning up a new container is a matter of two clicks:

Stacks are the equivalent to Dockers composer but have some add on like you are able to add parameters to the containers.

In the end the Container Cloud service is a flexible ‘bring your own’ container and run it in hte cloud. Don’t forget to bring the needed licences too 🙂

Product will be available within the next 12 month!


That was the OOW2016 for me. See you next year!

 

 

Summary of Day 3 at Oracle Open World 2016

Started with the (early) morning keynote ‘Oracle OpenWorld Tuesday Morning Keynote‘ hosted by Bhanu Murthy B. M., Safra Catz, Hon. Chief Minister Shri. Devendra Fadnavis and Thomas Kurian.

As the keynote and it’s content is covered all over the media already I won’t add to this. Oh, one thing I like to say is that the ‘live’ demos did not really look live to me. Would you risk that your ‘live’ demo is going to hell because of some technical problem with Thomas Kurian on stage?


Next on my list for today was ‘Agile Development and DevOps Done Even Faster with Oracle IaaS and PaaS‘ by Michael Lehmann, Suhas Uliyar and  Siddhartha Agarwal. This session talked about agile development in the cloud using IaaS, PaaS and Microservices together with DevOps tools like Docker.

First a Cloud Navtive Architecture was introduced:

img_bqnk2w

Cloud Native Architecture

 Multiple services working together to build the cloud native architecture
img_-68tuak

Services for the Cloud Native Architecture

The practical part was a sample which showed how to build, deploy, or manage mobile-fronted, API-first autoscaling application, a microservice build on Node.js here, live on stage. New here is htat you can use the Management Cloud Service to introspect the microservice to see how it runs on your environment. The just build service then is consumned by anohter app (mobile using MAX) to visualize the data.

The final dashboard build for the mobile app, it took only about 20 minutes to build and deploy:

img_20160920_113941

Dashboard for the Mobile Application

and the final detailed architecture of the application:

Detailed Architecture

Detailed Architecture


Next on my Cloud program was ‘Development Operations in the Cloud: A Use Case and Best Practices‘ by Greg Stachnick and Jeff Stephenson. They talked about best practices using the Cloud Services to develop applications from the modern DevOps point of view.

img_20160920_123652

Modern DevOps

The case study was about the development of the Developers Cloud Service itself, neat!

img_20160920_124923

Developers Cloud Service Outline

This is a big project which is running completely in the cloud. Here is an image that shows a code review screen (sorry for the poor quality)

img_20160920_125529

Code Review

After accepting the changes the changes are pushed back to the mail line, triggering the next integration cycle in the continuous integration system. The typical cloud developers life is

IMG_20160920_125920.jpg

Day  in the Life of a Devloper

and the day of a manager

to summarize these points

img_20160920_131605

Summary

This summary hit the nail on the head. I’ve bin a contractor in many projects, always asking for more machines or more power. I would be happy if I could spin up another machine to do some testing instead of waiting for some other things to finish using the machine I wait for.


Before my day is over there are two sessions about ADF and JDeveloper to attend. First was Shay Schmeltzer with ‘Oracle Application Development Framework and Oracle JDeveloper: What’s New‘ which reveals what’s coming up in the world of ADF and JDeveloper. Shay started with the short history of ADF and JDev

img_20160920_160536

which is even longer if you count JBO to it too, which started 1999. Impressive. The session was more about features which are new in JDev 12.2.1 and JDev 12.2.1.1, both versions are out quite some time.  So, nothing new for seasoned ADF developers at the beginning.

Not so well known are ADF Business Components Triggers which are more known by Forms developers. They allow to do things right before or after some DB events fires.

IMG_20160920_161311.jpg

ADF BC REST Services and REST DataControl are better known if you work in the cloud or with mobile applications:

Remote Regions where introduced with JDev 12.2.1 but needed a patch to make them run (fixed in 12.2.1.1):

img_20160920_162051

Remote Task Flows:

img_20160920_162302

UI stuff like responsive support through templates (Tablet First), Massonry Layout and matchmediaqueries:

IMG_20160920_162555.jpg

Lots of new and changed data visualization components:

and finally to sum things up, other enhancements behind the scenes:

IMG_20160920_163029.jpg

For the future we can expect more and easier support for REST services and writing Groovy code. The biggest change will be the integration of JET Composite Components into ADF pages. JET Composite Components are an equivalent to ADF Declarative Components. You can build components from using other components, add properties to them to influence their behavior. Composite Components fire events which you can use to interact. Not sure how this will work, other that in the end you have HTML. Bad thing is that there is not even a time frame for this. More details in hte next section.

Anyway, ADF is not dead! There will be future development and enhancements in JDeveloper and ADF.


Final session for this long day ‘Oracle Development Tools and Frameworks: Which One Is Right for You?‘ by Shay Shmeltzer (again) and Denis Tyrell. As some of the features are not available at the moment the ‘Safe Harbor’ statement comes to play. So if you see something which you don’t find in the available version, you have to patiantly wait for it. No time frame given 😦

Shay summarized the different frameworks ADF, MAF, JET and ABCS and pointed out their key features. As the frameworks are well known I spare most details. As promised I give more detail about the Oracle JET Composite Components.

Sample JET Composite Components

Sample JET Composite Components

Key features of JET Composite Components and there basic structure is shown below

(Coming soon!) The composite components end up together in a Tenant Component Catalog where the components can be filtered by their characteristics

 

Which late will be extended so that components are available from different channels

img_20160920_183844

In the end there will be Project Visual Code provides a low code environment

Project Visual Code

Project Visual Code

After this deep dive into JET Composite Components I present the summary of the session which shows which development framework is used for which development

At the end of the session Shay and Denis answered some question which are noteworthy. I Cant remember all question but tried to summarize the key points from the answers:

  1. Oracle focuses on JET as the future development environment Future focus on jet. Why? ADF is already feature rich and the developer don’t ask for much more.
  2. Developers want more client side development. Demand on server generated UI is going to decline.
  3. JET will get offline capabilities! This can’t be done easily with ADF.
  4. JET allows faster exchange of libraries. JavaScript developers tend to rewrite their UI faster then ADF developers (see yesterdays summary where Geertjan Wielenga made the same point).
  5.  Public Component Catalog is only public to a point. You have to submit components which then will be vetted by someone before other users can use them.
  6. Cloud IDE (writing code in the cloud) will have JavaScript capabilities
  7. ABCS (Application Builder Cloud Service) is not available on premise right now
  8. For declarative JET development look at ABCS. ABCS allows to get the underlying JET code (save as) so you can look at the code and change it, e.g. to use it elsewhere.

Summary of Day 2 at Oracle Open World 2016

I started day two with brushing up my knowledge about NetBeans and how to work with it. I attended a tutorial session about a JPA modeling tool (jpamodeler.github.io) by Geertjan Wielenga and Gaurav Gupta.

This tool, written by Gaurav Gupta,  allows seamless working with entities to create data models and the other way around. It’s a graphical tool to create complex entity relationship models and to generates code like REST API and Angular JS 1 from the model. Nicely done plugin.

Lets hope we see more plugins like this one, now that NetBeans is donated to the Apache Foundation.

Next session again on NetBeans and this time on ‘Ten Essential Building Blocks of JavaScript in the Enterprise’ by Geertjan Wielenga again. The session talked about building enterprise applications with modern JavaScript front end. This trend is still picking up momentum in the industries, the room was packed.

Building blocks

Building blocks

You may ask ‘JavaScript in the enterprise?’ and this was i thought first too, but Geertjan showed why this can be done and how. He showed how to translate concepts such as ‘modularity’ and ‘loose coupling’ to JavaScript applications.

The are however things to think about like that you don’t put everything into the browser! There are applications which don’t need to be in the browser as they are very specific to only a couple of people (like air traffic control software). You can supplement such apps with new browser based parts like notifications or reports.

New features should be based on HTML, CSS and JavaScript. Avoid external plugins or flash. CSS isn’t all about styling. CSS is modular today (about 50 modules). Some of the feature you use CSS for can be accomplished by using JavaScript in a better way. A sample is that CSS is used to show/hide elements from the DOM to get responsive designs (mediaqueries). Using JavaScript you load/unload libraries from the DOM reducing the size of the DOM. JavaScript allows to get better result then CSS mediaqueries.

JavaScript Librarires

JavaScript Librarires

One other thing to do is to differentiate between frameworks and libraries (see picture) and what they are doing. The question to answer is if to use frameworks or libraries to build your application. Using a Framework lock you in on the vendor, libraries allows you to switch them out if you find a better solution. On the other side you have to put it together yourself, or use  e.g. OracleJET which puts some well known libraries together to a working framework but allow to switch the libraries against others.

A more debatable argument Geertjan made was about ‘Life in a volatile Ecosystem’:

img_20160919_114219

which points out, that you just code the application once, so maintainability isn’t the biggest concern. You rewrite the app anyway in short time. a so

After a short break to change the venue I was back into the cloud again. Greg Stachnick talked about ‘A Cloud Platform for Developers: A Tour of Oracle Developer Cloud Service’, a more executive overview with a couple of demos. This is not new to me so I spare the details. The new info were the things to come in future versions like hte Cloud IDE which allows you to change code directly in the Developers Cloud.

Cloud IDE

Cloud IDE

Also new will be the support of Docker Pipeline for continuous integration in a DevOps way:

Docker Pipeline

Docker Pipeline

The downside is that Greg clod not disclose exact date. We are in the range of hte ‘next year’ 😦

Next session, again a change of the locate included, was Shay Sheltzer on Application Builder Cloud Service:

Application Cloud Builder Service

Application Cloud Builder Service

In short the Application Builder Cloud Service allows hte citizen developer to create applications by abstracting most of hte complexity away. Applications can be build from templates, you can add your one templates to e.g. implement some corporate identity. The development is done by using ready to use components (in hte end OracleJET is used for the UI of hte application) from the component pallet. You only have to drag the components to their place on the canvas defined in hte template and you are done.

The data model is build from the entries you do while putting the application together. Once you deploy the application the entries to the field are stored in a DB. There is not administration of hte db required, it’s all done in hte background. The downside right now is that you only can import/export data to the app using csv files. Later version can use REST and the  Integration Cloud Service to get to corporate data.

To close the day I went over to the Oracle Applications User Experience Cloud Exchange an event inside OOW16 showing then next generation UX. There were some very interesting approaches on how UX can and will (?) work in the future. Some ideas are already implemented in the next versions of some cloud applications.

Smart Office, IoT and other more experimental interacting methods are very interesting for future UX. I had a great time there!

 

 

 

Summary of day one Oracle Open World 2016

Day one, Sunday 18th September 2016, is reserved for Oracle User Forum, so it’s not the real start of the OOW which will be Larry Ellison’s keynote on Sunday afternoon.

Nevertheless, Sunday is full of interesting session. I tend to pick a main theme for this day to get at much info in the short time available.

This year I choose Microservices and SOA Cloud Service.

The first session I attended was about design pattern for the SOA Cloud Service by Arturo Viveros and Ronald van Luttikhuizen. They boiled down their experience doing SOA projects in well known design pattern (Design Patterns) which you can use if you are tasked with the same problem. They identified patterns like ‘publish/subscribe’ or ‘mediator’ and showed how to implement them in the SOA Cloud Service and other cloud services.

This was really interesting and useful.

Next session was about ‘Tips for mastering SOA Cloud Service’ by Robert van Mölken. He gave practical tips about things you should do and things you should better not do when provisioning the service, running it and writing or composing applications for it. A session with lots of practical info.

To round up the  Microservice/SOA theme I attend a session ‘Microservices and DevOps and Oracle Cloud: A Bright Future’ by Sai Janakiram Penumuru. Sai strongly advised to use micro services together with SOA Cloud Service.

The thing I remember best was the ‘definition’ of microservices he gave. He compared a microservice to Unix shell commands. A Unix shell command does one thing, but does it good. Multiple shell commands can be tied together to build something bigger (e.g. using the pipe symbol). This definition is intuitive 🙂

The remaining on the session he talked about how DevOps works and how the different Oracle Cloud Services supports this with the help of microservices.

The remaining of the day was reserved for networking and the OOW annual ACE dinner. This year the event held at the Chart House. Great food, great views!


Thanks to the ACE program for this great event.