From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.7 required=5.0 tests=AWL,SPF_SOFTFAIL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from discorde.inria.fr (discorde.inria.fr [192.93.2.38]) by yquem.inria.fr (Postfix) with ESMTP id 17D71BCA2 for ; Fri, 6 Jul 2007 18:33:29 +0200 (CEST) Received: from pih-relay05.plus.net (pih-relay05.plus.net [212.159.14.132]) by discorde.inria.fr (8.13.6/8.13.6) with ESMTP id l66GXSop019888 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NO) for ; Fri, 6 Jul 2007 18:33:28 +0200 Received: from [80.229.56.224] (helo=beast.local) by pih-relay05.plus.net with esmtp (Exim) id 1I6qhE-0006A7-Vp for caml-list@inria.fr; Fri, 06 Jul 2007 17:30:17 +0100 From: Jon Harrop Organization: Flying Frog Consultancy Ltd. To: caml-list@inria.fr Subject: RPCs, XML, Schemas, WSDL and SOAP Date: Fri, 6 Jul 2007 17:24:44 +0100 User-Agent: KMail/1.9.7 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200707061724.44910.jon@ffconsultancy.com> X-Miltered: at discorde with ID 468E6ED8.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; ocaml:01 ocaml:01 camlp:01 extensively:01 bindings:01 val:01 stubs:01 pxp:01 parser:01 90210:98 expat:98 expat:98 frog:98 dynamically:01 int:01 So I'm just looking into making remote procedure calls across the internet using OCaml. It seems that the people who invented these protocols have made a right pigs ear of it (again). :-) There have been several galiant attempts to get this working from OCaml. OCSoap by Richard Jones looks good to me. However, it uses the pre 3.10 camlp4 extensively to analyze headers. Has anyone ported this to 3.10? Incidentally, I like the design but I would have written a dynamically typed bottom layer first myself. That way users could use the library to make calls without having to generate bindings first. Something like: # let rpc = Soap.connect url;; val rpc : string -> Soap.value list -> Soap.value = # Soap.to_float rpc("getTemp", [Soap.of_int 90210]);; - : float = 999.0 Then the macro would spit out stubs that used that style. Also, what's the state of XML reading and writing in OCaml. I've been using xml-light, which is excellent albeit "light", but I notice there is pxp and expat. Is expat just a parser, so it can't generate XML? PS: Sorry if this gets double posted: I think the original got spam filtered at INRIA. -- Dr Jon D Harrop, Flying Frog Consultancy Ltd. The OCaml Journal http://www.ffconsultancy.com/products/ocaml_journal/?e