59c82d9c1596d6006b4afbc63ace3081.ppt
- Количество слайдов: 44
J 2 EE 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 J 2 EE 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 • i. Core, 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 Web. Logic Prod. Server Web. Logic DB Browser DBVisualizer Source Control CVS Bug Tracking Custom Mailing List Mailman Optimization JVM/Optimize. It UML Modeler Magic. Draw Build Ant Test JUnit/Custom Beginning 5 BOF 2577 Gov’t Accounting Windows Oracle JBuilder/Intelli. J JBoss/Tomcat Web. Logic Toad/DBVisualizer CVS Test. Director UNIX aliases JVM/Optimize. It Together Ant JUnit/Test. Director Concert Linux/Windows Postgre. SQL Eclipse 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… • Postgre. SQL • My. SQL • 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 • Net. Beans • Forte Community Edition Middle 11 BOF 2577
IDEs – Eclipse Screenshot Middle 12 BOF 2577
IDEs – Net. Beans 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 • JOn. AS 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… • Argo. UML • Poseidon Community Edition (an Argo. UML 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 email 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 JOn. AS www. objectweb. org/jonas CVS www. cvshome. org Postgre. SQL www. postgresql. org DBVisualizer www. minq. se/products/dbvis Bugzilla www. bugzilla. org My. SQL www. mysql. com TOAD www. toadsoft. com Argo. UML 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


