Вызов c ++ в веб-сервисах

На мой взгляд, веб-сервис — это сервис, который создает связь между некоторыми приложениями. То, что я хочу сделать, это вызвать программу c ++, установленную на сервере, в веб-сервис.

Однако я нашел, как вызвать веб-сервис в программе на C ++, но это не то, что я ищу.

Как вы называете код C ++ в веб-сервис (кстати, я использую VS2013) и уместно ли это делать?

0

Решение

Итак, мой вопрос: как вы называете код C ++ в веб-сервис (я использую VS2013, кстати) и уместно ли это делать?

Веб-сервис — это сервис, доступный удаленно, который публикует несколько «конечных точек».

Каждая конечная точка соответствует вызову функции (возможно, реализована в C ++).

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

Веб-службы публикуют свои конечные точки (свои доступные / вызываемые API) в другом стандарте XML, называемом WSDL, а общедоступные веб-службы обычно перечислены в общем каталоге.

Для этого вам понадобится сетевая библиотека, используемая в C ++ (см. GSoap), или ваша собственная реализация поверх сетевой библиотеки (см. Boost :: asio).

1

Другие решения

Это зависит от того, на каком языке закодирован ваш веб-сервис.

Если это PHP, см. Функцию система запустить другую программу, которую вы можете кодировать на любом языке, который вы хотите (включая C ++).

Если это C / C ++ в Linux, см. Функции вилка/Exec-х создать новый процесс и запустить другую программу в этом новом процессе.

Если это C #, посмотрите это учебник по Process.Start.

Если это Python, см. пакет подпроцесса из стандартной библиотеки.

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

1

По вопросам рекламы [email protected]