MAHDIAR
5th April 2010, 01:43 AM
مقالات نرم افزاری
مقایسه
در مقام مقایسه IIS و آپاچی میتوان گفت که هر کدام دارای مزایا و معایبی نسبت به یکدیگر هستند. IIS فقط برای اجرا در ویندوز ساخته شده است بهخصوص نسخه ششم آن فقط در ویندوز ۲۰۰۳ قابلاجرا میباشد. اگر چه بسیاری از کارشناسان، این مسئله را نوعی نقطهضعف در ساختار IIS میدانند، برخی دیگر هماهنگی بسیار دقیق میان آن و ویندوز ۲۰۰۳ و سرویسهای دیگر سیستمعامل را که باعث آسانتر بودن مدیریت IIS شده است، از نقاط برتری آن به حساب میآورند. بهخصوص در نسخه ششم جدا شدن ماژول مخصوص دریافت درخواستها(Request) از ماژول ویژه پردازش آنها، سهم بهسزایی در افزایش کارایی آن داشته است. در این روش ماژول Listener که در کرنل مستقر شده است (Http.sys)، درخواستهای ارسالی از طرف کلاینتها را دریافتکرده و آنها را به ترتیب در داخل یک یا چند صف درخواست قرار میدهد. سپس IIS به این درخواستها با اختصاص حداقل یک پروسه کاری (Worker Process) به هر درخواست، پاسخ میدهد. این ویژگی باعث میشود حتی زمانی که IIS به شدت مشغول پاسخدهی به درخواستهای قبلی است، ماژول جداگانهای که در کرنل مستقر است، بتوانند درخواستهای جدید را دریافت کرده و حداقل آنها را در انتظار پاسخ قرار دهند. همچنین با این وضعیت، سیستمعامل میتواند کنترل بهتری را در اختصاص پروسههای لازم به IIS جهت پردازش درخواستها انجام دهد. در آپاچی هم جریان تا حدودی مشابه همین روال است. در این جا تعدادی ماژول با قابلیت انجام چند پردازش در واحد زمان (Multi Processing module) وظیفه دریافت و پاسخ به درخواستها را برعهده دارند. این ماژولها که با استفاده از تکنولوژی APR یا Apache Portable Runtime برروی بسیاری از سیستمعاملهایی که از کدهای کامپایل شده زبان C پشتیبانی میکنند، قابل اجرا هستند، با استفاده از امکانات و قابلیتهایMultithreading همان سیستمعامل میزبان به سرعت و به صورت همزمان درخواستهای رسیده از طرف کلاینتها را دریافت و پردازش میکنند.
امنیت
نحوه عملکرد وب سرور
یکی از مزایای، IIS ارتباط تنگاتنگ موجود بین آن و سیستمعامل است. این عامل سبب میشود تا IIS با توجه به اینکه سیستمعامل بسیاری از موارد امنیتی را قبل از رسیدن درخواست به وب سرور مورد بررسی قرار میدهد و هویت کاربران متصل را ارزیابی (Authentication) میکند، با اطمینان بیشتری به کار خود ادامه دهد. ضمن اینکه مدیر سیستم هم به دلیل اشتراک روشی که در تأمین امنیت بین سیستمعامل و وب سرور وجود دارد، مجبور به دوباره کاری نمیشود. به عنوان مثال اگر شما در اکتیودایرکتوری ویندوز ۲۰۰۳ دسترسی به یک یا چند فایل خاص را برای یک گروه از کاربران مجاز و برای گروهی دیگر غیرمجاز تعریف کرده باشید، این کاربران از هر روشی که بخواهند به آن فایلها دسترسی پیدا کنند (حتی از طریق وب سرور) باید تابع قواعد تنظیم شده در اکتیودایرکتوری باشند و این قوانین در IIS نیز حکمفرما است.
در مورد آپاچی نسخه دوم، مسئله به این سادگی و روانی نیست و قاعدتاً مدیریت امنیت در مورد آن پیچیدهتر و وقتگیرتر از IIS است. البته اکنون ماژولها و آداپتورهای جدیدی در آپاچی تعبیه شده که امکان ارتباط بین آن و اکتیودایرکتوری ویندوز یا Password یونیکس را بهوجود میآورد، اما باز هم میتوان گفت که اصولاً با وجود این ارتباط هم در آپاچی، سیستمعامل و وب سرور هر کدام ساز خود را میزنند و آپاچی چندان از قواعد امنیتی تعریف شده در سیستمعامل تبعیت نمیکند. البته بسیاری از طرفداران آپاچی این مسئله را نوعی نقطه قوت آپاچی دانسته و با ذکر این نکته که اولاً هر درخواست از طرف خارج باید از دو سد محکم سیستمعامل و وب سرور عبور کند و ثانیاً حفرههای امنیتی در سیستمعاملهای یونیکس و آپاچی بسیار کمتر از ویندوز و IIS است، استفاده از آپاچی را از لحاظ امنیتی دارای ریسک کمتری نسبت به IIS میدانند.
از لحاظ پروتکلهای امنیتی، هر دو وب سرور کلیه پروتکلها از جمله SSL ،IPsec و مکانیسمهای هویتسنجی Basic Digest LDAP را پشتیبانی میکنند.
مقایسه
در مقام مقایسه IIS و آپاچی میتوان گفت که هر کدام دارای مزایا و معایبی نسبت به یکدیگر هستند. IIS فقط برای اجرا در ویندوز ساخته شده است بهخصوص نسخه ششم آن فقط در ویندوز ۲۰۰۳ قابلاجرا میباشد. اگر چه بسیاری از کارشناسان، این مسئله را نوعی نقطهضعف در ساختار IIS میدانند، برخی دیگر هماهنگی بسیار دقیق میان آن و ویندوز ۲۰۰۳ و سرویسهای دیگر سیستمعامل را که باعث آسانتر بودن مدیریت IIS شده است، از نقاط برتری آن به حساب میآورند. بهخصوص در نسخه ششم جدا شدن ماژول مخصوص دریافت درخواستها(Request) از ماژول ویژه پردازش آنها، سهم بهسزایی در افزایش کارایی آن داشته است. در این روش ماژول Listener که در کرنل مستقر شده است (Http.sys)، درخواستهای ارسالی از طرف کلاینتها را دریافتکرده و آنها را به ترتیب در داخل یک یا چند صف درخواست قرار میدهد. سپس IIS به این درخواستها با اختصاص حداقل یک پروسه کاری (Worker Process) به هر درخواست، پاسخ میدهد. این ویژگی باعث میشود حتی زمانی که IIS به شدت مشغول پاسخدهی به درخواستهای قبلی است، ماژول جداگانهای که در کرنل مستقر است، بتوانند درخواستهای جدید را دریافت کرده و حداقل آنها را در انتظار پاسخ قرار دهند. همچنین با این وضعیت، سیستمعامل میتواند کنترل بهتری را در اختصاص پروسههای لازم به IIS جهت پردازش درخواستها انجام دهد. در آپاچی هم جریان تا حدودی مشابه همین روال است. در این جا تعدادی ماژول با قابلیت انجام چند پردازش در واحد زمان (Multi Processing module) وظیفه دریافت و پاسخ به درخواستها را برعهده دارند. این ماژولها که با استفاده از تکنولوژی APR یا Apache Portable Runtime برروی بسیاری از سیستمعاملهایی که از کدهای کامپایل شده زبان C پشتیبانی میکنند، قابل اجرا هستند، با استفاده از امکانات و قابلیتهایMultithreading همان سیستمعامل میزبان به سرعت و به صورت همزمان درخواستهای رسیده از طرف کلاینتها را دریافت و پردازش میکنند.
امنیت
نحوه عملکرد وب سرور
یکی از مزایای، IIS ارتباط تنگاتنگ موجود بین آن و سیستمعامل است. این عامل سبب میشود تا IIS با توجه به اینکه سیستمعامل بسیاری از موارد امنیتی را قبل از رسیدن درخواست به وب سرور مورد بررسی قرار میدهد و هویت کاربران متصل را ارزیابی (Authentication) میکند، با اطمینان بیشتری به کار خود ادامه دهد. ضمن اینکه مدیر سیستم هم به دلیل اشتراک روشی که در تأمین امنیت بین سیستمعامل و وب سرور وجود دارد، مجبور به دوباره کاری نمیشود. به عنوان مثال اگر شما در اکتیودایرکتوری ویندوز ۲۰۰۳ دسترسی به یک یا چند فایل خاص را برای یک گروه از کاربران مجاز و برای گروهی دیگر غیرمجاز تعریف کرده باشید، این کاربران از هر روشی که بخواهند به آن فایلها دسترسی پیدا کنند (حتی از طریق وب سرور) باید تابع قواعد تنظیم شده در اکتیودایرکتوری باشند و این قوانین در IIS نیز حکمفرما است.
در مورد آپاچی نسخه دوم، مسئله به این سادگی و روانی نیست و قاعدتاً مدیریت امنیت در مورد آن پیچیدهتر و وقتگیرتر از IIS است. البته اکنون ماژولها و آداپتورهای جدیدی در آپاچی تعبیه شده که امکان ارتباط بین آن و اکتیودایرکتوری ویندوز یا Password یونیکس را بهوجود میآورد، اما باز هم میتوان گفت که اصولاً با وجود این ارتباط هم در آپاچی، سیستمعامل و وب سرور هر کدام ساز خود را میزنند و آپاچی چندان از قواعد امنیتی تعریف شده در سیستمعامل تبعیت نمیکند. البته بسیاری از طرفداران آپاچی این مسئله را نوعی نقطه قوت آپاچی دانسته و با ذکر این نکته که اولاً هر درخواست از طرف خارج باید از دو سد محکم سیستمعامل و وب سرور عبور کند و ثانیاً حفرههای امنیتی در سیستمعاملهای یونیکس و آپاچی بسیار کمتر از ویندوز و IIS است، استفاده از آپاچی را از لحاظ امنیتی دارای ریسک کمتری نسبت به IIS میدانند.
از لحاظ پروتکلهای امنیتی، هر دو وب سرور کلیه پروتکلها از جمله SSL ،IPsec و مکانیسمهای هویتسنجی Basic Digest LDAP را پشتیبانی میکنند.