In this article a first brain dump with observations from the Oracle OpenWorld and JavaOne conferences. These are fairly raw notes – primarily for my own consumption. They may be useful to you as well.
OOW13: 1824 sessions, 3104 speakers
J1: 523 sessions, 557 speakers
Internet of Things
powered by connectivity on devices running embedded Java – producing Big Data and Fast Data – requiring decentralized gateway devices that receive data from edge devices and do event processing to filter/pre process before informing back end systems
Convergence of Java SE and Java ME is rapidly progressing. The Java 8 SE Compact Profile is a subset of Java SE (same APIs, just not all of them) that will be supported on many small devices (already available as Early Adopter release) for ARM processors. Java 8 ME will embrace many of these same APIs and in the longer run all of them.
The ability to run Java on embedded devices has been available for a long time, but with the increased capabilities of the devices and the easy application of common Java programming skills in that environment as well as the quick growing connectivity (either local blue tooth or other near field communication from edge devices to gateway devices or the true internet connectivity for gateway devices) and the fairly cheap get going with for example the Raspberry PI, the time seems ripe for rapid growth. The availability of Oracle Event Processor on Embedded Java – under fairly attractive conditions as I understand it – an play an important role in gathering and pre processing the signals from edge devices. From biometric sensors on farm animals to strain sensors on bridges, or moisture and soil chemistry sensors in fields, these resource-constrained devices are the new horizon for developers of embedded Java.
Note that the Raspberry PI allows developers – for $35 – to start experimenting with an embedded device, including running Java and interacting with physical devices like sensors, (real life) buttons, LEDs etc.
UX – simplicity, mobility, extensibility
focus on 90:90:10 (10% of app that 90% van de users need in 90% of the cases) – largely read only layer that is wrapped around the core professional UI parts of the applications, exposing key information in an intuitive way, allowing for intuitive navigation and providing the starting points for drilling down into core areas where more complex data manipulations are performed; Self Service is an important topic: opening up applications for new user communities that only need access to specific parts, information and actions; these users should not require training to use the application, should have an intuitive experience such as they get on an iPad; this approach is implemented (under the name Fuse) in the Release 7 implementation of Fusion Applications HCM – heavily using the ADF components Spring Board, PanelDrawer and Vertical Tabs.
The user interfaces are designed to support various channels and devices (mobile – smart phone, small tablet, large table- taking center stage in the 90:90:10 approach next to desktop browser that is more for th 10:10:90 part of things, heavily using HTML 5.
Extensibility refers to the ability for end users to – without having to rely on IY staff – change the appearance and the behavior of applications and even of business logic and business processes. The functionality available in the browser based run time Composers that to some extent mimic the behavior of the design time IDEs is extended and made more intuitive. Examples are the Page Composer used in Fusion Applications (and in WebCenter Portal) and the Process Composer through which business processes can be designed and modified.
The initiatives to make Java programming attractive to kids – such as through Alice, Scratch, Greenfoot and BlueJay, Lego Mindstorms – and for example the ability to created Mind Craft mods will help spark a next generation of programmers – ensuring the continued vitality of the community and therefore the platform. The average age of attendees at JavaOne may still be lower than of those at OOW, but it seems to be advancing nevertheless. Attracting youngsters is crucial and said initiatives can be very valuable (I mentioned learning Java programming in order to create Mind Craft mods to my son this morning and for the first time ever he showed an interest in my day job). It would also seem that these initiatives might help bring programmers who are not yet Java programmers to our world of OO and Java.
With Java 8 SE – out now as an Early Adopter release – a major step is taken in the evolution of Java as a programming language. The introduction of Lambda took some time, but the impact it will have on the way we program Java will be quite big (much larger than generics for example). You start trying out Java 8 using the JDK 8 EA and for example NetBeans 7.4RC1.
The latest Java JDK 7 update (7U40) integrates (for free) the Java Flight Recorder and Mission Control components, which used to be part only of Oracle’s paid for JRockit JVM. These components make monitoring and therefore managing the JVM a lot easier. With this update, Oracle also provides a new JDK binary for hardfloat Linux/ARM, for ARM-based micro servers and development boards. This means that there is now JDK 7 support for the default Raspbian Linux distribution for the Raspberry Pi.
Enterprises deal with data from many different feeds/streams/channels. Much of that data is (initially) loaded in NoSQL, processed and stored on Hadoop. Oracle works with Cloudera for implementing this. MapReduce on Hadoop can be used to process the data. The Oracle Loader for Hadoop can be used to load data that is on Hadoop into the Oracle Database – into relational structures ( Oracle Data Integrator Application Adapter for Hadoop: The new Hadoop adapter simplifies data integration from Hadoop and an Oracle Database through Oracle Data Integrator’s easy to use interface. Oracle Loader for Hadoop: Oracle Loader for Hadoop enables customers to use Hadoop MapReduce processing to create optimized data sets for efficient loading and analysis in Oracle Database 11g. Unlike other Hadoop loaders, it generates Oracle internal formats to load data faster and use less database system resources. – http://www.cloudera.com/content/cloudera/en/solutions/partner/Oracle.html)
BigSQL is the term coined for accessing data in Hadoop through SQL queries (read only, obviously). Without turning NoSQL back to SQL again, SQL can still be used to analyze the data held in the Hadoop HDFS (where typically data read from a NoSQL source and processed by one or a chain of Map-Reduce jobs resides). SQL-on-Hadoop products query the data where it resides — in HDFS or HBase — rather than pulling it into a relational database environment to analyze it. Cloudera does BigSQL through Impala (http://gigaom.com/2013/04/30/with-impala-now-ga-clouderas-ceo-sizes-up-the-sql-on-hadoop-market/) and Oracle now has announced its own initiative. By allowing access from SQL (even with queries running inside the Oracle Database), Hadoop and Big Data in general will become more mainstream, allowing the millions of developers with SQL skills (and the thousands of tools and technologies that are powered by SQL) to access the Big Data. In a similar way, Oracle has announced that [some of] its BI products will be able to run against Hadoop directly, being to inspect the Hadoop meta-data in the HCatalog (http://hive.apache.org/hcatalog/). Endeca will support Hadoop as one of its data sources – along with Excel file, RESTful feeds, Relational Sources, Text files – to be used in information discovery. Note that other vendors seem to be making progress (or at least noise) along these same lines and it is important for Oracle to keep up.