Как мне соединить два приложения - PullRequest
1 голос
/ 18 мая 2010

Я рассматриваю возможность создания приложения на C ++, которое будет анализировать текст из Интернета и создавать некоторые статистические результаты. Эти результаты я хочу получать во внешнем приложении в режиме реального времени. Внешнему приложению (к чьему коду у меня нет доступа, но я могу запросить платное добавление по индивидуальному заказу) затем потребуется код для чтения и использования этих результатов.

Мне интересно, как лучше всего связать два приложения с точки зрения скорости и простоты реализации. Я рассматриваю:

 disk I/O (slow) 

 a Windows service  

 a DLL  

 a web service  

 a web page

Возможно, мне не хватает лучшего решения? Спасибо.

Update : there is an additional need to know how long a data request may take at worst.

Ответы [ 3 ]

5 голосов
/ 18 мая 2010
  • Гнезда
  • Общая память?
  • RAM Disk?
  • TCP / IP?
  • Сообщения Windows?
  • Аргументы командной строки (другого приложения)?

Какие методы поддерживает другое приложение для получения данных?

3 голосов
/ 18 мая 2010

Служба Windows была бы разумной, но все же должна была бы связаться с другим приложением, это называется IPC, подходы к окнам описаны здесь , Именованные каналы просты и гибки, Отображение файлов является мощным.

Альтернативой было бы прикрепить базу данных посередине?

2 голосов
/ 18 мая 2010

Существует несколько механизмов IPC на выбор (сокеты, общая память, каналы, ...). Я думаю, что «лучший выбор» будет в значительной степени зависеть от структуры другого приложения. сколько будет стоить ваше пользовательское расширение.

Я не очень хорошо знаю вашу среду, но, возможно, стоит взглянуть на boost.interprocess: http://www.boost.org/doc/libs/1_43_0/doc/html/interprocess.html

...