Mac OS X - каков наилучший способ «связи» между приложением Какао и приложением (демоном) на основе Java, работающим в одной коробке - PullRequest
3 голосов
/ 28 мая 2011

У меня есть приложение, написанное на target-c на Какао, с некоторым пользовательским интерфейсом.Я планирую написать еще одно Java-приложение, которое могло бы работать в фоновом режиме и автоматически запускаться (по сути, dameon).И тогда приложение Какао «свяжется» с приложением Java, чтобы начать выполнять некоторые задачи периодически или по требованию.Это выполнимо?Если так, что будет лучшим способом связи между ними с точки зрения сложности программирования?Разъем?через файл?Именованная труба?

Ответы [ 2 ]

2 голосов
/ 28 мая 2011

Это, безусловно, выполнимо.Существует множество потенциальных механизмов, но все они сводятся к выбору какого-то механизма межпроцессного взаимодействия.Но почему вы хотите, чтобы приложение Java было демоном?Очевидно, что ваше приложение Какао просто запускает приложение Java.

Если по какой-то причине это выясняется - скажем, в приложении Java много постоянных состояний или требуется много времени длязапустить - тогда самый простой способ может быть использовать именованный канал, а / к / аа FIFO.Создав FIFO, вы можете просто написать в него из процесса пользовательского интерфейса и прочитать его как файл из Java.Это имеет дополнительное преимущество, заключающееся в том, что он обеспечивает естественную очередь событий (для этого он и предназначен, поэтому он называется FIFO).

0 голосов
/ 28 мая 2011

Как вы определяете «лучший»?Самый быстрый?Проще всего настроить?Транзакция безопасна?

Возможно, самый простой способ - заставить ваше java-приложение запустить сервер http или xmlrpc в отдельном потоке.Есть много клиентских и серверных библиотек, чтобы помочь.Дополнительным преимуществом является упрощение тестирования java-приложения, поскольку вы можете использовать инструменты командной строки, такие как curl, для имитации приложения-какао во время разработки.

...