**نموذج كائن المكون عبر النظام الأساسي** ( **XPCOM** ) هو نموذج مكون عبر الأنظمة الأساسية من **موزيلا**. إنه مشابه لنموذج كائن مكون Microsoft (COM) وهندسة وسيط طلب الكائنات المشتركة (CORBA). يتميز بعدة روابط لغة وأوصاف لغة وصف الواجهة (IDL) ؛ وبالتالي يمكن للمبرمجين توصيل وظائفهم المخصصة في الإطار وتوصيله بمكونات أخرى.

إن الاستخدام الأكثر بروزًا لـ XPCOM هو داخل متصفح الويب Firefox. تتفاعل العديد من مكوناته الداخلية عبر واجهات XPCOM. علاوة على ذلك ، استخدم Firefox للسماح بالوصول الواسع النطاق إلى XPCOM للوظائف الإضافية ، ولكن تمت إزالة هذا في عام 2017 واستبداله بواجهة برمجة تطبيقات إضافة المتصفح أقل تساهلاً. ( لا تزال ثلاثة شوكات من Firefox تدعم القدرة الإضافية القديمة: Pale Moon ،  Basilisk ،  واترفوكس. )

الموديل
-------

XPCOM هو أحد الأشياء الرئيسية التي تجعل بيئة تطبيق **موزيلا** إطار عمل حقيقي. إنها بيئة تطوير توفر الميزات التالية لمطور البرامج عبر الأنظمة الأساسية:

* إدارة المكونات
* تجريد الملف
* تمرير رسالة الكائن
* إدارة الذاكرة

يتيح نموذج كائن المكون هذا جميع وظائف Gecko تقريبًا كسلسلة من المكونات ، أو مكتبات متعددة الأنظمة قابلة لإعادة الاستخدام ، والتي يمكن الوصول إليها من متصفح الويب أو كتابتها من أي تطبيق **موزيلا**. تستخدم التطبيقات التي يجب أن تصل إلى مكتبات **موزيلا** XPCOM المتنوعة ( الشبكات ، والأمان ، و نموذج كائن المستند ، وما إلى ذلك) طبقة خاصة من XPCOM تسمى XPConnect ، والتي تعكس واجهات المكتبة في جافا سكريبت ، أو لغات أخرى. يقوم XPConnect بلصق الواجهة الأمامية للمكونات القائمة على لغة البرمجة C ++ أو C في XPCOM ، ويمكن توسيعها لتشمل دعم البرمجة للغات أخرى: تقدم PyXPCOM  بالفعل دعم Python. يوفر PerlConnect و plXPCOM  دعمًا لـ Perl ، وهناك جهود جارية لإضافة البنية الأساسية للغة العامة (CLI) ودعم لغة روبي لـ XPConnect.

بالنسبة للمطورين ، يسمح XPCOM بكتابة المكونات في C ++ أو C أو جافا سكريبت أو بايثون (لغة برمجة) أو غيرها من اللغات التي تم إنشاء ارتباطات خاصة لها ، وتجميع وتشغيل هذه المكونات على عشرات الأنظمة الأساسية المختلفة ، بما في ذلك هذه وغيرها حيث يتم دعم Mozilla.

تسهل المرونة في إعادة استخدام مكونات XPCOM من مكتبة Gecko وتطوير مكونات جديدة تعمل على منصات مختلفة التطوير السريع للتطبيقات والنتائج في تطبيق أكثر إنتاجية وأسهل في الصيانة. مكتبة الشبكات ، على سبيل المثال ، عبارة عن مجموعة من مكونات XPCOM التي يمكن الوصول إليها واستخدامها بواسطة أي تطبيق من تطبيقات **موزيلا**. إدخال / إخراج الملف ، والأمان ، وإدارة كلمات المرور ، وملفات التعريف هي أيضًا مكونات XPCOM منفصلة يمكن للمبرمجين استخدامها في تطوير التطبيقات الخاصة بهم.

XPCOM يضيف الكثير من التعليمات البرمجية ل حشد الأجسام، وفي نتسكيب عصر كان يبالغ XPCOM للواجهات الداخلية حيث أنه ليس من الضروري حقا، مما أدى إلى سخام البرمجيات. كان هذا سببًا رئيسيًا وراء قيام شركة Apple في عام 2001 بتشكيل كيه إتش تي إم إل ، وليس Gecko ، لإنشاء محرك ويب كيت لمتصفح سفاري (متصفح ويب) الخاص بها.

قامت **موزيلا** منذ ذلك الحين بتنظيف بعض من XPCOM bloat. بحلول عام 2008 ، أدى هذا جنبًا إلى جنب مع الجهود الأخرى إلى تحسينات كبيرة في أداء جيكو .

المراجع
-------

1. ↑  Comparison with COM, GObject, SOM, Objective-C, Windows Runtime
2. ↑  Firefox 57 release notes نسخة محفوظة 2021-02-25 على موقع واي باك مشين.
3. ↑  Kev Needham (21 أغسطس 2015). "The Future of Developing Firefox Add-ons". *blog.mozilla.org*. مؤرشف من الأصل في 2021-04-05. اطلع عليه بتاريخ 2018-04-02.
4. ↑  "Pale Moon future roadmap". Pale Moon. مؤرشف من الأصل في 2021-04-01. اطلع عليه بتاريخ 2018-04-02.
5. ↑  "Pale Moon team releases first version of Basilisk browser". *ghacks.net*. 17 نوفمبر 2017. مؤرشف من الأصل في 2021-03-08. اطلع عليه بتاريخ 2018-04-02.
6. ↑  "Waterfox, Its Legacy and Looking to the Future". *Waterfox blog*. 28 أبريل 2018. مؤرشف من الأصل في 2019-04-12. اطلع عليه بتاريخ 2018-06-20.
7. ↑  PyXPCOM نسخة محفوظة 2020-10-20 على موقع واي باك مشين.
8. ↑  Perl XPCOM project نسخة محفوظة 4 ديسمبر 2018 على موقع واي باك مشين.
9. ↑  Jorge O. Castro (15 يونيو 2004). "Ars Technica sits down with Scott Collins from Mozilla.org". Ars Technica. مؤرشف من الأصل في 2021-02-03. اطلع عليه بتاريخ 2017-02-16.
10. ↑  Paul Festa (14 يناير 2003). "Apple snub stings Mozilla". سي نت. مؤرشف من الأصل في 2012-10-25. اطلع عليه بتاريخ 2017-02-16.
11. ↑  "Gecko:DeCOMtamination". مؤرشف من الأصل في 2021-03-29.
12. ↑  Ryan Paul (9 سبتمبر 2008). "Why Mozilla is committed to Gecko as WebKit popularity grows". مؤرشف من الأصل في 2021-01-20. اطلع عليه بتاريخ 2017-02-16.

روابط خارجية
------------

* مرجع واجهة برمجة تطبيقات XPCOM
* الصفحة الرئيسية لمشروع XPCOM
* كتاب قديم قليلاً ولكنه لا يزال مفيدًا يتحدث عن XPCOM
* برنامج تعليمي بسيط لـ XPCOM

* أيقونة بوابةبوابة برمجيات حرة
* أيقونة بوابةبوابة برمجيات