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

VIEWS: 0 PAGES: 44

									           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

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