Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

eProsima RPC over DDS - Connext Conf London October 2015

951 Aufrufe

Veröffentlicht am

Small Presentation of eProsima RPC over DDS, for more information please visit www.eprosima.com

Veröffentlicht in: Software
  • I have always found it hard to meet the requirements of being a student. Ever since my years of high school, I really have no idea what professors are looking for to give good grades. After some google searching, I found this service ⇒ www.HelpWriting.net ⇐ who helped me write my research paper.
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • The Most Effective Natural Breast Enlargement Techniques That Have Already Changed The Lives Of Over 7591 Women From 69 Countries Worldwide! ✄✄✄ https://t.cn/A6Li7dmy
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier

eProsima RPC over DDS - Connext Conf London October 2015

  1. 1. eProsima RPC over DDS for RTI Connext DDS Connext Conference, London 2015 15/10/2015 Jaime Martin Losa CTO eProsima JaimeMartin@eProsima.com +34 607 91 37 45 www.eProsima.com
  2. 2. Old solution: Manual 2 Struct FunRequest { RequestID; RequestParameter1; /* ... */ RequestParameterN; }; Struct FunReply { RequestID; ReplyResult1; /* ... */ ReplyResultN; };
  3. 3. RPC over DDS Standard: Automatic 3 interface MyInterface { funReturnValueType Fun(in MyTypeI1 m1,in MyTypeI2 m2,..., out MyTypeO1 n1, out MyTypeO2 n2,..., inout MyType1 l1,inout MyType2 l2 ); /* ... */ };
  4. 4. Architecture Request Topic Reply Topic ClientApp Publisher Subscriber STUB Requester ServiceApp Publisher Subscriber Skeleton Replier Resource Aware Dispatching Agent Global Data Space 4
  5. 5. Definition of the Services
  6. 6. Definition of the services  OMG IDL 3.5 + DDS-XTYPES is used – “Any” and “valuetype” not part of DDS-XTYPES  Exceptions supported  Atributes in the interfaces ignored  Oneway invocations supported throught the IDL oneway keyword 6
  7. 7. eProsima RPC over DDS for RTI Connext DDS
  8. 8. eProsima RPC over DDS Features  Open Source: LGPL – Published on GitHub  Windows and Linux support (32 and 64 bits)  Project and makefile generation for VS2010-3 & gcc 4.x  Synchronous, asynchronous and one way operations  Different Server threading models  100% Standard: ISO C++ and OMG DDS  Comprehensive documentation
  9. 9. eProsima RPC over DDS  Available on: – eProsima.com web site:  http://www.eprosima.com/index.php/products-all/eprosima- rpc-over-dds-all – eProsima GitHub:  https://github.com/eprosima
  10. 10. Example
  11. 11. Hands On: Calculator  Create Calculator.idl  Generate Interface Support : /////////////////////////// // Connext Con Example // /////////////////////////// exception divideByZeroEx{ long count; }; interface Calculator { float multiply(in float a,in float b); float divide(in float a,in float b) raises(divideByZeroEx); }; rpcddsgen -ppDisable -example x64Win64VS2013 Calculator.idl
  12. 12. Hands On: Calculator  Edit the Example: CalculatorClientExample.cxx // Call to remote procedures try { return_ = proxy->multiply(16, 2); // multiply std::cout << return_ << std::endl; return_ = proxy->divide(16, 2); // divide std::cout << return_ << std::endl; return_ = proxy->divide(16, 0); // user exception std::cout << return_ << std::endl; } catch (divideByZeroEx &ex) { std::cout << "divideByZeroEx" << std::endl; } catch (SystemException &ex) { std::cout << "System Exception:" << std::endl; }
  13. 13. Hands On: Calculator  Edit the CalculatorServerImplExample.cxx DDS_Float CalculatorServerImplExample::multiply (/*in*/ DDS_Float a, /*in*/ DDS_Float b) { DDS_Float return_ = a*b; return return_; } DDS_Float CalculatorServerImplExample::divide (/*in*/ DDS_Float a, /*in*/ DDS_Float b) { DDS_Float return_ = 0.0; if (b == 0) { throw divideByZeroEx(); } return_ = a / b; return return_; }
  14. 14. Thank you! Jaime Martin Losa CTO eProsima JaimeMartin@eProsima.com +34 607 91 37 45 www.eProsima.com

×