Take a look at… - Chariot Solutions

Download Report

Transcript Take a look at… - Chariot Solutions

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
Beginning
2
BOF 2577
Topics We Will Cover
–
–
–
–
–
–
–
–
–
–
–
–
Beginning
3
BOF 2577
Operating Systems
Databases
IDEs
Application Servers
Database Browsers
Source Code Control
Bug Tracking
Mailing Lists
Optimization Tools
UML Modelers
Build Tools
Test Frameworks
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
Beginning
4
BOF 2577
What We Develop On Today
RFS
OS
Linux/Windows
Database
SQL Server
IDE
JBuilder
Dev. Server
WebLogic
Prod. Server
WebLogic
DB Browser
DBVisualizer
Source Control CVS
Bug Tracking
Custom
Mailing List
Mailman
Optimization
JVM/OptimizeIt
UML Modeler
MagicDraw
Build
Ant
Test
JUnit/Custom
Beginning
5
BOF 2577
Gov’t Accounting
Windows
Oracle
JBuilder/IntelliJ
JBoss/Tomcat
WebLogic
Toad/DBVisualizer
CVS
TestDirector
UNIX aliases
JVM/OptimizeIt
Together
Ant
JUnit/TestDirector
Concert
Linux/Windows
PostgreSQL
Eclipse
JBoss/Tomcat
JBoss/Tomcat
DBVisualizer
CVS
Scarab
Mailman
JVM
Poseidon CE
Ant
JUnit
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?
Middle
6
BOF 2577
Operating Systems
Take a look at…
• Linux
• (Windows – if already installed on
developer workstations)
Middle
7
BOF 2577
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
Middle
8
BOF 2577
Databases
Take a look at…
• PostgreSQL
• MySQL
• Hypersonic
Middle
9
BOF 2577
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
Middle
10
BOF 2577
IDEs
Take a look at…
• Eclipse
• NetBeans
• Forte Community Edition
Middle
11
BOF 2577
IDEs – Eclipse Screenshot
Middle
12
BOF 2577
IDEs – NetBeans Screenshot
Middle
13
BOF 2577
IDEs – Forte C.E. Screenshot
Middle
14
BOF 2577
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
Middle
15
BOF 2577
Application Servers
Take a look at…
Servlet/JSP
• Tomcat
• Jetty
EJB
• JBoss
• JOnAS
Middle
16
BOF 2577
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
Middle
17
BOF 2577
Database Browsers
Take a look at…
• DBVisualizer
• TORA (Oracle only)
• TOAD Freeware version (Oracle only)
Middle
18
BOF 2577
DB Browsers – DBVisualizer
Middle
19
BOF 2577
DB Browsers – TORA
Middle
20
BOF 2577
DB Browsers – TOAD
Middle
21
BOF 2577
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.)
Middle
22
BOF 2577
Source Control
Take a look at…
• CVS
• RCS
• CSSC (free SCCS)
Middle
23
BOF 2577
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
Middle
24
BOF 2577
Bug Tracking
Take a look at…
• Bugzilla and variants
• Scarab (in beta)
Middle
25
BOF 2577
Bug Tracking – Bugzilla
Middle
26
BOF 2577
Bug Tracking – Scarab
Middle
27
BOF 2577
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
Middle
28
BOF 2577
Mailing Lists
Take a look at…
• Mailman
• Majordomo
• E-mail aliases
Middle
29
BOF 2577
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
Middle
30
BOF 2577
Profiling / Optimization
Take a look at…
• Sun’s JVM: –Xprof –Xrunhprof options
• ???
???
Middle
31
BOF 2577
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
Middle
32
BOF 2577
Modeling/Design Tools
Take a look at…
• ArgoUML
• Poseidon Community Edition
(an ArgoUML extension)
Middle
33
BOF 2577
Modeling – Poseidon Screenshot
Middle
34
BOF 2577
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
Middle
35
BOF 2577
Build
Take a look at…
• Ant
• Make
• Shell scripts, batch/command files
Middle
36
BOF 2577
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
Middle
37
BOF 2577
Testing
Take a look at…
• JUnit
Middle
38
BOF 2577
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
Middle
39
BOF 2577
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
40
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.
End
41
BOF 2577
BOF 2577
More information…
Linux
www.linux.org
Tomcat
jakarta.apache.org/tomcat
Mailman
www.mysql.com
Eclipse
www.eclipse.org
JBoss
www.jboss.org
Scarab
scarab.tigris.org
Forte C.E.
www.sun.com/forte/ffj
JOnAS
www.objectweb.org/jonas
CVS
www.cvshome.org
PostgreSQL
www.postgresql.org
DBVisualizer
www.minq.se/products/dbvis
Bugzilla
www.bugzilla.org
MySQL
www.mysql.com
TOAD
www.toadsoft.com
ArgoUML
argouml.tigris.org
Hypersonic
hsqldb.sourceforge.net
Ant
jakarta.apache.org/ant
Poseidon C.E.
www.toadsoft.com
Jetty
jetty.mortbay.org
Majordomo
www.greatcircle.com/majordomo
JUnit
www.junit.org
43
BOF 2577
BOF 2577