تحالف أو إس جي أي (OSGi Alliance) هو منظمة تعنى بتطوير المعايير المفتوحة انشئت في مارس عام 1999.[3][4][5] وقد قام هذا التحالف بالاشتراك مع اعضائه بعمل مواصفات لبناء وتطوير برامج بلغة الجافا سميت بمواصفات ال-أو إس جي أي، تعتمد على مبدأ أن كل برنامج هو مزيج من خدمات تتفاعل مع بعضها من خلال واجهات برمجية (واجهة برمجة التطبيقات). جوهر هذه المواصفات هو هيكل (Framework) يعرف الآتي:
- نموذج لإدارة دورة حياة البرنامج.
- سجل للخدمات المستخدمة خلال عمل البرنامج.
- بيئة البرنامج التنفيذية.
- وحدات برمجية مساعدة.
نوع | |
---|---|
المنصة | |
موقع الويب |
(الإنجليزية) www.osgi.org |
المطورون |
تحالف ال-أو إس جي أي |
---|---|
لغة البرمجة | |
الإصدار الأول | |
الإصدار الأخير |
4.2 |
الرخصة |
المنظمة
أنشئ تحالف ال-أو إس جي أي في مارس عام 1999 من قبل مجموعة من الشركات من ضمنها إريكسون، آي بي إم، موتورولا، وصن ميكروسيستمز ،وقد كان يسمى هذا التحالف في بادئ الأمر تحالف التجمع (Connected Alliance)، قبل أن يصبح منظمة غير ربحية.
حتى مايو 2007، انضم أكثر من 35 شركة من قطاعات عمل مختلفة لهذا التحالف.
الهيكل التنظيمي يمكن تلخيصه كالآتي:
- مجلس الإدارة: مهمته الضبط والإدارة.
- ضباط (Officers): مهماتهم تشمل مساعدة مجلس الإدارة وتقديم الدعم لتحالف.
- مجموعات متخصصة (EG): مهماتها تنحصر بالأعمال التقنية كتطوير المواصفات، تطوير التطبيقات، وفحصها.
- مجموعات ولجان عمل: مهماتها تنحصر بالأعمال غير التقنية.
نهج التطوير
يقوم أعضاء تحالف ال-أو إس جي أي بتطوير المواصفات على منهج مفتوح (Open Process)، من ثم نشرها للعامة مجاناً تحت رخصة مواصفات ال-أو إس جي أي، وعند النشر، يستطيع أي طرف آخر أن يقوم بعمل تطبيق (Implementation) لهذه المواصفات.
حتى سبتمبر 2008، صودق على خمسة تطبيقات من قبل التحالف.
التصميم
تنص المواصفات على أن أي تطبيق (Implementation) لها يجب أن يحتوي على هيكل (Framework) قابل للوصل، بمعنى أنه يمكن إضافة أو حذف وحدات برمجية منه بطريقة ديناميكية.
يطلق على كل وحدة برمجية في هيكل ال-أو إس جي أي اسم رزمة (بالإنجليزية: Bundle).
يمكن أن تكون الرزمة فعالة أو مكتبية أو كلاهما. حيث أن الرزمة الفعالة تعمل في خيط (حاسوب) (Thread) مخصص لها لتنفيذ المهمة التي برمجت من أجلها. أما الرزمة المكتبية فهي توفر واجهات برمجية للرزم الأخرى.
ولتحقيق الاتصال والتفاعل بين الرزم الفعالة، تستطيع أي رزمة تسجيل خدمة خلال وقت عمل البرنامج (Runtime)، من خلالها، تستطيع الرزم الأخرى التفاعل معها.
من خلال المفاهيم السابقة يمكن تقسيم مواصفات هيكل ال-أو إس جي أي إلى الطبقات التالية:
- الرزم (Bundles)
هذه الطبقة تحتوي على وحدات برمجية (الرزم)، التي من خلال تفاعلها مع بعضها، تؤدي الدور المطلوب من البرنامج المبني على هيكل ال-أو إس جي أي. تخزن محتويات كل رزمة في ملف من نوع JAR.
- الخدمات (Services)
تقوم هذه الطبقة بوصل الرزم بطريقة ديناميكية من خلال نموذج (سجل-ابحث-إربط). بمعنى أن الرزمة قادرة على تسجيل خدمة معينة، وأن رزمة أخرى قادرة على البحث عن تلك الخدمة واستخدامها (ربط).
- مسجل الخدمات (Services Registry)
هو عبارة عن واجهة برمجية لإدارة الخدمات المسجلة.
- دورة حياة الرزمة (Life-Cycle)
هي عبارة عن واجهة برمجية للتحكم بدورة حياة الرزم (تنصيب، تشغيل، توقيف، تحديث، وإزالة).
- الوحدات (Modules)
هي الطبقة المسؤولة عن تعريف مكونات الرزمة وماهية اعتماديتها على الرزم الأخرى.
- الآمنية (Security)
هي الطبقة المسؤولة عن تعريف صلاحيات الرزم.
- البيئة التنفيذية (Execution Environment)
هي الطبقة المسؤولة عن تحديد الدوال (Methods) والأصناف (Classes) المتاحة ضمن نظام التشغيل.
مراجع
- https://www.osgi.org/developer/specifications/
- https://osgi.org/download/r1/r1.osgi-spec.pdf
- "OSGi Alliance | Specifications / HomePage". osgi.org. 2015. مؤرشف من الأصل في 22 أكتوبر 201530 يونيو 2016.
- OSGi Specification License - تصفح: نسخة محفوظة 14 سبتمبر 2015 على موقع واي باك مشين.
- "Adempiere Branch_GlobalQSS_361". http://www.adempiere.com/. مؤرشف من الأصل في 23 أكتوبر 201827 سبتمبر 2014.