J2EE Development with Open Source - PowerPoint PPT Presentation

1 / 64
About This Presentation
Title:

J2EE Development with Open Source

Description:

J2EE Development with Open Source & Free Tools. Erin Mulder. Enterprise Architect ... Scarab. JIRA (if you're non-profit) Take a look at... Bug Tracking Scarab ... – PowerPoint PPT presentation

Number of Views:85
Avg rating:3.0/5.0
Slides: 65
Provided by: jor142
Category:

less

Transcript and Presenter's Notes

Title: J2EE Development with Open Source


1
J2EE Development with Open Source Free Tools
Make the most of any budget
  • Erin Mulder
  • Enterprise Architect
  • Chariot Solutions

Aaron Mulder Chief Technical Officer Chariot
Solutions
2
In this BOF well
Look at open-source and free offerings in almost
every area of J2EE development Compare them to
the commercial alternatives
3
Topics well cover
4
Not just about cost
In each of these areas, also consider
  • Comfort, Productivity, Morale
  • Will developers be happy with the tools that are
    chosen?
  • Would 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?

5
  • Runtime
  • Environment

6
Operating Systems
Take a look at
  • Linux
  • Windows 2000, XP
  • Mac OS-X

7
Operating Systems
Conclusions
  • Often free with the hardware
  • Use what youre most productive with
  • Multiple development platforms within one project
    may help productivity and morale, but can
    sometimes be an obstacle to teamwork
  • Someone should use the target platform
  • OS-X is great, but a lot of commercial
    J2EE/database servers dont support it yet

8
Databases
Take a look at
  • PostgreSQL
  • MySQL
  • SAP DB
  • Hypersonic
  • McKoi

9
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
  • Be sure to still test early and often on your
    production database

10
Persistence Frameworks
Take a look at
  • EJB 2.0 CMP
  • OJB
  • Hibernate
  • Castor

11
Persistence Frameworks
Conclusions
  • Dont write SQL
  • (unless you have to)

12
Application Servers
Take a look at
  • Servlet/JSP
  • Tomcat
  • Jetty
  • EJB
  • JBoss
  • JOnAS
  • OpenEJB

13
Application Servers
Conclusions
  • The real choice is JBoss/Tomcat vs. JBoss/Jetty
  • Both are ready for primetime
  • Lots of production deployments of each
  • Administration via config files, not graphical
    interfaces
  • Multiple companies providing support

14
Portals, Integration Workflow
Take a look at
  • Jetspeed
  • OFBiz
  • InfoSapient

15
Portals, Integration Workflow
Conclusions
  • Weak compared to commercial offerings
  • Starting to get a lot of attention, though
  • Portlet API will improve EIP prospects
  • All of these can be a good headstart if youre
    choosing build over buy

16
Content Management
Take a look at
  • Cocoon
  • Cofax
  • OpenCMS

17
Content Management
Conclusions
  • Still evaluating
  • Cocoon is an XML/XSLT engine that can load and
    transform arbitrary XML content
  • CoFax and OpenCMS are more full-fledged content
    management systems that edit, track, version and
    present content

18
Reporting
Take a look at
  • JasperReports
  • DataVision

19
Reporting
Conclusions
  • Great for small number of canned reports
  • Jasper has a more powerful engine
  • DataVision focuses on report building UI
  • Get a commercial product if your users need to
    create complex ad-hoc reports

20
Scheduling
Take a look at
  • Quartz
  • JCronTab

21
Scheduling
Conclusions
  • Platform-independent scheduling
  • Can be embedded in J2EE applications
  • JCronTab is a simple cron-like scheduler
  • Quartz is more powerful, but more complicated

22
  • Development
  • Tools

23
IDEs
Take a look at
  • Eclipse
  • NetBeans

24
IDEs Eclipse Screenshot
25
IDEs NetBeans Screenshot
26
IDEs
Conclusions
  • Everything you need for most Java/J2EE
    development
  • Loads of great plug-ins
  • May want to look at IBM/Rational or
    Borland/Together for better modeling and GUI
    design integration
  • May want to look at IntelliJs IDEA for more
    intuitive, Java-centric development

27
Database Browsers
Take a look at
  • SQuirreL
  • TORA
  • DBVisualizer free version
  • TOAD free version (Oracle only)

28
DB Browsers SQuirreL
29
DB Browsers TORA
30
DB Browsers DBVisualizer
31
DB Browsers TOAD
32
Database Browsers
Conclusions
  • If you work with databases, you should definitely
    be using a database browser
  • Free offerings usually fit the bill
  • Most are limited to the JDBC API
  • 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.)

33
Source Control
Take a look at
  • CVS (with ViewCVS, QueryCVS, etc.)
  • Subversion

34
Source Control
Conclusions
  • CVS is often the best option
  • Allows concurrent (non-locking) access
  • Great tools support
  • Great web interfaces available
  • Easily configurable to take action on commits
    (bug tracking, email, etc.)
  • Great for secure, remote development
  • Keep an eye on the Subversion project

35
Documentation
Take a look at
  • DocBook

36
Documentation DocBook Source
37
Documentation DocBook HTML
38
Documentation DocBook PDF
39
Documentation
Conclusions
  • Text-based format great for version control
  • Developers can edit docs from within IDE
  • Can configure CVS to rebuild browsable
    documentation on every check-in
  • Produces great, professional looking PDFs
  • Still weak on WYSIWIG tool support (hopefully
    coming soon to OpenOffice)
  • Go with XML version, not SGML

40
Modeling/Design Tools
Take a look at
  • Eclipse Modeling Framework (EMF) and the free
    edition of Omondos EclipseUML plug-in
  • ArgoUML Poseidon Community Edition

41
Modeling EclipseUML
42
Modeling ArgoUML Screenshot
43
Modeling/Design Tools
Conclusions
  • Eclipses EMF projects offer sophisticated
    modeling and code generation
  • Not as simple to configure as many commercial
    modelers
  • Sometimes nice to use smaller tools (e.g. Violet)
    for simple diagram creation

44
Profiling
Take a look at
  • Suns JVM Xprof Xrunhprof options
  • Eclipse Profiler Plug-In

45
Profiling Eclipse Profiler Plug-In
46
Profiling
Conclusions
  • Every project can benefit from the built-in JVM
    tools
  • Eclipse Profiler plug-in looks a lot like popular
    commercial profilers
  • Use with a load-generator to investigate
    performance under realistic conditions

47
Testing
Take a look at
  • JUnit, HttpUnit, JUnitPerf
  • Cactus
  • JMeter, MaxQ
  • Grinder, http_load, httperf, other load
    generators
  • http//www.javaperformancetuning.com

48
Testing
Conclusions
  • JUnit works great for unit testing
  • Plenty of options for load generation (both Java
    and non-Java)
  • Lots of proxies for point-and-click automated
    testing of web applications
  • Still weak on automated testing of Swing apps
  • Not a lot of integration with specs,
    bug-tracking, etc.

49
Bug Tracking
Take a look at
  • Bugzilla and variants
  • Scarab
  • JIRA (if youre non-profit)

50
Bug Tracking Bugzilla
51
Bug Tracking Scarab
52
Bug Tracking JIRA
53
Bug Tracking
Conclusions
  • JIRA is great, but only free for non-commercial
    use
  • Other free offerings get the job done
  • Still some usability issues
  • Dont integrate as well with requirements
    tracking, testing and general project management
    products

54
Scripting Debugging
Take a look at
  • Jython
  • Interact with your classes and EJBs outside of
    the traditional build/run cycle
  • AspectJ
  • Enforce coding standards
  • Log debug info
  • Castor
  • Save XML-representations of objects that cause
    unexpected exceptions
  • Use these to debug and as input for unit tests

55
Scripting Debugging
Conclusions
  • Open source tools can solve a lot of problems you
    didnt even know you had
  • Consider useful ways you can use them during
    development, even if you disable them for
    delivery
  • Experiment with scripting languages and other
    methods to minimize the debuggtgtfixgtgtrebuildgtgttest
    cycle

56
Build Management
Take a look at
  • Ant
  • Maven

57
Build Management Maven
58
Build Management Maven
59
Build Management
Conclusions
  • Ant is the de facto standard for builds
  • Maven centralizes builds across projects and adds
    more sophisticated analysis, dependency tracking,
    etc.

60
Project Management
Take a look at
  • Gantt chart tools like MrProject
  • Other suggestions???

61
Project Management
Conclusions
  • Lots of MS-Project knock-offs out there
  • Free tools dont integrate full lifecycle
    management (reqs, tasks, tests, bugs, releases,
    etc.) the way some commercial suites do
  • If youre interested in helping to change that,
    email jellico_at_opentools.org

62
Putting it all together
  • Recent IDE releases integrate almost all of these
    tools
  • Many new tools are being developed primarily as
    plug-ins without a standalone version
  • Still weak on full project lifecycle management
    (i.e. specgtgtdevgtgttestgtgtbugsgtgtrelease, etc.)
  • Still weak on value-added enterprise features
    (portals, connectors, caching, graphical server
    monitoring/management)
  • Where are the open-source UI experts? ?

63
More informationhttp//chariotsolutions.com/pres
entations.html
NetBeans netbeans.org SQuirreL squirrel-sql.sour
ceforge.net TORA globecom.com/tora DBVisualizer
minq.se/products/dbvis TOAD www.toadsoft.com CVS
www.cvshome.org Subversion subversion.tigris.org
DocBook docbook.org Eclipse Profiler eclipsecol
orer.sourceforge.net JUnit www.junit.org Cactus
jakarta.apache.org/cactus JMeter jakarta.apache.o
rg/jmeter
  • PostgreSQL
  • postgresql.org
  • MySQL
  • mysql.com
  • SAP DB
  • sapdb.com
  • Hypersonic
  • hsqldb.sourceforge.net
  • McKoi
  • mckoi.com
  • OJB
  • db.apache.org/ojb
  • Hibernate

OpenEJB openejb.sourceforge.net JetSpeed jakarta.
apache.org/jetspeed OFBiz ofbiz.org InfoSapient
info-sapient.sourceforge.net Cocoon cocoon.apache
.org CoFax cofax.org OpenCMS opencms.org Jasper
Reports jasperreports.sourceforge.net DataVision
datavision.sourceforge.net Quartz quartz.sourcefo
rge.net JCronTab jcrontab.sourceforge.net Eclips
e eclipse.org
EMF eclipse.org/emf EclipseUML eclipseuml.com Ar
goUML argouml.tigris.org Poseidon
C.E. gentleware.com Scarab scarab.tigris.org Bug
zilla bugzilla.org JIRA atlassian.com Ant ant.ap
ache.org Maven maven.apache.org MrProject mrproj
ect.codefactory.se Jython jython.org AspectJ ecl
ipse.org/aspectj
64
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com