Newer posts are loading.
You are at the newest post.
Click here to check if anything new just came in.

July 13 2011

Who leads the Java parade?

Since Oracle's acquisition of Sun, we've been wondering who will lead the Java community. What sort of leadership is needed, and who will fill the shoes that, for better or for worse, Sun has occupied since Java was first released?

First, does the Java community need a leader? Significant portions of it are doing just fine without any "leadership," most notably the people working on big data. Their attitude seems to be "have JVM, will do great stuff, don't bother me with the politics." And granted, the politics of the Java world over the past decade have been worse than tiresome. But everyone in the Java community relies on a JVM, languages, and libraries, and none of the smaller players have the capability of maintaining and developing these themselves. What happens to the community if the JVM stagnates?

Oracle's community problem

Oracle's problem has been simple: while they've made occasional overtures and peace offerings to the Java community, they've also been, well, abusive. One need look no further than the departure of the Apache Software Foundation and Doug Lea from the JCP when it became clear that Oracle viewed the community process merely as a means to rubber-stamp their decisions. (Doug still contributes to OpenJDK, though through a stand-alone process that is then integrated into releases.) It is certainly true that Oracle is a very large company that has never had to worry much about community relations. I doubt Oracle developers expect much say in the future of the Oracle database platform. It's possible that this is just a cross-cultural faux-pas; I don't think it's Oracle's intention to kick sand into their developers' faces. I suspect it never occurred to Oracle's highest levels of management that the community would care.

In a nutshell, that's Oracle's biggest challenge. Can they win the community over, and convince participants they are at least trying to engage? Much of the creativity in the Java world has come from the community members. The current explosion of JVM languages certainly didn't originate at Sun or at Oracle, nor did most of the web frameworks in the Java space, nor did the thriving Hadoop ecosystem. At some point, developers may decide it's just not worth the hassle to be in an ecosystem where they're not respected as partners. There are alternatives: C#/Mono, the renaissance of the JavaScript space. It would be easy for enterprise developers to move to these alternatives. It would be more difficult (but not impossible) for large projects such as Hadoop or Cassandra to move. Oracle can't be displaced because they own the JVM, but I don't think they can assume the Java community won't just go elsewhere.

The puzzle of Google and Java

Google's attitude toward the Java community has been puzzling to me, though no doubt not to Googlers. Google is one of the biggest beneficiaries of the Sun diaspora, having picked up Josh Bloch several years ago, James Gosling very recently, Tim Bray and many others along the way. They've also consistently been the most creative and innovative users of the Java platform: regardless of whether you like GWT (and I don't), compiling Java to JavaScript is a brilliant and gutsy idea. App Engine's platform-as-a-service support for Java was unparalleled until Amazon announced Elastic BeanStalk. And the crown jewel, Android, is clearly the most interesting thing in the Java world today. Java ME's best hope for the future is to survive as a second-class citizen on Windows Phone 7. (I also see a sad future for a proud but fading mobile handset vendor, but that's another story.) But Google has never shown any interest in taking a leadership role. Their attitude towards most of their Java projects can be summarized as "We invented it; we use it; we like it; if you want to try it, go ahead; we don't particularly care whether it succeeds on a larger stage."

Google supports an active user group program (GTUGs), but as you would expect, they cover the whole range of Google technologies, not Java as such. And, like most technology user groups, GTUGs are largely inward facing; they don't create a lot of news on their own. Google's presence in the Java community at large is surprisingly low key.

I've been puzzled by this attitude, though perhaps it isn't strange. Google is a very large company that's interested in many things, from medical records to self-driving cars. But they know exactly where their money is coming from, and that's their advertising business. Projects that are related to selling advertising get marketing effort; projects that protect their ability to sell advertising in the future get marketing effort (I've argued that that's the motivation behind Android, and it's certainly somewhere in the background behind Chrome); but projects that are merely internal tools that they release to the public get short shrift. App Engine? Google is interested in providing tools to help developers build applications, but I don't think they see App Engine as a moneymaker; they're willing to let Amazon be the leader in cloud services. Contentious Java community relations? For Google, that's a distraction. Google's own Java developers are all the community it needs. Google has the resources to maintain its own JVM, should it come to that. That's probably a reasonable corporate policy, but it does not do the Java community any good.

OSCON Java 2011, being held July 25-27 in Portland, Ore., is focused on open source technologies that make up the Java ecosystem. (This event is co-located with OSCON.)

Save 20% on registration with the code OS11RAD

VMware's role in the Java world

VMware probably acquired more talent from the Sun diaspora than any single company. And they've also made some interesting purchases over the years: SpringSource gave them a viable alternative platform to Java EE, with the Groovy language thrown into the bargain. They have made some very important moves with their open cloud platform, CloudFoundry: an open-source platform as a service (PAAS) framework that features a wealth of open source frameworks, including Spring, Rails, Sinatra, Node.js, and Grails and other JVM-based technologies. Again, Java is so important to the enterprise computing space that building a cloud platform around Spring is a no-brainer. But outside of the Spring community, VMware has played their cards close to their chest. Am I the only person who has had trouble figuring out where they're going or what they're doing?

VMware's aims are not unlike Google's. They have more to be gained from the success of their properties — Spring and Grails are much more than tools for internal use. But they're very focused on larger corporate goals, as they try to move from domination of the virtualization world to domination of cloud computing. Their latest purchases show that they see the cloud as providing corporate applications to end users. With the addition of Socialcast to their portfolio, it's clear they see that cloud computing is essentially social, and that thriving companies must have a social component. All this is well and good, but it's a strategy that can succeed with or without Java. While they have a definite interest in seeing Java's Open Source community prosper, as far as I know they haven't shown any interest in the community as a whole. They've bought companies formed around open source projects, but they haven't, at least up until Cloud Foundry, started any projects of their own. And while Cloud Foundry provides a great platform for running Java applications in the cloud, it isn't itself a Java project: it's written largely in Ruby on Rails and Erlang.

So while VMware has an important role in the Java community, they're not a Java company as such. Indeed, they're using what they see as the best tool for the job. That's certainly a good practice, and perhaps the hard lesson we've learned after a decade or so of language wars. VMware has talent and some wisdom — but as a company, I don't think there's a desire to be a community leader.

What do we want from a Java community leader?

JavaPerhaps we should be asking the bigger questions: What do we want from a community leader? Is that role necessary at all, or is it just a holdover from Sun's often inept attempts to deal with the movement they created? I've already mentioned maintenance of the JVM, and the job of pushing it (and the language) into the future. We've debated new language features long enough; at some point, someone had to own the job of implementing Java 7, with closures or without. Oracle has taken on that task, and succeeded. I think they've made some hard decisions, and good ones: deferring closures until Java 8, while keeping the invokedynamic bytecode instruction that makes it easier to implement dynamic languages in the JVM. Bringing Java 7 to closure (if not bringing closures to Java 7) is a significant achievement, and something that could have wandered on for years under Sun's leadership.

But is that all we want? Sun's tenure as leader of the Java community was stormy, with Sun probably not getting enough credit for keeping the fractious participants together. As I said many times, the JCP was the "least dysfunctional standards group out there." But that came at a cost. In my admittedly idiosyncratic reading, the train-wreck that was EJB 2 came from Sun's inability to say "no" to powerful vendors, who wanted certain kinds of features. If you remember JINI (and you probably don't), Sun's marketing told a bizarre story about Jini-enabled Internet refrigerators, rather than treating it as an enterprise technology that would compete with J2EE. As a result, JINI died a slow death. The history of Java is littered with initiatives (Java Media; Java Communications; even JavaFX, in which Oracle has taken a renewed interest) that Sun hyped briefly because it fit their strategy du jour, then dropped.

I'm not asking for Oracle, Google, or VMware to re-start any of these dead technologies. That's probably water over the dam, though should it happen, I'd be cheering. But being a technology leader doesn't just mean declaring yourself a leader and standing in front of the parade. You have to understand where the parade is going and lead. And that's a deeper role than just pushing the Java language and the JVM into the future. It requires understanding what developments are important, and valuing those developments for what they are even if it conflicts with your own story. It requires pushing back against other JCP organizations that "need" arcane features at the cost of sane design. And it requires doing so without appearing to abuse the good will of the millions of developers working with, and on, Java. Are any of the companies in the Java community willing to exercise this kind of technical leadership? Are there any organizations willing to think about what features the Java platform really needs, and bring those ideas to fruition? That's what we need for leadership in the Java community. It's time for the real leader to stand up.



Related:


May 08 2011

Feeding the community fuels advances at Red Hat and JBoss

I wouldn't dare claim to pinpoint what makes Red Hat the most successful company with a pervasive open source strategy, but one intriguing thing sticks out: their free software development strategy is the precise inverse of most companies based on open source.

Take the way Red Hat put together CloudForms, one of their major announcements at last week's instance of the annual Red Hat Summit and JBoss World. As technology, CloudForms represents one of the many efforts in the computer industry to move up the stack in cloud computing, with tools for managing, migrating, and otherwise dealing with operating system instances along with a promise (welcome in these age of cloud outages) to allow easy switches between vendors and prevent lock-in. But CloudForms is actually a blend of 79 SourceForge projects. Red Hat created it by finding appropriate free software technologies and persuading the developers to work together toward this common vision.

I heard this story from vice president Scott Farrand of Hewlett-Packard. Their own toe hold on this crowded platform is the HP edition, a product offering that manages ProLiant server hosts and Flex Fabric networking to provide a platform for CloudForms.

The point of this story is that Red Hat rarely creates products like other open source companies, which tend to grow out of a single project and keep pretty close control over the core. Red Hat makes sure to maintain a healthy, independent community-based project. Furthermore, many open source companies try to keep ahead of the community, running centralized beta programs and sometimes keeping advanced features in proprietary versions of the product. In contrast, the community runs ahead of Red Hat projects. Whether it's the Fedora Linux distribution, the Drools platform underlying JBoss's BPM platform, JBoss Application Server lying behind JBoss's EAP offering, or many other projects forming the foundation of Red Hat and JBoss offerings, the volunteers typically do the experimentation and stabilize new features before the company puts together a stable package to support.

Red Hat Summit and JBoss World was huge and I got to attend only a handful of the keynotes and sessions. I spent five hours manning the booth of for Open Source for America, which got a lot of positive attention from conference attendees. Several other worthy causes in reducing poverty attracted a lot of volunteers.

In general, what I heard at the show didn't represent eye-catching innovations or sudden changes in direction, but solid progress along the lines laid out by Red Hat and JBoss in previous years. I'll report here on a few technical advances.

PaaS standardization: OpenShift

Red Hat has seized on the current computing mantra of our time, which is freedom in the cloud. (I wrote a series on this theme, culminating in a proposal for an open architecture for SaaS.) Whereas CloudForms covers the IaaS space, Red Hat's other big product announcement, OpenShift, tries to broaden the reach of PaaS. By standardizing various parts of the programming environment, Red Hat hopes to bring everyone together regardless of programming language, database back-end, or other options. For example, OpenShift is flexible enough to support PostgreSQL from EnterpriseDB, CouchDB from Couchbase, and MongoDB from 10gen, among the many partners Red Hat has lined up.

KVM optimization

The KVM virtualization platform, a direct competitor to VMware (and another project emerging from and remaining a community effort), continues to refine its performance and offer an increasing number of new features.

  • Linux hugepages (2 megabytes instead of 4 kilobytes) can lead to a performance improvement ranging from 24% to 46%, particularly when running databases.

  • Creating a virtual network path for each application can improve performance by reducing network bottlenecks.

  • vhost_net improves performance through bypassing the user-space virtualization model, QEMU.

  • Single Root I/O Virtualization (SR-IOV) allows direct access from a virtual host to an I/O device, improving performance but precluding migration of the instance to another physical host.

libvirt is much improved and is now the recommended administrative tool.

JBoss AS and EAP

Performance and multi-node management, seemed to be the obsessions driving AS 7. Performance improvements, which have led to a ten-fold speedup and almost ten times less memory use between AS 6 and AS 7, include:

  • A standardization of server requirements (ports used, etc.) so that these requirements can be brought up concurrently during system start-up

  • Reorganization of the code to better support multicore systems

  • A cache to overcome the performance hit in Java reflection.

Management enhancements include:

  • Combining nodes into domains where they can be managed as a unit

  • The ability to manage nodes through any scripting language, aided by a standard representation of configuration data types in a dynamic model with a JSON representation

  • Synching the GUI with the XML files so that a change made in either place will show up in the other

  • Offering a choice whether to bring up a server right away at system start-up, or later on an as-needed basis

  • Cycle detection when servers fail and are restarted

April 13 2011

What VMware's Cloud Foundry announcement is about

I chatted today about VMware's Cloud Foundry with Roger Bodamer, the EVP of products and technology at 10Gen. 10Gen's MongoDB is one of three back-ends (along with MySQL and Redis) supported from the start by Cloud Foundry.

If I understand Cloud Foundry and VMware's declared "Open PaaS" strategy, it should fill a gap in services. Suppose you are a developer who wants to loosen the bonds between your programs and the hardware they run on, for the sake of flexibility, fast ramp-up, or cost savings. Your choices are:

  • An IaaS (Infrastructure as a Service) product, which hands you an emulation of bare metal where you run an appliance (which you may need to build up yourself) combining an operating system, application, and related services such as DNS, firewall, and a database.

  • You can implement IaaS on your own hardware using a virtualization solution such as VMware's products, Azure, Eucalyptus, or RPM. Alternatively, you can rent space on a service such as Amazon's EC2 or Rackspace.

  • A PaaS (Platform as a Service) product, which operates at a much higher level. A vendor such as

By now, the popular APIs for IaaS have been satisfactorily emulated so that you can move your application fairly easily from one vendor to another. Some APIs, notably OpenStack, were designed explicitly to eliminate the friction of moving an app and increase the competition in the IaaS space.

Until now, the PaaS situation was much more closed. VMware claims to do for PaaS what Eucalyptus and OpenStack want to do for IaaS. Vmware has a conventional cloud service called Cloud Foundry, but will offer the code under an open source license. Right Scale has already announced that you can use it to run a Cloud Foundry application on EC2. And a large site could run Cloud Foundry on its own hardware, just as it runs VMware.

Cloud Foundry is aggressively open middleware, offering a flexible way to administer applications with a variety of options on the top and bottom. As mentioned already, you can interact with MongoDB, MySQL, or Redis as your storage. (However, you have to use the particular API offered by each back-end; there is no common Cloud Foundry interface that can be translated to the chosen back end.) You can use Spring, Rails, or Node.js as your programming environment.

So open source Cloud Foundry may prove to be a step toward more openness in the cloud arena, as many people call for and I analyzed in a series of articles last year. VMware will, if the gamble pays off, gain more customers by hedging against lock-in and will sell its tools to those who host PaaS on their own servers. The success of the effort will depend on the robustness of the solution, ease of management, and the rate of adoption by programmers and sites.

March 05 2010

Report from HIMMS Health IT conference: building or bypassing infrastructure

Today the Healthcare Information and
Management Systems Society (HIMSS)
conference wrapped up. In
previous blogs, I laid out the href="http://radar.oreilly.com/2010/03/report-from-himms-health-it-co.html">
benefits of risk-taking in health care IT followed by my main
theme, href="http://radar.oreilly.com/2010/03/report-from-himms-health-it-co-1.html">
interoperability and openness. This blog will cover a few topics
about a third important issue, infrastructure.

Why did I decide this topic was worth a blog? When physicians install
electronic systems, they find that they need all kinds of underlying
support. Backups and high availability, which might have been
optional or haphazard before, now have to be professional. Your
patient doesn't want to hear, "You need an antibiotic right away, but
we'll order it tomorrow when our IT guy comes in to reboot the
system." Your accounts manager would be almost as upset if you told
her that billing will be delayed for the same reason.

Network bandwidth

An old sales pitch in the computer field (which I first heard at
Apollo Computer in the 1980s) goes, "The network is the computer." In
the coming age of EHRs, the network is the clinic. My family
practitioner (in an office of five practitioners) had to install a T1
line when they installed an EHR. In eastern Massachusetts, whose soil
probably holds more T1 lines than maple tree roots, that was no big
deal. It's considerably more problematic in an isolated rural area
where the bandwidth is more comparable to what I got in my hotel room
during the conference (particularly after 10:30 at night, when I'm
guessing a kid in a nearby room joined an MMPG). One provider from the
mid-West told me that the incumbent changes $800 per month for a T1.
Luckily, he found a cheaper alternative.

So the FCC is href="http://www.fcc.gov/cgb/rural/rhcp.html">involved in health care
now. Bandwidth is perhaps their main focus at the moment, and
they're explicitly tasked with making sure rural providers are able to
get high-speed connections. This is not a totally new concern; the
landmark 1994 Telecom Act included rural health care providers in its
universal service provisions. I heard one economist deride the
provision, asking what was special about rural health care providers
that they should get government funding. Fifteen years later, I think
rising health care costs and deteriorating lifestyles have answered
that question.

Wireless hubs

The last meter is just as important as the rest of your network, and
hospitals with modern, technology-soaked staff are depending
increasingly on mobile devices. I chatted with the staff of a small
wireless company called Aerohive that aims its products at hospitals.
Its key features are:

Totally cable-free hubs

Not only do Aerohive's hubs communicate with your wireless endpoints,
they communicate with other hubs and switches wirelessly. They just
make the hub-to-endpoint traffic and hub-to-hub traffic share the
bandwidth in the available 2.4 and 5 GHz ranges. This allows you to
put them just about anywhere you want and move them easily.

Dynamic airtime scheduling

The normal 802.11 protocols share the bandwidth on a packet-by-packet
basis, so a slow device can cause all the faster devices to go slower
even when there is empty airtime. I was told that an 802.11n device
can go slower than a 802.11b device if it's remote and its signal has
to go around barriers. Aerohive just checks how fast packets are
coming in and allocates bandwidth on that ratio, like time-division
multiplexing. If your device is ten times faster than someone else's
and the bandwidth is available, you can use ten times as much
bandwidth.

Dynamic rerouting

Aerohive hubs use mesh networking and an algorithm somewhat like
Spanning Tree Protocol to reconfigure the network when a hub is added
or removed. Furthermore, when you authenticate with one hub, its
neighbors store your access information so they can pick up your
traffic without taking time to re-authenticate. This makes roaming
easy and allows you to continue a conversation without a hitch if a
hub goes down.

Security checking at the endpoint

Each hub has a built-in firewall so that no unauthorized device can
attach to the network. This should be of interest in an open, public
environment like a hospital where you have no idea who's coming in.

High bandwidth

The top-of-the-line hub has two MIMO radios, each with three
directional antennae.

Go virtual, part 1

VMware has href="http://www.vmware.com/solutions/industry/healthcare/case-studies.html">customers
in health care, as in other industries. In addition, they've
incorporated virtualization into several products from medical
equipment and service vendors,

Radiology

Hospitals consider these critical devices. Virtualization here
supports high availability.

Services

A transcription service could require ten servers. Virtualization can
consolidate them onto one or two pieces of hardware.

Roaming desktops

Nurses often move from station to station. Desktop virtualization
allows them to pull up the windows just as they were left on the
previous workstation.

Go virtual, squared

If all this talk of bandwidth and servers brings pain to your head as
well as to the bottom line, consider heading into the cloud. At one
talk I attended today on cost analysis, a hospital administrator
reported that about 20% of their costs went to server hosting. They
saved a lot of money by rigorously eliminating unneeded backups, and a
lot on air conditioning by arranging their servers more efficiently.
Although she didn't discuss Software as a Service, those are a couple
examples of costs that could go down if functions were outsourced.

Lots of traditional vendors are providing their services over the Web
so you don't have to install anything, and several companies at the
conference are entirely Software as a Service. I mentioned href="http://www.practicefusion.com/">Practice Fusion in my
previous blog. At the conference, I asked them three key questions
pertinent to Software as a Service.

Security

This is the biggest question clients ask when using all kinds of cloud
services (although I think it's easier to solve than many other
architectural issues). Practice Fusion runs on HIPAA-compliant
Salesforce.com servers.

Data portability

If you don't like your service, can you get your data out? Practice
Fusion hasn't had any customers ask for their data yet, but upon
request they will produce a DVD containing your data in CSV files, or
in other common formats, overnight.

Extendibility

As I explained in my previous blog, clients increasingly expect a
service to be open to enhancements and third-party programs. Practice
Fusion has an API in beta, and plans to offer a sandbox on their site
for people to develop and play with extensions--which I consider
really cool. One of the API's features is to enforce a notice to the
clinician before transferring sensitive data.

The big selling point that first attracts providers to Practice Fusion
is that it's cost-free. They support the service through ads, which
users tell them are unobtrusive and useful. But you can also pay to
turn off ads. The service now has 30,000 users and is adding about 100
each day.

Another SaaS company I mentioned in my previous blog is href="http://www.covisint.com/">Covisint. Their service is
broader than Practice Fusion, covering not only patient records but
billing, prescription ordering, etc. Operating also as an HIE, they
speed up access to data on patients by indexing all the data on each
patient in the extended network. The actual data, for security and
storage reasons, stays with the provider. But once you ask about a
patient, the system can instantly tell you what sorts of data are
available and hook you up with the providers for each data set.

Finally, I talked to the managers of a nimble new company called href="http://carecloud.com/">CareCloud, which will start serving
customers in early April. CareCloud, too, offers a range of services
in patient health records, practice management, and and revenue cycle
management. It was built entirely on open source software--Ruby on
Rails and a PostgreSQL database--while using Flex to build their
snazzy interface, which can run in any browser (including the iPhone,
thanks to Adobe's upcoming translation to native code).upcoming
translation to native code). Their strategy is based on improving
physicians' productivity and the overall patient experience through a
social networking platform. The interface has endearing Web 2.0 style
touches such as a news feed, SMS and email confirmations, and
integration with Google Maps.

And with that reference to Google Maps (which, in my first blog, I
complained about mislocating the address 285 International Blvd NW for
the Georgia World Congress Center--thanks to the Google Local staff
for getting in touch with me right after a tweet) I'll end my coverage
of this year's HIMSS.

Older posts are this way If this message doesn't go away, click anywhere on the page to continue loading posts.
Could not load more posts
Maybe Soup is currently being updated? I'll try again automatically in a few seconds...
Just a second, loading more posts...
You've reached the end.

Don't be the product, buy the product!

Schweinderl