پورت WSDL

پورت WSDL می‌تواند رابطی را که یک وب‌سرویس ارائه می‌دهد (عمل‌های مجاز) توصیف کند.

پورت WSDL

<portType> عنصر مهم‌ترین عنصر WSDL است.

این می‌تواند یک web service، قابل اجراعمل، و همچنینپیام.

پورت تعریف‌کننده یک نقطه اتصال به یک وب‌سرویس است. می‌توان این عنصر را مانند یک کتابخانه (یا یک ماژول، یا یک کلاس) در یک زبان برنامه‌نویسی سنتی مقایسه کرد و هر عمل را مانند یک تابع در یک زبان برنامه‌نویسی سنتی در نظر گرفت.

نوع عمل

درخواست-پاسخ معمولی‌ترین نوع عمل است، اما WSDL چهار نوع را تعریف کرده است:

نوع تعریف
یک‌طرفه این عمل می‌تواند پیام را بپذیرد، اما پاسخی بازنمی‌گرداند.
درخواست-پاسخ این عمل می‌تواند یک درخواست را بپذیرد و یک پاسخ بازمی‌گرداند
درخواست-پاسخ این عمل می‌تواند یک درخواست ارسال کند و منتظر یک پاسخ خواهد بود.
اطلاع‌رسانی این عمل می‌تواند یک پیام را ارسال کند، اما منتظر پاسخ نمی‌ماند.

عمل یک‌طرفه

مثالی از یک عمل یک‌طرفه:

<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 >

در این مثال، پورت "glossaryTerms" یک عمل یک‌طرفه به نام "setTerm" را تعریف کرده است.

این عملیات "setTerm" پیام‌های جدیدی از جدول اصطلاحات را به عنوان ورودی می‌پذیرد، که از پیام به نام "newTermValues" استفاده می‌کند که پارامترهای ورودی "term" و "value" را دارد. اما هیچ خروجی برای این عملیات تعریف نشده است.

عملیات Request-Response

مثالی از یک عملیات request-response:

<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"/>
    <message message="getTermResponse"/>
  </operation>
</portType>

در این مثال، پورت "glossaryTerms" یک عملیات request-response به نام "getTerm" را تعریف کرده است.

عملیات "getTerm" درخواست یک پیام ورودی به نام "getTermRequest" را می‌کند، که دارای یک پارامتر به نام "term" است و یک پیام خروجی به نام "getTermResponse" را بازمی‌گرداند که دارای یک پارامتر به نام "value" است.