انتقل إلى المحتوى الرئيسي

OmniSCP

OmniSCP هو وكيل اتصالات الخدمة (SCP) الخاص بـ Omnitouch 5G Core. يجلس بين مستهلكي NF ومنتجي NF في بنية الخدمة المعتمدة على 5G (SBA) ويوفر الاتصالات غير المباشرة (نماذج 3GPP TS 23.501 C و D): يقوم المستهلكون بإرسال طلباتهم إلى واجهة الخدمة المعتمدة (SBI) إلى SCP، الذي يقوم بإجراء اكتشاف قائم على NRF، وتوازن الحمل عبر مثيلات المنتج المكتشفة، وإعادة المحاولة للطلبات الفاشلة، ويفرض مهلة على الطلبات، ثم يعيد استجابة المنتج إلى المستهلك.

يسجل SCP نفسه مع NRF كـ NF من النوع SCP ويحافظ على هذا التسجيل من خلال نبضات قلب دورية.

الوثائق

  • العمليات: دور 3GPP، الواجهات/النقاط النهائية، أوضاع التوجيه/الاكتشاف، والإجراءات الرئيسية مع مخططات تسلسل.
  • التكوين: كل معلمة قابلة للتعديل في وقت التشغيل، واجهة إدارة/OAM، والتسجيل.
  • المقاييس: مقاييس Prometheus ومثال على PromQL.
  • استكشاف الأخطاء: الأخطاء الشائعة والحلول.

نظرة عامة على المعمارية

نظرة عامة على الميزات

  • الاتصالات غير المباشرة (النماذج C و D): اكتشاف NRF مفوض نيابة عن المستهلكين، بالإضافة إلى التوجيه المباشر عندما يعرف المستهلك الهدف بالفعل.
  • وكيل عكسي شا��ل: يتم توجيه كل مسار SBI باستثناء رد الاتصال بإخطار حالة NRF بشكل شفاف إلى منتج تم حله.
  • تخزين مؤقت للاكتشاف: ذاكرة تخزين مؤقت مدعومة بـ ETS لنتائج اكتشاف NRF مع TTL قابل للتكوين. تقوم إشعارات حالة NRF بإخراج المثيل المتأثر فقط (العودة إلى نوع NF واحد عندما لا يكون هناك معرف مثيل موجود)، وليس الذاكرة المؤقتة بأكملها.
  • توازن الحمل: اختيار جولة، وزني (السعة/الحمل)، أو أولوية عبر مثيلات المنتج المكتشفة.
  • تحكم في الحمل (OCI): يقرأ معلومات التحكم في الحمل من المنتج من الردود ويقوم بإخراج المنتجات المحملة من مجموعة المرشحين قبل اختيار موازن الحمل (TS 29.500 §6.3).
  • تتابع التحكم في الحمل (LCI): ينقل رؤوس استجابة المنتج 3gpp-Sbi-Lci و 3gpp-Sbi-Load من النهاية إلى النهاية بحيث يتلقى المستهلكون تلميحات عن حمل المنتج من خلال SCP (TS 29.500 §6.3).
  • تتبع صحة الفشل التلقائي: يتم وضع علامة على المثيلات غير الصحية بعد الفشل المتتالي وتتعافى تلقائيًا بعد فترة تبريد.
  • تصريف إداري: يمكن للمشغلين إخراج منتج من الدوران عبر واجهة OAM دون إلغاء تسجيله من NRF.
  • إعادة المحاولة مع مهلة منبع: يتم إعادة المحاولة للطلبات الفاشلة 5xx وفشل الاتصال/المهلة ضد مثيلات أخرى حتى حد قابل للتكوين.
  • تسجيل ذاتي لـ NRF: يسجل كـ NF من نوع SCP وينبض للبقاء على قيد الحياة؛ يفرض إعادة التسجيل عند الطلب.
  • مقاييس Prometheus + التحكم المباشر في OAM: مقاييس الوكيل، والذاكرة المؤقتة، والتسجيل، بالإضافة إلى إعادة التكوين في وقت التشغيل عبر HTTPS.

بدء سريع

يقرأ OmniSCP تكوينه في وقت التشغيل من config/runtime.exs، كل مفتاح مدعوم بواسطة متغير بيئي. الإعدادات الأساسية هي مستمع SBI، وموقع NRF، وPLMN:

import Config

config :omniscp,
sbi_scheme: System.get_env("SBI_SCHEME", "http"),
sbi_addr: System.get_env("SBI_ADDR", "127.0.0.17"),
sbi_port: String.to_integer(System.get_env("SBI_PORT", "7777")),
nrf_uri: System.get_env("NRF_URI", "http://127.0.0.1:7777"),
mcc: System.get_env("MCC", "999"),
mnc: System.get_env("MNC", "70")

تشير مستهلكات NF إلى حركة SBI الخاصة بها إلى sbi_addr:sbi_port بدلاً من الإشارة مباشرة إلى المنتجات. تم توثيق مجموعة المعلمات الكاملة (TTL للذاكرة المؤقتة، استراتيجية توازن الحمل، ضبط إعادة المحاولة والمهلة، والسعة/الأولوية القابلة للتعديل عبر OAM) في التكوين.