تعد خدمات ويب XML هي اللبنات الأساسية للحوسبة الموزعة على الإنترنت. لقد خلقت المعايير المفتوحة والتركيز على التواصل والتعاون بين المستخدمين والتطبيقات بيئة أصبحت فيها خدمات ويب XML هي النظام الأساسي لتكامل التطبيقات. يتم إنشاء التطبيقات باستخدام خدمات ويب XML من عدة مصادر مختلفة تعمل معًا بغض النظر عن مكان وجودها أو كيفية تنفيذها.
يوجد عدد كبير من تعريفات خدمة ويب XML بقدر عدد الشركات التي تقوم ببناء خدمات ويب XML. لكن جميع التعاريف تقريبًا تشترك في ما يلي:
توفر خدمات ويب XML وظائف مفيدة لمستخدمي الويب من خلال بروتوكولات الويب القياسية. في معظم الحالات يتم استخدام بروتوكول SOAP.
يمكن لخدمات ويب XML تحديد واجهاتها بتفصيل كبير، مما يمكّن المستخدمين من إنشاء تطبيقات العميل للتواصل معهم. عادةً ما يتم تضمين هذا الوصف في مستند XML يسمى مستند لغة وصف خدمات الويب (WSDL).
يتم تسجيل خدمات ويب XML بحيث يتمكن المستخدمون المحتملون من العثور عليها بسهولة، ويتم ذلك من خلال الاكتشاف الشامل والوصف والتكامل (UDDI).
ستقدم هذه المقالة هذه التقنيات الثلاث، ولكن نحتاج أولاً إلى توضيح سبب وجوب الاهتمام بخدمات ويب XML.
إحدى المزايا الرئيسية لبنية خدمات ويب XML هي أنها تسمح لمجموعة متنوعة من البرامج المكتوبة بلغات مختلفة على منصات مختلفة بالتواصل مع بعضها البعض بطريقة قائمة على المعايير. يمكن للمستخدمين الذين يعرفون شيئًا عن هذه الصناعة أن يقولوا على الفور: "انتظر لحظة، ألم يلتزم CORBA وDCE السابق بنفس الالتزام؟ ما الفرق بين هذا وبينهم؟ والفرق الأكثر أهمية هو: الصابون أفضل من ذي قبل؟" إن هذا النهج أبسط بكثير، لذا فإن العوائق التي تحول دون تنفيذ SOAP المتوافقة مع المعايير أقل بكثير. يقدم Paul Kulchenko قائمة بتطبيقات SOAP على http://www.soapware.org/directory/4/implementations (باللغة الإنجليزية). وفي آخر إحصاء، ضمت القائمة 79 مادة. كما قد تتوقع، توفر معظم شركات البرمجيات الكبرى تطبيقات SOAP، ولكن هناك أيضًا العديد من التطبيقات التي تم إنشاؤها وصيانتها بواسطة مطورين فرديين. الميزة الرئيسية الأخرى لخدمات ويب XML مقارنة بالحلول السابقة هي استخدام بروتوكولات الويب القياسية - XML وHTTP وTCP/IP. أنشأت العديد من الشركات بالفعل بنية تحتية للويب ويتمتع موظفوها بالمعرفة والخبرة اللازمة لصيانتها. ولذلك، فإن تكلفة تقديم خدمات الويب بتنسيق XML أقل بكثير من تكلفة تقديم التقنيات السابقة.
نحن نعرّف خدمة ويب XML بأنها خدمة برمجية مقدمة على الويب عبر SOAP، ويتم وصفها باستخدام ملف WSDL، ومسجلة عبر UDDI. لذا، قد تتساءل: "ماذا يمكنك أن تفعل بخدمات ويب XML؟" كانت خدمات ويب XML الأصلية في كثير من الأحيان مصادر معلومات يمكن دمجها بسهولة في التطبيقات، مثل أسعار الأسهم، والتنبؤات الجوية، والنتائج الرياضية، وما إلى ذلك. من السهل أن تتخيل فئة كاملة من التطبيقات التي يمكن إنشاؤها لتحليل وتلخيص المعلومات التي تهمك، وإتاحة تلك المعلومات بعدة طرق، على سبيل المثال، يمكنك استخدام جدول بيانات Microsoft® Excel لتلخيص جميع بياناتك المالية المعلومات - الأسهم، 401K، الودائع المصرفية، القروض، إلخ. إذا كانت هذه المعلومات متوفرة من خلال خدمات ويب XML، فيمكن لـ Excel تحديثها بشكل مستمر. بعض هذه المعلومات مجانية، والبعض الآخر قد يتطلب الاشتراك للحصول على الخدمة المقابلة. يتوفر الكثير من هذه المعلومات بالفعل على الويب، ولكن يمكن لخدمات ويب XML أن تجعل الوصول البرمجي أسهل وأكثر موثوقية.
يتم توفير التطبيقات الحالية كخدمات ويب XML، ويمكن إنشاء تطبيقات جديدة وأكثر قوة باستخدام خدمات ويب XML كعناصر بناء. على سبيل المثال، يمكن للمستخدم تطوير تطبيق شراء للحصول تلقائيًا على معلومات الأسعار من موردين مختلفين، مما يسمح للمستخدم باختيار مورد، وإرسال طلب، ثم تتبع شحنة البضائع حتى يتم استلام البضائع. بالإضافة إلى توفير الخدمات على الويب، يمكن لتطبيق المورد أيضًا استخدام خدمة ويب XML للتحقق من ائتمان العميل وتحصيل المدفوعات والتعامل مع إجراءات الشحن مع شركات الشحن.
في المستقبل، ستتمكن بعض التطبيقات الأكثر إثارة للاهتمام والتي تعتمد على خدمات ويب XML من الاستفادة من الويب لإنجاز المهام المستحيلة حاليًا. على سبيل المثال، تعد خدمة التقويم إحدى الخدمات التي سيتم دعمها بواسطة مشروع Microsoft .NET My Services (باللغة الإنجليزية). إذا كان أطباء الأسنان والميكانيكيون لديك يقدمون جداولهم من خلال خدمة ويب XML هذه، فيمكنك جدولة المواعيد معهم عبر الويب إذا كنت تفضل ذلك، ويمكنهم أيضًا جدولة مواعيد التنظيف والصيانة الروتينية مباشرة في التقويم الخاص بك. من السهل أن تتخيل أنه إذا تمكنت من برمجة الويب، فيمكنك إنشاء مئات التطبيقات.
لمزيد من المعلومات حول خدمات ويب XML والتطبيقات التي يمكنك إنشاؤها، راجع الصفحة الرئيسية لخدمات ويب MSDN (باللغة الإنجليزية).
SOAP
SOAP هو بروتوكول الاتصال الخاص بخدمة ويب XML. عند وصف SOAP كبروتوكول اتصالات، يفكر معظم الأشخاص في DCOM أو CORBA ويطرحون أسئلة مثل "كيف يقوم SOAP بتنشيط الكائنات؟" أو "ما هي خدمة التسمية التي يستخدمها SOAP؟" على الرغم من أن تطبيقات SOAP قد تتضمن هذه العناصر، إلا أنها غير محددة بواسطة معيار SOAP. SOAP مواصفات تحدد تنسيق XML للرسائل - وهذا جزء مطلوب من المواصفات. مقطع XML جيد التكوين الموجود ضمن زوج من عناصر SOAP هو رسالة SOAP. أليس هذا بسيطا؟
تصف أجزاء أخرى من مواصفات SOAP كيفية تمثيل بيانات البرنامج بتنسيق XML وكيفية استخدام SOAP لاستدعاءات الإجراءات عن بعد (RPC). تُستخدم هذه الأجزاء الاختيارية من المواصفات لتنفيذ تطبيقات نمط RPC، حيث سيقوم العميل بإصدار رسالة SOAP (تحتوي على وظيفة قابلة للاستدعاء، والمعلمات المطلوب تمريرها إلى الوظيفة)، وسيقوم الخادم بإرجاع رسالة تحتوي على النتائج من تنفيذ الوظيفة. حاليًا، تدعم معظم تطبيقات SOAP تطبيقات RPC لأن المبرمجين الذين اعتادوا على تطوير تطبيقات COM أو CORBA على دراية بتنسيق RPC. يدعم SOAP أيضًا تطبيقات نمط المستند، حيث تكون رسالة SOAP مجرد غلاف حول مستند XML. تتميز تطبيقات SOAP المستندة إلى المستندات بأنها مرنة للغاية، وتستفيد العديد من خدمات ويب XML الجديدة من هذه الميزة لإنشاء خدمات يصعب تنفيذها باستخدام RPC.
يحدد الجزء الاختياري الأخير من مواصفات SOAP نمط رسائل HTTP التي تحتوي على رسائل SOAP. يعد ربط HTTP هذا مهمًا لأن جميع أنظمة التشغيل الحالية تقريبًا (والعديد من أنظمة التشغيل السابقة) تدعم HTTP. على الرغم من أنه اختياري، إلا أن ربط HTTP مدعوم من قبل جميع تطبيقات SOAP تقريبًا لأنه البروتوكول القياسي الوحيد لـ SOAP. لهذا السبب، غالبًا ما يعتقد الناس خطأً أن SOAP يجب أن يستخدم HTTP. في الواقع، تدعم بعض التطبيقات أيضًا نقل MSMQ أو MQ Series أو SMTP أو TCP/IP، ولكن نظرًا لأن HTTP موجود في كل مكان، فإن جميع خدمات ويب XML الحالية تقريبًا تستخدمه. نظرًا لأن HTTP هو البروتوكول الأساسي للويب، فإن البنية التحتية لشبكات معظم المؤسسات تدعم HTTP ويعرف الموظفون بالفعل كيفية إدارتها. اليوم، تم إنشاء البنية التحتية لأمان HTTP ومراقبته وموازنة التحميل.
عند البدء في استخدام SOAP، فإن الشيء الأكثر إرباكًا هو الفرق بين مواصفات SOAP وتطبيقاته المتعددة. معظم مستخدمي SOAP لا يكتبون رسائل SOAP مباشرة ولكنهم يستخدمون مجموعة أدوات SOAP لإنشاء رسائل SOAP وتحليلها. تقوم مجموعات الأدوات هذه عادةً بتحويل استدعاءات الوظائف من لغة ما إلى رسائل SOAP. على سبيل المثال، يقوم Microsoft SOAP Toolkit 2.0 بتحويل استدعاءات دالة COM إلى SOAP، وتقوم مجموعة أدوات Apache بتحويل استدعاءات دالة JAVA إلى SOAP. تختلف أنواع استدعاءات الوظائف وأنواع بيانات المعلمات المدعومة مع كل تطبيق SOAP، لذا فإن الوظيفة التي تعمل مع مجموعة أدوات واحدة قد لا تعمل مع مجموعة أخرى. وهذا ليس قيدًا على SOAP، ولكنه يقتصر على التنفيذ المحدد المستخدم.
إلى حد بعيد، الميزة الأكثر إلحاحًا في SOAP هي أنه يمكن تنفيذه على العديد من منصات البرامج والأجهزة المختلفة. وهذا يعني أنه يمكن استخدام SOAP لربط الأنظمة المختلفة داخل المؤسسة وخارجها. تمت تجربة طرق مختلفة في الماضي للتوصل إلى بروتوكول اتصالات مشترك يمكن استخدامه لتكامل النظام، ولكن لم يحظ أي منها بالقبول الواسع النطاق الذي حصل عليه SOAP. لماذا؟ لأن SOAP أصغر وأسهل في التنفيذ من العديد من البروتوكولات السابقة. على سبيل المثال، استغرق تنفيذ DCE وCORBA سنوات، لذلك تم إصدار عدد قليل فقط من التطبيقات. يمكن لـ SOAP الاستفادة من موزعي XML الحاليين ومكتبات HTTP للقيام بمعظم العمل الشاق، بحيث يمكن إكمال تنفيذ SOAP في غضون أشهر. ولهذا السبب يوجد الآن أكثر من 70 تطبيقًا لـ SOAP. بالطبع، لا يحتوي SOAP على جميع وظائف DCE أو CORBA، على الرغم من تقليل الوظائف، إلا أن تطبيق SOAP أسهل نظرًا لتقليل تعقيده بشكل كبير.
تتيح لك شعبية HTTP وبساطة SOAP الاتصال بها من أي بيئة تقريبًا، مما يجعلها أساسًا مثاليًا لخدمات ويب XML. لمزيد من المعلومات حول SOAP، راجع الصفحة الرئيسية لـ MSDN SOAP (باللغة الإنجليزية).
ما مدى أمانها؟
غالبًا ما يكون السؤال الأول الذي يطرحه المستخدمون الجدد في استخدام SOAP هو كيف يقوم SOAP بحل مشكلات الأمان. في مراحل تطويره المبكرة، كان يُنظر إلى SOAP على أنه بروتوكول يعتمد على HTTP، لذلك اعتبر أمان HTTP كافيًا لـ SOAP. بعد كل شيء، هناك الآلاف من تطبيقات الويب التي تستخدم أمان HTTP حاليًا، لذا فإن هذا يكفي بالفعل لـ SOAP. ولذلك، يفترض معيار SOAP الحالي أن الأمان يمثل مشكلة نقل ولا يتم التعامل معه على أنه مشكلة أمنية.
مع توسع SOAP إلى بروتوكول أكثر عمومية وتشغيله على العديد من وسائل النقل، أصبحت المشكلات الأمنية أكثر وضوحًا. على سبيل المثال، يوفر HTTP عدة طرق لمصادقة المستخدمين الذين يقومون بإجراء مكالمات SOAP، ولكن كيف يتم نشر هذه الهوية عندما يتم توجيه الرسائل من HTTP إلى نقل SMTP؟ تم تصميم SOAP كبروتوكول أساسي، ولحسن الحظ توجد مواصفات لتوفير ميزات أمان إضافية لخدمات الويب المستندة إلى SOAP. تحدد مواصفات WS-Security (الإنجليزية) نظام تشفير كامل، وتحدد مواصفات ترخيص WS (الإنجليزية) التكنولوجيا المقابلة لضمان هوية المتصل والتأكد من أن المستخدمين المصرح لهم فقط يمكنهم استخدام خدمات الويب.
WSDL
WSDL (لغة وصف خدمات الويب) تعني لغة وصف خدمات الويب. لأغراض هذه المقالة، يمكننا اعتبار ملف WSDL بمثابة مستند XML يصف مجموعة من رسائل SOAP وكيفية تبادلها. بمعنى آخر، WSDL بالنسبة إلى SOAP هو ما يمثله IDL بالنسبة إلى CORBA أو COM. نظرًا لأن WSDL عبارة عن مستند XML، فمن السهل قراءته وتحريره، ولكن في معظم الحالات، يتم إنشاؤه واستخدامه بواسطة البرنامج.
لعرض قيم WSDL، تخيل أنك تريد استدعاء طريقة SOAP التي يوفرها أحد شركاء عملك. يمكنك أن تطلب بعض نماذج رسائل SOAP ثم تكتب تطبيقك لإنشاء رسائل مشابهة للعينات واستخدامها، ولكن من السهل ارتكاب الأخطاء. على سبيل المثال، قد ترى معرف العميل 2837 وتفترض أنه عدد صحيح، في حين أنه في الواقع عبارة عن سلسلة. تحدد WSDL من خلال تدوين صريح ما يجب أن تحتويه رسالة الطلب وكيف يجب أن تبدو رسالة الاستجابة.
يعتمد الترميز الذي تستخدمه ملفات WSDL لوصف تنسيقات الرسائل على معيار مخطط XML، مما يعني أنها لغة برمجة غير محددة ومعتمدة على المعايير، مما يجعلها مناسبة لوصف خدمات ويب XML التي يمكن الوصول إليها من منصات مختلفة وفي برمجة مختلفة واجهة. بالإضافة إلى وصف محتوى الرسالة، تحدد WSDL أيضًا موقع الخدمة وبروتوكول الاتصال المستخدم للتواصل مع الخدمة. أي أن ملف WSDL يحدد كل ما هو مطلوب لكتابة برنامج يستخدم خدمات ويب XML. هناك العديد من الأدوات التي يمكنها قراءة ملفات WSDL وإنشاء التعليمات البرمجية المطلوبة للاتصال بخدمات ويب XML. يمكن العثور على بعض أقوى الأدوات في Microsoft Visual Studio® .NET.
في الوقت الحالي، تتضمن العديد من مجموعات أدوات SOAP أدوات لإنشاء ملفات WSDL من واجهات البرامج الموجودة، ولكن هناك عدد قليل من الأدوات لكتابة WSDL مباشرة، كما أن دعم الأدوات لـ WSDL غير مكتمل. ولكن قريبًا ستكون هناك أدوات لكتابة ملفات WSDL، تليها أدوات لإنشاء الوكلاء والأجزاء (تشبه إلى حد كبير أدوات COM IDL)، وستصبح هذه الأدوات جزءًا من معظم تطبيقات SOAP. وحتى ذلك الحين، سيصبح WSDL هو الأسلوب المفضل لإنشاء واجهات SOAP لخدمات ويب XML.
يوجد وصف جيد جدًا لـ WSDL هنا (باللغة الإنجليزية)، ويمكنك أيضًا العثور على مواصفات WSDL على http://www.w3.org/TR/wsdl (باللغة الإنجليزية).
يعد الاكتشاف والوصف والتكامل العالمي
لـ UDDI
(UDDI) بمثابة الصفحات الصفراء لخدمات الويب.كما هو الحال مع الصفحات الصفراء التقليدية، يمكنك البحث عن الشركات التي تقدم الخدمات التي تحتاجها، والقراءة للتعرف على الخدمات المقدمة، ثم الاتصال بشخص ما للحصول على مزيد من المعلومات. بالطبع، يمكنك تقديم خدمات الويب دون تسجيلها في UDDI، وهو ما يشبه إدارة مشروع تجاري في الطابق السفلي الخاص بك والاعتماد على الكلام الشفهي، ولكن إذا كنت ترغب في توسيع السوق الخاص بك، فأنت بحاجة إلى UDDI حتى يمكن اكتشافك من خلالك عملاء.
إدخالات دليل UDDI هي ملفات XML تصف الخدمات والخدمات المقدمة. يتكون إدخال دليل UDDI من ثلاثة أجزاء. "الصفحات البيضاء" تقدم الشركات التي تقدم الخدمات: الاسم والعنوان ومعلومات الاتصال وما إلى ذلك؛ "الصفحات الصفراء" تتضمن فئات الصناعة بناءً على التصنيفات القياسية (مثل نظام تصنيف الصناعة في أمريكا الشمالية والتصنيف الصناعي القياسي) و"الصفحات الخضراء" تقدم تفاصيل المعلومات الوصول إلى واجهة الخدمة حتى يتمكن المستخدمون من كتابة التطبيقات لاستهلاك خدمة الويب. يتم تعريف الخدمة من خلال مستند UDDI يسمى نموذج النوع (أو tModel). في معظم الحالات، يحتوي tModel على ملف WSDL يصف واجهة SOAP للوصول إلى خدمة ويب XML، ولكن tModel مرن جدًا ويمكنه وصف أي نوع من الخدمة تقريبًا.
يحتوي دليل UDDI أيضًا على عدة طرق للبحث عن الخدمات المطلوبة لإنشاء التطبيق الخاص بك. على سبيل المثال، يمكنك البحث عن مقدمي الخدمات في موقع جغرافي محدد أو البحث عن نوع معين من الأعمال. سيوفر دليل UDDI بعد ذلك المعلومات وتفاصيل الاتصال والروابط والبيانات الفنية حتى تتمكن من تحديد الخدمات التي تلبي احتياجاتك.
يتيح لك UDDI العثور على الشركات التي تقدم خدمات الويب التي تحتاجها. ماذا تفعل إذا كنت تعرف بالفعل من تريد التعامل معه، ولكنك لا تعرف بعد ما الذي يمكن أن يقدمه لك؟ تتيح لك مواصفات WS-Inspection (باللغة الإنجليزية) تصفح مجموعة خدمات ويب XML المتوفرة على خادم معين للعثور على الخدمة التي تحتاجها.
لمزيد من المعلومات حول UDDI، قم بزيارة http://www.uddi.org/about.html (باللغة الإنجليزية).
محتوى آخر
لقد ناقشنا حتى الآن كيفية الاتصال بخدمات ويب XML (SOAP)، وكيفية وصف خدمات ويب XML (WSDL)، وكيفية العثور على خدمات ويب XML (UDDI). تشكل هذه مجموعة أساسية من المواصفات التي توفر الأساس لتكامل التطبيقات وتجميعها. وبناء على هذه المواصفات الأساسية تستطيع الشركات بناء حلول عملية والاستفادة منها.
لقد قمنا بالكثير من العمل لتنفيذ خدمات ويب XML، ولكن لا يزال هناك الكثير من العمل الذي يتعين علينا إنجازه. اليوم، حقق الأشخاص النجاح باستخدام خدمات ويب XML، ولكن بالنسبة للمطورين، لا يزال هناك العديد من الروابط التي يجب تحسينها. على سبيل المثال، الأمان وإدارة العمليات ومعالجة المعاملات والرسائل الموثوقة. ستساعد بنية خدمات ويب XML العالمية خدمات ويب XML على الدخول إلى المرحلة التالية من التطور من خلال توفير نموذج متسق ومشترك لإضافة إمكانات متقدمة جديدة إلى خدمات ويب XML بطريقة معيارية وقابلة للتوسيع.
تعد وحدات الأمان المذكورة أعلاه (WS-Security [الإنجليزية] وWS-License [الإنجليزية]) جزءًا من مواصفات بنية خدمات الويب العالمية. تعد احتياجات الإدارة التشغيلية (مثل توجيه الرسائل بين خوادم متعددة وتكوين تلك الخوادم ديناميكيًا للمعالجة) أيضًا جزءًا من بنية خدمات الويب العالمية من خلال مواصفات WS-Routing (الإنجليزية) ومواصفات WS-Referral (الإنجليزية) لتحقيقها. ومع تطور بنية خدمات الويب العالمية، سيتم تقديم المواصفات التي تلبي هذه الاحتياجات وغيرها.