الاتصال عن بعد في .NET

.NET Remoting هي واجهة برمجة تطبيقات (API) من مايكروسوفت للتواصل بين العمليات، أُصدرت عام 2002 مع الإصدار 1.0 من .NET Framework . وهي إحدى تقنيات مايكروسوفت التي بدأت عام 1990 مع الإصدار الأول من تقنية ربط وتضمين الكائنات (OLE) لأنظمة ويندوز 16 بت . وشملت المراحل الوسيطة في تطوير هذه التقنيات: نموذج كائنات المكونات (COM) الذي أُصدر عام 1993 وتم تحديثه عام 1995 ليصبح COM-95، ونموذج كائنات المكونات الموزع (DCOM) الذي أُصدر عام 1997 (وأُعيد تسميته إلى ActiveX )، وCOM+ مع خادم معاملات مايكروسوفت (MTS) الذي أُصدر عام 2000. [ 1 ] وقد حلت محلها الآن مؤسسة اتصالات ويندوز (WCF)، وهي جزء من .NET Framework 3.0 .

على غرار التقنيات المشابهة مثل بنية وسيط طلب الكائنات المشتركة (CORBA) واستدعاء الأساليب عن بُعد في جافا (RMI)، فإن تقنية .NET Remoting معقدة، لكن جوهرها بسيط. فبمساعدة نظام التشغيل ووكلاء الشبكة، يرسل برنامج العميل رسالة إلى برنامج الخادم ويتلقى ردًا. [ 2 ] [ 3 ]

ملخص

تتيح تقنية .NET Remoting للتطبيق إمكانية إتاحة كائن (يُسمى كائنًا قابلًا للوصول عن بُعد ) عبر حدود الاتصال عن بُعد ، والتي تشمل نطاقات تطبيقات مختلفة ، أو عمليات ، أو حتى أجهزة كمبيوتر مختلفة متصلة بشبكة. [ 4 ] يستضيف وقت تشغيل .NET Remoting مستمعًا لطلبات الكائن في نطاق تطبيق الخادم. أما من جانب العميل، فيتم توجيه أي طلبات إلى الكائن القابل للوصول عن بُعد بواسطة وقت تشغيل .NET Remoting عبر Channelكائنات تُغلف نمط النقل الفعلي، بما في ذلك تدفقات TCP وتدفقات HTTP والأنابيب المسماة . ونتيجةً لذلك، من خلال إنشاء كائنات مناسبة ، يمكن جعل تطبيق .NET Remoting يدعم بروتوكولات اتصال مختلفة دون الحاجةChannel إلى إعادة تجميع التطبيق. ويتولى وقت التشغيل نفسه إدارة عملية تسلسل وتنسيق الكائنات عبر نطاقات تطبيقات العميل والخادم. [ 4 ]

تتيح تقنية .NET Remoting مرجعًا لكائن قابل للوصول عن بُعد لتطبيق العميل، الذي يقوم بدوره بإنشاء واستخدام هذا الكائن كما لو كان كائنًا محليًا. [ 4 ] مع ذلك، يتم تنفيذ التعليمات البرمجية الفعلية على جانب الخادم. يُعرَّف الكائن القابل للوصول عن بُعد بواسطة عناوين URL للتنشيط ، ويتم إنشاؤه من خلال الاتصال بهذا العنوان. [ 5 ] يقوم وقت تشغيل Remoting بإنشاء مستمع للكائن عندما يسجل الخادم القناة المستخدمة للاتصال به. على جانب العميل، تُنشئ بنية Remoting كائنًا proxyيعمل كنسخة وهمية من الكائن القابل للوصول عن بُعد. لا يُنفِّذ هذا الكائن وظائف الكائن الأصلي، ولكنه يُقدِّم واجهة مشابهة. لذلك، تحتاج بنية Remoting إلى معرفة الواجهة العامة للكائن القابل للوصول عن بُعد مسبقًا. تُحوّل جميع استدعاءات الدوال المُوجّهة إلى الكائن، بما في ذلك هوية الدالة وأي معلمات مُمرّرة، إلى سلسلة بايتات وتُنقل عبر بروتوكول اتصال مُعتمد Channelإلى كائن وسيط مُستقبِل على جانب الخادم (" مُنسّقة ")، وذلك بالكتابة إلى مُستقبِل نقل القناة. [ 5 ] على جانب الخادم، يقرأ الوسيط السلسلة من المُستقبِل ويُجري الاستدعاء إلى الكائن القابل للاتصال عن بُعد نيابةً عن العميل. تُحوّل النتائج إلى سلسلة وتُنقل عبر المُستقبِل إلى العميل، حيث يقرأ الوسيط النتيجة ويُسلّمها إلى التطبيق المُستدعي. [ 5 ] إذا احتاج الكائن القابل للاتصال عن بُعد إلى إجراء رد نداء إلى كائن عميل لبعض الخدمات، فيجب على تطبيق العميل وضع علامة عليه ككائن قابل للاتصال عن بُعد، وأن يكون لديه بيئة تشغيل للاتصال عن بُعد تُوفّر مُستمعًا له. [ 5 ] يُمكن للخادم الاتصال به عبر قناة مختلفة، أو عبر القناة الموجودة مُسبقًا إذا كان الاتصال الأساسي يدعم الاتصال ثنائي الاتجاه. [ 5 ] يُمكن أن تتكون القناة من عدد من كائنات القناة المختلفة، وربما باستخدام بروتوكولات نقل غير متجانسة مُختلفة. وبالتالي، يمكن للاتصال عن بُعد أن يعمل عبر أنظمة مفصولة بشبكات غير متجانسة، بما في ذلك الإنترنت. [ 5 ] يتم ضمان سلامة النوع بواسطة CTS وبيئة تشغيل .NET Remoting. تكون استدعاءات الأساليب عن بُعد متزامنة بطبيعتها؛ ويمكن تنفيذ الاستدعاءات غير المتزامنة باستخدام مكتبات الخيوط. يمكن تطبيق المصادقة والتحكم في الوصول للعملاء إما باستخدام قنوات مخصصة أو عن طريق استضافة الكائنات القابلة للاتصال عن بُعد في IIS ثم استخدام نظام مصادقة IIS. [ 6 ]

مراجع

  1. خارطة طريق تكنولوجيا البرمجيات (2001). "نموذج كائن المكون والقدرات ذات الصلة" . معهد هندسة البرمجيات بجامعة كارنيجي ميلون. مؤرشف من الأصل بتاريخ 15 مايو 2008.
  2. ماكلين، سكوت؛ نفتيل، جيمس؛ كيم، ويليامز (2002). مايكروسوفت دوت نت ريموتينغ . مطبعة مايكروسوفت. ISBN 9780585476445.
  3. ^ رامر، إنغو؛ سبوشتا، ماريو (2005). المتقدمة .NET البعيد . Apress. رقم ISBN 9781590594179.
  4. 1 2 3 "نظرة عامة على .NET Remoting" . تم الاطلاع عليه بتاريخ 23-10-2007 .
  5. 1 2 3 4 5 6 "بنية الاتصال عن بعد في .NET" . تم الاطلاع عليه بتاريخ 23-10-2007 .
  6. "الأمان" . MSDN . 12 أكتوبر 2006. تم الاسترجاع في 23 أكتوبر 2007 .