หายไปนานกับบทความใน Coresharp.Net แห่งนี้ แล้วก็กลับมาพบกันกับบทความแรกประจำเดือนธันวาคมนี้ครับ
เนื่องมาจากมีหลายๆคน โพสถามในกระทู้เกี่ยวกับการสร้างและเรียกใช้งาน Web Services ในลักษณะต่างๆ อยู่เป็นจำนวนมาก แล้วในเว็บ Coresharp แห่งนี้ ก็เคยมีเขียนไว้ตั้งแต่ปี 2008 ในเรื่องของการสร้าง Native XML Web Service ไว้ด้วยครับ แต่ถ้าผู้อ่านที่ไม่เคยรู้จักกับเว็บเซอร์วิสมาก่อน ยังไม่เข้าใจพื้นฐานของ Web Service และการใช้งานเบื้องต้น ที่ในปัจจุบันทำได้ง่ายเหลือเกินแล้วล่ะก็ คงจะไปต่อไปยากและเสียเวลามากพอดูเลยทีเดียวครับ
งั้นเรามาเริ่มรู้จักตั้งแต่พื้นฐานกันก่อนเลยแล้วกันครับว่า Web Services คืออะไร ซึ่งผมจะเขียนเอาจากความเข้าใจของผมง่ายๆ เพื่อให้ผู้อ่านเข้าใจได้เร็วยิ่งขึ้นครับ
รู้ได้อย่างไรว่าเป็น Web Service
ก่อนอื่นจะยกตัวอย่างให้เห็นก่อนว่า Web Service ต่างกับ Web Application อย่างไร
Web Service ไม่เหมือน Web ทั่วๆไปครับตามภาพด้านล่าง
Web Application ทั่วๆไป จะแสดงผล GUI ด้วยพื้นฐาน HTML และ File ชนิดต่างๆ เช่น Image File หรือ Flash เป็นต้น เพื่อทำให้เกิดความสวยงามในการแสดงผลบน Web Page ของเว็บนั้นๆ ครับ
เช่น Coresharp เเห่งนี้ ก็จัดเป็นกลุ่มของ Web Application ครับ
ในส่วนของ Web Service จะแสดงผลเหมือนๆ กันหมดทุกที่ครับด้วย WSDL (Web Services Description Language) ซึ่งเป็นภาษาที่ใช้อธิบายว่า Service ของเรามีอะไรบ้างและใช้งานอย่างไร
โดยจะแสดงเฉพาะชื่อเมธอดที่ Web Service นั้นมีอยู่ อย่างเช่นในภาพ ผมได้เขียนไว้ 9 เมธอด +1 คือ Hello World(เมธอดที่ 2) ที่ Vistual Studio 2008 สร้างขึ้นมาให้เอง อัตโนมัติครับ
โดยมีเมธอดแรกชื่อว่า GetNearHospital เพื่อค้นหาตำแหน่งโรงพยาบาลใกล้เคียงกับ Lattitude และ Longtitude ที่ผู้ใช้อยู่ ซึ่งการทำงานคือโปรแกรมจะรับ Parameter 2 ตัวคือ Lat และ Long แล้วนำไปคำนวณหา รพ. ที่ใกล้ที่สุดแล้ว Return ข้อมูล รพ. กลับมา

เมื่อคลิกเข้ามาที่ GetNearHospital ก็จะพบกับหน้าจอให้เราใส่ Value ของ Parameter ที่เมธอดเราต้องการครับ (ในที่นี้ก็ใส่ Value ของ Lat และ Long เข้าไปนั่นเองครับ) เช่น ผมใส่ latt = 13.7213702 และ longt = 100.45271873474121 ซึ่งเป็นตำแหน่งของ ม.สยาม
Web Service ก็จะทำการ Return ผลลัพท์กลับมาด้วยภาษา XML ให้เรานำไปใช้ต่อไปครับ เช่นในภาพผมให้เมธอดนี้ Return เป็น DataTable ซึ่งจะสังเกตุได้จากบรรทัดที่ 2 ครับ คือ <DataTable ….> นั่นเองครับ
Basic of Web Service
รูปนี้แสดงถึงการทำงานทั้งระบบของ Web Service ครับ ซึ่งอธิบายได้ดังนี้
เว็บเซอร์วิสประกอบด้วย 3 ส่วนด้วยกันคือ Requester , Provider และ Broker
โดยเครื่อง PPC ของเรานั้น จัดเป็น Requester ซึ่งจะร้องขอบริการไปยัง Provider(Web Service Application ที่เรากำลังจะได้สร้างขึ้นมานั่นเอง) โดยทั้ง 2 จะติดต่อสื่อสารกันผ่านโพรโตคอล SOAP(Simple Object Access Protocol) ในการส่งข้อมูล
และอีกส่วนหนึ่งคือ Broker ซึ่งจะทำหน้าที่เหมือนนายหน้าค้าที่ดิน ที่นำเอา Requester และ Provider มาเจอกัน ในกรณีที่ทั้ง 2 ยังไม่รู้จักกัน โดยใช้ WSDL ในการอธิบายว่า Service ที่ Provider ให้บริการนั้นมีอะไรบ้างและใช้งานอย่างไร นั่นเองครับ
โดยในการเขียนโปรแกรมนั้น เราจำเป็นต้องเขียนอยู่บน 2 ส่วนด้วยกัน คือ Requester และ Provider ครับ ซึ่งจะอธิบายการเริ่มต้นสร้างและใช้งาน Web Service กันในบทความถัดไปครับ