บทที่ 1 บทนำ 1.1 ความเป็นมาและความสำคัญของปัญหา ในขั้นตอนของการพัฒนาการสื่อสารข้อมูลบนเครือข่ายอินเตอร์เน็ต (Internet) การแสดงผล ทางเว็บเพจ (Web Page) เป็นเพียงการแสดงข้อมูลจากเว็บเซิร์ฟเวอร์ (Web Server) ไปสู่เบราเซอร์ (Browser) ยังไม่ได้มีการติดต่อสื่อสารกันระหว่างเว็บเซิร์ฟเวอร์ เนื่องจาก ในช่วงเวลานั้นภาษา Hypertext Markup Language (HTML) มีความสามารถในการแสดงผล ข้อมูล แต่เป็นการยากที่นำข้อมูลเหล่านั้นไปประมวลผลต่ออีกที ต่อมาจึงได้เกิดภาษา eXtensible Markup Language (XML) ขึ้น ปัญหาดังกล่าวจึงถูกแก้ไขโดยการนำภาษา XML มาใช้จะทำให้ ข้อมูลอยู่ในรูปแบบข้อมูลดิบ ซึ่งนักพัฒนาสามารถดึงออกมาใช้เพื่อนำไปประมวลผลต่อได้ง่าย และสะดวกขึ้น ดังนั้นในยุคต่อไปของการพัฒนาเว็บแอปพลิเคชั่น (Web Application) ก็คือ การใช้ภาษา XML ในการแลกเปลี่ยนข้อมูลระหว่างเว็บเซิร์ฟเวอร์ซึ่งกันและกันและต่าง แพลตฟอร์ม (Platform) กันได้ หลังจากมีการแลกเปลี่ยนข้อมูลกันระหว่างเว็บเซิร์ฟเวอร์โดยใช้ภาษา XML และมีการใช้ เว็บแอปพลิเคชั่นเพื่อเพิ่มความปลอดภัยของข้อมูล ได้มีการพัฒนาเว็บเซอร์วิส (Web Services) เพื่อกระจายการประมวลผลจากเว็บเซิร์ฟเวอร์ 1 ตัวไปยังเว็บเซิร์ฟเวอร์ตัวอื่นๆ ให้ช่วยกัน ประมวลผล โดยที่เว็บเซิร์ฟเวอร์ที่ช่วยประมวลผลก็ต้องมีการให้บริการเว็บเซอร์วิสอยู่ด้วย และทั้งหมดนี้เป็นความเป็นมาในการพัฒนาเว็บเซอร์วิส การใช้งานเว็บเซอร์วิสจะเป็นการใช้งานผ่านเครือข่ายอินเตอร์เน็ต อินเตอร์เน็ตในวันนี้ ไม่ใช่สิ่งแปลกใหม่ต่อไปสำหรับผู้ที่ใช้งานคอมพิวเตอร์ ปัจจุบันมีการพัฒนาเพื่อการสื่อสาร บนเครือข่ายอินเตอร์เน็ตเป็นหลัก โดยสังเกตได้จากการเติบโตของเว็บเซิร์ฟเวอร์อย่างรวดเร็ว ปัจจุบันปัญหาก็คือ ภาษาที่ใช้ในการพัฒนากับเว็บเซอร์วิส ส่วนมากนั้นจะมีโปรแกรม .NET ของไมโครซอฟท์ (Microsoft) อำนวยความสะดวกอยู่แล้ว แต่สำหรับภาษา Personal Home Page (PHP) ยังไม่มีเครื่องมือที่จะอำนวยความสะดวกในการพัฒนาใช้งานเว็บเซอร์วิส ผู้ วิจัยจึงได้เกิดแนวคิดที่จะสร้าง Integrated Development Environment (IDE) สำหรับ ภาษา PHP เพื่อใช้ในการติดต่อเว็บเซอร์วิส เพื่อใช้ในการสนับสนุนนักพัฒนางานทางด้าน การเขียน โปรแกรมด้วยภาษา PHP ได้ง่าย สะดวก และมีประสิทธิภาพ 2 1.2 วัตถุประสงค์ของการวิจัย เพื่อพัฒนา PHP IDE ที่ใช้ในการสนับสนุนการพัฒนางานทางด้านการเขียนโปรแกรม ด้วยภาษา PHP ที่ใช้ในการติดต่อเว็บเซอร์วิส 1.3 สมมติฐานการวิจัย กลุ่มตัวอย่างผู้ใช้โปรแกรมที่มีภูมิหลัง ได้แก่ ความรู้ในการใช้ภาษา PHP และเทคโนโลยี เว็บเซอร์วิสมีความคิดเห็นต่อประสิทธิภาพการทำงานของโปรแกรมในระดับดี 1.4 ขอบเขตของการวิจัย โปรแกรม PHP IDE ที่จัดทำขึ้น จะครอบคลุมในการสนับสนุนการเขียนโปรแกรมด้วย ภาษา PHP สำหรับติดต่อเว็บเซอร์วิสผ่านระบบเครือข่ายอินเตอร์เน็ต มีขอบเขตการทำงานดังนี้ 1.4.1 สามารถทำงานได้บนระบบปฏิบัติการ Windows 98 และ Windows 2000 1.4.2 สามารถสนับสนุนการเขียนโปรแกรมเพื่อติดต่อเว็บเซอร์วิสด้วยภาษา PHP เท่านั้น 1.4.3 สามารถสนับสนุนการเขียนโปรแกรม เพื่อทำการร้องขอบริการจากเว็บเซอร์วิสเท่านั้น 1.5 ข้อตกลงเบื้องต้น การทดลองเพื่อหาประสิทธิภาพของโปรแกรม PHP IDE ที่ใช้ในการสนับสนุนการพัฒนา งานด้านการเขียนโปรแกรมด้วยภาษา PHP ที่ใช้ในการติดต่อเว็บเซอร์วิสจะคำนึงถึงผู้ใช้จะต้อง เคยใช้คอมพิวเตอร์ มีความรู้ด้านภาษา PHP และเว็บเซอร์วิส และจะต้องอ่านคู่มือการใช้งานก่อน 1.6 นิยามศัพท์เฉพาะ เว็บเซอร์วิส (Web Services) หมายถึง แอปพลิเคชั่นหรือโปรแกรมซึ่งทำงานอย่างใด อย่างหนึ่งในลักษณะการให้บริการ Integrated Development Environment (IDE) หมายถึง สภาวะแวดล้อมที่จะช่วย ในการทำงานเขียนโปรแกรม มีส่วนของการใช้คำสั่ง และจัดการสิ่งต่างๆ เช่น สามารถ ใช้ ฟังก์ชั่นคีย์ เพื่อช่วยทำงานให้เร็วขึ้น Simple Object Access Protocol (SOAP) หมายถึง โปรโตคอลสำหรับการแลกเปลี่ยน ข้อมูลระหว่างคอมพิวเตอร์ ซึ่งจะอยู่ในรูปแบบไวยากรณ์ภาษา XML Web Services Description Language (WSDL) หมายถึง ภาษาเอกสารสำหรับอธิบาย บริการของเว็บเซอร์วิสที่อยู่ในรูปแบบของภาษา XML 3 1.7 ประโยชน์ที่คาดว่าจะได้รับจากการวิจัย 1.7.1 เพื่ออำนวยความสะดวกในการติดต่อกับเว็บเซอร์วิสหลายๆ แห่งพร้อมๆ กัน 1.7.2 เพื่อช่วยลดเวลาในการอ่าน และทำความเข้าใจกับเอกสารคุณสมบัติของ เว็บเซอร์วิส เพราะโปรแกรมจะช่วยวิเคราะห์ข้อมูลที่ได้จากเว็บเซอร์วิสให้อยู่ในรูปแบบ โครงสร้างต้นไม้ที่สามารถเข้าใจได้ทันที 1.7.3 เพื่อช่วยอำนวยความสะดวกในการเขียนโปรแกรมเพื่อร้องขอบริการ เพราะโปรแกรม สามารถแสดงรายการชื่อบริการ และฟังก์ชั่นการทำงานให้นักพัฒนาสามารถนำไปเติมในโค้ดได้ โดยอัตโนมัติ 1.7.4 เพื่อช่วยลดขั้นตอนการเขียนโปรแกรมด้วยภาษา PHP ในส่วนของการติดต่อ กับเว็บเซอร์วิส เพราะโปรแกรมจะสร้างโค้ดส่วนนี้ให้โดยอัตโนมัติ บทที่ 2 ทฤษฎีและงานวิจัยที่เกี่ยวข้อง ในการพัฒนาโปรแกรม PHP IDE สำหรับติดต่อกับเว็บเซอร์วิสครั้งนี้ ผู้ทำการวิจัย ได้ทำการศึกษาหลักการทฤษฎีต่างๆ และเทคโนโลยีที่เกี่ยวข้อง ที่สามารถนำมาประยุกต์ ใช้งานได้ โดยแบ่งออกเป็นหัวข้อต่างๆ ดังต่อไปนี้ คือ 1. ความรู้เกี่ยวกับเว็บเซอร์วิส 2. ภาษาที่ใช้ในการพัฒนาโปรแกรม 3. วงจรการพัฒนาซอฟต์แวร์ 4. กระบวนการทดสอบโปรแกรม 5. งานวิจัยที่เกี่ยวข้อง 2.1 ความรู้เกี่ยวกับเว็บเซอร์วิส 2.1.1 ความเป็นมาของการพัฒนาเทคโนโลยีเว็บเซอร์วิส เทคโนโลยีเว็บในยุคแรกๆ ก็คือ Static Web จะเป็นการสื่อสารทางเดียวใช้เบราเซอร์ เรียกเว็บเพจที่สร้างด้วยภาษา HTML ล้วนๆ ไปยังเว็บเซิร์ฟเวอร์ เพื่อให้ได้มาซึ่งหน้าเว็บเพจ ต่อมาได้มีการพัฒนาเป็น Dynamic Web โดยมีการใช้สคริปต์ทางฝั่งเซิร์ฟเวอร์มาช่วยเพิ่ม ความสามารถของเอกสาร HTML ในการติดต่อกับองค์ประกอบอื่นๆ ทางฝั่งเซิร์ฟเวอร์ มีการพัฒนาเป็นเว็บแอปพลิเคชั่นที่มีการสื่อสารข้อมูลทั้ง 2 ทาง โดยการส่งข้อมูลไปยัง เว็บเซิร์ฟเวอร์ พร้อมกับการร้องขอข้อมูลหน้าเว็บเพจ และได้รับข้อมูลกลับออกมาเป็นเอกสาร HTML โดยข้อมูลที่ได้รับจะเปลี่ยนไปเรื่อยๆ ขึ้นอยู่กับข้อมูลที่ได้รับไป ทั้งหมดนี้เป็นการสื่อสาร กันระหว่างผู้ใช้กับเว็บเซิร์ฟเวอร์ และการทำงานทั้งหมดจะเกิดขึ้นภายในเว็บเซิร์ฟเวอร์เท่านั้น หลังจากนั้น เทคโนโลยีเว็บเซอร์วิสเป็นแนวคิดที่ได้รับการพัฒนาขึ้น เพื่อกระจาย การทำงานจากเดิมที่ทำงานภายในเว็บเซิร์ฟเวอร์เพียงตัวเดียว ก็มาสู่การช่วยกันทำงานโดย เว็บเซิร์ฟเวอร์หลายๆ แห่งที่ให้บริการเว็บเซอร์วิสผ่านการสื่อสารข้อมูลระหว่างเว็บเซิร์ฟเวอร์ โดยใช้ภาษา XML 1.2.2 เทคโนโลยีเว็บเซอรวิส สราวุธ, (2544 : 36) ได้อธิบายไว้ดังนี้ เว็บเซอร์วิส (Web Services) คือ แอพพลิเคชั่น หรือโปรแกรมซึ่งทำงานอย่างใดอย่างหนึ่ง ในลักษณะการให้บริการ โดยจะถูกเรียกใช้งาน จากแอปพลิเคชั่นหรือโปรแกรมอื่นๆ ผ่านเว็บ การให้บริการของเว็บเซอร์วิสจะมีเอกสาร 5 ที่อธิบายคุณสมบัติของบริการกำกับไว้ และมีการนำเสนอให้สาธารณชนรับทราบผู้ใช้จึงสามารถ ค้นหาเว็บเซอร์วิสได้โดยที่ไม่จำเป็นต้องรู้ที่อยู่จริงของแอปพลิเคชั่นหรือโปรแกรมนั้น การทำงานของเว็บเซอร์วิสจะสัมพันธ์กับส่วนต่างๆ ได้แก่ ผู้ให้บริการ (Service Provider) ผู้เผยแพร่บริการ (Service Registry) และผู้ร้องขอบริการ (Service Requestor) ดังภาพที่ 2-1 ภาพที่ 2-1 แสดงความสัมพันธ์กันของแต่ละส่วนในโครงสร้างเว็บเซอร์วิส 1. ผู้ให้บริการ (Service Provider) คือ เว็บเซอร์วิส ภายในเว็บเซอร์วิสประกอบด้วย 1.1 บริการ (Service) เป็นซอฟต์แวร์โมดูล (Software Module) สามารถทำงานได้ บนเครือข่ายอินเตอร์เน็ต 1.2 รายละเอียดของบริการ (Service Description) คือ เอกสาร Web Services Description Language (WSDL) เป็นเอกสารที่ใช้อธิบายคุณลักษณะของเว็บเซอร์วิส ในกรณีที่ มีเพียงผู้ให้บริการก็สามารถที่จะทำงานได้ แต่ผู้ใช้จะต้องทราบตำแหน่งของเว็บเซอร์วิสที่ต้องการ ดังนั้นปัญหาก็คือ ผู้ใช้ที่ต้องการใช้เว็บเซอร์วิสไม่สามารถหาเว็บเซอร์วิสที่ต้องการได้ เปรียบเสมือนเอกสาร HTML ในโลกอินเตอร์เน็ตที่จะต้องมีเว็บแอปพลิเคชั่นที่ไว้สำหรับค้นหา (Search Engine) หน้าเอกสารที่ต้องการ ดังนั้นจึงมีผู้เผยแพร่บริการ (Service Registry) 2. ผู้เผยแพร่บริการ (Service Registry) คือ Universal Description Discovery (UDDI) เปรียบเสมือนฐานข้อมูลที่เก็บรายละเอียดของเว็บเซอร์วิสไว้ และรอให้ผู้ใช้มาทำการค้นหาบริการ ลักษณะการให้บริการเหมือนกับเว็บแอปพลิเคชั่นที่ทำการค้นหาข้อมูลเว็บเซอร์วิสโดยเฉพาะ 3. ผู้ใช้บริการ (Service Requestor) ผู้ใช้สามารถทำการค้นหาบริการที่ต้องการได้จาก UDDI เมื่อทราบว่าตำแหน่งของเว็บเซอร์วิสที่ต้องการอยู่ที่ใด จากนั้นผู้ใช้สามารถร้องขอบริการ ผ่านเครือข่ายอินเตอร์เน็ต จะทำให้เกิดการกลไกการเชื่อมโยงระหว่างผู้ใช้กับเว็บเซอร์วิส จากภาพที่ 2-1 แสดงองค์ประกอบที่สัมพันธ์กันทั้ง 3 ส่วน สามารถนำมารวมกัน เป็นมาตรฐานในแต่ละระดับชั้นการทำงานของเว็บเซอร์วิสได้ (Web Services Stack) ดังภาพที่ 2-2 Service Registry Service Provider Service Requestor Service Description Service Description Service Find WSDL, UDDI Publish WSDL, UDDI Bind 6 ภาพที่ 2-2 แสดงระดับชั้นการทำงานของเว็บเซอร์วิส ในการทำโครงงานเกี่ยวข้อง 3 ระดับ ได้แก่ ระดับเครือข่าย (Network) ระดับกลไกการ รับส่งข้อมูล (XML-Based Messaging) และระดับข้อมุลของบริการ (Service Description) 1. ระดับเครือข่าย (Network Layer) เป็นพื้นฐานของการทำงาน เว็บเซอร์วิสสามารถ ทำงานได้บนอินเตอร์เน็ตมี HTTP เป็นโปรโตคอลมาตรฐาน เหมาะสำหรับการทำงานที่มี การ เรียกใช้ระหว่างแอปพลิเคชั่นด้วยกัน 2. ระดับกลไกการรับส่งข้อมูล (XML-Based Messaging Layer) มี Simple Object Access Protocol (SOAP) เป็นโปรโตคอลสำหรับการแลกเปลี่ยนข้อมูลระหว่างคอมพิวเตอร์ข้อมูล ที่รับส่งด้วยโปรโตคอล SOAP นี้เรียกว่า SOAP Message 3. ระดับข้อมูลของบริการ (Service Description Layer) เมื่อในชั้นกลไกการรับส่งข้อมูล สามารถส่งข้อมูลเพื่อให้เว็บเซอร์วิสทำงานได้บนอินเตอร์เน็ตได้แล้ว ในชั้นนี้จะทำหน้าที่อธิบาย คุณสมบัติของเว็บเซอร์วิสในรูปแบบไวยากรณ์ภาษา XML 2.1.3 มาตรฐานต่างๆ ที่ใช้ในเว็บเซอร์วิส 2.1.3.1 Simple Object Access Protocol (SOAP) เป็นโปรโตคอลสื่อสารที่อาศัย ไวยากรณ์ของภาษา XML ตามทฤษฎีแล้ว SOAP เป็นโปรโตคอลที่ทำงานได้กับโปรโตคอล เครือข่ายหลายโปรโตคอล เช่น HTTP SMTP เป็นต้น ข้อความที่รับส่งด้วยโปรโตคอลนี้เรียกว่า SOAP Message ซึ่งมีกลไกการรับส่งข้อมูลระหว่างผู้ร้องขอบริการกับเว็บเซอร์วิส ดังภาพที่ 2-3 Service Discovery Service Publication Service Description XML-Based Messaging Network Static .. UDDI Direct .. UDDI WSDL SOAP HTTP, FTP, email, etc. 7 ภาพที่ 2-3 แสดงกลไกการรับส่งข้อมูลระหว่างผู้ร้องขอบริการกับเว็บเซอร์วิส จากภาพที่ 2-3 สามารถอธิบายเป็นขั้นตอน ดังนี้ 1 ผู้ขอใช้บริการ สร้าง SOAP Message เพื่อเรียกใช้บริการ (Request) จากเว็บเซอร์วิส แล้วส่งผ่านโปรโตคอลในเครือข่ายไปยังผู้ให้บริการ 2 ผู้ให้บริการได้รับ SOAP Message การร้องขอจากผู้ขอใช้บริการ ซึ่งเป็นรูปแบบภาษา XML จะได้รับการแปลข้อความนั้นกลับมาอยู่ในรูปแบบที่เว็บเซิร์ฟเวอร์เข้าใจ แล้วตรวจสอบว่า ผู้ขอใช้บริการต้องการเรียกใช้ ฟังก์ชั่นการทำงานใด และส่งตัวแปรอะไรมาด้วย จากนั้น จึงส่งไปให้แก่คอมโพเนนต์ที่ให้บริการนั้นๆ มาดำเนินการประมวลผล 3 หลังจากคอมโพเนนต์ที่ให้บริการเว็บเซอร์วิสส่งผลลัพธ์มาแล้ว ผู้ให้บริการก็จะสร้าง SOAP Message ที่เป็นผลลัพธ์ (Response) นั้นออกมาด้วย แล้วจึงส่งผ่านทางเครือข่าย ไปยังผู้ขอใช้บริการ 4 ผู้ขอใช้บริการได้รับข้อมูลที่เป็นผลลัพธ์ ที่อยู่ในรูปแบบไวยากรณ์ของภาษา XML แล้วจึงแปลข้อความนั้น กลับมาในรูปแบบที่โปรแกรมของผู้ขอใช้บริการเข้าใจ แล้วนำผลลัพธ์ ไปใช้งาน ข้อดีของโปรโตคอล SOAP คือ มีความสามารถในการเรียกใช้แอปพลิเคชั่นข้ามเครือข่ายได้ โดยไม่ขึ้นกับแพลตฟอร์มและภาษาที่ใช้เขียนโปรแกรม นอกจากนี้ SOAP Message สามารถผ่านระบบที่มีไฟร์วอลล์ (Firewall) เนื่องจาก SOAP ทำงานบนโปรโตคอล HTTP ซึ่งโดยปกติไฟร์วอลล์จะเปิดให้การสื่อสารด้วย HTTP ผ่านได้อย่างสะดวก ขณะที่แบบเดิม ไฟร์วอลล์มักจะไม่ยอมให้ผ่านง่ายๆ SOAP Network Protocol SOAP Network Protocol 1 4 3 2 Application Application Web Service Service Requestor Service Provider Response Request (Service Invocation) 8 ข้อเสียของโปรโตคอล SOAP คือ เนื่องจาก SOAP Message เป็นเอกสาร XML ทำให้เสียเวลาในการแปลกลับมาเป็นรูปแบบที่โปรแกรมเข้าใจ และ SOAP ทำงานอยู่บน HTTP ซึ่งโดยปกติแล้วโปรโตคอล นี้มีความสามารถในการรับส่งข้อมูลต่ำ จึงทำให้ SOAP มีอัตรา การรับส่งที่ต่ำด้วย 2.1.3.2 Web Services Description Language (WSDL) คือ ภาษาของเอกสารสำหรับ อธิบายคุณลักษณะ และวิธีการติดต่อกับเว็บเซอร์วิส โดยใช้ไวยากรณ์ภาษา XML เอกสาร WSDL สามารถแบ่งได้เป็น 2 ส่วนใหญ่ๆ ได้แก่ ส่วนของการนำไปพัฒนาใช้งาน (Service Implementation Definition) และส่วนของการติดต่อกับเว็บเซอร์วิส (Service Interface Definition) ทั้ง 2 ส่วนนี้มีความสำคัญ สามารถทำให้การเรียกใช้งานเว็บเซอร์วิส ผ่านเครือข่ายอินเตอร์เน็ต และโปรโตคอล SOAP เป็นไปได้อย่างถูกต้อง ดังภาพที่ 2-4 ภาพที่ 2-4 แสดงส่วนประกอบในรูปแบบข้อมูลของบริการ ส่วนของการนำไปใช้งาน (Service Implementation Definition) ประกอบด้วย Service บอกชื่อของบริการ และ Port เกี่ยวกับช่องทางการระบุตำแหน่งปลายทาง ส่วนของการเชื่อมต่อ (Service Interface Definition) ประกอบด้วย PortType แสดงรายการ ฟังก์ชั่นการทำงาน Message ใช้กำหนดรูปแบบของตัวแปรที่รับส่งของฟังก์ชั่น Type ใช้แสดง ชนิดของข้อมูลที่ใช้ในการรับส่ง และ Binding ใช้แสดงเกี่ยวกับโปรโตคอลที่ใช้ รูปแบบของข้อมูล ความปลอดภัย และอื่นๆ ที่เกี่ยวข้องกับการติดต่อกับเว็บเซอร์วิส (Heather, 2544 : 1-16) 2.2 ภาษาที่ใช้ในการพัฒนาโปรแกรม 2.2.1 ภาษา Personal Home Page (PHP) ผู้วิจัยได้เลือกใช้ภาษา PHP เนื่องจากเป็นภาษาที่มีความสามารถทำงานเกี่ยวกับ ไดนามิกเว็บ (Dynamic Web) ได้ทุกรูปแบบ แต่ความสามารถที่พิเศษกว่านี้ก็คือ ภาษา PHP Service Port Service Implementation Definition Binding PortType Message Type Service Interface Definition 9 สามารถที่จะติดต่อกับบริการต่างๆ ผ่านทางโปรโตคอล ภาษา PHP มีประสิทธิภาพ ในการทำงานได้หลากหลายรูปแบบคือ สามารถทำงานได้กับหลายระบบปฏิบัติการ สามารถ ทำงานร่วมกับโปรแกรมเว็บเซิร์ฟเวอร์ได้หลากหลาย ไม่ว่าจะเป็น Personal Web Server (PWS) ซึ่งใช้ระบบปฏิบัติการ Windows 95 กับ Windows 98 หรือ Internet Information Server (IIS) ซึ่งใช้กับระบบปฏิบัติการ Windows NT กับ Windows 2000 หรือจะใช้ร่วมกับ Apache Web Server ในระบบปฏิบัติการ Linux ก็ได้ ตัวสคริปต์ที่เขียนขึ้นมาก็สามารถ นำไปใช้งานข้ามระบบปฏิบัติการได้เลย และยังสามารถติดต่อกับซอคเค็ท (Socket) ได้อีกด้วย นอกจากนี้ยังเป็นโปรแกรมที่แจกจ่ายฟรี ไม่มีปัญหาเรื่องลิขสิทธิ์ ปัจจุบันจึงมีผู้นิยมใช้กันมาก 2.2.2 ภาษา C++ ภาษา C++ เป็นพัฒนาการอีกขั้นหนึ่งของภาษา C โดยมีความสามารถออบเจ็กต์โอเรียนต์ (Object Oriented) ซึ่งจริงๆ แล้วภาษาในปัจจุบันก็มีความสามารถตรงนี้เป็นจำนวนมาก แต่ภาษา C++ มีข้อได้เปรียบจากภาษาอื่นในการพัฒนาโปรแกรม คือ มีความยืดหยุ่น สามารถ เขียนโปรแกรมได้หลากหลาย และมีโปรแกรม Visual C++ เป็นเครื่องมือในการพัฒนา โปรแกรมบนระบบปฏิบัติการวินโดวส์ที่มีความสามารถสูง มี Microsoft Foundation Class (MFC) ซึ่งเป็นไลบราลี่ภาษา C++ ที่ถูกสร้างมา เพื่อการสร้างแอปพลิเคชั่นที่ใช้งานกับ ระบบปฏิบัติการวินโดวส์ได้อย่างง่ายดาย มีประสิทธิภาพ และยังประหยัดเวลาในการเขียนโค้ด ได้มาก 2.3 วงจรการพัฒนาซอฟต์แวร์ (Software Development Life-Cycle) อภิรักษ์, (2544 : 21-22) ได้กล่าวถึงขั้นตอนในการพัฒนาซอฟต์แวร์ คือแบบจำลองน้ำตก (Waterfall Model) ซึ่งได้แบ่งวงจรการพัฒนาซอฟต์แวร์ไว้เป็น 6 ขั้นตอน ไว้ดังนี้ 2.3.1 วิศวกรรมระบบ (System Engineering) เนื่องจากในการพัฒนาซอฟต์แวร์ต้องมี การสอบถามความต้องการของระบบ และแบ่งส่วนให้ซอฟต์แวร์รับผิดชอบ ดังนั้นจึงต้องมีการ ค้นหาความต้องการของระบบก่อน 2.3.2 วิเคราะห์ความต้องการทางซอฟต์แวร์ (Software Requirements Analysis) เมื่อผ่านกระบวนการสอบถามความต้องการของระบบแล้ว จะต้องทำความเข้าใจกลุ่มของข้อมูล หน้าที่ทั้งส่วนของระบบ และซอฟต์แวร์ เพื่อจัดทำเอกสารและแสดงต่อผู้ใช้ 2.3.3 การออกแบบ (Design) จะเป็นการแปลความหมายของความต้องการ ให้อยู่ในรูปของ ซอฟต์แวร์ ซึ่งต้องสามารถควบคุมคุณภาพก่อนการนำโปรแกรมพัฒนาต่อได้ ในขั้นตอนนี้ ก็มีการจัดทำเอกสารด้วยเช่นกัน 2.3.4 การเขียนโปรแกรม (Coding) เป็นการนำผลของการออกแบบมาแปลให้เป็น โปรแกรมที่เครื่องคอมพิวเตอร์สามารถเข้าใจได้ 10 2.3.5 การทดสอบ (Testing) หลังจากมีการเขียนโปรแกรมก็จะเป็นการทดสอบเพื่อ ให้แน่ใจว่าโปรแกรมได้ทำงานตามที่ต้องการหรือไม่ 2.3.6 การบำรุงรักษา (Maintenance) หลังจากที่ผู้ใช้ได้เริ่มนำซอฟต์แวร์ไปใช้ ก็เกิดปัญหา การบำรุงรักษาจะเป็นการนำซอฟต์แวร์กลับมาแก้ไขในแบบจำลองใหม่ โดยไม่จำเป็นต้อง สร้างโปรแกรมใหม่ โครงงานนี้เลือกใช้แบบจำลองนี้ เพราะมีการแบ่งการทำงานเป็นขั้นตอน การดำเนิน กิจกรรมต่างๆ จะกระทำทีละขั้นตอนตามลำดับ และขั้นตอนสามารถย้อนกลับไปทำซ้ำขั้นตอน ก่อนหน้านั้นได้ ถ้าพบข้อบกพร่องที่เกิดจากขั้นตอนก่อนหน้าในภายหลัง 2.4 กระบวนการทดสอบโปรแกรม ปกติองค์ประกอบของระบบขนาดใหญ่ประกอบด้วยระบบย่อยต่างๆ (Sub-system) รวมกัน ระบบย่อยเหล่านี้เกิดจากการนำหน่วยย่อย (Module) ต่างๆ ในระบบมาประกอบกัน อภิรักษ์, (2544 : 211-212) ได้อธิบายไว้ว่า โดยทั่วไปการทดสอบระบบต้องดำเนินการกับทุกๆ หน่วย ที่นำมาประกอบรวมกันเป็นระบบ สามารถแบ่งการทดสอบออกเป็น 5 ขั้นตอน ดังนี้ 2.4.1 ยูนิตเทสติ้ง (Unit Testing) หมายถึง การทดสอบโพรซิเยอร์ (Procedure) หรือฟังก์ ชั่น (Functions) ย่อยต่างๆ เพื่อให้มั่นใจว่าแต่ละส่วนสามารถทำงานได้ โดยปราศจากข้อผิด พลาด โดยทั่วไปแล้วการดำเนินงานของแต่ละส่วนมีความเป็นอิสระในตัวเอง ดังนั้นการทดสอบ ในขั้นนี้จึงไม่คำนึงถึงความสัมพันธ์กับส่วนอื่น 2.4.2 โมดูลเทสติ้ง (Module Testing) ปกติโมดูล หมายถึง การประกอบรวมกันของฟังก์ชั่น หรือโพรซิเยอร์ที่ดำเนินกิจกรรมอย่างสัมพันธ์กัน ขั้นตอนนี้เป็นการทดสอบการประสานกัน ระหว่างฟังก์ชั่นที่นำมาประกอบรวมกัน 2.4.3 ซับซิสเต็มเทสติ้ง (Sub-System Testing) หมายถึง การทดสอบการดำเนินร่วม ระหว่างโมดูลย่อยต่างๆ อาจถูกพัฒนาขึ้นมาอย่างเป็นอิสระกัน ปัญหาโดยทั่วไปของระบบ ขนาดใหญ่คือ การประสานงานระหว่างโมดูลในระบบย่อยไม่มีความสัมพันธ์กัน ดังนั้น กิจกรรมต่างๆ ของขั้นตอนนี้เกี่ยวข้องกับการค้นหาข้อผิดพลาดจากการเชื่อมต่อระหว่างโมดูลย่อย 2.4.4 ซิสเต็มเทสติ้ง (System Testing) เป็นขบวนการที่ดำเนินหลังนำระบบย่อยๆ มารวมกันเป็นระบบใหญ่ วัตถุประสงค์ของขั้นตอนนี้เพื่อค้นหาข้อผิดพลาดต่างๆ ที่เกิดขึ้น จากการรวมกันระหว่างระบบย่อยและองค์ประกอบย่อยต่างๆ และทดสอบว่าโปรแกรมที่พัฒนา ตรงกับฟังก์ชั่นและนันฟังก์ชั่นรีไควเม้นต์ (Non-function Requirement) ที่นิยามในข้อกำหนด หรือไม่ 2.4.5 แอคเซ็บแทนต์เทสติ้ง (Acceptance Testing) บางครั้งเรียกว่า อัลฟ่าเทสติ้ง (Alpha Testing) เป็นการทดสอบลำดับสุดท้ายก่อนนำไปใช้งานจริง ขั้นตอนนี้นิยมนำตัวอย่าง 11 ข้อมูลจริงทดสอบกับโปรแกรม มากกว่าการสังเคราะห์ตัวอย่างข้อมูลขึ้นมา ซึ่งช่วยให้มองเห็น ความผิดพลาด และ/หรือสิ่งที่ยังไม่ได้ดำเนินการในโปรแกรม 2.5 งานวิจัยที่เกี่ยวข้อง จากขั้นตอนการศึกษาและรวบรวมข้อมูล ผู้ทำการวิจัยได้ค้นคว้างานวิจัยที่เกี่ยวข้อง ซึ่งมีรายละเอียดของงานวิจัยเกี่ยวกับการพัฒนาแอปพลิเคชั่นด้วยภาษา PHP และมีการติดต่อ กับเว็บเซอร์วิส ซึ่งมีความคล้ายคลึงกับโครงงานที่ผู้ทำการวิจัยทำขึ้น ได้แก่ การพัฒนาระบบการสื่อสารบนเว็บโดยใช้เทคโนโลยีเว็บเซอร์วิส (Web Communication Development Using Web Services Technology) โดย นายเมธี สุริยะไกร และนางสาว วาสินี จังชัยวีระยานนท์ ภาควิชาวิศวกรรมคอมพิวเตอร์ คณะวิศวกรรมศาสตร์ สถาบันเทคโนโลยี พระจอมเกล้าเจ้าคุณทหารลาดกระบัง โครงงานนี้เป็นโครงงานที่ทำการพัฒนาเว็บภาควิชาวิศวกรรมคอมพิวเตอร์ โดยทำการเพิ่ม บริการพาสพอร์ต บริการแจ้งเตือนข่าวสาร และปรับปรุงบริการเว็บบอร์ด บริการเว็บเมล์ บริการประกาศข่าวให้กับเว็บภาควิชาวิศวกรรมคอมพิวเตอร์ โดยใช้เทคโนโลยีเว็บเซอร์วิส บริการที่แก้ไขและเพิ่มเติมทั้งหมดนั้นใช้ภาษา PHP ในการสร้างบริการ โดยเครื่องมือ ตัวกลางที่ใช้ในการเปลี่ยนแปลงข้อมูลตัวแปรที่ส่งจากบริการที่ใช้ภาษา PHP ไปเป็นภาษา XML เพื่อใช้ติดต่อกับ SOAP คือ NuSOAP Library ส่วนข้อมูลผู้ใช้บริการทั้งหมดนั้นจัดเก็บลงบน MySQL Database จากที่ผู้วิจัยได้ทำการศึกษาและรวบรวมข้อมูลเพื่อพัฒนาโครงงานนี้ ผู้วิจัยได้ดำเนินการ ศึกษาเทคโนโลยีเว็บเซอร์วิส เกี่ยวกับลักษณะการทำงานการเรียกใช้บริการจากเว็บเซอร์วิส ในปัจจุบัน โดยสืบค้นผ่านสื่อต่างๆ เช่น เว็บไซต์ที่ให้ความรู้ และหนังสือต่างๆ ถึงความต้องการ ที่จะให้มีซอฟต์แวร์เพื่อสนับสนุนการเขียนโปรแกรมด้วยภาษา PHP ติดต่อกับเว็บเซอร์วิส ผู้วิจัยได้เลือกภาษา C++ ในการสร้างซอฟต์แวร์ เครื่องมือที่ใช้ในการพัฒนา ได้แก่ Visual C++ 6.0 สำหรับสร้างซอฟต์แวร์บนระบบปฏิบัติการวินโดวส์ โปรแกรม AppServ 2.0.0 ซึ่ง เป็นโปรแกรมที่รวบรวมซอฟต์แวร์หลายๆ อย่างเข้าด้วยกัน ได้แก่ เว็บเซิร์ฟเวอร์อาปาเช่ (Apache) PHP MySQL และ PHPMyAdmin และ NuSOAP 0.6.4 เป็นไฟล์ไลบรารีสำหรับ เป็นเครื่องมือตัวกลางที่ใช้ในการเปลี่ยนแปลงข้อมูลในภาษา PHP เป็นภาษา XML เพื่อใช้ติดต่อ กับ SOAP บทที่ 3 การดำเนินการวิจัย ในการศึกษาวิจัยครั้งนี้ เป็นการพัฒนาโปรแกรม PHP IDE สำหรับติดต่อเว็บเซอร์วิสบทนี้ จึงจะนำเสนอสาระเกี่ยวกับระเบียบวิธีการศึกษา การดำเนินการ และวิธีการวิจัยดังต่อไปนี้ 1. การวิเคราะห์ระบบ 2. การออกแบบระบบ 3. การพัฒนาและการทดสอบระบบ 4. ประชากรและกลุ่มตัวอย่าง 5. เครื่องมือในการวิจัย 6. การให้ค่าคะแนนในแบบประเมิน 7. การเก็บรวบรวมข้อมูล 8. การประมวลและวิเคราะห์ข้อมูล 9. สถิติที่ใช้ในการวิเคราะห์ข้อมูล 3.1 การวิเคราะห์ระบบ โครงงานที่ผู้วิจัยได้พัฒนาเป็นโปรแกรม PHP IDE สำหรับติดต่อกับเว็บเซอร์วิส มีความสามารถอำนวยความสะดวก ให้แก่ผู้ใช้ที่ต้องการเขียนโปรแกรมด้วยภาษา PHP ใน การร้องขอบริการมาใช้ประกอบการเขียนโปรแกรม โปรแกรม PHP IDE สามารถติดต่อกับเว็บ เซอร์วิสได้พร้อมๆ กันหลายบริการ เมื่อสามารถติดต่อกับเว็บเซอร์วิสได้แล้ว โปรแกรม ก็จะ นำข้อมูลที่อธิบายคุณลักษณะของบริการมาประมวลผล เพื่อนำไปช่วยในการสร้างโค้ด ที่ เกี่ยวกับส่วนของการติดต่อกับเว็บเซอร์วิส ทำให้ผู้ใช้ไม่ต้องเขียนโค้ดส่วนนี้ด้วยตนเอง ผู้ ใช้สามารถดูข้อมูลของแต่ละบริการ ได้แก่ ตำแหน่งของเว็บเซอร์วิสหรือ Universal Resource Locator (URL) รายการฟังก์ชั่นการทำงานที่เปิดให้ร้องขอ และตัวแปรที่ต้องส่งไป (Input) และ ตัวแปรที่ได้รับกลับมา (Output) ที่ได้จากการทำงานกับฟังก์ชั่นนั้นๆ และสุดท้ายขณะที่ผู้ใช้ เขียนโปรแกรม ผู้ใช้สามารถเรียกแสดงรายการบริการและฟังก์ชั่นได้ โดยผู้ใช้สามารถที่จะเลือก แล้วนำมาเติมลงในโค้ดได้โดยอัตโนมัติ ส่วนเวลาสำหรับการติดต่อไปยังเว็บเซอร์วิสแต่ละครั้งนั้น จะไม่แน่นอน จะขึ้นอยู่กับความเร็วของการรับส่งข้อมูลบนเครือข่ายอินเตอร์เน็ตในขณะนั้น 3.1.1 การทำงานกับเว็บเซอร์วิสในปัจจุบัน ในปัจจุบันขั้นตอนการเรียกใช้บริการจากเว็บเซอร์วิสมีขั้นตอนอย่างง่ายๆ ดังนี้ 13 1. ค้นหาข้อมูลบริการของเว็บเซอร์วิสผ่าน UDDI จะทำให้ได้ข้อมูลเกี่ยวกับประเภท ของบริการ ที่ตั้ง และเอกสารอธิบายคุณสมบัติของบริการ 2. ผู้ใช้ติดต่อขอใช้บริการ ด้วยการเขียนโปรแกรมขึ้นมาเรียกใช้ฟังก์ชั่นการทำงาน ของเว็บเซอร์วิสนั้นๆ โดยอาศัยข้อมูลที่มีอยู่ในเอกสารคุณสมบัติของบริการ 3. ผู้ให้บริการส่งผลลัพธ์ตอบกลับมา จากขั้นตอนดังกล่าวในปัจจุบัน ผู้ใช้จะต้องอาศัยพื้นฐานความรู้เกี่ยวกับภาษา XML จึงจะสามารถเข้าใจเอกสารข้อมูลที่ได้รับมาจากแหล่งที่ทำการค้นหา หรือจากเว็บเซอร์วิส ดัง นั้นผู้วิจัยจึงได้เอาปัญหาดังกล่าวมาพัฒนาเป็นโปรแกรม PHP IDE สำหรับติดต่อเว็บเซอร์วิส จะสามารถช่วยแก้ปัญหาเหล่านี้ให้แก่นักพัฒนาที่ใช้ภาษา PHP ในการเขียนโปรแกรมได้ 3.1.2 ความสามารถในการทำงานของโปรแกรม PHP IDE สำหรับติดต่อเว็บเซอร์วิส ความสามารถของโปรแกรม PHP IDE สำหรับติดต่อเว็บเซอร์วิสมี ดังนี้ 1. เป็นโปรแกรมที่ใช้ในการเขียนชุดคำสั่ง (Code Editor) ภาษา PHP 2. สามารถติดต่อกับเว็บเซอร์วิสได้ (Web Services Connector) 3. สามารถสร้างโค้ด (Header File) การติดต่อกับเว็บเซอร์วิสให้แก่ผู้ใช้ เพื่อนำไปใช้ประกอบในการ เขียนโปรแกรมของผู้ใช้ได้ 4. ขณะเขียนซอร์สโค้ดผู้ใช้สามารถเรียกแสดงรายการบริการและฟังก์ชั่นการทำงาน เพื่อเลือกแล้ว นำมาเติมลงในโค้ดได้โดยอัตโนมัติ (Code Completion) ลักษณะรายการที่แสดงจะเป็นแบบดร็อปดาวน์ (Drop Down List) 5. สามารถแสดงข้อมูลของแต่ละบริการ ได้แก่ ตำแหน่งของเว็บเซอร์วิส ฟังก์ชั่น ที่ให้บริการ และตัวแปรที่รับส่งกับเว็บเซอร์วิส โดยจะแสดงในรูปแบบของโครงสร้างต้นไม้ (Tree View) เพื่อง่ายแก่การ ทำความเข้าใจของผู้ใช้ จากความสามารถของโปรแกรมดังกล่าว จะสามารถช่วยแก้ปัญหา และอำนวยความสะดวกสำหรับการ เขียนโปรแกรมสำหรับติดต่อกับเว็บเซอร์วิสให้แก่ผู้ใช้งานได้ ดังนี้ 1. ไม่ต้องเสียเวลาในการทำความเข้าใจเอกสารคุณสมบัติของบริการ เพราะโปรแกรม จะนำข้อมูล จากเอกสารมาประมวลผล และนำเสนอในรูปแบบที่ผู้ใช้สามารถเข้าใจได้ทันที นั่นคือการแสดงข้อมูลในรูป ของโครงสร้างต้นไม้ ทำให้ผู้ใช้สามารถทราบได้ว่ามีฟังก์ชั่น การทำงานใดบ้าง และผลลัพธ์ที่ได้จะแสดง ออกมาในรูปแบบใด เป็นต้น 2. สะดวกในการติดต่อกับเว็บเซอร์วิส ปัญหาในปัจจุบันก็คือ ก่อนที่ผู้ใช้จะร้องขอบริการ จะต้อง ตรวจสอบก่อนว่า เว็บเซอร์วิสสามารถให้บริการที่ต้องการได้หรือไม่ จากนั้นจึงสามารถร้องขอบริการจากเว็บ เซอร์วิสที่ต้องการ และในกรณีที่ต้องการติดต่อหลายๆ เว็บเซอร์วิส จะทำให้กลายเป็นเรื่องที่ยุ่งยาก โปรแกรมนี้มีความสามารถทำให้การติดต่อกับเว็บเซอร์วิส เป็นไปได้อย่างง่ายดาย เนื่องจากมีส่วนของ การจัดการรายการเว็บเซอร์วิส ผู้ใช้เพียงระบุตำแหน่งของเว็บเซอร์วิส และสามารถติดต่อได้ครั้งละหลายๆ เว็บ เซอร์วิส จากนั้นโปรแกรมจะแสดง ข้อความแจ้งให้ผู้ใช้ทราบในกรณีที่มีเว็บเซอร์วิสบางแห่งที่ไม่สามารถติด ต่อได้ 14 3. ประหยัดเวลาในการเขียนโค้ดของผู้ใช้ เพราะโปรแกรมนี้ช่วยสร้างโค้ดในส่วนของการติดต่อกับ เว็บเซอร์วิสเป็นภาษา PHP ให้ ซึ่งเป็นส่วนที่มีความยุ่งยาก ทำให้โค้ดที่ผู้ใช้ จะพัฒนาขึ้นสามารถทำการ ติดต่อไปยังเว็บเซอร์วิสได้ทันที 4. สะดวกในการเขียนโค้ดการร้องขอบริการ เนื่องจากปัจจุบันผู้ใช้จะต้องอาศัยการเข้าใจ และจดจำข้อมูลจากเอกสาร WSDL กรณีที่มีการติดต่อกับหลายๆ เว็บเซอร์วิสจะทำให้เกิดความยุ่งยาก และสับสนแก่ผู้ ใช้ได้ โปรแกรมนี้สามารถแสดงรายการบริการ และฟังก์ชั่นของบริการ เพื่อให้ผู้ใช้ทำการเลือกจากรายการที่ แสดงแล้วนำมาเติมลงในโค้ดได้โดยอัตโนมัติ ในการวิเคราะห์โปรแกรม PHP IDE สำหรับติดต่อเว็บเซอร์วิสได้ใช้หลักการของ Unified Modeling Language (UML) ซึ่งจะมีไดอะแกรม (Diagrams) ต่างๆ ที่เกี่ยวข้อง ภาพที่ 3-1 แสดงไดอะแกรมยูสเคสของทั้งระบบ จากภาพที่ 3-1 ผลของการวิเคราะห์สามารถสรุป เพื่อใช้ในการสร้างยูสเคสได้ ดังนี้ 1. ผู้ที่เกี่ยวข้องกับระบบ (Actor) มี 2 ส่วนคือ นักพัฒนา (Developer) และเว็บเซอร์วิส 2. ยูสเคส (Use Case) ที่จำเป็นต้องมีคือ PHPEditor เพราะระบบเน้นให้สามารถ ทำการเขียนโปรแกรมด้วยภาษา PHP เพื่อนำบริการจากเว็บเซอร์วิสมาใช้ในการพัฒนาโปรแกรม 3. การพัฒนาโปรแกรม มีการสร้างการติดต่อกับเว็บเซอร์วิส จึงควรมียูสเคส ConnectServices เพิ่มขึ้น และยูสเคสนี้จะทำหน้าที่ร้องขอบริการจากเว็บเซอร์วิส ดังนั้น เว็บเซอร์วิสจึงเกี่ยวข้องกับยูสเคสนี้ 4. เมื่อมีการติดต่อกับเว็บเซอร์วิสแล้ว โปรแกรมนี้มีการนำข้อมูลที่ได้จากเว็บเซอร์วิส มาประมวลผลให้อยู่ในรูปแบบที่สามารถนำไปใช้งานต่อได้ จึงต้องมียูสเคส XMLParser PHPHeaderScript TreeView Web Services ConnectServices Developer PHPEditor <
ศึกษาและโหลดฟรีเป็นตัวอย่างเกี่ยวกับงานวิจัย all free download research
วันเสาร์ที่ 18 เมษายน พ.ศ. 2552
การพัฒนา Integrated development environment (IDE) สำหรับภาษา PHP ที่ใช้ในการติดต่อเว็บเซอร์วิส (web service)
บทที่ 1 บทนำ 1.1 ความเป็นมาและความสำคัญของปัญหา ในขั้นตอนของการพัฒนาการสื่อสารข้อมูลบนเครือข่ายอินเตอร์เน็ต (Internet) การแสดงผล ทางเว็บเพจ (Web Page) เป็นเพียงการแสดงข้อมูลจากเว็บเซิร์ฟเวอร์ (Web Server) ไปสู่เบราเซอร์ (Browser) ยังไม่ได้มีการติดต่อสื่อสารกันระหว่างเว็บเซิร์ฟเวอร์ เนื่องจาก ในช่วงเวลานั้นภาษา Hypertext Markup Language (HTML) มีความสามารถในการแสดงผล ข้อมูล แต่เป็นการยากที่นำข้อมูลเหล่านั้นไปประมวลผลต่ออีกที ต่อมาจึงได้เกิดภาษา eXtensible Markup Language (XML) ขึ้น ปัญหาดังกล่าวจึงถูกแก้ไขโดยการนำภาษา XML มาใช้จะทำให้ ข้อมูลอยู่ในรูปแบบข้อมูลดิบ ซึ่งนักพัฒนาสามารถดึงออกมาใช้เพื่อนำไปประมวลผลต่อได้ง่าย และสะดวกขึ้น ดังนั้นในยุคต่อไปของการพัฒนาเว็บแอปพลิเคชั่น (Web Application) ก็คือ การใช้ภาษา XML ในการแลกเปลี่ยนข้อมูลระหว่างเว็บเซิร์ฟเวอร์ซึ่งกันและกันและต่าง แพลตฟอร์ม (Platform) กันได้ หลังจากมีการแลกเปลี่ยนข้อมูลกันระหว่างเว็บเซิร์ฟเวอร์โดยใช้ภาษา XML และมีการใช้ เว็บแอปพลิเคชั่นเพื่อเพิ่มความปลอดภัยของข้อมูล ได้มีการพัฒนาเว็บเซอร์วิส (Web Services) เพื่อกระจายการประมวลผลจากเว็บเซิร์ฟเวอร์ 1 ตัวไปยังเว็บเซิร์ฟเวอร์ตัวอื่นๆ ให้ช่วยกัน ประมวลผล โดยที่เว็บเซิร์ฟเวอร์ที่ช่วยประมวลผลก็ต้องมีการให้บริการเว็บเซอร์วิสอยู่ด้วย และทั้งหมดนี้เป็นความเป็นมาในการพัฒนาเว็บเซอร์วิส การใช้งานเว็บเซอร์วิสจะเป็นการใช้งานผ่านเครือข่ายอินเตอร์เน็ต อินเตอร์เน็ตในวันนี้ ไม่ใช่สิ่งแปลกใหม่ต่อไปสำหรับผู้ที่ใช้งานคอมพิวเตอร์ ปัจจุบันมีการพัฒนาเพื่อการสื่อสาร บนเครือข่ายอินเตอร์เน็ตเป็นหลัก โดยสังเกตได้จากการเติบโตของเว็บเซิร์ฟเวอร์อย่างรวดเร็ว ปัจจุบันปัญหาก็คือ ภาษาที่ใช้ในการพัฒนากับเว็บเซอร์วิส ส่วนมากนั้นจะมีโปรแกรม .NET ของไมโครซอฟท์ (Microsoft) อำนวยความสะดวกอยู่แล้ว แต่สำหรับภาษา Personal Home Page (PHP) ยังไม่มีเครื่องมือที่จะอำนวยความสะดวกในการพัฒนาใช้งานเว็บเซอร์วิส ผู้ วิจัยจึงได้เกิดแนวคิดที่จะสร้าง Integrated Development Environment (IDE) สำหรับ ภาษา PHP เพื่อใช้ในการติดต่อเว็บเซอร์วิส เพื่อใช้ในการสนับสนุนนักพัฒนางานทางด้าน การเขียน โปรแกรมด้วยภาษา PHP ได้ง่าย สะดวก และมีประสิทธิภาพ 2 1.2 วัตถุประสงค์ของการวิจัย เพื่อพัฒนา PHP IDE ที่ใช้ในการสนับสนุนการพัฒนางานทางด้านการเขียนโปรแกรม ด้วยภาษา PHP ที่ใช้ในการติดต่อเว็บเซอร์วิส 1.3 สมมติฐานการวิจัย กลุ่มตัวอย่างผู้ใช้โปรแกรมที่มีภูมิหลัง ได้แก่ ความรู้ในการใช้ภาษา PHP และเทคโนโลยี เว็บเซอร์วิสมีความคิดเห็นต่อประสิทธิภาพการทำงานของโปรแกรมในระดับดี 1.4 ขอบเขตของการวิจัย โปรแกรม PHP IDE ที่จัดทำขึ้น จะครอบคลุมในการสนับสนุนการเขียนโปรแกรมด้วย ภาษา PHP สำหรับติดต่อเว็บเซอร์วิสผ่านระบบเครือข่ายอินเตอร์เน็ต มีขอบเขตการทำงานดังนี้ 1.4.1 สามารถทำงานได้บนระบบปฏิบัติการ Windows 98 และ Windows 2000 1.4.2 สามารถสนับสนุนการเขียนโปรแกรมเพื่อติดต่อเว็บเซอร์วิสด้วยภาษา PHP เท่านั้น 1.4.3 สามารถสนับสนุนการเขียนโปรแกรม เพื่อทำการร้องขอบริการจากเว็บเซอร์วิสเท่านั้น 1.5 ข้อตกลงเบื้องต้น การทดลองเพื่อหาประสิทธิภาพของโปรแกรม PHP IDE ที่ใช้ในการสนับสนุนการพัฒนา งานด้านการเขียนโปรแกรมด้วยภาษา PHP ที่ใช้ในการติดต่อเว็บเซอร์วิสจะคำนึงถึงผู้ใช้จะต้อง เคยใช้คอมพิวเตอร์ มีความรู้ด้านภาษา PHP และเว็บเซอร์วิส และจะต้องอ่านคู่มือการใช้งานก่อน 1.6 นิยามศัพท์เฉพาะ เว็บเซอร์วิส (Web Services) หมายถึง แอปพลิเคชั่นหรือโปรแกรมซึ่งทำงานอย่างใด อย่างหนึ่งในลักษณะการให้บริการ Integrated Development Environment (IDE) หมายถึง สภาวะแวดล้อมที่จะช่วย ในการทำงานเขียนโปรแกรม มีส่วนของการใช้คำสั่ง และจัดการสิ่งต่างๆ เช่น สามารถ ใช้ ฟังก์ชั่นคีย์ เพื่อช่วยทำงานให้เร็วขึ้น Simple Object Access Protocol (SOAP) หมายถึง โปรโตคอลสำหรับการแลกเปลี่ยน ข้อมูลระหว่างคอมพิวเตอร์ ซึ่งจะอยู่ในรูปแบบไวยากรณ์ภาษา XML Web Services Description Language (WSDL) หมายถึง ภาษาเอกสารสำหรับอธิบาย บริการของเว็บเซอร์วิสที่อยู่ในรูปแบบของภาษา XML 3 1.7 ประโยชน์ที่คาดว่าจะได้รับจากการวิจัย 1.7.1 เพื่ออำนวยความสะดวกในการติดต่อกับเว็บเซอร์วิสหลายๆ แห่งพร้อมๆ กัน 1.7.2 เพื่อช่วยลดเวลาในการอ่าน และทำความเข้าใจกับเอกสารคุณสมบัติของ เว็บเซอร์วิส เพราะโปรแกรมจะช่วยวิเคราะห์ข้อมูลที่ได้จากเว็บเซอร์วิสให้อยู่ในรูปแบบ โครงสร้างต้นไม้ที่สามารถเข้าใจได้ทันที 1.7.3 เพื่อช่วยอำนวยความสะดวกในการเขียนโปรแกรมเพื่อร้องขอบริการ เพราะโปรแกรม สามารถแสดงรายการชื่อบริการ และฟังก์ชั่นการทำงานให้นักพัฒนาสามารถนำไปเติมในโค้ดได้ โดยอัตโนมัติ 1.7.4 เพื่อช่วยลดขั้นตอนการเขียนโปรแกรมด้วยภาษา PHP ในส่วนของการติดต่อ กับเว็บเซอร์วิส เพราะโปรแกรมจะสร้างโค้ดส่วนนี้ให้โดยอัตโนมัติ บทที่ 2 ทฤษฎีและงานวิจัยที่เกี่ยวข้อง ในการพัฒนาโปรแกรม PHP IDE สำหรับติดต่อกับเว็บเซอร์วิสครั้งนี้ ผู้ทำการวิจัย ได้ทำการศึกษาหลักการทฤษฎีต่างๆ และเทคโนโลยีที่เกี่ยวข้อง ที่สามารถนำมาประยุกต์ ใช้งานได้ โดยแบ่งออกเป็นหัวข้อต่างๆ ดังต่อไปนี้ คือ 1. ความรู้เกี่ยวกับเว็บเซอร์วิส 2. ภาษาที่ใช้ในการพัฒนาโปรแกรม 3. วงจรการพัฒนาซอฟต์แวร์ 4. กระบวนการทดสอบโปรแกรม 5. งานวิจัยที่เกี่ยวข้อง 2.1 ความรู้เกี่ยวกับเว็บเซอร์วิส 2.1.1 ความเป็นมาของการพัฒนาเทคโนโลยีเว็บเซอร์วิส เทคโนโลยีเว็บในยุคแรกๆ ก็คือ Static Web จะเป็นการสื่อสารทางเดียวใช้เบราเซอร์ เรียกเว็บเพจที่สร้างด้วยภาษา HTML ล้วนๆ ไปยังเว็บเซิร์ฟเวอร์ เพื่อให้ได้มาซึ่งหน้าเว็บเพจ ต่อมาได้มีการพัฒนาเป็น Dynamic Web โดยมีการใช้สคริปต์ทางฝั่งเซิร์ฟเวอร์มาช่วยเพิ่ม ความสามารถของเอกสาร HTML ในการติดต่อกับองค์ประกอบอื่นๆ ทางฝั่งเซิร์ฟเวอร์ มีการพัฒนาเป็นเว็บแอปพลิเคชั่นที่มีการสื่อสารข้อมูลทั้ง 2 ทาง โดยการส่งข้อมูลไปยัง เว็บเซิร์ฟเวอร์ พร้อมกับการร้องขอข้อมูลหน้าเว็บเพจ และได้รับข้อมูลกลับออกมาเป็นเอกสาร HTML โดยข้อมูลที่ได้รับจะเปลี่ยนไปเรื่อยๆ ขึ้นอยู่กับข้อมูลที่ได้รับไป ทั้งหมดนี้เป็นการสื่อสาร กันระหว่างผู้ใช้กับเว็บเซิร์ฟเวอร์ และการทำงานทั้งหมดจะเกิดขึ้นภายในเว็บเซิร์ฟเวอร์เท่านั้น หลังจากนั้น เทคโนโลยีเว็บเซอร์วิสเป็นแนวคิดที่ได้รับการพัฒนาขึ้น เพื่อกระจาย การทำงานจากเดิมที่ทำงานภายในเว็บเซิร์ฟเวอร์เพียงตัวเดียว ก็มาสู่การช่วยกันทำงานโดย เว็บเซิร์ฟเวอร์หลายๆ แห่งที่ให้บริการเว็บเซอร์วิสผ่านการสื่อสารข้อมูลระหว่างเว็บเซิร์ฟเวอร์ โดยใช้ภาษา XML 1.2.2 เทคโนโลยีเว็บเซอรวิส สราวุธ, (2544 : 36) ได้อธิบายไว้ดังนี้ เว็บเซอร์วิส (Web Services) คือ แอพพลิเคชั่น หรือโปรแกรมซึ่งทำงานอย่างใดอย่างหนึ่ง ในลักษณะการให้บริการ โดยจะถูกเรียกใช้งาน จากแอปพลิเคชั่นหรือโปรแกรมอื่นๆ ผ่านเว็บ การให้บริการของเว็บเซอร์วิสจะมีเอกสาร 5 ที่อธิบายคุณสมบัติของบริการกำกับไว้ และมีการนำเสนอให้สาธารณชนรับทราบผู้ใช้จึงสามารถ ค้นหาเว็บเซอร์วิสได้โดยที่ไม่จำเป็นต้องรู้ที่อยู่จริงของแอปพลิเคชั่นหรือโปรแกรมนั้น การทำงานของเว็บเซอร์วิสจะสัมพันธ์กับส่วนต่างๆ ได้แก่ ผู้ให้บริการ (Service Provider) ผู้เผยแพร่บริการ (Service Registry) และผู้ร้องขอบริการ (Service Requestor) ดังภาพที่ 2-1 ภาพที่ 2-1 แสดงความสัมพันธ์กันของแต่ละส่วนในโครงสร้างเว็บเซอร์วิส 1. ผู้ให้บริการ (Service Provider) คือ เว็บเซอร์วิส ภายในเว็บเซอร์วิสประกอบด้วย 1.1 บริการ (Service) เป็นซอฟต์แวร์โมดูล (Software Module) สามารถทำงานได้ บนเครือข่ายอินเตอร์เน็ต 1.2 รายละเอียดของบริการ (Service Description) คือ เอกสาร Web Services Description Language (WSDL) เป็นเอกสารที่ใช้อธิบายคุณลักษณะของเว็บเซอร์วิส ในกรณีที่ มีเพียงผู้ให้บริการก็สามารถที่จะทำงานได้ แต่ผู้ใช้จะต้องทราบตำแหน่งของเว็บเซอร์วิสที่ต้องการ ดังนั้นปัญหาก็คือ ผู้ใช้ที่ต้องการใช้เว็บเซอร์วิสไม่สามารถหาเว็บเซอร์วิสที่ต้องการได้ เปรียบเสมือนเอกสาร HTML ในโลกอินเตอร์เน็ตที่จะต้องมีเว็บแอปพลิเคชั่นที่ไว้สำหรับค้นหา (Search Engine) หน้าเอกสารที่ต้องการ ดังนั้นจึงมีผู้เผยแพร่บริการ (Service Registry) 2. ผู้เผยแพร่บริการ (Service Registry) คือ Universal Description Discovery (UDDI) เปรียบเสมือนฐานข้อมูลที่เก็บรายละเอียดของเว็บเซอร์วิสไว้ และรอให้ผู้ใช้มาทำการค้นหาบริการ ลักษณะการให้บริการเหมือนกับเว็บแอปพลิเคชั่นที่ทำการค้นหาข้อมูลเว็บเซอร์วิสโดยเฉพาะ 3. ผู้ใช้บริการ (Service Requestor) ผู้ใช้สามารถทำการค้นหาบริการที่ต้องการได้จาก UDDI เมื่อทราบว่าตำแหน่งของเว็บเซอร์วิสที่ต้องการอยู่ที่ใด จากนั้นผู้ใช้สามารถร้องขอบริการ ผ่านเครือข่ายอินเตอร์เน็ต จะทำให้เกิดการกลไกการเชื่อมโยงระหว่างผู้ใช้กับเว็บเซอร์วิส จากภาพที่ 2-1 แสดงองค์ประกอบที่สัมพันธ์กันทั้ง 3 ส่วน สามารถนำมารวมกัน เป็นมาตรฐานในแต่ละระดับชั้นการทำงานของเว็บเซอร์วิสได้ (Web Services Stack) ดังภาพที่ 2-2 Service Registry Service Provider Service Requestor Service Description Service Description Service Find WSDL, UDDI Publish WSDL, UDDI Bind 6 ภาพที่ 2-2 แสดงระดับชั้นการทำงานของเว็บเซอร์วิส ในการทำโครงงานเกี่ยวข้อง 3 ระดับ ได้แก่ ระดับเครือข่าย (Network) ระดับกลไกการ รับส่งข้อมูล (XML-Based Messaging) และระดับข้อมุลของบริการ (Service Description) 1. ระดับเครือข่าย (Network Layer) เป็นพื้นฐานของการทำงาน เว็บเซอร์วิสสามารถ ทำงานได้บนอินเตอร์เน็ตมี HTTP เป็นโปรโตคอลมาตรฐาน เหมาะสำหรับการทำงานที่มี การ เรียกใช้ระหว่างแอปพลิเคชั่นด้วยกัน 2. ระดับกลไกการรับส่งข้อมูล (XML-Based Messaging Layer) มี Simple Object Access Protocol (SOAP) เป็นโปรโตคอลสำหรับการแลกเปลี่ยนข้อมูลระหว่างคอมพิวเตอร์ข้อมูล ที่รับส่งด้วยโปรโตคอล SOAP นี้เรียกว่า SOAP Message 3. ระดับข้อมูลของบริการ (Service Description Layer) เมื่อในชั้นกลไกการรับส่งข้อมูล สามารถส่งข้อมูลเพื่อให้เว็บเซอร์วิสทำงานได้บนอินเตอร์เน็ตได้แล้ว ในชั้นนี้จะทำหน้าที่อธิบาย คุณสมบัติของเว็บเซอร์วิสในรูปแบบไวยากรณ์ภาษา XML 2.1.3 มาตรฐานต่างๆ ที่ใช้ในเว็บเซอร์วิส 2.1.3.1 Simple Object Access Protocol (SOAP) เป็นโปรโตคอลสื่อสารที่อาศัย ไวยากรณ์ของภาษา XML ตามทฤษฎีแล้ว SOAP เป็นโปรโตคอลที่ทำงานได้กับโปรโตคอล เครือข่ายหลายโปรโตคอล เช่น HTTP SMTP เป็นต้น ข้อความที่รับส่งด้วยโปรโตคอลนี้เรียกว่า SOAP Message ซึ่งมีกลไกการรับส่งข้อมูลระหว่างผู้ร้องขอบริการกับเว็บเซอร์วิส ดังภาพที่ 2-3 Service Discovery Service Publication Service Description XML-Based Messaging Network Static .. UDDI Direct .. UDDI WSDL SOAP HTTP, FTP, email, etc. 7 ภาพที่ 2-3 แสดงกลไกการรับส่งข้อมูลระหว่างผู้ร้องขอบริการกับเว็บเซอร์วิส จากภาพที่ 2-3 สามารถอธิบายเป็นขั้นตอน ดังนี้ 1 ผู้ขอใช้บริการ สร้าง SOAP Message เพื่อเรียกใช้บริการ (Request) จากเว็บเซอร์วิส แล้วส่งผ่านโปรโตคอลในเครือข่ายไปยังผู้ให้บริการ 2 ผู้ให้บริการได้รับ SOAP Message การร้องขอจากผู้ขอใช้บริการ ซึ่งเป็นรูปแบบภาษา XML จะได้รับการแปลข้อความนั้นกลับมาอยู่ในรูปแบบที่เว็บเซิร์ฟเวอร์เข้าใจ แล้วตรวจสอบว่า ผู้ขอใช้บริการต้องการเรียกใช้ ฟังก์ชั่นการทำงานใด และส่งตัวแปรอะไรมาด้วย จากนั้น จึงส่งไปให้แก่คอมโพเนนต์ที่ให้บริการนั้นๆ มาดำเนินการประมวลผล 3 หลังจากคอมโพเนนต์ที่ให้บริการเว็บเซอร์วิสส่งผลลัพธ์มาแล้ว ผู้ให้บริการก็จะสร้าง SOAP Message ที่เป็นผลลัพธ์ (Response) นั้นออกมาด้วย แล้วจึงส่งผ่านทางเครือข่าย ไปยังผู้ขอใช้บริการ 4 ผู้ขอใช้บริการได้รับข้อมูลที่เป็นผลลัพธ์ ที่อยู่ในรูปแบบไวยากรณ์ของภาษา XML แล้วจึงแปลข้อความนั้น กลับมาในรูปแบบที่โปรแกรมของผู้ขอใช้บริการเข้าใจ แล้วนำผลลัพธ์ ไปใช้งาน ข้อดีของโปรโตคอล SOAP คือ มีความสามารถในการเรียกใช้แอปพลิเคชั่นข้ามเครือข่ายได้ โดยไม่ขึ้นกับแพลตฟอร์มและภาษาที่ใช้เขียนโปรแกรม นอกจากนี้ SOAP Message สามารถผ่านระบบที่มีไฟร์วอลล์ (Firewall) เนื่องจาก SOAP ทำงานบนโปรโตคอล HTTP ซึ่งโดยปกติไฟร์วอลล์จะเปิดให้การสื่อสารด้วย HTTP ผ่านได้อย่างสะดวก ขณะที่แบบเดิม ไฟร์วอลล์มักจะไม่ยอมให้ผ่านง่ายๆ SOAP Network Protocol SOAP Network Protocol 1 4 3 2 Application Application Web Service Service Requestor Service Provider Response Request (Service Invocation) 8 ข้อเสียของโปรโตคอล SOAP คือ เนื่องจาก SOAP Message เป็นเอกสาร XML ทำให้เสียเวลาในการแปลกลับมาเป็นรูปแบบที่โปรแกรมเข้าใจ และ SOAP ทำงานอยู่บน HTTP ซึ่งโดยปกติแล้วโปรโตคอล นี้มีความสามารถในการรับส่งข้อมูลต่ำ จึงทำให้ SOAP มีอัตรา การรับส่งที่ต่ำด้วย 2.1.3.2 Web Services Description Language (WSDL) คือ ภาษาของเอกสารสำหรับ อธิบายคุณลักษณะ และวิธีการติดต่อกับเว็บเซอร์วิส โดยใช้ไวยากรณ์ภาษา XML เอกสาร WSDL สามารถแบ่งได้เป็น 2 ส่วนใหญ่ๆ ได้แก่ ส่วนของการนำไปพัฒนาใช้งาน (Service Implementation Definition) และส่วนของการติดต่อกับเว็บเซอร์วิส (Service Interface Definition) ทั้ง 2 ส่วนนี้มีความสำคัญ สามารถทำให้การเรียกใช้งานเว็บเซอร์วิส ผ่านเครือข่ายอินเตอร์เน็ต และโปรโตคอล SOAP เป็นไปได้อย่างถูกต้อง ดังภาพที่ 2-4 ภาพที่ 2-4 แสดงส่วนประกอบในรูปแบบข้อมูลของบริการ ส่วนของการนำไปใช้งาน (Service Implementation Definition) ประกอบด้วย Service บอกชื่อของบริการ และ Port เกี่ยวกับช่องทางการระบุตำแหน่งปลายทาง ส่วนของการเชื่อมต่อ (Service Interface Definition) ประกอบด้วย PortType แสดงรายการ ฟังก์ชั่นการทำงาน Message ใช้กำหนดรูปแบบของตัวแปรที่รับส่งของฟังก์ชั่น Type ใช้แสดง ชนิดของข้อมูลที่ใช้ในการรับส่ง และ Binding ใช้แสดงเกี่ยวกับโปรโตคอลที่ใช้ รูปแบบของข้อมูล ความปลอดภัย และอื่นๆ ที่เกี่ยวข้องกับการติดต่อกับเว็บเซอร์วิส (Heather, 2544 : 1-16) 2.2 ภาษาที่ใช้ในการพัฒนาโปรแกรม 2.2.1 ภาษา Personal Home Page (PHP) ผู้วิจัยได้เลือกใช้ภาษา PHP เนื่องจากเป็นภาษาที่มีความสามารถทำงานเกี่ยวกับ ไดนามิกเว็บ (Dynamic Web) ได้ทุกรูปแบบ แต่ความสามารถที่พิเศษกว่านี้ก็คือ ภาษา PHP Service Port Service Implementation Definition Binding PortType Message Type Service Interface Definition 9 สามารถที่จะติดต่อกับบริการต่างๆ ผ่านทางโปรโตคอล ภาษา PHP มีประสิทธิภาพ ในการทำงานได้หลากหลายรูปแบบคือ สามารถทำงานได้กับหลายระบบปฏิบัติการ สามารถ ทำงานร่วมกับโปรแกรมเว็บเซิร์ฟเวอร์ได้หลากหลาย ไม่ว่าจะเป็น Personal Web Server (PWS) ซึ่งใช้ระบบปฏิบัติการ Windows 95 กับ Windows 98 หรือ Internet Information Server (IIS) ซึ่งใช้กับระบบปฏิบัติการ Windows NT กับ Windows 2000 หรือจะใช้ร่วมกับ Apache Web Server ในระบบปฏิบัติการ Linux ก็ได้ ตัวสคริปต์ที่เขียนขึ้นมาก็สามารถ นำไปใช้งานข้ามระบบปฏิบัติการได้เลย และยังสามารถติดต่อกับซอคเค็ท (Socket) ได้อีกด้วย นอกจากนี้ยังเป็นโปรแกรมที่แจกจ่ายฟรี ไม่มีปัญหาเรื่องลิขสิทธิ์ ปัจจุบันจึงมีผู้นิยมใช้กันมาก 2.2.2 ภาษา C++ ภาษา C++ เป็นพัฒนาการอีกขั้นหนึ่งของภาษา C โดยมีความสามารถออบเจ็กต์โอเรียนต์ (Object Oriented) ซึ่งจริงๆ แล้วภาษาในปัจจุบันก็มีความสามารถตรงนี้เป็นจำนวนมาก แต่ภาษา C++ มีข้อได้เปรียบจากภาษาอื่นในการพัฒนาโปรแกรม คือ มีความยืดหยุ่น สามารถ เขียนโปรแกรมได้หลากหลาย และมีโปรแกรม Visual C++ เป็นเครื่องมือในการพัฒนา โปรแกรมบนระบบปฏิบัติการวินโดวส์ที่มีความสามารถสูง มี Microsoft Foundation Class (MFC) ซึ่งเป็นไลบราลี่ภาษา C++ ที่ถูกสร้างมา เพื่อการสร้างแอปพลิเคชั่นที่ใช้งานกับ ระบบปฏิบัติการวินโดวส์ได้อย่างง่ายดาย มีประสิทธิภาพ และยังประหยัดเวลาในการเขียนโค้ด ได้มาก 2.3 วงจรการพัฒนาซอฟต์แวร์ (Software Development Life-Cycle) อภิรักษ์, (2544 : 21-22) ได้กล่าวถึงขั้นตอนในการพัฒนาซอฟต์แวร์ คือแบบจำลองน้ำตก (Waterfall Model) ซึ่งได้แบ่งวงจรการพัฒนาซอฟต์แวร์ไว้เป็น 6 ขั้นตอน ไว้ดังนี้ 2.3.1 วิศวกรรมระบบ (System Engineering) เนื่องจากในการพัฒนาซอฟต์แวร์ต้องมี การสอบถามความต้องการของระบบ และแบ่งส่วนให้ซอฟต์แวร์รับผิดชอบ ดังนั้นจึงต้องมีการ ค้นหาความต้องการของระบบก่อน 2.3.2 วิเคราะห์ความต้องการทางซอฟต์แวร์ (Software Requirements Analysis) เมื่อผ่านกระบวนการสอบถามความต้องการของระบบแล้ว จะต้องทำความเข้าใจกลุ่มของข้อมูล หน้าที่ทั้งส่วนของระบบ และซอฟต์แวร์ เพื่อจัดทำเอกสารและแสดงต่อผู้ใช้ 2.3.3 การออกแบบ (Design) จะเป็นการแปลความหมายของความต้องการ ให้อยู่ในรูปของ ซอฟต์แวร์ ซึ่งต้องสามารถควบคุมคุณภาพก่อนการนำโปรแกรมพัฒนาต่อได้ ในขั้นตอนนี้ ก็มีการจัดทำเอกสารด้วยเช่นกัน 2.3.4 การเขียนโปรแกรม (Coding) เป็นการนำผลของการออกแบบมาแปลให้เป็น โปรแกรมที่เครื่องคอมพิวเตอร์สามารถเข้าใจได้ 10 2.3.5 การทดสอบ (Testing) หลังจากมีการเขียนโปรแกรมก็จะเป็นการทดสอบเพื่อ ให้แน่ใจว่าโปรแกรมได้ทำงานตามที่ต้องการหรือไม่ 2.3.6 การบำรุงรักษา (Maintenance) หลังจากที่ผู้ใช้ได้เริ่มนำซอฟต์แวร์ไปใช้ ก็เกิดปัญหา การบำรุงรักษาจะเป็นการนำซอฟต์แวร์กลับมาแก้ไขในแบบจำลองใหม่ โดยไม่จำเป็นต้อง สร้างโปรแกรมใหม่ โครงงานนี้เลือกใช้แบบจำลองนี้ เพราะมีการแบ่งการทำงานเป็นขั้นตอน การดำเนิน กิจกรรมต่างๆ จะกระทำทีละขั้นตอนตามลำดับ และขั้นตอนสามารถย้อนกลับไปทำซ้ำขั้นตอน ก่อนหน้านั้นได้ ถ้าพบข้อบกพร่องที่เกิดจากขั้นตอนก่อนหน้าในภายหลัง 2.4 กระบวนการทดสอบโปรแกรม ปกติองค์ประกอบของระบบขนาดใหญ่ประกอบด้วยระบบย่อยต่างๆ (Sub-system) รวมกัน ระบบย่อยเหล่านี้เกิดจากการนำหน่วยย่อย (Module) ต่างๆ ในระบบมาประกอบกัน อภิรักษ์, (2544 : 211-212) ได้อธิบายไว้ว่า โดยทั่วไปการทดสอบระบบต้องดำเนินการกับทุกๆ หน่วย ที่นำมาประกอบรวมกันเป็นระบบ สามารถแบ่งการทดสอบออกเป็น 5 ขั้นตอน ดังนี้ 2.4.1 ยูนิตเทสติ้ง (Unit Testing) หมายถึง การทดสอบโพรซิเยอร์ (Procedure) หรือฟังก์ ชั่น (Functions) ย่อยต่างๆ เพื่อให้มั่นใจว่าแต่ละส่วนสามารถทำงานได้ โดยปราศจากข้อผิด พลาด โดยทั่วไปแล้วการดำเนินงานของแต่ละส่วนมีความเป็นอิสระในตัวเอง ดังนั้นการทดสอบ ในขั้นนี้จึงไม่คำนึงถึงความสัมพันธ์กับส่วนอื่น 2.4.2 โมดูลเทสติ้ง (Module Testing) ปกติโมดูล หมายถึง การประกอบรวมกันของฟังก์ชั่น หรือโพรซิเยอร์ที่ดำเนินกิจกรรมอย่างสัมพันธ์กัน ขั้นตอนนี้เป็นการทดสอบการประสานกัน ระหว่างฟังก์ชั่นที่นำมาประกอบรวมกัน 2.4.3 ซับซิสเต็มเทสติ้ง (Sub-System Testing) หมายถึง การทดสอบการดำเนินร่วม ระหว่างโมดูลย่อยต่างๆ อาจถูกพัฒนาขึ้นมาอย่างเป็นอิสระกัน ปัญหาโดยทั่วไปของระบบ ขนาดใหญ่คือ การประสานงานระหว่างโมดูลในระบบย่อยไม่มีความสัมพันธ์กัน ดังนั้น กิจกรรมต่างๆ ของขั้นตอนนี้เกี่ยวข้องกับการค้นหาข้อผิดพลาดจากการเชื่อมต่อระหว่างโมดูลย่อย 2.4.4 ซิสเต็มเทสติ้ง (System Testing) เป็นขบวนการที่ดำเนินหลังนำระบบย่อยๆ มารวมกันเป็นระบบใหญ่ วัตถุประสงค์ของขั้นตอนนี้เพื่อค้นหาข้อผิดพลาดต่างๆ ที่เกิดขึ้น จากการรวมกันระหว่างระบบย่อยและองค์ประกอบย่อยต่างๆ และทดสอบว่าโปรแกรมที่พัฒนา ตรงกับฟังก์ชั่นและนันฟังก์ชั่นรีไควเม้นต์ (Non-function Requirement) ที่นิยามในข้อกำหนด หรือไม่ 2.4.5 แอคเซ็บแทนต์เทสติ้ง (Acceptance Testing) บางครั้งเรียกว่า อัลฟ่าเทสติ้ง (Alpha Testing) เป็นการทดสอบลำดับสุดท้ายก่อนนำไปใช้งานจริง ขั้นตอนนี้นิยมนำตัวอย่าง 11 ข้อมูลจริงทดสอบกับโปรแกรม มากกว่าการสังเคราะห์ตัวอย่างข้อมูลขึ้นมา ซึ่งช่วยให้มองเห็น ความผิดพลาด และ/หรือสิ่งที่ยังไม่ได้ดำเนินการในโปรแกรม 2.5 งานวิจัยที่เกี่ยวข้อง จากขั้นตอนการศึกษาและรวบรวมข้อมูล ผู้ทำการวิจัยได้ค้นคว้างานวิจัยที่เกี่ยวข้อง ซึ่งมีรายละเอียดของงานวิจัยเกี่ยวกับการพัฒนาแอปพลิเคชั่นด้วยภาษา PHP และมีการติดต่อ กับเว็บเซอร์วิส ซึ่งมีความคล้ายคลึงกับโครงงานที่ผู้ทำการวิจัยทำขึ้น ได้แก่ การพัฒนาระบบการสื่อสารบนเว็บโดยใช้เทคโนโลยีเว็บเซอร์วิส (Web Communication Development Using Web Services Technology) โดย นายเมธี สุริยะไกร และนางสาว วาสินี จังชัยวีระยานนท์ ภาควิชาวิศวกรรมคอมพิวเตอร์ คณะวิศวกรรมศาสตร์ สถาบันเทคโนโลยี พระจอมเกล้าเจ้าคุณทหารลาดกระบัง โครงงานนี้เป็นโครงงานที่ทำการพัฒนาเว็บภาควิชาวิศวกรรมคอมพิวเตอร์ โดยทำการเพิ่ม บริการพาสพอร์ต บริการแจ้งเตือนข่าวสาร และปรับปรุงบริการเว็บบอร์ด บริการเว็บเมล์ บริการประกาศข่าวให้กับเว็บภาควิชาวิศวกรรมคอมพิวเตอร์ โดยใช้เทคโนโลยีเว็บเซอร์วิส บริการที่แก้ไขและเพิ่มเติมทั้งหมดนั้นใช้ภาษา PHP ในการสร้างบริการ โดยเครื่องมือ ตัวกลางที่ใช้ในการเปลี่ยนแปลงข้อมูลตัวแปรที่ส่งจากบริการที่ใช้ภาษา PHP ไปเป็นภาษา XML เพื่อใช้ติดต่อกับ SOAP คือ NuSOAP Library ส่วนข้อมูลผู้ใช้บริการทั้งหมดนั้นจัดเก็บลงบน MySQL Database จากที่ผู้วิจัยได้ทำการศึกษาและรวบรวมข้อมูลเพื่อพัฒนาโครงงานนี้ ผู้วิจัยได้ดำเนินการ ศึกษาเทคโนโลยีเว็บเซอร์วิส เกี่ยวกับลักษณะการทำงานการเรียกใช้บริการจากเว็บเซอร์วิส ในปัจจุบัน โดยสืบค้นผ่านสื่อต่างๆ เช่น เว็บไซต์ที่ให้ความรู้ และหนังสือต่างๆ ถึงความต้องการ ที่จะให้มีซอฟต์แวร์เพื่อสนับสนุนการเขียนโปรแกรมด้วยภาษา PHP ติดต่อกับเว็บเซอร์วิส ผู้วิจัยได้เลือกภาษา C++ ในการสร้างซอฟต์แวร์ เครื่องมือที่ใช้ในการพัฒนา ได้แก่ Visual C++ 6.0 สำหรับสร้างซอฟต์แวร์บนระบบปฏิบัติการวินโดวส์ โปรแกรม AppServ 2.0.0 ซึ่ง เป็นโปรแกรมที่รวบรวมซอฟต์แวร์หลายๆ อย่างเข้าด้วยกัน ได้แก่ เว็บเซิร์ฟเวอร์อาปาเช่ (Apache) PHP MySQL และ PHPMyAdmin และ NuSOAP 0.6.4 เป็นไฟล์ไลบรารีสำหรับ เป็นเครื่องมือตัวกลางที่ใช้ในการเปลี่ยนแปลงข้อมูลในภาษา PHP เป็นภาษา XML เพื่อใช้ติดต่อ กับ SOAP บทที่ 3 การดำเนินการวิจัย ในการศึกษาวิจัยครั้งนี้ เป็นการพัฒนาโปรแกรม PHP IDE สำหรับติดต่อเว็บเซอร์วิสบทนี้ จึงจะนำเสนอสาระเกี่ยวกับระเบียบวิธีการศึกษา การดำเนินการ และวิธีการวิจัยดังต่อไปนี้ 1. การวิเคราะห์ระบบ 2. การออกแบบระบบ 3. การพัฒนาและการทดสอบระบบ 4. ประชากรและกลุ่มตัวอย่าง 5. เครื่องมือในการวิจัย 6. การให้ค่าคะแนนในแบบประเมิน 7. การเก็บรวบรวมข้อมูล 8. การประมวลและวิเคราะห์ข้อมูล 9. สถิติที่ใช้ในการวิเคราะห์ข้อมูล 3.1 การวิเคราะห์ระบบ โครงงานที่ผู้วิจัยได้พัฒนาเป็นโปรแกรม PHP IDE สำหรับติดต่อกับเว็บเซอร์วิส มีความสามารถอำนวยความสะดวก ให้แก่ผู้ใช้ที่ต้องการเขียนโปรแกรมด้วยภาษา PHP ใน การร้องขอบริการมาใช้ประกอบการเขียนโปรแกรม โปรแกรม PHP IDE สามารถติดต่อกับเว็บ เซอร์วิสได้พร้อมๆ กันหลายบริการ เมื่อสามารถติดต่อกับเว็บเซอร์วิสได้แล้ว โปรแกรม ก็จะ นำข้อมูลที่อธิบายคุณลักษณะของบริการมาประมวลผล เพื่อนำไปช่วยในการสร้างโค้ด ที่ เกี่ยวกับส่วนของการติดต่อกับเว็บเซอร์วิส ทำให้ผู้ใช้ไม่ต้องเขียนโค้ดส่วนนี้ด้วยตนเอง ผู้ ใช้สามารถดูข้อมูลของแต่ละบริการ ได้แก่ ตำแหน่งของเว็บเซอร์วิสหรือ Universal Resource Locator (URL) รายการฟังก์ชั่นการทำงานที่เปิดให้ร้องขอ และตัวแปรที่ต้องส่งไป (Input) และ ตัวแปรที่ได้รับกลับมา (Output) ที่ได้จากการทำงานกับฟังก์ชั่นนั้นๆ และสุดท้ายขณะที่ผู้ใช้ เขียนโปรแกรม ผู้ใช้สามารถเรียกแสดงรายการบริการและฟังก์ชั่นได้ โดยผู้ใช้สามารถที่จะเลือก แล้วนำมาเติมลงในโค้ดได้โดยอัตโนมัติ ส่วนเวลาสำหรับการติดต่อไปยังเว็บเซอร์วิสแต่ละครั้งนั้น จะไม่แน่นอน จะขึ้นอยู่กับความเร็วของการรับส่งข้อมูลบนเครือข่ายอินเตอร์เน็ตในขณะนั้น 3.1.1 การทำงานกับเว็บเซอร์วิสในปัจจุบัน ในปัจจุบันขั้นตอนการเรียกใช้บริการจากเว็บเซอร์วิสมีขั้นตอนอย่างง่ายๆ ดังนี้ 13 1. ค้นหาข้อมูลบริการของเว็บเซอร์วิสผ่าน UDDI จะทำให้ได้ข้อมูลเกี่ยวกับประเภท ของบริการ ที่ตั้ง และเอกสารอธิบายคุณสมบัติของบริการ 2. ผู้ใช้ติดต่อขอใช้บริการ ด้วยการเขียนโปรแกรมขึ้นมาเรียกใช้ฟังก์ชั่นการทำงาน ของเว็บเซอร์วิสนั้นๆ โดยอาศัยข้อมูลที่มีอยู่ในเอกสารคุณสมบัติของบริการ 3. ผู้ให้บริการส่งผลลัพธ์ตอบกลับมา จากขั้นตอนดังกล่าวในปัจจุบัน ผู้ใช้จะต้องอาศัยพื้นฐานความรู้เกี่ยวกับภาษา XML จึงจะสามารถเข้าใจเอกสารข้อมูลที่ได้รับมาจากแหล่งที่ทำการค้นหา หรือจากเว็บเซอร์วิส ดัง นั้นผู้วิจัยจึงได้เอาปัญหาดังกล่าวมาพัฒนาเป็นโปรแกรม PHP IDE สำหรับติดต่อเว็บเซอร์วิส จะสามารถช่วยแก้ปัญหาเหล่านี้ให้แก่นักพัฒนาที่ใช้ภาษา PHP ในการเขียนโปรแกรมได้ 3.1.2 ความสามารถในการทำงานของโปรแกรม PHP IDE สำหรับติดต่อเว็บเซอร์วิส ความสามารถของโปรแกรม PHP IDE สำหรับติดต่อเว็บเซอร์วิสมี ดังนี้ 1. เป็นโปรแกรมที่ใช้ในการเขียนชุดคำสั่ง (Code Editor) ภาษา PHP 2. สามารถติดต่อกับเว็บเซอร์วิสได้ (Web Services Connector) 3. สามารถสร้างโค้ด (Header File) การติดต่อกับเว็บเซอร์วิสให้แก่ผู้ใช้ เพื่อนำไปใช้ประกอบในการ เขียนโปรแกรมของผู้ใช้ได้ 4. ขณะเขียนซอร์สโค้ดผู้ใช้สามารถเรียกแสดงรายการบริการและฟังก์ชั่นการทำงาน เพื่อเลือกแล้ว นำมาเติมลงในโค้ดได้โดยอัตโนมัติ (Code Completion) ลักษณะรายการที่แสดงจะเป็นแบบดร็อปดาวน์ (Drop Down List) 5. สามารถแสดงข้อมูลของแต่ละบริการ ได้แก่ ตำแหน่งของเว็บเซอร์วิส ฟังก์ชั่น ที่ให้บริการ และตัวแปรที่รับส่งกับเว็บเซอร์วิส โดยจะแสดงในรูปแบบของโครงสร้างต้นไม้ (Tree View) เพื่อง่ายแก่การ ทำความเข้าใจของผู้ใช้ จากความสามารถของโปรแกรมดังกล่าว จะสามารถช่วยแก้ปัญหา และอำนวยความสะดวกสำหรับการ เขียนโปรแกรมสำหรับติดต่อกับเว็บเซอร์วิสให้แก่ผู้ใช้งานได้ ดังนี้ 1. ไม่ต้องเสียเวลาในการทำความเข้าใจเอกสารคุณสมบัติของบริการ เพราะโปรแกรม จะนำข้อมูล จากเอกสารมาประมวลผล และนำเสนอในรูปแบบที่ผู้ใช้สามารถเข้าใจได้ทันที นั่นคือการแสดงข้อมูลในรูป ของโครงสร้างต้นไม้ ทำให้ผู้ใช้สามารถทราบได้ว่ามีฟังก์ชั่น การทำงานใดบ้าง และผลลัพธ์ที่ได้จะแสดง ออกมาในรูปแบบใด เป็นต้น 2. สะดวกในการติดต่อกับเว็บเซอร์วิส ปัญหาในปัจจุบันก็คือ ก่อนที่ผู้ใช้จะร้องขอบริการ จะต้อง ตรวจสอบก่อนว่า เว็บเซอร์วิสสามารถให้บริการที่ต้องการได้หรือไม่ จากนั้นจึงสามารถร้องขอบริการจากเว็บ เซอร์วิสที่ต้องการ และในกรณีที่ต้องการติดต่อหลายๆ เว็บเซอร์วิส จะทำให้กลายเป็นเรื่องที่ยุ่งยาก โปรแกรมนี้มีความสามารถทำให้การติดต่อกับเว็บเซอร์วิส เป็นไปได้อย่างง่ายดาย เนื่องจากมีส่วนของ การจัดการรายการเว็บเซอร์วิส ผู้ใช้เพียงระบุตำแหน่งของเว็บเซอร์วิส และสามารถติดต่อได้ครั้งละหลายๆ เว็บ เซอร์วิส จากนั้นโปรแกรมจะแสดง ข้อความแจ้งให้ผู้ใช้ทราบในกรณีที่มีเว็บเซอร์วิสบางแห่งที่ไม่สามารถติด ต่อได้ 14 3. ประหยัดเวลาในการเขียนโค้ดของผู้ใช้ เพราะโปรแกรมนี้ช่วยสร้างโค้ดในส่วนของการติดต่อกับ เว็บเซอร์วิสเป็นภาษา PHP ให้ ซึ่งเป็นส่วนที่มีความยุ่งยาก ทำให้โค้ดที่ผู้ใช้ จะพัฒนาขึ้นสามารถทำการ ติดต่อไปยังเว็บเซอร์วิสได้ทันที 4. สะดวกในการเขียนโค้ดการร้องขอบริการ เนื่องจากปัจจุบันผู้ใช้จะต้องอาศัยการเข้าใจ และจดจำข้อมูลจากเอกสาร WSDL กรณีที่มีการติดต่อกับหลายๆ เว็บเซอร์วิสจะทำให้เกิดความยุ่งยาก และสับสนแก่ผู้ ใช้ได้ โปรแกรมนี้สามารถแสดงรายการบริการ และฟังก์ชั่นของบริการ เพื่อให้ผู้ใช้ทำการเลือกจากรายการที่ แสดงแล้วนำมาเติมลงในโค้ดได้โดยอัตโนมัติ ในการวิเคราะห์โปรแกรม PHP IDE สำหรับติดต่อเว็บเซอร์วิสได้ใช้หลักการของ Unified Modeling Language (UML) ซึ่งจะมีไดอะแกรม (Diagrams) ต่างๆ ที่เกี่ยวข้อง ภาพที่ 3-1 แสดงไดอะแกรมยูสเคสของทั้งระบบ จากภาพที่ 3-1 ผลของการวิเคราะห์สามารถสรุป เพื่อใช้ในการสร้างยูสเคสได้ ดังนี้ 1. ผู้ที่เกี่ยวข้องกับระบบ (Actor) มี 2 ส่วนคือ นักพัฒนา (Developer) และเว็บเซอร์วิส 2. ยูสเคส (Use Case) ที่จำเป็นต้องมีคือ PHPEditor เพราะระบบเน้นให้สามารถ ทำการเขียนโปรแกรมด้วยภาษา PHP เพื่อนำบริการจากเว็บเซอร์วิสมาใช้ในการพัฒนาโปรแกรม 3. การพัฒนาโปรแกรม มีการสร้างการติดต่อกับเว็บเซอร์วิส จึงควรมียูสเคส ConnectServices เพิ่มขึ้น และยูสเคสนี้จะทำหน้าที่ร้องขอบริการจากเว็บเซอร์วิส ดังนั้น เว็บเซอร์วิสจึงเกี่ยวข้องกับยูสเคสนี้ 4. เมื่อมีการติดต่อกับเว็บเซอร์วิสแล้ว โปรแกรมนี้มีการนำข้อมูลที่ได้จากเว็บเซอร์วิส มาประมวลผลให้อยู่ในรูปแบบที่สามารถนำไปใช้งานต่อได้ จึงต้องมียูสเคส XMLParser PHPHeaderScript TreeView Web Services ConnectServices Developer PHPEditor <
สมัครสมาชิก:
ส่งความคิดเห็น (Atom)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น