Jumping Off the Bandwagon



Email    print   
November 1, 2005 —  (Page 1 of 3)
I’ve just won (I hope) a metaphoric knock-down-drag-out fight with a co-developer who adhered to BOD (bandwagon-oriented design) principles. The issues are interesting, and so is some of the technology.

The system architecture is straightforward: A “data collector” object collects real-time data from various chunks of hardware, all of which speak different protocols, and translates to a single XML-based protocol; a “history manager” keeps a historical record of that data; a UI-server builds a couple of multipage user interfaces. These components are stand-alone servers that talk to each other using XML over JMS.

I’ve been burned recently by several projects that were way more complex than they should have been, primarily because the developers mindlessly fixated on the “standard” BOD way of doing things, and I wanted to avoid that problem here.

Probably the most commonplace examples of BOD are Web interfaces built on the “standard” architecture: Web server, EJB-based application server and a database server typically wrapped in an object-relational layer like Hibernate or JDO. The UI must be built on Struts or JSF, etc. Though all of these technologies can work in the right situation, none is appropriate in every situation (and EJB is hardly appropriate in any situation—but that’s another column). An average-size Web application that used all of the above would be about two orders of magnitude more complex than necessary, impacting both cost and schedule.

My current battle concerned the “transport” and “persistence” layers. I’m a big believer in messaging (in the JMS sense). Message-based architectures are easily scalable, and messaging promotes loose coupling between components, so the components are easier to write as independent programs. I’ve come to live with XML as a communications lingua franca (though I don’t like it). Consequently, JMS Text messages carrying an XML payload have become my communications mechanism of choice.

My first battle was then getting my co-worker to abandon XML-RPC. The attraction of point-to-point communication protocols is familiarity—a remote procedure call, regardless of underlying transport, looks like a local procedure call. All RPC systems have problems, though: speed, configuration complexity, mismatches between the Java argument types and the argument types required by the protocol. The biggest drawback is that RPC systems aren’t scalable—it’s just too hard to throw on another server if you need it.




Pages 1 2 3 


Share this link: http://sdt.bz/28947
 
Most Read Latest News Blog Resources

Add comment


Name*
Email*  
Country     


  • Comment
Loading




close
NEXT ARTICLE
Guest View: Are your software development practices jumping the shark?
If you want to keep your processes still relevant, its best to pause and consult with your team members Read More...
 
 
 
 
News on Monday
more>>
SharePoint Tech Report
more>>


   

 
 

Download Current Issue
FEBRUARY 2012 PDF ISSUE

Need Back Issues?
DOWNLOAD HERE

Want to subscribe?


 
blogs tab
Are you at risk for burnout?
Burnout is a severe problem and it can strike at any time. Here's how to tell if you are nearing the edge.
02/09/2012 02:16 PM EST

Agility, mom, and apple pie
If we're to evaluate the state-of-the-art in software development, we should start with the values espoused in the Agile Manifesto.
02/07/2012 11:57 AM EST

RIM woos developers with free tablet
How do you get more apps ported to the BlackBerry PlayBook? By giving every developer a free tablet, of course!
02/04/2012 01:57 PM EST

GitHire: Use Headhunters to Find Your Perfect Programmer
Are you a hiring manager tired of scouring the job boards? Check out this new service that will find 5 people interested in your jobs.
02/03/2012 12:17 PM EST

Facebook claims hacker cred
Facebook's SEC S-1 filing form includes a short essay on the Hacker Way by Mark Zuckerberg himself.
02/02/2012 08:26 AM EST

Ryan Dahl steps down
Ryan Dahl, creator of Node.js, steps back from his position as gatekeeper for the project.
02/01/2012 04:58 PM EST

 
Events calendar tab
2/13/2012 to 2/16/2012
Santa Clara
TechWeb

2/26/2012 to 2/29/2012
San Francisco
BZ Media

2/27/2012 to 3/2/2012
San Francisco
RSA

3/4/2012 to 3/7/2012
Las Vegas
IBM Tivoli

3/5/2012 to 3/9/2012
San Francisco
TechWeb