عنوان:

‫چرا MCP؟ (بخش اول- مقدمه)


نویسنده: سپهر شمسائی
تاریخ: ۱۴۰۴/۰۲/۲۶ ۰۷:۳۵
آدرس: www.dntips.ir
چرا MCP ؟
شاید ساده ترین و کوتاه ترین پاسخ به این سوال که چرا MCP «استاندارد‌‌ ‌‌‌‌‌‌‌‌سازی» باشد.
اجازه دهید جواب طولانی تر و قانع‌کننده تر را با نگاهی تاریخی به الگوهای تکرار شونده در تکنولوژی ادامه دهیم چراکه ظهور پروتکل های جدید اغلب نتیجه‌ی طبیعی تکامل فناوری و نیاز به یکپارچگی است. بنظر میرسد این بار نیز نوبت به پروتکل نوظهور MCP رسیده و می‌توانیم تا حدودی روند های گذشته را به این پروتکل تعمیم دهیم. در ادامه مروری بر چند «چرا» خواهیم داشت:

1. چرا USB ؟
احتمالاً برجسته ترین مثال از تکنولوژی در جهت استاندارد سازی روش های پراکنده، USB باشد که در نهایت از بین چندین تکنولوژی رقیب انتخاب شده و تبدیل به نمونه ای کلاسیک شد. در دهه ۱۹۹۰ روش های زیادی نظیر پورتهای سریال (RS-232)، پورتهای موازی (Parallel)، اسکازی PS/2، SCSI و فایروایر Firewire ، اغلب بابت ارتباط کامپیوتر‌ها با لوازم جانبی مانند ماوس، کیبورد، پرینتر و اسکنر وجود داشتند. که مرور کوتاهی بر آنها خواهیم داشت.

FireWire (IEEE 1394)
  • کاربرد: انتقال داده با سرعت بالا، به‌ویژه برای ویدیو و صدا.
  • مزایا: سرعت بالا تا 800 Mbps ، مناسب برای تجهیزات حرفه‌ای مانند دوربین‌های فیلم‌برداری.
  • ضعف: گران‌تر ازUSB، محبوبیت کمتر، پیچیدگی بیشتر در پیاده‌سازی.

Thunderbolt
  • کاربرد: انتقال سریع داده، تصویر، و برق؛ بیشتر در کامپیوترهای اپل و ایستگاه‌های کاری حرفه‌ای.
  • مزایا: سرعت بسیار بالا تا 40 Gbps، پشتیبانی از چند پروتکل.
  • ضعف: هزینه بالا، کاربرد محدود در دستگاه‌های غیر اپلی.

Serial Port (RS-232)
  • کاربرد: ارتباط با تجهیزات قدیمی مانند مودم‌ها، پرینترهای صنعتی.
  • مزایا: سادگی، پایداری در فواصل طولانی.
  • ضعف: سرعت بسیار پایین، قابلیت توسعه کم، ابعاد بزرگ کانکتور.

Parallel Port
  • کاربرد: اتصال پرینترها و اسکنرهای قدیمی.
  • مزایا: انتقال هم‌زمان چند بیت.
  • ضعف: کابل حجیم، سرعت پایین نسبت به USB، منسوخ‌شده.

PS/2
  • کاربرد: اتصال کیبورد و ماوس به کامپیوترهای قدیمی.
  • مزایا: عملکرد پایدار، اختصاصی بودن برای ورودی‌ها.
  • ضعف: پشتیبانی فقط از ماوس/کیبورد، سرعت و انعطاف پایین.

eSATA
  • کاربرد: اتصال هارد دیسک‌های خارجی با سرعت بالا.
  • مزایا: سرعت بالا برای ذخیره‌سازی.
  • ضعف: عدم پشتیبانی از برق‌رسانی از طریق کابل، پورت‌های محدود

جدول زیر این مقایسه را بطور خلاصه نمایش میدهد.

فناوری (Technology)معایب (Disadvantages)مزایا (Advantages)سرعت تقریبی (Approximate Speed)کاربرد اصلی (Main Application)
FireWireگران، محبوبیت کمتر، پشتیبانی محدود (Expensive, less popular, limited support)سرعت بالا، مناسب برای تجهیزات حرفه‌ای (High speed, suitable for professional equipment)تا 800 Mbpsویدیو و صدا حرفه‌ای (Professional video and audio)
Thunderboltگران، بیشتر در دستگاه‌های اپل (Expensive, mostly in Apple devices)سرعت بسیار بالا، پشتیبانی از چند پروتکل (Very high speed, supports multiple protocols)تا 40 Gbps (نسخه 3 و 4)داده، تصویر، برق (چندمنظوره) (Data, image, power - multipurpose)
Serial (RS-232)کند، منسوخ، مناسب تجهیزات خاص (Slow, obsolete, suitable for specific equipment)ساده، پایدار در فواصل بلند (Simple, stable over long distances)تا 1 Mbpsدستگاه‌های صنعتی قدیمی (Old industrial devices)
Parallel Portبزرگ، کند، منسوخ شده (Large, slow, obsolete)انتقال چند بیت همزمان (Simultaneous multi-bit transfer)حدود 2 Mbpsپرینترهای قدیمی (Old printers)
PS/2فقط برای ورودی‌ها، بدون قابلیت Plug & Play (Only for inputs, without Plug & Play capability)پایدار، بدون نیاز به منابع زیاد (Stable, doesn't require many resources)حدود 10-16 Kbpsاتصال کیبورد و ماوس (Keyboard and mouse connection)
eSATAبدون برق‌رسانی، نیاز به پورت خاص (No power supply, requires a specific port)سرعت بالا برای انتقال فایل (High speed for file transfer)تا 6 Gbps (SATA III)هارد دیسک‌های خارجی (External hard drives)
USBگاهی ناسازگاری نسخه‌ها، کابل‌های متنوع (Sometimes version incompatibility, various cables)ارزان، گسترده، Plug & Play، برق‌رسانی (Cheap, widespread, Plug & Play, power supply)تا 40 Gbps (USB4)چندمنظوره (ورودی، خروجی، شارژ) (Multipurpose - input, output, charging)

دلایل موفقیت USB:
  • جایگزینی استانداردهای پراکنده و ناسازگار: قبل از USB هر دستگاه جانبی (مانند کیبورد، ماوس، چاپگر) از پورت‌های اختصاصی استفاده می‌کرد که اغلب ناسازگار با یکدیگر بودند. برای مثال پورت سریال برای مودمها و برخی دستگاه‌های صنعتی، پورت موازی عمدتاً برای چاپگرها، PS/2 برای کیبورد و ماوس. USB با ارائه یک رابط جهانی، امکان اتصال تمام دستگاه‌ها به یک پورت استاندارد را فراهم کرد.
  • مزایای فنی برتر: سرعت انتقال داده، نسل اول USB (1.0) با سرعت ۱۲ مگابیت بر ثانیه، از پورت موازی (حدود ۱ مگابیت) سریع‌تر بود. امکان اتصال گرم (Hot-Swapping) که اجازه میداد بدون نیاز به راه‌اندازی مجدد سیستم اتصال وصل شود. USB توانایی تأمین برق (تا ۵ ولت) برای دستگاه‌های کم‌مصرف مانند ماوس را داشت و همچنینUSB اتصال چندین دستگاه با استفاده از هاب‌ها، تا ۱۲۷ دستگاه به یک پورت را فراهم میکرد.
  • حمایت صنعتی گسترده : شرکت‌های بزرگی مانند اینتل، مایکروسافت، اپل، و اچ‌پی در توسعه USB مشارکت کردند. این همکاری منجر به سازگاری بین سیستمعامل‌ها (ویندوز، مک، لینوکس) شد و هزینه تولید برای سازندگان دستگاه‌ها را بطور قابل توجهی کمتر کرد.
  • تکامل مستمر : USB با معرفی نسل‌های جدید (مانند USB 2.0، 3.0، و USB-C) همواره نیازهای نوین را پوشش داده است. در نسخه های جدید تر USB سرعت تا ۲۰ گیگابیت بر ثانیه پشتیبانی شد و در ادغام با Thunderbolt پشتیبانی از ویدئوی 8k فراهم شد. این آینده نگری و انعطاف پذیری یکی از دلایل مهم پذیرش USB بوده است.
  • پذیرش USB نشان می‌دهد که یک استاندارد موفق نیازمند همکاری صنعتی، مزایای فنی ملموس، و سازگاری با نیازهای متنوع کاربران است. امروزه USB نه تنها در رایانه‌ها، بلکه در شارژرهای موبایل، خودروها، و حتی دستگاه‌های پزشکی نیز کاربرد جهانی دارد.

2. چرا Blu-Ray ؟
در اواسط دهه ۲۰۰۰، دو استاندارد برای دیسک‌های نوری با وضوح بالا (HD) رقابت می‌کردند:
  • Blu-ray: توسعه‌ یافته توسط اتحادیه Blu-ray Disc Association(شامل سونی، پاناسونیک، اپل، و دیگران).
  • HD DVD: حمایت شده توسط Toshiba، و حمایت اولیه توسط مایکروسافت و اینتل.
هر دو تکنولوژی قصد داشتند جایگزین DVD های قدیمی شوند اما بازار فقط به یک تکنولوژی اجازه موفقیت میداد.
از دید فنی Blu-ray مزایایی نسبت به HD DVD داشت از جمله اینکه ظرفیت ذخیره‌سازی Blu-ray تا ۵۰ گیگابایت (دو لایه) در مقابل ۳۰ گیگابایت HD DVD بود. فناوری پیشرفته محافظت از محتوا یا سیستم AACS در Blu-ray امنیت بهتری داشت. Blu-ray از ابتدا برای پشتیبانی از قابلیت‌های آینده (مثل 3D و HDR) طراحی شده بود. همین مزایا کافی بود تا استودیو‌های فیلم سازی هالیوود و شرکت Disney رفته رفته خطوط تولید خود را به سمت استفاده از Blu-ray منتقل کنند. در ژانویه سال 2008 استودیو Warner ژانویه اعلام کرد انحصاراً به Blu-ray می‌پیوندند. این تصمیم باعث سقوط سهم بازار HD DVD شد و این به معنای پایان HD DVD تلقی شد زیرا در ماه فوریه توشیبا رسماً توقف HD DVD را اعلام کرد.
پیروزی Blu-ray نشان می‌دهد که حتی در رقابت بین دو استاندارد فنی قوی، حمایت صنعتی، استراتژی بازاریابی، و هماهنگی با نیازهای مصرف‌کنندهمی‌تواند تعیین‌کننده باشد. امروزه Blu-ray به عنوان استاندارد اصلی رسانه‌های فیزیکی HD شناخته می‌شود، در حالی که HD DVD در سال ۲۰۰۸ به طور رسمی متوقف شد. موفقیت Blu-Ray نه فقط در بعد فنی بلکه در همکاری شرکت‌های کلیدی(مثل سونی و استودیوهای فیلم)، ادغام با محصولات پرفروش (مثل پلی‌استیشن 3) و انعطاف‌پذیری برای آینده از منسوخ شدن جلوگیری نموده و باعث پذیرش و افزایش نفوذ آن در اکوسیستم شد.

3.چرا ODBC ؟
ODBC (Open Database Connectivity) یک استاندارد مهم در دنیای پایگاههای داده است که در اوایل دهه ۱۹۹۰ میلادی برای حل یک مشکل کلیدی ایجاد شد: عدم قابلیت همکاری بین پایگاههای داده و برنامههای کاربردی.
قبل از ظهور ODBC بابت اتصال به دیتابیس های مختلف از سیستم عامل های مختلف یا زبان های برنامه نویسی مختلف راه حل های متفاوتی وجود داشت اما در ابتدای دهه 90 میلادی شرکت مایکروسافت با هدف فراهم کردن یک روش یکپارچه برای ارتباط برنامه‌های کاربردی با پایگاههای داده مختلف، بدون نیاز به نوشتن کدهای خاص برای هر سیستم، ODBC را توسعه داد.
در ادامه مراحل اصلی شکلگیری آن را بررسی میکنیم:

  • دوران پیش از ODBC (دهه ۱۹۸۰)
هر پایگاه داده (مثل Oracle، IBM DB2، Sybase و غیره) رابط برنامهنویسی (API) خاص خود را داشت و برنامه‌نویسان مجبور بودند برای اتصال به هر پایگاه داده کدهای اختصاصی بنویسند. این موضوع منجر به وابستگی به فروشنده خاص (Vendor Lock-in) و افزایش هزینه‌ها میشد.

  • تولد ایده استانداردسازی (۱۹۹۰–۱۹۹۲)
مایکروسافت و شرکت Simba Technologies (متخصص در فناوریهای پایگاه داده) همکاری کردند تا یک رابط یکپارچه برای دسترسی به پایگاههای داده ایجاد کنند. هدف اصلی امکان اتصال برنامه‌هایی مثل اکسل و اکسس (اولین نسخه از مایکروسافت آفیس در سال 1989 ارائه شد) به هر نوع پایگاه داده بدون نیاز به کدنویسی اختصاصی بود.

  • معرفی رسمی ODBC (۱۹۹۲)
مایکروسافت در سال ۱۹۹۲ اولین نسخه ODBC را به عنوان بخشی از Microsoft Open Database Connectivity معرفی کرد. این فناوری به سرعت به یکی از اجزای کلیدی Windows Open Services Architecture (WOSA) تبدیل شد. ایده اصلی ایجاد یک لایه انتزاعی بین برنامه ها و پایگاههای داده با استفاده از درایورهای ODBC (ODBC Drivers) بود که توسط فروشندگان پایگاه داده توسعه پیدا می‌کردند. به این ترتیب بجای اینکه هر توسعه دهنده نیاز به پیاده سازی منطق اتصال به پایگاه داده شود، تولید کنندگان پایگاه داده این ابزار را ارائه می‌نمودند.

  • استانداردسازی و گسترش (۱۹۹۵ به بعد)
ODBC توسط گروه های استانداردسازی مانند X/Open (اکنون بخشی از The Open Group) و ISO به عنوان یک استاندارد بین المللی پذیرفته شد (ISO/IEC 9075-3:1995). این استانداردسازی باعث شد ODBC نه تنها در ویندوز، بلکه در سیستمهای Unix، Linux و سایر پلتفرمها نیز مورد استفاده قرار گیرد. شرکتهای بزرگی مثل Oracle، IBM و SAP از ODBC پشتیبانی کردند و درایورهای اختصاصی خود را منتشر کردند.

ODBC تاثیر عمیقی بر اکوسیستم فناوری داشت. از این منظر که برنامه ها دیگر نیازی به آگاهی از جزئیات پایگاه داده نداشتند یک انقلاب در دسترسی به داده ها محسوب می‌شد. همچنین باعث کاهش وابستگی به فروشنده های پایگاه داده شد و توسعهدهندگان میتوانستند با یک کد بیس به چندین پایگاه داده متصل شوند.
مفاهیم و ایده های ODBC الهام بهش استاندارد های بعدی نظیر JDBC و ADO.NET شد تا جایی که در دنیای امروز هم با وجود ظهور فناوریهای جدیدتر (مثل ORMها و APIهای اختصاصی)، ODBC همچنان در محیطهای سازمانی و سیستمهای قدیمی (Legacy Systems) به طور گسترده استفاده میشود. این استاندارد به عنوان یک پل ارتباطی بین برنامه ها و پایگاههای داده، نقش حیاتی در تاریخچه فناوری اطلاعات ایفا کرده است.

4.چرا REST ؟
در زمینه معماری و پروتکل وب سرویس، استاندارد های بسیاری توسط غول های تکنولوژی نظیر گوگل و مایکروسافت ارائه شد که توفیقاتی نیز در پذیرش عمومی داشتند تا اینکه در اوایل دهه ۲۰۰۰ میلادی، زمانی که روی فیلدینگ (Roy Fielding) در رساله دکتری خود با عنوان «سبک‌های معماری و طراحی نرم‌افزارهای مبتنی بر شبکه» یک روش معماری مدرن را معرفی کرد. در این رساله، فیلدینگ Representational State Transfer یا REST را به عنوان یک سبک معماری برای طراحی برنامه‌های تحت شبکه ارائه داد. REST بر اساس اصول وب جهانی (World Wide Web) طراحی شد و به عنوان جایگزینی برای پروتکل‌های دیگر web service مانند SOAP و RPC پیشنهاد شد. هدف REST ارائه یک روش ساده‌تر، سبک‌وزن و مقیاس‌پذیرتر برای معماری Web Service بود. مقالات زیادی به علل محبویت و فراگیری REST پرداخته اند که اعتقاد بسیاری دلیل عمده محبوبیت REST در قیاس با سایر رقبابش سادگی، مقایس پذیری و آسان بودن استفاده از آن باشد.
REST به عنوان استاندارد غالب جایگزین پروتکل‌های قدیمی مانند SOAP و XML-RPC شد. این پذیرش گسترده دلایل فنی، عملیاتی و اکوسیستمی مشابه موفقیت USB دارد. در ادامه مقایسه‌ای بین این استانداردها و دلایل برتری REST ارائه می‌شود:

مقایسه معماری‌ها
  • SOAP (Simple Object Access Protocol)
  • ساختار پیچیده: مبتنی بر XML با استانداردهای سختگیرانه (مانند WSDL برای توصیف سرویس و WS-Security برای احراز هویت).
  • حالت‌دار (Stateful): برخی پیاده‌سازی‌ها نیاز به مدیریت وضعیت (state) بین درخواست‌ها دارند.
  • وابسته به پروتکل: عمدتاً روی HTTP/S اجرا می‌شود، اما الزامی نیست.

  • XML-RPC
  • قدیمی و محدود: از XML برای کدگذاری داده‌ها و HTTP برای انتقال استفاده می‌کند.
  • فاقد انعطاف: فقط از یک متد (فراخوانی رویه) پشتیبانی می‌کند و برای عملیات پیچیده مناسب نیست.

  • REST (Representational State Transfer)
  • معماری ساده و بدون حالت (Stateless): هر درخواست مستقل است و نیازی به ذخیره وضعیت سرور ندارد.
  • مبتنی بر HTTP: از متودهای استاندارد HTTP (GET, POST, PUT, DELETE) و URIها برای شناسایی منابع استفاده می‌کند.
  • فرمت‌های سبک: از JSON (رایج‌ترین)، XML، یا حتی متن ساده پشتیبانی می‌کند.
دلایل پذیرش REST توسط جامعه توسعه‌دهندگان
  • سادگی و سهولت پیاده‌سازی
  • REST از مفاهیم آشنا مانند URLها و متودهای HTTP استفاده می‌کند، در حالی که SOAP نیازمند یادگیری استانداردهای پیچیده (مثل WSDL و WS-*) است.
  • JSON به جای JSON : XMLخواناتر و سبک‌تر است و با زبان‌های مدرن مانند JavaScript سازگاری کامل دارد.

  • عملکرد و مقیاس‌پذیری
  • بدون حالت (Stateless): سرور نیازی به ذخیره وضعیت کلاینت ندارد، بنابراین بار (load) سیستم کاهش می‌یابد.
  • قابلیت کش (Caching): با استفاده از هدرهای HTTP مانند `Cache-Control`، پاسخ‌ها قابل ذخیره در مرورگر یا CDNها هستند.
  • پهنای باند کمتر: JSON نسبت به XML حجم داده کمتری تولید می‌کند.

  • انعطاف و سازگاری
  • عدم وابستگی به پلتفرم: REST می‌تواند با هر زبانی (Python, Java, JavaScript و ...) و هر دستگاهی (موبایل، وب، IoT) ادغام شود.
  • پشتیبانی از چندین فرمت: توسعه‌دهندگان می‌توانند بین JSON، XML، یا حتی فرمت‌های باینری (مانند Protocol Buffers) انتخاب کنند.

  • اکوسیستم گسترده
  • ابزارهای توسعه: فریمورک‌هایی مانند Express.js (Node.js)، Django REST Framework (Python)، و Spring Boot (Java) پیاده‌سازی REST را بسیار آسان کرده‌اند.
  • APIهای عمومی: اکثر سرویس‌های مدرن (مانند Twitter، Google Maps، و GitHub) از REST استفاده می‌کنند.

  • همسویی با معماری وب
  • REST از اصول اولیه وب (مانند URIها و HTTP) پیروی می‌کند و برای توسعه‌دهندگان وب شهودی‌تر است.
  • مناسب برای میکروسرویس‌ها: سبک بودن REST آن را به انتخاب اصلی برای معماری‌های توزیع شده و ابری تبدیل کرده است.

نتیجتاً REST با حذف پیچیدگی های غیرضروری توسعه و ارتباطات را تسهیل کرد و بعد تر شرکت‌های بزرگی مانند آمازون، گوگل، و Netflix از REST در API های عمومی خود استفاده کردند و استانداردسازی را تسریع کردند.
REST با نیازهای مدرن (مانند cloud، موبایل، و واقعیت مجازی) سازگار شده است، در حالی که SOAP در گذشته گیر کرده است.
امروزه حتی پروتکل‌های جدیدی مانند GraphQL (که توسط فیس‌بوک توسعه یافت) نیز با وجود مزایای خاص خود، نتوانسته‌اند جایگزین کامل REST شوند. REST به دلیل سادگی، انعطاف، و اکوسیستم قدرتمند، همچنان استاندارد طلایی طراحی API در نظر گرفته می‌شود.