วันจันทร์ที่ 30 มกราคม พ.ศ. 2555

RESTful เป็นอะไรง่ายๆ ลองเรียนรู้ดู

REST =Representational State Transfer  เป็น Architecture รูปแบบหนึ่งที่ใช้แผร่กระจายสื่อ เริ่มต้นโดยคุณ Roy Fielding

แนวคิดทั่วๆคือใช้มาตรฐานเดิมคือ HTTP และ XML ในการแลกเปลี่ยนข้อมูลกัน แต่พยายามทำให้ Simple ที่สุดโดยไม่ได้เพิ่มเติมอะไรขึ้นมาเลย แนวคิดคือใช้ HTTP Get เพื่อร้องขอ XML file และหากต้องการ update ก็ใช้ XML Put ผิดกับ SOAP และ XMP-RPC ที่จะต้องเป็น method และภาษาคลุมมันทำให้ซับซ้อนขึ้น

แนวคิดนี้จะเป็นแนวคิดที่ง่ายๆมาก ถ้าได้ทดสอบเมื่อไหร่จะนำมาลงให้เห็นภาพกันอีกทีครับ มันเอามาแข่งกับ SOAP ได้เลย  คิคิ.




ศึกษาเพิ่มเติมไปก่อนนะครับ
ผมจะทำโดยใช้  REST with Jersey 



ลิงค์ที่เกี่ยวข้อง

RESTful Webservices with Java (Jersey / JAX-RS) ตอนที่ 1

RESTful Webservices with Java (Jersey / JAX-RS) ตอนที่ 2(กำลังทำ)





@@@ โชคดีครับ @@@

วันเสาร์ที่ 28 มกราคม พ.ศ. 2555

เว็บเซอร์วิส (WebService)

เว็บเซอร์วิส (Web service) คือระบบซอฟต์แวร์ที่ออกแบบมา เพื่อสนับสนุนการแลกเปลี่ยนข้อมูลกัน ระหว่างเครื่องคอมพิวเตอร์ผ่านระบบเครือข่าย โดยที่ภาษาที่ใช้ในการติดต่อสื่อสารระหว่างเครื่องคอมพิวเตอร์ คือเอกซ์เอ็มแอล เว็บเซอร์วิสมีอินเทอร์เฟส ที่ใช้อธิบายรูปแบบข้อมูลที่เครื่องคอมพิวเตอร์ประมวลผลได้ เช่น WSDL ระบบคอมพิวเตอร์ใช้งานสื่อสารโต้ตอบกับเว็บเซอร์วิสตามรูปแบบที่ได้กำหนดไว้แล้ว โดยการส่งสาสน์ตามอินเตอร์เฟสของเว็บเซอร์วิสนั้น โดยที่สาสน์ดังกล่าวอาจแนบไว้ในซองSOAP (<soap:Evelope>)หรือส่งตามอินเตอร์เฟสในแนวทางของ REST สาสน์เหล่านี้ปกติแล้วถูกส่งโดยอาศัย HTTP และใช้ XML ร่วมกับมาตรฐานเกี่ยวกับเว็บอื่นๆ โปรแกรมประยุกต์ที่เขียนโดยภาษาต่างๆ และทำงานบนแพลตฟอร์มต่างๆกันสามารถใช้เว็บเซอร์วิสเพื่อแลกเปลี่ยนข้อมูลผ่านทางเครือข่ายคอมพิวเตอร์เช่น อินเทอร์เน็ต ในลักษณะเดียวกับการสื่อสารระหว่างโปรเซส (Inter-process communication) บนเครื่องเดียวกัน ความสามารถในการแลกเปลี่ยนข้อมูลระหว่างระบบที่ต่างกันนี้ (เช่น การแลกเปลี่ยนข้อมูลระหว่าง โปรแกรมที่เขียนโดยภาษาจาวา และโปรแกรมที่เขียนโดยภาษาไพทอน หรือการแลกเปลี่ยนข้อมูลระหว่างโปรแกรมประยุกต์ที่ทำงานบนไมโครซอฟท์วินโดวส์และโปรแกรมประยุกต์ที่ทำงานบนลินุกซ์) เกิดขึ้นได้เนื่องจากการใช้มาตรฐานเปิด โดย OASIS และ W3C เป็นคณะกรรมการหลักในการรับผิดชอบมาตรฐานและสถาปัตยกรรมของเว็บเซอร์วิส


SOAP

เว็บเซอร์วิสเป็นลักษณะในรูปแบบของการออกแบบโมเดลสื่อสาร ในลักษณะของการกระจาย,การติดต่อสื่อสารที่เป็นตัวกลาง โดยโพรโทคอลที่ใช้ในการสื่อสารคือ SOAP (Simple Object Access Protocol) เป็นโพรโทคอลในการติดต่อแลกเปลี่ยนข้อมูลระหว่างกันเป็นโพรโทคอลการสื่อสารในระดับ Application Layer หรือในระดับ แอปพลิเคชันโดยอาศัยผ่านอินเทอร์เน็ตโพรโทคอล อย่างเช่น HTTP, SMTP โพรโทคอลพัฒนารากฐานมาจาก XML โดยมาตรฐานของ SOAP ปัจจุบันอยู่เวอร์ชัน 1.2 เอกสารสามารถดูได้ที่ W3C


UDDI (Universal Description, Discovery and Integration)

เป็นเหมือนตัวไดเรกทอรี่ที่เก็บหรือลงทะเบียนเว็บเซอร์วิส UDDI หรือ Universal Description,Discovery and Integration (UDDI) เป็นข้อกำหนดอันเกี่ยวกับระบบบริการลงทะเบียน (registry service) สำหรับเว็บเซอร์วิส และสำหรับบริการอื่นๆ ทั้งที่ไม่ใช่แบบอิเล็กทรอนิกส์และแบบอิเล็กทรอนิกส์ ตัว บริการลงทะเบียน UDDI คือเวบเซอร์วิสซึ่งจัดการข้อมูลเกี่ยวกับผู้ให้บริการด้านต่างๆ หรือแม้แต่กระทั่งให้บริการข้อมูล บรรดาผู้ให้บริการสามารถใช้ UDDI ในการประกาศว่า บริการใดๆบ้างที่ให้บริการ และ client สามารถใช้บริการของ UDDI ในการค้นหาบริการที่ตนต้องการได้ตรงตามความต้องการของตนได้
ข้อกำหนด UDDI ได้มีการนิยามตามนี้
  1. SOAP API (Simple Object Access Protocol) Application Programming Interface) ซึ่งตัวแอปพลิเคชันจะใช้ในการสอบถามและประกาศข้อมูลไปยังระบบลงทะเบียน UDDI
  2. XML Schema คือโครงสร้างรูปแบบของระบบลงทะเบียนและ รูปแบบของข้อความ SOAP (SOAP Message format)
  3. WSDL คือข้อกำหนดของ SOAP APIs
  4. ข้อกำหนด UDDI รีจิสทรี (รูปแบบทางเทคนิค t-models) ของข้อกำหนดหลายๆ อย่างและหมวดหมู่ของระบบซึ่งอาจใช้ในการกำหนดและจัดแบ่งหมวดหมู่การลงทะเบียน UDDI


WSDL

ย่อมาจาก Web Services Description Language เป็นภาษาที่อธิบายเว็บเซอร์วิส ซึ่งทำให้ผู้เรียกใช้เว็บเซอร์วิสหรือโปรแกรมที่ต้องการเรียกใช้เว็บเซอร์วิสทราบว่ามีโอเปอเรชั่นอะไรให้บริการ และในแต่ละโอเปอเรชั่นจะต้องส่งข้อมูลอะไรไปและจะได้รับข้อมูลแบบใดกลับมา ตลอดจนทราบอินเทอร์เน็ตโพรโทคอลที่จะต้องใช้ในการติดต่อเว็บเซอร์วิสและที่อยู่ของเว็บเซอร์วิส


XLANG

สนับสนุนการติดตามข้อมูล (transaction) เหมาะสำหรับการสื่อสารที่สามารถติดตามข้อมูลใน web ขนาดใหญ่ รวมไปถึง การสื่อสารคล้ายๆ ลักษณะชุมทางหรือ webservice หลายๆ เวบเซอร์วิส


XKMS (XML Key Management Specification)

เป็นการทำงานที่เกิดจากความร่วมมือของ Microsoft และ Verisign ซึ่งสำหรับการตรวจสอบสิทธิและการลงทะเบียน


พื้นฐานของ Web Service

พื้นฐานของ Web Service คือ XML และส่วนใหญ่จะใช้ HTTP แต่อาจจจะใช้อินเทอร์เน็ตโพรโทคอลอื่นอย่างเช่น SMTP หรือ FTP ก็ได้ แต่จะพบว่า HTTP ก็เป็นที่รู้จักกันดี และไปได้ทั่วทุกแห่งที่มี internet ส่วน XML คือภาษาสากลที่คุณสามารถปรับแต่งได้ตามใจชอบ เพื่อให้เกิดกิจกรรมระว่าง client และบริการ หรือระหว่างส่วนประกอบต่างๆ เบื้องหลัง Web server ก็คือ ข้อความ XML จะถูกแปลงให้การขอบริการจาก Middle ware และผลที่ได้ก็จะแปลงกลับมาในรูป XML
ยกตัวอย่างให้เห็นง่ายๆ คุณต้องการให้เครื่อง PC อ่านค่าจาก serial port แล้วส่งไปประมวลผลบนเครื่อง UNIX แล้วส่งผลกลับมาแสดงบนจอ PC ถ้าเป็นเมื่อก่อน คุณก็คงต้องแปลงข้อมูลที่ได้ให้อยู่ในรูปของ ASCII แล้วส่งไปยัง UNIX พร้อมคำสั่งว่าให้ทำอะไร ในฝั่ง UNIX คุณก็ต้องมาแยกว่าอันไหนคือคำสั่ง อันไหนคือข้อมูล เมื่อประมวลผลแล้ว จะส่งกลับมาในรูปแบบไหน แล้วถ้าหากจะส่งไปหาเครื่องที่เป็น MAC ท่านจะต้องเขียนโปรแกรมเพิ่มในส่วนไหนบ้าง จะพบว่าเราต้องพัฒนากันเป็นคู่ๆ ไป และต้องนิยามในแต่ละฝั่งให้ชัดเจน แต่หากเป็น Web Service คุณจะพบว่า เราแปลงข้อมูลให้อยู่ในรูป XML แต่ละคุณก็ต้องการรู้แค่ มาตรฐาน XML ก็พอ แล้วต่างคนต่างก็เขียน Service ของตัวเอง ไม่ต้องกังวลเรื่องของการเชื่อมโยงอีกต่อไป และ Protocol ที่ส่งก็คือ HTTP นั่นเอง ถ้าท่านเชื่อมโยงกับ HTTP (หรือเว็บ) ได้ ท่านก็ใช้บริการทุกอย่างได้

ที่มา : http://th.wikipedia.org  ส่วน Code ตัวอย่าง รอกันหน่อยละกันนะครับ