Full GlassFish adoption questionaire response from Deslatech's Fabio De Santi.
Date: Nov 2008

Can you tell us about the application, site, or service in which you have adopted GlassFish?
We should give an answer for many integration needs between some systems, geographically distributed. I was looking for tools that could supply all interoperability features in an EAI and B2Bi scenario. As we moved forward evaluating some alternatives, I found out that GlassFish could be used, both as a communication hub in our warehouse as an integration platform between hospital's ERPs and health management systems. The JBI specification, the flexibility of developing over an EJB container and the load test we did gave us the required affordability. We were handling with critical processes that involve human life, as medical consumables and medicines warehouse supply.

How and when did you first find out about GlassFish?
I'm working with application servers since 2000 and I have evaluated some of them, including GlassFish. The first time I used GlassFish in a production environment was last year.

Did you go through an evaluation process before selecting GlassFish? If so, can you tell us a little bit about the process and results?
We had a very restrictive time frame to choose which technology was to be used. I follow a pragmatic approach focusing in functional requirements and adding some load tests and performance constraints. The most important requirements where: - Plain text mapping, validation and transformation; - Affordable distributed transactions (Oracle / SQL Server / Web Services); - Process and composite applications modeling to handle with a dynamic business; - Ability to monitor processes and environments; - Reduced maintenance interventions -- instances stability. All tests were performed with real data and all development process was very linear and with very low code adjustments. Every aspect of our applications where handled by NetBeans, simplifying testing and deployment.

What specific version of GlassFish are you using?
I'm working with Sun Java System Application Server 9.1_02.

On what operating system do you run GlassFish? Do you use the same OS for both development and production deployment?
For development I'm using Windows XP, Linux Ubuntu and Red Hat. QA and production are running Linux Red Hat boxes. The hardware is a slightly different.

On what hardware platform do you run GlassFish? Do you use the same platform for both development and production deployment?
There are some different GlassFish instances in our environments. The central instance (warehouse) is running on a Dell box with Linux Red Hat and Oracle database. This machine is a little bit stronger than the others. In the hospitals we are running also Intel machines with Red Hat. All production environments are using the same software. Development is using Intel boxes with Windows XP, Ubuntu or Red Hat.

Have you purchased a GlassFish subscription? If not, have you though about doing so and do you know it includes access to patches and sustaining releases (more details from http://blogs.sun.com/GlassFishForBusiness)?
Not yet. We are still evaluating this.

What specific features or modules of GlassFish are you using?
External integrations (between distribution center and hospitals), that involves messages handling, transformation and dynamic and complex business rules is almost everything based on JBI. The components involved are binding components like file, ftp and SOAP. Web Services are implemented in the EJB Container and take care of underlying legacy systems, using resources like JDBC or JMS queues. We also built some web applications to provide information and monitoring for those integrations. The internal integration, I mean, what happens inside the hospital, where communication occurs between the pharmacy warehouse management systems, the hospital's ERP and the health management system are provided by enterprise applications, taking advantages of performance, scalability and transactional consistency.

Are you using OpenMQ?
Yes, some routines are using queues on OpenMQ in order to handle processing bottlenecks and transient failures, since we have many different systems, technologies and environments involved.

What do you like most about GlassFish?
I think the most interesting was the combination of GlassFish and NetBeans. Almost everything was made in a very familiar way. Everything I planned to do was built and deployed without adaptations. It means an important improvement of the time-to-production challenge. The second thing, that is always expected, but not always obtained is the overall stability. Our applications are handling very well with external failures, without hanging outs or stop running. 

What would you most like to see improved in GlassFish?
Maybe a better monitoring of JBI resources and services could be provided. I know that it's pluggable into any common JMX application, but it could be easier for some end users have a common interface available as a web application. The other important thing is providing a mature service engine for human-centric processes, in a typical workflow scenario. I'm aware this feature is available in CAPS product, but it would be great to solve this as part of jbi-components project. 

Are you using any open source or commercial frameworks or tools in your application?
Sure. We are using Open ESB, included in GlassFish server, as JBI provider. Persistence is solved by JPA built on top of TopLink. For the development process we are using NetBeans and Subversion. Scheduled tasks were built using Quartz component.

Does your application use a database? If so, which one?
Our applications are using Oracle as repository, but other bases are part of our project, like SQL Server and Informix.

Are there any figures about the scale of your adoption which you would like to share ?
Performance is not our most relevant requirement, since the volume is not as big (less than 200Mb/day), but security and affordability are very important to us. The project focus was the integrations represented by aprox. 16 messages. Those integrations are part of about 5 BPEL processes, divided in two composite applications. We are dealing with 7 xml from/to flat file transformations. I can mention also a web application with 6 monitoring pages that provide process visibility and operators intervention. Including all documentation, test plans and regression tests, we had about 400 development hours of total work effort.

How has GlassFish performed since your application went live? Have you run into any production issues which you would attribute to GlassFish?
The first application was deployed in production about 2 months ago and the first hospital is already running for 3 weeks. Until now, GlassFish was stopped twice, both for server maintenance. Our 3rd level support was not enquired this last two weeks, what makes me very confident about our work.

How would your describe your participation in the GlassFish project ?
I'm mainly a user, but I reported a bug that was already solved by Sun's guys. I'm also considering collaborate with jbi-components since I'm convinced that this specification is able and mature enough to solve real, complex and critical business needs.

Is there anything else you think would be of interest in a story about your GlassFish adoption?
Sure! Since I was the primary responsible for all integrations and I have choose GlassFish, it was very important to me keep sleeping well during this entire project.


Thanks for sharing your experiences, Fabio!