top down ปฏิบตัการทิี่ 5 wsdl web service provider ... · generate...

6
1 ดร.ธีระยุทธ ทองเครือ ภาควิชาวิทยาการคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยขอนแก่น ปฏิบัติการที5 Web Service Provider (Functional Service) ชนิดของการสร้างเว็บเซอร์วิส ชนิดของการสร้างเว็บเซอร์วิส แบบ Top down คือ การสร้างเว็บเซอร์วิสที่เริ มต้นจากการสร้าง เอกสาร WSDL อน แล้วค อยทําการ implement วน ประมวลผล แบบ Bottom up คือ การ implement วนประมวลผลก อน แล้ว สร้างเอกสาร WSDL จากส วนทีimplement เสร็จแล้ว 2 การสร้างเว็บเซอร์วิสแบบ Top down การสร้างเว็บเซอร์วิสแบบ Top down 1. สร้างเอกสาร WSDL - ออกแบบโครงสร้าง XML ที่จะใช้เป็น input และ output ของเว็บเซอร์วิส 2. Generate Source Code โดยใช้เครื่องมือในการสร้างโค้ดต างๆ ทีเก ยวข้องก บการทํางานของเว็บเซอร์วิสจากเอกสาร WSDL 3. Implement ส่วนประมวลผล - พิมพ์โค้ดคําสั งภายในที่จะทํางาน เมื่อได้รับ SOAP Request 4. Deploy บน Server เพิ Service ที ่สร้างเสร็จบน Server เพื่อรอ รับคําร้องจากผู ้ใช้ 3 ตัวอย่างการสร้างเว็บเซอร์วิสแบบ Top down ตัวอย่างการสร้างเว็บเซอร์วิสแบบ Top down ต้องการสร้างเซอร์วิสที่ให้บริการหาค่า BMR (Basal Metabolic Rate) ค่า BMR นี จะแสดงถึงปริมาณพลังงานที่ร ่างกายต้องการในแต่ละวันสําหรับการดํารงชีวิตอยู่ มี หน่วยเป็นกิโลแคลอรี่ต่อวัน สูตรคํานวณดังนี ค่า BMR สําหรับผ ชาย BMR = 66 + (13.7 x นํ าหนัก kg) + (5 x ส่วนสูง cm) –(6.8 x อายุ ) ค่า BMR สําหรับผ หญิง BMR = 665 + (9.6 x นํ าหนัก kg) + (1.8 x ส่วนสูง cm) – (4.7 x อายุ ) จากสูตร input ของเว็บเซอร์วิสประกอบด้วย 1. เพศ จะต้องมีค่าเป็น Male หรือ Female 2. นํ าหนัก - ตัวเลขจํานวนจริง 3. ส่วนสูง - ตัวเลขจํานวนจริง 4. อายุ - ตัวเลขจํานวนเต็ม 4 calculateBMR Service gender age weight bmrValue height

Upload: others

Post on 16-Oct-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Top down ปฏิบตัการทิี่ 5 WSDL Web Service Provider ... · Generate เอกสาร WSDL และ Deploy Service คลิกขวาที่ชื่อคลาส

1

ดร.ธีระยุทธ ทองเครือภาควชิาวทิยาการคอมพิวเตอร ์ คณะวทิยาศาสตร์

มหาวทิยาลยัขอนแกน่

ปฏิบตักิารที่ 5Web Service Provider(Functional Service)

ชนิดของการสร้างเวบ็เซอร์วสิชนิดของการสร้างเวบ็เซอร์วสิแบบ Top down คือ การสร้างเวบ็เซอร์วสิที่เริ่มตน้จากการสร้าง

เอกสาร WSDL ก่อน แลว้ค่อยทาํการ implement ส่วนประมวลผล

แบบ Bottom up คือ การ implement ส่วนประมวลผลก่อน แลว้สร้างเอกสาร WSDL จากส่วนที่ implement เสร็จแลว้

2

การสร้างเวบ็เซอร์วสิแบบ Top downการสร้างเวบ็เซอร์วสิแบบ Top down1. สร้างเอกสาร WSDL - ออกแบบโครงสร้าง XML ที่จะใชเ้ป็น input

และ output ของเวบ็เซอร์วสิ2. Generate Source Code – โดยใชเ้ครื่องมือในการสร้างโคด้ต่างๆ ที่

เกี่ยวขอ้งกบัการทาํงานของเวบ็เซอร์วสิจากเอกสาร WSDL3. Implement ส่วนประมวลผล - พิมพโ์คด้คาํสัง่ภายในที่จะทาํงาน

เมื่อไดร้ับ SOAP Request4. Deploy บน Server – เพิ่ม Service ที่สร้างเสร็จบน Server เพื่อรอ

รับคาํร้องจากผูใ้ช้

3

ตวัอย่างการสร้างเวบ็เซอร์วสิแบบ Top downตวัอย่างการสร้างเวบ็เซอร์วสิแบบ Top down ตอ้งการสร้างเซอร์วสิที่ใหบ้ริการหาค่า BMR (Basal Metabolic Rate) ค่า BMR นี้ จะแสดงถึงปริมาณพลงังานที่ร่างกายตอ้งการในแต่ละวนัสาํหรับการดาํรงชีวติอยู ่มี

หน่วยเป็นกิโลแคลอรี่ต่อวนั สูตรคาํนวณดงันี้ ค่า BMR สําหรับผู้ชาย

BMR = 66 + (13.7 x นํ้าหนกั kg) + (5 x ส่วนสูง cm) –(6.8 x อาย)ุ ค่า BMR สําหรับผู้หญงิ

BMR = 665 + (9.6 x นํ้าหนกั kg) + (1.8 x ส่วนสูง cm) – (4.7 x อาย)ุ จากสูตร input ของเวบ็เซอร์วสิประกอบดว้ย

1. เพศ – จะตอ้งมีค่าเป็น Male หรือ Female2. นํ้าหนกั - ตวัเลขจาํนวนจริง3. ส่วนสูง - ตวัเลขจาํนวนจริง4. อาย ุ- ตวัเลขจาํนวนเตม็

4

calculateBMRService

gender

age

weightbmrValue

height

Page 2: Top down ปฏิบตัการทิี่ 5 WSDL Web Service Provider ... · Generate เอกสาร WSDL และ Deploy Service คลิกขวาที่ชื่อคลาส

การสร้างเอกสาร WSDL การสร้างเอกสาร WSDL สร้าง Dynamic Web Project ชื่อ BMRWebServiceสร้างเอกสาร WSDL ที่ Web Content คลิกขวาเลือก New > Other… > Web Services > WSDL File

ตั้งชื่อไฟลเ์ป็น bmr.wsdl คลิกที่แทบ็ Design กาํหนดชื่อ service ใหม่เป็น calculateBMR ดงัภาพ หลงัจากนั้นคลิกที่ลูกศรออก เพื่อไปยงัหนา้ระบุชนิดของ input และ output

5

กาํหนดชื่อ serviceคลิกเพื่อกาํหนด input

คลิกเพื่อกาํหนด output

การกาํหนดโครงสร้างของ inputการกาํหนดโครงสร้างของ input

6

<xsd:element name="calculateBMR"><xsd:complexType><xsd:sequence><xsd:element name="gender" type="xsd:string" /><xsd:element name="age" type="xsd:int"></xsd:element><xsd:element name="weight" type="xsd:float"></xsd:element><xsd:element name="height" type="xsd:float"></xsd:element></xsd:sequence>

</xsd:complexType></xsd:element>

<xsd:element name="calculateBMR"><xsd:complexType><xsd:sequence><xsd:element name="gender" type="tns:genderType" /><xsd:element name="age" type="xsd:int"></xsd:element><xsd:element name="weight" type="xsd:float"></xsd:element><xsd:element name="height" type="xsd:float"></xsd:element></xsd:sequence>

</xsd:complexType></xsd:element>

. . .<xsd:simpleType name="genderType">

<xsd:restriction base="xsd:string"><xsd:enumeration value="Male"/><xsd:enumeration value="Female"/>

</xsd:restriction></xsd:simpleType>

กาํหนดเงื่อนไขขอ้มูลใหม่ โดยสร้าง simpleType ขึ้นมา

เงื่อนไขตอ้งเป็น Male หรือ Female เท่านั้น

การกาํหนดโครงสร้างของ outputการกาํหนดโครงสร้างของ output

7

<xsd:element name="calculateBMRResponse"><xsd:complexType>

<xsd:sequence><xsd:element name="bmrValue" type="xsd:double"/>

</xsd:sequence>

</xsd:complexType></xsd:element> 

การ Generate Source Codeการ Generate Source Codeคลิกขวาที่ชื่อ Project เลือก New > Other… > Web Services > Web Services

8

เลือกแบบ Top down

เลือกเอกสาร WSDL ที่ไดส้ร้างไว้

เลือกเอกสาร WSDL ที่ไดส้ร้างไว้

Page 3: Top down ปฏิบตัการทิี่ 5 WSDL Web Service Provider ... · Generate เอกสาร WSDL และ Deploy Service คลิกขวาที่ชื่อคลาส

ตาํแหน่งของเอกสาร WSDLตาํแหน่งของเอกสาร WSDL เอกสาร WSDL จะถูกสร้างขึ้นใหม่ที่ WebContent/wsdl มีชื่อลงทา้ยดว้ย SOAP เช่น

bmrSOAP.wsdl โดยจะระบุ URL ที่ใชใ้นการส่ง SOAP Request มายงัเวบ็เซอร์วสิ

9

<wsdl:service name="bmr"><wsdl:port binding="tns:bmrSOAP" name="bmrSOAP">

<soap:address location="http://localhost:8080/BMRWebService/services/bmrSOAP"/></wsdl:port>

</wsdl:service> 

<wsdl:service name="bmr"><wsdl:port binding="tns:bmrSOAP" name="bmrSOAP">

<soap:address location="http://www.example.org/"/></wsdl:port>

</wsdl:service>  bmr.wsdl

bmrSOAP.wsdl

Implement ส่วนประมวลผลImplement ส่วนประมวลผล

10

ตวัแปรที่ถูกเกบ็ค่าเมื่อรับขอ้มูลจาก SOAP Request

แทรกชุดคาํสัง่ในการประมวลผลเมื่อมีผูเ้รียกเวบ็เซอร์วสิ

คลาสที่ Generate จาก WSDL

เพิ่มคาํสัง่ที่ตอ้งการในเมธอด

การ Deploy Service ทีส่ร้างขึน้การ Deploy Service ทีส่ร้างขึน้ เพิ่มโปรเจค็ BMRWebService ไปยงั Server และ Start Server

ทดสอบเปิดเอกสาร WSDL ของเวบ็เซอร์วสิที่

11

http://localhost:8080/BMRWebService/services/bmrSOAP?wsdl

ชื่อ Project ชื่อไฟล ์wsdl ที่สร้างขึ้นในขั้นตอนแรกจะตามดว้ย SOAP?wsdl

ทดสอบด้วย SoapUIทดสอบด้วย SoapUI

12

Page 4: Top down ปฏิบตัการทิี่ 5 WSDL Web Service Provider ... · Generate เอกสาร WSDL และ Deploy Service คลิกขวาที่ชื่อคลาส

ทดสอบด้วย SoapUIทดสอบด้วย SoapUI

13

Assignment#5: ข้อ 1Assignment#5: ข้อ 1จงเขียนเวบ็เซอร์วสิใหบ้ริการหาค่า BMI (Body Mass Index) ซึ่งมีสูตรดงันี้

14

calculateBMIService

weight:float bmiValue :float

height:float

การสร้างเวบ็เซอร์วสิแบบ Bottom upการสร้างเวบ็เซอร์วสิแบบ Bottom up1. สร้างคลาสและเมธอด – เป็นการเขียนโคด้โปรแกรมทัว่ไป แต่มี

การสร้างเมธอดที่ตอ้งการใหเ้ป็นเวบ็เซอร์วสิบรรจุอยูใ่นคลาส2. Generate เอกสาร WSDL จากคลาส – ใชเ้ครื่องมือในการสร้าง

เอกสาร WSDL ที่ติดมากบัโปรแกรมพฒันา3. Deploy บน Server – เพิ่ม Service ที่สร้างเสร็จบน Server เพื่อ

รอรับคาํร้องจากผูใ้ช้

15

ตวัอย่างการสร้างเวบ็เซอร์วสิแบบ Bottom upตวัอย่างการสร้างเวบ็เซอร์วสิแบบ Bottom upตอ้งการสร้างเซอร์วิสที่ใหบ้ริการแปลงค่าอุณหภูมิที่มีหน่วยเป็นฟาเรน

ไฮร์ ใหเ้ป็นเซลเซียส มีสูตรคาํนวณดงันี้ °C = (°F - 32) x 5/9

16

fahrenheitToCelsiusService

fahrenheit: double celsius: double

Page 5: Top down ปฏิบตัการทิี่ 5 WSDL Web Service Provider ... · Generate เอกสาร WSDL และ Deploy Service คลิกขวาที่ชื่อคลาส

การสร้างคลาสและเมธอดการสร้างคลาสและเมธอดสร้าง Dynamic Web Project ชื่อ ftocService ที่ Java Resources > src คลิกขวา New > Package ตั้งชื่อ examสร้างคลาสใหม่โดยคลิกขวาที่ exam เลือก New > Class ใส่ชื่อ Convert

17

package exam;import javax.jws.WebMethod;import javax.jws.WebService;@WebServicepublic class Convert {

@WebMethodpublic double fahrenheitToCelsius(double fahrenheit) {return (fahrenheit-32)*5.0/9.0;

}}

Generate เอกสาร WSDL และ Deploy ServiceGenerate เอกสาร WSDL และ Deploy Serviceคลิกขวาที่ชื่อคลาส Convert > Web Services > Create Web Services

18

เอกสาร WSDL จากการ Generateเอกสาร WSDL จากการ Generateทดสอบเปิดเอกสาร WSDL ของเวบ็เซอร์วสิ

19

http://localhost:8080/ftocService/services/Convert?wsdl

ชื่อ Project ชื่อคลาส

ทดสอบด้วย SoapUIทดสอบด้วย SoapUI

20

Page 6: Top down ปฏิบตัการทิี่ 5 WSDL Web Service Provider ... · Generate เอกสาร WSDL และ Deploy Service คลิกขวาที่ชื่อคลาส

Assignment#5: ข้อ 2Assignment#5: ข้อ 2จงเขียนเวบ็เซอร์วสิใหบ้ริการตดัเกรดจากคะแนนที่ส่งมา โดยมีเงื่อนไขดงันี้

คะแนนมากกวา่ 80 ไดเ้กรด Aคะแนนมากกวา่ 75 แต่นอ้ยกวา่ 80 ไดเ้กรด B+คะแนนมากกวา่ 70 แต่นอ้ยกวา่ 75 ไดเ้กรด Bคะแนนมากกวา่ 65 แต่นอ้ยกวา่ 70 ไดเ้กรด C+ คะแนนมากกวา่ 60 แต่นอ้ยกวา่ 65 ไดเ้กรด Cคะแนนมากกวา่ 55 แต่นอ้ยกวา่ 60 ไดเ้กรด D+คะแนนมากกวา่ 50 แต่นอ้ยกวา่ 55 ไดเ้กรด Dคะแนนตํ่ากวา่เงื่อนไขอื่นไดเ้กรด F

21

GraderService

score: int grade: string