لغة توصيف خدمات الوب

عودة للموسوعة

لغة توصيف خدمات الوب

ساهم بشكل رئيسي في تحرير هذا الموضوع

WSDL لغة توصيف خدمات الويب WSDL (Web Services Description Language)هي لغة مبنية على الـ XML ، تستخدم في توصيف وتحديد مكان خدمات الويب على الانترنت لتسهيل الوصول إليها والتعامل معها. وهي جزء متمم للـ UDDI، وهي اللغة التي يستخدمها الـ UDDI. طوّرت هذه اللغة بالتعاون ما بين Microsoft وIBM.

خصائص WSDL

  • اختصار لـ Web Services Description Language
  • لغة مبنية على الـ XML
  • عبارة عن مستند XML
  • تستخدم في توصيف خدمات الويب
  • تستخدم في تحديد مكان توضّع خدمات الويب
  • أحد معايير W3C

إذاً لغة WSDL هي لغة لتوصيف خدمات الويب وهي تعبير عن مستند مكتوب بلغة XML بحيث يقوم هذا المستند بوصف خدمات الويب كأن يقوم مثلا بتحديد مسقط خدمة الويب وطرق وعمليات هذه الخدمة .

مستند WSDL

مستند WSDL هومستند سهل مكتوب كمستند XML ويحتوي على مجموعة من التعاريف التي تعهد خدمة ويب.

بنية مستند WSDL

يعهد مستند WSDL خدمة ويب ما باستخدام العناصر الرئيسية التالية:

العنصر(Element) الوصف
<types> يقوم بتعريف أنماط المعطيات data types المستخدمة من قبل خدمة ويب ما.
<message> يقوم بتعريف الرسائل messages المستخدمة من قبل خدمة ويب ما.
<portType> يقوم بتعريف العمليات التي تقوم خدمة ويبما بتطبيقها.
<binding> يقوم بتعريف بروتوكولات الاتصال المستخدمة من قبل خدمة ويب ما.

وتبدوالبنية الرئيسية لمستند WSDL على النحوالتالي:

<definitions>
-----------------
<types>
 definition of types........
</types>
-----------------
<message>
 definition of a message....
</message>
-----------------
<portType>
 definition of a port.......
</portType>
-----------------
<binding>
 definition of a binding....
</binding>
-----------------
</definitions>

يمكن لمستند WSDL حتى يحوي أيضا عناصر أخرى مثل عناصر التوسعة extension elements مثلاً، أوعنصر خدمة الذي يجمع تعريفات لأكثر من خدمة ويبفي مستند WSDL وحيد، تقدر الإطلاع على القواعد الكاملة للغة WSDL من خلال فقرة قواعد WSDL.

منافذ WSDL

يعتبر عنصر <portType> أحد أبرز العناصر ضمن مستند WSDL ،حيث يقوم هذا العنصر بتعريف خدمة ويب، والعمليات التي يمكن تطبيقها، والرسائل التي يمكن استخدامها.

يمكن حتى نعتبر عنصر <portType> مثل مخطة أوصف أووحدة برمجية ضمن لغات البرمجة التقليدية.

رسائل WSDL

يقوم العنصر <message> بتعريف الرسائل messages المستخدمة من قبل خدمة ويب ما حيث يقوم بتعريف عناصر المعطيات لعملية ما.

يمكن لرسالة ما حتى تتألف من جزء واحد أوأكثر، ويمكنك تشبيه أجزاء الرسالة كبرامترات تابع ما ضمن لغات البرمجة التقليدية.

أنماط WSDL

يقوم العنصر <types> بتعريف أنماط المعطيات data types المستخدمة من قبل خدمة ويب ما، ومن أجل أمور التوافقية مع جميع اللغات الأخرى تستخدم لغة WSDL نفس قواعد XML Schema لتعريف أنماط المعطيات .

روابط WSDL

يقوم العنصر <binding> بتعريف بروتوكولات الاتصال المستخدمة من قبل خدمة ويب ما، كما يقوم بتعريف صيغة الرسالة ويقوم بذلك من أجل جميع منفذ .

مثال عن مستند WSDL

فيما يلي مثال يوضح جزء من مستند WSDL :

<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" كإسم للمنفذ كما يعهد عملية ضمنه باسم: "getTerm"، كما يتم تعريف العملية "getTerm" التي لها رسالة ولج بالإسم "getTermRequest" ورسالة خرج بالاسم "getTermResponse".

تعهد عناصر الرسالة message أجزاء جميع رسالة وانماط المعطيات الموافقة لها .

بالمقارنة مع لغات البرمجة التقليدية يعتبر المنفذ glossaryTerms كمخطة و"getTerm" تابع ضمن المخطة له متحول ولج هو"getTermRequest"ومتحول خرج هو"getTermResponse".  

منافذ WSDL

يقوم منفذ WSDL بوصف القابلات (العمليات القانونية ) التي سيتم استنادىئها من قبل خدمة ويب.

كما ذكرنا سابقا فإن العنصر <portType> هوأكثر عناصر لغة WSDL أهمية حيث يقوم هذا العنصر بتعريف خدمة ويب والعمليات التي يمكن إنجازها والرسائل المتبادلة.

يعهد المنفذ نقطة اتصال لخدمة ويب، ويمكنك تشبيهه بمخطة أوصف أووحدة برمجية في لغات البرمجةالتقليدية، وكما ذكرنا سابقاً يمكن تشبيه جميع عملية ضمنه بالتابع ضمن لغة برمجة تقليدية .

أنواع العمليات داخل منافذ WSDL

يعتبر النوع طلب_استجابة request-response النوع الأكثر شيوعا واستخداما ولكن مع ذلك تعهد لغة WSDL الأنماط الأربعة التالية :

النوع التعريف
One-way اتجاه واحد : يمكن للعملية استقبال رسالة ولكن لن تعيد استجابة.
Request-response طلب_ استجابة: يمكن للعملية استقبال رسالة وسوف تعيد استجابة.
Solicit-response استجداء – استجابة : يمكن للعملية إرسال طلب ومن ثم تقوم بانتظار استجابة.
Notification إشعار: يمكن للعملية إرسال رسالة ولا تقوم بانتظار استجابة

عملية من النوع اتجاه واحد One-Way : فيما يلي مثال على عملية ذات اتجاه واحد :

<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". تسمح هذه العملية بإدخال مصطلحات جديدة للقاموس باستخدام رسالة "newTermValues" التي تأخذ برامترات ولج هي "term" و"value" ولا يتم تعريف أي خرج لهذه العملية.

عملية طلب- استجابة 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"/>
   <output message="getTermResponse"/>
 </operation>
</portType>

في هذا المثال يقوم المنفذ "glossaryTerms" بتعريف عملية من النوع طلب – استجابة وهي "getTerm"، تقوم هذه العملية بإيجاد القيمة اللقاءة لمصطلح ما تتطلب هذه العملية رسالة ولج تدعى "getTermRequest" والتي لها المتحول "term" ويفترض أن تعيد لنا رسالة خرج "getTermResponse" مع متحول يدعى "value".  

روابط WSDL

يقوم العنصر <binding> بتعريف بروتوكولات الاتصال المستخدمة من قبل خدمة ويب ما، كما يقوم بتعريف صيغة الرسالة ويقوم بذلك من أجل جميع منفذ.

الربط إلى SOAP

لنأخذ المثال التالي الذي يحتوي على عملية طلب – استجابة .

<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 واصفتين: واصفة الاسم name ، وواصفة النوع type.

تعهد واصفة الاسم name اسم عملية الربط وطبعاً تقدر استخدام الاسم الذي تريده، أما واصفة النوع type تشير إلى المنفذ المطلوب لعملية الربط، في حالتنا المنفذ "glossaryTerms".

يمتلك العنصر soap:binding واصفتين أيضاً: واصفة التصميم style،وواصفة النقل transport.

يمكن حتى تكون واصفة التصميم style من الشكل "rpc"، أومن الشكل "document"، وفي حالتنا استخدمنا للتصميم الحالة الأخيرة document.

أما واصفة النقل HTTP فتقوم بتعريف البروتوكول المستخدم مع SOAP ،وفي حالتنا البروتوكول المستخدم هوHTTP. ويقوم العنصر operation بتعريف جميع عملية يعرضها المنفذ. من أجل جميع عملية يتم تعريف وقع SOAP الموافق، ويجب حتى نحدد أيضا كيفية ترميز الدخل والخرج وفي حالتنا استخدمنا "literal".


قواعد WSDL

فيما يلي القواعد الكاملة للإصدار WSDL Syntax كما تم توصيفه في الورقة الغير معتمدة Draft الصادرة عن W3C:

<wsdl:definitions name="nmtoken"? targetNamespace="uri">
    <import namespace="uri" location="uri"/> *
    <wsdl:documentation .... /> ?
    <wsdl:types> ?
        <wsdl:documentation .... /> ?
        <xsd:schema .... /> *
    </wsdl:types>
    <wsdl:message name="ncname"> *
        <wsdl:documentation .... /> ?
        <part name="ncname" element="qname"? type="qname"?/> *
    </wsdl:message>
    <wsdl:portType name="ncname"> *
        <wsdl:documentation .... /> ?
        <wsdl:operation name="ncname"> *
            <wsdl:documentation .... /> ?
            <wsdl:input message="qname"> ?
                <wsdl:documentation .... /> ?
            </wsdl:input>
            <wsdl:output message="qname"> ?
                 <wsdl:documentation .... /> ?
            </wsdl:output>
            <wsdl:fault name="ncname" message="qname"> *
                <wsdl:documentation .... /> ?
            </wsdl:fault>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:serviceType name="ncname"> *
        <wsdl:portType name="qname"/> +
    </wsdl:serviceType>
    <wsdl:binding name="ncname" type="qname"> *
        <wsdl:documentation .... /> ?
        <-- binding details --> *
        <wsdl:operation name="ncname"> *
            <wsdl:documentation .... /> ?
            <-- binding details --> *
            <wsdl:input> ?
                <wsdl:documentation .... /> ?
                <-- binding details -->
            </wsdl:input>
            <wsdl:output> ?
                <wsdl:documentation .... /> ?
                <-- binding details --> *
            </wsdl:output>
            <wsdl:fault name="ncname"> *
                <wsdl:documentation .... /> ?
                <-- binding details --> *
            </wsdl:fault>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="ncname" serviceType="qname"> *
        <wsdl:documentation .... /> ?
        <wsdl:port name="ncname" binding="qname"> *
            <wsdl:documentation .... /> ?
            <-- address details -->
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>

المصادر

w3shcools

W3C

http://fadyamr.com/files/articles/wdsl.doc

تاريخ النشر: 2020-06-04 09:08:17
التصنيفات:

مقالات أخرى من الموسوعة

سحابة الكلمات المفتاحية، مما يبحث عنه الزوار في كشاف:

آخر الأخبار حول العالم

الحج والعمرة السعودية: وصول أكثر من 358 ألف حاجٍ إلى المدينة

المصدر: مصراوى - مصر التصنيف: غير مصنف
تاريخ الخبر: 2022-07-02 12:22:04
مستوى الصحة: 52% الأهمية: 62%

السلطات اليابانية تحذر من العاصفة الاستوائية "إير"

المصدر: مصراوى - مصر التصنيف: غير مصنف
تاريخ الخبر: 2022-07-02 12:22:07
مستوى الصحة: 50% الأهمية: 58%

مبادرة يمنية تكشف عن مشروع إيراني ـ حوثي لإدارة الاتصالات

المصدر: ألشرق الأوسط - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-07-02 12:22:37
مستوى الصحة: 93% الأهمية: 99%

المبعوث الأمريكي إلى اليمن يدعو الحوثيين لتقديم تنازلات لفتح

المصدر: مصراوى - مصر التصنيف: غير مصنف
تاريخ الخبر: 2022-07-02 12:22:02
مستوى الصحة: 58% الأهمية: 52%

التعليم تتيح سداد مصروفات العام الدراسى الجديد للطلاب.. غدا

المصدر: اليوم السابع - مصر التصنيف: غير مصنف
تاريخ الخبر: 2022-07-02 12:21:52
مستوى الصحة: 40% الأهمية: 41%

لماذا يُحذر رئيس «ناسا» من برنامج الفضاء الصيني؟

المصدر: ألشرق الأوسط - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-07-02 12:22:36
مستوى الصحة: 81% الأهمية: 88%

في تحدٍ للمحكمة العليا... ولاية نيويورك تكرس «حق الإجهاض» في دستورها

المصدر: ألشرق الأوسط - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-07-02 12:22:34
مستوى الصحة: 79% الأهمية: 95%

التشكيل المثالى لأغلى اللاعبين فى العالم.. محمد صلاح بالهجوم

المصدر: اليوم السابع - مصر التصنيف: غير مصنف
تاريخ الخبر: 2022-07-02 12:21:53
مستوى الصحة: 40% الأهمية: 39%

المبعوث الأمريكي إلى اليمن يدعو الحوثيين لتقديم تنازلات لفتح

المصدر: مصراوى - مصر التصنيف: غير مصنف
تاريخ الخبر: 2022-07-02 12:22:10
مستوى الصحة: 50% الأهمية: 52%

«الصحة»: 457 إصابة جديدة بـ«كورونا».. وتعافي 754 حالة - أخبار السعودية

المصدر: صحيفة عكاظ - السعودية التصنيف: مجتمع
تاريخ الخبر: 2022-07-02 12:22:40
مستوى الصحة: 51% الأهمية: 54%

الممثلة جيري هول ترفع دعوى للطلاق من الملياردير روبرت مردوخ

المصدر: ألشرق الأوسط - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-07-02 12:22:36
مستوى الصحة: 92% الأهمية: 88%

طلاب الثانوية العامة "المكفوفون" يؤدون امتحان الجغرافيا "ورقة أولى"

المصدر: اليوم السابع - مصر التصنيف: غير مصنف
تاريخ الخبر: 2022-07-02 12:21:50
مستوى الصحة: 43% الأهمية: 35%

أوكرانيا: سماع دوي انفجارات قوية في ميكولايف

المصدر: ألشرق الأوسط - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-07-02 12:22:35
مستوى الصحة: 91% الأهمية: 96%

باحثون: أعراض جدري القردة تختلف عن تفشيات سابقة

المصدر: ألشرق الأوسط - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-07-02 12:22:37
مستوى الصحة: 81% الأهمية: 88%

أميركا: احتجاجات إثر مقتل شاب من أصل إفريقي برصاص الشرطة في أوهايو

المصدر: ألشرق الأوسط - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-07-02 12:22:37
مستوى الصحة: 94% الأهمية: 88%

عون: اللبنانيون يستبشرون خيرًا بعودة العرب إلى لبنان

المصدر: مصراوى - مصر التصنيف: غير مصنف
تاريخ الخبر: 2022-07-02 12:21:57
مستوى الصحة: 52% الأهمية: 57%

بايدن يمنح وسام الحرية لدينزل واشنطن وستيف جوبز وسيمون بيلز

المصدر: ألشرق الأوسط - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-07-02 12:22:33
مستوى الصحة: 82% الأهمية: 95%

واشنطن بوست: صواريخ "هيمارس" الأمريكية غيرت موازين القوة الق

المصدر: مصراوى - مصر التصنيف: غير مصنف
تاريخ الخبر: 2022-07-02 12:21:59
مستوى الصحة: 60% الأهمية: 66%

الجيش اليمني يعلن إسقاط طائرة حوثية مسيرة في محافظة تعز

المصدر: مصراوى - مصر التصنيف: غير مصنف
تاريخ الخبر: 2022-07-02 12:21:54
مستوى الصحة: 55% الأهمية: 61%

تحميل تطبيق المنصة العربية