سؤال

الشركة التي أعمل عليها لديها موقع ويب كبير مكتوب في C ++ كملحق ISAPI (وليس مرشحًا). نحن نقوم حاليًا بتحسين نظامنا للتكامل مع العديد من أدوات الطرف الثالث التي تحتوي على واجهات الصابون. بدلاً من لفة خاصة بنا ، أعتقد أنه سيكون من الأفضل على الأرجح إذا استخدمنا بعض مكتبة الصابون. من الناحية المثالية ، سيكون الأمر مجانيًا ومفتوحًا المصدر ، ولكن لديه ترخيص متوافق مع برنامج تجاري مغلق المصدر. نحتاج أيضًا إلى دعم SSL لكل من رسائل الصابون الواردة والصادرة.

واحدة من أكبر الشواغل التي أمتلكها هي أن كل مكتبة صابون نظرت إليها يبدو أن لديها وضعين للتشغيل: خادم مستقل ووحدة الخادم (إما وحدة Apache أو مرشح ISAPI). من الواضح أنه لا يمكننا استخدام الخادم المستقل. يبدو لي أنه إذا كان يعمل كوحدة نمطية ، فلن يكون جزءًا من تطبيقي - لن يتمكن من الوصول إلى بقية الكود الخاص بي ، لذلك لن يتمكن من مشاركة هياكل البيانات ، إلخ . هل ذلك افتراض صحيح؟ تتم معالجة كل طلب HTTP الذي تتم معالجته بواسطة تطبيقنا بواسطة مؤشر ترابط منفصل (ندير تجمع مؤشرات الترابط الخاص بنا) ، ولكن لدينا الكثير من البيانات المستمرة التي يتم مشاركتها بين هذه الخيوط. أعتقد أن نوع التكامل الذي يبحث عنه هو إضافة بعض التعليمات البرمجية إلى تطبيقي التي تنظر إلى عنوان URL للطلب ، ويرى أنه يحاول الوصول إلى خدمة SOAP ، والاستدعاء بعض الوظائف مثل soapservice.handlerequest (). لست على علم بأي شيء يوفر هذا النوع من التكامل. يجب أن نكون قادرين على استخدام هياكل البيانات من تطبيقنا الرئيسي في وظائف معالج الصابون.

بالإضافة إلى التعامل مع طلبات الصابون الواردة ، سنقوم أيضًا بتوليدها (اتصال ثنائي الاتجاه مع الأطراف الثالثة). أفترض إلى حد كبير أي مكتبة صابون ستفي بهذا الغرض ، أليس كذلك؟

هل يمكن لأي شخص اقتراح مكتبة صابون قادرة على ذلك ، أو تقديم اقتراح حول كيفية استخدام نموذج مختلف؟ لقد نظرت بالفعل إلى Apache Axis2 و GSOAP و Alchemysoap ، ولكن ربما هناك بعض الميزات التي أغفلتها. شكرًا.

هل كانت مفيدة؟

المحلول

GSOAP هو مكدس صابون صافٍ مفتوح المصدر مفتوح المصدر.

انه سريع.

interop عظيم.

لا يوجد لدى العديد من مكتبات الصابون مفتوحة المصدر interop مع Java/C#/Python/أيا كان.

إنه يحلل حمولات ضخمة أثناء استخدام القليل جدًا من الذاكرة.

إنه مفتوح المصدر!

نظرًا لأنك تستخدم امتداد IIS ، ستحتاج إلى إضافة GSOAP إلى تطبيقك ، وإعادة ترجمة Extension DLL مع هذا: http://aberger.at/soap/iis_index.htmlويجب أن تكون مستعدًا لللف.

GSOAPhttp://www.cs.fsu.edu/~engelen/soap.html

نصائح أخرى

ألق نظرة على خادم ATL اعتادت هذه المكتبة شحنها باستخدام Visual C ++ ، لكنها الآن مشروع منفصل مفتوح المصدر

يعمل GSOAP بشكل جيد لرمز C ++

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top