วันอาทิตย์ที่ 13 เมษายน พ.ศ. 2557

คึกอยากจะทบทวน GWT Framework part 6

Sample GWT Picture

: Remote Procedure Calls (RPC) concept

งานของ GWT แม้นจะเป็น web app แต่ลักษณะคือ web app แบบ Desktop Application กล่าวคือได้อารมณ์การใช้โปรแกรมบน browser เสมือนใช้โปรแกรมที่ถูกติดตั้งไว้ในเครื่องคอมพิวเตอร์ส่วนบุคคล เช่น โปรแกรมสร้างเอกสารอย่าง MS Word ก็ถูกทำให้สามารถรันบน browser ได้แล้ว หรือเกมลับสมองเล็กๆตอนนี้ก็ไปวางอยู่บน browser แทบหมดสิ้น

GWT มีกลไกที่ใช้ส่งข้อมูลจากฝั่ง browser หรือ client ไปยังฝั่ง server โดยอาศัย javaScript ด้วยการ Asynchronous ครับ

การ Asynchronous ในที่นี้ก็คือการส่งข้อมูลหรือร้องขอข้อมูลจาก server โดยไม่ต้องรอผลลัพธ์กลับมาก่อน เราสามารถทำงานอื่นๆที่อยู่ในหน้านั้นต่อไปได้ (อ่านเพิ่มเติมในเรื่องของ AJAX)

ภาพนี้อธิบายได้ว่า client และ server จะติดต่อกันด้วย interface ซึ่งต้องเป็น interface ที่สืบทอดมาจาก RemoteService Interface ข้อกำหนดหรือกติกาที่เกิดขึ้นนี้แบ่งการใช้งานออกเป็นสองส่วนครับ ส่วนแรกฝั่ง client กับส่วนที่สองฝั่ง server

ส่วนแรกฝั่ง client เราจะต้องสร้าง interface ที่มีชื่อเหมือนกับลูกของ RemoteService Interface โดยเติมคำต่อท้ายชื่อไปว่า Async
จากในภาพลูกของ RemoteService ก็คือ HelloService Interface ดังนั้น interface ของเราจึงได้ชื่อว่า HelloServiceAsync

ส่วนที่สองฝั่ง server เราจะต้องสร้างคลาสที่สืบทอด RemoteServiceServlet เพื่อให้มันเข้าใจ RemoteService Interface ของฝั่ง client จากนั้นจึง implements เอาทุกๆกติกามาใช้ เพื่อให้ทาง server เข้าใจคำร้องขอหรือสามารถจัดการกับข้อมูลที่ถูกส่งมาจากฝั่ง client ได้ โดยคลาสที่ต้องสร้างนี้มักเติมคำต่อท้ายว่า Impl ครับ

มีใครคนหนึ่งถามว่า GWT เข้าใจได้อย่างไรว่า HelloServiceAsync Interface จะถูกต้องกับ HelloService Interface เพียงแค่เติมคำว่า Async ท้ายชื่อ?

คำตอบคือเจ้าสี่เหลี่ยมสีเขียวที่เขียนว่า HelloServiceProxy ด้านล่างของภาพครับ เพราะว่ามันจะถูกสร้างขึ้นมาเป็นดั่ง Proxy (หาอ่านเพิ่มเติมเรื่องแนวคิด Proxy จากในเว็บนะ) อัตโนมัติที่ implements เอาทุกๆกติกาของ HelloServiceAsync Interface มาใช้ จึงเกิดเป็นวงจรตรวจสอบระหว่าง HelloServiceAsync Interface กับ HelloService Interface แบบอ้อมไปด้วยโดยปริยาย (แต่มันมีหน้าที่สำคัญกว่านี้ ซึ่งจะไม่ขอกล่าวถึง)

สรุป RPC concept อย่างง่ายๆก็คือแนวคิดที่จะให้ฝั่ง client ติดต่อกับฝั่ง server โดยกระบวนการ RemoteService นั่นเองครับ

แนวคิดลักษณะนี้มีอยู่มากมายครับ อาจใช้วิธีการของ AJAX เพียวๆก็ได้ แต่ Google เขาคิดการ RemoteService ขึ้นมาให้ใช้ เราก็ศึกษาว่าใช้อย่างไร แล้วก็ใช้เท่านั้นเอง จบข่าว

part หน้าเราจะมาเริ่ม project ที่ใช้ RPC ขอข้อมูลจาก server มาแสดงผลที่ฝั่ง client กันนะเพื่อนๆ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น