From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=BAYES_00,FORGED_GMAIL_RCVD, FREEMAIL_FROM autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: 103376,1eef1e815cf70416 X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII Received: by 10.204.149.210 with SMTP id u18mr2477822bkv.1.1339274407492; Sat, 09 Jun 2012 13:40:07 -0700 (PDT) Path: e27ni32402bkw.0!nntp.google.com!news1.google.com!postnews.google.com!5g2000vbf.googlegroups.com!not-for-mail From: Maciej Sobczak Newsgroups: comp.lang.ada Subject: Re: Distributed Systems Annex, data sharing between programs Date: Sat, 9 Jun 2012 13:40:07 -0700 (PDT) Organization: http://groups.google.com Message-ID: References: <8055acf5-188f-4b34-b4f0-83d70fee54f8@googlegroups.com> <96feb838-e0d3-4d06-abf0-79a8e74b5746@e20g2000vbm.googlegroups.com> <54af7ad7-7268-4d84-bafa-542e380a58f6@n16g2000vbn.googlegroups.com> <0d661453-423c-484b-90cd-4e80ffe1db5b@6g2000vbv.googlegroups.com> NNTP-Posting-Host: 83.3.40.82 Mime-Version: 1.0 X-Trace: posting.google.com 1339274407 15212 127.0.0.1 (9 Jun 2012 20:40:07 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Sat, 9 Jun 2012 20:40:07 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: 5g2000vbf.googlegroups.com; posting-host=83.3.40.82; posting-account=bMuEOQoAAACUUr_ghL3RBIi5neBZ5w_S User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:12.0) Gecko/20100101 Firefox/12.0,gzip(gfe) Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Date: 2012-06-09T13:40:07-07:00 List-Id: On 9 Cze, 17:14, Robert A Duff wrote: > Do you know about pragma Asynchronous (aspect Asynchronous in Ada 2012)? > It causes an "RPC" to behave like a message rather than a call Not really... It is still a call, just without the second part of it. > So with DSA, you can loop through those thousand machines, > and do an asynchronous "call" to each. =A0This just sends > a thousand messages -- no waiting for replies, no dealing > with failed nodes, etc. I want to know which has failed. And I want to get responses or rejections from those targets that got the message. In YAMI4 I would create a container of message objects and send them in a loop. Sending in YAMI4 is asynchronous and therefore non- blocking, so the loop will execute in a fraction of a second. The messages will get queued for transmission, but since their destinations are disctinct, they will be transmitted over independent channels. The internal mechanics is implemented in a way that allows to deal with multiple messages in various stages of processing and this is what will allow them to be physically transmitted in parallel. Coming back to my application code - after the loop I would do another loop over the same container of messages, gathering the results, statuses, etc. I can do that, because I have a message that is a tangible entity and that allows me to still interact with it. This is what "asynchronous RPC" (that's an oxymoron) cannot do exactly due to the integration with the language that is sequential in nature. -- Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com