Sun Aims High with Java Store
James Gosling, the creator of the Java language and champion of Sun Microsystems' new Java Store, says if the Java Store realizes its potential it will make the Apple's App Store look like a "rounding error."
In an exclusive interview with eWEEK, Gosling touted the benefits of using Java as a deployment mechanism for applications and noted that because of the vast amount of desktops and devices that run Java -- more than one billion -- the potential market for the Java Store could dwarf that of Apple's popular App Store marketplace for iPhone applications.
"The iPhone [App Store] is a rounding error compared to what this could be," Gosling said. "The size of the market when you glue together all of these domains where you can deploy Java applications, it's a couple of billion at least."
At the 2009 JavaOne conference, Sun unveiled the first public demonstration of the Java Store, giving attendees a peek at a distribution channel for developers to directly connect with the more than 800 million desktop Java technology users worldwide. The consumer-facing storefront enabling the discovery and purchase of Java and JavaFX applications is a network service offering what Sun officials said they believe to be an unequaled distribution channel for reaching customers and driving potential new revenue opportunities through the sale of innovative new content.
The Java Store, created in JavaFX, will automatically be delivered to end users via the Java Runtime Environment (JRE). More than 800 million worldwide desktop Java users will soon be able to easily and securely discover and purchase compelling Java applications and content through the Java Store. The Java Store contains personal productivity, business, social graph and entertainment software organized in a simple and intuitive user interface. The Java Store also allows users to safely install applications by easily dragging them from the Java Store directly onto their computer desktop, greatly simplifying the software installation process.
"The nice thing about Java code is we can do managed deployments in a way that you just can't do with other things," Gosling said.
Regarding the workings of the store, Gosling said, "The question is not so much what is the structure of the engine, but what are the policies that surround it that work the best for the developer community."
And he noted that Sun is going through several different models for handling payment for and licensing of applications from the Java Store. To support what Gosling said was his preferred model, Sun has built a license management server that supports a variety of approaches to licensing applications on the store.
Said Gosling: "The one we built that I liked the most was one where the software is always free to download, but the software and the right to use are independent things. And what you buy at the store is not the software; you buy a right to use. So you get a little license token. And we built a license management server. So when you say 'buy that,' what you get is a license token."
Meanwhile, Bernard Traversat, director of engineering managing the Java Store working for Gosling, said the Java Store is deployed on Sun's cloud computing infrastructure. "We are using a fully virtualized environment (xVM) on OpenSolaris with multilevel of network and storage redundancies," he said.
"We are using a cluster of Glassfish instances to horizontally scale access to the Store catalog, support the warehouse developer portal to ingest applications as well as providing HA failover capabilities," Traversat said. "The Store warehouse exposes all its capabilities via REST-based APIs (Jersey) to access and manage content."
Moreover, the Java Store client uses these APIs to access and browse content, Traversat said. "It's truly an end-to-end Java solution," he said.
The Java Store is using a unique multitier database architecture, for maximum scale and performance catalog content is cached in-memory, cache-coherency is maintained across all the cluster Glassfish instances, Traversat said. A ZFS file system is used to backup and persist the in-memory cache. ZFS provides unique capability to quickly mapped data in-memory via mapped IO channels (order of magnitude faster than any database startup).
"DTrace enables us to determine access bottleneck with ZFS, with ZFS we also can clone the entire database in a few seconds (yes seconds), and we can use ZFS snapshots to easily checkpoint and rollover in time the database if needed," he said.
And, "Finally we use MySQL for handling transactional operations from the developer portal and data Insight collection telemetry," Traversat said. "Jar files are dynamically stage on a content delivery network for maximum scalability and reduce latency. The Warehouse is managing and controlling the packaging of apps. The Java Store is generating the JNLP webstart packaging that is delivered to the end-consumers, not the developer. This guarantees the safe delivery of content as the store can enforce the right Java sandbox permissions for executing an application on a consumer desktop."