يمكن لخدمات الويب تحويل التطبيقات إلى تطبيقات الويب.
باستخدام خدمات الويب ، يمكن للتطبيق الخاص بك نشر المعلومات إلى العالم أو تقديم ميزة.
يمكن استخدام خدمات الويب من قبل التطبيقات الأخرى.
تتيح خدمات الويب خادم WIN 2K الخاص بقسم المحاسبة الخاص بك بالاتصال بخادم UNIX الخاص ببائع تكنولوجيا المعلومات.
منصة خدمات الويب الأساسية هي XML+HTTP.
تستخدم خدمات الويب XML لتدوين البيانات واستخدام SOAP لنقل البيانات.
ما هو خدمة الويب
WebService ، كما يوحي الاسم ، هي خدمة تعتمد على الويب. يستخدم طريقة الويب (HTTP) لتلقي بعض الطلبات من الأنظمة الخارجية والاستجابة لها. هذا يتيح المكالمات عن بُعد.
1: من منظور وضع عمل WebService ، لا يختلف بشكل أساسي عن برامج الويب العادية (مثل ASP ، JSP ، إلخ). فهي برامج تعتمد على بروتوكول نقل HTTP.
2: تعتمد البيانات المستخدمة بواسطة WebService على تنسيق XML. حاليًا ، تستخدم خدمة الويب القياسية بروتوكول الصابون بشكل أساسي بتنسيق البيانات. بروتوكول SOAP هو في الواقع بروتوكول نص يعتمد على مواصفات تشفير XML.
الدعم الفني لخدمة الويب
تتطلب منصة خدمة الويب مجموعة من البروتوكولات لتمكين إنشاء التطبيقات الموزعة. أي منصة لها طريقة تمثيل البيانات ونظام الكتابة. لتحقيق قابلية التشغيل البيني ، يجب أن توفر منصة خدمة الويب نظامًا قياسيًا لتوصيل أنواع مختلفة من الأنظمة في منصات مختلفة ولغات البرمجة ونماذج المكونات. وتشمل هذه الاتفاقيات حاليًا:
XML و XSD
لغة الترميز القابلة للتوسعة XML هي التنسيق الأساسي لتمثيل البيانات في منصة خدمة الويب. إلى جانب كونه سهل البناء والتحليل ، فإن الميزة الرئيسية لـ XML هي أنه لا علاقة له بالمنصة والبائع. يتم إنشاء XML من قبل جمعية الويب العالمية (W3C). يحدد XML SchemaxSD الذي تم تطويره بواسطة W3C مجموعة قياسية من أنواع البيانات ويعطي لغة لتوسيع مجموعة أنواع البيانات هذه.
يستخدم منصة خدمة الويب XSD كنظام نوع البيانات. عندما تقوم ببناء خدمة ويب بلغة مثل VB. Net أو C#، من أجل الامتثال لمعايير خدمة الويب ، يجب تحويل جميع أنواع البيانات التي تستخدمها إلى نوع XSD. إذا كنت تريد أن يتم تمريرها بين منصات مختلفة وبرامج مختلفة ، فأنت بحاجة أيضًا إلى لفه بشيء ما. هذا النوع من الأشياء هو بروتوكول ، مثل الصابون.
صابون
SOAP هو بروتوكال الوصول إلى الكائن البسيط ، وهو بروتوكول خفيف الوزن لتبادل معلومات تشفير XML. يحتوي على ثلاثة جوانب رئيسية: يحدد XML-envelope إطارًا لوصف محتوى المعلومات وكيفية معالجة المحتوى ، وترميز كائنات البرنامج إلى كائنات XML ، وتنفيذ مكالمات الإجراءات عن بُعد (RPC). يمكن أن يعمل الصابون على أي بروتوكول نقل آخر. على سبيل المثال ، يمكنك استخدام SMTP ، بروتوكول البريد الإلكتروني عبر الإنترنت ، لتقديم رسائل الصابون ، وهو أمر مغر للغاية. تختلف الرؤوس بين طبقات النقل ، لكن حمولة XML تظل كما هي.
تأمل خدمة الويب في تحقيق قدرة الأنظمة المختلفة على الاتصال ببعضها البعض بطريقة "حوار برمجيات البرمجيات" ، وتحطيم الحالة غير المتوافقة بين تطبيقات البرامج ومواقع الويب والأجهزة المختلفة ، وتحقيق هدف "التكامل الموسمي بناءً على الويب".
WSDL
خدمة الويب الوصف لغة WSDL هي مستند وصف رسمي يتم توفيره بطريقة قابلة للقراءة الآلي وتستند إلى XML. يتم استخدامه لوصف خدمة الويب ووظائفها ومعلماتها وقيم الإرجاع. نظرًا لأنه يعتمد على XML ، فإن WSDL قابلة للقراءة للآلة وقابلة للقراءة البشرية.
uddi
الغرض من UDDI هو وضع معايير للتجارة الإلكترونية ؛ UDDI هي مجموعة من معايير تنفيذ مركز تسجيل المعلومات المستندة إلى الويب والموزعة والمواصفات المقدمة لخدمات الويب ، وتتضمن أيضًا مجموعة من معايير التنفيذ التي تمكن المؤسسات من تسجيل خدمات الويب الخاصة بها حتى تتمكن المؤسسات الأخرى من اكتشاف بروتوكولات الوصول. استدعاء RPC والرسائل
تعمل خدمة الويب نفسها في الواقع على تنفيذ التواصل بين التطبيقات. لدينا الآن طريقتان للاتصال للتطبيقات: استدعاء إجراءات RPC عن بُعد وتسليم الرسائل. عند استخدام RPC ، فإن مفهوم العميل هو استدعاء إجراء عن بُعد على الخادم. الطريقة المعتادة هي إنشاء إنشاء كائن بعيد والاستدعاء أساليبه وخصائصه. يحاول نظام RPC تحقيق نوع من شفافية الموقع: يعرض الخادم واجهات الكائنات البعيدة ، والعميل يشبه واجهات هذه الكائنات المستخدمة محليًا ، وبالتالي إخفاء المعلومات الأساسية ، ولا يحتاج العميل إلى معرفة الجهاز الذي يتم تشغيله الكائن.
كيف تنشر خدمة ويب؟
1. استخدم JDK1.6.0_21 لاحقًا لنشر خدمة خدمة الويب. وعرض وثيقة WSDL الخاصة بها من خلال شريط العناوين.
2. قم بإنشاء رمز العميل من خلال wsimport ، اتصل وعرض نتائج التشغيل. (تعلم كيفية الاتصال هو تركيزنا).
تجدر الإشارة إلى أنه عندما يتم إصدار JDK1.6._07 بعد إصدار JDK ، يجب أن يكون الرمز شرحًا بالكامل. إذا كنت تستخدم JDK1.6.0_21 ، لأنه يحتوي بالفعل على WS2.1 ، يمكنك فقط إضافة تعليقات توضيحية WebService إلى الفصل.
فيما يلي رمزان مختلفان:
تم إصدار WS على الإصدار JDK1.6.0_13:
حزمة com.itcast ؛ استيراد javax.jws.webmethod ؛ استيراد javax.jws.webservice ؛ استيراد javax.jws.soap.soapbinding ؛ استيراد javax.jws.soap.soapbinding.style ؛ استيراد javax.xml.ws.endpoint ؛ WebService (TargetNamesPace = "http: // loalhost: 9999/helloWorld") soapbinding (style = style.rpc) // فقط دعم message style style public helloworld {// ما يلي ما يلي بواسطة webmethod ، the method @webmethod public stringhell () {return " } public static void main (string [] args) {endpoint.publish ("http: // localhost: 9999/helloworld" ، new HelloWorld ()) ؛ }} 2: ما يلي هو رمز خدمة الويب الذي تم إصداره على JDK1.6.0_24:
حزمة com.itcast ؛ استيراد javax.jws.webservice ؛ استيراد javax.xml.ws.endpoint ؛ @WebService // لاحظ أن هناك هذا التعليق التوضيحي فقط ، هذا التعليق التوضيحي ضروري أيضًا. نمط رسالة SOAP الافتراضي هو: Document Public Class HelloWorld {public string salehello () {return "HelloWorld" ؛ } public static void main (string [] args) {endpoint.publish ("http: // localhost: 9999/helloworld" ، new HelloWorld ()) ؛ }} خدمة خدمة الويب الأولى
حزمة com.itcast ؛ استيراد javax.jws.webservice ؛ استيراد javax.xml.ws.endpoint ؛ / *** أول تطبيق لخدمة WebService*/ // من خلال التعليقات التوضيحية ، يشير إلى أن هذه الفئة يتم نشرها على أنها WebServiceWebservice Public Class HelloWorld {public string salehello () {return "Hello World" ؛ } // في الطريقة الرئيسية ، استخدم javax.xml.ws.endpoint endpoint لنشر تطبيق static static void main (string [] args) {endpoint.publish ( }}الوصف رمز: سيتم تعرض جميع الأساليب المكشوفة غير المنتظمة لفئة HelloWorld للخارج.
الوصف أداة WSIMPORT:
WSimport هي أداة تأتي مع JDK ، ويمكنها إنشاء رمز الاتصال من جانب العميل بناءً على مستند WSDL. بالطبع ، بغض النظر عن اللغة المكتوبة على خدمة الويب من جانب الخادم ، سيتم إنشاء رمز Java على العميل. لا يهم ما هو مكتوب على جانب الخادم.
wsimport.exe يقع في دليل Java_Home/Bin.
المعلمات الشائعة هي:
• -D <Cirluctory> - سيتم إنشاء ملف .class. المعلمات الافتراضية.
• -S <Cirly> - سيتم إنشاء ملف .java.
• -P <اسم الحزمة الجديد تم إنشاؤه> -PUT الفئة التي تم إنشاؤها ضمن الحزمة المحددة.
(WSDLURL) - http: // server: port/service؟ wsdl ، المعلمات المطلوبة
يستخدم:
1: يمكنك التحقق من رقم الإصدار الحالي من خلال إصدار Java. إذا كان الإصدار منخفضًا جدًا ، فيمكنك تثبيت إصدار أعلى من JDK.
أو قم بنسخ دليل JDK المثبت مباشرة إلى جهازك مثل D: /jdk1.6.0_24 دليل.
نظرًا لأن متغيرات البيئة السابقة قد تم تعيينها على الإصدار القديم السابق من دليل JDK ، وهما متغيران البيئة Java_Home و Path.
يمكنك إعادة تعيين متغير البيئة إلى: java_home = d: /jdk1.6.0_24 ، path = ٪ java_home ٪/bin
بعد إعادة ضبط متغيرات البيئة ، يجب إعادة فتح نافذة DOC (سطر الأوامر) لتنفيذها.
إذا كنت لا ترغب في تعديل متغيرات البيئة التي تم تكوينها بالفعل ، فيمكنك إدخال الأمر التالي في نافذة سطر الأوامر لجعل JDK1.6.0_24 ساري المفعول:
Set path = d: /jdk1.6.0_24/bin ؛ ٪ path ٪ (فقط أدخل)
ثم تحقق مما إذا كان عدد إصدار JDK قد تغير من خلال إصدار Java.
2: انتقل إلى دليل نظيف نسبيًا ، قمت بإنشاء اسم دليل جديد على قرص D يسمى: WS ، وانتقل إلى هذا الدليل.
3: قم بتشغيل خدمة الويب الخاصة بك.
4: أدخل الأمر التالي:
wsimport s. http://127.0.0.1:9999/helloworld؟wsdl
وصف المعلمة: يشير -S إلى تجميع ملف رمز المصدر ، ويشير ما يلي (النقطة) إلى وضعه في المكان السابق.
يشير آخر HTTP ... إلى عنوان الحصول على دليل تعليمات WSDL.
5: في هذا الوقت ، سيتم إنشاء ملف .java وملف .class. (كلاهما يحتوي على اسم الحزمة الأصلي). انسخ الرمز في مشروعك. (فقط انسخ ملف Java)
6: في مشروع جديد ، يمكن تحديد موقع فئة جديدة (تحت أي حزمة) ، اتصل بالرمز الذي تم إنشاؤه أعلاه ، راجع PPT في الصفحة التالية.
7: WSIMPORT معلمات أخرى ، والمعلمات التي نستخدمها غالبًا هي -D ، -S ، -P
-D <Cirluctory> سيقوم بإنشاء ملفات .class.
مثال: wsimport د. http://127.0.0.1:9999/helloworld؟wsdl
-S <Cirly> سيقوم بإنشاء ملف .java.
مثال: wsimport s. http://127.0.0.1:9999/helloworld؟wsdl
-P <Name Package> تعديل الملف الذي تم إنشاؤه (.java أو .class إلى اسم الحزمة المحدد)
مثال: wsimport -s. -P com.beijing.itcast http://127.0.0.1:9999/helloworld؟wsdl
للمعلمة -P ، انتبه إلى تعديل اسم الحزمة. يضع جميع الفئات التي تم إنشاؤها تحت الحزمة المحددة بواسطة -P. (تجريبي)
تجدر الإشارة إلى أنه عند استخدام المعلمة -P فقط ، فإنها ستستخدم أيضًا -D في نفس الوقت لتجميعها في ملف .class. إذا كانت المعلمة d مكتوبة أم لا ، فهي موجودة ، ولن تغادر أبدًا.
رمز المصدر لـ RunMain.java كما يلي:
حزمة com.leaf ؛ استيراد com.itcast.helloworld ؛ استيراد com.itcast.helloworldservice ؛ /*** استدعاء الكود عن بُعد عن طريق استدعاء الفئة التي تم إنشاؤها*/الفئة العامة RunMain {public static void main (string [] args) {// إرجاع واجهة الاتصال من طريقة gethelloworldport من HelloWorldSerice HelloWorld = NewOworldService (). String str = helloWorld.sayhello () ؛ // تنفيذ نظام الاتصالالفرق بين خدمات الويب وبرامج الويب العادية
1. WebService يستخدم فقط HTTP Post لنقل البيانات ، ولا يستخدم GET ؛
1) ContentType من TTTP Post
(1) التطبيق/x-www-form-urlencoded
2) ContentType من WebService
(2) النص/XML SOAP1.1
(3) التطبيق/الصابون+XML SOAP1.2
2. خدمة الويب محدودة من تنسيق نقل البيانات.
تعتمد البيانات المستخدمة بواسطة WebService على تنسيق XML. حاليًا ، تستخدم خدمة الويب القياسية بروتوكول الصابون بشكل أساسي بتنسيق البيانات. بروتوكول SOAP هو في الواقع بروتوكول نص يعتمد على مواصفات تشفير XML.
الفرق بين خدمة الويب وخادم الويب:
يمكننا التفكير في خدمة الويب كتطبيق على خادم الويب ؛ من ناحية أخرى ، يعد خادم الويب حاوية ضرورية لوقت تشغيل WebService. هذا هو الفرق واتصالهم.
ميزات خدمة الويب:
1. WebService يقبل طلبات العملاء من خلال Post HTTP
2. يتم استخدام بروتوكول الصابون بشكل عام بين خدمة الويب والعميل لنقل بيانات XML.
3. إنه مصمم للانتشار عبر المنصات أو اللغات المتقاطعة.