Linux / Mac OS X эквиваленты для Windows Communication Foundation - PullRequest
6 голосов
/ 03 июня 2009

- изменить -

Какие инфраструктуры разработки приложений / модели компонентов для Linux и Mac OS X аналогичны Windows Communication Foundation & COM, которые предоставляют механизмы IPC высокого уровня для управления программными приложениями или связи с ними?

Под моделью связи высокого уровня я имею в виду RPC, публикацию / подписку и т. Д.

Я пишу программное обеспечение для устройств взаимодействия, которое может быть связано с манипулированием вычислениями и данными в некотором программном обеспечении. До сих пор у меня может быть панель управления с физическими ползунками, которые связаны с различными ячейками в электронной таблице, загруженной в Excel, Calculate или Numbers. У меня есть способы восприятия событий, происходящих с устройства, но подсистемы взаимодействия (X11, Explorer и т. Д.) Не расширяемы для обработки новых типов событий взаимодействия, поэтому мне нужно захватывать и переносить свои собственные события в программное обеспечение и из него. с которым они связаны.

Кроме того, большинство приложений, которыми я хотел бы управлять, нельзя изменить для реагирования на эти новые типы событий. И симуляция последовательностей горячих клавиш и сочетаний клавиш недостаточно выразительна, хотя она будет использовать преимущества существующих подсистем взаимодействия. Вот почему я заинтересован в платформах, специфичных для платформы, поэтому я могу воспользоваться уже существующими хуками для управления программным обеспечением в дикой природе.

Так как это для взаимодействия с пользователем, оно должно иметь низкие задержки. Я хотел бы также иметь возможность асинхронной связи без сохранения состояния.

Я думал об этом вопросе и понимаю, что мне нужно было задать два вопроса. Один из них касается IPC высокого уровня, а другой - объектных моделей компонентов, которые позволяют вызывать методы для программного объекта.

- оригинальный вопрос -

Какие коммуникационные / компонентные инфраструктуры предоставляют функциональность, наиболее похожую на Windows Communications Foundation в Linux и Mac OS X?

Моя исследовательская группа начинает разрабатывать некоторый тип среды разработки приложений для интерактивных приложений, который включает новые типы устройств для манипулирования / взаимодействия с программными приложениями. Мы хотим использовать шаблон адаптера для предоставления абстракций для связи между устройством / устройством / приложением или устройством / приложением, чтобы программное обеспечение, созданное с помощью этой платформы, было переносимым на 3 основные платформы ОС.

Ответы [ 3 ]

5 голосов
/ 04 июня 2009

Если приложения Linux достаточно современны, вы можете воспользоваться D-Bus . Это в основном потомок DCop от KDE и, в меньшей степени, Bonobo из GNOME, так что если он старше, вы можете посмотреть одну из этих вещей. Конечно, это предполагает, что он использует один из этих наборов инструментов.

Если он даже старше этого или использует инструментарий без какого-либо высокоуровневого IPC (например, Motif (я думаю)), вам может понадобиться прибегнуть к каналам, сокетам, fifos и всем остальным, что я мог забыть. Это предполагает, конечно, что в приложении есть какие-то хуки для этого.

4 голосов
/ 04 июня 2009

Вот список руководств, связанных с сетью в Mac OS X. Он охватывает различные уровни сети от низкоуровневых соединений сокетов до http://developer.apple.com/documentation/Cocoa/Networking-date.html#doclist

Это охватывает:

  • Базовые сетевые функции Foundation для работы с низкоуровневыми разъемами BSD.
  • Классы потока какао для чтения данных от и записи данных в потоки.
  • Клиентские платформы веб-сервисов доступно в Mac OS X.
  • Бонжур в какао или углероде приложения.
  • Система загрузки URL для управления URL и передачи Содержание URL
  • Распределенные объекты Программирование - связь между объектами Objective-C в разных темы или разные процессы

В противном случае Mac OS X - полностью совместимая с Posix система Unix, поэтому вы найдете систему IPC, аналогичную Linux.

Или, возможно, вам нужна Mac OS X Системные службы , система, которая позволяет одному приложению получать доступ к функциям другого приложения. Приложение рекламирует услуги, которые они предоставляют. Для получения дополнительной информации прочитайте связанную документацию Apple.

1 голос
/ 03 июня 2009

Ближайшим кузеном будет libsoap и эквивалентные библиотеки SOAP на выбранном вами языке.

...