سؤال

لدينا خادم ص(R هي لغة برمجة تستخدم في التحليل الإحصائي) والتي تأخذ بشكل أساسي برنامجًا نصيًا وملف CSV، وتعالج بعض البيانات وترجع النتائج كنص.

أحتاج إلى كتابة خدمة على خادم R حتى يتمكن عملاء .net (يمكن أن يكونوا .Net Windows Forms أو ASP.Net) من الاتصال بخادم R وإرسال البرنامج النصي وملف CSV والحصول على النتائج مرة أخرى.

أنا في حيرة من أمري بسبب الارتباطات العديدة المختلفة المتاحة لي ويبدو أن المعلومات الموجودة على الويب متناثرة/متناثرة حول ما يجب اختياره.

أيضًا، هل من الأفضل تشغيل الخدمة في IIS، أو كخدمة مستمع منفصلة من نوع "سطر الأوامر" (يبدو الأخير قبيحًا مقارنة بـ IIS وليس لدي أي فكرة عن سبب اختيار أي شخص للقيام بذلك إذا كان بإمكانه تشغيله في IIS )؟

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

المحلول

أنا شخصياً أوصي بأبسط عملية ربط توفر ما تحتاجه.لقد قمت بعمل الكثير من WCF (بعضها معقد جدًا)، ولم أضطر مطلقًا إلى استخدام أي شيء آخر غير BasicHttpBinding؛وهذا يسمح أيضًا بأكبر قدر ممكن من التوافق مع العملاء غير التابعين لـ .NET، ويتيح لك استخدام أشياء مثل MTOM للنقل الثنائي الفعال.

إعادة الاستضافة؛IIS هو بالفعل الأبسط لإعداد العميل/الخادم؛قوتان خاصتان:

  • من السهل تكوين SSL (أي.ما عليك سوى تكوين IIS، وسيستخدمه WCF)
  • من السهل تحميل الرصيد (فقط قم بتحميل موازنة مزرعة الويب الخاصة بك)

(أنا يعتقد يمكن أيضًا لـ WCF الذي يعمل عبر BasicHttpProfile الاستفادة من إعداد ضغط IIS [GZip/Deflate]، لكن لا تقتبس مني...)

يمكنك اختيار استخدام مضيف مستقل (عادةً عبر خدمة Windows) إذا كنت (على سبيل المثال) تريد خادمًا ذا حالة طويلة الأمد.IIS لديه هذه العادة (حسب التصميم) لإعادة تدوير مجموعات التطبيقات، وهو أمر ليس جيدًا إذا كنت تحتفظ بشيء ما في الذاكرة!مثال آخر هو المكان الذي تريد أن يكون قيد التشغيل بالفعل للحصول على أداء سريع "الضربة الأولى" (بدلاً من انتظار تشغيل IIS/ASP.NET).من الأمثلة التي تغطي كلا الأمرين استضافة خادم WF (سير العمل).

مرة أخرى؛إذا لم تكن بحاجة إلى هذا التعقيد، فانتقل إلى الخيار الأبسط:الاستضافة في IIS.

نصائح أخرى

في الواقع هناك العديد من الخيارات.

ربط

الارتباطات المتوفرة من WCF هي مجموعة من البروتوكولات للسيناريوهات الشائعة.وهي تحدد معلومات النقل والرسائل والأمن.

عند اختيار الربط، تحتاج إلى معرفة الميزة التي تحتاجها منه.على سبيل المثالقد تحتاج إلى وسيلة ل

  • قم بمصادقة العملاء لأنك لا تريد أن يتمكن الجميع من استخدام خدمتك.
  • قد تحتاج البيانات إلى التشفير.
  • تتطلب الخدمة أن تكون قابلة للتشغيل البيني للعملاء من منصة أخرى.
  • الحمل الزائد للرسالة أصبح مشكلة.

إذا كنت تعلم أن العملاء دائمًا ما يكونون من dot net، فيمكنك استخدام ربط net tcp، وهو أسرع من basicHttpbinding.ومع ذلك، فإن basicHttpBinding هو بروتوكول قابل للتشغيل البيني، حتى أن عملاء php أو java يمكنهم التحدث إليه دون مشكلة.

حدد متطلباتك الخاصة للخدمة ثم ابحث عن الربط الحالي ليناسب احتياجاتك، إذا لم يكن هناك أي ربط موجود، فيمكنك إنشاء ربط خاص بك والذي يسمى الربط المخصص، ويمكن أن يجمع ميزات من ربط مختلف معًا لتحقيقه الهدف.

الاستضافة

IIS أكثر قابلية للتطوير.إذا كانت خدمتك لا تتطلب الحالة التي يجب استضافتها في عملية خفية طويلة المدى (خدمة Windows أو تطبيق وحدة التحكم)، فإن IIS هو الخيار لأنه من السهل تمكين الضغط والتشفير لخدماتك.

المزيد عن ملزمة

إذا كنت تريد أن يتم استدعاء خدمتك داخل المتصفح، على سبيل المثال.JavaScript WebhttpBinding جيد الذي تم تعريفه لك.يمكنك استخدام enbableWebScript لجعل الخدمة تفهم JSON لجافا سكريبت.

التوفر

إذا لم يتمكن ربط واحد محدد من تلبية جميع المتطلبات، فيمكنك عرض كل خدمة في ربط مختلف عند نقاط نهاية مختلفة.على سبيل المثالالمضيف/مضيف الصابون/مضيف nettcp/json

وأود أن أقترح إحالة كتاب "البرمجة خدمات WCF" حسب جوفال لووي.

ويمشي من خلال الرسم البياني قرار لمساعدتك على اتخاذ قرار وملزمة للاستخدام. يمكنك أيضا العثور على مقالته على الارتباطات هنا

http://www.code-magazine.com/article .aspx اتصال؟ quickid = 0605051 & صفحة = 3

ومقتطفات من WCF4 من wros كتاب "كل هذه المدمج في مبنية على ستاندارس التي تعمل من أجل سيناريوهات محددة الارتباطات، ولكنها ستعمل أيضا أنا اخترت خطأ واحد أو أقل كفاءة. إذا كيف يمكنك اختيار هيك واحد حق لكم؟

والقرار الأكثر وضوحا الصورة إذا كنت بحاجة إلى التفاعل مع التطبيقات غير WCF. إذا الخدمة الخاص بك هو على التواصل مع العملاء WCF، ثم يمكنك استخدامها على من الارتباطات مسبوقة ب "شبكة". تذكر أنك يمكن تحديد عدة نقاط النهاية لنفس الخدمة التي سوف تستخدم الارتباطات المختلفة. هذا يسمح لك للاستفادة من تحسينات الأداء للعملاء WCF، ولكن لا تزال توفر الدعم للخدمات ASMX والمعايير * WS-. هذه توفير مزيد من الأمن وغيرها من الميزات التي العديد من العملاء الاستفادة و.

وعلى سبيل المثال، إذا كنت ترغب في إنشاء صندوق رأس المال العامل للتواصل WCF، واختيار NetTcpBinding مع الترميز الثنائي اكيس التواصل أربع أو خمس مرات أسرع تان وBasicHttpBinding مع ترميز النص.

وهذه الارتباطات المقدمة WCF ينبغي أن تغطي معظم الحالات التي تحتاجها: ومع ذلك، إذا كنت بحاجة إلى تغيير أو إنشاء ملزمة شمال شرق تماما، WCF يسمح لك القيام بذلك ببساطة شديدة "

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