متعدد المنصات
المحتويات

تعريفًا بالموضوع، متعدد المنصات هو مصطلح يستعمل في علم الحوسبة يشير إلى برامج الحاسوب أو أنظمة التشغيل أو لغات البرمجة وتطبيقاتها التي بإمكانها العمل على عدة منصات حاسوبية. هناك نوعان رئيسيان من البرمجيات متعددة المنصات، الأول يستلزم بناءه لكل منصة بإمكانه العمل عليها (مثل برنامج مكتوب بلغة مترجمة مثل سي)، والثاني بإمكانه العمل مباشرة على أي منصة تدعمه (مثل البرمجيات المكتوبة بلغات مفسرة مثل بيرل أو بايثون أو الجافا). وتعرض الأقسام التالية جوانب أخرى من الموضوع.
في هذا الإطار، كمثال، التطبيقات متعددة المنصات بإمكانها العمل على مايكروسوفت ويندوز على معمارية x86 وعلى لينكس على معمارية x86 وعلى ماك أو إس عشرة على أنظمة ماكنتوش المبنية على أي من معماريتي باور بي سي أو x86. التطبيقات متعددة المنصات من الممكن أن تعمل على عدد كبير من المنصات مثل جميع المنصات المتاحة أو على بعض المنصات مثل منصتين فقط.
أدوات وبيئات التطوير
من جهة ثانية، زامارين: منصة تطوير لإطلاق تطبيقات متعددة المنصات باستخدام لغة #C.
Mono: نسخة مفتوحة المصدر من مايكروسوفت دوت نت فريموورك.
وعلى صعيد آخر، يوجد عدد كبير من الأدوات التي تسهل عليك وتسمح لك بتطوير تطبيقات متعددة المنصات، تختلف هذه الأدوات من حيث الطرق التي تعتمد عليها في طرق التطوير، منها:
وفي هذا السياق، إكلبس: منصة تطوير متعددة المنصات ومفتوحة المصدر، يتم التطوير عليها باستخدام لغة جافا بشكل عام.
علاوةً على ذلك، AppearIQ: إطار عمل يدعم عمليات التطوير والإطلاق للتطبيق داخل المؤسسات، يستعمل في عملية البرمجة إتش تي إم إل 5 التي تتميز بإمكانية عملها على مختلف المنصات ومخصص للأجهزة المحمولة واللوحيات.
تطبيقات الويب
من جهة ثانية، يشار في العادة إلى تطبيقات الويب على أنها متعددة المنصات، بسبب حقيقة انه يمكن الوصول اليها من عدة أنواع من المتصفحات داخل عدة أنواع من نظم التشغيل، مثل هذه التطبيقات توظف بشكل عام نموذج العميل/الخادم، وتختلف التطبيقات من حيث التعقيد والوظائف.
وفي السياق ذاته، ما يجعل هذه التطبيقات تعمل على أكثر من منصة وإن كانت منصة ذات قدرات محدودة انها لا تقوم باي عمليات كبيرة على المنصة، وكل العمليات المعقدة تكون في جانب الخادم.
ومن ناحية أخرى، جميع التفاعلات بين المستعمل والتطبيق تتكون من التبادلات بسيطة من طلبات الحصول على البيانات والردود على هذه الطلبات القادمة من الخادم.
ومن ناحية أخرى، تطبيقات الويب الأساسية تقوم بأداء كل أو أغلب العمليات والمعالجات على الخادم server، وتمرر النتيجة إلى متصفح الويب الخاص بالعميل.
تومب رايدر: ليجند
Gears of War الحصرية على منصة Xbox
ومن ناحية أخرى، بعض الألعاب قد لا تكون متعددة المنصات لسببين، الأول بسبب أنها من تطوير شركات الطرف الأول التي تتبع الشركة المالكة للمنصة، فيتم تطوير الألعاب بشكل حصري على منصة الشركة، والسبب الثاني ناتج من شروط العقد الذي قد يتم احياناً بين الشركة المالكة للمنصة وشركات الطرف الثالث المطورة للعبة الذي ينص على حصرية اللعبة لهذه المنصة لفترات قد تكون طويلة أو قصيرة، من أمثلة الألعاب الحصرية:
إضافةً إلى ذلك، هذه الحالات تحدث في العادة عندما يتم إطلاق منصة العاب جديدة، لأن المطورين يحتاجون لبعض الوقت للتعود ولتعلم التطوير على هذه المنصات الجديدة.
إضافةً إلى ذلك، كل منها أطلق في عدد من المنصات المشهورة مثل وي، بلاي ستيشن 3 ، إكس بوكس 360، الحاسب المحمول.
من جانب آخر، عملية إطلاق الألعاب على أكثر من منصة قد يسبب في إطالة فترة التطوير، خصوصاً بسبب تعديل اللعبة مع مميزات المنصة التي سوف تعمل عليه، الذي يجعل الشركات تلجأ في بعض الأحيان إلى إطلاق اللعبة في وقت أخر على بعض المنصات.
Uncharted الحصرية على منصة Playstation
ألعاب الفيديو
جي تي أي 5
فيفا 16
من جانب آخر، مصطلح (متعدد المنصات) يمكن أن يعنى به كذلك ألعاب الفيديو التي أطلقت لأكثر من منصة ألعاب أو منصة قادرة توفر ميزة تشغيل الألعاب، من امثلة هذه الألعاب:
التحديات في تطوير التطبيقات المتعددة المنصات
وعلى صعيد آخر، يكون المطورون غالباً مقيدين بالمميزات المشتركة بين كل المنصات فقط، دون تضمين خواص ومميزات أخرى، مما يحد من أداء النظام ومميزاته بسبب عدم استخدام المميزات المتطورة لكل منصة.
شركة إن سي دي
وفي هذا السياق، البيئات التنفيذية للتطبيقات المتعددة المنصات قد تعاني من ثغرات وعيوب أمنية، مما يخلق بيئة خصبة للبرمجيات الخبيثة.
انظر كذلك
من جهة ثانية، عملية اختبار التطبيقات المتعددة المنصات قد تعتبر معقدة، بسبب أن المنصات تكون مختلفة، فينتج عنها سلوك غير متوقع أو بعض المشاكل المتعلقة باستقرار عمل التطبيق. هذه المشاكل تقود المطورين إلى اللجوء إلى أسلوب التطوير الذي ينص «اكتب مرة واحدة، يشتغل في كل مكان» الذي تتخذه شركةصن ميكروسيستمز صاحبة جافا كإشعار لها.
وفي هذا الصدد، المنصات المختلفة لها أعراف خاصة بواجهات استخدام مختلفة، وتطبيقات المنصات المتعددة لا تتبع هذه الأعراف في العادة.
وفي هذا السياق، اللغات النصية (لغة برمجة نصية) والأجهزة الافتراضية (آلة افتراضية) يجب أن تتم ترجمتها إلى شفرة تنفيذية بلغة الألة (native executable code)، ما يسبب في إضعاف الأداء بسبب الوقت المستغرق في هذه العملية.
إضافةً إلى ذلك، يوجد بعض القضايا المتعلقة بالتطوير المتعدد المنصات، التي ينتج عنها عدة تحديات منها:
منصات
إضافةً إلى ذلك، جميع التطبيقات التي يتم تطويرها، تعتمد أثناء تطويرها على المنصة التي سوف تعمل عليها والتي تعتمد على لغة البرمجة التي سوف تكتب بها ونظام التشغيل التي سوف تعمل عليه، لذلك بعض اللغات توفر إمكانية العمل على عدة نظم تشغيل ومنصات حاسوبية، من أمثلتها لغة الجافا التي تعتبر كمنصة وسيطة بين نظام التشغيل والكيان المادي وبين البرنامج المكتوب بلغة الجافا تعرف هذه المنصة بالألة الإفتراضية.
من جهة ثانية، المصطلح «منصة» قد يشير إلى نوع من المعالجات أو كيانات مادية أخرى التي تشتغل عليها نظم التشغيل أو التطبيقات، أو قد يعنى بالمنصة نظام التشغيل على الحاسوب أو على أي كيان مادي أخر له نفس نظام التشغيل.
كذلك، من أمثلة المنصات المشهورة منصة مايكروسوفت ويندوز التي تعمل على معمارية X86. كذلك منصة لِينُكس وماك أو إس، كل منهم يعتبر متعدد المنصات.
البرمجة المتعددة المنصات
وعلى صعيد آخر، برمجة متعددة المنصات هي العمليات التي يتم فيها كتابة برنامج يعمل على أكثر من منصة واحدة.
برمجيات متعددة المنصات
في هذا الإطار، لكي يعتبر أي تطبيق كبرنامج متعدد المنصات، يجب ان يكون قادراً على العمل بكامل وظائفه الأساسية على أكثر من معمارية حاسوبية أو نظام تشغيل.
وعلى صعيد آخر، عملية التطوير هذه البرامج ستكون في العادة باستخدام عدة أدوات ولغات برمجية المتناسبة مع كل منصة وعدة فرق تطوير، يعني جهد أكثر واموال أكثر ووقت أطول من المقدار الذي يستغرقه في العادة في عملية تطوير تطبيق لمنصة واحدة، خصوصا فيما يتعلق بمرحلة الاختبار، بكل بساطة هي عملية تطوير تطبيق لكل منصة وليس مجرد تطبيق واحد.
طرق برمجة المنصات المتعددة
في هذا الإطار، يوجد عدة طرق مختلفة لبرمجة التطبيقات المتعددة المنصات، أحدها وأبسطها هي تصميم تطبيق من مجموعة مختلفة من الشفرات المصدرية، أي مثلا أن نسخة الويندوز سوف يتم كتابتها بلغة برمجة وتحمل شفرة مصدرية خاصة بها، ونسخة ماكنتوش سوف يتم كتابتها بلغة برمجة وشفرة مصدرية مختلفة عن السابقة، وبهذه الشكلية لكل المنصات الأخرى.
وفي هذا الصدد، الفكرة وراء هذه الطريقة هي بإنشاء برنامجين أو أكثر ولجميع البرامج سلوك متشابه.
وفي هذا الصدد، رغم أن هذه الطريقة تعتبر مباشرة لحل المشكلة، إلا أنها تزيد من تكاليف التطوير أو تزيد من طول المدة الزمنية المخصصة للتطوير أو كلاهما.
في هذا الإطار، كذلك هنالك طريقة أخرى مستعملة لتطوير هذا النوع من البرامج، تعتمد هذه الطريقة على استخدام برمجيات موجودة مسبقاً، تقوم بإخفاء الاختلافات بين المنصات على التطبيق الذي يعمل عليها، بحيث أن التطبيق يكون جاهلاً بالمنصة التي يشتغل عليها، من أهم الأمثلة على هذه البرمجيات هو آلة جافا الافتراضية، التي تعمل كوسيط بين نظام التشغيل والبرنامج.
كذلك، وهذا قد يعني أن التطوير بهذه الطريقة سوف ينتج عنه مشاكل أكثر التي تحتاج إلى تتبع وإصلاح، لأنه مع شفرة مصدرية مختلفة لكل برنامج تأتي الحاجة لمبرمجين أكثر، الذي بسبب عيوب في نسخة تختلف عن عيوب النسخة الأخرى.
منصات الأجهزة
وفي هذا الصدد، منصات الأجهزة تضم كذلك كل منصات ألعاب الفيديو مثل منصات PlayStation وإكس بوكس ونينتندو، حيث توفر هذه المنصات بيئة متكاملة من حيث العتاد ونظام التشغيل لغرض تشغيل الألعاب وبعض الخدمات الترفيهية الأخرى، تتوفر مع هذه المنصة في العادة معدات تطوير خاصة بالمطورين.
من جهة ثانية، منصات الأجهزة تشير إلى معمارية ما للحاسوب أو المعالج مثل معمارية x86 و x64, مثل هذه المعمارية يمكن يشتغل عليها أكثر من نظام تشغيل مثل أنظمة مايكروسوفت ويندوز، جنو/لينكس، أوبن بي إس دي، نت بي إس دي، أو إس 10 وفري بي إس دي.
المنصات البرمجية
من جهة ثانية، كذلك يشار أحياناً بالمنصات البرمجية إلى بيئة البرمجة والتي توفر لك الأدوات لتطوير التطبيقات والبرمجيات من أمثلتها جافا.
وفي السياق ذاته، في العادة يشار بهذا المسمى إلى نظم التشغيل التي تعمل على منصات الأجهزة وتتواصل معها، وتعمل بشكل اساسي كوسيط بين تلك المنصات والمستعمل، وتقوم بتزويد المستعمل بالعديد من الخدمات وتسهل عليه عمل الكثير من المهمات، كذلك تقوم بتنظيم وإدارة موارد المنصة التي تعمل عليها مثل إدارة المعالج والذاكرة.
من جانب آخر، من المنصات الأخرى، المنصات التي توفر بيئة عمل للتطبيقات التي صممت في الغالب خصيصاً لهذه المنصات، من أهم امثلتها منصة فيس بوك وغيرها من المنصات التي تعمل على الإنترنت.
📝 هل في هذه المقالة خطأ؟
إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.
ما رأيك في هذه المقالة؟