วันพุธที่ 16 มีนาคม พ.ศ. 2559

web application กับ web service ต่างกันอย่างไร


ก่อนอื่น เรามาบอก ความหมายของ Web Application กับ web service  

เว็บไซต์
             เว็บไซต์ (อังกฤษWebsite, Web site หรือ Site) หมายถึง หน้าเว็บเพจหลายหน้า ซึ่งเชื่อมโยงกันผ่านทางไฮเปอร์ลิงก์ ส่วนใหญ่จัดทำขึ้นเพื่อนำเสนอข้อมูลผ่านคอมพิวเตอร์ โดยถูกจัดเก็บไว้ในเวิลด์ไวด์เว็บ หน้าแรกของเว็บไซต์ที่เก็บไว้ที่ชื่อหลักจะเรียกว่า โฮมเพจเว็บไซต์โดยทั่วไปจะให้บริการต่อผู้ใช้ฟรี แต่ในขณะเดียวกันบางเว็บไซต์จำเป็นต้องมีการสมัครสมาชิกและเสียค่าบริการเพื่อที่จะดูข้อมูล ในเว็บไซต์นั้น ซึ่งได้แก่ข้อมูลทางวิชาการ ข้อมูลตลาดหลักทรัพย์ หรือข้อมูลสื่อต่างๆ ผู้ทำเว็บไซต์มีหลากหลายระดับ ตั้งแต่สร้างเว็บไซต์ส่วนตัว จนถึงระดับเว็บไซต์สำหรับธุรกิจหรือองค์กรต่างๆ การเรียกดูเว็บไซต์โดยทั่วไปนิยมเรียกดูผ่านซอฟต์แวร์ในลักษณะของ เว็บเบราว์เซอร์

ความหมายของ Web Application

   Web Application คือ การพัฒนาระบบงานบนเว็บ ซึ่งมีข้อดีคือ ข้อมูลต่าง ๆ ในระบบมีการไหลเวียนในแบบ Online ทั้งแบบ Local (ภายในวงLAN) และ Global (ออกไปยังเครือข่ายอินเตอร์เน็ต) ทำให้เหมาะสำหรับงานที่ต้องการข้อมูลแบบ Real Time ระบบมีประสิทธิภาพ แต่ใช้งานง่าย เหมือนกับท่านทำกำลังท่องเว็บ ระบบงานที่พัฒนาขึ้นมาจะตรงกับความต้องการกับหน่วยงาน หรือห้างร้านมากที่สุด ไม่เหมือนกับโปรแกรมสำเร็จรูปทั่วไป ที่มักจะจัดทำระบบในแบบกว้าง ๆ ซึ่งมักจะไม่ตรงกับความต้องการที่แท้จริง ระบบสามารถโต้ตอบกับลูกค้า หรือผู้ใช้บริการแบบ Real Time ทำให้เกิดความประทับใจ เครื่องที่ใช้งานไม่จำเป็นต้องติดตั้งโปรแกรมใด ๆ เพิ่มเติมทั้งสิ้น

ตัวอย่างระบบงานที่เหมาะกับเว็บ แอพพลิเคชั่น เช่น ระบบการจองสินค้าหรือบริการต่าง ๆ เช่น การจองที่พัก การจองโปรแกรมทัวร์ การจองแผ่น CD-DVD ฯลฯ ระบบงานบุคลากร ระบบงานแผนการตลาด ระบบการสั่งซื้อแบบพิเศษ ระบบงานในโรงเรียน เช่น ระบบงานวัดและประเมินผล ระบบงานปกครอง ระบบงานห้องสมุด ระบบการลงทะเบียน เช็คเกรด ฯลฯ ระบบงานอื่น ๆ ที่ต้องการนำข้อมูลมา Online


ค่าใช้จ่ายในการทำเว็บ แอพพลิเคชั่น ปกติจะใช้วิธีการคำนวณจากขอบเขตของระบบงาน และปริมาณของข้อมูลที่ไหลเวียนในระบบ รวมถึงปัจจัยด้านอื่น ๆ ซึ่งทางเว็บ โปรแกรมเมอร์จะคำนวณราคาออกเป็นงาน ๆ ไป ซึ่งส่วนใหญ่จะมีค่าใช้จ่ายต่าง ๆ ต่อไปนี้รวมกัน ค่าจัดทำระบบงาน ค่าชื่อโดเมน และ Web Hosting (ในกรณีจะนำระบบออกทางเครือข่ายอินเตอร์เน็ต) ค่าบริการหลังการขาย ค่าHardware และอุปกรณ์ด้านเครือข่าย เพิ่มเติม อื่น ๆ


ลักษณะการทำงานของ Web Application

            การทำงานของ Web Application นั้นโปรแกรมส่วนหนึ่งจะวางตัวอยู่บน Rendering Engine  ซึ่งตัว Rendering Engine จะทำหน้าที่หลักๆ คือนำเอาชุดคำสั่งหรือรูปแบบโครงสร้างข้อมูลที่ใช้ในการแสดงผล  นำมาแสดงผลบนพื้นที่ส่วนหนึ่งในจอภาพ โปรแกรมส่วนที่วางตัวอยู่บน Rendering Engine จะทำหน้าที่หลักๆ คือการเปลี่ยนแปลงแก้ไขสิ่งที่แสดงผล   จัดการตรวจสอบข้อมูลที่รับเข้ามาเบื้องต้นและการประมวลบางส่วนแต่ส่วนการทำงานหลักๆ จะวางตัวอยู่บนเซอร์เวอร์  ในลักษณะ Web Application แบบเบื้องต้น

            ฝั่งเซิร์ฟเวอร์จะประกอบไปด้วยเว็บเซิร์ฟเวอร์ซึ่งทำหน้าที่เชื่อมต่อกับไคลเอนต์ตามโปรโตคอล HTTP/HTTPS โดยนอกจากเว็บเซิร์ฟเวอร์จะทำหน้าที่ส่งไฟล์ที่เกี่ยวเนื่องกับการแสดงผลตามมาตรฐาน HTTP ตามปกติทั่วไปแล้ว   เว็บเซิร์ฟเวอร์จะมีส่วนประมวลผลซึ่งอาจจะเป็นตัวแปลภาษา เช่น Script Engine ของภาษา PHP  หรืออาจจะมีการติดตั้ง .NET Framework ซึ่งมีส่วนแปลภาษา CLR (Common Language Runtime) ที่ใช้แปลภาษา intermediate จากโค้ดที่เขียนด้วย VB.NET หรือ C#.NET  หรืออาจจะเป็น J2EE  ที่มีส่วนแปลไบต์โค้ดของคลาสที่ได้จากโปรแกรมภาษาจาวา เป็นต้น

ความหมายของ web service

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

พื้นฐานของ 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 (หรือเว็บ) ได้ ท่านก็ใช้บริการทุกอย่างได้


ความแตกต่างระหว่าง Web Application กับ Web Services

          ต่างกัน อันเนื่องจากจุดกำเนิด และ จุดประสงค์ของทั้งสองอย่างนั้น  Web Services นั้นเกิดมาจากการที่ Web Application ถูกพัฒนาได้จากหลาย ภาษา เช่น asp jsp php perl .... ทำให้การที่จะนำมารวมเพื่อร่วมทำงานด้วยกันนั้นเป็นเรื่องที่ยากลำบาก (เหมือนคุยกันคนละภาษา) Web Services จึงเหมือนกับภาษาสากล ที่ทำให้แต่ละ Web Application ทำงานร่วมกันได้ โดยผ่าน SOAP ที่มี รูปแบบเป็น XML ซึ่งเป็นเหมือนภาษาอังกฤษ เครื่องมือที่ใช้ในการสร้าง Web Services นั้น มีหลายตัว อาทิ เช่น AXIS วิธีทำนั้นก้อไม่ยาก ยิ่งถ้าใช้ IDE จะง่ายมากแค่ คลิ้กๆ ไม่กี่ทีก้อเสร็จแล้ว ความท้าทายไม่ได้อยู่ที่การสร้าง แต่กลับอยู่ที่การนำไปใช้มากกว่า

             จากประสบการณ์ ณ ขณะนี้ ที่ใช้อยู่ พบปัญหาอยู่บ้าง เนื่องจากว่า SOAP นั้น จะวิ่งอยู่บน HTTP .... ทำให้ต้องเสียoverhead ในการ encode และ decode ข้อมูล (ถึงแม้ จะไม่กี่ millisecond ก้อตาม แต่เมื่อรวมกันเยอะๆ ก้อเป็น วินาที เหมือนกัน) ยิ่งถ้า บน HTTPS ละก้อไม่ต้องพูดถึงเลย จึงอยากจะบอกไว้ว่า ถ้าต้องการพัฒนา application ที่ต้องการความเร็วแล้ว ขอให้คิดมากๆ ก่อนที่จะใช้ Web Services

 ยกตัวอย่าง web application ที่สนใจ (รายละเอียดของระบบจุดเด่นจุดด้อยหากจะพัฒนาต่อจะพัฒนาต่ออย่างไร ใช้ภาษาอะไร เครื่องมืออะไร ฯลฯ)


Google Documents

         Web Application ฟรีของ Google ที่สามารถสร้างเอกสาร Word processor ตารางการคำนวณ งานนำเสนอ ได้ฟรีโดยที่เราไม่ต้องลงโปรแกรมอะไรในเครื่องเลยขอให้มี web browser ก็พอ
เพียงแค่ใช้ Browser เข้าไปที่ http://docs.google.com ตามหลักแล้วผู้ต้องการใช้งานโปรแกรมจะต้องมีบัญชี email ของ gmail ก่อนเพื่อระบุว่าใครเป็นเจ้าของเอกสาร (รวมถึงการเข้าใช้งานบริการอื่นๆของ Google ) อันนี้ไม่ขอยืนยันนะครับ เนื่องจาก browser ที่ผมใช้นั้นมัน login เข้าบัญชี gmail ตลอดเวลาอยู่แล้ว

เอกสารที่สร้างขึ้นจะถูกจัดเก็บบนพื้นที่ Google Drive (อีกหนึ่งบริการจาก Google ) เป็นหลัก  เอกสารนี้สามารถใช้ร่วมกับคนอื่นๆได้ เราสามารถที่จะ download เอกสารที่สร้างขึ้นกลับมาไว้ที่เครื่องเราได้เหมือนกัน ในรูปแบบไฟล์หลายๆรูปแบบ (ในกรณีที่ไม่ต้องการให้บุคคลอื่นเห็นไฟล์งาน สามารถตั้งค่าผ่าน Google Drive ได้เช่นกัน)

โปรแกรม Word processing สามารถ ใช้รูปแบบตัวอักษร แทรกภาพ แทรกตารางได้สบายๆ
การใช้งานก็คล้ายๆกับ การใช้งานโปรแกรม OpenOffice หรือ MSOffice นั่นเอง แต่แน่นอนว่าความสามารถน้อยกว่า

-จุดเด่น ของระบบคือการทำงานเอกสารได้โดยไม่จำเป็นต้องมีโปรแกรมลงอยู่บนเครื่อง นั้นหมายความว่าหากลืมเอา Notebook ส่วนตัวมา เพียงแค่หาร้านอินเตอร์เน็ตคาเฟ่ และใช้ gmail log in  เข้าใช้บริการ Web Application อย่างการสร้างเอกด่วน หรือดาว์นโหลดเอกสารได้ทันที

-ข้อเสีย สำหรับบริการนี้คือ คุณจำเป็นต้องมี gmail และยิ่งการ log in เข้าใช้บริการของ google  นั้น หลายต่อหลายครั้งคนมักจะลืมSign Out  ดังนั้นหากมีบุคคลอื่นเข้ามาใช้งานเครื่องคอมของคุณ เค้าจึงเข้าถึงทุกไฟล์เอกสาร รวมไปถึงทุกบริการของ Google ได้ด้วย ( Google ใช้ account เดียวก็สามารถเข้าถึงได้ทุกบริการของ Google )

-การต่อยอด บริการ Google Documents เนื่องจากที่กล่าวไว้ด้านบนคือ ความสามารถในการจัดการเอกสารยังน้อยเมือเทียบกับMSOffice ดังนั้นการต่อยอดอาจจะเป็นการเพิ่ม feature ใหม่ๆให้กับ Google Documents (แน่นอนว่าต้องจ่ายเพิ่ม) เพื่ออัพเกรดเป็นGoogle Documents Pro สำหรับกลุ่มเป้าหมายที่ต้องการใช้ Google Documents ที่มีประสิทธิภาพเทียบเท่า MSOffice 

- ใช้ภาษา php+javascript  ในการปรับปรุงรูปแบบ Google Documents Pro ให้มีความสามารถเทียบเท่าหรือมากกว่า MSOffice 

อ้างอิง :http://plainsofeternity.blogspot.com/2013/07/3-web-application.html