440 likes | 450 Views
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.
E N D
J2EE Development Using Open Source and Free Tools Aaron Mulder Chief Technical Officer, Chariot Solutions Erin Mulder Java Architect, Texcel Inc. BOF 2577
In this BOF we will… Discuss low-cost J2EE development environments Compare open source and free tools to commercial alternatives BOF 2577 Beginning
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
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
What We Develop On Today BOF 2577 Beginning
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
Operating Systems Take a look at… • Linux • (Windows – if already installed on developer workstations) BOF 2577 Middle
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
Databases Take a look at… • PostgreSQL • MySQL • Hypersonic BOF 2577 Middle
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
IDEs Take a look at… • Eclipse • NetBeans • Forte Community Edition BOF 2577 Middle
IDEs – Eclipse Screenshot BOF 2577 Middle
IDEs – NetBeans Screenshot BOF 2577 Middle
IDEs – Forte C.E. Screenshot BOF 2577 Middle
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
Application Servers Take a look at… Servlet/JSP • Tomcat • Jetty EJB • JBoss • JOnAS BOF 2577 Middle
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
Database Browsers Take a look at… • DBVisualizer • TORA (Oracle only) • TOAD Freeware version (Oracle only) BOF 2577 Middle
DB Browsers – DBVisualizer BOF 2577 Middle
DB Browsers – TORA BOF 2577 Middle
DB Browsers – TOAD BOF 2577 Middle
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
Source Control Take a look at… • CVS • RCS • CSSC (free SCCS) BOF 2577 Middle
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
Bug Tracking Take a look at… • Bugzilla and variants • Scarab (in beta) BOF 2577 Middle
Bug Tracking – Bugzilla BOF 2577 Middle
Bug Tracking – Scarab BOF 2577 Middle
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
Mailing Lists Take a look at… • Mailman • Majordomo • E-mail aliases BOF 2577 Middle
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
Profiling / Optimization Take a look at… • Sun’s JVM: –Xprof –Xrunhprof options • ??? ??? BOF 2577 Middle
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
Modeling/Design Tools Take a look at… • ArgoUML • Poseidon Community Edition (an ArgoUML extension) BOF 2577 Middle
Modeling – Poseidon Screenshot BOF 2577 Middle
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
Build Take a look at… • Ant • Make • Shell scripts, batch/command files BOF 2577 Middle
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
Testing Take a look at… • JUnit BOF 2577 Middle
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
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
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
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