Title: J2EE Development Using Open Source and Free Tools
1J2EE Development Using Open Source and Free Tools
- Aaron Mulder
- Chief Technical Officer, Chariot Solutions
- Erin Mulder
- Java Architect, Texcel Inc.
2In this BOF we will
Discuss low-cost J2EE development
environments Compare open source and free tools
to commercial alternatives
Beginning
3Topics 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
Beginning
4Current 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
Beginning
5What We Develop On Today
Beginning
6Not 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?
Middle
7Operating Systems
Take a look at
- Linux
- (Windows if already installed on developer
workstations)
Middle
8Operating Systems
Conclusions
- Take application requirements into account
- Use what youre most productive with
- Multiple development platforms within one project
may help productivity and morale, but can
sometimes be an obstacle to teamwork
Middle
9Databases
Take a look at
- PostgreSQL
- MySQL
- Hypersonic
Middle
10Databases
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
Middle
11IDEs
Take a look at
- Eclipse
- NetBeans
- Forte Community Edition
Middle
12IDEs Eclipse Screenshot
Middle
13IDEs NetBeans Screenshot
Middle
14IDEs Forte C.E. Screenshot
Middle
15IDEs
Conclusions
- User interfaces are not always as sleek and
well-tested - Latest versions include some great refactoring
features that arent available in many
commericial tools - EJB Features missing
Middle
16Application Servers
Take a look at
- Servlet/JSP
- Tomcat
- Jetty
- EJB
- JBoss
- JOnAS
Middle
17Application Servers
Conclusions
- Servlet engines ready for prime-time
- EJB containers support EJB 1.1 well, but dont
fully support EJB 2.0 or clustering - Administration via config files
- Interfaces could use some polish
Middle
18Database Browsers
Take a look at
- DBVisualizer
- TORA (Oracle only)
- TOAD Freeware version (Oracle only)
Middle
19DB Browsers DBVisualizer
Middle
20DB Browsers TORA
Middle
21DB Browsers TOAD
Middle
22Database 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.)
Middle
23Source Control
Take a look at
Middle
24Source 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
Middle
25Bug Tracking
Take a look at
- Bugzilla and variants
- Scarab (in beta)
Middle
26Bug Tracking Bugzilla
Middle
27Bug Tracking Scarab
Middle
28Bug Tracking
Conclusions
- Free offerings get the job done
- Usability issues
- Dont integrate as well with requirements
tracking, testing and general project management
products - Limited workflow support
Middle
29Mailing Lists
Take a look at
- Mailman
- Majordomo
- E-mail aliases
Middle
30Mailing 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
Middle
31Profiling / Optimization
Take a look at
- Suns JVM Xprof Xrunhprof options
- ???
???
Middle
32Profiling / 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
Middle
33Modeling/Design Tools
Take a look at
- ArgoUML
- Poseidon Community Edition (an
ArgoUML extension)
Middle
34Modeling Poseidon Screenshot
Middle
35Modeling/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
Middle
36Build
Take a look at
- Ant
- Make
- Shell scripts, batch/command files
Middle
37Build
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
Middle
38Testing
Take a look at
Middle
39Testing
Conclusions
- Works well for unit testing
- Not really a fit for integration testing
- Doesnt integrate with specs, bug-tracking, etc.
- No automated interface for testing GUIs
Middle
40Putting 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
41Conclusion
You dont 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.
End
42(No Transcript)
43More 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
Tomcat jakarta.apache.org/tomcat JBoss www.jboss.
org JOnAS www.objectweb.org/jonas DBVisualizer w
ww.minq.se/products/dbvis TOAD www.toadsoft.com
Ant jakarta.apache.org/ant Majordomo www.greatcir
cle.com/majordomo
Mailman www.mysql.com Scarab scarab.tigris.org C
VS www.cvshome.org Bugzilla www.bugzilla.org Arg
oUML argouml.tigris.org Poseidon
C.E. www.toadsoft.com JUnit www.junit.org
44(No Transcript)