WOA : Web Oriented Architecture
โดย จิรพล ทับทิมหิน
ผู้อำนวยการ โครงการสถาบันพัฒนาบุคลากรและวิชาการด้านไอซีที เนคเทค
ใน 2-3 ปี มานี้ในบ้านเราเชื่อว่า CIO หลายท่านคงคุ้นเคยกับคำว่า SOA หรือ Service Oriented Architecture กันบ้างแล้วไม่มากก็น้อย ความหมายที่วิกิพีเดียภาคภาษาไทย ให้ไว้เกี่ยวกับ SOA เพียงสั้น ๆ ก็ คือ การสร้างและพัฒนาซอฟต์แวร์โดยใช้แนวคิดของโครงสร้างของธุรกิจสมัยใหม่ ซึ่งมาจากแนวคิดที่ได้รับอิทธิพลมาจาก แนวคิดแบบ “รูปแบบ เป็นผลมาจาก การใช้งาน” หรือ form follows function คำอธิบายง่าย ๆ ที่ผมได้จากเว็บ www.mfatix.com น่าสนใจทีเดียว โดยอธิบายไว้ว่า เมื่อการแข่งขันมาถึงจุดที่การให้บริการลูกค้าเป็นสิ่งสำคัญมากกว่าการแข่งขันเรื่องราคา หรือผลิตภัณฑ์ใหม่ๆ ที่ใครๆก็สามารถทำได้ เหตุนี้ทำให้องค์กรต้องปรับเปลี่ยนรูปแบบการให้บริการเพื่อขยายให้ทันกับความต้องการของลูกค้า ตัวอย่างเช่น บริษัทผู้ให้บริการโทรศัพท์เคลื่อนที่ ในการสร้างบริการให้ลูกค้าเข้าถึงด้วยการเข้าใช้บริการผ่านร้านให้บริการ ไม่ว่าจะเป็นการเปิดบริการ ซ่อมเครื่อง รวมไปถึงสอบถามบริการผ่านคอลเซ็นเตอร์ แทนที่จะเข้ามารับบริการที่ส่วนกลาง ทว่าระบบต่างๆที่กระจายอยู่ตามร้านให้บริการ และคอลเซ็นเตอร์นั้น ต้องพึ่งระบบไอทีจากส่วนกลางในการให้บริการ ดังนั้น ระบบไอทีหลังบ้านจึงจำเป็นต้องสนับสนุนการทำงานที่ขยายเพิ่มขึ้น ด้วยเหตุนี้ แนวคิดการใช้ SOA จึงเกิดขึ้น เพราะการใช้ไอทีในองค์กรไม่ได้จำกัดอยู่เพียงการใช้ซอฟต์แวร์สำเร็จรูป ที่ไม่เพียงพอต่อการทำงานที่เพิ่มขึ้นอีกต่อไป SOA กระทบโครงสร้างไอทีขององค์กร SOA ไม่ใช่ซอฟต์แวร์ หรือ แพ็คเกจ นายพัฒน์พงศ์ บุปผรัตน์ ที่ปรึกษาอาสุโสด้านธุรกิจและหัวหน้าทีมพัฒนาธุรกิจขององค์กร บริษัท เครือเจริญโภคภัณฑ์ จำกัด อธิบายถึงแนวคิดของ SOA ว่า SOA แบ่งเป็น 2 คำ Service-Oriented และ Architecture คำแรก Service-Oriented เป็น Software ที่ไม่ใช่ซอฟต์แวร์แพ็คเกจ แต่เป็นซอฟต์แวร์ตัวเล็ก ทำงานเฉพาะด้าน ขึ้นอยู่กับว่าจะแบ่งเป็นบริการอะไรบ้าง คำที่สอง Architecture คือการออกแบบ โดยจะมององค์กรโดยรวมว่าต้องการบริการอะไรบ้าง ก็จะแบ่งบริการนั้นๆออกเป็นส่วนย่อยๆ ทั้งนี้ หลายคนมองว่า SOA คือ web service แต่จริงๆแล้วไม่ใช่เพราะ web service เป็นแค่เครื่องมือในการใช้งาน ดังนั้น SOA จึงไม่ใช่สินค้า หาซื้อไม่ได้ แต่มันคือแนวคิดที่ต้องสร้างเองในองค์กร
การ์ทเนอร์ให้คำอธิบายไว้ในเรื่องของ SOA คือสถาปัตยกรรมที่มีลักษณะเป็นโมดูลหรือ Modular ทำงานเป็นส่วนๆ ได้ หรือ Distributable อธิบายได้หรือ Describable แชร์การทำงานกันได้ หรือ Sharable และจะต้องหยิบส่วนที่พัฒนาแล้วกลับมาใช้ใหม่ได้ โดยไม่ผูกติดกับระบบใดมากเกินไป ส่วนในเรื่องของ WOA หรือ Web Oriented Architecture การ์ทเนอร์ให้คำอธิบายไว้ว่า เป็นการพัฒนา Web Services โดยใช้เว็บเป็นศูนย์กลางนั้นเอง มีข้อวิจารณ์หลายๆ ฝ่ายเกี่ยวกับความสัมพันธ์เกี่ยวข้องระหว่าง WOA และ SOA ซึ่งก็กลายเป็นข้อโต้เถียงรุนแรงขึ้นทุกที แต่ผู้เชี่ยวชาญของการ์ทเนอร์เห็นว่าหลายๆ คำวิจารณ์ไม่น่านำมาเป็นประเด็น โดยกล่าวว่า SOA เป็นเหมือนสถาปัตยกรรมที่มีความครอบคลุมมากกว่า WOA และระบบอื่นๆ ประเด็นสำคัญที่เกี่ยวข้องสำหรับ CIO นั้นก็คือ ควรให้ความสนใจในเรื่องของการ Share ข้อมูลกันโดยพยายามให้ถังข้อมูลของตนเองคุยกับคนอื่นได้ เป้าหมายก็คือ การยอมรับในแนวทางใหม่ในการให้บริการที่ต้องการ Agility คือแนวคิดใหม่สำหรับการพัฒนาระบบงาน ที่พยายามเข้าไปเชื่อมกับระบบเดิมเพื่อให้สามารถทำงานร่วมกันได้ นอกจาก Agility แล้วก็ต้องเน้นความรวดเร็ว และการที่สามารถลดค่าใช้จ่ายลงได้ ซึ่งก็คือการให้ความสนใจกับสถาปัตยกรรมที่ทำให้มีการ Share ข้อมูล-ระบบงานกันได้ที่มีความยืดหยุ่นและปิดช่องว่างระหว่างระบบให้สามารถทำงานร่วมกันได้
เมื่อเราพูดถึงสถาปัตยกรรม หากเปรียบเหมือนเราสร้างบ้านย่อมมีสไตล์ (Style) ต่างๆ เช่น สไตล์ไทย สไตล์ตะวันออก สไตล์บาหลี สไตล์ตะวันตกยุคใหม่ สไตล์แบบโคโลเนียล เป็นต้น ย่อมมีข้อแตกต่างกันในกฎกติกาหรือข้อกำหนดให้ออกมาที่มีหน้าตาที่แตกต่างกันในแต่ละสไตล์ แต่ข้อกำหนดใหญ่ๆ ของสถาปัตยกรรมในแต่ละ Style ก็ย่อมมีกำหนดไว้อันเดียวกัน ดังนั้น SOA และ WOA ก็คือ สไตล์ของสถาปัตยกรรมนั้นเอง กล่าวคือ SOA มีข้อกำหนดเฉพาะ 5 ข้อ ที่กล่าวข้าต้นได้แก่ มีความเป็น Modular, Distributable, Describable, Sharable และLoosely Coupled หากครบ 5 ข้อนี้ก็ถือว่าเป็นสถาปัตยกรรมสไตล์ SOA ในส่วนของ WOA ก็มีสไตล์ของตนเอง โดยการ์ทเนอร์เป็นผู้ให้นิยามในลักษณะเป็นสูตรไว้ก็คือ WOA = SOA + REST + WWW ดังนั้นในตัว WOA นอกจากมีข้อกำหนด 5 ข้อของ SOA แล้วก็มีเพิ่มข้อกำหนด REST และ WWW เพิ่มขึ้นมาอีก เพื่อให้เป็นสไตล์ของ WOA เอง
โดยข้อเท็จจริงแล้ว ข้อกำหนดส่วนเกินจากข้อของ SOA นั้นก็คือระเบียบวิธีการพัฒนาระบบที่ครอบเป้าหมายในเรื่อง 5 ข้อหลักของ SOA นั้นเอง กล่าวคือ REST ก็เป็นระเบียบวิธีหรือแนวทางการพัฒนาที่ครอบ 5 ข้อของ SOA ไว้ ดังนั้นท่าน CIO อย่าได้กังวลในเรื่องนี้มากนัก จงยึดหลักใหญ่ 5 ข้อของ SOA เป็นหลัก การ์ทเนอร์กล่าวว่า ในตอนเริ่มแรกนั้น ข้อกำหนดข้อ 3 คือเรื่อง Describable เป็นเรื่องที่อธิบายยากมาก โดยพยายามอธิบายให้เห็นว่าเป็นคำอธิยายที่ต้องเขียนขึ้นมาพร้อมๆ กับคำอธิบาย Metadata ของระบบ Interface ต่างๆ นั่นเอง ในขณะที่ข้อกำหนดที่สำคัญที่เหลืออีก 2 ข้อที่ยากที่สุดก็คือเรื่อง Sharable ที่มีผลทำให้เกิดการ Reusable และสุดท้ายคือทำอย่างไร อย่าขันน๊อตระบบให้แน่นเกินไปจนคุยกันข้างนอกไม่ได้หรือควรมีลักษณะที่เป็นแบบ Loosely Coupled ดังกล่าวแล้ว
กฎกติกาของ REST อธิบายพอสังเขปก็คือ การพัฒนา Web Services ที่พัฒนาภายใต้กฎกติกาของเว็บ เพื่อการส่งผ่านข้อมูลทางเว็บนั้นเอง ในหลายๆ หน่วยงานที่มีการดำเนินการพัฒนาในแบบ SOA แล้ว การ์ทเนอร์ยังพบว่า มีหลายแห่งที่พัฒนา Web Services แล้ว ใช้ XML แล้ว ใช้ SOAP (Simple Object Access Protocol) และ WDSL (Web Services Description Language) แล้วก็ตาม แต่ข้อสูดท้ายของกติกา คือ การทำให้ได้ระบบที่มีคุณสมบัติ Loosely Coupled นั้นทำไม่ได้ ซึ่งเป็นคุณสมบัติของ SOA ในประการที่สำคัญทีเดียว ในขณะที่การ Sharing ก็ไม่สามารถเกิดขึ้นได้ แต่ด้วยความที่ไม่เข้าใจก็ยังเคลมกันว่า ได้พัฒนาในรูปแบบ SOA แล้ว
REST มาจากคำว่า Representational State Transfer เป็นวิธีการสร้าง Web Services อย่างหนึ่ง ให้นึกอย่างนี้ว่า Web นั้นจะประกอบด้วย resources ก็คือเป็นเรื่องอะไรก็ได้ที่เราสนใจ เช่นเรื่องเครื่องบินโบอิ้ง 747 บริษัทโบอิ้งจะเป็นผู้กำหนด 747 resource ในขณะที่ลูกค้าจะเข้าถึง 747 resource ทาง URL http://www.boeing.com/aircraft/747 ซึ่งจะมี Representation ของ Resource ปรากฏออกมา เช่น Boeing747.html ซึ่งการใช้งานของลูกค้านี้ ตัว Representation จะวางไว้เป็น State จากนั้นเมื่อลูกค้ากดที่ hyperlink ใน Boeing747.html ก็จะเข้าไปสู่ Resource ตัวใหม่ ซึ่ง Representation ตัวใหม่ จะวางลูกค้าไว้ในอีก State หนึ่ง จึงเกิดการโยงกันของแต่ละ State ด้วย resource representation ซึ่งผู้คิดค้นวิธีการนี้คือ Roy Fielding โดยเป็น วิทยานิพนธ์ปริญญาเอกของเขา และให้คำจำกัดความไว้ว่า REST คือความตั้งใจที่จะทำให้ปรากฏขึ้น ซึ่งภาพของการที่ตัว Web Applications จะมีพฤติกรรมออกมาอย่างไร เป็น network ของ web pages เสมือนดังเครื่องจักรที่สามารถทำงานได้จากขั้นตอนหนึ่งไปสู่ขั้นตอนหนึ่ง ที่ทำให้ผู้ใช้สามารถใช้งานเดินหน้าต่อไปได้โดยการเลือก Links การเปลี่ยนถ่ายระหว่าง State หรือขั้นตอน ทำให้เข้าสู่หน้าเว็บต่อไปได้เรื่อยๆ และให้บริการผู้ใช้ได้ในที่สุด กล่าวโดยสรุป การพัฒนาระบบงานโดยใช้ WWW เป็นแพลตฟอร์ม นั้น มีการพัฒนามาเป็นเวลาพอสมควรแล้ว การที่มีการกำหนดแนวทางของ REST ขึ้นมา ก็ช่วยให้มีระเบียบวิธีที่เข้าใจตรงกัน ซึ่งทัศนะจากหลายฝ่ายก็มองว่าไม่ใช่เรื่องแปลกใหม่ แต่ก็เป็นสิ่งที่ดีที่ได้มีการเขียนเป็นแนวทาง ไว้ใช้เป็นแนวทางในวงกว้าง ดังนั้น ท่าน CIO ทั้งหลายคงไม่ต้องกังวลว่า WOA หรือ Web Oriented Architecture จะเป็นเรื่องที่ต้อง เรียนรู้ใหม่ เพียงแต่ให้รับรู้ว่า WOA ก็ไม่ต่างจาก SOA ตราบใดที่มีคุณสมบัติ 5 ประการหลักที่กำหนดไว้คือ Modular, Distributable, Describable, Sharable และLoosely Coupled ก็เป็นที่เชื่อกันได้ว่า เป็นสไตล์สถาปัตยกรรมการออกแบบทางด้านไอทีในแนวทาง ใหม่ที่ช่วยให้ปัญหาแบบเดิม ๆ หมดไป ในสไตล์ที่ต่างคนต่างทำที่ไม่เอื้ออำนวยต่อการพัฒนาในแบบบูรณาการ
Filed under: IAC Articles