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!