Mobile // Mobile Applications
Commentary
7/7/2008
00:00 AM
Commentary
Commentary
Commentary
Connect Directly
RSS
E-Mail
50%
50%

The Bowl of Jello Theory

I've worked on projects where, if you touch just one small part of the code, other developers cringe because it's so fragile. The sub-system works almost on accident, and any changes to it run the risk of total application collapse. I call this the "bowl of jello theory," because if you touch it in one place, the whole thing jiggles and wobbles, so to speak. Go too far, and the whole thing will collapse.

This is a sign of poor application architecture, and Java can help in so many ways here. For instance, Java's use of classes, data hiding, and abstraction, offer obvious ways to avoid this. But the strict use of interfaces, and the JavaBean programming model for business logic, go a long way towards helping avoid the Jello disaster.

I wrote an article years ago (http://www.ddj.com/architect/184405103) on using an event agent in Java to help hide the classes that implement interfaces and source events. This is an easy pattern to implement, and helps to reduce the rippling effect changes often have in applications.

Another way to help avoid the Jello Effect, albeit a more complex one, is to use a messaging sub-system such as JMS. This also allows you to transparently distribute your application across servers, and better take advantage of multiple cores even on one server. 

This works by separating the components of your application using a more abstract concept than interfaces: the message. Some call this an event-driven architecture, but having application components live their lives in silos, happily sending a receiving messages (events) to do all of their work, helps to achieve an extremely robust system.

To learn more about these patterns and approaches, read the following:

  • The Java Event Agent: http://www.ddj.com/architect/184405103
  • The Java Message Service (JMS): http://www.ddj.com/java/200001958
  • Lightweight JMS Provide: http://www.ddj.com/java/184405687 
  • Event-drive Programming: http://en.wikipedia.org/wiki/Event-driven, or http://www.ddj.com/java/201200303

Happy coding!

-EJB 

Comment  | 
Print  | 
More Insights
Building A Mobile Business Mindset
Building A Mobile Business Mindset
Among 688 respondents, 46% have deployed mobile apps, with an additional 24% planning to in the next year. Soon all apps will look like mobile apps and it's past time for those with no plans to get cracking.
Register for InformationWeek Newsletters
White Papers
Current Issue
InformationWeek Tech Digest - July 22, 2014
Sophisticated attacks demand real-time risk management and continuous monitoring. Here's how federal agencies are meeting that challenge.
Flash Poll
Video
Slideshows
Twitter Feed
InformationWeek Radio
Live Streaming Video
Everything You've Been Told About Mobility Is Wrong
Attend this video symposium with Sean Wisdom, Global Director of Mobility Solutions, and learn about how you can harness powerful new products to mobilize your business potential.