Платформа веб-сервисов C++
-
09-06-2019 - |
Вопрос
Нам нужна платформа веб-сервисов C++ Soap, поддерживающая RPC, желательно с открытым исходным кодом.Есть рекомендации?
Решение
Платформа веб-служб WSO2 для C++ (WSO2 WSF/C++), привязка WSO2 WSF/C к C++, представляет собой расширение C++ для использования веб-служб на C++.
http://wso2.org/projects/wsf/cpp
Apache Axis — это платформа веб-сервисов на основе XML с открытым исходным кодом.Он состоит из реализации SOAP-сервера на Java и C++, а также различных утилит и API-интерфейсов для создания и развертывания приложений веб-служб.
Другие советы
http://code.google.com/p/staff/
Staff — это платформа веб-сервисов для C++ (сервис/компонент и клиентская часть)/JavaScript (клиентская сторона) на основе Apache Axis2/C.
Открытый исходный код, выпущен с лицензией Apache V2.0.
Попробуйте ffead-cpp framework, он обеспечивает встроенную поддержку веб-сервисов, отдых, json и многие другие полезные функции.
Мы используем EasySoap (http://easysoap.sourceforge.net/)
Хотя это и не FOSS, существует другая библиотека. АТЛ-сервер библиотека от Microsoft.Это шаблон C++, основанный на некоторых собственных атрибутах Microsoft.то естьне стандартный С++
Вы можете проверить xmlbeansxx.Это своего рода легкое низкоуровневое решение по сравнению с полноценными фреймворками.В некоторых случаях это имеет преимущества.
Вызов веб-служб SOAP с помощью статьи xmlbeansxx
Пример кода здесь:WsClient.cpp.
Вы могли бы попробовать gSOAP.Доступно по GPL и коммерческой лицензии.
я использовал СВИГ создать интерфейс с C++ на Java или Python, а затем использовать типичную поддержку веб-интерфейса для этих языков.
Поскольку Java и Python имеют отражение, существующим для них платформам веб-сервисов гораздо проще передавать данные.
Мудрая потоковая обработка, если ваш код C++ является потокобезопасным, вы можете позволить серверу Java управлять созданием потоков для одновременных запросов и т.д.и просто вызовите свой код C++, используя JNI.
В качестве бонуса вы можете протестировать свой код C++ на Python, используя те же самые интерфейсы SWIG.
Я думаю, что лучше всего написать свой сервис на C++ (я предполагаю, что вы выполнили всю домашнюю работу, и есть веская причина, по которой вы хотите писать на C++), а затем запустить его с помощью RPC-сервера.Используйте что-то вроде Thrift или Protobufs для быстрой реализации RPC.
Теперь напишите свой веб-интерфейс на выбранном вами языке (я бы выбрал Python) и делайте вызовы RPC, чтобы выполнить всю тяжелую работу.
POCO удаленное взаимодействие дает вам очень простой способ создания веб-сервисов на C++, просто аннотируя определения классов C++ специальными комментариями и запуская над ними генератор кода.Это коммерческое решение, но поставляется с полным исходным кодом.Доступна бесплатная ознакомительная версия.Работает в Windows, Linux, Mac OS X и т. д.
Я согласен с ответом imjorge и добавляю, что существует версия C/C++ платформы Axis2 (более гибкая и расширяемая Axis), которая выполняет SOAP через RPC и все виды вещей, включая кучу спецификаций WS-*.
Ось Apache-c:Простой в использовании, но кажется заброшенным..даже страницы не загружаются уже несколько месяцев
ВСОФ ВСФКПП:Быстрый быстрый запуск разработки, как с привязкой, так и без привязки, на основе Apache AxisC, и похоже, что большинство нынешних разработчиков Apache Axis из компании WSOF.Помимо Великого потенциала я обнаружил утечку памяти.
В настоящее время я использую Gsoap, и он имеет очень хорошую производительность.Gsoap "смешанная нотация" между старым стилем C и некоторыми (плохими?) практиками для C++ меня немного беспокоит..но это всего лишь код-мебель.
ПОКО:Это полнофункциональная современная (java?) библиотека.Это программное обеспечение с открытым исходным кодом, лицензированное по лицензии Boost Software License 1.0.Вам придется написать некоторые вещи с нуля, но с отличной поддержкой, служебными классами и т. д., отличной библиотекой.Инновации из c++11+ со всеми инициативами повышения + POCO + новая система сборки/зависимости, более «похожая на Gradle», безусловно, выведут C++ в новые области развития.