2009-06-03 20 views
6

--edit--equivalentes Linux/Mac OS X para Windows Communication Foundation

¿Qué aplicación marcos de desarrollo/modelos de componentes para Linux y Mac OS X son análogos a Windows Communication Foundation & COM, que proporcionan mecanismos IPC de alto nivel para manipular/comunicarse con aplicaciones de software?

Por modelo de comunicación de alto nivel que quiero decir RPC, publicación/suscripción, etc.

estoy escribiendo software para dispositivos de interacción que se pueden unir para la manipulación de la computación y datos dentro de algún tipo de software. Hasta ahora, puedo tener un panel de control con controles deslizantes físicos que están vinculados a varias celdas dentro de una hoja de cálculo cargada en Excel, Calculate o Numbers. Tengo formas de detectar eventos que se originan en el dispositivo, pero los subsistemas de interacción (X11, Explorer, etc.) no son extensibles para manejar nuevos tipos de eventos de interacción, por lo que debo capturar y transportar mis propios eventos hacia y desde el software. a lo cual están atados.

Además, la mayoría de las aplicaciones que me gustaría controlar no se pueden modificar para responder a estos nuevos tipos de eventos. Y la simulación de las teclas rápidas y las secuencias de accesos directos no son lo suficientemente expresivas, aunque aprovecharía los subsistemas de interacción existentes. Es por eso que estoy interesado en los marcos específicos de la plataforma, así que puedo aprovechar los ganchos preexistentes para controlar el software en la naturaleza.

Como esto es para la interacción del usuario, necesita tener bajas latencias. Me gustaría tener la opción de comunicación asincrónica sin estado también.

He pensado en esta pregunta y me doy cuenta de que necesitaba hacer dos preguntas. Una es sobre IPC de alto nivel, y la otra sobre modelos de componentes de objetos que le permiten llamar a métodos en un objeto de software.

pregunta-- --original

Lo comunicación/marcos de componentes proporcionan una funcionalidad muy similar a Windows Communication Foundation en Linux y Mac OS X?

Mi grupo de investigación está comenzando a desarrollar algún tipo de marco de desarrollo de aplicaciones para aplicaciones interactivas que involucran nuevos tipos de dispositivos para manipular/interactuar con aplicaciones de software. Queremos utilizar un patrón de adaptador para proporcionar abstracciones para la aplicación/aplicación del dispositivo/dispositivo o la comunicación entre el dispositivo y la aplicación para que el software creado con este marco sea portátil en las 3 plataformas principales del sistema operativo.

+2

Preguntas en el formulario "¿Qué es equivalente a XYZ en la plataforma MNO?" debería decir lo que hace XYZ que es importante para él, asker ... no sea que alguien que esté profundamente familiarizado con MNO.FooBar.Framework pero * not * XYZ no pueda responder. No es que sea una molestia, ni nada, ¡¡sino ARRGGGHHH !!!!! – dmckee

+0

Y un enlace saliente al programa en cuestión también sería útil. – dmckee

+0

Ah. Mucho mejor. Gracias. Me pregunto si X proporciona el tipo de capa de comunicación que está solicitando. – dmckee

Respuesta

5

Si las aplicaciones de Linux son lo suficientemente modernas, es posible que pueda aprovechar D-Bus. Es la descendencia de DCop de KDE principalmente, y, en menor medida, de Bonobo de GNOME, por lo que si es más viejo, podrías ver uno de esos temas. Por supuesto, eso supone que usa uno de esos kits de herramientas.

Si es incluso más antiguo que eso o utiliza un kit de herramientas sin ningún IPC de alto nivel (por ejemplo, Motif (creo)), puede terminar teniendo que recurrir a tuberías, enchufes, fifos y cualquier cosa que haya olvidado . Eso supone, por supuesto, que la aplicación tiene algún tipo de gancho para esas cosas.

+0

Ojalá pudiera aceptar dos respuestas, ya que las respuestas de supercheetah y stefanB se combinan para responder mi pregunta. Creo que debería haber planteado esta pregunta como dos preguntas separadas, una para Mac y otra para Linux. El artículo de la wikipedia de D-Bus brinda las mejores razones por las cuales D-bus es lo que estoy buscando en Linux. http://en.wikipedia.org/wiki/D-Bus#Architecture - OS <-> comunicación de aplicaciones - pub/sub modelo de comunicación - capacidad para exponer la funcionalidad como servicio – corntoole

1

El primo más cercano sería libsoap y las librerías SOAP equivalentes en el idioma de su elección.

+0

Cousin es un poco demasiado, SOAP es solo una pequeña parte de WCF. Pero si lo que realmente desea es solo una comunicación, SOAP podría ser una buena manera. – OregonGhost

+0

La respuesta SOAP casi me deja con ganas; tal vez como un formato de mensaje, pero estoy más preocupado por los mecanismos de comunicación de baja latencia, preferiblemente con semántica de alto nivel como un modelo de publicación/suscripción. También estoy interesado en la comunicación que se engancha bien en la pila de interacción del sistema operativo para poder controlar/interactuar con el software que no puedo modificar con una granularidad más fina que simplemente simular teclas rápidas y atajos de teclado. Tal vez no estoy haciendo la pregunta correcta. – corntoole

4

Aquí está una lista de guías relacionadas con la red en Mac OS X Cubre los diferentes niveles de la creación de redes de comunicaciones de baja socket nivel hacia arriba http://developer.apple.com/documentation/Cocoa/Networking-date.html#doclist

Cubre:

  • Fundación Core funciones de red para trabajar con tomas BSD de bajo nivel.
  • Clases de flujo de cacao para leer los datos y escribir datos en las secuencias.
  • marcos del lado del cliente de servicios web disponible en Mac OS X.
  • Bonjour en el cacao o el carbono aplicaciones.
  • URL carga del sistema para manipular URLs y transferencia contenido de la URL
  • objetos distribuidos Programación - la comunicación entre objetos Objective-C en diferentes hilos o diferentes procesos

De lo contrario Mac OS X es totalmente Posix sistema UNIX compatible por lo que encontrará un sistema IPC similar al encontrado en Linux.

O tal vez está después de Mac OS X System Services, sistema que permite que una aplicación acceda a la funcionalidad de otra aplicación. La aplicación anuncia los servicios que brindan. Para más detalles, lea la documentación de Apple vinculada.

+0

Como dije antes, desearía poder aceptar más de una respuesta. En el lado de Mac, hay una multitud de mecanismos de IPC. En cuanto a los modelos de comunicación de alto nivel, existen servicios de notificación: http://developer.apple.com/documentation/UserExperience/Conceptual/PreferencePanes/Concepts/Managing.html#//apple_ref/doc/uid/20000703-102786 Teniendo en cuenta el grado en que varias aplicaciones de Mac son programables a través de AppleScript, tiene que haber un modelo de aplicación bien definido que se pueda transformar de manera directa. De cualquier manera, tengo algunas buenas pistas. – corntoole

+0

Me adelanté, voté este ya que me etiquetaron con la respuesta. Eso parece justo. – supercheetah