PEERING
INTO THE FUTURE
Bill Joy and other
Sun honchos string together open source, file swapping and smart
devices in the JavaOne keynote.
Java's founding father, James Gosling, Ph.D., likes to remind
people of former Xerox PARC scientist L. Peter Deutsch's eight
fallacies of distributed computing: The network is reliable,
secure and homogenous; it has zero latency, infinite bandwidth,
fixed topology and a single administrator; and transport is
free.
"There will be a failurethat's the reality of
the network," said Bill Joy, chief scientist for Sun
Microsystems, in his June 6, 2001 keynote at his company's
JavaOne conference here in San Francisco. In a similar vein,
Chief Technology Officer Greg Papadopoulos had, a few minutes
earlier, listed several "derived laws" from his
talk explaining Sun's embrace of the Web services concept
as the next phase of Internet evolution: "You don't reboot
the Internet, you live with it; it's fundamentally unknowable
and unplannable; and component decomposition is the thermodynamic
certainty of the industry."
Joy also made a case for using peer-to-peer file sharing
as a way to get around such realities as bandwidth that strangles
streaming media and connected devices that have varying capabilities.

Here, Sun Microsystems' JXTA shell runs
a talk session on the Yopy device, networked via PCMCIA
to CF adaptor. |
Using slides that seemed repurposed from talks about Jini,
Sun unveiled its new offering: JXTA. An open source project
hosted on CollabNet to create a "generalized protocol
that interoperates with any peer on the network, including
PCs, servers and other connected devices," www.jxta.org
was launched in April of this year under an Apache-based license
and, at press time, the site boasts 3,523 members, 1226 CVS
commits and 50,000 downloads.
Free Software Credentials, Please
"Over the last 25 years, I've been trying to find ways
to build community," stated Joy with his trademark poker
face, addressing a sea of developers. "We started with
the BSD license for sharing source, and with Java we said
'Let's build a common platform for executing code.' Now, for
almost a decade, we've had the idea of putting intelligence
on devices. If we get 100 million Java-enabled phones out
there, small-footprint Java on mobile devices creates an enormously
rich environment for people to develop services."
Next up was a demonstration of some straight peer-to-peer
applications, starting with a streaming video that was clearly
sped up by aggregating content from peer caches, using technology
from eMikolo. A funny, futuristic dashboard display showed
automobiles bidding with gasoline stations for low prices,
or even joining up with other cars near them to negotiate
a group purchasing rate for gas. Finally, distributing gaming
seems ripe for file swapping, Joy suggested, standing in front
of a slide of an online chess game.
From Shrink-wrap to Services
The presentation concluded with a panel discussion about whether
this new age, dubbed "the computer is the network"
by Papadopoulos, could be built on nothing more than service
registries such as UDDI and protocols such as SOAP. How should
developers best break free from the shrink-wrapped past and
tackle the software-as-a-service concept?
"Like all young people who've grown up in the networked
age, Shawn Fanning just assumed ubiquitous connectivity in
creating Napster. Our generation would have tried to build
a huge Web site with a whole lot of music on it," said
Tim O'Reilly, president of the O'Reilly and Associates open
source publishing house.
Gosling agreed: "People confuse 'service' and 'server.'
I want my music or I want my video. They're too literal, and
they turn it into an implementation, when all I care about
is the video." You have the freedom to use existing solutions
to make that happen."
Then O'Reilly went for the applause line: "Let me contrast
.NET with JXTA. Microsoft said, 'We need to figure out what
else we need to own so we can create a framework.' Sun said,
'We need to figure out what nobody needs to own and serve
that.' It's in keeping with the original spirit of the Internet."
The crowd was pleased.
So, what's key to implementing these services? Event-oriented
programming, according to O'Reilly founder Adam Bosworth.
"We went from modal user-interface programming to event-oriented
programming for the same purpose. If you're not in charge
of the service, you'd better not break when the implementation
changes. The proof of concept is the browser." Not only
that, but searching must improve, said another panelist: Simply
crawling across the Web and indexing is not sufficient.
O'Reilly piped up again: "On the Web, there are tens
of millions of pages, and no one ever looks at them. All we
need is data.foo.com. Go to any site and have an XML feed
there. Ninety-nine percent of the sites will be ignoredand
that's fine. In a data web, people will discover their common
peer groups."
|
THE
TROUBLE WITH TRANSLETS
The new release of Xalan-Java 2.1.0 does the same job it
did before, while introducing yet more jargon into the XML
world: XSLT Compilers (XSLTC) and "translets." So take a deep
breath and grab your spoon: It's alphabet soup time. As you
probably know, Extensible Stylesheet Language Transformations
(XSLT) take XML data and produce output in a whole raft of
formats like HTML, Wireless Markup Language or Adobe's Portable
Document Format (PDF). The traditional way to perform such
a transformation is to take an XSL stylesheet and use a general-purpose
transformation engine to apply it to XML data. One popular
such engine is Xalan, the Apache XML Project's XSLT translator.
The new XSLTC technology, contributed to the Apache project
by Sun Microsystems, allows you to implement your XLST stylesheets
in Java. You feed the stylesheets into the XSLT compiler and
get Java "translets" out. Compiled in turn into
executable byte-code with a standard Java compiler, the translets
can then perform their particular transformation just as a
general-purpose engine would, but without nearly so much baggagea
big win for high-performance or embedded applications. Xalan-Java
2.1.0, Apache XML Project, http://xml.apache.org/xalan-j
|