1 / 44

Low-Cost J2EE Development Using Open Source Tools

Join this BOF session to discuss and compare open source and free tools for low-cost J2EE development environments. Explore topics like operating systems, databases, IDEs, application servers, and more.

mackayj
Download Presentation

Low-Cost J2EE Development Using Open Source Tools

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. J2EE Development Using Open Source and Free Tools Aaron Mulder Chief Technical Officer, Chariot Solutions Erin Mulder Java Architect, Texcel Inc. BOF 2577

  2. In this BOF we will… Discuss low-cost J2EE development environments Compare open source and free tools to commercial alternatives BOF 2577 Beginning

  3. Topics We Will Cover • Operating Systems • Databases • IDEs • Application Servers • Database Browsers • Source Code Control • Bug Tracking • Mailing Lists • Optimization Tools • UML Modelers • Build Tools • Test Frameworks BOF 2577 Beginning

  4. Current Projects • Relational Financial Systems, a Swing/EJB accounting application for private industry • iCore, a JSP/EJB accounting application for government agencies • Concert, a JSP/EJB convention management system BOF 2577 Beginning

  5. What We Develop On Today BOF 2577 Beginning

  6. Not just about cost… In each of these areas, also consider… • Comfort, Productivity, Morale • Will developers be happy with the tools that are chosen? • Will more advanced tool features speed up the project? • How much time will be lost learning new interfaces? • How portable does the development environment need to be? • Expected production environment • Do customers / corporate policies dictate certain vendors? • Will testing be easier if you match the production environment? • Will diverse development platforms help avoid portability pitfalls? BOF 2577 Middle

  7. Operating Systems Take a look at… • Linux • (Windows – if already installed on developer workstations) BOF 2577 Middle

  8. Operating Systems Conclusions • Take application requirements into account • Use what you’re most productive with • Multiple development platforms within one project may help productivity and morale, but can sometimes be an obstacle to teamwork BOF 2577 Middle

  9. Databases Take a look at… • PostgreSQL • MySQL • Hypersonic BOF 2577 Middle

  10. Databases Conclusions • Several worthy free offerings which are easy to administrate • Often the best choice for applications that need to ship with an embedded database • Best to match production database where possible BOF 2577 Middle

  11. IDEs Take a look at… • Eclipse • NetBeans • Forte Community Edition BOF 2577 Middle

  12. IDEs – Eclipse Screenshot BOF 2577 Middle

  13. IDEs – NetBeans Screenshot BOF 2577 Middle

  14. IDEs – Forte C.E. Screenshot BOF 2577 Middle

  15. IDEs Conclusions • User interfaces are not always as sleek and well-tested • Latest versions include some great refactoring features that aren’t available in many commericial tools • EJB Features missing BOF 2577 Middle

  16. Application Servers Take a look at… Servlet/JSP • Tomcat • Jetty EJB • JBoss • JOnAS BOF 2577 Middle

  17. Application Servers Conclusions • Servlet engines ready for prime-time • EJB containers support EJB 1.1 well, but don’t fully support EJB 2.0 or clustering • Administration via config files • Interfaces could use some polish BOF 2577 Middle

  18. Database Browsers Take a look at… • DBVisualizer • TORA (Oracle only) • TOAD Freeware version (Oracle only) BOF 2577 Middle

  19. DB Browsers – DBVisualizer BOF 2577 Middle

  20. DB Browsers – TORA BOF 2577 Middle

  21. DB Browsers – TOAD BOF 2577 Middle

  22. Database Browsers Conclusions • If you work with databases, you should definitely be using a database browser • Free offerings usually fit the bill • DBAs and developers relying heavily on specific features of non-Oracle databases may want to invest in a DB-specific tool (for query analysis, stored procedure language tools, custom admin tools, etc.) BOF 2577 Middle

  23. Source Control Take a look at… • CVS • RCS • CSSC (free SCCS) BOF 2577 Middle

  24. Source Control Conclusions • CVS is a clear winner • Allows concurrent (non-locking) access for developers working on the same file • Many IDEs have built-in support • Great web interface available (CVSWeb) • Easily configurable to take action on commits • Great for secure, remote development BOF 2577 Middle

  25. Bug Tracking Take a look at… • Bugzilla and variants • Scarab (in beta) BOF 2577 Middle

  26. Bug Tracking – Bugzilla BOF 2577 Middle

  27. Bug Tracking – Scarab BOF 2577 Middle

  28. Bug Tracking Conclusions • Free offerings get the job done • Usability issues • Don’t integrate as well with requirements tracking, testing and general project management products • Limited workflow support BOF 2577 Middle

  29. Mailing Lists Take a look at… • Mailman • Majordomo • E-mail aliases BOF 2577 Middle

  30. Mailing Lists Conclusions • E-mail aliases are simple, but require someone to manage • Mailman is a great mailing list solution • Simple (un-)subscription procedures for end users • Web interface for administration • May need an archiving solution BOF 2577 Middle

  31. Profiling / Optimization Take a look at… • Sun’s JVM: –Xprof –Xrunhprof options • ??? ??? BOF 2577 Middle

  32. Profiling / Optimization Conclusions • Every project can benefit from the built-in JVM tools • Open source profiling/optimization tools are scarce and largely outdated • If you need to spend a lot of time tuning performance, invest in a commercial product • May need a load-generation tool to investigate performance under realistic conditions BOF 2577 Middle

  33. Modeling/Design Tools Take a look at… • ArgoUML • Poseidon Community Edition (an ArgoUML extension) BOF 2577 Middle

  34. Modeling – Poseidon Screenshot BOF 2577 Middle

  35. Modeling/Design Tools Conclusions • Great for simple modeling needs • Not as well-known or comfortable to designers as commercial products • Advanced code generation and some useful export features not available in free versions • Can integrate with IDE, but not as tightly as some commercial offerings BOF 2577 Middle

  36. Build Take a look at… • Ant • Make • Shell scripts, batch/command files BOF 2577 Middle

  37. Build Conclusions • Ant is the clear winner • Lots of predefined tasks, including source code control, building, packaging, deploying, testing, documentation • Same build script supports any OS • Nested build scripts • Works well in automated builds BOF 2577 Middle

  38. Testing Take a look at… • JUnit BOF 2577 Middle

  39. Testing Conclusions • Works well for unit testing • Not really a fit for integration testing • Doesn’t integrate with specs, bug-tracking, etc. • No automated interface for testing GUIs BOF 2577 Middle

  40. Putting it all together… • Recent IDE releases integrate (or provide plug-ins for) many of these tools, including CVS, JUnit, Tomcat, Poseidon, Ant • Ant ships with tasks for CVS, JUnit, mail, etc. • CVS has a common web interface (CVSWeb) and can be integrated with a mailing list to e-mail URLs to graphical diffs • Biggest integration shortfall is spec to test to bug tracking workflow BOF 2577

  41. Conclusion You don’t need to spend a bundle – many open source and free tools are of excellent quality. Target your budget for maximum productivity gains, or to support platforms your customers demand. BOF 2577 End

  42. BOF 2577

  43. More information… Linux www.linux.org Eclipse www.eclipse.org Forte C.E. www.sun.com/forte/ffj PostgreSQL www.postgresql.org MySQL www.mysql.com Hypersonic hsqldb.sourceforge.net Jetty jetty.mortbay.org Tomcat jakarta.apache.org/tomcat JBoss www.jboss.org JOnAS www.objectweb.org/jonas DBVisualizer www.minq.se/products/dbvis TOAD www.toadsoft.com Ant jakarta.apache.org/ant Majordomo www.greatcircle.com/majordomo Mailman www.mysql.com Scarab scarab.tigris.org CVS www.cvshome.org Bugzilla www.bugzilla.org ArgoUML argouml.tigris.org Poseidon C.E. www.toadsoft.com JUnit www.junit.org BOF 2577

  44. BOF 2577

More Related