我想評估一些技術,用於實現一些Ada模塊與一些C++/OpenGL模塊之間的通信過程。有一個(Windows XP)Ada應用程序使用COM與C++應用程序通信,但我打算將COM切換爲新技術。提出了一些建議,如直接套接字,DSA,Polyorb,Corba和DSS/Opensplice。Ada/C/++分佈式應用程序
- DSA似乎只是阿達-implemented(不知道)
- Polyorb都有其2006年最後落實,根據http://polyorb.ow2.org/
- 的Corba有人argumented,這可能是不夠的簡單證明其複雜性實現簡單的應用程序
- DSS/Opensplice似乎只是C/C++實現的,所以應該完成Ada綁定。它也似乎不是很容易實施。
就我個人而言,我喜歡COM,但由於遷移,我寧願採用套接字選項,由於其簡單,接口架構可以很容易地實現。
那麼,你覺得呢?您能否對這些技術發表評論,甚至建議其他更多?
非常感謝。
在您陷入思考套接字「簡單」的陷阱之前,請考慮您必須在裸套接字層上構建的東西的數量,以支持高性能,靈活且可擴展的IPC機制。有關更多詳細信息,請參閱我的另一個問題的這個答案:http://stackoverflow.com/questions/6067538/restful-web-services-vs-socket-programming-for-a-data-intensive-application/6067635#6067635 –
Polyorb似乎由AdaCore積極維護,並有相當新的更新。你可以通過http://libre2.adacore.com//viewvc/trunk/polyorb/ –
來瀏覽版本庫,CORBA應該能夠做到,polyorb是一個選項,你也可以開發爲現有oRB的語言綁定,我們可以示例已經爲TAO創建了一個Ruby綁定,一個用於TAO的新的C++ 11綁定和一個用於JacORB的JRuby綁定。另請查看http://www.orbzone.org。如果您想使用DDS,請考慮爲OpenDDS創建Ada綁定(請參閱http://www.opendds.org/) –