From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id A5DCA7FB13 for ; Thu, 4 Dec 2014 20:55:20 +0100 (CET) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of info@gerd-stolpmann.de) identity=pra; client-ip=212.227.126.130; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="info@gerd-stolpmann.de"; x-sender="info@gerd-stolpmann.de"; x-conformance=sidf_compatible Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of info@gerd-stolpmann.de) identity=mailfrom; client-ip=212.227.126.130; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="info@gerd-stolpmann.de"; x-sender="info@gerd-stolpmann.de"; x-conformance=sidf_compatible Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mout.kundenserver.de) identity=helo; client-ip=212.227.126.130; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="info@gerd-stolpmann.de"; x-sender="postmaster@mout.kundenserver.de"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqkBAKa7gFTU436Cm2dsb2JhbABTBoJkdFiDBcNGBoYaAoEfFgEBAQEBEQEBAQEBBgsLCRQuhAMBAQMBIzIkEAsONAICVwYTCYgsCgMJwDWWcgEBAQEBBQEBAQEBHZAjHSYHgjI/EoE/BYVpimcCiyuFd4kVhh6BRW4BgkQBAQE X-IPAS-Result: AqkBAKa7gFTU436Cm2dsb2JhbABTBoJkdFiDBcNGBoYaAoEfFgEBAQEBEQEBAQEBBgsLCRQuhAMBAQMBIzIkEAsONAICVwYTCYgsCgMJwDWWcgEBAQEBBQEBAQEBHZAjHSYHgjI/EoE/BYVpimcCiyuFd4kVhh6BRW4BgkQBAQE X-IronPort-AV: E=Sophos;i="5.07,517,1413237600"; d="asc'?scan'208";a="111136085" Received: from mout.kundenserver.de ([212.227.126.130]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 04 Dec 2014 20:54:55 +0100 Received: from office1.lan.sumadev.de ([188.107.171.165]) by mrelayeu.kundenserver.de (mreue004) with ESMTPSA (Nemesis) id 0LnX58-1XVVTP0qz8-00hdEY; Thu, 04 Dec 2014 20:54:53 +0100 Received: from [IPv6:fd54:fbcf:6598:7e::1004] (unknown [IPv6:fd54:fbcf:6598:7e::1004]) by office1.lan.sumadev.de (Postfix) with ESMTPSA id A092ADC05D; Thu, 4 Dec 2014 20:54:51 +0100 (CET) Message-ID: <1417722885.4661.16.camel@zotac> From: Gerd Stolpmann To: Malcolm Matalka Cc: Francois Berenger , OCaml List Date: Thu, 04 Dec 2014 20:54:45 +0100 In-Reply-To: <87h9xbxw79.fsf@gmail.com> References: <54802A60.7020704@inria.fr> <87h9xbxw79.fsf@gmail.com> Content-Type: multipart/signed; micalg="pgp-sha1"; protocol="application/pgp-signature"; boundary="=-KZWT1muPGu2vlWACklxL" X-Mailer: Evolution 3.10.4-0ubuntu2 Mime-Version: 1.0 X-Provags-ID: V03:K0:9Mi/eQv4alrbcUR5asNVPs8yqhOZBU54UAczoDCQRVyNtCsqEqn j1LWCfWvl0tbwv5dasKc90gYcaENuek4qr24WA930UnGYLJeb/exQC1KIMclOnbKMTvw1n3 9RKTIOf37Y4O4MeMDPAGArp1+wKSnzDklhxe0a0ZRuNHCXr3dZlJCA/1oadGjhTMeIP8tz/ 6d4lE1UpTRisWJ/Wgee+Q== X-UI-Out-Filterresults: notjunk:1; Subject: Re: [Caml-list] What are people using when writing distributed applications in OCaml? --=-KZWT1muPGu2vlWACklxL Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Am Donnerstag, den 04.12.2014, 15:37 +0000 schrieb Malcolm Matalka: > It depends on what level you're talking. My distributed systems apps > tend to be functorized over their transport, so I can switch out what > works and what doesn't pretty easily. >=20 > I tend to avoid RPC frameworks, I find they focus more on the > computation than on the data, but depending on what you're doing they > could be appropriate. >=20 > Unless you're under heavy load, simple HTTP calls with some JSON is > probably sufficient. I guess Francois is asking because for some reason HTTP is inappropriate. I can understand that because it is a really bloated protocol, and you usually only use it when you need to (e.g. you have to call it from Javascript or the like, or have to go through firewalls). Also, there are several aspects you cannot control well, e.g. when TCP connections are created and kept alive (or not). Multicast messaging is completely impossible. I recommend to not to see RPC systems under their framework aspect, but simply as transport libraries. In particular, if you don't like the serialization scheme, there is usually the alternative that you take your own serializer and just send the data as (binary) strings on the RPC level (which is always possible and simple to do). From my experience it is essential that you have good control over the low-level things (e.g. connection control, timeouts, retrials, error handling etc), because this is what the distributed system keeps running. Sure it is good when an RPC library implements some automatisms (e.g. for error handling), but it is even better when there is also a manual mode, as distributed systems sometimes require unusual ways of dealing with that stuff. Gerd >=20 > Francois Berenger writes: >=20 > > Hello, > > > > If you know about some distributed application that went into production > > and that can happily withstand the fire of production and real world lo= ads, I would be happy to here about which library the system was > > using. > > > > I have heard about MPI and zmq for example, which both have > > ocaml bindings. However, I also know that there are several RPC > > implementations out there (one in ocamlnet, one in mirage, one in core)= , but I am not sure about which one is the most mature and > > production-tested. > > > > Thanks a lot, > > Francois. >=20 --=20 ------------------------------------------------------------ Gerd Stolpmann, Darmstadt, Germany gerd@gerd-stolpmann.de My OCaml site: http://www.camlcity.org Contact details: http://www.camlcity.org/contact.html Company homepage: http://www.gerd-stolpmann.de ------------------------------------------------------------ --=-KZWT1muPGu2vlWACklxL Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAABAgAGBQJUgLwFAAoJEAaM4b9ZLB5TNxkH/iya1o0toPsszYr5ZhAzpdaR dsCrjUW/F3a8lDt0ebAp0RnAZ835pFwInNjQ9NVF1zYWevjUJZa4BTInvmD+n85L 2oIiVkM09v0d2qIU9rckdQRwhwvM46/Cs38LX3RZgIiiPUmQq/GIP7buGETWjIKs TU/5FrRBT38W+F/H5az3wGnZTcMVD0BDtfp3YUusWLd0ZxVTe1vb1W8V2YzepJEV B2geCY3GcONrgYPv7xYMWDsJjj79hG1yFAHjI1hhFwi+S2O5Oj0WYsWwUVPLgBKa pYx0aNQRQ5JWDxAowAnfKvBczyf9EN+LiD7ysdT5omcZhJClq5LKJ85NfbK8EOo= =8gLQ -----END PGP SIGNATURE----- --=-KZWT1muPGu2vlWACklxL--