انتقل إلى المحتوى
LICENTIVO / INTEGRATION

إدارة استخدام البرامج المتزامنة مع التراخيص العائمة

تعد المقاعد العائمة الأجهزة ذات عقود الإيجار الصالحة. تشترك جلسات الجهاز نفسه في مقعد واحد، ويُستخدم معرّف الجهاز عند غياب هوية العتاد.

سير عمل الجلسة · جميع حزم SDK التسعةتم التحديث

1. قم بتعيين حد للمقاعد المتزامنة

تعد المقاعد العائمة الأجهزة ذات عقود الإيجار الصالحة. تشترك جلسات الجهاز نفسه في مقعد واحد، ويُستخدم معرّف الجهاز عند غياب هوية العتاد.

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

حد مقاعد الترخيص وحصة أجهزة مساحة العمل حدان منفصلان. تستهلك التراخيص العادية والعائمة حصة المساحة لعمليات التفعيل الصالحة حاليًا.

تُحسب حصة الأجهزة من التفعيلات الحالية وتعود عند التحرير. تبقى التراخيص العادية محسوبة دون اتصال، وتعيد التراخيص العائمة الحصة تلقائيًا أيضًا عند انتهاء الإيجار.

حتى عند التبديل بين 10 أجهزة، حرّر الجهاز المستبدل أولًا وأبقِ 3 عمليات تفعيل صالحة كحد أقصى؛ عندها لا تُستهلك أكثر من 3 وحدات من حصة الأجهزة.

2. الحصول على مقعد عند بدء التشغيل

انسخ معرّف المنتج من لوحة التحكم > المنتجات. افتح مفاتيح التوقيع العامة للمنتج نفسه والصق جميع أزواج معرّف المفتاح والمفتاح العام في كود التهيئة بدلاً من YOUR_PRODUCT_ID وYOUR_KEY_ID وYOUR_PUBLIC_KEY. يمكن للتكامل السريع توليد هذا الكود. لا يلزم ملف إعداد للمنتج؛ يتصل SDK افتراضياً بـ https://www.licentivo.com.

ينتمي جزء Go التالي إلى وظيفة تطبيق تُرجع الخطأ. فهو يحتاج إلى استيراد السياق ونظام التشغيل ونظام التشغيل/الإشارة والسجل. إن ExportReport هو رد اتصال عملك الحالي؛ يأتي customerKey من نموذج التنشيط.

Go · application lifecycle
ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt)
defer stop()

client, err := licentivo.OpenProduct(ctx, productID, trustedKeys, customerKey,
    func(err error) { log.Printf("License refresh: %v", err) })
if err != nil {
    return err // Show an activation error; do not start protected work.
}
defer client.Close() // Attempts to return a floating seat.

// Place this check inside each protected action, not only at startup.
if err := client.RunFeature("export", exportReport); err != nil {
    return err
}
<-ctx.Done()

3. دع SDK يقوم بجدولة نبضات القلب

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

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

يتم التعامل مع عقد الإيجار منتهي الصلاحية أو الترخيص الملغي أو رفض المقعد من خلال قواعد التفويض الموقعة. تتطلب إعادة الاتصال فحصًا ناجحًا للخادم. لا تقم أبدًا بتمديد الجلسة عن طريق تحرير بيانات انتهاء الصلاحية المحلية.

4. حرر عند الخروج العادي

أغلق العميل عند الخروج الطبيعي. تستخدم Go العبارة defer client.Close()؛ وتحرّر Java وC# الموارد عند انتهاء النطاق، وتستخدم C++ وRust دوال التدمير، وتستخدم Python مدير السياق، وتوفّر Ruby وJavaScript الدالة close.

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

تُحسب التراخيص العائمة حسب عقود الإيجار الصالحة. لا يعيد انقطاع الاتصال أو التعطل الحصة فورًا؛ يجب تحرير الجلسة الأخيرة أو انتهاء عقدها.

5. اختبار مع جهازين منفصلين

  1. ضبط رخصة الاختبار على مقعد عائم واحد. ابدأ التطبيق على جهاز الكمبيوتر أ.
  2. ابدأ على الكمبيوتر B: يجب رفض الجلسة المحمية الثانية بينما يحمل A المقعد.
  3. قم بالخروج من A بشكل طبيعي، ثم تأكد من أن B يمكنه الحصول على مقعد.
  4. في بيئة الاختبار المعزولة، توقف عن A بدون تنظيف؛ تحقق من عودة المقعد بعد انتهاء صلاحية عقد الإيجار المكوّن.

استكشاف أخطاء تعارضات المقاعد وإصلاحها

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

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

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