آموزش Ajax بخش دهم

چه نوع داده هایی را میتوان از طریق وب سرویس ارائه داد ؟
هر داده ای کهserializebale باشد را می توان از طریق یک وب سرویس ارائه داد .برای مثال تعدادی از آنها در جدول زیر لیست شده اند .
نوع
|
توضیح
|
داده های اولیه
|
داده های پایه ای استاندارد مانندstring وint غیره.
|
نوع های enum
|
نو ع خای شمارشی مانندpublic enum color{redd=1 , blue=2}
|
کلاس ها و ساختارها
|
کلاس ها و ساختارهایی با اجزای پایلیک
|
آرایه ای از کلاس
|
آرایه ای از کلاس ها و ساختار ها
|
DataSet
|
نوع های داده ایDataSet مربوط به ADO.NET
|
آرایه ای از DataSet
|
مشخص است .
|
و غیره
|
|
چه نو ع داده های را می توان به یک وب سرویس پاس داد ؟
هنگام استفاده از پروتکل SOAP هر دو نوع داد های by-value وby-refrence یعنی(out/in) را میتوان استفاده کرد .پارامترهای by-refrence این خاصیت را دارند که میتوانند مقدار دو جهته بفرستند : به سرور و کلاینت. هنگام استفاده از پارامترهای ورودی با استفاده از پروتکلHTTP تنها نوع های داده ای محدودی پشتیبانی میشوندو باید تنها پارامترها از نوع by-value باشد .نوع پارامترهای ساپورت شده برای پروتکل HTTP در جدول زیر لیست شده اند:
جدول 2:نوع های داده ای مورد قبول برای استفاده با پروتکل HTTP :
نوع
|
توضیح
|
داده های اولیه (محدود شده )
|
اغلب داده های پایه ای استاندارد مانندstring وint غیره.
|
نوع enum
|
نوع های شمارشی
|
WSDL :
چگونه یک کلاینت می تواند حدس بزند که چه نوع توابع و پارامترها و موارد دیگری توسط یک وب سرویس ساپورت میشود ؟برای حل این مشکل تمام وب سرویس ها به صورت خودکار یک فایل XML را با فرمت SDL( service deciption language)تولید میکنند . این مورد به سادگی از طریق هر مرورگری با اضافه کردن یک "؟ SDL " به آدرس وب آن قابل مشاهده است .
توضیحات پشتیبانی شده توسط myservice را با فرمت نمایش SDL میدهد .
نحوه ی عملکرد وب سرویس ها :
اول از همه باید بگوییم که اساس وب سرویس ها به طور کلی روی استاندارهای آزاد است و به هیچ پلتفرم یا شرکت خاصی تعلق ندارد . یکی از جذابیت ها و دلایل موفقیت وب سرویس ها نیز در این مورد است که تفاوتی نمیکند که شما وب سرویس خود را روی چه پلت فرمی ارائه کنید ،ویندوز ، مکینتاش ،لینوکس ،سولاریس ،یونیکس،.....در هر حالت همه افراد میتوانند به سرور شما متصل شده و از وب سرویسی که ارائه می دهید استفاده کنند . این مورد دقیقا مشابه عملکرد سایت های وب است .در سایت های وب نیز تفاوتی ندارد که سروری که روی این سایت قرار گرفته و یا پلت فرمی که بوسیله آن نوشته شده است چیست و یا چگونه کار میکند .در هر صورت شما میتوانید به سادگی به ان متصل شده و از اطلاعات آن استفاده کنید .
دومین نکته ای که باید بدانید این است که وب سرویسی که در NET استفاده شده و به کار گرفته میشود تماما بر اساس مدل برنامه نویسی است که اغلب برنامه نویسان به استفاده از آن علاقه زیادی دارند :برنامه نویسی شی گرا .اگر شما نیز در اغلب برنامه های خود از اشیا استفاده میکنید در NET نیز به سادگی میتوانید وب سرویس ها را مورد استفاده قرار دهید .
اصلی که برای ایجاد یک وب سرویس مورد استفاده قرار میگیرد به این صورت است که یک کلاس ایجاد میکند که دارای متد های مختلفی است .البته نحوه ی توزیع و استفاده از این کلاس مانند کلاس های قبلی نیست و تفاوت دارد .در رابطه با کلاس هایی که تاکنون ایجاد کردیم ،نحوه استفاده از کلاس به صورت زیر بود :
-یک برنامه نویس،یک کلاس ایجاد میکرد .
- این کلاس در جایی نصب میشد (در کامپیوتری که میخواست مورد استفاده قرار گیرد کپی میشد )
-قسمتی از یک نرم افزار در همان کامپیوتر که میخواست از آن کلاس استفاده کند ،یک نمونه از این کلاس را ایجاد میکرد (یک "شی" ایجاد میکرد ).
-آن قسمت از نرم افزار که این شی را ایجاد کرده بود ،متد مورد نظر خود را از این کلاس فراخوانی میکرد .
- آن متد از شی ،کارهای خاصی را انجام میداد و مقداری را به عنوان نتیجه بر میگرداند .
- آن قسمت از نرم افزار که متدی را فراخوانی کرده بود ،نتیجه را دریافت کرده و از آن استفاده میکرد .
اما دروب سرویس ها یک کلاس به صورت زیر مورد استفاده قرار میگیرد :
• آن کلاس روی یک سرور که دارای یک وب سرور مانند IIS و یا هر وب سرور دیگری است کپی میشود .
• قسمتی از یک نرم افزار که در یک کامپیوتر متفاوت و با فاصله از کامپیوتری که کلاس در آن قرار دارد (معمولا در جایی از اینترنت )از وب سرور میخواهد که یکی از متدهای موجود در کلاس را اجرا کند .
• سرور یک نمونه از کلاس (یک شی) را ایجاد کرده و متد درخواست شده را فراخوانی میکند .
• سرور نتیجه اجرای متد را به کامپیوتری که آن را فراخوانی کرده بود بر میگرداند .
• آن قسمت از نرم افزار در کامپیوتر دور دست که درخواست فراخوانی متد را ایجاد کرده بود ،نتیجه را دریافت کرده و از آن استفاده میکند .
مشاهده میکنید که روش کار در هر دو مورد مشابه است ،اما در مورد دوم یک گسستگی بین کامپیوتری که کلاس به طور واقعی در آن قرار دارد و کامپیوتری که میخواهد از کلاس استفاده کند وجود دارد . در حقیقت با استفاده از وب سرویس ها یک فاصله پردازشی زیادی (به اندازه وسعت اینترنت ) ، بین نرم افزاری که میخواهد از کلاس استفاده کند و خود کلاس بوجود می آید .برای حل این مشکل گسستگی و کنترل فاصله ای که در اینجا وجود دارد ،از تکنولوژی ها و استانداردهایی که در وب سرویس ها مورد استفاده قرار گرفته است (و یا حتی در اصل برای استفاده به وسیله ی وب سرویس ها ایجاد شده اند )استفاده میکنند .