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

لغة وصف خدمات الويب ( WSDL ) هي لغة وصف واجهات مبنية على XML ، تُستخدم لوصف الوظائف التي توفرها خدمة الويب . يُستخدم هذا الاختصار أيضًا لأي وصف WSDL خاص بخدمة الويب (يُشار إليه أيضًا بملف WSDL ) ، والذي يوفر وصفًا قابلًا للقراءة آليًا لكيفية استدعاء الخدمة، والمعلمات التي تتوقعها، وهياكل البيانات التي تُرجعها. لذا، فإن غرضها يُشبه إلى حد كبير توقيع النوع في لغة البرمجة.

أحدث إصدار من WSDL، والذي أصبح توصية من W3C في عام 2007، هو WSDL 2.0. وقد تغير معنى الاختصار عن الإصدار 1.1 حيث كان الحرف "D" يرمز إلى "التعريف".

وصف

تمثيل المفاهيم المحددة في وثائق WSDL 1.1 و WSDL 2.0

يصف WSDL الخدمات على أنها مجموعات من نقاط نهاية الشبكة ، أو المنافذ . يوفر WSDL تنسيق XML للمستندات لهذا الغرض. يتم فصل التعريفات المجردة للمنافذ والرسائل عن استخدامها أو مثيلاتها الملموسة، مما يسمح بإعادة استخدام هذه التعريفات. يُعرَّف المنفذ بربط عنوان شبكة برابط قابل لإعادة الاستخدام، وتُعرِّف مجموعة المنافذ خدمة. الرسائل عبارة عن أوصاف مجردة للبيانات المتبادلة، وأنواع المنافذ عبارة عن مجموعات مجردة من العمليات المدعومة. تشكل مواصفات البروتوكول الملموس وتنسيق البيانات لنوع منفذ معين رابطًا قابلًا لإعادة الاستخدام، حيث يتم ربط العمليات والرسائل ببروتوكول شبكة وتنسيق رسائل ملموسين. بهذه الطريقة، يصف WSDL الواجهة العامة لخدمة الويب.

يُستخدم WSDL غالبًا مع SOAP ومخطط XML لتوفير خدمات الويب عبر الإنترنت . يستطيع برنامج العميل المتصل بخدمة الويب قراءة ملف WSDL لتحديد العمليات المتاحة على الخادم. تُضمّن أي أنواع بيانات خاصة مستخدمة في ملف WSDL على شكل مخطط XML. بعد ذلك، يمكن للعميل استخدام SOAP لاستدعاء إحدى العمليات المدرجة في ملف WSDL، باستخدام XML عبر HTTP على سبيل المثال .

الإصدار الحالي من المواصفات هو 2.0؛ لم تعتمد W3C الإصدار 1.1 ، لكن الإصدار 2.0 يُعدّ توصيةً منها . [ 1 ] أُعيد تسمية WSDL 1.2 إلى WSDL 2.0 نظرًا لاختلافاته الجوهرية عن WSDL 1.1. من خلال قبول الربط بجميع طرق طلب HTTP (وليس فقط GET وPOST كما في الإصدار 1.1)، توفر مواصفات WSDL 2.0 دعمًا أفضل لخدمات الويب RESTful ، وهي أسهل بكثير في التنفيذ. [ 2 ] [ 3 ] مع ذلك، لا يزال دعم هذه المواصفات ضعيفًا في حزم تطوير البرامج لخدمات الويب، والتي غالبًا ما توفر أدوات لـ WSDL 1.1 فقط.على سبيل المثال، الإصدار 2.0 من لغة تنفيذ العمليات التجارية (BPEL) يدعم فقط WSDL 1.1.

WSDL 1.1 TermWSDL 2.0 Termوصف
خدمةخدمةيحتوي على مجموعة من وظائف النظام التي تم عرضها على البروتوكولات المستندة إلى الويب.
ميناءنقطة النهايةيُحدد عنوان أو نقطة اتصال بخدمة ويب. وعادةً ما يتم تمثيله بسلسلة عنوان URL بسيطة لبروتوكول HTTP .
ملزمملزميحدد هذا القسم الواجهة ويعرّف نمط ربط SOAP ( RPC /Document) وبروتوكول النقل ( بروتوكول SOAP ). كما يحدد قسم الربط العمليات.
نوع المنفذواجهة المستخدميحدد خدمة الويب، والعمليات التي يمكن تنفيذها، والرسائل المستخدمة لتنفيذ العملية.
عمليةعمليةيحدد هذا الإجراء إجراءات SOAP وطريقة ترميز الرسالة، على سبيل المثال، "حرفي". العملية تشبه استدعاء طريقة أو دالة في لغة برمجة تقليدية.
رسالةغير متوفرعادةً، تُقابل الرسالة عمليةً ما. تحتوي الرسالة على المعلومات اللازمة لتنفيذ تلك العملية. تتكون كل رسالة من جزء منطقي واحد أو أكثر. يرتبط كل جزء بسمة تُحدد نوع الرسالة. تُوفر سمة اسم الرسالة اسمًا فريدًا بين جميع الرسائل. تُوفر سمة اسم الجزء اسمًا فريدًا بين جميع أجزاء الرسالة المُحيطة. تُمثل الأجزاء وصفًا للمحتوى المنطقي للرسالة. في ربط RPC، قد يُشير الربط إلى اسم جزء لتحديد معلومات خاصة بالربط حول ذلك الجزء. قد يُمثل الجزء مُعاملًا في الرسالة؛ وتُحدد الروابط المعنى الفعلي للجزء. تم حذف الرسائل في WSDL 2.0، حيث يُشار إلى أنواع مخطط XML لتحديد أجسام المدخلات والمخرجات والأخطاء ببساطة ومباشرة.
الأنواعالأنواعيصف البيانات. تُستخدم لغة مخطط XML (المعروفة أيضًا باسم XSD ) لهذا الغرض (مضمنة أو مرجعية).

ملف WSDL مثال

<?xml version="1.0" encoding="UTF-8"?> <description xmlns= "http://www.w3.org/ns/wsdl" xmlns:tns= "http://www.tmsws.com/wsdl20sample" xmlns:whttp= "http://schemas.xmlsoap.org/wsdl/http/" xmlns:wsoap= "http://schemas.xmlsoap.org/wsdl/soap/" targetNamespace= "http://www.tmsws.com/wsdl20sample" ><documentation> هذا نموذج لمستند WSDL 2.0 . </documentation><!-- نوع مجرد --> <types> <xs:schema xmlns:xs= "http://www.w3.org/2001/XMLSchema" xmlns= "http://www.tmsws.com/wsdl20sample" targetNamespace= "http://www.example.com/wsdl20sample" > <xs:element name= "request" > ... </xs:element> <xs:element name= "response" > ... </xs:element> </xs:schema> </types><!-- واجهات مجردة --> <interface name= "Interface1" > <fault name= "Error1" element= "tns:response" /> <operation name= "Get" pattern= "http://www.w3.org/ns/wsdl/in-out" > <input messageLabel= "In" element= "tns:request" /> <output messageLabel= "Out" element= "tns:response" /> </operation> </interface><!-- ربط ملموس عبر HTTP --> <binding name= "HttpBinding" interface= "tns:Interface1" type= "http://www.w3.org/ns/wsdl/http" > <operation ref= "tns:Get" whttp:method= "GET" /> </binding> <!-- ربط ملموس باستخدام SOAP --> <binding name= "SoapBinding" interface= "tns:Interface1" type= "http://www.w3.org/ns/wsdl/soap" wsoap:protocol= "http://www.w3.org/2003/05/soap/bindings/HTTP/" wsoap:mepDefault= "http://www.w3.org/2003/05/soap/mep/request-response" > <operation ref= "tns:Get" /> </binding><!-- خدمة ويب توفر نقاط نهاية لكلا الربطين --> <service name= "Service1" interface= "tns:Interface1" > <endpoint name= "HttpEndpoint" binding= "tns:HttpBinding" address= "http://www.example.com/rest/" /> <endpoint name= "SoapEndpoint" binding= "tns:SoapBinding" address= "http://www.example.com/soap/" /> </service> </description>

تاريخ

طُوِّرت لغة وصف خدمات الويب WSDL 1.0 (سبتمبر 2000) من قِبَل شركات IBM ومايكروسوفت وأريبا لوصف خدمات الويب لمجموعة أدوات SOAP الخاصة بهم. وقد بُنيت هذه اللغة من خلال دمج لغتين لوصف الخدمات: NASSL (لغة مواصفات خدمات تطبيقات الشبكة) من IBM و SDL (لغة وصف الخدمات) من مايكروسوفت.

يُعدّ WSDL 1.1، الذي نُشر في مارس 2001، بمثابة النسخة الرسمية من WSDL 1.0. ولم تُدخل أي تغييرات جوهرية بين الإصدارين 1.0 و1.1.

كانت WSDL 1.2 (يونيو 2003) مسودة عمل في اتحاد شبكة الويب العالمية (W3C)، ولكنها أصبحت WSDL 2.0. ووفقًا لاتحاد شبكة الويب العالمية، فإن WSDL 1.2 أسهل وأكثر مرونة للمطورين من الإصدار السابق. كما تسعى WSDL 1.2 إلى إزالة الميزات غير المتوافقة، وتُحسّن أيضًا تعريف ربط HTTP 1.1. لم تكن WSDL 1.2 مدعومة من قِبل معظم خوادم/موردي SOAP.

أصبحت WSDL 2.0 توصية من اتحاد شبكة الويب العالمية (W3C) في يونيو 2007. أُعيد تسمية WSDL 1.2 إلى WSDL 2.0 نظرًا لوجود اختلافات جوهرية بينها وبين WSDL 1.1. وفيما يلي هذه التغييرات:

  • تمت إضافة المزيد من الدلالات إلى لغة الوصف
  • تمت إزالة بنى الرسائل
  • لا يدعم النظام تحميل المشغل الزائد
  • تمت إعادة تسمية أنواع المنافذ إلى واجهات
  • تمت إعادة تسمية المنافذ إلى نقاط النهاية

مجموعة فرعية من WSDL

ملف WSDL الفرعي (SWSDL) [ 4 ] هو ملف WSDL يحتوي على عمليات فرعية من ملف WSDL الأصلي. يمكن للمطور استخدام SWSDL للوصول إلى خدمة فرعية، وبالتالي معالجة جزء من كود خدمة الويب. يُستخدم ملف WSDL الفرعي لاختبار خدمات الويب وتطويرها من أعلى إلى أسفل. كما يُمكن تقسيم خدمة الويب باستخدام ملف WSDL الفرعي للوصول إلى الخدمة الفرعية. يُمكن تصنيف الخدمة الفرعية إلى طبقات باستخدام SWSDL. تُستخدم ملفات SWSDL لتحليل خدمات الويب واختبارها وتطويرها من أعلى إلى أسفل. AWSCM [ 5 ] هي أداة تُحدد العمليات الفرعية في ملف WSDL لإنشاء ملف WSDL فرعي.

الاعتبارات الأمنية

بما أن ملفات WSDL عبارة عن مواصفات قائمة على لغة XML لوصف خدمة ويب، فإنها عرضة للهجمات. [ 6 ] وللحد من ثغرات هذه الملفات، يُنصح بتقييد الوصول إلى ملفات WSDL المُنشأة، ووضع قيود وصول مناسبة على تعريفات WSDL، وتجنب التعريفات غير الضرورية في خدمات الويب.

انظر أيضاً

مراجع

  1. "لغة تعريف خدمات الويب (WSDL) الإصدار 2.0 الجزء 1: اللغة الأساسية" . تم الاطلاع عليه بتاريخ 27-06-2007 .
  2. "لغة تعريف خدمات الويب (WSDL) الإصدار 2.0 الجزء 2: الملحقات" .
  3. "ربط HTTP باستخدام WITW WSDL 2.0" . مؤرشف من الأصل بتاريخ 20 يونيو 2012. تم الاطلاع عليه بتاريخ 20 سبتمبر 2007 .
  4. تشاتورفيدي، أنيميش (2014). استخدام مجموعة فرعية من WSDL للوصول إلى خدمة المجموعة الفرعية لأغراض التحليل . المؤتمر الدولي السادس لـ IEEE حول تكنولوجيا وعلوم الحوسبة السحابية، 2014. ص 688. doi : 10.1109/CloudCom.2014.149 . ISBN  978-1-4799-4093-6.
  5. تشاتورفيدي، أنيميش (2014). إدارة تغيير خدمات الويب الآلية AWSCM - أداة . المؤتمر الدولي السادس لتقنيات وعلوم الحوسبة السحابية IEEE لعام 2014. ص 715. doi : 10.1109/CloudCom.2014.144 . ISBN  978-1-4799-4093-6.
  6. "إفصاح WSDL" . تم الاطلاع عليه بتاريخ 31-05-2017 .