Hi,
 
I am looking for ways to build web services using 
oCaml.
 
First I would like to point that out this includes 
two different aspects:
 
1- building the web services themselves (e.g. 
putting a SOAP interface on top of a database and spitting XML)
This is the server side, if you will.
 
2- glueing together web services
This is more the client side.
 
For 1-, it is not clear to me that oCaml has a 
competitive edge compared to other approaches, mainly because 1- requires a lot 
of "legacy" libraries not necessarily available for oCaml.
For 2-, however, the main components needed are an 
HTTP stack (HTTP, TCP, SSL, etc.) and an XML stack (XML parser, etc.). And this 
is where a functional language can really show its value.
 
I was looking at:
- ocamlNet
- cgi
and they support some aspects but not all that is 
needed like SSL, cookies, etc.
Are there other libraries that would do that for 
me?
 
As a more general question, shouldn't we (meaning 
of "we" to be defined :-) implement these stacks in oCaml?
Is there any value in doing it (except for the 
experience and fun of doing it)? 
Is there any advantage in having the stack (and 
whatever is underneath) available as oCaml constructs?
 
These protocols are complex and keep 
evolving. Taking a reference implementation (like libwww which is complete, 
maintained, supported and updated) and adding oCaml wrapper on top would make 
more sense to me. Our value added would be in the design of a nice API on 
top.
 
I am not saying that this should be done for 
everything, but when there is no (or little) value in having the low-level 
implementation details available as oCaml constructs, this is -- from my point 
of view -- the way to go.
 
I would like to raise the same question for XML 
libraries where namespaces, entity resolution, XML schemas (and God knows what 
they are going to invent) need to be supported. Should everything be done in 
oCaml? What is the value of having the low-level implementation details of XML 
trees available as oCaml objects?
 
As mentioned on various previous postings, the 
oCaml community is smaller than the Perl or Python ones. We need to be smarter 
and nimbler in our efforts.
 
regards,
 
Arnaud