با سلام خدمت کاربران گرامی سایت پی وی لرن و علاقمندان و کاربرانی که علاقمند به یادگیری دوره XML هستند. در جلسه گذشته به صورت جامع، مفصل و کامل با خدمات وب در XML آشنا شدیم.خدمات وب جزء برنامه های وب است. خدمات وب را می توان در وب منتشر کرد؛ پیدا نمود و مورد استفاده قرار داد. در این جلسه که آخرین جلسه از دوره آموزش XML HSJ به معرفی WSDL، SOAP، RDF و RSS پرداخته شد. در ادامه در جلسه فعلی آموزش کار با WSDL در XML را به علاقمندان این دوره ارائه می نماییم.
آموزش کار با WSDL در XML را با توصیف این که WSDL چیست می پردازیم:
WSDL به معنای زبان توصیف سرویس وب است
WSDL برای توصیف خدمات وب استفاده می شود
WSDL در XML نوشته شده است
WSDL از ژوئن ۲۰۰۷ به عنوان W3C recommendation from به رسمیت شناخته شده است.
یک سند WSDL یک سرویس وب را توصیف می کند و موقعیت خدمات service و روش ها methods را با استفاده از عناصر زیر مشخص می کند:
این عنصر نوع داده های XML Schema را که توسط سرویس وب استفاده می شود تعریف می کند.
این عنصر، عناصر داده برای هر عملیات را تعریف می کند.
این عنصر به توصیف عملیات و نیز پیام هایی می پردازد که در این فرآیند درگیرند.
این عنصر فرمت پروتکل و داده ها را برای هر نوع پورت تعریف می کند.
ساختار اصلی یک سند WSDL به شرح زیر است:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <definitions> <types> data type definitions........ </types> <message> definition of the data being communicated.... </message> <portType> set of operations...... </portType> <binding> protocol and data format specification.... </binding> </definitions> |
در این مثال عنصر <portType> به تعریف “glossaryTerms” به عنوان یک پورت می پردازد و “getTerm” نیز مانند نام عملیات عمل می نماید.
عملیات “getTerm”یک پیام ورودی input message با نام “getTermRequest” دارد که این یک پیام خروجی output message تولید می کند و این پیام خروجی به فراخوانی “getTermRequest” می پردازد.
عناصر <message> به تعریف بخش های مختلف هر پیام و اختصاص نوع data types داده می پردازد.
عنصر <portType> به تعریف خدمات وب web service می پردازد در این صورت عملیات ها operations می توانند نمایش داده شوند و پیام ها messages نیز توانایی به روی کار آمدن و درگیر شدن را داشته باشند.
نوع request-response type رایج ترین عملیات مورد استفاده است اما در WSDL چهار نوع types دیگر نیز وجود دارد:
این عملیات می تواند یک پیام را دریافت کند اما قادر به بازگردانی پاسخ نیست.
این عملیات قادر به دریافت یک ریکوئست و بازگردانی پاسخ می باشد.
این عملیات می تواند به ارسال یک ریکوئست بپردازد و برای پاسخ آن منتظر بماند.
این عملیات اقدام به ارسال یک پیام می کند اما قادر به انتظار برای پاسخ آن نیست.
در ادامه می توانید یک WSDL One-Way را ببینید:
1 2 3 4 5 6 7 8 9 10 | <message name="newTermValues"> <part name="term" type="xs:string"/> <part name="value" type="xs:string"/> </message> <portType name="glossaryTerms"> <operation name="setTerm"> <input name="newTerm" message="newTermValues"/> </operation> </portType > |
در مثال بالا، portType ما که “glossaryTerms” است به تعریف یک عملیات one-way operation با نام “setTerm” می پردازد.
عملیات “setTerm” با استفاده از پیام “newTermValues”از طریق ورود پارامتر های “term” و “value” اجازه ورود یک سری واژهای تکنیکال را می دهد حتی اگر خروجی output ما برای عملیات operation تعریف شده باشد.
در مثال زیر می توانید یک نمونه از request-response را ببینید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <message name="getTermRequest"> <part name="term" type="xs:string"/> </message> <message name="getTermResponse"> <part name="value" type="xs:string"/> </message> <portType name="glossaryTerms"> <operation name="getTerm"> <input message="getTermRequest"/> <output message="getTermResponse"/> </operation> </portType> |
در مثال بالا portType ما یعنی “glossaryTerms” به تعریف یک عملیات request-response با نام می پردازد.
عملیات “getTerm” با کمک پارامتر “term” به درخواست یک پیام ورودی با نام “getTermRequest” می پردازد و سپس با کمک یک پارامتر با عنوان “value” یک پیام خروجی را با عنوان “getTermResponse بازگردانی می نماید.
WSDL bindings فرمت پیام و جزئیات پروتکل یک سرویس وب را تعریف می کند.
در ادامه می توانید یک request-response را مشاهده نمایید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <message name="getTermRequest"> <part name="term" type="xs:string"/> </message> <message name="getTermResponse"> <part name="value" type="xs:string"/> </message> <portType name="glossaryTerms"> <operation name="getTerm"> <input message="getTermRequest"/> <output message="getTermResponse"/> </operation> </portType> <binding type="glossaryTerms" name="b1"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <operation> <soap:operation soapAction="http://example.com/getTerm"/> <input><soap:body use="literal"/></input> <output><soap:body use="literal"/></output> </operation> </binding> |
عنصر binding دارای دو ویژگی attributes است – نام name و نوع type.
name attribute : نام اتصال را تعیین می کند و ویژگی attribute type را به پورت اتصال می دهد، در این مورد “glossaryTerms” پورت تعیین شده ما است.
عنصر soap:binding که دارای دو style- attributes و انتقال transport است:
style attribute می تواند “rpc یا “document” باشد در این مثال ما از “document” استفاده می کنیم.
transport attribute نیز پروتکل SOAP را برای استفاده تعریف می کند.
عنصر operation نیز هر عملیاتی را که portType قرار می دهد تعریف می کند.
در این جلسه به آموزش کار با WSDL در XML پرداختیم.
این جلسه آخرین جلسه از دوره آموزش XML است.
با پی وی لرن همراه باشید.