The Only Application Server You'll Ever Need
(Part II)
Open Source and Tools
Paul Morgan, Lutris CTO
In the
last issue I described what the definition of an application
server is, the origins of Enhydra and its particular focus on building
the presentation tier. I gave a few personal opinions on J2EE and
introduced Enhydra Enterprise, the J2EE compliant version of the
platform. This month I’ll continue with some more reasons why “Enhydra
is the only application server you will even need." - Open
Source and great tools!
The Open
Source advantage
So Enhydra is "Open Source." What does that mean for
me? Well, of course, Open Source means that the source code (or
the majority of it) is available to the public without restrictions
that limit modification or redistribution. But it also means a whole
lot more. Let me explain.
Open source software is intrinsically coupled with the Internet.
In fact the Internet both spurred the concept of Open Source collaboration
through protocol implementations like the Berkeley Internet Name
Daemon (BIND) and delivered the infrastructure necessary for collaborative
development. My point is that it is thus logical, that the modern
day application server, the operating system of the Internet
should also be developed in an Open Source fashion.
Open Source software is relevant in the marketplace if you consider
that traditional commercial software is in fact a tiny minority
of all software written; the lion's share is developed by and for
all sorts of organizations to meet their own internal needs. An
obvious giant in the U.S. Government comes to mind. The reason for
this is quite simple. Commercial software is either not flexible
enough or enforces proprietary lock-in that is often an expensive
mistake. This brings me to my second point: Open Source might be
in vogue at the desktop level, but it is ideally suited for the
enterprise where the application server is rooted.
The cited rational not withstanding, Open Source also offers a
plethora of advantages to the customer:
Reduced Risk. Having source code gives customers control
over the tools their mission critical business depends upon. It
is often the requirement of large software purchases require that
the source code be kept in escrow. With Open Source every customer
gets that security!
Quality. Several studies have shown a dramatic advantage
in reliability for open-source software compared to most comparable
commercial products. More effective development models, massive
independent peer review for both code and design, and greater pride
of authorship (after all the code can be critiqued) all contribute
to this phenomenon.
Security. Proprietary software can harbor a huge number
of bugs and bad logic that is ready to strike at the worst possible
moment. Commercial time-to-market pressures can cause even the best
development methodologies to be compromised leading to security
holes. While the same problems can exist in Open Source software
they tend to be minimized because of the pride of ownership of the
code and the fantastic, worldwide expert code reviews and testing
that takes place. So while I have heard IT buyers cite the lack
of security as a negative towards Open Source, I believe the opposite
to be true.
Market Driven Features. I’ve mentioned a couple of times
in last month's article that Enhydra was built pragmatically out
of need. That continues today with the community driving the direction
of the future platform. For example, Enhydra inherited its wireless
capabilities from a consulting company in Taiwan, a market that
is 18 months ahead of the US in this field. Today, customers in
the US are benefiting from Enhydra being a leading wireless application
server.
Customization. Open source gives customers a much greater
ability to customize software to fit their business needs. Large
organizations can reap substantial cost and labor savings from even
minor customizations when deployed on a large scale. Customer bug
fixes and enhancements are contributed back to Enhydra.org (and
thus become maintained); this option is not available with traditional
commercial software. For example, one of, if not the largest site
in Turkey runs on Enhydra. It turned out that Enhydra was the open
application server that could handle the two letter “i” in the alphabet.
Like closed source application servers, Enhydra initially failed
to handle this interesting case, but the customer was able to tweak
the code with complete success. Now Enhydra fully supports the Turkish
alphabet!
Market for Experts. A successful Open Source initiative
like Enhydra.org is evident by the community built around it. This
community not only provides commercial entities that can provide
support and training, but offers a fertile training ground for talented
engineers savvy with the platform. In addition, Enhydra has been
and continues to be selected by many universities in the US, England,
France and Germany for training engineers in Internet application
development. This trend ensures a future abundance of qualified
engineers.
Favorable licensing and pricing. By definition open-source
software comes with far more flexible licensing than proprietary
software. This can dramatically reduce the total cost of ownership
of the software even if, by purchasing a commercial packaged version
and support for the platform, the procurement cost is comparable.
Support. Today, many open-source products are becoming commercially
developed and supported and Enhydra is no exception. In fact, the
lack of commercial backing is the only potential drawback of Open
Source enterprise software. Currently Lutris offers a value added
commercial version and the essential training and support for the
global 2500. One thing you can be sure of is that if Lutris’ bottom
line is dependent on the quality of support, it will be markedly
better than commercial software companies that often consider support
as an “extra”.
To sum up this section, Open Source makes Enhydra a better application
server. It will ensure that it continues to develop at a rapid pace
and, most importantly, in the direction that customers require.
The community will continue to grow and provide solutions that run
on the platform (I heard of a high-end ERP system running on Enhydra
recently) and with each step turn Enhydra into the “Apache of application
servers”. And the most important value statement of all: Enhydra
offers a lower total cost of ownership.
Not convinced that Enhydra is the only application server you will
ever need? Let me get back to a few more features.
Tools
IDE Independence
Every developer has his or her favorite tools. To change them
and force employees to use a single environment is counter productive.
With IBM Websphere for example you have to use Visual Age. While
I have nothing against Visual Age, I know many developers that are
much more productive with emacs and some command line tools. To
this end, Enhydra makes no assumption on development tools. Each
Enhydra specific tool has a command line option and a native GUI
interface. In addition the various tools like, DODS (the object
to relational mapping tool), CodeGen (the wizard code generators),
Enhydra XMLC (the XML compiler) have GUIs integrated into leading
IDEs. With the Enhydra 3.0 product, Inprise JBuilder and Oracle
JDeveloper are fully supported. Community members are already working
on their favorites like Sun Forte and Visual Age…
DODS
The Data Object Design Studio is a tool that creates persistent
objects. That is, it creates Java code containing SQL queries and
hooks into the Enhydra transaction manager and database connection
pooling logic, and it creates the database schema necessary to store
the objects. This tool is typically invoked at build time by the
make build process (default rules are included) operating
on the DOML file. The DOML (Data Object Modeling Language) is an
XML based configuration file that stores the object definitions,
attributes and relational mapping behavior. The result of running
the tool is a set of Java Data Objects that are then compiled as
part of the build process. Experience users prefer the direct editing
of the DOML file, while others prefer the GUI interface for describing
object inheritance and attribute type mapping. The interface is
shown in figure 3.

Figure 3 - DODS: A
tool for object-relational-mapping
In the current Enhydra 3.0 product, DODS is limited to creating
Data Objects (DOs). With the introduction of Enydra Enterprise,
DODS is being extended to create BMP (Bean Managed Persistence)
entity EJBs. Also, other enhancements to make you use of Object
Ids optional is nearly complete.
Enhydra XMLC
I spent a lot of time of the benefits of Enhydra XMLC over JSP
last month, but this tool is also integrated into the JBuilder plugin
for all those visual developers.
CodeGen (NewApp)
Writing Internet applications can be difficult. Often the trickiest
part after the architecture is complete is the creation and layout
of the project source tree. The Enhydra CodeGen tool, formerly affectionately
known as NewApp, makes this task a breeze. When run, the wizard
guides you through a few simple questions such as the name of your
project and the type of application you are building (e.g. web or
wireless) and then creates a completely buildable hello-world
project tree with logic neatly divided into presentation, business
and data. The build process creates a single easy to deploy Java
jar file containing application logic, resource files like static
web content and configuration information. This is the way Enhydra
applications have been packaged for years – I’m encouraged to see
that in Sun’s latest specification on the Web Applications endorses
this concept, but they are two years late! The tree is also complete
with makefiles with extensive prepackaged rules and serves as the
perfect project launch pad. This tool is equally useful by the novice
engineer that simply needs a starting point for learning the platform.
Hey, even the marketing folks at Lutris have now built and deployed
Enhydra applications!
Administration Application
No application server would be complete without an administration
console. Enhydra takes the pragmatic approach of running a web based
administration interface. In fact it is simply another Enhydra application
with a few special privileges. By virtue of being web based it can
be used through firewalls and is easily accessible even if the server
is hosted at a co-location facility or ISP. The console has all
the usual functions, but one stands out as unique: it contains a
built in debugging monitor. This monitor is shown in figure 4.
 
Figure 4 - Enhydra's hidden debugger!
The debugging monitor can be attached to a running application
to intercept request and response traffic from the web browser.
Each request and the resultant response is displayed together with
changes to the session state while executing, a list of servlet
API calls and the total execution time. The best thing of all is
that an application can be configured with multiple connection URLs
and the debugger attached on only one of them. This way a special
“debug” path can be enabled to a live application. On a past large
project my team was able to quickly spot a deficiency in a Netscape
proxy server that was incorrectly forwarding http headers. The problem
had Netscape engineers, lacking suitable tools, completely baffled…
Oh, and because Enhydra was Open Source we able to modify it to
work around the problem!
In summary, an application server is more than
an engine providing a partitioned operating environment – it must
at least combine tools that unobtrusively facilitate development
and provide management visibility into the applications that it
hosts. Why not even include a debugging monitor. Enhydra does!
I throw down the metaphorical glove to other application server
vendors…
Next month, I’ll conclude with a few Enhydra success stories.
|