RPC をサポートする C++ Soap Web サービス フレームワーク、できればオープン ソースを探しています。推奨事項はありますか?
12 に答える
C++ 用の WSO2 Web サービス フレームワーク (WSO2 WSF/C++)、WSO2 WSF/C の C++ へのバインドは、C++ で Web サービスを使用するための C++ 拡張機能です。
http://wso2.org/projects/wsf/cpp
Apache Axis は、オープン ソースの XML ベースの Web サービス フレームワークです。これは、SOAP サーバーの Java および C++ 実装と、Web サービス アプリケーションを生成およびデプロイするためのさまざまなユーティリティと API で構成されています。
http://code.google.com/p/staff/
スタッフは、Apache Axis2/C をベースとした C++ (サービス/コンポーネントおよびクライアント側)/JavaScript (クライアント側) の Web サービス フレームワークです。
Apache License V2.0 でリリースされたオープンソース。
ffead-cppフレームワークを試してみてください。組み込みの Web サービス サポート、rest、json、およびその他の多くの便利な機能が提供されます。
FOSSではありませんが、別のライブラリはMicrosoftのATLサーバーライブラリです。これは、Microsoftによるいくつかの独自の属性に基づくC++テンプレートです。つまり、標準のC++ではありません
EasySoap(http://easysoap.sourceforge.net/)を使用しています
xmlbeansxx を確認できます。これは、完全なフレームワークと比較して、一種の軽量で低レベルのソリューションです。これには、場合によっては利点があります。
xmlbeansxx を使用した SOAP Web サービスの呼び出し
コード例は次のとおりです: WsClient.cpp。
私はimjorgeの答えに同意し、RPCおよびWS-*仕様の束を含むあらゆる種類のものを介してSOAPを実行するAxis2フレームワークのC/ C ++バージョン(より柔軟で拡張可能なAxis)があることを追加します。
SWIGを使用して C++ から Java または Python へのインターフェイスを作成し、それらの言語の典型的な Web インターフェイス サポートを使用しました。
Java と Python にはリフレクションがあるため、それらのために存在する Web サービス フレームワークでは、データの受け渡しがはるかに簡単になります。
C++ コードがスレッド セーフである場合、スレッドに関しては、Java サーバーに同時要求などのスレッドの作成を管理させ、JNI を使用して C++ コードを呼び出すだけで済みます。
おまけとして、これらと同じ SWIG インターフェイスを使用して Python から C++ コードをテストできます。
gSOAPを試すことができます。GPL および商用ライセンスの下で利用できます。
Apache axis-c: 使い方は簡単ですが、見捨てられたようです.ダウンロード ページでさえ数か月間機能していません
WSOF WSFCPP: Apache AxisC に基づいた、バインドされた実装またはバインドされていない実装の両方の高速クイックスタート dev であり、Apache Axis の現在の開発者のほとんどは WSOF 会社の出身のようです。大きな可能性に加えて、メモリリークを検出しました。
私は現在 Gsoap を使用していますが、非常に優れたパフォーマンスを発揮します。古いCスタイルとC ++のいくつかの(悪い?)プラクティスとの間のGsoapの「混合表記」は、私を悩ませます..しかし、これはコード家具にすぎません。
POCO: フル機能のモダンな (Java?) ライクなライブラリです。これは、Boost Software License 1.0 の下でライセンス供与されるオープン ソース ソフトウェアです。スクラッチからいくつかのものを作成する必要がありますが、優れたサポート、ユーティリティ クラスなどの優れたライブラリがあります。すべてのブースト イニシアチブを備えた c++11+ からのイノベーション + POCO + 新しいビルド/依存関係システムは、より「gradle に似た」ものになります。確かに、c++ を新しい開発分野にもたらします。
C++ でサービスを作成し (すべての宿題を終えており、C++ で作成する正当な理由があると仮定しています)、RPC サーバーを使用してサービスを前面に出すのがよいと思います。高速 RPC 実装には、Thrift や Protobufs などを使用します。
次に、選択した言語で Web フロントエンドを作成します (私の場合は Python を使用します)。RPC 呼び出しを行って、面倒な作業をすべて実行します。
POCO Remotingは、C++ クラス定義に特別なコメントで注釈を付け、その上でコード ジェネレーターを実行するだけで、C++ で Web サービスを作成する非常に簡単な方法を提供します。これは商用ですが、完全なソース コードが付属しています。無料の評価版が利用可能です。Windows、Linux、Mac OS X などで動作します。