java
TRANSCRIPT
Java & SOA Open Source
אביחי מרציאנו
יועץ בכיר
Aluna
Israel’s leading Java/JavaEE and SOA consulting company
Customers:
Agenda
Java Open Source
SOA Open Source
How to chose an open source
Open source - tips
Java
So Many Sources
Apache
Eclipse
Java.net
Jboss
ObjectWeb
Sourceforge
The question is what to choose from, and not if the library exists
Java
The VM itself is being open sourced, including API implementation and more
Apache Commons
The Commons Proper is dedicated to one principal goal: creating and maintaining reusable Java components. The Commons Proper is a place for collaboration and sharing, where developers from throughout the Apache community can work together on projects to be shared by the Apache projects and Apache users.
Apache Commons
Some common libraries:◦ Configuration
◦ Bean Util
◦ Logging
◦ Pool
◦ Validator
◦ Many more
Web Services
Apache AXIS, AXIS2
Apache CXF
Java.net Metro
All work well, support the most up-to-date WS-* specs
So why so many?◦ Why not? The freedom of choice
XML
JAXB
XMLBeans
Stax
Castor
Digester
Build Tools
ANT
Maven – Also know to download the source for you
J2EE - Tomcat
Probably the most popular web container out there.
The servlet/jsp spec implementation
Fast, easy to manage
Handled by the Apache group
J2EE - JBoss
Probably the most popular J2EE server out there.
Full J2EE spec
Embedded Tomcat
Support through Redhat
Handled by jboss.org
J2EE - Geronimo
Who said there wasn’t politics in Open Source?
Full J2EE container
Offered by IBM as WebSphere CE (no relation to WebSphere Application Server)
Handled by Apache
J2EE - GlassFish
Open source J2EE server
The RI for J2EE
Handled by java.net
J2EE? - Spring
An open source framework that replaces J2EE, or at least abstracts it
Major innovation
Concepts such as IoC and AOP are embedded inside
Handled by www.springframework.org
ORM
Hibernate – will come in the next slide
Toplink
Open JPA
IBATIS
Database Access - Hibernate
Won over the Entity EJB spec – and created the new JPA spec
Easy to use ORM solution
Major performance benefits, shorten development time – used practically everywhere
Supported by RedHat
Handled by jboss.org
IDE - Eclipse
The #1 IDE in Java, by far
All major Java companies (except SUN) are part of the organizing committee of Eclipse
Versions to support:◦ J2EE
◦ PHP
◦ C++
◦ More
Innovation - AspectJ
Ability to use AOP inside Java
Highly popular
Handled by eclipse.org
Also we have:◦ Jboss – AOP
◦ Spring AOP
Quartz
Allows Job Execution in Java Some features:
◦ Support for persistent/non-persistent jobs.
◦ Simple and CRON based triggers.
◦ Support standalone and embedded operations.
◦ Can be operated in a remote manner.
◦ Support for Job and Trigger listeners.
◦ Can take part in JTA transactions.
◦ Clustering support.
◦ Can be used within J2EE applications.
Handled by OpenSymphony
UI - JSF
Tons of open source component libraries◦ RichFaces
◦ MyFaces
◦ Etc.
Even JSF RI implementation under the MyFaces project handled by Apache
Wow…
There are many frameworks and tools
Some were created by the vendors and donated to the community
It is a huge mistake not to look for open source infrastructure and develop it in house instead
Just make sure you use something that is supported and developed …
SOA
Open Source SOA
Not as common as Java Open Source
But tons of products, some of which should be used
ESB
OpenESB
Mule
ServiceMix◦ Easy to embed
◦ Easy to use
◦ First to support JBI spec – a new specification for ESB technology
ESB
BPM
Intalio
jBPM
Solutions for both embedded and standalone business process execution
Support the BPEL spec, development environments, etc.
How to chose open source
Check what is the stable release, and what is the latest build.
Go to the projects' bug/issue tracker and see what is resolved in the product, and which bugs are still outstanding. Get on the users' mailing list to learn a lot about the product.
Check the project road map. See what is coming - if anything.
How to chose open source - Cont
Google it
Ask in the community
Look on the code
Available support
Documentation /Amazon
Examples
Tips
Open sources are not always the right choice
Decoupling◦ Abstraction layer
◦ Interfaces
Look on the code
Dependencies
Don’t be adventure
Tips - Cont
Have an expert
Q & A