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.4 required=5.0 tests=BAYES_00,FORGED_MUA_MOZILLA 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-7-bit Received: by 10.204.154.133 with SMTP id o5mr1233921bkw.0.1339137080098; Thu, 07 Jun 2012 23:31:20 -0700 (PDT) Path: e27ni26458bkw.0!nntp.google.com!news1.google.com!npeer02.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!nx01.iad01.newshosting.com!newshosting.com!news2.euro.net!feeds.phibee-telecom.net!de-l.enfer-du-nord.net!feeder1.enfer-du-nord.net!gegeweb.org!feeder.news.orange.fr!not-for-mail Date: Fri, 08 Jun 2012 08:31:18 +0200 From: Pascal Obry Organization: Home - http://www.obry.net User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; fr-FR; rv:1.8.1.22) Gecko/20090605 Thunderbird/2.0.0.22 Mnenhy/0.7.5.0 MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: Distributed Systems Annex, data sharing between programs References: <8055acf5-188f-4b34-b4f0-83d70fee54f8@googlegroups.com> <96feb838-e0d3-4d06-abf0-79a8e74b5746@e20g2000vbm.googlegroups.com> <54af7ad7-7268-4d84-bafa-542e380a58f6@n16g2000vbn.googlegroups.com> In-Reply-To: Message-ID: <4fd19c36$0$6170$ba4acef3@reader.news.orange.fr> NNTP-Posting-Date: 08 Jun 2012 08:31:18 CEST NNTP-Posting-Host: 82.124.203.80 X-Trace: 1339137078 reader.news.orange.fr 6170 82.124.203.80:6626 X-Complaints-To: abuse@orange.fr X-Received-Bytes: 3898 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Date: 2012-06-08T08:31:18+02:00 List-Id: Shark8, > Could you give examples of what sorts of tasks are better-suited/easier in DSA and YAMI4? with Ada.Containers.Vectors; package Flt_Vector is new (Positive, Float); pragma Remote_Types (Flt_Vector); with Flt_Vector; use Flt_Vector; package A is pragma Remote_Call_Interface; procedure Call (V : in Flt_Vector); end A; Then using this from another partition across the network: with A; with Flt_Vector; procedure Main is V : Flt_Vector.Vector; begin V.Append (1.0); V.Append (4.5); A.Call (V); end Main; That is the vector is passed across the network and this just looks like a procedure call in Ada. This is possible because the distributed support is directly in Ada. With "foreign" distributed support (MPI for example) you'll only get support for basic types. And of course, what is done with Ada.Containers.Vectors is not magic, you can define your own type and have serialization by specifying the 'Write and 'Read attribute for the type. Another very good point with the DSA is that the application can be partitioned differently. With the same code base, just provides multiple partitioning (different xyz.cfg passed to po_gnatdist). Where the partition communication are hard coded into MPI you can in minute create a new way to partition your DSA application and rebuild everything without changing a line of code. And if the code actually is on the same partition there is nothing serialized, the call is direct as for non distributed application. This gives the best performance in any partitioning. Frankly I have used the DSA (I have also used MPI and RMI) and the Ada solution is way better than any alternative I have used. Note finally that AdaCore DSA support is done via PolyORB. This means that you can communicate with your DSA application with CORBA or SOAP for example. So you are not stuck on a proprietary protocol if you need to open your application to other languages. Pascal. -- --|------------------------------------------------------ --| Pascal Obry Team-Ada Member --| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE --|------------------------------------------------------ --| http://www.obry.net - http://v2p.fr.eu.org --| "The best way to travel is by means of imagination" --| --| gpg --keyserver keys.gnupg.net --recv-key F949BD3B