Internet Server API (ISAPI) یک API است که اجازه توسعه و گسترش قابلیتهای موجود در وبسرور MS-IIS را برای برنامهنویسان فراهم می کند، تا جایی که ISAPI extensionها هیچ محدودیتی در دسترسی و استفاده از IIS ندارند. این API بهصورت اختصاصی برای کار با IIS طراحی شده اما وبسرورهای دیگر نظیر Apache نیز برای پشتیبانی از نرمافزاهای تحت وب نوشته شده به زبان ASP.Net از یک ماژول ISAPI استفاده میکنند. میتوان گفت ISAPI قابلیتهایی مشابه Common Gateway Interface (CGI) را در اختیار برنامهنویس قرار میدهد با این تفاوت که از CGI، ASP و فایلهای COM+ components سرعت اجرای بیشتری دارد.
ISAPI شامل دو بخش Extensions و Filters است که توسعه آن به کمک این دوبخش صورت میگیرد، با توجه به اینکه ISAPI یک سیستم برنامهنویسی سطح پایین برای دستیابی به کارایی و سرعت اجرای بیشتر است، کدنویسی ISAPI filters و ISAPI extensions تنها با زبان C یا ++C یا هر زبان برنامهنویسی که بتوان خروجی استاندارد توابع C از آن گرفت، صورت میگیرد. در ادامه توضیح مختصری در باره این دو بخش و روش فعالسازی آنها در MS-IIS گفته خواهد شد.
ISAPI Extensions:
ISAPI Extensions برنامههایی کاربردی هستند که به کلیهی قابلیتهای IIS دسترسی کامل و جامع دارند، و در جهت مدیریت و توسعه IIS استفاده میگردند. از مزایایی این Extensionها میتوان به سرعت اجرا بالا و پردازش سریع به دلیل کدهای کامپایل شده آن اشاره کرد.
همانطور که در تصویر فوق مشاهده مینمائید برقراری ارتباط بین Extension و IIS از طریق یک اشاره گرِ نوع ECB، یا Extension Control Block است. بطور خلاصه ISAPI extension یک DLL منظم (regular) میباشد که از سه تابع زیر جهت برقراری ارتباط با وبسرور استفاده میکند.
هنگامی که Client (سرویسگیرنده) در خواستی را به وبسرور ارسال میکند، چنانچه درخواست شامل فایلهای ایستا مانند HTML، JS، تصاویر و غیره باشد، IIS خود درخواست را پردازش و پاسخ را به سرویسگیرنده بازمیگرداند، در غیر اینصورت با توجه به نوع فایلِ پویا، درخواست به ISAPI dll مربوط تحویل داده میشود، به عبارت دیگر DLL مورد نظر بصورت یکتابع و با آرگومانهای خاص توسط IIS فراخوانی میگردد. بهعنوان مثال پردازش درخواستهای ارسال شدهی صفحات ASP، توسط ISAPI extensionای به نام asp.dll انجام میگیرد.
ISA درخواست ارسال شده از سمت کاربر را پردازش کرده و محتوا را بهعنوان پاسخ ارائه و یا آن را در بانکاطلاعاتی ذخیره میکند، وبسرور اکستنشن (Web server extensions) اینقابلیت را دارد که از اطلاعات ذخیره شده برای ساخت پویای صفحات وب استفاده نموده و برای نمایش به سیستم کاربر ارسال کند، برنامهنویس میتواند قابلیتها و دادههای مورد نظر خود را به این صفحه ساختهشده افزوده و صفحهوب نهایی را با استفاده از HTTP و HTML به کاربر تحویل دهد.
ISAPI Filter:
وظیفه ISAPI Filter، فیلترینگ درخواستهایی که به وب سرور ارسال، و پاسخگوئی به event (رُخداد)هایی که از سمت IIS ارسال میشود، است. بهعنوان مثال ISAPI Filter میتواند اطلاعاتی آماری درباره درخواستهای http تهیه و در یک بانکاطلاعاتی ذخیره کند که حکم یک نوع Log را خواهد داشت، و یا ساختارورودی فایلهای فیزیکی را کنترل کند.
برخی از ویژگی هایی که با ISAPI Filter انجام میشود به شرح زیر است:
فعال سازی ISAPI در Windows Server 2008 R2:
چگونگی اضافه نمودن ISAPI filter در IIS:
برای مطالعه بیشتر میتوانید به Microsoft MSDN مراجعه نمایید.
کلیه حقوق مادی و معنوی این سایت متعلق به آسان رایان می باشد
Registrant Rights and Responsibilities