المحتوى هنا ينقصه الاستشهاد بمصادر، أي معلومات غير موثقة يمكن التشكيك بها وإزالتها.

متعدد المنصات

من ويكيبيديا، الموسوعة الحرة
اذهب إلى: تصفح، ‏ ابحث
Question book-new.svg
المحتوى هنا ينقصه الاستشهاد بمصادر. يرجى إيراد مصادر موثوق بها. أي معلومات غير موثقة يمكن التشكيك بها وإزالتها. (مارس 2016)
Ambox important.svg
هذه مقالة عن موضوع اختصاصي. يرجى من أصحاب الاختصاص والمطلعين على موضوع المقالة مراجعتها وتدقيقها.

متعدد المنصات (بالإنجليزية: Multi-Platform أو Cross-Platform) هو مصطلح يستخدم في علم الحوسبة يشير إلى برامج الحاسوب أو أنظمة التشغيل أو لغات الكمبيوتر أو لغات البرمجة وتطبيقاتها التي بإمكانها العمل على عدة منصات حاسوبية. هناك نوعان رئيسيان من البرمجيات متعددة المنصات ، الأول يستلزم بناءه لكل منصة بإمكانه العمل عليها (مثل برنامج مكتوب بلغة مترجمة مثل سي) ، والثاني بإمكانه العمل مباشرة على أي منصة تدعمه (مثل البرمجيات المكتوبة بلغات مفسرة مثل بيرل أو بايثون أو الجافا).

كمثال ، التطبيقات متعددة المنصات بإمكانها العمل على مايكروسوفت ويندوز على معمارية x86 وعلى لينكس على معمارية x86 وعلى ماك أو إس عشرة على أنظمة ماكنتوش المبنية على أي من معماريتي باور بي سي أو x86. التطبيقات متعددة المنصات من الممكن أن تعمل على عدد كبير من المنصات مثل جميع المنصات المتاحة أو على بعض المنصات مثل منصتين فقط.

منصات[عدل]

المصطلح "منصة" قد يشير الى نوع من المعالجات او\و كيانات مادية اخرى التي تشتغل عليها نظم التشغيل او التطبيقات , او قد يعنى بالمنصة نظام التشغيل على الحاسوب او على اي كيان مادي أخر له نفس نظام التشغيل . من امثلة المنصات المشهورة منصة مايكروسوفت ويندوز التي تعمل على معمارية X86. أيضا منصة لينوكس\يونيكس و ماك او إس , كل منهم يعتبر متعدد المنصات . جميع التطبيقات التي يتم تطويرها , تعتمد اثناء تطويرها على المنصة التي سوف تعمل عليها و التي تعتمد على لغة البرمجة التي سوف تكتب بها و نظام التشغيل التي سوف تعمل عليه , لذلك بعض اللغات توفر إمكانية العمل على عدة نظم تشغيل و منصات حاسوبية, من امثلتها لغة الجافا التي تعتبر كمنصة وسيطة بين نظام التشغيل و الكيان المادي و بين البرنامج المكتوب بلغة الجافا تعرف هذه المنصة بالألة الإفتراضية.

منصات الأجهزة[عدل]

منصات الأجهزة تشير الى معمارية ما للحاسوب او المعالج مثل معمارية x86 و x64 , مثل هذه المعمارية يمكن يشتغل عليها أكثر من نظام تشغيل مثل انظمة Windows , Linux, OpenBSD, NetBSD, Mac OS X و FreeBSD.

منصات الأجهزة تضم ايضا كل منصات ألعاب الفيديو مثل منصات Playstion و Xbox و Nintendo, حيث توفر هذه المنصات بيئة متكاملة من حيث العتاد و نظام التشغيل لغرض تشعيل الألعاب و بعض الخدمات الترفهية الأخرى , تتوفر مع هذه المنصة في العادة معدات تطوير خاصة بالمطورين .

المنصات البرمجية[عدل]

في العادة يشار بهذا المسمى الى نظم التشغيل التي تعمل على منصات الأجهزة و تتواصل معها , و تعمل بشكل اساسي كوسيط بين تلك المنصات و المستخدم, و تقوم بتزوير المستخدم بالعديد من الخدمات و تسهل عليه عمل العديد من المهمات, أيضا تقوم بتنظيم و إدارة موارد المنصة التي تعمل عليها مثل ادارة المعالج و الذاكرة .

ايضا يشار أحياناً بالمنصات البرمجية الى بيئة البرمجة و التي توفر لك الأدوات لتطوير التطبيقات و البرمجيات من أمثلتها Java . من المنصات الاخرى , المنصات التي توفر بيئة عمل للتطبيقات التي صممت في الغالب خصيصاً لهذه المنصات , من اهم امثلتها منصة Facebook و غيرها من المنصات التي تعمل على الإنترنت .

برمجيات متعددة المنصات[عدل]

لكي يعتبر اي تطبيق كبرنامج متعدد المنصات , يجب ان يكون قادراً على العمل بكامل وظائفه الأساسية على أكثر من معمارية حاسوبية او نظام تشغيل. عملية التطوير هذه البرامج ستكون في العادة بإستخدام عدة أدوات و لغات برمجية المتناسبة مع كل منصة و عدة فرق تطوير, يعني جهد اكثر و اموال اكثر و وقت اطول من المقدار الذي يستغرقه في العادة في عملية تطوير تطبيق لمنصة واحدة , خصوصا فيما يتعلق بمرحلة الإختبار , بكل بساطة هي عملية تطوير تطبيق لكل منصة و ليس مجرد تطبيق واحد .

تطبيقات الويب[عدل]

يشار في العادة الى تطبيقات الويب على أنها متعددة المنصات , بسبب حقيقة انه يمكن الوصول اليها من عدة أنواع من المتصفحات داخل عدة أنواع من نظم التشغيل , مثل هذه التطبيقات توظف بشكل عام نموذجالعميل/الخادم , وتختلف التطبيقات من حيث التعقيد و الوظائف .

تطبيقات الويب الأساسية تقوم بأداء كل أو معظم العمليات و المعالجات على الخادم server، وتمرر النتيجة إلى متصفح الويب الخاص بالعميل. جميع التفاعلات بين المستخدم والتطبيق تتكون من التبادلات بسيطة من طلبات الحصول على البيانات والردود على هذه الطلبات القادمة من الخادم. ما يجعل هذه التطبيقات تعمل على اكثر من منصة و إن كانت منصة ذات قدرات محدودة انها لا تقوم باي عمليات كبيرة على المنصة , و كل العمليات المعقدة تكون في جانب الخادم .

ألعاب الفيديو[عدل]

مصطلح (متعدد المنصات) يمكن ان يعنى به أيضا العاب الفيديو التي يتم اطلاقها لأكثر من منصة ألعاب او منصة قادرة توفر ميزة تشغيل الألعاب , من امثلة هذه الألعاب : Grand Theft Auto 5 FIFA 16 Tomb Raider: Legend

كل منها تم إطلاقها في عدد من المنصات المشهورة مثل Wii ، PlayStation 3 ، Xbox 360، الكمبيوتر الشخصي PC.

عملية إطلاق الألعاب على أكثر من منصة قد يسبب في إطالة فترة التطوير , خصوصاً بسبب تعديل اللعبة مع مميزات المنصة التي سوف تعمل عليه , الذي يجعل الشركات تلجأ في بعض الأحيان الى إطلاق اللعبة في وقت أخر على بعض المنصات . هذه الحالات تحدث في العادة عندما يتم إطلاق منصة العاب جديدة ,لأن المطورون يحتاجون لبعض الوقت للتعود و لتعلم التطوير على هذه المنصات الجديدة .

بعض الألعاب قد لا تكون متعددة المنصات لسببين , الأول بسبب أنها من تطوير شركات الطرف الأول التي تتبع الشركة المالكة للمنصة, فيتم تطوير الألعاب بشكل حصري على منصة الشركة , و السبب الثاني ناتج من شروط العقد الذي قد يتم احياناً بين الشركة المالكة للمنصة و شركات الطرف الثالث المطورة للعبة الذي ينص على حصرية اللعبة لهذه المنصة لفترات قد تكون طويلة او قصيرة, من أمثلة الألعاب الحصرية : Uncharted الحصرية على منصة Playstation Gears of War الحصرية على منصة Xbox

البرمجة المتعددة المنصات[عدل]

برمجة متعددة المنصات هي العمليات التي يتم فيها كتابة برنامج يعمل على أكثر من منصة واحدة .

طرق برمجة المنصات المتعددة[عدل]

يوجد عدة طرق مختلفة لبرمجة التطبيقات المتعددة المنصات ، أحدها و أبسطها هي تصميم تطبيق من مجموعة مختلفة من الشفرات المصدرية , أي مثلا ان نسخة الويندوز سوف يتم كتابتها بلغة برمجة و تحمل شفرة مصدرية خاصة بها ، و نسخة ماكنتوش سوف يتم كتابتها بلغة برمجة و شفرة مصدرية مختلفة عن السابقة , و بهذه الشكلية لكل المنصات الأخرى . رغم ان هذه الطريقة تعتبر مباشرة لحل المشكلة ، الا انها تزيد من تكاليف التطوير أو تزيد من طول المدة الزمنية المخصصة للتطوير او كلاهما. الفكرة وراء هذه الطريقة هي بإنشاء برنامجين أو أكثر و لجميع البرامج سلوك متشابه. و هذا قد يعني ان التطوير بهذه الطريقة سوف ينتج عنه مشاكل اكثر التي تحتاج الى تتبع و اصلاح ، لأنه مع شفرة مصدرية مختلفة لكل برنامج تأتي الحاجة لمبرجين أكثر ، الذي بسبب عيوب في نسخة تختلف عن عيوب النسخة الأخرى .

أيضاً هنالك طريقة اخرى مستخدمة لتطوير هذا النوع من البرامج ,تعتمد هذه الطريقة على إستخدام برمجيات موجودة مسبقاً ,تقوم بإخفاء الإختلافات بين المنصات على التطبيق الذي يعمل عليها ، بحيث ان التطبيق يكون جاهلاً بالمنصة التي يشتغل عليها، من أهم الأمثلة على هذه البرمجيات هو آلة جافا الافتراضية ، التي تعمل كوسيط بين نظام التشغيل و البرنامج .

أدوات و بيئات التطوير[عدل]

يوجد عدد كبير من الأدوات التي تسهل عليك و تسمح لك بتطوير تطبيقات متعددة المنصات , تختلف هذه الادوات من حيث الطرق التي تعتمد عليها في طرق التطوير , منها:

  • AppearIQ: إطار عمل يدعم عمليات التطوير و الإطلاق للتطبيق داخل المؤسسات , يستخدم في عملية البرمجة HTML5 التي تتميز بامكانية عملها على مختلف المنصات و مخصص للأجهزة المحمولة و اللوحيات .
  • Eclipse: منصة تطوير متعددة المنصات و مفتوحة المصدر , يتم التطوير عليها بإستخدام لغة جافا بشكل عام .
  • Mono: نسخة مفتوحة المصدر من Microsoft .Net .
  • Xamarin: منصة تطوير لإطلاق تطبيقات متعددة المنصات بإستخدام لغة #C.

التحديات في تطوير التطبيقات المتعددة المنصات[عدل]

يوجد بعض القضايا المتعلقة بالتطوير المتعدد المنصات , التي ينتج عنها عدة تحديات منها :

  • عملية إختبار التطبيقات المتعددة المنصات قد تعتبر معقدة , بسبب ان المنصات تكون مختلفة, فينتج عنها سلوك غير متوقع او بعض المشاكل المتعلقة باستقرار عمل التطبيق. هذه المشاكل تقود المطورين الى اللجوء الى اسلوب التطوير الذي ينص " اكتب مرة واحدة , يشتغل في كل مكان " الذي تتخذه شركةSun Microsystems صاحبة جافا كاشعار لها.
  • يكون المطورون غالباً مقيدين بالمميزات المشتركة بين كل المنصات فقط , دون تضمين خواص و مميزات اخرى , مما يحد من اداء النظام و مميزاته بسبب عدم استخدام المميزات المتطورة لكل منصة .
  • المنصات المختلفة لها أعراف خاصة بواجهات استخدام مختلفة , و تطبيقات المنصات المتعددة لا تتبع هذه الأعراف في العادة.
  • اللغات النصية (Scripting languages) و الأجهزة الإفتراضية (virtual machines) يجب ان تتم ترجمتها الى شفرة تنفيذية بلغة الألة (native executable code) , مايسبب في إضعاف الأداء بسبب الوقت المستغرق في هذه العملية .
  • البيئات التنفيذية للتطبيقات المتعددة المنصات قد تعاني من ثغرات و عيوب أمنية, مما يخلق بيئة خصبة للبرمجيات الخبيثة.