Skip to main content

Living In The Material World

Posted by editor on October 16, 2007 at 7:44 AM PDT

Real world verus pretty architecture, guess who wins?

Reading Eoin Woods' Avoiding the Icebergs: Top 10 Software Architecture Mistakes was like a flashback movie for me, of decisions and oversights I'd love to have back. Whether you read the whole two part article (1, 2) or just the InfoQ summary, I'll bet you'll feel the same way.

For example, I read point 4, "Box and Line Descriptions":

The question is, how do you go about describing something as complex as a modern software intensive system? The approach that we've all tried at some point is the single, all inclusive, “boxes and lines” Visio diagram that tries to show everything. The diagram probably includes software modules and some interconnections, machines, network links, databases and data flow, some user interaction, perhaps some system monitoring and so on. If you've tried this yourself then you already know that it's not a terribly effective approach.

And as I read it, I remember being in a conference room, maybe nine years ago now, and our whole video delivery system has been laid out, from the box that represents the human encoder in Charlotte, North Carolina, across lines in their network, over lines to our network in Atlanta, up a line to a satellite, down a line to a TV station, through boxes that represent server-side processes at the station, and across lines to client PCs.

And even then, I thought we were fooling ourselves into believing we'd figured out more of the system than we had. The lines and boxes totally obfuscated very real differences between concepts. The lines were, in different places, local method calls, RMI method calls, FTP file transfers, and a custom multicast IP file distribution. The boxes? Some of them were class instances, others were separate applications, and a few of them were physical boxes. So yeah, we knew from this diagram a sort of minimal overview of our system's architecture, but you couldn't really perceive the true nature of its operation, where it could get into trouble, what we had direct access to and how, etc. As Woods writes:

There are two reasons why the huge Visio picture doesn't work well as an architectural description: firstly, it's trying to show too much information in a single representation, and secondly, no one is really sure quite what each of the different types of symbol that you've drawn mean.

So, do read on, there's a lot of experience to be gleaned, from Forgetting That It Needs to Be Built (#5) to Not Having a Backout Plan (#10).

Also, in Java Today,
The jxta-overlay project is an effort to use JXTA technology for building an overlay on top of JXTA offering a set of basic primitives (functionalities) that are most commonly needed in jxta-based applications. The proposed overlay comprises primitives for peer discovery, peer's resources discovery, tesource allocation,task submission and execution, etc. The set of basic functionalities is intended to be as complete as possible regarding the needs of JXTA-based applications. One of the characteristics of the primitives offered by the jxta-overlay is their independence from the applications that will be using them, yet allowing them to keep the intrinsic decentralized nature of Grid/P2P systems.

By configuring OpenSSO, Sun's open-source project for Sun Java System Access Manager, you can authenticate users with identity-service interfaces that support SOAP/WSDL and REST. The SDN article Securing Applications With Identity Services, Part 1: Authentication describes the procedure through an example application built with the NetBeans IDE.

In today's Forums,
mrueegg is working through the
Use of Java Deployment Toolkit in Intranet environments.
"For an intranet java application that needs JRE 1.5 installed on the client machine I need to find a very convenient deployment solution for the users. In case the user has the wrong JRE installed locally (e.g. 1.4) or the user has no JRE installed at all, the JRE 1.5 needs to be installed from a local web server and afterwards the application should be directly started by Java Web Start (to have an up-to-date application). I would like to use the new Java Deployment Toolkit for this problem. For Firefox I already changed the provided Javascript file "deployJava.js" that it uses my own .xpi file that uses the JRE from the local web server. But what do I need to change that it also works for IE?"

km explains a GlassFish namespace issue in
Re: Target deployment after domain resource provisioning with asadmin.
"Basically, an application (Java EE Application, Web App, EJB module, User defined MBean etc. and a resource are in a "unique" name space. This name is referred to by servers and clusters as those names. Thus, if a resource has a jndi-name "jdbc/foo" then no other resource (jdbc-connection-pool, external-resource, connector-connection-pool etc.) can have that name."

bjoern_minkmar points out a model-specific cause of BD-J problems in
Re: problem with HGraphicButton.
"The Samsung BD-P 1000 has problems displaying HGraphicButtons and HTextButtons correctly. So i guess your code is okay. HGraphicButtons never show the "actioned state" - graphic and HTextButtons don`t turn back to "normal state" appearance after they`ve once gained and lost the focus. I`ve been working on my own HGraphicButton class implementation to overcome this problem. But i had to find out that some players -like the Samsung - don`t make a distinction betweeen KeyPressed and KeyReleased Events. Maybe there will be a firmware update in the future that will fix the problem. In the meantime you can ignore this behaviour or you should get a second player."

In recent Weblogs,
the tips keep coming from Arun Gupta in
TOTD #13: Setup Mongrel for JRuby-on-Rails applications on Windows.
"In a previous entry, I posted instructions on how to setup Mongrel cluster for JRuby-on-Rails applications on Unix-based systems. The instructions specified there do not work on Windows-based systems because of the following reasons..."

Mike Duigou describes the switch in JXTA logging APIs in
JXSE 2.5 : What's Cool #7 -- Logging.
"We've planned on changing to java.util.logging "eventually" for quite a while. The gentle nudge, and the offer of testing assistance from the Shoal, finally made doing the conversion a priority."

Finally, Emeric Kwemou explains
Using JAXB in Hibernate to store java objects as XML documents.
"In this post, a custom Hibernate type is described that uses JAXB 2.0 to store java objects as XML documents in a database, enabling database clients implemented in other technologies to easily process to stored objects."

Current and upcoming Java

Registered users can submit event listings for the href=""> Events Page using our href="">events submission form.
All submissions go through an editorial review before being posted to the

Archives and Subscriptions: This blog is delivered weekdays as
the Java
Today RSS feed
. Also, once this page is no longer featured as the
front page of it will be
archived along with other past issues in the href=""> Archive.

Real world verus pretty architecture, guess who wins?