R7 Webservices / Performance

Hi

I’ve just been reading up on the new Webservices feature, and I have a quick (hopefully) question.

I have, in the past, been using agents to provide WebServices on R6 servers. Aside from having to maintain the WSDL manually, (which looks like a cool new feature in R7!) I was always concerned about the fact that Web Agents are loaded/initialised each time they’re called.

Is a Domino WebService essentially the same, or is there some persistent state. I always thought it was better performance to adopt a kind of servlet approach where the initialised objects stay in the Web Servers memory until needed. Will R7 webservices do this, or are they essentially just (sorry) agents with automated WSDL maintenance ?

thanks

Kiers

Subject: R7 Webservices / Performance

Java Web Services are cached across invocations. Here’s some more information from the help:

Java caveats – Java code is cached and shared over multiple instances of a Web service, enhancing performance but imposing the following restraints: do not use static data as changes made by one instance affect all instances; avoid synchronization as the scope of the classes and objects being synchronized may cross instances.

Subject: R7 Webservices / Performance

Unlike Java agents, which take several seconds to load, LotusScript agents are pretty much loaded and started immediately, we are talking about a 0.01-0.03 seconds load times, so there’s really no need to have them always in memory like java servlets.

I think java servlets are kinda like a workaround for Java agents, because Java is so slow to load.

Subject: RE: R7 Webservices / Performance

Ah - cool - thanks for that.

As you can write domino services in either LS or Java, does the startup time difference apply there also. Does that mean that where performance is crucial, I should use an LS Service?

Not too great when we have a PDF creation library written in Java, although I guess that’s not Lotus’ fault … :wink:

Cheers

Kiers

Subject: RE: R7 Webservices / Performance

I don’t know yet how it’s exactly implemented, but generally Java agents always need to extract those .jar files which takes time.I could make some quick test, for example by calling a LS webservice and Java webservice 10000 in a row and see which took longer time.