یک دقیقه را مثال زدم که در برنامه می توانی این طور تعریف کنی. روش عملکرد به اینصورت است که Client یک درخواست به سمت سرور ارسال می کند و سرور پاسخ می دهد و این درخواست می تواند مثلا هر یک دقیقه یک بار باشد یا هر زمان دیگر
ببین یک راه حل برای اینکه توانایی پاسخ گویی سرور به ایستگاه های مختلف افزایش یابد استفاده از روش Multi-Threaded است که در این روش Client درخواست اتصال TCP را ارسال می کند و در سمت سرور یک Thread برای این Client تعریف می شود و در سرورهای قوی می توان Request-Handling-Strategie تعریف کرد که شامل Thread pro Connection ,Thread per Requast , Thread Polling ,.... بشود
به زبان ساده ایستگاه درخواست می کند که اطلاعاتش را بفرستد و سرور هم می گوید بفرست آماده دریافت هستم و در مکانیسم Multi-Threaded می تواند همزمان به چند ایستگاه بگوید بفرستید و هر کدام که تمام شد ارتباط را می بندد تا یک ایستگاه دیگر امکان برقراری ارتباط داشته باشد.
حالا اگر نیاز داشته باشی به صورت آنی و حجم زیاد اطلاعات بفرستی باید روشی پیداکنی که در طرف ایستگاه امکان Multi-Threaded برای درخواست پیاده سازی شود , که آسان نیست.
یک مثال میزنم : اگر دقت کنی بعضی وقتها به یک سایت که مراجعه می کنی به علت ترافیک بالا سایت صفحه سایت را نمیتوانی ببینی و بعدها باید مراجعه کنی (معمولا پیغام Bad Request ) و یکی از روشهای از کار انداختن یک سرور اینترنتی هم که به آن حمله می کنند همین ارسال درخواست های زیاد همزمان است.
این مشکل را در سایتهای بزرگ مثل گوگل و .... نمی بینی. علت : استفاده از سرورهای قوی و Chain
به هم متصل هستند و بار اضافی یکی را دیگری پاسخ میدهد و اینکه با توجه به نیازی که در پاسخگویی دارند مرتب سرورها را بهینه می کنند و افزایش می دهند.
بنابراین این نتیجه گیری که خودت کردی درست است , می توان سیستم را توسعه داد که توانایی بیشتری داشته باشد اما یک جایی دیگر حد پایانی است (با توجه به تکنولوژی موجود در همان زمان) مگر اینکه شرکتی مثل گوگل باشد که از این خدمات پول کلان در می آورد و مرتب هم سرمایه گذاری می کند.
به هر حال اگر محدودیت سخت افزاری وجود نداشت هیچگاه لازم نبود CPU چند هسته ای تولید شود , هیچگاه لازم نبود برای ارتباط شبکه موبایل بعد از GPRS مثلا UMTS بیاید و یا HSDPA و بقیه روشهایی که در آینده خواهد آمد.
این ایده خیلی جالبیه و عالیه که دید مهندسی خوبی داری و راه حل تکنولوژی برای مشکلات موجود بررسی می کنی.من قصدم این بود که سیستمی باشه که به طور مثال توی نقشه واسش محدوده ای تعریف کنیم به اسم طرح ترافیک بعد هر خودرویی که واردش میشه واسش اخطار بفرسته و یا واسش جریمه صادر کنه (روی خودرو گیرنده مورد نظر نصب شده ) .... و این به تعداد میلیونی در سطح یک شهر یا کشور اجرا بشه
یا مثلا بیایم یک سری خیابون و بزرگراه رو واسشون حد سرعت تعیین کنیم توی برنامه و از اونطرف هم روی خودرو ها علاوه بر گیرنده یه کروز کنترل(یا یه همچین چیزی) بذاریم که با گیرنده هم در ارتباط باشه و نذاره خودرو ها از اون حد مجاز سرعت بتونن بیشتر برن توی اون خیابون یا بزرگراه
اگر دولتی بخواهد این پروژه را انجام دهد باید یکسری مشکلات مختلف را قبلش حل کرده باشد:
- بحث زیر ساخت مخابراتی باید قوی باشد و این سرمایه گذاری زیادی می خواهد
- سازمانهای تصمیم گیرنده باید همکاری کنند مثلا نیروی انتظامی که از راه خلاف کردن رانندگان درآمد دارد قطعا به نفعش نیست که چنین سیستمی خودکار سرعت ماشین را کاهش دهد و یا به هر نحوی از مکانیسم کنترل خیابانها کنار زده شود.
- پروژه باید صد در صد درست کار کند , در صورتی که حتی یک بار بر اثر باگ نرم افزار یا هر چی تغییر سرعت باعث تصادف یا کشته شدن فردی شود پرونده آن پروژه برای همیشه بسته است. راننده می گوید من نبودم و ادمین سیستم می گوید خود راننده بود!!
-بحث امنیتی دارد که در صورت بروز خرابکاری می توان کل خودروها را از یک مرکز متوقف کرد و در صورت نیاز خودروهای انتظامی یا امداد امکان وارد شدن به محدوده شهری را ندارند
-بحث استفاده از Jammer هم که هست یعنی هر راننده ای که بخواهد وارد محدوده شود jammer را روشن می کند و دیگر در محدوده دیده نمی شود!
فرضا اگر مجری این طرح شهرداری یا دولت باشد خوب گروه تصمیم گیرنده میگویند چقدر هزینه دارد و چه مشکلی حل می شود بعد می پرسند چه راه حلهای دیگری برای حل مشکل می توان با همان هزینه پیاده سازی کرد.
مشکل طرح ترافیک حضور تعداد زیادی خودرو در یک محدوده کوچک شهری است یک راه حل می تواند خرید ساختمانها و ساختن جاده بیشتر باشد , یا بردن ترافیک به زیر زمین مترو یا هر چی , یا کاهش تراکم در محدوده مثل انتقال شرکتها و ادارات به مناطق دیگر (طرحی که الان دولت دنبال می کند) و .... راه های دیگر که بنده تخصص آن را ندارم!
بنابراین از دید مشتری که نگاه کنی پیاده کردن چنین سیستمی رقبای دیگری یا در حقیقت راه حلهای دیگری دارد که مشکل را ممکن است حل کند.