L’éditeur Rogue Wave Software propose une solution originale pour répondre au besoin de communication entre applications C++ et Java :hydraSDO XML. Cette solution permet de partager une même zone mémoire au moyen d’une API simple et performante, tant pour la mise en place du partage que pour l’accès aux données contenues dans cette zone mémoire.
Afin de répondre au besoin de communication entre applications écrites en langages différents, notamment entre C++ et Java, plusieurs approches ont été tentées. On peut citer notamment : échange d’objets avec CORBA, intégration de C++ dans Java avec JNI, Web Services avec SOAP.
Dès lors que les données manipulées par le code sont volumineuses, ces approches ne sont pas satisfaisantes, soit parce qu’elles induisent une transformation et une duplication coûteuse des données, soit parce qu’elles nécessitent l’écriture de code compliqué à mettre au point. La solution, nommée SMA (Shared Memory Access), élimine ces inconvénients : elle offre une API d’accès aux données implémentée en Java et C++, et encapsule toute la mise en place du partage mémoire dans des classes helpers.