تورنادو (وب سرور). تورنادو یک وب سرور مقیاس پذیر، غیر مسدود شونده و چارچوب برنامه تحت وب به زبان پایتون و توسعه یافته توسط FriendFeed است . [ ۲] فرندفید به وسیلهٔ Facebook در سال ۲۰۰۹ خریداری و تورنادو پس از مدت کوتاهی بعد از آن متن باز شد. [ ۳]
تورنادو به صورت Event Orientedعمل می کند بنابراین کارایی بسیار بالایی در پردازش تعداد بسیار زیاد درخواست های IO Bound دارد. تورنادو راه حلی برای مسئله C10k نیز هست.
تورنادو از چهار بخش اصلی تشکیل شده است.
• Web Framework: این بخش از تورنادو مسئول دریافت درخواست های وب، پردازش آن ها و درنهایت ارسال خروجی است.
• HTTP Client And Server: تورنادو علاوه بر کلاینت همزمان، کلاینتی ناهمزمان برای ارسال درخواست های وب دارد. همچنین تورنادو دارای وب سروری ناهمزمان است و بیشتر شهرتش را مدیون همین وب سرور است.
• Asynchronous Networking: تورنادو یک کتابخانه نا همزمان شبکه نیز هست.
• Coroutines And Concurrency: تورنادو قادر به مدیریت درخواست های نا همزمان نیز هست و این کار را با استفاده از Decorative Coroutine انجام می دهد.
• Seamless Bidirectional Communication: ارتباطات یکپارچه و مانای دو طرفه
• Long Request - > Long Polling - > Comet Requests
• High Traffic : ترافیک زیاد
• Continuous Data Exchange: تبادل داده پیوسته
• بازی های آنلاین و چت روم ها
• تعداد زیاد کانکشن ها
• Push Notifications
• کار با سیستم های IO Bound
• این استاندارد ( wsgi ) ، stateless است و درخواست ها در این استاندارد چرخه ذیل را طی می کنند: Make Request - > Handle Request - > Prepare Headers - > Make Response - > Finish Request در این چرخه جایی برای پشتیبانی از درخواست های ناهمروند و غیربلاک شونده وجود ندارد.
• این استاندارد ( wsgi ) از هدر های آپگرید شده ( Upgrade Headers ) پشتیبانی نمی کند. وب سوکت را می توان یک ارتباط با هدر آپگرید شده دانست به صورتی که پس از ایجاد ارتباط بین کلاینت و سرور و Handshake با HTTP انجام می گیرد، پیامی از کلاینت به سرور برای آمادگی ایجاد ارتباطی مانا فرستاده می شود و درصورتی که سرور نیز آمادگی برقراری این نوع ارتباط را داشته باشد، هدر درخواست آپگرید شده و کانکشنی مانا بر مبنای TCP یا UDP ایجاد می شود. بنابراین فریم ورک های مبتنی بر این استاندارد از Websockets پشتیبانی نمی کنند.
• این استاندارد ( wsgi ) از Transfer Encoding پشتیبانی نمی کند. در واقع این استاندارد با پاسخ های فشرده شده با Gzip یا Deflate مشکل دارد. البته فریم ورک های مبتنی بر این استاندارد مانند Django و Pyramid از این قاعده تبعیت نمی کنند!
• یکی از مزایای این استاندارد ( wsgi ) پشتیبانی از Middlewareها است با این حال پشتیبانی از middlewareها را می توان نقطه ضعف هم دانست. در هر بار اجرای middlewareها متغیر های محیطی به صورت مستقل اجرا می شوند و درنتیجه زمان بیشتری از cpu به اجرای آن ها تخصیص می باید.
• این استاندارد ( wsgi ) با الهام از CGI طراحی شده است و درنهایت لایه ای انتزاعی برای یک Interface قدیمی است.
• برای این استاندارد ( wsgi ) یک API رسمی وجود ندارد.
• مشکلاتی مربوط به یونیکد در این استاندارد ( wsgi ) و فریم ورک های مبتنی بر آن وجود داشته که هم اکنون اکثر آن ها حل شده اند.
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلفتورنادو به صورت Event Orientedعمل می کند بنابراین کارایی بسیار بالایی در پردازش تعداد بسیار زیاد درخواست های IO Bound دارد. تورنادو راه حلی برای مسئله C10k نیز هست.
تورنادو از چهار بخش اصلی تشکیل شده است.
• Web Framework: این بخش از تورنادو مسئول دریافت درخواست های وب، پردازش آن ها و درنهایت ارسال خروجی است.
• HTTP Client And Server: تورنادو علاوه بر کلاینت همزمان، کلاینتی ناهمزمان برای ارسال درخواست های وب دارد. همچنین تورنادو دارای وب سروری ناهمزمان است و بیشتر شهرتش را مدیون همین وب سرور است.
• Asynchronous Networking: تورنادو یک کتابخانه نا همزمان شبکه نیز هست.
• Coroutines And Concurrency: تورنادو قادر به مدیریت درخواست های نا همزمان نیز هست و این کار را با استفاده از Decorative Coroutine انجام می دهد.
• Seamless Bidirectional Communication: ارتباطات یکپارچه و مانای دو طرفه
• Long Request - > Long Polling - > Comet Requests
• High Traffic : ترافیک زیاد
• Continuous Data Exchange: تبادل داده پیوسته
• بازی های آنلاین و چت روم ها
• تعداد زیاد کانکشن ها
• Push Notifications
• کار با سیستم های IO Bound
• این استاندارد ( wsgi ) ، stateless است و درخواست ها در این استاندارد چرخه ذیل را طی می کنند: Make Request - > Handle Request - > Prepare Headers - > Make Response - > Finish Request در این چرخه جایی برای پشتیبانی از درخواست های ناهمروند و غیربلاک شونده وجود ندارد.
• این استاندارد ( wsgi ) از هدر های آپگرید شده ( Upgrade Headers ) پشتیبانی نمی کند. وب سوکت را می توان یک ارتباط با هدر آپگرید شده دانست به صورتی که پس از ایجاد ارتباط بین کلاینت و سرور و Handshake با HTTP انجام می گیرد، پیامی از کلاینت به سرور برای آمادگی ایجاد ارتباطی مانا فرستاده می شود و درصورتی که سرور نیز آمادگی برقراری این نوع ارتباط را داشته باشد، هدر درخواست آپگرید شده و کانکشنی مانا بر مبنای TCP یا UDP ایجاد می شود. بنابراین فریم ورک های مبتنی بر این استاندارد از Websockets پشتیبانی نمی کنند.
• این استاندارد ( wsgi ) از Transfer Encoding پشتیبانی نمی کند. در واقع این استاندارد با پاسخ های فشرده شده با Gzip یا Deflate مشکل دارد. البته فریم ورک های مبتنی بر این استاندارد مانند Django و Pyramid از این قاعده تبعیت نمی کنند!
• یکی از مزایای این استاندارد ( wsgi ) پشتیبانی از Middlewareها است با این حال پشتیبانی از middlewareها را می توان نقطه ضعف هم دانست. در هر بار اجرای middlewareها متغیر های محیطی به صورت مستقل اجرا می شوند و درنتیجه زمان بیشتری از cpu به اجرای آن ها تخصیص می باید.
• این استاندارد ( wsgi ) با الهام از CGI طراحی شده است و درنهایت لایه ای انتزاعی برای یک Interface قدیمی است.
• برای این استاندارد ( wsgi ) یک API رسمی وجود ندارد.
• مشکلاتی مربوط به یونیکد در این استاندارد ( wsgi ) و فریم ورک های مبتنی بر آن وجود داشته که هم اکنون اکثر آن ها حل شده اند.
wiki: تورنادو (وب سرور)