Web services

October 04, 2002

Anteater with Jelly

Anteater | Web services

Jeff Turner just released a new version of Anteater which integrates with Jelly. It's interesting to see things moving so fast, especially after the recent discussion related to XML-based scripting languages.

Anteater is a testing framework for HTTP and SOAP applications, built as an extension of Ant. The way you write scripts is by using a declarative syntax, where you specify actions to be taken and a set of expected output(s). You can check the output in various ways, including string equality, regular expressions or XPath expressions.

In addition to emulating an HTTP or SOAP client, Anteater can also be used to emulate the server side, in order to test an HTTP or SOAP client application, or to test asynchronous Web services. Anteater embeds a full blown servlet container (Tomcat 3.3), which is used to receive incoming HTTP requests. You can apply the same checks as described above not only on the response received, but also on an incoming request. With this functionality, Anteater can be used to implement test scripts for asynchronous Web services, including ebXML and BizTalk. Anteater can also be used to quickly test Web applications by deploying them on its internal servlet container, making testing such applications a real breeze.

If you're familiar with Ant for writing build scripts, you should be able to grasp Anteater very easily. And since is based on Ant, Anteater is extensible, you can define new tasks and matchers that fit your needs very easily. Check out Anteater's user manual for more information on what it is and how it works.

Posted by ovidiu at 10:27 PM |

September 26, 2002

BEA's native XML scripting and Jelly

Web services

James Strachan continues his comparison of native XML scripting in BEA Workshop and Jelly. (XML native scripting originally pointed out by Carlos Perez).

I would compare the native XML scripting extension of JavaScript with XSLT, rather than with Jelly. With the BEA XML scripting solution you can manipulate XML the same way you can do it with XSLT, except that you do it in a more procedural form. Gone is the pattern matching approach, and the very functional style of XSLT programming. In is the procedural, more understood processing model, at least by the vast majority of Java and JavaScript programmers.

It is debatable whether we need a new syntax to be able to integrate XML data types in a normal language. Most of the access and manipulation features described in the article can be achieved by using something like JXPath or Jaxen. Both these libraries access nodes or nodesets in an XML DOM representation using XPath, and return them for further manipulation. I found this to work very well in all the cases I needed such access.

The inline XML assignment in the native XML scripting (does it have a name?) is IMO just a syntactic sugar, and it actually promotes dangerous mixing of content and logic. Pretty soon we'll start seeing scripts which mix XML markup with logic to fill in the template, similar to what JSP allows you to do today.

Another thing which is worrisome is the XML processing model introduced by the native XML scripting. One of the great things about XSLT is the pattern matching oriented programming model, the so-called rule-based programming. Of course, you can still do procedural programming in XSLT using <xsl:for-each> and <xsl:if> to iterate over the children list, but that is something to be avoided since it ties the stylesheet to a particular structure of the input documents. The rule-based programming model is no longer available with the native XML scripting solution, not unless is explicitly coded by the programmer.

As far as Jelly is concerned, my gosh, it's amazing! Last time I checked out Jelly was way back in December 2001, when I started working on Anteater, a functional testing framework for SOAP clients and services. Jelly seems to be now a complete programming language with an extensible syntax (and semantics of course) based on XML! I'm not sure whether this is good or bad, I simply hate the XML syntax for anything which is procedural. We'll see what it will evolve into, and especially how people use it! Good luck with it James!

Posted by ovidiu at 01:38 AM |

September 10, 2002

Mozilla as a Web services platform

Open Source | Web services | Weblogs

Salon has an interesting article about Mozilla as platform for developing applications [via Slashdot].

It's so refreshing to see Mozilla being positioned as a platform, and not just as yet another browser. It will be interesting to see how much this platform will take off. It certainly makes sense to have Mozilla applications built around Web applications running on remote servers, since it would be easier to manage the remote content using a richer, desktop-like interface. Weblogs are a good example of such an application.

To be really successful, the Mozilla platform will need to penetrate the enterprise market. Mozilla could probably succeed better as a development platform for enterprise applications, than as yet another browser the IT departments have to support.

Having backend enterprise applications accessible as Web services would probably make Mozilla's job a lot easier, since there's no need to load proprietary code in the Mozilla application. Thus the only thing to be implemented in such an application will be only the user interface, which interacts with the backend Web services-enabled system.

Posted by ovidiu at 07:38 PM |
Cool stuff
  Arduino TinyWebServer: part 3 and part 2
More from me
Picture gallery
Copyright © 2002-2016 Ovidiu Predescu.