رایانش مشبک تحت وب

امروز یک ایده به ذهنم رسید که نمی دونم واقعا مفید هست یا نه! یعنی واقعا در حد یه ایده ی خام هستش  و خیلی خیلی خیلی خوشحال می شم نظر بدید در موردش.

دبیرستان که بودم یه پروژه دیدم تو سایت دانشگاه berkeley به اسم BOINC که داشتند روی Grid Computing کار می کردند و از پروسسور هایی Client هایی که این برنامه رو داشتند برای یک سری محاسباتشون استفاده می کردند، محاسبات زیادی که نتیجه A به B بستگی نداره،ولی تعداد محاسبات خیلی زیاده. مثلا توی شکوندن یک رمز یا محاسبات ستاره شناسی و … . بعد به هر Client بسته به اینکه چقدر از پروسسورش اجازه استفاده داده و چندتا محاسبه انجام داده امتیاز داده می شد ( سوسول بازی های کار )

grid

 

 

الان که دارم این مطلب رو می نویسم و VLC هم باز هست از ۵٪ CPU دارم استفاده می کنم و از وقتی که لپ تاپم رو روشن کردم نهایت از ۸٪ش استفاده شده( بر اساس آمار Psensor )
خوب این یعنی هدر دادن کلی وقت CPU که می شد در جهت مثبتی ازش استفاده شه ولی نشده. چرا من از BOINC استفاده نمی کنم؟چون حال ندارم نصبش کنم و دوما خیلی از آدم ها هم نمی شناسند BOINC رو.( حالا سیستم های Grid واقعا زیاده ولی اینو من مثال زدم )

حالا ایده من چیه؟ رایانش مشبک تحت وب! برای رایانش مشبک از Web Worker و JavaScript استفاده کنیم، از یک سرور فایل جاوااسکریپت هر محاسبه و اطلاعاتی که باید پردازش بشه دریافت شه و تا وقتی اون سایت بازهست پردازش انجام شه و نتیجه با Ajax یا WebSocket به سرور ارسال شه.
حتی می تونه یک API باشه تا بقیه سایت ها هم ازش استفاده کنند و از کاربر اجازه بگیرند که حاضری برای کمک در پروژه X تا وقتی این سایت باز هست از پروسسورت استفاده بشه برای انجام محاسباتش؟ یا خود کاربر انتخاب کنه که دوست داره به چه پروژه ای کمک کنه ( مثلا یک پروسس برای شکستن رمز یا برای پزشکی یا … )
شاید حتی بشه ازش پول در آورد و براش بیزینس مدل نوشت که جاهایی که کار محاسباتی دارند بیاند ، اطلاعات خام و فایل جاواسکریپت محاسبشون رو بدند و بعدش نتیجه پردازش هارو تحویل بگیرند و حتی کاربرها عضو بشند و از اینکه قضیه پول در بیارند. ( یک چیزی تو مایه این سیستم های تبلیغات کلیکی مثل شبکه تبلیغات که واسطه تبلیغاتند، ولی یک جایی باشه برای واسطه گری برای انجام محسبات )
فرض کنید گوگل بیاد و این امکان رو فقط روی صفحه اصلیش قرار بده و فقط ۱٪ کاربرهام دعوتش برای این کارو لبیک بگند ( که البته می تونه اصلا اجازه نگیره و انگار همه لبیک گفتن دعوتش رو )، چقدر محاسبه انجام میشه!

عیب این روش اینکه جاواسکریپت کندتره تا یک برنامه نصبی ولی خیلی سریعتر می تونه همه گیر بشه و کاربرهای بیشتری رو درگیر کنه و توسعه این خیلی سریعتر و راحت تره! ( کلا اسکریپته تا یک برنامه کامپایل شده )

حالا دوستان نظرتون در موردش چیه؟

اگه خوبه من خودم خیلی دوست دارم روش کار کنم، کسی(کسایی) دوست داشت(ند) باهم اینکارو انجام بدیم خوشحال میشم.و اگر بده کجای کار مشکل داره؟

پ.ن: برای اطمینان از اینکه نتیجه درست هست، BOINC می یومد و هر پردازش رو توسط ۲تا کاربر انجام می داد، اگر MD5 نتیجه دومی با اولی یکی بود که هیچی، ولی اگر نبود مثل این بود که این پردازش اصلا انجام نشده!
یعنی می شه واسه اعتبار سنجی درستی پردازش ها فکرهایی کرد.

 

7 دیدگاه برای «رایانش مشبک تحت وب»

    1. خوب اصل ایده که چیز جدیدی نیست، یعنی Grid Computing اصلا چیز جدیدی نیست، ولی در مورد بیت کوین یکسری تفاوت اصلی وجود داره.
      نکته مهم قضیه اینکه بیت کوین اصلن تحت وب نیست و اصل ایده من استفاده از Web Worker هست واسه این پردازش ها. نکته بعدی اینکه بیت کوین اصلش بر عدم وجود سیستم تصدیق مرکزیه، یعنی هیچ سرور مرکزی وجود نداره در صورتی که این سیستم نیازمنده همچین چیزیه و نکته بعدی اینکه در بیت کوین فقط پردازشی انجام میشه که بیت کوین تولید کنه، یعنی به نظرم اصلا قابل قیاس نیستند ، چون هر کدوم هدف جدایی دارند.

  1. سلام (:
    این پست رو خیلی اتفاقی پیدا کردم، و نظرم جلب شد. ایده‌ی خیلی خوبیه! می‌شه توسعه‌اش داد.
    من برنامه نویس وب نیستم، بیشتر روی اپلیکیشن‌ها کار کردم. ولی می‌تونم یه جاهایی کمک کنم.

    دو سه تا چیز به ذهنم رسید که باید موقع طراحی این سیستم در نظر گرفته بشه.
    ۱) تو BOINC، اغلب تسک‌ها چند ساعت طول می‌کشن. و این امکان وجود داره که تسک‌ها Suspend و بعد Resume بشن. (مثلا سیستم خاموش شده.)
    ۲) BOINC این اجازه رو به کاربر می‌ده که بتونه استفاده از cpu و network و disk رو محدود کنه. مثلا بگه فقط تو یه ساعت‌های خاصی از network استفاده بشه، یا وقتی cpu در حال استفاده بود، boinc همه‌ی تسک‌هاش رو suspend کنه.
    (با این توضیح که روی سیستم من که هشت تا ده ساعت در روز روشن هست، بین ۵۰۰ تا ۷۰۰ مگ ترافیک اینترنت رو boinc داره استفاده می‌کنه. خوب، خیلی‌ها هستن که محدودیت حجم دارن.)

    یه نکته‌ی دیگه‌ای هم هست در مورد امتیازها: این امتیازها برای خیلی از کاربرها انگیزه‌ی مشارکت (یا ادامه دادن) تو BOINC ه. می‌شه تیم‌های مدارس رو مثال زد که با هم رقابت می‌کنن که بچه‌های کدوم مدرسه امتیازشون بیشتره. جزو چیزهاییه که فکر می‌کنم باید حتما وجود داشته باشه. یا یه چیز جایگزین برای انگیزه دادن به کاربر. حداقل اینکه بتونه میزان مشارکت‌اش رو ببینه.

    امیدوارم پروژه جدی بشه و چیز خوبی ازش در بیاد.
    موفق باشید (:

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

شما می‌توانید از این دستورات HTML استفاده کنید: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">