أحياناً يقرأ البعض منا هذا المصطلح ويب سيرفس ( WEB SERVICE ) , ولكن قد يفهمها حرفياً بأنها “خدمات الويب”, ومع ذلك هي بالفعل خدمات ويب ولكن أي خدمات وماهي وظيفتها هذا ما يهمنا في هذا الموضوع.
توفر غالبية التطبيقات التي يتم تشغيلها من خلال الإنترنت خدمة تسمح لتطبيقات أخرى الاستفادة من الخدمات الإلكترونية التي يوفرها تطبيق معين عن طريق الاتصال بهذا التطبيق للحصول على الخدمة المقدمة.
بالتالي يمكن تعريف خدمات الويب على أنها وسيلة للتواصل بين الأنظمة. وليكن مثل
- نظام أندرويد وموقع إلكتروني
- آي أو إس وموقع الكتروني
- موقع إلكتروني وموقع إلكتروني آخر
وهذا ما يفرق بين الـ Web Site و الـ Web Service , حيث أن الأول هو وسيلة اتصال بين شخص وتطبيق أما الويب سيرفيس فهي وسيلة اتصال بين تطبيق وتطبيق آخر.
ويمكن تعريف خدمات الويب على أنها خدمة تسمح لبرنامج بالتواصل مع التطبيق للحصول على/لإضافة المعلومات دون الحاجة لفتح التطبيق.
تعريف ويكيبيديا
خدمات الويب تعتبر نوع من تطبيقات الويب تقدم خدمات إلكترونية بين تطبيق وتطبيق آخر أو نظام ونظام آخر بحيث يقوم تطبيق بالاتصال وطلب الخدمة (Service Request) من خدمة الويب التي يوفرها تطبيق آخر عبر واجهته البرمجية وهي ما تعرف بواجهة برمجة التطبيقات ( API ) و ليست واجهة المستخدم الرسومية ( GUI ) كالأزرار والأسهم الخ، ومن ثم ترسل خدمة الويب نتيجة الطلب للتطبيق مرة أخرى على هيئة لغة الترميز القابلة للامتداد ( XML ).
أي أن خدمات الويب تستخدم مبدأ واجهة برمجة التطبيقات API للتواصل بين التطبيقات. ويجب أن نعلم أن كل ( WEB SERVICE ) هي (API) وليس كل ( API ) هو ( WEB SERVICE ). ومع ذلك هناك تشابه بينهما ولكن أيضاً هناك فرق بين خدمة الويب وواجهة برمجة التطبيقات.
وتم تصميم خدمات الويب بالشكل الذي يسمح للتطبيقات المختلفة التي تستخدم برمجيات مختلفة للتواصل مع بعض بدون أي مشاكل.
مثال على ذلك خدمة لقم الخلاصات Rich Site Summary أو ( RSS ) التي يوفرها الموقع الإلكتروني للمستخدمين بحيث يتم تغذيتهم Feed بأي تحديث للموضوعات التي يتم إضافتها للموقع .
وتستطيع جميع التطبيقات التواصل مع بعضها بدون مشاكل لأنها جميعاً تقوم بتخزين معلوماتها بأحد الطرق الموحدة المعروفة وهي
- SOAP (Simple Object Access Protocol)
- UDDI (Universal Description, Discovery and Integration)
- Representational State Transfer (REST)
- WSDL (Web Services Description Language)
ثم ترجمة المعلومات في النهاية إلى أحد الصيغ المعروفة مثل ( XML ) أو ( JASON ) وهي صيغ تستطيع جميع التطبيقات التعامل معها
فكرة عمل خدمات الويب
تتلخص الفكرة العامة لعمل خدمات الويب كالتالي
1- يقوم البرنامج العميل (البرنامج الذي يريد الخدمة) بإرسال طلب من البرنامج المزود للخدمة باستخدام إحدى تقنيات خدمات الويب ولتكن ( SOAP ) على هيئة طلب باستخدام طريقة ( HTTP POST )
[highlight background=”” color=””]ليس بالضرورة أن تكون وسيلة الإتصال هي ( HTTP ) ولكن هي الأكثر شيوعاً وقد تكون الإفتراضية إن لم يذكر غير ذلك[/highlight]
2- تقوم خدمة الويب بفك الرسالة وتحويلها لأوامر يستطيع البرنامج المزود للخدمة فهمها
3- يقوم البرنامج المزود بجمع المعلومات المطلوبة وتحويل المعلومات الى رسالة ( SOAP ) ثم إرسالها للبرنامج العميل
وبالتالي كما ذكرنا سابقاً يتضح أن خدمات الويب هي وسيط بين تطبيق وتطبيق آخر.
لماذا تم ابتكار خدمات الويب؟
إذا كانت لديك فكرة عامة عن طريقة عمل الموقع الإلكتروني فلابد أنك تعرف أن الحصول علي المعلومات من الموقع يتم عن طريق إرسال طلبات Requests من المستخدم إلى قاعدة البيانات ( DATABASE ) ثم يتم الرد Response بهذه المعلومات وعرضها من خلال المتصفح. ولكن للحصول على أي معلومات من قاعدة البيانات لابد من معرفة اسم المستخدم والباسورد لقاعدة البيانات.
لذلك تخيل معي خدمة من الخدمات المعروفة مثل خدمة الطقس التي يقدمها الموقع الشهير Yahoo وانت تقوم بعمل تطبيق يريد الاستفادة من هذه الخدمة فمن الطبيعي أن التطبيق يحتاج للدخول إلى قاعدة بيانات موقع Yahoo للحصول على المعلومات لعرضها . ولكن هل معقول أن يعرف أي شخص طريقة الاتصال بقاعدة بيانات الموقع ؟ بالطبع غير منطقي بالمرة وإلا قام بسرقة معلومات سرية مثلاً أو تدمير الموقع إن أراد.
هنا يأتي دور خدمة الويب ( WEB SERVICES ) , بحيث يقوم موقع ياهو بعمل خدمة تقوم بعرض جزء من المعلومات الخاصة بالطقس من قاعدة البيانات وصياغتها بصيغة ( XML ) أو ( JASON ) ثم السماح لأي تطبيق باستخدام هذه الصيغ دون السماح للتطبيق بالوصول لقاعدة البيانات.