Premium الإصدار
قناتا التسليم: ionCube ومصدر موقَّع
نظرة سريعة
قسم بعنوان «نظرة سريعة»يُسلَّم إصدارا NextPDF Pro وEnterprise في صورتين، ويمكنك أن تعدّهما قناتين للمنتج نفسه:
- مُرمَّز بـionCube — شيفرة PHP قابلة للتثبيت مصدرها مُرمَّز، يُشغَّل عبر ionCube Loader وقت التشغيل.
- مصدر نصّي موقَّع — مصدر PHP قابل للقراءة، موقَّع توقيعًا تشفيريًّا حتى يمكنك التحقق من أنه أصلي وغير مُعدَّل.
تَحمل القناتان الرخصة نفسها والحقوق نفسها (تحكمهما معًا اتفاقية NextPDF Commercial License Agreement، والقدرة على الوصول إلى مصدر قابل للقراءة ليست أبدًا إذنًا بنسخه أو إعادة توزيعه). وهما موجودتان لأن صنفين من العملاء أمام مشكلتين مختلفتين يحتاجان إلى حلّهما، ونحن نُسعِّر كل قناة بما يوازي المفاضلة التي تحملها — لا لأن إحداهما أكثر ميزات من الأخرى. تشرح هذه الصفحة هذا المنطق كي تختار وأنت على بيّنة من الأمر. وللاطلاع على الإعداد العملي للإصدار المُرمَّز، راجع إعداد ionCube Loader.
لماذا حماية المصدر مشكلة حقيقية في PHP
قسم بعنوان «لماذا حماية المصدر مشكلة حقيقية في PHP»تُشحَن PHP وتُشغَّل بوصفها مصدرًا. فخلافًا للغات التي تُصرَّف إلى ثنائي مُبهَم أو إلى بايت-كود قبل توزيعها، فإن مصدر حزمة PHP العامل هو الشيء الذي تثبِّته — إذ يقرؤه وقت التشغيل مباشرة. وهذه إحدى نقاط القوة الكبرى في PHP: فهي شفافة، سهلة الفحص، سهلة الترقيع، وجزء كبير من سبب حيوية نظامها البيئي المفتوح المصدر.
وهي أيضًا سبب أن مشروع PHP التجاري يواجه مشكلة حماية أصعب من نظرائه في أماكن أخرى. فالاستثمار الذي يدخل في محرك عميق ومتخصص — سنوات العمل على المعايير، والحالات الحدّية، ومجموعات الاختبار — يقبع في مصدر ينتقل، افتراضيًّا، علنًا. وذلك الاستثمار سرٌّ تجاري: المعرفة العملية التي تموّل استمرار التطوير، وأصلٌ يعترف به القانون ويحميه. وحمايته ليست مسألة اختباء من المستخدمين؛ بل مسألة إبقاء العمل قابلًا للتمويل.
وهذا أيضًا سبب أن حماية المصدر أيسر ببساطة في الأنظمة البيئية التي تشحن آثارًا مُصرَّفة أو بايت-كود — وJava هي المثال الشائع: إذ تكون الصورة الموزَّعة بالفعل خطوة بعيدًا عن المصدر العامل، فيقلّ ما على المورِّد التجاري حراسته. وقد جعل ذلك تمويل أدوات تجارية عميقة ومتخصصة هناك أكثر سلاسة، في حين اعتمد قدر كبير من عمل PHP الجادّ على حُسن نية مجتمع المصدر المفتوح بدلًا من ذلك. ولا نظن أن هذا قانون من قوانين الطبيعة. فـPHP تستحق هي الأخرى أدوات احترافية، مُصانة بفاعلية، بمستوى المعايير — وجعلُ المصدر قابلًا للدفاع عنه هو ما يجعل تمويل ذلك العمل مستدامًا.
نواة مفتوحة، وطبقة مدفوعة مميَّزة
قسم بعنوان «نواة مفتوحة، وطبقة مدفوعة مميَّزة»جواب NextPDF هو نواة مفتوحة مع طبقة مدفوعة مميَّزة. فالمحرك الذي تبني عليه —
nextpdf/core — مُرخَّص بـApache-2.0 ويبقى مفتوحًا؛ يمكنك قراءته وتفريعه
وشحنه تجاريًّا. أما إصدارا NextPDF Pro وEnterprise فهما الإصداران
الخاصان، والإيراد منهما هو ما يدفع ثمن الصيانة الفعّالة، ومطابقة المعايير،
والميزات التالية. وهذا الفصل متعمَّد: فهو يتيح لنا خدمة الفرق التي تحتاج
قدرات احترافية بمستوى B2B وأن نبقى ودودين تجاه المطوِّرين الأفراد، لأننا
بدأنا نحن أنفسنا مطوِّرين مستقلين محبّين للبرمجيات الحرة. والمنطق وراء النصف
المفتوح مغطّى في نواة مفتوحة، بلا حبس؛
وهذه الصفحة عن كيف يصلك النصف المدفوع.
قناة ionCube — حماية تُبقي السعر منخفضًا
قسم بعنوان «قناة ionCube — حماية تُبقي السعر منخفضًا»بالنسبة إلى معظم العملاء، تكون القناة المُرمَّزة بـionCube هي الافتراضية. فترميز المصدر — وهو طريقة معترف بها لرفع كلفة العبث والاستيلاء — يتيح لنا حماية الشيفرة المميَّزة بأعباء أقل بكثير: معالجة مصدر مخصَّصة أقل، وإدارة توزيع ووصول أقل، وعبء قانوني وإنفاذي أخفّ من حراسة المصدر النصّي على نطاق واسع. وهذه الوفورات حقيقية، ونحن نمرّرها إليك.
والمفاضلة هي كلفة وقت تشغيل متواضعة: إذ يفكّ Loader ترميز الملفات المُرمَّزة فيما تعمل PHP، وهو ما يضيف شيئًا من العبء. ونعكس تلك المفاضلة في السعر حتى تقيّمها بأمانة بدلًا من اكتشافها لاحقًا. وفي الممارسة، يكون العبء صغيرًا عادةً وغالبًا مُهمَلًا في عمليات النشر النموذجية — وعمليًّا غير ذي بال على مضيف يشغّل أصلًا ionCube Loader لبرمجيات أخرى. وينبغي لأحمال العمل الحسّاسة للأداء أن تقيسه على بياناتها الخاصة؛ أما الغالبية العظمى من عمليات النشر فالقناة المُرمَّزة فيها هي ببساطة الخيار الأقل كلفة، وهو تطابق العرض والطلب الذي نريده لها. وإعداد Loader خطوة لمرة واحدة، موثَّقة في إعداد ionCube Loader.
قناة المصدر الموقَّع — للتنظيم والتدقيق وتوكيد سلسلة التوريد
قسم بعنوان «قناة المصدر الموقَّع — للتنظيم والتدقيق وتوكيد سلسلة التوريد»بعض العملاء لا يمكنهم قبول شيفرة مُرمَّزة في وقت تشغيلهم. فالمؤسسات الخاضعة لتنظيم قوي، أو ذات متطلبات صارمة لأمن سلسلة التوريد والتدقيق، تحتاج إلى قراءة ما تشغِّله ومراجعته والتحقق منه — ولديها عادةً الميزانية التي تقتضيها تلك المتطلبات. ولهم نقدّم قناة المصدر النصّي الموقَّع: الإصدارات نفسها مُسلَّمة بوصفها مصدرًا قابلًا للقراءة، موقَّعًا توقيعًا تشفيريًّا كي يُتحقَّق من منشئه وسلامته.
ويتطابق ذلك مباشرةً مع الطريقة التي يتوقع بها أمن سلسلة التوريد الحديث أن تُعالَج البرمجيات: مصدر مُسلَّم في حزمة موقَّعة رقميًّا، وتوقيعات مُتحقَّق منها قبل الاستخدام، ومصدر قابل للمراجعة مُفضَّل على أثرٍ مُبهَم للتوكيد والتدقيق (NIST SP 800-204D). وهنا لا تكون الشيفرة محميةً بالترميز — بل محميةً بالقانون والعقد: إذ تبقى سرًّا تجاريًّا سرّيًّا تملكه PATEON، الشركة وراء NextPDF، وما يجوز وما لا يجوز لك فعله بها محدَّد باتفاقية NextPDF Commercial License Agreement. والقدرة على قراءة المصدر ليست أبدًا إذنًا بنسخه أو إعادة توزيعه أو إعادة ترخيصه.
وتكلّف هذه القناة أكثر، والسبب عكس سبب قناة ionCube: فهي تزيل عبء وقت التشغيل، لكنها تنقل عبء الحماية مرة أخرى إلى العقد والثقة والإدارة — وهي الكلفة التي نحملها كي يستطيع العملاء المقيَّدون بالامتثال الوفاء بالتزاماتهم.
الاتصال وإنفاذ الترخيص
قسم بعنوان «الاتصال وإنفاذ الترخيص»تختلف القناتان أيضًا في كيف يُفحَص الترخيص فيما يعمل تطبيقك، وبالنسبة إلى عمليات النشر غير المتصلة أو المعزولة عن الشبكة (air-gapped) يكون هذا عادةً هو العامل الحاسم.
تتحقق قناة ionCube من ترخيصها دوريًّا عبر الإنترنت. فالإصدار المدفوع المُسلَّم عبر القناة المُرمَّزة يتصل بخدمة ترخيص NextPDF على وتيرة منتظمة — تقريبًا فحصٌ كل ٧ أيام يُجدِّد إجارةً مدتها نحو ١٤ يومًا. وما دام النشر قادرًا على الوصول إلى الخدمة ضمن تلك النافذة، يجري كل شيء على نحو طبيعي. أما إن بقي غير متصل بعد انقضاء الإجارة، فإن الميزات المدفوعة تتوقف مؤقتًا ويرتدّ المحرك إلى النواة (Core) المجانية — دون أن يتوقف أو يُخطئ أو يتعطّل — وتستأنف تلقائيًّا بمجرد عودة الاتصال. وتلك الإجارة عبر الإنترنت هي أيضًا ما يجعل عدد المقاعد المرخَّص قابلًا للإنفاذ، وما يتيح لسحب الترخيص أن يسري ضمن نافذة الإجارة (نحو ١٤ يومًا، إضافةً إلى مهلة يسيرة). ولا يرسل الفحص سوى مُعرِّف ترخيص وبصمة مُجزَّأة بملح تشفيري (salted fingerprint hash) — لا محتوى مستنداتك أبدًا، ولا بصمة خامّة أو عنوان IP.
يمكن لقناة المصدر الموقَّع أن تعمل غير متصلة تمامًا. فلأن ترخيصها الموقَّع أثرٌ قائم بذاته يتحقق منه المحرك محليًّا، لا تحتاج قناة المصدر الموقَّع إلى أي اتصال دوري وتناسب عمليات النشر المعزولة عن الشبكة (air-gapped)، محدودةً فقط بصلاحية الترخيص نفسه. وهنا يكون عدد المقاعد حدًّا تعاقديًّا تحدّده اتفاقيتك لا شيئًا مُنفَذًا وقت التشغيل، ويسري سحب الترخيص عند الفحص المتصل التالي أو عبر تحديث للمنتج، ولا يرسل النشر غير المتصل تمامًا أي شيء على الإطلاق.
ساعتان منفصلتان — لا تخلط بينهما. إجارة قناة ionCube التي تناهز ١٤ يومًا تتعلق بـالاتصال — كم من الوقت يحتمل النشر أن يبقى غير متصل. وهي مستقلة عن مهلة نحو ٣٠ يومًا التي تمنحها أيٌّ من القناتين بعد تاريخ انتهاء الاشتراك، وتظل الميزات المدفوعة تعمل خلالها فيما تُجدِّد قبل أن يرتدّ المحرك إلى النواة (Core). فانقضاء الإجارة وانتهاء الاشتراك حدثان مختلفان على مؤقّتين مختلفين.
وأيًّا كانت القناة التي تشغّلها، فوضع الإخفاق واحد ودومًا آمن: يتنازل NextPDF إلى النواة (Core) المجانية المفتوحة المصدر. فهو لا يتعطّل نهائيًّا أبدًا، ولا يحبسك عن برنامج نشرته بالفعل، ولا يتوقف في منتصف التشغيل أبدًا.
الحقوق نفسها، والاختيار لك
قسم بعنوان «الحقوق نفسها، والاختيار لك»القناتان ليستا منتجين. فهما تمنحان حقوق ترخيص متطابقة والبرنامج نفسه؛ والفرق هو كيف يُحمى المصدر، وكيف يُفحَص الترخيص وقت التشغيل، وما كلفة ذلك:
| مُرمَّز بـionCube | مصدر نصّي موقَّع | |
|---|---|---|
| ما الذي تشغّله | PHP مُرمَّزة، عبر ionCube Loader | مصدر PHP موقَّع وقابل للقراءة |
| كيف يُحمى المصدر | الترميز (تدبير تقني) إضافةً إلى الرخصة | الرخصة وقانون السرّ التجاري (بلا ترميز) |
| الأنسب لـ | معظم عمليات النشر؛ أقل كلفة | احتياجات التنظيم / التدقيق / أمن سلسلة التوريد |
| كلفة وقت التشغيل | عبء Loader صغير (مُهمَل غالبًا؛ قِس إن كنت حسّاسًا للأداء) | لا شيء نضيفه نحن |
| الفحص المتصل للترخيص | دوري (فحص كل ٧ أيام تقريبًا، إجارة نحو ١٤ يومًا) | اختياري؛ يتحقق محليًّا ويعمل غير متصل |
| غير متصل / معزول عن الشبكة (air-gapped) | حتى نافذة الإجارة، ثم تتوقف الميزات المدفوعة مؤقتًا إلى النواة (Core) (استئناف تلقائي عند إعادة الاتصال) | مدعوم بالكامل؛ لا اتصال دوري |
| عدد المقاعد | مُنفَذ عبر الإجارة المتصلة | تعاقدي (وفق اتفاقيتك)؛ غير مُنفَذ وقت التشغيل |
| متى يسري سحب الترخيص | ضمن نافذة الإجارة (نحو ١٤ يومًا + مهلة يسيرة) | عند الفحص المتصل التالي، أو عبر تحديث للمنتج |
| بيانات الترخيص المُرسَلة | مُعرِّف الترخيص + بصمة مُجزَّأة بملح تشفيري فقط (لا محتوى ولا IP ولا بصمة خامّة أبدًا) | لا شيء عند العمل غير المتصل تمامًا |
| الحقوق | متطابقة — راجع EULA | متطابقة — راجع EULA |
يعكس التسعير مفاضلة الحماية مقابل وقت التشغيل تلك، لا فجوة ميزات. وللاطلاع على الأسعار والإصدارات الحالية، راجع الشراء والترخيص وصفحة التسعير المرتبطة من هناك؛ وصفحة الوثائق هذه تتعمّد ألّا تكرّر الأسعار أو شروط الترخيص.
لماذا نفعل ذلك بهذه الطريقة
قسم بعنوان «لماذا نفعل ذلك بهذه الطريقة»نفضّل أن يكون لدى نظام PHP البيئي أدوات أكثر جدّية، وحسنة التمويل، ومُصانة باحترافية — ومشاريع أقل تنطفئ بهدوء لأنه لم يكن ثمة سبيل مستدام لتمويل العمق الذي احتاجته. وحماية المصدر هي ما يتيح لنا الاستثمار في ذلك العمق مع إبقاء النواة مفتوحة والقناة المُرمَّزة في المتناول. ولأن الثقة تُكتسَب، نحاول أن نكون شفافين بشأن هذا بالضبط: ما الذي تحميه كل قناة، وما تكلّفك، ولماذا — فتكون المفاضلة لك أنت تزنها، لا لنا نحن نخفيها.