caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Richard Jones <rich@annexia.org>
To: Jon Harrop <jon@ffconsultancy.com>
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] RPCs, XML, Schemas, WSDL and SOAP
Date: Fri, 6 Jul 2007 19:57:42 +0100	[thread overview]
Message-ID: <20070706185741.GA30545@furbychan.cocan.org> (raw)
In-Reply-To: <200707061724.44910.jon@ffconsultancy.com>

On Fri, Jul 06, 2007 at 05:24:44PM +0100, Jon Harrop wrote:
> 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?

Also, OCSoap is only a client.  And WSDL is so complicated that
there's quite an effort required to adapt OCSoap to new schemas.

BTW, the camlp4 stuff in OCSoap isn't really required, and could be
removed with relative ease.

> 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 = <fun>
> # Soap.to_float rpc("getTemp", [Soap.of_int 90210]);;
> - : float = 999.0
>
> Then the macro would spit out stubs that used that style.

Well, I guess the point of OCSoap was to write type-safe bindings to
the Google AdWords API.  The bindings are generated statically using a
CDuce program which grinds over the WSDL and generates *.ml and *.mli
files.  You then compile these and presto you have a type-safe client.

[..]

Have you looked into using SunRPC?  ocamlnet provides an
implementation, it can be run over SSL, it's far more lightweight than
XML, and there's a strong chance you'll be able to interoperate with
clients and servers written in other languages.  Another option would
be s-expressions using the Jane St. library.

Rich.

-- 
Richard Jones
Red Hat


  reply	other threads:[~2007-07-07 11:42 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-07-06 16:24 Jon Harrop
2007-07-06 18:57 ` Richard Jones [this message]
2007-07-07 12:51   ` [Caml-list] " Benedikt Grundmann
2007-07-09 11:10   ` Gerd Stolpmann
2007-07-09 11:47     ` Richard Jones
2007-07-07 13:51 ` Oliver Bandel
2007-07-07 13:57   ` Jon Harrop

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070706185741.GA30545@furbychan.cocan.org \
    --to=rich@annexia.org \
    --cc=caml-list@inria.fr \
    --cc=jon@ffconsultancy.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).