In this interview, we speak to Anil Saldhana, Senior Developer at JBoss Inc. Anil talks about J2EE applications servers, open source, aspect oriented programming and particularly about the JBoss range of products. He also shares his views on what is special about JBoss and what the company has to offer to the enterprise Java community.
An interesting bit for our readers from India is that JBoss will soon have an office in Bangalore and will be conducting JBoss training sessions in India.
IndicThreads >> Welcome to IndicThreads. Could you introduce yourself to IndicThreads readers?
Anil Saldhana >> My name is Anil Saldhana. I work as a Senior Developer at JBoss Inc. I work on the core development of the JBoss Application Server, focusing on Tomcat and Web Services. I lead the project that is focused on JAXR integration (Java API for XML Registries) in JBoss. I have worked at Sun Microsystems and Siemens and hold a Masters degree in Computer Science from the University of Illinois . I actively participate in Apache jUDDI and lead Apache Scout. I live in Chicago currently, but grew up at Bangalore . I am also quite active in the Java community in Chicago via the Chicago Java User Group.
“We preach the concept of ‘Professional Open Source'”
IndicThreads >> What do you think is special about JBoss? approach to open source? How would you compare using software from JBoss as compared to maybe picking it from Apache or from Sourceforge?
Anil Saldhana >> JBoss took the approach of ?POJO middleware? right from the beginning. JBoss has always strived to bring the power of J2EE to J2SE. This has been our approach right from the start-make your POJOs (Plain Old Java Objects) enterprise quality. We preach the concept of ?Professional Open Source?. Majority of our fulltime developers are leaders in the open source world and are being paid to do what they love to do the most ? write open source software.
“Professional Open Source is a methodology for
delivering high-quality software and support at low cost.”
Professional Open Source is a methodology for delivering high-quality software and support at low cost. It is born out of two distinct and complementary realizations:
- High-quality, full-time developers need to be paid
- For open source to be ?safe? for the enterprise, open source must offer professional services and accountability comparable, if not superior to what is offered in the proprietary software world.
The answer to your question on why you should pick JBoss over other freely available software on Apache or SF is pretty straightforward. You get the world-class production and developer support from JBoss Inc as well as the community via our forums, blogs and wikis. Plus we are J2EE 1.4 certified. If no cost, quality support and standards compliance matter to you, you will not think twice.
“Plus we are J2EE 1.4 certified.
If no cost, quality support
and standards compliance matter to you,
you will not think twice.”
The customers as well as the community have appreciated our Service-oriented approach to middleware. The concept of services being deployed on a lightweight container is something that you will always need in your production environment and complex IT environment with different needs. One-size-fit-all approach will fail to deliver the power of J2EE to the industry. There should be a mechanism for users to scale up or down, and customize according to their needs. The JBoss microkernel does that for you.
IndicThreads >> Coming to the JBoss Application Server, apart from being free and open source, what distinguishes it from the other application servers?
Anil Saldhana >> Simple answer: world-class production and development support. We are J2EE 1.4 certified and are always striving for innovation while maintaining standards compliance. Plus the ability to trim down the application server to only the services you require.
“JBoss is always striving for innovation
while maintaining standards compliance.”
Features like hot deployment, JMX service management and clustering have been favorites of the community. Integration of quality open source products like tomcat, hibernate, and jGroups provide one-stop solution to enterprise customers at no cost.
Also I would like to direct the readers to have a look at JEMS [JBoss Enterprise Middleware System] (http://www.jboss.com/products/overview) that provides a plug-n-play capability with open source technologies for the enterprise. Leave the integration headache to us.
“JEMS [JBoss Enterprise Middleware System] provides
a plug-n-play capability with open source technologies for the enterprise.
Leave the integration headache to us.”
For customers, JBossNetwork (http://www.jboss.com/services/jbossnetwork) is a new initiative at JBoss that will provide expert knowledge and productivity enhancing tools all accessible via a Support Portal.
IndicThreads >> What are your thoughts on Apache Geronimo? As Geronimo also has the free and open source advantage, do you think it will soon offer serious competition to the JBoss Application Server?
Anil Saldhana >> We are light years ahead of other open source application servers. We achieved J2EE 1.4 certification long ago and are focused on J2EE 1.5 currently. We have an established customer base. JBoss customers have rated our support as the best in the class ( http://www.jboss.com/pdf/supportsurvey.pdf). It will be very difficult for other open source application servers to achieve the same kind of charisma and customer satisfaction that JBoss has garnered.
“JBoss is light years ahead of other open source application servers.”
Last month, BZResearch (http://sdtimes.com/news/117/story5.htm) released a market survey on application server market share and JBoss is at the top of the list over BEA and IBM. Anybody wanting to enter the J2EE market open or closed source, will have the same long uphill battle we faced over the past few years to gain any market penetration. Geronimo isn’t even 1.0 yet or J2EE 1.4 certified, correct? When they finally release, they are going to have the same long uphill battle to win customers away from three entrenched vendors.
“We are here to stay. Any time, a programmer or a customer
who is looking for a no to low cost solution to use J2EE, is most likely to pick JBoss”
We are active in the JCP and majority of the specs including JSR-220 (Enterprise Java Beans 3.0). So we are here to stay. Any time, a programmer or a customer is looking for a no to low cost solution to use J2EE, is most likely to pick JBoss.
JBoss’ success did not happen overnight. People go to JBoss because they know they can get high quality middleware and high quality support, from a company with an established reputation, first-tier partners and established-name enterprise customers.
IndicThreads >> What are the striking features of JBoss Application Server 4.0 that was released recently?
Anil Saldhana >> The striking feature of JBoss v4.0 is that it has passed the J2EE 1.4 Compatibility Tests from Sun Microsystems. It was 8 plus months of focused effort, reiterating our commitment to the community and our customers-to provide quality software that is low cost as well as standards certified. JBoss v4.0 includes support for AOP and J2EE Web Services. It has JBossCache, Tomcat 5, Hibernate and Clustering support while providing our usual JMX support among host of other services.
JBoss v 4.0 has the following new features:
- Supports J2EE Web Services including JAX-RPC (Java API for XML RPC) and the Web Services for J2EE Architecture, which facilitates exposing stateless session beans as Web Service endpoints. JBoss V3.x contains a proprietary Web Services stack called JBoss.Net (which is deprecated).
- Implements the EJB 2.1 specification. The EJB 2.1 specification extends the message-driven bean contracts to support other messaging types in addition to JMS. It supports stateless session beans as web service endpoints. It also includes a new container managed service called the EJB timer service.
- Implements the JMS (Java Messaging Service) 1.1 specification instead of the JMS 1.0 in JBoss AS 3.2. In JMS 1.0, client programming for the Point-to-Point and Pub/Sub domains was done using similar but separate class hierarchies. In JMS 1.1, there is now a domain-independent approach to programming the client application. JMS1.1 includes a combined model of Queue/Topic connections that can be used for both styles.
- Implements the JCA (Java Connector Architecture) 1.5 specification instead of the JCA 1.0 in JBoss AS 3.2. The JCA 1.5 specification adds support for the life cycle management of resource adapters, worker thread management as well as transaction and message inflow from the resource adapter to the application server.
- Implements the new Java Authorization Contract for Containers (JACC) specification. JACC is a Java 2 permission-based mechanism for externalizing the authorization decision for accessing EJB methods and web resources.
IndicThreads >> Talking of Aspect-Oriented Programming (AOP) Model, can you tell us more about AOP? What is AOP and how has JBoss used it?
Anil Saldhana >> I would direct the readers to an article written by Bill Burke called ?It?s the Aspects? available at (http://www.sys-con.com/story/?storyid=38104&DE=1) . To describe it in a simple statement, AOP provides the ability to add different behaviors to your code at runtime, via aspects and pointcuts. AOP practitioners define crosscutting concerns as the behavior that is cutting across multiple points in your object model, and yet is distinctly different from the classes it’s crosscutting.
“In a simple statement, AOP provides the ability
to add different behaviors to your code at runtime,
via aspects and pointcuts.”
Lets take an example – you would like to time how long each method in an object takes at runtime. Without AOP, you would instrument the code with timing code. You will have to do this for every method. But AOP will allow you to do dynamic instrumentation of the code. Now this was just timing. What if you want to add auditing/logging code to every method? It is the same process of instrumentation without AOP. But AOP allows you to add aspects (like metrics, audit etc) to the code at runtime.
JBoss AOP is a 100% pure Java aspect oriented framework usable in any programming environment or tightly integrated with our application server.
“JBoss AOP is a 100% pure Java aspect oriented framework
usable in any programming environment
or tightly integrated with our application server.”
Aspects allow you to more easily modularize your code base when regular object oriented programming just doesn’t fit the bill. It can provide a cleaner separation from application logic and system code. It provides a great way to expose integration points into your software. Combined with JDK 1.5 Annotations, it also is a great way to expand the Java language in a clean pluggable way rather than using annotations solely for code generation.
JBoss AOP is not only a framework, but also a prepackaged set of aspects that are applied via annotations, pointcut expressions, or dynamically at runtime. Some of these include caching, asynchronous communication, transactions, security, remoting, and many more.
JBoss AOP is currently integrated with JBoss IDE and there is an animated demo available at http://docs.jboss.org/jbosside/jboss-ide-aop-demo.
IndicThreads >> Can you describe some of the core projects at JBoss?
Anil Saldhana >> I would like to give a brief description on some of the core projects happening at JBoss.
- JBoss AS is the first J2EE 1.4 certified, production-ready, open-source application server on the market, delivering a high-performance, reliable platform for e-business applications.
- JBossAOP and EJB3: EJB 3.0 is a deep overhaul of the old EJB specification. Its goals are to simplify development, facilitate test driven development, and focus more on plain java objects (POJOs) rather than on complex APIs. The introduction of annotations into JDK 5.0 allowed the EJB 3.0 specification to completely remove dependencies on XML deployment descriptors, the biggest bane to EJB developers. Bill Burke and Gavin King, representatives on JSR 220, handle EJB3 at JBoss. The power of JBoss AOP and Hibernate has been combined to provide implementations of the EJB3 spec (currently under development in the JCP).
- JBoss Cache is a replicated and transactional cache that allows you to cache data for e-business applications in order to dramatically improve performance. JBoss Cache supports simple caching needs, as well as complex caching requirements of clustered J2EE applications.
- JBoss Eclipse IDE is a series of integrated Eclipse plug-ins for building quality software applications. JBoss Eclipse IDE extends Eclipse and enables programmers to develop, deploy, test, and debug their JBoss-based applications without leaving the IDE.
- Hibernate is the most popular object/relational (O/R) mapping solution for Java and lets you develop persistent classes using plain old Java objects (POJOs).
- JBoss jBPM is a powerful open source workflow management system and combines easy development of workflow applications with enterprise application integration capabilities. JBoss jBPM can be used in the simplest environment, such as an Apache Ant task, or scale to handle the most complex workflow patterns in a clustered J2EE application.
- JBoss Portal 2.0 is the next generation open source content management system (CMS) and portal framework. It is entirely standards-based and supports the JSR-168 Portlet specification, which allows you to easily plug-in standards-compliant modules to meet your specific Portal needs. Our website runs off of our own portal.
- JGroups is a reliable group communication toolkit written entirely in Java. It is based on IP multicast, but extends it with reliability and group membership. This toolkit is what forms the foundation for all clustering related features in JBoss. A salient feature of JGroups is the group membership, which allows auto discovery of members in a group, plus the synchronization that happens between the members via multicast messages.
- JBossMail is a project that is working to provide Mail Services for JBoss – SMTP/POP mail delivery, Mail Listeners, Mailbox implementation etc. The goal is to allow customers to use JBoss as your mail server.
We have integrated Apache Tomcat as our default Web Container and our project JBossWeb has provided the benefits of JBoss such as Unified Classloading, Clustering based on JBossCache/JGroups and advanced security to the integrated tomcat container. The integrated web container allows customers to deploy enterprise applications with end-to-end security. Since the integrated tomcat container runs in the same JVM as the application server, customers will see major performance benefits.
“Since the integrated tomcat container runs
in the same JVM as the application server,
customers will see major performance benefits.”
We are currently working on a lightweight POJO micro container. In the future, all our components will be available as standalone products. Currently, some products like JBossCache, JBoss jBPM and JBoss AOP work standalone. But our future goal is to make all our products standalone.
“Our goal is to make all our products standalone.”
IndicThreads >> What is JBoss? presence in India like? Can you provide us some statistics on the number of clients, users, downloads, etc.?
Anil Saldhana >> I do not have the statistics for India . I can give you the overall picture though. We have one of the largest communities in the world with:
- Over a quarter of a million developers
- 500+ contributors over time
- 100+ Committers
- 30+ core (JBoss Inc)
- 120,000 Forum Posts
- 3,000+ commits per month, order(s) of magnitude on competition
- #1 in development
- more than 5 Million downloads
- 40% Market share in TogetherSoft User Survey
- #1 in ISV/OEM
- #1 in app server growth at System Integrators
- #1 in IT production. A recent BZSurvey (http://sdtimes.com/news/117/story5.htm) shows that JBoss is #1 in production.
IndicThreads >> Any plans for further promoting JBoss in India ?
Anil Saldhana >> We view India as a strategic region in APAC. We are opening a JBoss center in Bangalore in the next few days. This is to provide quality support and assistance to all customers in the APAC region. When we say we will provide 24/7 support wherever you are, we mean it.
“When we say we will provide 24/7 support wherever you are, we mean it.”
IndicThreads >> Good to know that you have a training sessions planned for Bangalore, India. So can we expect a JBoss office in India and training sessions in the other cities?
Anil Saldhana >> Our first JBoss training in Bangalore attracted a large audience and we plan to hold many more trainings in Bangalore and other cities, via partners in India . The next one is in February 2005. I would suggest readers to visit http://www.jboss.com/services/training/schedule for the latest schedule. Yes, we are setting up a JBoss office in Bangalore within the next few days.
“We are setting up a JBoss office in Bangalore within the next few days.”
IndicThreads >> Thanks Anil. It?s been great talking to you. My best wishes for your India plans. I am sure IndicThreads readers in Bangalore would have made a note of it.
Anil Saldhana >> Pleasure is mine. Good luck to IndicThreads. I would like to see many more developers and engineers in India to contribute to open source software.
“I would like to see many more developers and engineers
in India to contribute to open source software. “