JavaOne 2012 Report Part 2
The theme of this year’s JavaOne was Make The Future Java. Was this tagline a clever choice of words? Maybe an implied call to action? It would appear that Oracle are relying more and more on community involvement to ensure certain products were.
It was somewhat as a surprise to see TypeSafe exhibit at JavaOne 2012. I believe this showing of the premier Scala software company is a clear sign that Scala is gaining interest. Although I did not go to many of the technical session in Scala, I saw that there were some very good presenters, more importantly framework inventors during JavaOne. For example, I bumped into Victor Klang, the co-protagonist for Akka framework.
Typesafe build an iOS application for the JavaOne content builder that automatically filters out full Scala talks or just presentations, which mentioned Scala. My second presentation Scala, JavaFX, EE 7 and Enterprise Integration was featured in the app. Stephen Chin’s talk JavaFX and Scala, Like Milk and Honey was also featured.
I believed Scala won the Web Framework Smackdown technical session, which I suspect was for the Play Framework. I was so busy on the rich client track and preparing for my own talks, I failed to catch Hazelcast: Scalable Data Structure with Talip Ozturk, who once presented his framework to JAVAWUG many seasons ago. Then there was Scala Tricks, by Venkat Subramaniam, who I have never seen present and is well known for his books, blogs and superior knowledge of Scala programming.
It is safe to say, here, that at this year’s JavaOne conference, Scala was well represented with a serious development technical sessions and BOF. The naysayers might be still be upset about Scala is gaining traction at Java’s premier conference, but I believe that this is nice and deliberate progress for a new language. Let us remember Scala is a bit behind Groovy the programming language is breaking out of the Mother Language in terms of timeline. Groovy was the first non-JVM language that I knew, which caught serious interest and sparked a change for innovation; and plotted a path to remove boilerplate, being more expensive and quicker at being creative.
Scala is getting there and now that there is a commercial company behind it with funding, after all somebody has to pay for booth space at big conference, things can only get be better. May be this is a little bit of salt, there, in that last sentence, with that sly reference to former British Prime Minister, Tony Blair, winning theme song lyric. I only just saying, since Typesafe scored by bombshell last month [September] with the announcement that Rod Johnson, creator of father of the Spring Framework, former CEO of SpringSource, has joined the board. Let’s keep moving forward, shall we?
Trade Matching Engine in Scala
Surprise of the conference for me, came by chance, attending a talk by CME Group, about a trading engine. Matching trades is the practice of associating equivalent deals with another deal, which happens in financial exchanges. In order to sell X quantity of B, there must be a buyer is willing buy B at X and willing to also trade A at Y. Matching is math heavy
CME Group talk was about their architecture in product which is currently working with 19 Trading Engines. Market liquidity is provided by the buy/sell orders submitted to the system over the whole market. Each market is a type product, for example foreign exchange (forex) or equities (stocks) or stock loan (bonds and guilts) etc. The particularly of major difficulty of any trading engine, is the number one requirement, allow customers to trade anything at any time, with anybody in any order. Second, the ordering of trades is very important. The impact of the requirements befits the design of the architecture of the trading engine.
I just was listening to this talk, billed as high availability trading engine with sub millisecond response time, I thought, hey hoy, another example of Core Java implemented. To my surprise, the presenter suddenly push on the next to slide, I was stunned by it. CME Group is using Scala against MongoDB in their architecture.
Some of the statistics were:
- CME Group were matching trades to a billion orders per month in 2012
- A peak 32 billion order per month at the height of the financial crisis in 2008
- 6 years ago the 11 ms response time
- This year, 2012, they are down 1ms
Java Enterprise Edition
Java Enterprise Edition 7 is the next edition of the enterprise platform. Whereas a last year, there was an obsequious announcement that Java EE going to be Moving to the Cloud, this year that statement has been refactored to Supporting HTML5, RESTful Services and Web Sockets.
The Expert Group and all of the members who were at JavaOne, expressed that it too soon to standardise the cloud features of the enterprise edition, when so many products, cloud provider and PaaS (Platform-as-a-Service) solution are experimenting and innovating. They collectively decided to defer standardisation of Cloud feature in Java EE until to next edition, eight, 2015 / 2016.
In cloud computing, there are several definitions of services, also known as X-as-a-Service,
which are level of abstraction over software architecture. The lowest level is known as Infrastructure-as-a-Service (IaaS), the highest is Software-as-a-Service (Saas). Generally, the lower the abstraction the more control the customer (you) have, but you must have expertise and know how to operate your cloud services. The higher the abstraction, the less control (you) have, but you are can rely on the provider to look after scaling and provisioning across servers.
IaaS describes a cloud provider that will only supply, on-demand, infrastructure: network, bandwidth, operating systems, machines, data storage and, most importantly, virtualisation. It is up to the customer manager the cloud services. Think Amazon Web Services and Netflix.
PaaS describes a Platform-as-a-Service from a cloud provider, where they will look after the infrastructure and scale up or down for you the customer, on demand of course, but you build your business application against platform, which the provider supplied. Hopefully, the platform is compatible with Java, which might be an application server, such as Glassfish or JBoss. It can be some kind of virtualisation solution that make some, but not all, of Java EE available. Think Google App Engine and the restrictions store data in Google’s cloud storage using Java Persistence API. There is a limit about your database entities can only have a basic join between them. In other words, complex database table joins are out of the question.
SaaS describes a cloud provider that supplies a software solution, where they will look after the infrastructure and the application platform. The cloud provider is only responsible for the software that they offer on the demand, which can scale up or down, and you only pay for what you use. Think Salesforce and Force.com; and for a free variety, any of Google Mail, Yahoo Mail, Google Drive, Microsoft Office 365, DropBox, etc. They are all examples of SaaS.
FaaS stands for Framework-as-a-Service and it describes a cloud provider that usually sells a SaaS solution, but additionally offers an application API to customise the solution. For example to personalise the SaaS to an internal bank’s look or feel, or even add customer extensions (of course, that are vendor lock-in; if you find yourself in bed with a FaaS cloud provider, consider yourself married.).
This is fair enough, I believe this good idea. The last thing any of us all need is another EJB 1.x and EJB 2.x, design by committee, without consulting the community and the de-facto products that are out on the market. Nevertheless, the cloud landscape does look at the moment difficult to predict and the politics and market will dictate the necessary requirement for any standard. It is clear that the market leaders, Amazon and VMWare, Spring, may not want to join any standardisation process, because they are the leaders. It is all about the business and making a profit after all. Perhaps, the community and the customers should demand a bit more of their providers, because as a cloud customer, you are ultimately renting and paying for electricity, energy, bandwidth and cooling systems at whatever data centres around the world their application are provision on.
With a Java standard for cloud computing, the advantage for a consumer is that your application should be portable to another cloud provider, if you do not depend on vendor lock-in APIs. People would laugh at the old question, why would I migrate from Oracle to MySQL to Sybase for my business, architects would spin dizzies and scoff such a ludicrous suggestion being able to change database. However, in a cloud computing world, with big data, this is a environment where you, as a business owner and software architect, need to think very careful as to your future investment. Cloud may be too early for Java EE, but it is worth find out now who is your equivalent de-facto winner, the same as it was for Jakarta Struts in 2001 as a better way to structure Java Server Pages and Servlet applications.
There is two things that in my notes for Java EE 7 that are missing for draft standard proposal. For a Java SE standalone client, where is the API for calling WebSockets and Serverside Events from Java. This would be eminently be very useful for JavaFX applications as well as integration testing. The second thing is a how to instantiate the Context and Dependency Injection container in a standalone Java SE client.
At the conference, I pick literature about some of the cloud provider for Java EE. There Of course, Oracle, offers it own Oracle Cloud Java computing service, which is based on hosted WebLogic servers. JBoss OpenShift is an offering from RedHat, which offer Java EE scalability and on-demand functionality in the cloud. There is also Heroku, which supports some of the Java EE standards and has a very different model and history to the common Java developer track. These are more famous cloud provider for Java at the moment.
After James Gosling, technical community keynote on Liquid Robotics, he revealed that Liquid Robotics had settled on using JElastic as their cloud provider of choice. It was a second major coup for this years Duke’s award winner for enterprise Java. JElastic support GlassFish hosting as a Java EE application server in the cloud environment.
There was one other offering at JavaOne that I saw, albeit very briefly, Waratek, an Irish cloud provider, based in Dublin. Their solution was based on Java Virtual Containers, no coding required and instant scalability. Waratek is a Java licensee, thus is not aimed at a Java EE squarely.
As you can see, Java EE, and cloud provisioning, at least in the PaaS solution is a bit of mangled mess in 2012. There is no way that this hotch potch can be standardise, because it is all new, fuzzy and very not in focus. For the Java EE 7 specification, the removal of cloud PaaS standardisation is a sigh of relief, we can start to build both HTML5 application and may be those rich client JavaFX application too. This is progress.
Next Part. The Google Office Visit and the annual shout-outs.
Santa Clara, October 2012
POSTSCRIPT: I managed to find details of that talk, which I wondered into.
It was called CON3753 – Delivering Performance and Reliability at the World’s Leading Futures Exchange and the speaker was called Rene Perrin, a Technical Specialist Software Engineer at CME Group. The billing for the presentation, describe how the order volume grew ten fold between 2007 and 2011 at the Chicago Mercantile Exchange has grown more than tenfold, from 1 to 11 billion monthly orders and quotes. During that same period, the average response time improved from 35 milliseconds down to less than 5 milliseconds. It was just lucky I suppose, because the session discussed how Java technology enabled the exchange to achieve the tenfold growth, little did I know from the bill that CME Group really meant Scala!
Dr. Robert Ballard, the famous oceanographer explorer, of Titanic fame with movie director, James Cameron, gave an inspirational key note on the benefits of education at the Masonic Auditorium Center on Sunday evening. “We need to inspire the young – Don’t sell science, sell scientists and engineers”
More to come. Need to get over the Californian Tour, first
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)