سؤال

لدي مشروع قابل للتشغيل في طريقي: الأجهزة التي تحتوي على نظامها الخاص مكتوب في C، وطلب Windows لإدارة الأغراض (إرسال التكوين، واسترجها البيانات المسجلة من الأجهزة، ومراقبة حالة الجهاز). لدي مرونة في اختيار التكنولوجيا التي أستخدمها. المتطلبات غامضة جدا الآن حتى يجب أن تكون مرنة. بروتوكول الاتصال الأساسي هو TCP. قد نستخدم موانئ COM كخيار صيانة، عندما يفشل التواصل العادي بسبب بعض عطل الشبكة على سبيل المثال.

أنا أفكر في استخدام خدمة WCF ك "وكيل" بين التطبيق والأجهزة. يقوم التطبيق بإرسال البيانات إلى الخدمة، وتعالج الخدمة البيانات وإرسال حزم TCP للأجهزة (البيانات الموجودة في الحزم مفهومة بالأجهزة)، وتتفاعل الأجهزة إرسال حزم TCP مرة أخرى إلى خدمة WCF التي ترسل بدورها رسالة معالجتها إلى التطبيق. هل يستخدم هذا الاستخدام من WCF أي معنى؟

يمكن بسهولة الوصول إلى WCF من WebApp، لذلك إلى جانب تطبيق Windows العادي، يمكننا أن نجعل نظامنا أكثر جنسيا معها ولكن هل يستحق كل هذا العناء؟ ما رأيك، شارك أفكارك، من فضلك :)

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

المحلول

كما أفهمها، فأنت تفكر في بنية أنظمة مع ثلاثة عناصر. تطبيق Windows، مجموعة من الأجهزة، ثم خدمة إضافية من شأنها أن تعمل كوكيل أو تنتقل، التواصل السمسرة بين الاثنين.

السؤال الأول: هل هناك سبب لا يمكن لطلب الإدارة الاتصال بالأجهزة نفسها؟ يجب أن تكون تطبيق Windows المستخدمة للإدارة قادرا على فتح مأخذ توصيل للأجهزة، بنفس السهولة مثل تطبيق آخر يمكنه. لماذا لا أعتقد طريقة أخرى لسؤال هذا، ما هو التبرير لإدخال الوسيط، العنصر الثالث، في الهندسة المعمارية؟ هل هناك بعض Asynchrony تريد أن تقدم؟ هل هو مسألة الحجم - ربما عدد الأجهزة كبيرة جدا ترغب في تطبيق منفصل لإدارة الاتصالات لجميعهم، بدلا من الاتصال مباشرة من التطبيق مع UI. هل هي مسألة طوبولوجيا الشبكة؟ قبل النظر في التكنولوجيا التي يجب استخدامها في الوسيط، تقرر أولا ما هو مقنع لك بتضمين وسيط في الهندسة المعمارية.

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

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

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