Фреймворк веб-сервисов C++

Мы ищем платформу веб-сервисов C++ Soap, поддерживающую RPC, предпочтительно с открытым исходным кодом. Есть рекомендации?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
0
14 417
12
Перейти к ответу Данный вопрос помечен как решенный

Ответы 12

Вы можете попробовать gSOAP. Доступно по GPL и коммерческим лицензиям.

Ответ принят как подходящий

WSO2 Web Services Framework для C++ (WSO2 WSF / C++), привязка WSO2 WSF / C к C++ является расширением C++ для использования веб-служб на C++.

http://wso2.org/projects/wsf/cpp

Apache Axis - это платформа веб-сервисов на основе XML с открытым исходным кодом. Он состоит из реализации SOAP-сервера на Java и C++, а также различных утилит и API для создания и развертывания приложений веб-служб.

http://ws.apache.org/axis/

Попробовав несколько разных пакетов, мы обнаружили, что Axis является наиболее полной и простой в использовании библиотекой.

Raz 29.10.2008 09:58

Я использовал SWIG для создания интерфейса от 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- *.

http://ws.apache.org/axis2/c/

http://code.google.com/p/staff/

Персонал - это платформа веб-сервисов для C++ (служба / компонент и на стороне клиента) / JavaScript (на стороне клиента) на основе Apache Axis2 / C.

Открытый исходный код, выпущенный с лицензией Apache License V2.0.

Мы используем EasySoap (http://easysoap.sourceforge.net/)

Другая библиотека - это не FOSS, Сервер ATL от Microsoft. Это шаблон C++, основанный на некоторых проприетарных атрибутах Microsoft. т.е. не стандартный C++

Ирония этого заключается в том, что сразу после того, как msft сбросил его на CPlex, Google начал развертывать свою собственную, очень похожую по структуре.

rama-jka toti 27.10.2009 12:43

Вы можете проверить xmlbeansxx. Это своего рода легкое низкоуровневое решение по сравнению с законченными фреймворками. В некоторых случаях это дает преимущества.

Вызов SOAP WebServices с помощью статьи xmlbeansxx

Пример кода здесь: WsClient.cpp.

Попробуйте фреймворк ffead-cpp, он предоставляет встроенную поддержку веб-сервисов, rest, json и многие другие полезные функции.

Ось Apache-c: Проста в использовании, но кажется заброшенной ... несколько месяцев не работают даже страницы загрузки

WSOF WSFCPP: Быстрый запуск разработчика, как с привязкой, так и без привязки, основан на Apache AxisC, и кажется, что большинство текущих разработчиков Apache Axis из компании WSOF. Помимо большого потенциала я обнаружил утечку памяти.

В настоящее время я использую Gsoap, и у него очень хорошая производительность. "Смешанная нотация" Gsoap между старым стилем c и некоторыми (плохими?) Практиками для C++ меня немного беспокоит ... но это всего лишь кодовая мебель.

POCO: Это полнофункциональная современная (java?) Библиотека. Это программное обеспечение с открытым исходным кодом, работающее под лицензией Boost Software License 1.0. Вам придется писать некоторые вещи с нуля, но с отличной поддержкой, служебными классами и т. д. Отличной библиотекой. Нововведения от C++ 11 + со всеми инициативами по ускорению + POCO + новая система сборки / зависимостей, более "похожая на градиент", будет безусловно, принесет C++ в новые области развития.

Другие вопросы по теме