متعدد المنصات (Multi-Platform أو Cross-Platform) هو مصطلح يستخدم في علم الحوسبة يشير إلى برامج الحاسوب أو أنظمة التشغيل أو لغات الكمبيوتر أو لغات البرمجة وتطبيقاتها التي بإمكانها العمل على عدة منصات حاسوبية.[1][2][3] هناك نوعان رئيسيان من البرمجيات متعددة المنصات، الأول يستلزم بناءه لكل منصة بإمكانه العمل عليها (مثل برنامج مكتوب بلغة مترجمة مثل سي) ، والثاني بإمكانه العمل مباشرة على أي منصة تدعمه (مثل البرمجيات المكتوبة بلغات مفسرة مثل بيرل أو بايثون أو الجافا).
كمثال، التطبيقات متعددة المنصات بإمكانها العمل على مايكروسوفت ويندوز على معمارية x86 وعلى لينكس على معمارية x86 وعلى ماك أو إس عشرة على أنظمة ماكنتوش المبنية على أي من معماريتي باور بي سي أو x86. التطبيقات متعددة المنصات من الممكن أن تعمل على عدد كبير من المنصات مثل جميع المنصات المتاحة أو على بعض المنصات مثل منصتين فقط.
منصات
المصطلح "منصة" قد يشير إلى نوع من المعالجات أو\و كيانات مادية اخرى التي تشتغل عليها نظم التشغيل أو التطبيقات، أو قد يعنى بالمنصة نظام التشغيل على الحاسوب أو على اي كيان مادي أخر له نفس نظام التشغيل . من امثلة المنصات المشهورة منصة مايكروسوفت ويندوز التي تعمل على معمارية X86. أيضا منصة لينوكس\يونيكس و ماك او إس , كل منهم يعتبر متعدد المنصات . جميع التطبيقات التي يتم تطويرها، تعتمد اثناء تطويرها على المنصة التي سوف تعمل عليها و التي تعتمد على لغة البرمجة التي سوف تكتب بها و نظام التشغيل التي سوف تعمل عليه، لذلك بعض اللغات توفر إمكانية العمل على عدة نظم تشغيل و منصات حاسوبية، من امثلتها لغة الجافا التي تعتبر كمنصة وسيطة بين نظام التشغيل و الكيان المادي و بين البرنامج المكتوب بلغة الجافا تعرف هذه المنصة بالألة الإفتراضية.
منصات الأجهزة
منصات الأجهزة تشير إلى معمارية ما للحاسوب أو المعالج مثل معمارية x86 و x64 , مثل هذه المعمارية يمكن يشتغل عليها أكثر من نظام تشغيل مثل انظمة مايكروسوفت ويندوز , جنو/لينكس, أوبن بي إس دي, نت بي إس دي, أو إس 10 و فري بي إس دي.
منصات الأجهزة تضم ايضا كل منصات ألعاب الفيديو مثل منصات Playstion و Xbox و Nintendo, حيث توفر هذه المنصات بيئة متكاملة من حيث العتاد و نظام التشغيل لغرض تشعيل الألعاب و بعض الخدمات الترفهية الأخرى، تتوفر مع هذه المنصة في العادة معدات تطوير خاصة بالمطورين .
المنصات البرمجية
في العادة يشار بهذا المسمى إلى نظم التشغيل التي تعمل على منصات الأجهزة و تتواصل معها، و تعمل بشكل اساسي كوسيط بين تلك المنصات و المستخدم، و تقوم بتزويد المستخدم بالعديد من الخدمات و تسهل عليه عمل العديد من المهمات، أيضا تقوم بتنظيم و إدارة موارد المنصة التي تعمل عليها مثل إدارة المعالج و الذاكرة .
ايضا يشار أحياناً بالمنصات البرمجية إلى بيئة البرمجة و التي توفر لك الأدوات لتطوير التطبيقات و البرمجيات من أمثلتها جافا . من المنصات الاخرى، المنصات التي توفر بيئة عمل للتطبيقات التي صممت في الغالب خصيصاً لهذه المنصات، من أهم امثلتها منصة فيس بوك و غيرها من المنصات التي تعمل على الإنترنت .
برمجيات متعددة المنصات
لكي يعتبر اي تطبيق كبرنامج متعدد المنصات، يجب ان يكون قادراً على العمل بكامل وظائفه الأساسية على أكثر من معمارية حاسوبية أو نظام تشغيل. عملية التطوير هذه البرامج ستكون في العادة بإستخدام عدة أدوات و لغات برمجية المتناسبة مع كل منصة و عدة فرق تطوير، يعني جهد أكثر و اموال أكثر و وقت أطول من المقدار الذي يستغرقه في العادة في عملية تطوير تطبيق لمنصة واحدة، خصوصا فيما يتعلق بمرحلة الاختبار، بكل بساطة هي عملية تطوير تطبيق لكل منصة و ليس مجرد تطبيق واحد .
تطبيقات الويب
يشار في العادة إلى تطبيقات الويب على أنها متعددة المنصات، بسبب حقيقة انه يمكن الوصول اليها من عدة أنواع من المتصفحات داخل عدة أنواع من نظم التشغيل، مثل هذه التطبيقات توظف بشكل عام نموذج العميل/الخادم , وتختلف التطبيقات من حيث التعقيد و الوظائف .
تطبيقات الويب الأساسية تقوم بأداء كل أو معظم العمليات و المعالجات على الخادم server، وتمرر النتيجة إلى متصفح الويب الخاص بالعميل. جميع التفاعلات بين المستخدم والتطبيق تتكون من التبادلات بسيطة من طلبات الحصول على البيانات والردود على هذه الطلبات القادمة من الخادم. ما يجعل هذه التطبيقات تعمل على أكثر من منصة و إن كانت منصة ذات قدرات محدودة انها لا تقوم باي عمليات كبيرة على المنصة، و كل العمليات المعقدة تكون في جانب الخادم .
ألعاب الفيديو
مصطلح (متعدد المنصات) يمكن ان يعنى به أيضا العاب الفيديو التي يتم اطلاقها لأكثر من منصة ألعاب أو منصة قادرة توفر ميزة تشغيل الألعاب، من امثلة هذه الألعاب : جي تي أي 5 فيفا 16 تومب رايدر: ليجند
كل منها تم إطلاقها في عدد من المنصات المشهورة مثل وي ، بلاي ستيشن 3 ، إكس بوكس 360، الكمبيوتر الشخصي PC.
عملية إطلاق الألعاب على أكثر من منصة قد يسبب في إطالة فترة التطوير، خصوصاً بسبب تعديل اللعبة مع مميزات المنصة التي سوف تعمل عليه، الذي يجعل الشركات تلجأ في بعض الأحيان إلى إطلاق اللعبة في وقت أخر على بعض المنصات . هذه الحالات تحدث في العادة عندما يتم إطلاق منصة العاب جديدة، لأن المطورون يحتاجون لبعض الوقت للتعود و لتعلم التطوير على هذه المنصات الجديدة .
بعض الألعاب قد لا تكون متعددة المنصات لسببين، الأول بسبب أنها من تطوير شركات الطرف الأول التي تتبع الشركة المالكة للمنصة، فيتم تطوير الألعاب بشكل حصري على منصة الشركة، و السبب الثاني ناتج من شروط العقد الذي قد يتم احياناً بين الشركة المالكة للمنصة و شركات الطرف الثالث المطورة للعبة الذي ينص على حصرية اللعبة لهذه المنصة لفترات قد تكون طويلة أو قصيرة، من أمثلة الألعاب الحصرية : Uncharted الحصرية على منصة Playstation Gears of War الحصرية على منصة Xbox
البرمجة المتعددة المنصات
برمجة متعددة المنصات هي العمليات التي يتم فيها كتابة برنامج يعمل على أكثر من منصة واحدة .
طرق برمجة المنصات المتعددة
يوجد عدة طرق مختلفة لبرمجة التطبيقات المتعددة المنصات، أحدها و أبسطها هي تصميم تطبيق من مجموعة مختلفة من الشفرات المصدرية، أي مثلا ان نسخة الويندوز سوف يتم كتابتها بلغة برمجة و تحمل شفرة مصدرية خاصة بها، و نسخة ماكنتوش سوف يتم كتابتها بلغة برمجة و شفرة مصدرية مختلفة عن السابقة، و بهذه الشكلية لكل المنصات الأخرى . رغم ان هذه الطريقة تعتبر مباشرة لحل المشكلة، الا انها تزيد من تكاليف التطوير أو تزيد من طول المدة الزمنية المخصصة للتطوير أو كلاهما. الفكرة وراء هذه الطريقة هي بإنشاء برنامجين أو أكثر و لجميع البرامج سلوك متشابه. و هذا قد يعني ان التطوير بهذه الطريقة سوف ينتج عنه مشاكل أكثر التي تحتاج إلى تتبع و اصلاح، لأنه مع شفرة مصدرية مختلفة لكل برنامج تأتي الحاجة لمبرجين أكثر، الذي بسبب عيوب في نسخة تختلف عن عيوب النسخة الأخرى .
أيضاً هنالك طريقة اخرى مستخدمة لتطوير هذا النوع من البرامج، تعتمد هذه الطريقة على استخدام برمجيات موجودة مسبقاً ,تقوم بإخفاء الاختلافات بين المنصات على التطبيق الذي يعمل عليها، بحيث ان التطبيق يكون جاهلاً بالمنصة التي يشتغل عليها، من أهم الأمثلة على هذه البرمجيات هو آلة جافا الافتراضية ، التي تعمل كوسيط بين نظام التشغيل و البرنامج .
أدوات و بيئات التطوير
يوجد عدد كبير من الأدوات التي تسهل عليك و تسمح لك بتطوير تطبيقات متعددة المنصات، تختلف هذه الادوات من حيث الطرق التي تعتمد عليها في طرق التطوير، منها:
- AppearIQ: إطار عمل يدعم عمليات التطوير و الإطلاق للتطبيق داخل المؤسسات، يستخدم في عملية البرمجة إتش تي إم إل 5 التي تتميز بامكانية عملها على مختلف المنصات و مخصص للأجهزة المحمولة و اللوحيات .
- إكلبس: منصة تطوير متعددة المنصات و مفتوحة المصدر، يتم التطوير عليها بإستخدام لغة جافا بشكل عام .
- Mono: نسخة مفتوحة المصدر من مايكروسوفت .net .
- زامارين: منصة تطوير لإطلاق تطبيقات متعددة المنصات بإستخدام لغة #C.
التحديات في تطوير التطبيقات المتعددة المنصات
يوجد بعض القضايا المتعلقة بالتطوير المتعدد المنصات، التي ينتج عنها عدة تحديات منها :
- عملية اختبار التطبيقات المتعددة المنصات قد تعتبر معقدة، بسبب ان المنصات تكون مختلفة، فينتج عنها سلوك غير متوقع أو بعض المشاكل المتعلقة باستقرار عمل التطبيق. هذه المشاكل تقود المطورين إلى اللجوء إلى اسلوب التطوير الذي ينص " اكتب مرة واحدة، يشتغل في كل مكان " الذي تتخذه شركةصن ميكروسيستمز صاحبة جافا كاشعار لها.
- يكون المطورون غالباً مقيدين بالمميزات المشتركة بين كل المنصات فقط، دون تضمين خواص و مميزات اخرى، مما يحد من اداء النظام و مميزاته بسبب عدم استخدام المميزات المتطورة لكل منصة .
- المنصات المختلفة لها أعراف خاصة بواجهات استخدام مختلفة، و تطبيقات المنصات المتعددة لا تتبع هذه الأعراف في العادة.
- اللغات النصية (لغة برمجة نصية) و الأجهزة الافتراضية (آلة افتراضية) يجب ان تتم ترجمتها إلى شفرة تنفيذية بلغة الألة (native executable code) , مايسبب في إضعاف الأداء بسبب الوقت المستغرق في هذه العملية .
- البيئات التنفيذية للتطبيقات المتعددة المنصات قد تعاني من ثغرات و عيوب أمنية، مما يخلق بيئة خصبة للبرمجيات الخبيثة.
مقالات ذات صلة
مراجع
- "About Mono". mono-project.com. مؤرشف من الأصل في 04 يوليو 201817 ديسمبر 2015.
- "Encyclopedia > cross platform". PC MAgazine Encyclopedia. مؤرشف من الأصل في 08 مارس 201319 أكتوبر 2011.
- On the Net Marketshare website, Windows (all variants) has ~ 89% market share as of March 2011 نسخة محفوظة 06 يوليو 2018 على موقع واي باك مشين.