บริการเว็บสามารถแปลงแอปพลิเคชันเป็นเว็บแอปพลิเคชัน
ด้วยการใช้บริการเว็บแอปพลิเคชันของคุณสามารถเผยแพร่ข้อมูลไปยังโลกหรือให้คุณสมบัติ
บริการเว็บสามารถใช้งานได้โดยแอปพลิเคชันอื่น ๆ
บริการเว็บช่วยให้เซิร์ฟเวอร์ WIN 2K ของแผนกบัญชีของคุณเชื่อมต่อกับเซิร์ฟเวอร์ UNIX ของผู้ขายไอที
แพลตฟอร์มบริการเว็บพื้นฐานคือ XML+HTTP
บริการเว็บใช้ XML เป็นรหัสข้อมูลและใช้ SOAP เพื่อถ่ายโอนข้อมูล
WebService คืออะไร
Webservice ตามชื่อแนะนำเป็นบริการบนเว็บ ใช้วิธีการเว็บ (HTTP) เพื่อรับและตอบสนองต่อคำขอบางอย่างจากระบบภายนอก สิ่งนี้ช่วยให้การโทรจากระยะไกล
1: จากมุมมองของโหมดการทำงานของ Webservice มันไม่แตกต่างจากโปรแกรมเว็บทั่วไป (เช่น ASP, JSP ฯลฯ ) พวกเขาเป็นโปรแกรมที่ใช้โปรโตคอลการส่ง HTTP
2: ข้อมูลที่ใช้โดย WebService ขึ้นอยู่กับรูปแบบ XML ปัจจุบันเว็บเซิร์ฟเวอร์มาตรฐานส่วนใหญ่ใช้โปรโตคอล SOAP ในรูปแบบข้อมูล โปรโตคอล SOAP เป็นโปรโตคอลข้อความตามข้อกำหนดการเข้ารหัส XML
การสนับสนุนด้านเทคนิคสำหรับเว็บเซิร์ฟเวอร์
แพลตฟอร์มบริการเว็บต้องการชุดของโปรโตคอลเพื่อเปิดใช้งานการสร้างแอปพลิเคชันแบบกระจาย แพลตฟอร์มใด ๆ มีวิธีการแสดงข้อมูลและระบบประเภท เพื่อให้บรรลุการทำงานร่วมกันแพลตฟอร์มบริการเว็บจะต้องจัดเตรียมระบบประเภทมาตรฐานสำหรับการสื่อสารระบบประเภทต่าง ๆ ในแพลตฟอร์มที่แตกต่างกันภาษาการเขียนโปรแกรมและโมเดลส่วนประกอบ ขณะนี้ข้อตกลงเหล่านี้รวมถึง:
XML และ XSD
Extensible Markup Language XML เป็นรูปแบบพื้นฐานสำหรับการแสดงข้อมูลในแพลตฟอร์มบริการเว็บ นอกเหนือจากการสร้างและวิเคราะห์ง่ายแล้วข้อได้เปรียบหลักของ XML คือมันไม่มีส่วนเกี่ยวข้องกับแพลตฟอร์มและผู้ขาย XML ถูกสร้างขึ้นโดย World Wide Web Association (W3C) XML Schemaxsd ที่พัฒนาโดย W3C กำหนดชุดข้อมูลประเภทข้อมูลมาตรฐานและให้ภาษาเพื่อขยายประเภทข้อมูลชุดนี้
แพลตฟอร์มบริการเว็บใช้ XSD เป็นระบบชนิดข้อมูล เมื่อคุณสร้างบริการเว็บในภาษาเช่น VB NET หรือ C#เพื่อให้สอดคล้องกับมาตรฐานบริการเว็บประเภทข้อมูลทั้งหมดที่คุณใช้จะต้องแปลงเป็นประเภท XSD หากคุณต้องการให้ส่งผ่านระหว่างแพลตฟอร์มที่แตกต่างกันและซอฟต์แวร์ที่แตกต่างกันคุณต้องห่อด้วยบางสิ่ง สิ่งนี้เป็นโปรโตคอลเช่นสบู่
สบู่
SOAP เป็น Protocal การเข้าถึงวัตถุอย่างง่ายซึ่งเป็นโปรโตคอลที่มีน้ำหนักเบาสำหรับการแลกเปลี่ยนข้อมูลการเข้ารหัส XML มันมีสามประเด็นหลัก: XML-Envelope กำหนดกรอบการทำงานสำหรับการอธิบายเนื้อหาข้อมูลและวิธีการประมวลผลเนื้อหาเข้ารหัสวัตถุโปรแกรมลงในวัตถุ XML และดำเนินการประชุมของการเรียกขั้นตอนระยะไกล (RPC) สบู่สามารถทำงานบนโปรโตคอลการขนส่งอื่น ๆ ตัวอย่างเช่นคุณสามารถใช้ SMTP, โปรโตคอลอีเมลอินเทอร์เน็ตเพื่อส่งข้อความ SOAP ซึ่งน่าดึงดูดมาก ส่วนหัวแตกต่างกันระหว่างเลเยอร์การขนส่ง แต่น้ำหนักบรรทุก XML ยังคงเหมือนเดิม
Web Service หวังที่จะบรรลุความสามารถของระบบที่แตกต่างกันในการโทรหากันในวิธี "การสนทนาซอฟต์แวร์ซอฟต์แวร์" ทำลายสถานะที่เข้ากันไม่ได้ระหว่างแอพพลิเคชั่นซอฟต์แวร์เว็บไซต์และอุปกรณ์ต่าง ๆ และบรรลุเป้าหมายของ "การรวมตามฤดูกาลตามเว็บ"
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) // สนับสนุนเฉพาะข้อความสไตล์ RPC } โมฆะคงที่สาธารณะหลัก (สตริง [] args) {endpoint.publish ("http: // localhost: 9999/helloWorld", HelloWorld ใหม่ ()); - 2: ต่อไปนี้เป็นรหัสเว็บเซิร์ฟเวอร์ที่เปิดตัวใน JDK1.6.0_24:
แพ็คเกจ com.itcast; นำเข้า Javax.jws.webservice; นำเข้า javax.xml.ws.endpoint; @webservice // โปรดทราบว่ามีเพียงคำอธิบายประกอบนี้เท่านั้นคำอธิบายประกอบนี้ก็จำเป็นเช่นกัน รูปแบบข้อความ SOAP เริ่มต้นคือ: Document Public Class HelloWorld {Public String Sayshello () {return "HelloWorld"; } โมฆะคงที่สาธารณะหลัก (สตริง [] args) {endpoint.publish ("http: // localhost: 9999/helloWorld", HelloWorld ใหม่ ()); - บริการเว็บเซิร์ฟเวอร์แรก
แพ็คเกจ com.itcast; นำเข้า Javax.jws.webservice; นำเข้า javax.xml.ws.endpoint; / *** แอปพลิเคชั่นบริการเว็บเซอรี่แรก* // // โดยคำอธิบายประกอบแสดงว่าคลาสนี้เผยแพร่เป็น webservice @webservice ชั้นเรียนสาธารณะ HelloWorld {สตริงสาธารณะ Sayshello () {return "Hello World"; } // ในวิธีการหลักใช้ javax.xml.ws.endpoint endpoint เพื่อเผยแพร่แอปพลิเคชันโมฆะสาธารณะคงที่ (สตริง [] args) {endpoint.publish ("http://127.0.0.1:9999/helloworld" -คำอธิบายรหัส: วิธีการที่ไม่ได้รับการเปิดเผยทั้งหมดของคลาส HelloWorld จะได้รับการสัมผัสกับภายนอก
คำอธิบายเครื่องมือ wsimport:
WSIMPORTเป็นเครื่องมือที่มาพร้อมกับ JDK และสามารถสร้างรหัสการโทรฝั่งไคลเอ็นต์ตามเอกสาร WSDL แน่นอนไม่ว่าจะเขียนภาษาใดบนเว็บเซิร์ฟเวอร์ฝั่งเซิร์ฟเวอร์รหัส Java จะถูกสร้างขึ้นบนไคลเอนต์ ไม่สำคัญว่าสิ่งที่เขียนไว้บนฝั่งเซิร์ฟเวอร์
wsimport.exe ตั้งอยู่ในไดเรกทอรี Java_home/bin
พารามิเตอร์ทั่วไปคือ:
• -d <ไดเรกทอรี> - ไฟล์. class จะถูกสร้างขึ้น พารามิเตอร์เริ่มต้น
• -S <ไดเรกทอรี> - ไฟล์. java จะถูกสร้างขึ้น
• -p <ชื่อแพ็คเกจใหม่ที่สร้างขึ้น> -put คลาสที่สร้างขึ้นภายใต้แพ็คเกจที่ระบุ
(WSDLURL) - http: // เซิร์ฟเวอร์: พอร์ต/บริการ? wsdl, พารามิเตอร์ที่ต้องการ
ใช้:
1: คุณสามารถตรวจสอบหมายเลขเวอร์ชันปัจจุบันของคุณผ่านเวอร์ชัน Java หากเวอร์ชันต่ำเกินไปคุณสามารถติดตั้ง JDK เวอร์ชันที่สูงขึ้น
หรือคัดลอกไดเรกทอรี JDK ที่ติดตั้งโดยตรงไปยังเครื่องของคุณเช่น D:/JDK1.6.0_24 ไดเรกทอรี
เนื่องจากตัวแปรสภาพแวดล้อมก่อนหน้านี้ถูกตั้งค่าเป็นไดเรกทอรี JDK รุ่นเก่าก่อนหน้านี้คือตัวแปรสภาพแวดล้อมทั้งสองตัวแปร Java_home และ Path
คุณสามารถรีเซ็ตตัวแปรสภาพแวดล้อมเป็น: java_home = d: /jdk1.6.0_24, เส้นทาง =%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: พารามิเตอร์อื่น ๆ พารามิเตอร์ที่เรามักจะใช้คือ -d, -s, -p
-d <ไดเรกทอรี> จะสร้างไฟล์. class
ตัวอย่าง: WSIMPORT D http://127.0.0.1:9999/helloworld?wsdl
-S <ไดเรกทอรี> จะสร้างไฟล์. java
ตัวอย่าง: WSIMPORT S http://127.0.0.1:9999/helloworld?wsdl
-p <ชื่อแพ็คเกจ> แก้ไขไฟล์ที่สร้างขึ้น (.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 {โมฆะคงที่สาธารณะหลัก (String [] args) {// ส่งคืนอินเตอร์เฟสการโทรจากวิธี Gethelloworldport ของ HelloWorldSerice HelloWorld = New HelloWorldService () string str = helloWorld.sayhello (); // เรียกใช้งาน System.err.println (str); // return HelloWorld String}}ความแตกต่างระหว่างเว็บเซิร์ฟเวอร์และโปรแกรมเว็บทั่วไป
1. WebService ใช้ HTTP POST เท่านั้นในการส่งข้อมูลและไม่ใช้ GET
1) ContentType ของโพสต์ TTTP คือ
(1) แอปพลิเคชัน/x-www-form-urlencoded
2) ContentType ของ WebService คือ
(2) ข้อความ/XML SOAP1.1
(3) แอปพลิเคชัน/สบู่+XML SOAP1.2
2. เว็บเซิร์ฟเวอร์ถูก จำกัด จากรูปแบบการส่งข้อมูล
ข้อมูลที่ใช้โดย WebService ขึ้นอยู่กับรูปแบบ XML ปัจจุบันเว็บเซิร์ฟเวอร์มาตรฐานส่วนใหญ่ใช้โปรโตคอล SOAP ในรูปแบบข้อมูล โปรโตคอล SOAP เป็นโปรโตคอลข้อความตามข้อกำหนดการเข้ารหัส XML
ความแตกต่างระหว่างเว็บเซิร์ฟเวอร์และเว็บเซิร์ฟเวอร์:
เราสามารถนึกถึง Webservice เป็นแอปพลิเคชันบนเว็บเซิร์ฟเวอร์ ในทางกลับกันเว็บเซิร์ฟเวอร์เป็นคอนเทนเนอร์ที่จำเป็นสำหรับ Webservice Runtime นี่คือความแตกต่างและการเชื่อมต่อ
คุณสมบัติของ WebService:
1. WebService ยอมรับคำขอของลูกค้าผ่าน HTTP Post
2. โปรโตคอล SOAP โดยทั่วไปจะใช้ระหว่าง Webservice และไคลเอนต์เพื่อส่งข้อมูล XML
3. มันถูกออกแบบมาสำหรับข้ามแพลตฟอร์มหรือข้ามภาษา