JXTA Joins The Army

Via Sun:

Boeing recently selected JXTA(TM) Technology to provide the peer-to-peer (P2P) discovery service for the System of Systems Common Operating Environment (SOSCOE) for the U.S. Army’s multi-billion dollar Future Combat Systems (FCS) initiative.

Although it is a little disturbing that this is the second time JXTA has been mentioned in connection with “network-centric warfare”, it’s also great news for a sadly under-appreciated technology. As Alexis Smirnov points out, JXTA does a fantastic job of making very hard things possible, but simple things are still difficult. Not only that, but so far it hasn’t been heavily promoted by Sun, so that even if you’re an architect with a hard problem that JXTA can solve, you probably don’t know it. Let’s just call it “fashionably obscure” for now, but hopefully not for much longer.

Evolution

A recent article in The Christian Science Monitor discusses a Gallup poll that showed only 28% of Americans accept the theory of evolution. I’m not going to touch the long-term societal implications of that here (thank goodness I’m Canadian), but thinking about it turned my mind to one of my favourite evolutionary biologists/complexity theorists, Stuart Kauffman, who I’ve been meaning to blog about for a while.

In Investigations and Origins of Order, Kauffman argues that current evolutionary theory doesn’t go far enough, because genetic mutation and recombination don’t explain the spontaneous self-organization from which life emerges in the first place. Though I’m not a biologist, I was still fascinated by his dizzying trip through theories of autonomous (chemical) agents, autocatalytic networks, molecular diversity, search procedures, natural games, algorithmic chemistry (or Alchemy, for short), the cell as a parallel-processing (subcritical) dynamical system, and the self-consistent coconstruction of biospheres. Finally, just for fun, he applies all this to “technology graphs” and “economic webs” to explain some things about innovation and economic growth.

I can’t possibly do justice to his work and writings in a few sentences. It’s epic stuff. Read him yourself if you have the time (Origins of Order has a lot more math in it than Investigations; the latter is written for a general audience but assumes some basic literacy in chemistry, physics, biology, and algebra.)

P.S. Apologies to my Canadian readers for the Amazon.com links above. I’m working on some rational solution to satisfy readers from around the world, but Amazon isn’t making it easy.

All Feeds Lead to Rome

There’s probably no completely painless way to deal programmatically with the tangled mess of syndication formats, but the Rome project is looking promising. Unlike the Jakarta Commons FeedParser, Rome not only parses feeds but also provides:

  • RSS-specific, Atom-specific, and generalized object models–handy if you want to persist feeds after you’ve parsed them;
  • generators for all syndication formats;
  • conversion from any format to any other.

Apparently, there’s some co-operation brewing between the FeedParser and Rome folks, which will no doubt be good news for Java feed hackers everywhere.

My Kingdom (such as it is) for a HUD

What I actually need is a hands-free computer. Due to a recent shoulder injury, I’ve been using the voice interface to Mac OS X to relieve some of the strain of typing and mousing. Being able to “page down” with a voice comand is a real pain-saver. Now if I could only get a wireless, head-mounted display with an FM transmitter, I might be able to perform a lot of non-typing tasks (such as reading email, on-line research, etc.) without being physically constrained by the location and form of the stationary, digit-driven machine.

A mathie by training, I’m not “electronically-inclined”–in other words, I’m not even a novice hardware hacker. Fortunately, I have several friends who can make circuit boards sit up and beg. One used to work for Steve Mann, the poster-boy for cyborgs. Another hacks hardware to make art. I wonder how many pitchers I’ll have to buy them both to convince them to help me with this project? “Barkeep!”

Coordination in a Content-Addressable Web

While thinking about the differences between the Web and Linda (or REST and generative communication, if you prefer), I found this paper (pdf) from 1999 in which the authors propose replacing the current web architecture with a new one based on a Linda-like coordination language. Despite its dated-ness and a number of flaws, it’s a fascinating alternate vision.

First of all, many of the authors’ claims about the shortcomings of the architecture of the Web will strike current readers as naive. Perhaps they can be forgiven on the grounds that none of Roy Fielding’s work on the architectural style of the Web was published until a year later. Nevertheless, their unsupported assertions about the Web being inefficient and inflexible will no doubt rankle, and the significance they place on increasing performance looks, in retrospect, misguided.

A more interesting critique involves the web’s use of location (URL)–or in present terms, identifiers (URIs)–to address web resources. Since the relationship between a URL/URI and the content or value of the resource is not explicit, search engines had to be introduced to perform the mapping. “This article suggests that the mapping be removed altogether: since the content of the page is what distinguishes it, one should use content as the basis for locating and organizing pages as well.”

A second critique of the Web applies to the constraint of statelessness, noting that in practice the state of a client-server dialogue is maintained through a variety of “baroque” techniques applied on both sides. While it’s well-established that statelessness is a constraint that induces scalability in the Web, it’s also recognized as a trade-off reducing the server’s control over consistent application behaviour.

The athors may have been ahead of their time in envisioning the notion of a service on the Web. They suggest a mechanism whereby servers provide services by manipulating resources through an extended set of operations, and where clients take a more active role by storing their own views of interaction state as resources (as opposed to cookies). This leads them to propose replacing HTTP with a Linda-like coordination language.

Due to its content-addressable nature, Linda allows search-engine functionality to be baked in to the infrastructure. The catch is the requirement for a scalable, distributed tuplespace implementation. The authors don’t discuss the practical challenges to building such a beast, but from a survey of some of their other publications (for example: list of publications by R. Menezes) it’s apparent they are not naive about the issues.

In this “location-free” proposal, services would be represented and discovered via tuples in a distributed space. Each service would then use a unique space to coordinate with clients.

Despite a significant amount of hand-waving, this proposal is an early attempt to develop a web of content-addressable services and documents. It isn’t difficult to add content-addressable messages and application state to this view, increasing visibility of transactions (see Bill de hÓra’s discussion of transactional blackboards).

Agoric Open Systems

With the widespread current interest in loosely coordinated distributed computation and resource-sharing grids, I’m surprised that Miller and Drexler’s papers on agoric computing from 1988 (specifically: “Markets and Computation: Agoric Open Systems” and “Incentive Engineering for Computational Resource Management”) haven’t received much attention in these contexts.

For my taste, Web Services and SOA architecture puts too much emphasis on centralized orchestration and not enough on self-organized, coordinated behaviour in large open systems. As Miller and Drexler write:

“On a small scale, central planning makes sense; on a larger scale, market mechanisms make sense. Computer science began in a domain where central planning made sense, and central planning has thus been traditional. It seems likely, however, that some modern computer systems are already large and diverse enough to benefit from decentralized market coordination. As systems grow in scale and complexity, so will the advantages of market-based computational systems.”

With the heavy, controlling hand of the (closed) enterprise all-too-visible in the current web services technology stack, I expect it will be a very long time before we see true service markets emerging. Maybe the grid folks will do better. I also see some hope in the JXTA notion of the separation of service classes, specifications, and implementations to enable dynamic service discovery and binding–but there’s still, sadly, a long way to go to build the foundations for agoric architectures.

Posts and pointers on software, art, math, noise, and other obsessions…