На одной рабочей станции, должно работать приложение1 (язык реализации С++). Управление работой приложения должно осуществляться другим приложением2 (язык реализации — C#), расположенным на другом компутере, в другом городе или стране. Связь через интернет. Вопрос: какая физическая реализация должна быть у приложения1, чтобы приложение2 могло полностью инициировать, запустить и остановить работу этого приложения. Должен ли это быть WEB — сервис или еще что??? Добавлю, что работа приложения 1 должна координироваться как локально, так и удаленно. Заранее спасибо
Re: Есть такая проблема
От:
Аноним
Дата:
23.09.04 12:46
Оценка:
Здравствуйте, Аноним, Вы писали:
А>На одной рабочей станции, должно работать приложение1 (язык реализации С++). Управление работой приложения должно осуществляться другим приложением2 (язык реализации — C#), расположенным на другом компутере, в другом городе или стране. Связь через интернет. Вопрос: какая физическая реализация должна быть у приложения1, чтобы приложение2 могло полностью инициировать, запустить и остановить работу этого приложения. Должен ли это быть WEB — сервис или еще что??? Добавлю, что работа приложения 1 должна координироваться как локально, так и удаленно. Заранее спасибо
Конкретнее что понимается под координацией ? Как запустить программу на выполнение с удалённой машины из своей программы честно говоря не знаю...
Что касается выполнения специфичеких команд в програме на С я бы поступил слудцющим образом: пусть это приложение открывает порт на прослушивание через сокеты (то есть функционирует как сервер). Далее твоя программа на С# или на любом другом языке подсоединяется к этому серверу и передаёт ему некоторую строку с коммандой которую надо выполнить — как именно кодировать тип/параметры команды в строке дело ваше . Например в виде XML можно данные передавать, смотрякакого типа управление планируется осуществлять.
Re[2]: Есть такая проблема
От:
Аноним
Дата:
23.09.04 13:04
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Аноним, Вы писали:
А>>На одной рабочей станции, должно работать приложение1 (язык реализации С++). Управление работой приложения должно осуществляться другим приложением2 (язык реализации — C#), расположенным на другом компутере, в другом городе или стране. Связь через интернет. Вопрос: какая физическая реализация должна быть у приложения1, чтобы приложение2 могло полностью инициировать, запустить и остановить работу этого приложения. Должен ли это быть WEB — сервис или еще что??? Добавлю, что работа приложения 1 должна координироваться как локально, так и удаленно. Заранее спасибо
А>Конкретнее что понимается под координацией ? Как запустить программу на выполнение с удалённой машины из своей программы честно говоря не знаю...
А>Что касается выполнения специфичеких команд в програме на С я бы поступил слудцющим образом: пусть это приложение открывает порт на прослушивание через сокеты (то есть функционирует как сервер). Далее твоя программа на С# или на любом другом языке подсоединяется к этому серверу и передаёт ему некоторую строку с коммандой которую надо выполнить — как именно кодировать тип/параметры команды в строке дело ваше . Например в виде XML можно данные передавать, смотрякакого типа управление планируется осуществлять.
Под координацией имелось в виду координирование — управление работой. C форматом управляющих команд вроде определился и на серверной и на клиентской стороне будет работать парсер, который вызовет какие нужно функции. Вся беда в том, как бы запустить удаленно прогу на выполнение. Вот это проблема
А>Под координацией имелось в виду координирование — управление работой. C форматом управляющих команд вроде определился и на серверной и на клиентской стороне будет работать парсер, который вызовет какие нужно функции. Вся беда в том, как бы запустить удаленно прогу на выполнение. Вот это проблема
Можно написать простенький сервер на том же С или ещё на чём угодно, который будет постоянно запущен как сервис на машике с Сишной прогой и единственной функцией которого будет запускать основную программу. То есть сначала подсоединяелься к этой программе, она запускает основную программу и ты от первой отсоединешься и уже работаешь с основной прогой.
Можно разобраться как вообще сетевая истсема в той же винде функционирует и на её уровне работать, но мне кажется проще всмего и быстрее примитивный сервер вспомогательный сообразить...
Re[4]: Есть такая проблема
От:
Аноним
Дата:
23.09.04 13:37
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Аноним, Вы писали:
А>>Под координацией имелось в виду координирование — управление работой. C форматом управляющих команд вроде определился и на серверной и на клиентской стороне будет работать парсер, который вызовет какие нужно функции. Вся беда в том, как бы запустить удаленно прогу на выполнение. Вот это проблема
А>Можно написать простенький сервер на том же С или ещё на чём угодно, который будет постоянно запущен как сервис на машике с Сишной прогой и единственной функцией которого будет запускать основную программу. То есть сначала подсоединяелься к этой программе, она запускает основную программу и ты от первой отсоединешься и уже работаешь с основной прогой.
А>Можно разобраться как вообще сетевая истсема в той же винде функционирует и на её уровне работать, но мне кажется проще всмего и быстрее примитивный сервер вспомогательный сообразить...
Ну нафига такие сложности, просто я подумываю, что сишная прога будет виндовой службой, а управляющая прога просто цепляется к ней, узнает ее статус и передает нужные команды. Осталось узнать, можно ли службу запускать удаленно.
Re[5]: Есть такая проблема
От:
Аноним
Дата:
23.09.04 14:00
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Ну нафига такие сложности, просто я подумываю, что сишная прога будет виндовой службой, а управляющая прога просто цепляется к ней, узнает ее статус и передает нужные команды. Осталось узнать, можно ли службу запускать удаленно.
Особых сложностей честно говоря я не вижу А вот если разберёшься как сервис удалённо запускать то кинь ответ в форум — интересно
Здравствуйте, <Аноним>, Вы писали:
А>Ну нафига такие сложности, просто я подумываю, что сишная прога будет виндовой службой, а управляющая прога просто цепляется к ней, узнает ее статус и передает нужные команды. Осталось узнать, можно ли службу запускать удаленно.
Конечно можно. Типичный способ удаленного запуска произвольного софта заключается в удаленной регистрации там временного сервиса, старта, взаимодействия с ним, и дерегистрации.
Единственно что — путь от твоей локальной машины до управляемой дожен быть "свободен" для RPC. Ты легко это проверишь, подключившись к ее сервис менеджеру (Control Panel->Administrative Tools->Services; Actions->Connect another computer).
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[7]: Есть такая проблема
От:
Аноним
Дата:
24.09.04 05:54
Оценка:
Здравствуйте, wildwind, Вы писали:
W>Здравствуйте, Аноним, Вы писали:
А>>Осталось узнать, можно ли службу запускать удаленно.
W>А почему бы службе не запускаться при старте системы, но ресурсов не кушать до первой активации.
Можно, но если вдруг кто-то захочет приостановить ее работу ( ). Тогда мне все-равно понадобится ее запустить или вдруг внештатная ситуация, и я захочу сделать перезапуск. Вот только где можно прочитать про удаленный запуск службы. На RSDN-е есть статьи, но там только бызовые принципы создания служб
Здравствуйте, Аноним, Вы писали:
А>Можно, но если вдруг кто-то захочет приостановить ее работу
А если кто-то захочет выдернуть сетевой кабель или выключить комп? Вообще чую все это пахнет кулхацкерством...
Здравствуйте, Аноним, Вы писали:
А>На одной рабочей станции, должно работать приложение1 (язык реализации С++). Управление работой приложения должно осуществляться другим приложением2 (язык реализации — C#), расположенным на другом компутере, в другом городе или стране. Связь через интернет. Вопрос: какая физическая реализация должна быть у приложения1, чтобы приложение2 могло полностью инициировать, запустить и остановить работу этого приложения. Должен ли это быть WEB — сервис или еще что??? Добавлю, что работа приложения 1 должна координироваться как локально, так и удаленно. Заранее спасибо