Мы ищем инфраструктуру веб-сервисов Soap C++, которые поддерживают RPC, предпочтительно с открытым исходным кодом. Любые рекомендации?Основы веб-сервиса C++
ответ
WSO2 Web Services Framework для C++ (WSO2 WSF/C++), привязка WSO2 WSF/C на C++ является расширением C++ для использования веб-сервисов на C++.
http://wso2.org/projects/wsf/cpp
Apache Axis является открытым исходным кодом, структура веб-службы XML на основе. Он состоит из Java и C++-реализации SOAP-сервера, а также различных утилит и API для создания и развертывания приложений веб-сервисов.
Вы можете попробовать gSOAP. Доступно под лицензией GPL и коммерческими лицензиями.
Я использовал SWIG, чтобы сделать интерфейс с C++ на Java или Python, а затем использовали типичную поддержку веб-интерфейса для этих языков.
Поскольку Java и Python имеют отражение, инфраструктура веб-сервисов, которые существуют для них, значительно облегчает передачу данных.
Threading wise, если ваш код на C++ является потокобезопасным, вы можете позволить серверу Java управлять созданием потоков для одновременных запросов и т. Д. И просто вызвать ваш код на C++ с помощью JNI.
В качестве бонуса вы можете протестировать свой код на C++ с Python с помощью этих же интерфейсов SWIG.
Я думаю, что путь к написанию вашей услуги в C++ (я предполагаю, что вы сделали все домашнее задание, и есть хорошая причина, по которой вы хотите писать на C++), а затем перед ней использовать RPC-сервер. Используйте что-то вроде Thrift или Protobufs для быстрой реализации RPC.
Теперь напишите свой веб-интерфейс на выбранном вами языке - python будет моим - и сделайте RPC-звонки, чтобы сделать весь ваш тяжелый подъем.
POCO Remoting дает вам очень простой способ создания веб-сервисов на C++, просто комментируя определения классов C++ специальными комментариями и запуская над ним генератор кода. Он коммерческий, но поставляется с полным исходным кодом. Доступна бесплатная версия eval. Работает в Windows, Linux, Mac OS X и т. Д.
Я согласен с ответом imjorge и добавлю, что есть версия Cis для CMS C++ (более гибкая расширяемая ось), которая делает SOAP через RPC и все виды включая кучу спецификаций WS- *.
http://code.google.com/p/staff/
Персонал Web Service Framework для C++ (сервис/компонента и на стороне клиента)/JavaScript (на стороне клиента) на основе Apache Axis2/C.
Открытый исходный код, выпущенный с лицензией Apache V2.0.
Будет ли это работать над linux? – Moonlit 2013-08-07 17:12:07
Мы используем EasySoap (http://easysoap.sourceforge.net/)
Пока не FOSS другая библиотека ATL Server библиотека от Microsoft. Это шаблон C++, основанный на некоторых проприетарных атрибутах от Microsoft. то есть не стандарт C++
Ирония этого заключается в том, что так же, как он был сброшен msft на CPlex, Google начал развертывать свои собственные, очень похожие по структуре. – 2009-10-27 09:43:47
Вы можете проверить xmlbeansxx. Это своего рода легкое решение на низком уровне по сравнению с полными структурами. В некоторых случаях это имеет свои преимущества.
Invoking SOAP WebServices using xmlbeansxx Article
Пример кода здесь: WsClient.cpp.
Пробуйте ffead-cpp framework, он обеспечивает встроенную поддержку веб-сервиса, отдых, json и многие другие полезные функции.
Apache оси-с: Простой в использовании, но, похоже, отказались .. даже не загружать страницы работает в течение нескольких месяцев
WSOF WSFCPP: Fast Quickstart DEV, оба переплетены или нет-переплетены реализации, на основе Apache AxisC, и, похоже, большинство современных разработчиков Apache Axis принадлежат компании WSOF. Помимо Большого потенциала я обнаружил утечку памяти.
В настоящее время я использую Gsoap и имеет очень хорошую производительность. Gsoap «смешанная нотация» между старым стилем c и некоторыми (плохими?) Практиками для C++ беспокоит меня некоторыми .. но это только кодовая мебель.
POCO: Является полнофункциональной современной (java?) Библиотекой. Это программное обеспечение с открытым исходным кодом, лицензированное под лицензией Boost Software 1.0. Вам нужно будет написать некоторые вещи из scrach, но с большой поддержкой, классами утилит и т. Д. Отличная библиотека. Инновации C++ 11 + со всеми инициативами повышения + POCO + новая система Build/Dependency, более «подобная градиенту» будет конечно, принести C++ в новые области разработки.
После того, как вы попробовали несколько разных пакетов, мы обнаружили, что Axis является самой полной и простой в использовании библиотекой lib. – Raz 2008-10-29 06:58:48