سؤال

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

ويقوم العميل أيضا أن يكون قادرا على إلغاء طلب (إذا كان في قائمة الانتظار للملقم). عند الانتهاء من تطبيق الملقم مع الأجهزة وجب عليه أن يكون قادرا على إرسال النتيجة إلى العميل الذي طلب العمل.

قد

وتطبيقات الخادم والعميل أو قد لا تكون على نفس الكمبيوتر. ويتم كل تطور في. NET (C #) عام 2005.

وهكذا، سؤالي هو: ما هو أفضل وسيلة لحل هذه المشكلة الاتصالات

وMSMQ؟ صابون؟ WCF؟ الاتصال عن بعد؟ آخر؟

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

المحلول

والاتصال عن بعد

إذا يتم كل تطور في. NET 2005، الاتصال عن بعد هو أفضل وسيلة للذهاب. http://en.wikipedia.org/wiki/.NET_Remoting

نصائح أخرى

وعلى افتراض يمكنك استخدام 3.0 .NET أو أكبر ثم ربما كنت ترغب في WCF كقناة الاتصالات - واجهة متناسقة ولكنها تسمح لك باستخدام آلية النقل المناسبة تبعا للمكان العميل والملقم في علاقتها ببعضها البعض - حتى يمكنك اختيار استخدام الصابون أو MSMQ أو تنسيق ثنائي أو من غيرهم حسب مقتضى الحال (ويمكن لفة بنفسك إذا لزم الأمر). كما تغطي الحاجة للاتصال اتجاهين.

وفي قائمة انتظار الرسائل على الخادم ربما ينبغي اعتباره مشكلة منفصلة - لا سيما في ضوء الحاجة إلى إزالة الرسائل في قائمة الانتظار

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

والاتصال عن بعد يقال بطيئة جدا. بناء على أنظمة تشغيل الهدف الذي كنت تخطط لنشر الحل على هل يمكن أن يكون خيارات مثل WCF et.all ومع ذلك النفقات العامة من هذه البروتوكولات هو شيء قد ترغب في النظر في حين اتخاذ قرار.

وMSMQ شأنه أن يجعل بعض المعنى، وإن كانت هناك ثم الاعتبارات الأمنية ونشرها. هل يمكن أن ننظر في حافلة خدمة (مثل الصورة NServiceBus أو MassTransit) وهناك أيضا SQL خادم وسيط الخدمة التي يمكن أن تساعد (ويمكن أن تستخدم أيضا من قبل حافلة الخدمة والنقل).

وWCF سيكون شيء آخر لننظر، ولكن هذا هو حقا النقل عبر شبكة، لذلك ربما كنت لا تزال تريد WCF يدعو إلى وضع رسالة على قائمة الانتظار الخادم.

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

وبرنامج .NET Framework يوفر عدة طرق للتواصل مع الكائنات في مجالات التطبيق المختلفة، تم تصميم كل منها مع مستوى معين من الخبرة والمرونة في الاعتبار. على سبيل المثال، حققت نمو الإنترنت خدمات ويب XML وسيلة جذابة للاتصال، لأن خدمات ويب XML مبنية على البنية التحتية المشتركة للبروتوكول HTTP و SOAP التنسيق، والذي يستخدم XML. هذه هي المعايير العامة، ويمكن استخدامها على الفور مع البنى التحتية ويب الحالية دون الحاجة إلى القلق حول القضايا وكيل أو جدار حماية إضافية.

ينبغي أن تبنى

وليس كل التطبيقات التي تستخدم نوعا من خدمة ويب XML، ومع ذلك، إلا إذا كان بسبب مشكلات في الأداء المتعلقة باستخدام SOAP التسلسل عبر اتصال HTTP.

اختيار خيارات الاتصالات في. NET يساعدك على تحديد أي شكل من أشكال الاتصال interobject تريد للتطبيق الخاص بك.

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