در صنعت IT، هر سختافزار یا نرمافزاری که به عنوان میزبانی برای یک اپلیکیشن یا سرویس قرار بگیرد، Platform (سکو) خوانده میشود. به عنوان مثال، پلتفرمهای نرمافزای از بخشهای مختلفی منجمله سختافزار، سیستمعامل و برنامههای هماهنگکننده (Coordinating Programs) تشکیل شده که از مجموعهٔ دستورالعملهایی برای یک پروسسور یا میکروپروسسور خاص استفاده میکنند. در این مورد، پلتفرم زیرساختی ایجاد میکند تا مطمئن شود که نرمافزار با موفقیت اجرا میشود.
در حقیقت، پلتفرم یا سکو بستری است که نرمافزارهای دیگر میتوانند بر روی آن اجرا شوند و یا به بیان کلیتر، چارچوبی از تکنولوژی است که به تکنولوژیهای دیگر اجازهٔ اجرا میدهد. در همین راستا، هنگام خرید یا استفاده از یک نرمافزار، مهم است بدانید که نرمافزار مد نظر برای چه پلتفرمی توسعه داده شده است.
به طور کلی، بعضی نرمافزارها برای پلتفرمهای خاصی ایجاد شدهاند؛ به عبارت دیگر، دولوپرها به طور خاص اپلیکیشنشان را طوری توسعه دادهاند که فقط بر روی یک پلتفرم اجرا شود (مثلاً بر روی مک یا ویندوز). با این حال، امکان کراس پلتفرم (Cross-platform) بودن نرمافزارها هم وجود دارد بدان معنی که دولوپرها طوری سورسکد را توسعه دادهاند که بر روی بیش از یک پلتفرم اجرا شود (مثلاً هم بر روی مک و هم بر روی ویندوز).
همچنین ممکن است نرمافزارها پلتفرم اگنوستیک (Platform-agnostic) باشند؛ به عبارت دیگر، نرمافزار طوری طراحی شده است تا بر روی هر ترکیبی از سیستمعاملها و معماری پروسسور اجرا شود (به عنوان مثال، میتوان مرورگر وب را در نظر گرفت که به عنوان بخشی از یک پلتفرم اجرا میشود).
آشنایی با مفهوم PaaS
دولوپرهای نرمافزاری که میخواهند ببینند کدی که نوشتهاند روی پلتفرمهای مختلف چهطور اجرا میشود، میتوانند از یک نوع کلود کامپیوتینگ (Cloud Computing) به نام Platform As A Service یا PaaS استفاده کنند. به بیان ساده، ارائهدهندهٔ کلود از ترکیب مختلفی از پلتفرمهای سختافزاری و نرمافزاری بر روی زیرساخت خود میزبانی میکند که دولوپر میتواند از آنها استفاده کند. این موضوع باعث میشود که دیگر لازم نباشد دولوپرها در هنگام توسعه و تست یک اپلیکیشن جدید، سختافزارهای مختلفی را نصب کرده و سورسکد خود را روی آن تست کنند (به عنوان مثال، ویژگیهایی که یک سرور را تعریف میکنند ممکن است شامل نوع پروسسور (مثل X64 یا Intel X86)، نوع مموری (مثل DDR4) و اتصالات شبکه (مانند 1 GigE) بشود).
مفهوم گستردهتر پلتفرم
عبارت پلتفرم ممکن است به چیزی فراتر از توصیف معماری زیرساختی اشاره داشته و در واقع دربرگیرندهٔ نرمافزاری که بر روی آن معماری ساخته شده است نیز باشد. به عنوان مثال، استفاده از ماشینهای مجازی در یک پروژه نیازمند یک پلتفرم Hypervisor مانند Microsoft Hper-v یا VMara VSphere میباشد.
لازم به ذکر است که خود اپلیکیشنها هم ممکن است به عنوان بخشی از یک پلتفرم نقش بازی کنند. به عنوان مثال، SQL زبانی جهت تعامل با دیتابیس است اما اغلب به عنوانی کامپوننتی در سایر پلتفرمها مانند سیستمهای لاگینگ، سرویسهای تجزیه و تحلیل و سیستمهای ERM و ERP استفاده میشود. بنابراین در این شرایط میتوانیم SQL را هم یک پلتفرم بنامیم (به همین منوال، یک اپلیکیشن وبسرور را هم میتوان پلتفرم در نظر گرفت).
استکهای نرمافزاری (استک ترکیبی از کامپوننتهای نرمافزاری است) که اجازهٔ دیپلوی دیگر سرویسهای پیچیده را میدهند هم ممکن است پلتفرم در نظر گرفته شوند. به عنوان مثال، سازمانی که میخواهد قابلیتهای کلود ارائه کند ممکن است فریمورک OpenStack را به عنوان یک پلتفرم کلود اختصاصی دیپلوی کند؛ یا به عنوان مثال دیگر LAMP -که مخفف واژگان Linux Apache MySQL PHP است- را میتوانیم پلتفرمی برای توسعهٔ نرمافزار بر بستر لینوکس بخوانیم که شامل یکی از توزیعهای لینوکس همچون اوبونتو یا دیبان به عنوان سیستمعامل و زبان برنامهنویسی PHP به عنوان زبان توسعهٔ سورسکد میشود.