XML Developer TipThe (eventual) triumph of open source APIs
Regular readers of my XML tips will recall that one of my company's most interesting and lucrative uses of XML markup has involved construction of a test engine. This engine reads our own custom XML markup to generate banks of questions that can be randomized, turned into adaptive exams, run one at a time for "study mode" use, and so forth. It even works as a survey instrument. In the background, we parse these XML test documents and incorporate them into a Java applet for standalone use, or into a Java servlets to create Java Server Pages (JSP) for server-based use. Most licensees want to control access to practice or real tests and to limit the number of times they may be used, so the servlet based implementation (which supports easy control over such characteristics) is the implementation of greatest interest to others.
When approached recently by a would-be licensor for Citrix certification exams, we got a pleasant surprise based on recent developments and standardization of the Java servlets runtime environment known as Tomcat. In a nutshell, earlier implementations of servlets depended on using a proprietary runtime system to parse JSP descriptions and to handle client-server interactions arising from their invocation and use.
But recently, thanks to Sun's standardization of the Servlets 2.2 Application Programming Interface (API) and the 1.1 JSP specification, it's no longer necessary to use proprietary implementations to handle these servlets on the server side. In fact, the current versions of these specifications -- namely Servlets 2.3 and JSP 1.2 add significant capability to this environment overall. Thanks to proliferation of open source technologies like Tomcat (the Servlet container for the ever-popular Apache Web server environment), it's now possible to run servlets and digest JSP documents in a completely standard, Open Source environment.
But why does this matter? The answer hearkens back a couple of paragraphs in this tip. Until this realization registered on us, we had been requiring companies that licensed our test engine to purchase a license for a particular commercial servlet engine. While it's true that commercial implementations remain faster and more powerful than Tomcat, it's also true that such implementations cost money (Tomcat is essentially free) for initial licensing (our chosen tool costs about $2,000 per CPU, and at least $1,000 a year for maintenance). While these aren't huge numbers, they're enough to give small companies like mine pause, not to mention potential small-company licensors of our test engine.
That explains why we've now scheduled a test port to Tomcat for our servlet environment, and why our list of prospective customers has just jumped dramatically. If your organization still uses some proprietary servlet engine, you might want to consider testing an Open Source alternative like Tomcat. If performance issues don't prevent you from making the switch, you may be able to save money and move to a more standard environment in one go. Fortunately for us, we always design our implementations to stick to standard API calls and avoid proprietary additions and extensions that non-standard engines normally offer. So far, we've been able to switch (while testing) without much effort and no loss of functionality. It's nice to see the touted benefits of standardization actually bear fruit occasionally -- which is of course why I write about it here. Because this helps to make XML technology more widely available at a lower cost, I can't help but see this as a big win-win situation for developers and users alike.
Have questions, comments, or feedback about this or other XML-related topics? Please e-mail me care of email@example.com; I'm always glad to hear from my readers.
About the Author
Ed Tittel is a principal at LANWrights, Inc., a wholly owned subsidiary of LeapIt.com. LANWrights offers training, writing, and consulting services on Internet, networking, and Web topics (including XML and XHTML), plus various IT certifications (Microsoft, Sun/Java, and Prosoft/CIW).
For More Information
- Need help with the latest industry acronyms and terms? Visit our helpful Glossary.
- Visit our Best Web Links for the best editor-selected XML resources on the Web.
- Post your technical questions, or help your peers in our Enterprise Developer Forums.
- Ask the Experts! Our Web Services, SOAP, WSDL, XML, .NET, Java and EAI gurus answer your toughest questions.