На мой взгляд, веб-сервис — это сервис, который создает связь между некоторыми приложениями. То, что я хочу сделать, это вызвать программу c ++, установленную на сервере, в веб-сервис.
Однако я нашел, как вызвать веб-сервис в программе на C ++, но это не то, что я ищу.
Как вы называете код C ++ в веб-сервис (кстати, я использую VS2013) и уместно ли это делать?
Итак, мой вопрос: как вы называете код C ++ в веб-сервис (я использую VS2013, кстати) и уместно ли это делать?
Веб-сервис — это сервис, доступный удаленно, который публикует несколько «конечных точек».
Каждая конечная точка соответствует вызову функции (возможно, реализована в C ++).
Чтобы вызвать конечную точку веб-службы, необходимо сериализовать входные параметры конечной точки в формате, принятом веб-службой (на практике это обычно означает создание документа SOAP / XML, содержащего значения параметров), а затем отправку сериализованного документа. на сервер. Затем сервер десериализует параметры, вызывает функцию, сериализует результат и отправляет его в качестве ответа.
Веб-службы публикуют свои конечные точки (свои доступные / вызываемые API) в другом стандарте XML, называемом WSDL, а общедоступные веб-службы обычно перечислены в общем каталоге.
Для этого вам понадобится сетевая библиотека, используемая в C ++ (см. GSoap), или ваша собственная реализация поверх сетевой библиотеки (см. Boost :: asio).
Это зависит от того, на каком языке закодирован ваш веб-сервис.
Если это PHP, см. Функцию система запустить другую программу, которую вы можете кодировать на любом языке, который вы хотите (включая C ++).
Если это C / C ++ в Linux, см. Функции вилка/Exec-х создать новый процесс и запустить другую программу в этом новом процессе.
Если это C #, посмотрите это учебник по Process.Start.
Если это Python, см. пакет подпроцесса из стандартной библиотеки.
В любом случае, если ваш веб-сервис находится на C ++, а код, который вы хотите выполнить, находится в той же программе, вы можете просто вызвать функцию в методе вашего веб-сервиса.