J2EE Development Using Open Source and Free Tools - PowerPoint - PowerPoint by bzs12927


									           J2EE Development Using
           Open Source and Free
           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

                           Compare open source and free tools
                           to commercial alternatives

Beginning   2   BOF 2577
                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
Beginning   3   BOF 2577
                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              Gov’t Accounting     Concert
                OS             Linux/Windows    Windows              Linux/Windows
                Database       SQL Server       Oracle               PostgreSQL
                IDE            JBuilder         JBuilder/IntelliJ    Eclipse
                Dev. Server    WebLogic         JBoss/Tomcat         JBoss/Tomcat
                Prod. Server   WebLogic         WebLogic             JBoss/Tomcat
                DB Browser     DBVisualizer     Toad/DBVisualizer    DBVisualizer
                Source Control CVS              CVS                  CVS
                Bug Tracking   Custom           TestDirector         Scarab
                Mailing List   Mailman          UNIX aliases         Mailman
                Optimization   JVM/OptimizeIt   JVM/OptimizeIt       JVM
                UML Modeler    MagicDraw        Together             Poseidon CE
                Build          Ant              Ant                  Ant
                Test           JUnit/Custom     JUnit/TestDirector   JUnit
Beginning   5     BOF 2577
             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

Middle   6    BOF 2577
             Operating Systems

             Take a look at…
             • Linux
             • (Windows – if already installed on
               developer workstations)

Middle   7    BOF 2577
             Operating Systems

             • 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

Middle   8    BOF 2577

             Take a look at…
             • PostgreSQL
             • MySQL
             • Hypersonic

Middle   9    BOF 2577

              • 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

Middle   10    BOF 2577

              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

              • 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…
              • Tomcat
              • Jetty
              • JBoss
              • JOnAS

Middle   16    BOF 2577
              Application Servers

              • 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

              • 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

              • 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
              • 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

              • 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

              • 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

              • 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
              • May need a load-generation tool to
                investigate performance under realistic
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

              • 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

              Take a look at…
              • Ant
              • Make
              • Shell scripts, batch/command files

Middle   36    BOF 2577

              • 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

              Take a look at…
              • JUnit

Middle   38    BOF 2577

              • Works well for unit testing
              • Not really a fit for integration testing
              • Doesn’t integrate with specs, bug-tracking,
              • 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

               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

End   41   BOF 2577
BOF 2577
     More information…

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

43   BOF 2577
BOF 2577

To top