THE WORLD'S TOP IT SOLUTION PROVIDERS ( Issue: 4 )
Elastic Path Software: How To - Building Enterprise Apps with Open Source Frameworks
Advice "from the trenches" on using open source frameworks to simplify enterprise software development
Nov. 19, 2005 01:45 PM
Digg This!
To learn more about ElasticPath, go to: www.elasticpath.com
Software Re-use in the Real World
Any software developer worth the price of their iPod will tell you that "reusability" is one of the Holy Grails of software development: it is incredibly valuable, but equally as elusive. How many developers working on insane deadlines have time to sit back and think about all the wonderful ways that their business components "might" be used in the future? Even standards committees led by industry experts have trouble with this.
So where is this reusability that we've been promised? Enter the world of open source software. Over the past couple years, there has been an explosion of open source tools and frameworks for developers to choose from. Projects like Struts, Spring and Hibernate have become household terms in the vocabulary of today's enterprise software developers. Here at Elastic Path, we have a simple philosophy when it comes to writing code: do it as a LAST resort. OK, I know what you're thinking: A software company that doesn't like to write code?!?! Yup, that's right! Because the more of it you write, the more of it you have to document, test, debug and maintain. And with all of the wonderful open source tools and frameworks out there, our philosophy isn't hard to live by.
Choosing Your Weapons Wisely
Alright, so you're a team lead or architect and you need to build a new web application. One of your first responsibilities on this project should be to sort out the high level architecture. In the past, this could be a really daunting task involving lots of late-night architecture sessions and Jolt cola. Today, it really boils down to: what frameworks and tools should I use and how do I make them all play well together?
Some things to consider when evaluating open source frameworks include:
- How popular is it?
- How big/responsive/friendly is the developer community?
- Has it been used in large-scale apps?
- How good is the documentation?
- How steep is the learning curve?
- How active is the CVS/Subversion tree (ie. Is this project alive and kicking or dead as a doornail?)
- Do people in your team or company have experience with it?
- Is it based on a recognized standard?
- Does it come with a restrictive license? (most of them don't)

We've done a ton of this framework research here at Elastic Path so I'll share some of the open source technologies that we've found useful in real-world enterprise development:
- Presentation layer: Velocity
- Web layer: Struts (but we're moving to Spring MVC)
- Web services layer: Axis, XMLBeans
- Business/Services layer: Spring (this is also used to wire objects throughout our application)
- Data Access layer: Hibernate, JBossCache (for Java object caching)
- Business rules engine: Drools (now part of JBoss)
- Security: Spring ACEGI
- Builds: Ant
- Validation: Jakarta Commons Validator
- Testing: jUnit, httpUnit, jWebUnit, Checkstyle (currently evaluating), PMD (currently evaluating)
- Logging: Log4J
- Search: Lucene
- Code generation: XDoclet, Middlegen, Torque, Hibernate tools, scripting languages (Perl, PHP, Python, Ruby, Groovy)
- AJAX: DWR, Echo2 (currently evaluating these)
I hope this has given you some practical advice in using open source frameworks in your next project. If you're interested in an extended version of this article please visit:
www.elasticpath.com/papers
Elastic Path Software
225 West 8th Avenue, 3rd Floor
Vancouver, BC, Canada
V5Y 1N3
Toll-free in N.America
1-800-942-5282
Phone: 604-408-8078
sales@elasticpath.com
www.elasticpath.com
To learn more about ElasticPath, go to: www.elasticpath.com
About IT Solutions GuideIT Solutions Guide (ITSG), aimed at development and corporate managers, is a free quarterly supplement focusing on the most competitive tools, solutions, and services available in the IT and infrastructure technology world today.