Скачать презентацию J 2 EE Development Using Open Source and Скачать презентацию J 2 EE Development Using Open Source and

59c82d9c1596d6006b4afbc63ace3081.ppt

  • Количество слайдов: 44

J 2 EE Development Using Open Source and Free Tools Aaron Mulder Chief Technical 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 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 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 • 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. 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, 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 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 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 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 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 IDEs Take a look at… • Eclipse • Net. Beans • Forte Community Edition Middle 11 BOF 2577

IDEs – Eclipse Screenshot Middle 12 BOF 2577 IDEs – Eclipse Screenshot Middle 12 BOF 2577

IDEs – Net. Beans Screenshot Middle 13 BOF 2577 IDEs – Net. Beans Screenshot Middle 13 BOF 2577

IDEs – Forte C. E. Screenshot Middle 14 BOF 2577 IDEs – Forte C. E. Screenshot Middle 14 BOF 2577

IDEs Conclusions • User interfaces are not always as sleek and well-tested • Latest 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 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 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 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 – DBVisualizer Middle 19 BOF 2577

DB Browsers – TORA Middle 20 BOF 2577 DB Browsers – TORA Middle 20 BOF 2577

DB Browsers – TOAD Middle 21 BOF 2577 DB Browsers – TOAD Middle 21 BOF 2577

Database Browsers Conclusions • If you work with databases, you should definitely be using 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) 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 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) 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 – Bugzilla Middle 26 BOF 2577

Bug Tracking – Scarab Middle 27 BOF 2577 Bug Tracking – Scarab Middle 27 BOF 2577

Bug Tracking Conclusions • Free offerings get the job done • Usability issues • 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 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 • 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 • 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 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 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 – Poseidon Screenshot Middle 34 BOF 2577

Modeling/Design Tools Conclusions • Great for simple modeling needs • Not as well-known or 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 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 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 Take a look at… • JUnit Middle 38 BOF 2577

Testing Conclusions • Works well for unit testing • Not really a fit for 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) 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 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 BOF 2577

More information… Linux www. linux. org Tomcat jakarta. apache. org/tomcat Mailman www. mysql. com 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 BOF 2577