در
قسمت قبلی گفتیم که IIS از تعدادی کامپوننت تشکیل شده است و به یکی از آنها به نام Http.sys پرداختیم. در این قسمت قصد داریم به WWW Services بپردازیم.
اجازه بدهید قبل از هر چیزی به دو مفهوم اصلی در IIS بپردزیم :
1. Worker Process
2. Application Pool
پروسههای کارگر w3wp.exe
وظیفهی اجرای برنامههای asp.net را در IIS ، به عهده دارند. این پروسهها مسئولیت پردازش
تمامی درخواست و پاسخها از/به کلاینت را دارند. هر کاری که باید در asp.net انجام بشود، توسط اینها صورت میگیرد. به بیان
سادهتر این پروسهها قلب برنامههای
ASP.Net بر روی IIS هستند .
Application Pool:این پولها در واقع ظرفی یا در برگیرنده ای برای پروسههای کارگر به
حساب میآیند. این پولها پروسههای کارگر را از هم جدا و دسته بندی میکنند تا
قابلیت اعتماد، امنیت و در دسترس بودن بدهند. موقعی که یک پروسه یا حتی یک پول
دچار مشکل میشود، این اطمینان داده میشود که تاثیری بر دیگر پولها یا پروسههای
کارگر، ندارد. یعنی موقعی که یک web
application دچار
مشکل شود، هیچ تاثیری بر اجرای web
applicationهای دیگر ندارد. به یک application pool با چند پروسه کارگر web garden میگویند.
World Wide WebPublishing Services
یکی از قدیمیترین امکانات موجود در IIS هست که از نسخه 7 به بعد، کار خود را با یک سروریس جدید به اسم Windows Process Activation Service یا به اختصار WAS که به صورت local system بر روی پروسه Svchost.exe با یک کد باینری یکسان اجرا میشود، شریک شده است. ممکن است در بعضی جاها WWW Service به صورت W3SVC هم نوشته شود.
اصلا این WWW Service چه کاری انجام میدهد و به چه دردی میخورد؟
این سرویس در سه بخش مهم IIS 6 به فعالیت میپردازد:
- HTTP administration and configuration
- Performance monitoring
- Process management
HTTP Administration and Configuration
سرویس WWW وظیفه خواندن اطلاعات پیکربندی IIS از متابیس را بر عهده دارد و از این اطلاعات خوانده شده برای پیکربندی و به روز کردن Http.sys استفاده میکند. به غیر از این کار، وظیفه آغاز و توقف و نظارت یا مانیتورینگ و همچنین مدیریت کامل پروسههای کارگر در زمینه http request را هم عهده دار است.
Performance Monitoring
سرویس WWW بر کارآیی وب سایتها و کش IIS نظارت میکند و البته یک شمارنده کارآیی performance counter هم ایجاد میکند. کار شمارنده کارآیی این است که اطلاعات یک سرویس یا سیستم عامل یا یک برنامه کاربردی را جمع آوری میکند تا به ما بگوید که این بخشها به چه میزانی بهینه کار خود را انجام میدهند و به ما کمک میکنند که سیستم را به بهترین کارآیی برسانیم. سیستم عامل، شبکه و درایورها، دادههای شمارشی را تهیه و در قالب یک سیستم نظارتی گرافیکی به کارشناس سیستم یا شبکه نشان میدهند. برنامه نویسها هم از این طریق میتوانند برنامههای خود را بنویسند که در
اینجا لیستی از شمارندهها در دانت نت را میتوانید ببینید و بیشتر آنها از طریق فضای نام system.diagnostic در دسترس هستند.
Process Management
سرویس www مدیریت application pool و پروسههای کارگر را هم به عهده دارد. این مدیریت شامل شروع و توقف و بازیابی پروسههای کارگر میشود. به علاوه اینکه این سرویس کار نظارت بر صحت انجام عملیات پروسههای کارگر را هم جز وظایف خود میداند. وقتی که چندین بار کار پروسههای کارگر در یک دوره زمانی که در فایل پیکربندی مشخص شده با مشکل مواجه شود، از شروع یک پروسه کارگر دیگر جلوگیری میکند.
در نسخههای جدیدتر IIS چکاری بر عهده WWW Service است؟
در IIS7 به بعد، دیگر مدیریت پروسههای کارگر را به عهده ندارد؛ ولی به جای آن سمتی جدید را به اسم listener adapter، دریافت کرده است که یک listener adapter برای http listener یعنی Http.sys است. اصلیترین وظیفه فعلی را که انجام میدهد پیکربندی Http.sys میباشد. موقعی که اطلاعات پیکربندی به روز میشوند باید این تغییرات بر روی Http.sys اعمال شوند. دومین وظیفه آن این است موقعی که درخواست جدیدی وارد صف درخواستها میشود این مورد را به اطلاع WAS برساند.
WAS در قسمت سوم این مقاله توضیح داده خواهد شد.