JavaOne 2009 Analysis
Is there a business reason for PushToTest to be at JavaOne in 2009? Well, not exactly. The PushToTest open source community is 1/3 developers, 1/3 testers, and 1/3 IT managers and CIOs. We can reach these audiences through other means. So why JavaOne?
Gregor Hohpe, gave a good explanation: “JavaOne and OOPSLA are the conferences that bring out the big ideas.” While JavaOne and OOPSLA may have faded a little in recent years they have philosophies that inspire people to create new inventions and not be satisfied with the current technology. While I attended an excellent party at JavaOne thrown by the RedMonk guys that was billed “The Sun Wake,” I found that it was more of a celebration of what we accomplished over the past 14 years of JavaOnes.
With emotion in his voice Scott McNeally, Chairman at Sun Microsystems, told the audience of 13,000 (est), “All the way to Mars and the four corners of the world, I’m proud of what you have done with Java.” With that the JavaOne 2009 conference began. Here is what I heard, saw, and found.
Selenium, Windmill, Mozmill
The Windmill team impresses me because they understand the need for testing beyond the
Web browser. For example, the same team delivers Mozmill for testing Mozilla XUL-based applications.
PushToTest, announced ScriptRunners for Windmill and Mozmill in TestMaker, our open source
test automation platform. TestMaker support gives Windmill and
Mozmill support for repurposing tests as functional tests, load and performance tests, and business service monitors. Plus TestMaker enables data driven testing, step-time recording, and results analysis functions in Windmill and Mozmill tests. The Windmill team discussed their product roadmap with me: We will be spending some time refactoring the proxy forwarding logic and adding some new APIs to the proxy. This will also include the cookie work that was cut from 1.2. This will also begin to prepare the code base for the windmill2 transition.
Selenium, Windmill, HTMLUnit and the other test projects are all contending with Ajax based application challenges. The asynchronous nature of Ajax applications requires tests to include synchronization instructions to make sure the test is not operating faster than the application. Mikeal Rogers and Adam Christian of the Windmill team told me they were looking at implementing automatic waiting for elements before calling actions on them. They told me this feature deserves some discussion. I think it is a great idea and they should start kicking around an API discussion.
Christian said “We'll need to figure out how wait variables are passed in a unified way to any test controller function and how to send the start and endtime information for both the wait and the controller actions for each test controller call.”
Java Development and Management Merging
Reducing the time it takes a Java developer to build an application is valuable to organizations. SpringSource is betting that making management of the resulting Spring-based application easier will unlock huge new benefits to organizations. This is the reasoning behind the Spring-Source Hyperic merger. I had a chance to speak with Rod Johnson (CEO) and Javier Soltero (CTO of Management Products) of SpringSource. Johnson and Soltero make a happy pair. They even finished each other’s sentences at times. This seems to be a continuation of their earlier technology partnerships.
For example, Spring Enterprise comes with Hyperic HQ. Spring uses AspectJ technology to transparently instrument enterprise applications. I have a business interest in understanding Spring’s management technology for Java enterprise applications. PushToTest built a monitoring API that reads performance metrics from Glassbox. Glassbox integration comes in TestMaker 5.3 and provides correlation for root cause analysis and mitigation. PushToTest designed its monitoring API (PTTMonitor) to read other performance monitoring systems through the same JMX interface that Spring uses to publish performance metric. Look for an announcement from PushToTest shortly!
Spring-based applications are automatically instrumented for monitoring and management. Hyperic then monitors internal operations and presents the data as a set of dashboards, consoles, and reports. On the face of it the merger makes business sense too. Johnson told me owning an open source business is nothing different from anything else: “Pre-revenue requires hand waving. Hyperic had million dollar revenue streams and a definable growth rate.”
Johnson said SpringSource aims to achieve $1 Billion in sales and make its IPO in 18 months. That would certainly make SpringSource’s venture capitalists (Benchmark and Excel) happy. Soltero gave some details on the upcoming product roadmap for the combined companies. Cloud management announcements are coming down the track. They are getting rid of JBoss and will do new development based on Spring. Hyperic Sigar low level parts are going into other parts of Spring. SpringSource’s reach into management may extend beyond Java enterprise applications. Johnson told me SpringSource contributes to the Apache group httpd server.
Johnson told me the black box nature of PHP and Ruby on Rails improves developer productivity but lacks the visibility into the internals to make it manageable. Java has JMX, .NET has Perflib and CLR application management. Java and .NET have a centralized management model that you can plug into, including performance counters, service and statement management. Johnson said, “With SpringSource we can make JMX and related capabilities leveraged past the ISVs.”
Entertainment, Mobility, Software Combined
Java is the front-end and middleware in BlueRay video disc players. Demonstrations of JavaFX technology showed very good integration between the user experience and the media delivered on the disc. The BlueRay experience is headed towards what we experience on the desktop: multiple applications open at the same time, alerts, windows, and what looks like a file system.
“Entertainment and software are combined forever now,” said Don Eklund, Executive VP at
Sony Pictures, Home Entertainment. Don said that Sun is offering a development kit for the
BlueRay platform. Sony Ericsson showed what this means practically. For example, they showed a PlayStation 3 with a Sony Ericsson mobile phone connected over Wifi or 3G. The PlayStation screen appears on the phone, the phone controls the PlayStation, and you see video, games, and controls in
the phone. Nice!
Sony Ericsson also announced new sensors in their upcoming phones. For example, a step sensor to show the number of steps you took while walking with the phone. They said to expect a step counter API, video motion detector API, and an API to do things with the standby screen on their phones. The applications for mobile devices will change as the bandwidth to these devices increases. Lowell McAdam, CEO at Verizon told delegates that LTE technology gives 10 Mbits to the phone. McAdam said Verizon would release a common runtime environment for Verizon’s supported smartphones on July 7, 2009.
While the trend is to deliver desktop operating environments and network bandwidth to the mobile handsets, the mobile phone operators are still acting like fortresses. You need their approval to play in their castle. What drives this behavior is beyond me. In explaining why it took so long to deliver a robust application development platform, McAdam said, “We were overly protective of our brands. We needed double-opt-in and parental controls.” Is there some worldwide set of laws that tells mobile phone operators what applications are legal? Or is it just part of their DNA? The mobile operators at JavaOne announced app stores as a way to come into their castle to play, but they start with an archaic set of rules.
All of these app stores mean developers will work in a fragmented marketplace for their mobile applications that is compounded by a seemingly arbitrary set of policies. Sony Ericsson went to great pains to tell developers that they would not accept all applications in their app store. Christopher David of Sony Ericsson said “We are going for quality, not quantity.” So we’re back to Apple’s mistakes on iPhone policies.
There is no gatekeeper for the desktop applications I can install on my laptop. At least I can jailbreak the iPhone to install applications that do not meet Apple’s arbitrary criteria. I wish these mobile operators – Apple/ATT included – would provide an Adults-Only section in their app stores that lets me use their infrastructure to install apps that do not meet their criteria.
Miko Matsumura of Software AG told me, “At least Apple moved past the first rule of iPhone application development: Don’t talk about iPhone application development.” (I just love this reference to the movie FightClub.)
The announcements at JavaOne 2009 demonstrate to developers that the mobile application fragmentation problem moved beyond technology. Every operator has their own app store. With 10 different phone operators developers need to go through 10 different app stores. Maybe the mobile app fragmentation initiative would be solved with a single app store.
Making Lemonade from Lemons
While the Java ecosystem grew greatly over the past – 6 million Java developers now – there are some key places that Java is at a standstill. For example, there is no Java on iPhone. Sun tried to put a positive, even an aggressive, spin on the situation. For example, Jonathan Schwartz, CEO at Sun told delegates that JavaFX is available on mobile platforms. To prove the point Schwartz had an executive at RIM talk about the Java experience on Blackberry. In a cleverly crafted statement Schwartz said the top selling smartphone - Blackberry - is a Java phone. He said JavaFX runs on Sony Ericsson, Orange and LG phones. Schwartz told delegates, “We’re shooting for 100s of millions, not 10s of millions,” a dig to iPhone.
I spoke with a BlackBerry user at the conference. He said BlackBerry smartphones run Java ME, but JavaFX can’t run in a meaningful way on Blackberry. It should have been enough for Sun to talk about Java’s accomplishments. For example, the Facebook picture uploader is a Java applet and the GMail application for Nokia N95 is Java.
Surprisingly Larry Ellison, CEO at Oracle, said “There will be devices based on JavaFX, not only from Google, but also from Sun/Oracle.” Missing from the JavaOne mobility conversation was integration with the operator’s applications. For example, SIP, SyncML, XCap and MM1 protocols provide calling services, directory synchronization, and application download and operation services. My company, PushToTest, announced support for these protocols in TestMaker, our open source test automation tool.
New Release News
I found many new product announcements at JavaOne:
- Neil Bartlet announced support for JavaFX in Eclipse.
- DZone released a RefCard for JavaFX at http://www.refcardz.com
- Java SE Update 14 features the new G1 garbage collector and 64-bit plug-in support.
- Sun announced a new project called DarkChat to provide private labeled social networking service. Think of it as a private label Twitter that runs behind the firewall.
- Micello provided an Ajax-based service to provide delegates with speaker, session, and location details for JavaOne.
- GlassFish (OpenESB, OpenMQ, Liferay Portal, Web Stack, App Server), Java EE 6 Preview (JSR 316) shipping today. Complete LAMP stack in the Java EE 6 release.
- JavaFX 1.2 early access is available. The new software offers a cross platform UI library, speed to launch improvements, early access for runtime and tools on OpenSolaris and Linux. Sun demonstrated the new JavaFX Authoring Tool, think of iMovie/Garageband media content authoring.
- Monte Widenius is doing MariaDB, a branch of MySQL.
ROO for Rapid Java Development
SpringSource ROO is for rapid application development of Java enterprise applications. I think of ROO as Rails for Java enterprise applications. Roo builds a skeleton application using a Maven structure. ROO provides assistance and code completion on the command-line. For example, when creating a new application ROO asks you to install a JPA provider such as Hibernate or OpenJPA. Java developers may use ROO outside
of the Spring STS tool.
The ROO hint system moves you through the development process. For example after JPA configuration ROO asks you for entities. ROO creates fully working unit tests for CRUD operations. All the getters/setters are handled in Intertype Definitions (ITDs). For example you use ITD to refer to an entity bean. ITDs add all the JPA (getters, setters, ID field for primary key, generate to_string methods, dynamic finder method.)
If you forget an @annotation, ROO automatically updates the application to remove the annotated functions. ROO works in reverse too: add an annotation, ROO adds the functions.
JavaFX, JCP, and Standards
The Oracle acquisition has members of the Java Community Process (JCP) wondering what their future holds. Yet, they did a fine job at JavaOne to better the JCP. They hosted a day-long set of sessions to get community feedback and buy-in for improvements to the JCP program, including greater openness and transparency and improvements to speed the process of JSR development.
Even before the Oracle acquisition many developers saw major Sun initiatives skirt the standards process. For example, why is JavaFX not in the JCP? TheServerSide community see Ajax development as the choice to build client-side applications.
Without a standards body JavaFX seems pitted against open source solutions like Ajax. One Sun executive explained it this way, “We are going to innovate through a standards process, but it doesn’t work that way. We felt the need to move the Java story on the client side quickly. Build and deploy across multiple devices, needed to happen as an internal process. We’re trying to open the development model to all sorts of processes, and JavaFX is just one of the models.” This is like Sun saying: JavaFX is in love with the JCP, we just don’t like it.
Enterprise Meets Global Solutions
Many of the vendors at JavaOne showed the strength of the Java platform to deliver a next generation of applications.
Java .NET Interoperability
JNBridge delivers a message-oriented bridge between Java and .NET objects. The system delivers a JMS client on the Java side and .NET remoting on the CLR side. JNBridgePro provides a proxy system that handles garbage collection gracefully: Object no longer available is part of their protocol. JNBridge provides Java object implementations to .NET Remoting. Using JNI or TCP/Binary encoding, or HTTP/SOAP. Most of the users are running inprocess or where a single machine runs both .NET and JVM, or binary.
A second product JMS Adapter for .NET applications enables Java applications to consume WCFN points (SharePoint server). They also make an adaptor for BizTalk Server 2009. I spoke with Wayne Citrin, CTO, citrin@jnbridge. He told me JNBridgePro is in use by 350 customers in 40 countries. “JNBridgePro drives BizTalk sales. Unless you have a green field opportunity, BizTalk needs a JMS adaptor to communicate with JEE.”
They announced support for WPF/Java UI Embedding in JNBridgePro 4.1. Enabled AWT/Swing components, wrapped in JNBridge, to run within a WinForm application. Citrin said Microsoft asking about support for SilverLight to call into JMS queues. Citrin said attention is needed in WS-Atomic Transaction (WS-AT) because vendor implementions often are not compatible. For example, Citrin pointed to nested transactions as being problematic. JMS provides a push of the messages back onto the queue in cases of a rollback. But what happens when the destination is not Java. Supported in JNBridge for .NET v 1.2.
Software As A Service Maturing
SalesForce.com offers application hosting but requires use of their application development environment. Java developers needing to deliver their applications in SAAS have a feature requirements list that includes multi-tenancy, dashboards, integration, billing, upgrades, access controls, and workflows.
LongJump is becoming another application development stack, like Zend is for PHP developers. LongJump provides an operating environment for Java developers to deliver SAAS solutions. Think of LongJump as a way to deliver a private labeled SalesForce service.
LongJump developed a stable revenue source by selling solutions to the media industry, including Gannet publications. The software is sold on CPU basis. Long Jump does managed hosting too using Rackspace, Amazon, GoGrid and cloud other providers.
By default LongJump uses mySQL and Tomcat. They are working on DB2 and Oracle, and Glassfish and WebSphere coming. Components are embedded into individual pages, widget, or pages. Extensions demonstrated are Ajax, Flex/Flash, widget from LinkedIn.
Overstock.com – the on-line retailer – attended JavaOne as an exhibitor to recruit Java developers. I talked with Sam Peterson, Sr VP of Technology. He told me the Utah-based company did not see the peaks and valleys of the past economic cycle. “We didn’t see the housing boom, so we don’t see the housing crash.”
Overstock serves one million visitors a day with a Java infrastructure. They are looking at Flex and browser technology for check-out and better user experience on the site. They need to support Chrome, Safari, Firefox, and IE. Peterson sold me Ajax programming is a lot tougher because it is a moving target. The single Flex runtime means easier testing.
The Overstock backend uses Oracle, Java SE with Hibernate. They do not use EJBs and they while they are using Tomcat, Peterson said any container would work. Peterson said they have scrum teams in place but he is concerned that team decisions on tools and automation may lead to a complicated organization of test scripting and integration tools.
While they use Selenium and WebDriver, he said QTP would be their favorite if they were better able to integrate it into Hudson and Maven for continuous integration. They are working with the Nexis Sonotype people closely. Peterson expressed concern about Oracle getting into the picture saying, “Oracle is a little too big, and we worry that Java may be lost in that company.”
Business Process Management
Fiorano showed off their new Eclipse-based plug-in named Fiorano Studio. The software does business process management development in a visual editor. Studio supports one-to-many and many-to-one business flows. They do message-oriented SOA rather than process driven SOA. Fiorano is not an ETL solution, but a message-oriented SOA solution. They have a nice mapper for creating maps from one schema to another.
They showed me their visual tools to make defining XPath expressions and XSLT easy with a visual tool. Their DB Adapter has a Monitor Table function where Fiorano maintains a shadow table. Fiorano has long challenged Tibco, Oracle, and IBM in the marketplace. Fiorano claims to run 50,000 messages per second on a 2 CPU/8 Gbyte box. They say that is faster than Tibco EMS.
Fiorano says the Oracle acquisition has already generated interest in their solution from JCAPS customers. Medium-sized customers are anticipating not being willing to pay the price that Oracle will demand. Fiorano says Progress Software dumped their own ESB and is marketing Fuse and IBM is too big.
Managing Java Applications In The Cloud
This is Appistry’s third year at JavaOne. In previous years they came to talk about application scalability. Appistry is now focused on app dev and test and management. For example, Appistry CloudIQ 4.0 went GA in time for JavaOne. Appistry EAF is now named CloudIQ Engine. The developer framework is split into Engine and management part is CloudIQ. I had a chance to speak with Sam Charrington, VP Product Management and Marketing at Appistry.
He told me, “The term ‘Cloud’ was the perfect name for our vision of the Appistry technology.” Appistry is focused on delivering cloud-based Java applications behind the firewall. They partner with SkyTap (part cloud part app, focused on development and test, cool snap-shoting, and basic cloud infrastructure,) Amazon EC2, and GoGrid.
Appistry’s sweet spot is in application development and test automation. The alternative is your typical help desk/ticket system where users call and wait. Charrington told me Appistry customers want to build their own Google app engine in their own application.
Una for collaborative team development of source code. It features a common text editor with code completion. Doesn’t do refactoring but it does common undo. Can you undo the last change, or your last change. Interesting communal undo.
Rapid Application Reloading
JavaRebel, David Booth, Sales and Marketing Captain, does rapid dynamic application reloading. David says their research shows that developers spend 8-10% of their time waiting for an application to reload. JavaRebel is $149 US per seat per year. Credit Suisse, Accenture, and LinkedIn are using it today.
JavaRebel supports unexploded development (WAR files). You have to set-up Rebel XML file to define the timestamps of the classes in the WAR file. In limited cases the Java VM HotSwap has limited cases to be effective, hot redeploy works too but uses lots of memory.
It will not be effective with JRuby and Jython. Grails does redeployment for you already. If you redeployed 3-5 times an hour, you’ll see the time savings benefit.
The Elephant In The Room
While JavaOne did a good job at showing a sustained product roadmap for Java, there was no talk about how Oracle’s purchase of Sun Microsystems will impact the roadmap. That could be because of the expediency at Oracle moved to buy Sun. One Sun executive told me the executives talked but did very little diligence. I wonder who will be the Lewis and Clark at Oracle to discover what they bought.
It didn’t take long for Ellison to show that Oracle needs a better education on the Java ecosystem. For example, Ellison said, “Thank you for JavaFX because lots of developers will not have to program in Ajax again.” Ellison also commented that Oracle sees possibilities in JavaFX versions of OpenOffice. Neither initiative seemed to come from Sun and would be significant if realized.
Frank Cohen is CEO and Founder at PushToTest, the open source test automation company,
and a frequent contributor to TheServerSide.com, JavaLobby and DZone. Details at