بیایید در مورد وب سرویس بدانیم
خدمات وب برای فعال کردن یک برنامه کاربردی برای فراخوانی روشی از یک برنامه دیگر استفاده می شود. این برنامه ها می توانند روی یک رایانه یا رایانه های مختلف باشند. وب سرویس ها از پروتکل هایی مانند HTTP، XML و SOAP استفاده می کنند. از آنجایی که اینها پروتکل های باز و شناخته شده هستند، برنامه های کاربردی ساخته شده بر روی هر پلتفرمی می توانند با سرویس های وب همکاری کنند. به عنوان مثال، یک برنامه PHP می تواند با یک وب سرویس ساخته شده با استفاده از دات نت همکاری کند. به طور مشابه، یک وب سرویس ساخته شده با استفاده از پلتفرم های مختلف می تواند توسط یک برنامه دات نت مصرف شود.
پروتکل انتقال متن بیش از حد (HTTP) پروتکلی است که به طور گسترده توسط وب سرویس ها برای ارسال و دریافت پیام استفاده می شود. پروتکل پیام رسانی SOAP (پروتکل دسترسی به اشیاء ساده) است. پیام های SOAP در قالب XML هستند. خدمات وب دارای پسوند .asmx هستند. به همین دلیل، وب سرویس ها اغلب تحت عنوان خدمات وب ASMX نیز نامیده می شوند.
برای کسب اطلاعات بیشتر در مورد درخواست و پاسخ SOAP، به سایت مرجع زیر مراجعه کنید.
https://www.w3.org/2003/06/soap11-soap12.html
وب سرویس یک عملکرد مبتنی بر وب است که با استفاده از پروتکل های وب برای استفاده توسط برنامه های کاربردی وب قابل دسترسی است. سه جنبه توسعه وب سرویس وجود دارد:
- ایجاد وب سرویس
- ایجاد یک پروکسی
- مصرف وب سرویس
آشنایی با پروکسی در وب سرویس ASP.NET
یک پروکسی بخش اصلی کدهای وب سرویس است. قبل از استفاده از وب سرویس، باید یک پروکسی ایجاد شود. پروکسی با برنامه مشتری ثبت شده است. سپس، برنامه مشتری با وب سرویس تماس می گیرد که گویی از یک روش محلی استفاده می کند. پروکسی تماس ها را می گیرد، آن را در قالب مناسب بسته بندی می کند و به عنوان یک درخواست SOAP به سرور ارسال می کند. سپس از پروتکل SOAP برای تبادل داده های وب سرویس استفاده می شود.
هنگامی که سرور بسته SOAP را به مشتری برمی گرداند، پروکسی همه چیز را رمزگشایی می کند و آن را به برنامه مشتری ارائه می دهد.
ارتباط بین ویژوال استودیو و پروکسی
ویژوال استودیو یک کلاس پروکسی را با استفاده از سند Web Service Description Language (WSDL) سرویس وب ایجاد می کند. سند Web Service Description Language به طور رسمی یک وب سرویس را تعریف می کند. آن شامل،
- تمام روش هایی که توسط وب سرویس در معرض دید قرار می گیرند
- پارامترها و انواع آنها
- انواع برگشتی روش ها
این اطلاعات سپس توسط VS برای ایجاد کلاس پروکسی استفاده می شود. برنامه کلاینت متد کلاس پروکسی را فراخوانی می کند. سپس کلاس پروکسی پارامترها را سریال می کند، یک پیام درخواست SOAP آماده می کند و آن را به وب سرویس ارسال می کند. وب سرویس متد را اجرا می کند و یک پیام پاسخ SOAP را به پروکسی برمی گرداند. سپس کلاس پروکسی پیام پاسخ SOAP را از حالت سریال خارج کرده و به برنامه مشتری تحویل می دهد. ما مجبور نیستیم اشیاء .NET CLR را به و از فرمت SOAP سریال کنیم یا از سریال خارج کنیم. کلاس پروکسی از سریال سازی و سریال زدایی مراقبت می کند و زندگی یک توسعه دهنده را بسیار آسان تر می کند.
نکات مهم هنگام نوشتن کد برای خدمات وب:
- برای استفاده از شی جلسه asp.net در یک وب سرویس، کلاس وب سرویس باید از کلاس System.Web.Services.WebService و ویژگی EnableSession ویژگی WebMethod روی true تنظیم شود. پروتکل انتقال متن بیش از حد (HTTP) پروتکلی است که به طور گسترده توسط وب سرویس ها برای ارسال و دریافت پیام استفاده می شود. پروتکل پیام رسانی SOAP است. SOAP مخفف عبارت Simple Object Access Protocol است. پیام های SOAP در قالب XML هستند.
- توجه داشته باشید که یک وب سرویس کلاسی است که با ویژگی [WebService] تزئین شده است و از کلاس پایه System.Web.Services.WebService به ارث می رسد. ویژگی [WebService] می گوید که این کلاس حاوی کد یک وب سرویس است. فضای نام وب سرویس برای شناسایی منحصر به فرد سرویس وب شما در اینترنت از سایر سرویس هایی که قبلاً در وب وجود دارد استفاده می شود. فضای نام وب سرویس میتواند هر رشتهای باشد، اما معمولاً نام دامنه اینترنتی یک شرکت به آن داده میشود زیرا معمولاً منحصر به فرد هستند.
برای اینکه یک سرویس وب از جاوا اسکریپت فراخوانی شود، با استفاده از ASP.NET AJAX، کلاس وب سرویس را با ویژگی [System.Web.Script.Services.ScriptService] تزئین کنید.
- ویژگی Web Method برای تعیین توضیحات برای روش وب سرویس استفاده می شود.
- BufferResponse یک ویژگی بولی است. پیش فرض درست است. هنگامی که این ویژگی درست است، پاسخ متد وب سرویس XML به مشتری بازگردانده نمی شود تا زمانی که پاسخ به طور کامل سریالی شود یا بافر پر شود. از طرف دیگر، زمانی که این ویژگی نادرست باشد، پاسخ متد وب سرویس XML در حین سریال سازی به مشتری بازگردانده می شود.
به طور کلی، BufferResponse را تنها زمانی که روش سرویس وب XML حجم زیادی از داده را برمی گرداند، روی false تنظیم کنید.
- اگر میخواهید نتایج یک روش وب سرویس را ذخیره کنید، ویژگی CacheDuration است. این یک ویژگی عدد صحیح است و تعداد ثانیه هایی را که پاسخ باید در حافظه پنهان ذخیره شود را مشخص می کند. پاسخ برای هر پارامتر منحصر به فرد ذخیره می شود.
- Web Methods در یک وب سرویس همچنین می تواند بر اساس تعداد پارامترها بارگذاری شود. بارگذاری بیش از حد روش در سرویس های وب با استفاده از ویژگی MessageName ویژگی WebMethod امکان پذیر است. ویژگی MessageName برای شناسایی منحصر به فرد روشهای سرویس وب XML استفاده میشود.
- با استفاده از ASP.NET AJAX با سرویس وب تماس بگیرید، که امکان برگشت بخشی از پست صفحه را فراهم می کند. با بازگشت بخشی از پست صفحه، تنها بخش خاصی از صفحه بدون بارگیری مجدد کل صفحه به روز می شود.
- برای مقادیر کمتر داده، وقتی BufferResponse روی true تنظیم شده باشد، عملکرد وب سرویس بهتر است.
- در فایل Web.Config هنگامی که ویژگی allowCookies روی true تنظیم می شود، برنامه مشتری کوکی بازگشتی از وب سرویس ASMX را می پذیرد و آن را در تمام درخواست های بعدی که به وب سرویس داده می شود کپی می کند. این تضمین می کند که همان جلسه بین مشتری و وب سرویس حفظ می شود.
- برای استفاده از شی جلسه asp.net در یک وب سرویس، کلاس وب سرویس باید از کلاس System.Web.Services.WebService و ویژگی EnableSession ویژگی WebMethod روی true تنظیم شود.
مراحل ایجاد یک برنامه کاربردی ساده برای درک بهتر