Les équivalents Linux / Mac OS X pour Windows Communication Foundation

–modifier–

Quels modèles de développement d’applications / composants pour Linux et Mac OS X sont analogues à Windows Communication Foundation & COM, qui fournissent des mécanismes IPC de haut niveau pour manipuler / communiquer avec des applications logicielles?

Par modèle de communication de haut niveau, je parle de RPC, de publication / abonnement, etc.

J’écris des logiciels pour des dispositifs d’interaction qui peuvent être liés à la manipulation de calculs et de données dans certains logiciels. Jusqu’à présent, je peux avoir un panneau de contrôle avec des curseurs physiques liés à différentes cellules d’une feuille de calcul chargée dans Excel, Calculate ou Numbers. J’ai des moyens de détecter les événements provenant de l’appareil, mais les sous-systèmes d’interaction (X11, Explorer, etc.) ne sont pas extensibles pour gérer de nouveaux types d’événements d’interaction. Je dois donc capturer et transporter mes propres événements à laquelle ils sont liés.

De plus, la plupart des applications que je souhaite contrôler ne peuvent pas être modifiées pour répondre à ces nouveaux types d’événements. Et simuler des séquences de raccourcis et de raccourcis clavier n’est pas assez expressif, bien qu’il tire parti des sous-systèmes d’interaction existants. C’est pourquoi je m’intéresse aux frameworks spécifiques à la plate-forme, afin de pouvoir tirer parti des hooks préexistants pour contrôler les logiciels dans la nature.

Comme il s’agit d’interaction avec l’utilisateur, il doit avoir de faibles latences. Je voudrais avoir la possibilité de communication sans état, asynchrone aussi.

J’ai réfléchi à cette question et je réalise que je devais poser deux questions. L’un porte sur l’IPC de haut niveau et l’autre concerne les modèles de composants d’object qui vous permettent d’appeler des méthodes sur un object logiciel.

– question originale–

Quelles structures de communication / composants fournissent des fonctionnalités similaires à Windows Communications Foundation sous Linux et Mac OS X?

Mon groupe de recherche commence à développer un type de cadre de développement d’applications pour les applications interactives qui impliquent de nouveaux types de dispositifs pour manipuler / interagir avec des applications logicielles. Nous voulons utiliser un modèle d’adaptateur pour fournir des abstractions pour les applications / applications de périphériques / périphériques ou périphériques / applications afin que les logiciels construits avec ce framework soient portables sur les 3 principales plates-formes de systèmes d’exploitation.

Si les applications Linux sont suffisamment modernes, vous pouvez tirer parti de D-Bus . Il s’agit principalement de la progéniture de DCDE de KDE et, dans une moindre mesure, de Bonobo de GNOME, donc si elle est plus ancienne, vous pourriez en trouver une. Bien sûr, cela suppose qu’il utilise l’une de ces boîtes à outils.

Si elle est encore plus ancienne ou si elle utilise une boîte à outils sans IPC de haut niveau (par exemple Motif (je pense)), vous risquez d’avoir à utiliser des tuyaux, des sockets, des fifos et tout ce que j’ai pu oublier. Cela suppose, bien sûr, que l’application ait un certain type de hooks pour ce genre de choses.

Voici une liste de guides relatifs à la mise en réseau sur Mac OS X Elle couvre différents niveaux de mise en réseau, depuis les communications socket de bas niveau jusqu’à http://developer.apple.com/documentation/Cocoa/Networking-date.html#doclist

Cela couvre:

  • Fonctions de mise en réseau Core Foundation pour travailler avec des sockets BSD de bas niveau.
  • Classes de stream de cacao pour lire des données et écrire des données sur des stream.
  • Les structures côté client des services Web sont disponibles dans Mac OS X.
  • Bonjour dans les applications Cocoa ou Carbon.
  • Système de chargement d’URL pour manipuler les URL et transférer le contenu des URL
  • Programmation d’objects dissortingbués – communication entre des objects Objective-C dans différents threads ou différents processus

Sinon, Mac OS X est un système Unix entièrement compatible avec Posix. Vous trouverez donc un système IPC similaire à celui de Linux.

Ou peut-être vous êtes après Mac OS X System Services , un système qui permet à une application d’accéder aux fonctionnalités d’une autre application. Application annonce les services qu’ils fournissent. Pour plus de détails, lisez la documentation Apple liée.

Le cousin le plus proche serait libsoap et des bibliothèques SOAP équivalentes dans la langue de votre choix.