www.enhydra.org
 

 
FRONT PAGE
The
Architect's View
 
       
  The Open Source Advantage

    Tools

 

 

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.

TOP OF PAGE

Lutris Technologies    Legal Notices    Privacy Policy