نظام دمج ميزات الاتصالات في الوقت الفعلي في التطبيقات Integrating Real Time Communication Features in Applications

اقرأ في هذا المقال


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

أساسيات نظام دمج ميزات الاتصالات في الوقت الفعلي في التطبيقات

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

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

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

يمكّن (WebRTC) تطبيقات المستعرض إلى المستعرض للمكالمات الصوتية ودردشة الفيديو ومشاركة ملفات (P2P) بدون مكونات إضافية، كما يمكن دمج أداة (RTC) في العديد من الأنظمة الأساسية الشائعة، وتتوفر أداة (RTC) كجافا سكريبت لتطبيقات الويب ويمكن أن يستخدم هذا (WebRTC) الأصلي للمتصفحات التي تدعمها.

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

  • “WebRTC” هي اختصار لـ “Web-Real-Time-Communication”.
  • “RTC” هي اختصار لـ “Real-Time-Communication”.
  • “SDK” هي اختصار لـ “Software-Development-Kit”.
  • “P2P” هي اختصار لـ “peer-to-peer”.

مبدأ عمل نظام دمج ميزات الاتصالات في الوقت الفعلي في التطبيقات

تشتمل مكونات جانب الخادم على جهاز خادم دفق به خادم دفق آخر يوفر وظيفة التدفق الأساسية لأداة (RTC)، كما توفر المكونات الأخرى بما في ذلك تطبيق الأمر والتحكم (CnC) وعامل البث إطار عمل دعم لوظيفة التدفق الأساسية، وتتضمن أداة (RTC) أيضاً محركات قواعد البيانات مثل (MySQL) و(Redis) و(Cassandra).

خادم البث والمشار إليه باسم “المتدفق” هو المكون الأساسي للبنية التحتية للتعاون (RTC) ويؤدي جهاز البث دور وحدة تحكم ذكية متعددة النقاط (MCU) تقدم خدمات، بما في ذلك ترحيل تدفقات الوسائط ومراقبة الجودة وإرسال الإشارات، وكما أنّ جهاز البث عبارة عن مرحل حزمة ذكي بشكل فعال وينقل الحزم بين الأقران المتصلين بنفس غرفة اجتماعات الفيديو الافتراضية، ويشار إليها باسم “نطاق الوسائط” أو “النطاق” أو “الجلسة”.

يمكن أن تكون هناك حالتا استخدام لهذه الوظيفة كالمؤتمرات متعددة الأطراف واجتياز ترجمة عنوان الشبكة (NAT)، وعندما يكون هناك أكثر من مشاركين في الجلسة يتم نقل البيانات للتأكد من أنّ العميل يرسل البيانات مرة واحدة فقط، بحيث يسمح هذا لأداة (RTC) باستخدام طوبولوجيا جلسة الوسائط الأكثر كفاءة كالهيكل النجمي.

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

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

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

  • “NAT” هي اختصار لـ “Network-address-translation” و”RTCP” هي اختصار لـ “Real-time-Transport-Control-Protocol”.
  • “RR” هي اختصار لـ “Receiver-Report” و”MCU” هي اختصار لـ “multipoint-control-unit”.
  • “CnC” هي اختصار لـ “Command-and-control-application” و”RFC” هي اختصار لـ “Remote-Function-Call”.

تطور عمل نظام دمج ميزات الاتصالات في الوقت الفعلي في التطبيقات

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

يتفاعل جهاز البث مع مجموعات (SDK) الخاصة بالعميل ووكيل جهاز البث، كما يتم إجراء اتصال متدفق (SDK) للعميل عن طريق بروتوكولات الإشارات وتدفق الوسائط، ويستخدم جهاز البث مثيلاً محلياً لخادم قاعدة بيانات (Redis) لتمرير أحداث غير متزامنة مع إحصائيات الاستخدام والجودة.

تُعد خدمة جانب العميل (RTC) والمشار إليها باسم عميل (RTC) كعميل (RTC) أحد المكونات الأساسية من جانب العميل، كما يمكن أن يكون عميل (RTC) مسؤولاً عن ميزات (RTC) خاصةً في حالة عدم توفر تطبيق (WebRTC) الأصلي، وعلى سبيل المثال في مجموعات (SDK) للجوال ومجموعات (SDK) لسطح المكتب والمتصفحات بدون الدعم الأصلي لـ (WebRTC) عبر (RTC Plug-in).

كما أنّ عميل (RTC) يمكن أن تحتوي على وحدات لجوانب مؤتمرات الفيديو مثل إدارة أجهزة التقاط الفيديو وتشفير الفيديو ومراقبة الجودة والشبكات ومنطق الأعمال ومحرك صوتي مبني على (libWebRTC)، حيث تتكون واجهة برمجة التطبيقات المنشورة بواسطة عميل (RTC) من عدد قليل من الوظائف، والتي تستخدم قيماً أولية كأعداد صحيحة، وسلاسل C ومؤشرات إلى هياكل خاصة بالمنصة لتقديمها وعلى سبيل المثال (HWND) أي مقبض للنافذة في (Microsoft Windows).

تتوفر وظيفة الخدمة عبر دالة استدعاء والتي تأخذ كمعامل إدخال طلب استدعاء متسلسلاً كسلسلة وداخلياً يتم تحليل الطلب وتفويضه إلى وظيفة داخلية مناسبة، كما يتم تنفيذ معالجة الطلبات باستخدام أنماط تصميم مفاعل معروفة، حيث يتم وضع جميع الطلبات في قائمة انتظار بواسطة مؤشر ترابط الاستدعاء ومعالجتها بواسطة مؤشر ترابط خدمة واحد، كما يمكن أن يسمح هذا الأسلوب بإجراء مكالمات من مؤشر ترابط واجهة مستخدم التطبيق (UI)، ويقلل من إمكانية حدوث مشكلات التزامن داخل تطبيق (RTC client).

  • “UI” هي اختصار لـ “User-Interface”.

شارك المقالة: