public cloud service. Beside the official announcements, some more or less content-less posts on The Aquarium (here and here) you don't find a lot of information what exactly to expect from the offering. With this post I am trying to bring some light to it by interpreting the publicly disclosed information. As usual: I could be right or wrong. Watch out for some more posts from Reza Shafii. He recently started blogging about the "Java Cloud Service".
Larry: 'if you need a cloud, you need a cloud'
Seeing Larry presenting with slides that have the word "Java" on it over and over leaves the most of us wondering and could even scare the hell out of the rest of us. One could think, that the new Java EE 7 specification and it's move toward PaaS and IaaS comes right in time for the new strategy. But before I am going to fire at will, let's get back to the initial motivation of this post: What the hell are the guys running underneath and what could you expect as a developer or customer to find in the Oracle cloud?
Oracle software and hardware
specs of the Java Cloud Service give a very high level overview about what to expect. WebLogic 11g is the Java EE container of choice. Meaning, that you will probably be able to deploy Java EE 5 applications only with the first version. Even the supported Java EE spec versions strongly lead into that direction (EJB 2.1, 3.0; Servlet 2.5, JSP 2.1) The database on the other hand is a 11gR2. If you look back to some other slides presented at OOW, it's not a too brave guess, that Oracle is running this stuff on a combination of Exalogic and Exadata. And I also guess, that you will be able to monitor and administrate your WebLogic Domains with the help of the new Enterprise Manager Cloud Control. Looking at the fact, that Oracle is promissing instant provisioning I also assume that they are using the virtual assembly builder in combination with some preconfigured templates to get your WebLogic Domain um and running. It would be nice to see a dedicated OVM instance for every single cloud account. The fact, that you have to target your application to a complete cluster indicates, that you will not be able to select the managed servers during deployment explicitly.
Development for the Oracle Cloud
But that will the development for the cloud be like? According to the public features, there will be a tight integration with JDeveloper, Eclipse and NetBeans. Seeing the command line interface together with ANT I believe that the first IDE integrations will have very limited capabilities and you would probably simply be able to deploy the stuff to your cloud. I assume that in any of the three IDEs you will have a new server configuration option which handles all needed configuration (host, port, user, pwd) accordingly and a simple "run on server" will start the deployment process. The spec also mentions a whitelist (check for supported APIs) and an SDK. So it's fair to guess, that the IDEs also will do some pre-flight checks for your applications before putting them onto your cloud. Your applications obviously don't need to implement proprietary Oracle APIs (like google requires for authorization or DB access) but again by looking at the specs it seems as if you will not be able to use the complete set of WebLogic and Java EE 5 APIs. Seeing the mention of EJB with explicitly "local interfaces" could indicate, that RMI will not be in it. What that means for failover and session replication is unclear as of today. Also it seems as if you shouldn't think about deploying anything else than war and ear files. If this will include the WebLogic library mechanism is unclear. It seems as if anything else than http isn't allowed to hit your applications. Not even inbound SOAP Webservices are possible according to the specs. Nice little Oracle addon is, that you can obviously take advantage of the full ADF stack (Faces, Bussiness Components). Seeing the ADF Web Services Data Controls with a separate mention let's me believe, that there are other restrictions or versions about Data Controls in general.
This is the part of the post where I probably should be very excited and tell you, that this is the most open, best and single cloud offering available today. Maybe I am a little bit too early for a general conclusion, but let's look at the plain facts as of the time writing this:
- Only Java EE 5 (with restrictions) => That's a few years old now, right?
- Pricing => Unclear until now. They could screw up the whole thing instantly!
- Only WebLogic => What about GlassFish? We need an ExaFish !
- WebLogic => that's fine. Especially as I expect the license to be included with the subscription?
- Running on Exa stuff => probably the finest hardware available. Under full control of the manufacturer.
- Only Java EE => No additional, proprietary stuff needed. Portable. Standards based.
Let's lean back and relax a bit until the first official versions are available. I am very very looking forward getting my hands on this stuff.