วันพฤหัสบดีที่ 4 กรกฎาคม พ.ศ. 2556

เทคโนโลยีเว็บ 2 นางสาววัชรา เฉลยสุข 55020302016

 ใบงานที่ 3 ความรู้ทั่วไปเกี่ยวกับ web application
 
1. ความหมายของ web application
ตอบ

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

              Web Application คือ  ส่วนมากคนมักจะคุ้นเคยกับ Desk top Application หรือโปรแกรมคอมพิวเตอร์ที่ติดตั้งบนคอมพิวเตอร็์ส่วนบุคคล เช่น โปรแกรมพวก Microsoft Office เช่นโปรแกรมพิพม์งาน หรือ Word Processor ที่ใช้พิมพ์งาน ซึ่งจะติดตั้งบนเครื่องคอมพิวเตอร์ของคุณ  และใช้ได้ทีละคน
หากคุณทำงานที่บริษัทคุณจะคุ้นเคยกับโปรแกรมที่บริษัทใช้ เช่น ERP หรือ MRP หรือโปรแกรมห้องสมุด โปรแกรมพวกนี้มักจะเป็นโปรแกรมแบบ Client - Server คือโปรแกรมที่ใช้งานโดยคนหลายๆคนพร้อมๆกัน มีการเก็บข้อมูลไว้ที่ฐานข้อมูลกลาง ทำให้ทุกคนใช้ข้อมูลเดียวกัน ร่วมกันได้
โดยโปรแกรมจะถูกแบ่งออกเป็นสองส่วน คือส่วนหนึ่งถูกติดตั้งที่ Server ส่วนกลาง และอีกส่วนติดตั้งที่คอมพิวเตอร์ของผู้ใช้ หรือที่เรียกว่า Client ซึ่งทั้งสองส่วนจะทำงานร่วมกัน โดยโปรแกรมบน Server มักจะทำงานหลักๆ ที่จำเป็นเช่นการคำนวน การค้นหาข้อมูล การเก็บข้อมูล ส่วนโปรแกรมที่คอมพิวเตอร์ของเรา หรือที่เรียกว่า Client นั้นจะทำหน้าที่นำเสนอข้อมูล และรับข้อมูลจากผู้ใช้ หรือที่เรียกว่าเป็น User Interface โปรแกรมแบบนี้ซับซ้อนและดูแลยาก เพราะหากคุณ Upgrade โปรแกรมที่ Server คุณก็ต้อง Upgrade โปรแกรมที่ Client ด้วย ซึ่งเป็นเรื่องที่น่าปวดหัวเนื่องจาก Client มีหลายเครื่อง ยากที่ Upgrade ได้ครบ 
                ในระยะหลังๆนี้คุณคงได้ยินโปรแกรมอีกประเภทที่ได้รับความนิยมมากขึ้น โปรแกรมนั้นก็คือ Web Application เป็นโปรแกรมที่ติดตั้งที่ Server  ซึ่ง Web Application สามารถใช้งานแทนโปรแกรมทั้งแบบ  Desktop และแบบ Client - Server เช่น โปรแกรม Google Application ซึ่งใช้แทน Microsoft Office เช่นมีทั้ง Word Processor และหรือ Spread Sheet ที่ใช้แทน Excel
โดยเฉพาะโปรแกรมแบบ Client-Server หลายตัวก็กำลังแปลงตัวเป็น Web Application เพื่อตอบสนองความต้องการของลูกค้า เช่น SAP, Lotus Notes ฯลฯ 
                    
                 ข้อดีของ Web Application ตรงที่ Web Application ไม่ต้องใช้ Client Program ทำให้ไม่ต้อง Upgrade Client Program และสามารถใช้ผ่าน Internet Connection ที่มีความเร็วต่ำกว่า ทำให้ใช้โปรแกรมได้จากทุกแห่งในโลก
                
                Web Application คือ แอปพลิเคชั่นที่เข้าถึงด้วย Web browser ผ่านเครือข่ายคอมพิวเตอร์อย่างอินเทอร์เน็ต หรือ อินทราเน็ต มี 11 Web Application ดังนี้
1. Bubbl.us เป็นโปรแกรมที่ใช้สำหรับสร้าง Mind map โดยทำงานบน Flash สามารถ Export file ออกมาเป็นไฟล์ภาพก็ได้
2. Buzzword ความสามารถของ Web App. คือ Online word processor นั่งเอง 
3. Empressr เป็น App. ที่ใช้สำหรับสร้างภาพแบบ Sildeshows คือโปรแกรมที่ใช้สำหรับสร้างงาน presentation ใช้แทน powerpoint
4. Highrise เป็นชุดโปรแกรมบริหารจัดการลูกค้าสัมพันธ์ CRM 
5. Jott เป็น Web app. ใช้ในการทำบันทึกให้กับตัวเอง บันทึกเสียง สามารถเรียกใช้เมื่อไหร่ก็ได้
6. Mint ใช้ในการจัดการบริหารเงินด้วยตัวเองโดยผ่านระบบออนไลน์ 
7. Nozbe สำหรับ Project management ทำหน้าที่บริการจัดการ project ต่างๆ 
8. Sandy เป็นผู้ช่วยส่วนตัวในการจัดการเรื่องอีเมล์ด้วยภาษาธรรมชาติ
9. Vitalst ลักณะคล้าย Nozbe Todoist เป็นโปรแกรมที่อยู่ในกลุ่มเดียวกัน (Getting Thing Done=GTD)
10. Scrybe มีการรวมกันระหว่างปฎทินกับระบบแจ้งอีเมล์ สามารถสร้างตารางนัดหมายผ่านระบบออนไลน์และแจ้งทางอีเมล์ด้วย
11. Todoist มีลักษณะการทำงานที่คล้าย Nozbe เน้นไปในการวางแผนใช้ชีวิตประจำวันมากกว่า

Web 2.0 คือการกำหนดสิ่งที่เปลี่ยนแปลงไปของเทคโนโลยีเว็บ ว่ามีอะไรบ้าง คล้าย ๆ กับการกำหนดยุคปัจจุบันของเว็บว่าอยู่ในยุคที่ 2 ของการพัฒนา โดยมีองค์ประกอบที่สำคัญรวม ๆ เข้าด้วยกัน
คุณสมบัติของ Web 2.0 
1. ให้ความสำคัญกับผู้เข้าชมเว็บไซต์
2. คุณสมบัติที่เรียกว่า RIA(Fich Internet Application)คือ Web 2.0 0tมี user interface ที่ดี
3.คุณสมบัติที่เรียกว่า mash-up เป็นส่วนสำคัญอีกส่วนหนึ่งของ Web 2.0 เช่น การสร้าง Web application เกี่ยวกับระบบการซื้อขายสินค้า online
 
เทคโนโลยีที่น่าสนใจ
1. AJAX 2. XML, Web services
3. Saas(Software as service)
            



 
2. ลักษณะการทำงานของ web application
ตอบ  
                    ลักษณะการทำงานของโปรแกรมที่เขียนโดยยึดหลักการเป็น 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 Client ที่ทำหน้าที่เชื่อมต่อกับเว็บเซอร์เวอร์ตามโปรโตคอล HTTP/HTTPS ซึ่งในที่นี้คือเว็บบราวเซอร์  กลไกการทำงานที่สำคัญของเว็บบราวเซอร์ก็คือ Rendering Engine หรือส่วนสร้างภาพเพื่อนำมาแสดงบนหน้าจอ    ข้อมูลที่ไคลเอนต์ได้รับมาเพื่อนำมาแสดงผลในฟอร์แมต DHTML,XHTML  จะถูกนำมาจัดเก็บในโครงสร้างข้อมูลเชิงวัตถุตามมาตรฐาน Document Object Model (DOM)  โดยในการอ่านข้อมูลแสดงเอกสารครั้งแรก  จะเริ่มต้นด้วยการจัดสร้างโครงสร้าง DOM และสร้างภาพหน้าจอ  โดยภายในไฟล์ DHTML/XHTML อาจจะมีส่วนโปรแกรมติดมาด้วยในมาตรฐานของจาวาสคริปต์ (ซึ่งได้รับการรับรองมาตรฐานกลางในชื่อ ECMAScript แต่จาวาสคริปต์และ JScript ที่ใช้อยู่ในปัจจุบันไม่ได้ตรงตามมาตรฐาน ECMAScript ร้อยเปอร์เซนต์)  โค้ดโปรแกรมส่วนที่เป็นจาวาสคริปต์จะถูกส่งให้กับ Script Engine ในตัวเว็บบราวเซอร์ให้ทำงานตามที่เรากำหนด (ซึ่งเราจะกล่าวในรายละเอียดในครั้งถัดๆ ไป)
                เมื่อหน้าจอแรกถูกวาดบนหน้าต่างของบราวเซอร์   โปรแกรมในฝั่งไคลเอนต์(บนบราวเซอร์)จะถูกเรียกใช้งานตามเหตุการณ์ที่ผู้พัฒนาโปรแกรมได้กำหนดไว้  หน้าที่หลักๆ ของโปรแกรมในฝั่งไคลเอนต์มักจะมีดังเช่น
                - เปลี่ยนแปลงหน้าตาการแสดงผลบนส่วนใดส่วนหนึ่งของหน้าต่างของบราวเซอร์   ซึ่งอาจจะส่งผลเป็นการภายในซับเฟรม  หรือข้ามซับเฟรม  แล้วแต่ผู้เขียนโปรแกรมจะกำหนดในโค้ดที่เขียนด้วยจาวาสคริปต์
                - ตอบสนองต่อเหตุการณ์ต่างๆ ที่เกิดขึ้นเมื่อผู้ใช้กระทำสิ่งหนึ่งสิ่งใดต่อองค์ประกอบในตัวเอกสารที่ กำลังแสดงอยู่  เช่นเปลี่ยนแปลงแก้ไขฟอร์ม   คลิก เลื่อนเมาส์ ไปในบริเวณที่กำหนด ฯลฯ  ไปจนถึงตอบสนองต่อเหตุการณ์อื่นๆ เช่น ฐานเวลา เป็นต้น
                - ตรวจสอบการป้อนข้อมูลจากผู้ใช้เบื้องต้น
                - ส่งข้อมูลให้เซอร์เวอร์  และ/หรือ ร้องขอข้อมูลเพิ่มเติมจากฝั่งเซอร์เวอร์
                - เรียกใช้เมธอดที่วางอยู่บนฝั่งเซอร์เวอร์   เพื่อกระทำงานอย่างใดอย่างหนึ่งตามต้องการ แล้วส่งผลกลับมายังไคลเอนต์
                - ร้องขอข้อมูลการแสดงผลในซับเฟรมปัจจุบันหรือซับเฟรมอื่นจากเซอร์เวอร์
                ประมวลผลอื่นใดตามแต่กำหนด
                เราจะเห็นว่า   การทำงานของ Web Application นั้นไม่ได้จบสิ้นอยู่แค่การโหลดหน้าเว็บมาแสดงเท่านั้น  แต่หลังจากหน้าเว็บได้โหลดเสร็จสิ้นแล้ว   ยังมีกลไกการทำงานที่เกิดขึ้นสำหรับหน้าเว็บนั้นๆ  และที่สำคัญ  กลไกการทำงานดังกล่าวยังรวมไปถึงการร้องขอข้อมูลเพิ่มเติม   หรือการเรียกใช้โปรแกรมย่อย หรือเมธอดที่ฝังตัวอยู่บนฝั่งเซอร์เวอร์
ข้อดีของการออกแบบ Web Application ที่เห็นได้ชัดก็คือ   โค้ดโปรแกรมทั้งหมดอยู่ที่ฝั่งเซอร์เวอร์   และมีโค้ดโปรแกรมบางส่วนจะถูกโหลดขึ้นบนไคลเอนต์เมื่อต้องการจะทำงาน   ส่วนโค้ดที่เหลือจะยังคงค้างอยู่ที่ฝั่งเซอร์เวอร์  ทำให้การพัฒนาซอฟต์แวร์ที่ต้องมีการปรับปรุงแก้ไขบ่อย  สามารถกระทำได้โดยง่ายโดยไม่ต้องทำระบบโหลด patch หรืออัปเดตเวอร์ชันใหม่ๆ ให้กับไคลเอนต์จำนวนมากบ่อยๆ   และโปรแกรมบางประเภทที่ต้องใช้ข้อมูลส่วนกลางเป็นจำนวนมากแต่จะไม่ได้ใช้ ทั้งหมดในคราวเดียว   ผู้พัฒนาโปรแกรมสามารถที่จะส่งข้อมูลเบื้องต้นบางส่วนให้กับไคลเอนต์ไปก่อน  และเมื่อผู้ใช้ต้องการข้อมูลส่วนอื่นๆ เพิ่มเติม  จึงค่อยส่งข้อมูลที่เหลือให้   การทำเช่นนี้จะทำให้ไม่ต้องส่งข้อมูลทั้งหมดไปยังผู้ใช้ในคราวเดียว  โดยเฉพาะในกรณีที่ผู้ใช้งานอาจจะไม่ต้องการข้อมูลทั้งหมดนั้น การเลือกส่งเท่าที่ร้องขอจะช่วยลดปริมาณข้อมูลที่ต้องส่งผ่านระบบเครือข่าย ลงได้
                สำหรับข้อเสียของ Web Application ที่ เห็นได้ก็มีดังเช่น   ไม่เหมาะสมสำหรับโปรแกรมที่ออกแบบมาเพื่อใช้งานกับข้อมูลส่วนบุคคลที่ไม่จำ เป็นต้องแบ่งปันให้กับผู้อื่น    รวมถึงข้อมูลที่อาจจะมีความลับสูง (ถ้าต้องส่งผ่านอินเทอร์เน็ต ที่แม้จะเข้ารหัสไว้แล้ว  แต่อาจจะถูกเจาะและถอดรหัสนำข้อมูลออกมาไปใช้ได้)   เป็นต้น
                ในการออกแบบระบบ Web Application ผู้ ออกแบบพัฒนาอาจจะดึงเอาส่วนที่เว็บเซอร์เวอร์  จะต้องติดต่อกับเซอร์เวอร์ประเภทอื่น   เช่นกับดาต้าเบสเซอร์เวอร์   โดยแบ่งส่วนดังกล่าวแยกออกมาตั้งเป็นเซอร์เวอร์ต่างหากที่ทำหน้าที่ติดต่อ โดยเฉพาะ   ดังตัวอย่างเช่น

                จากรูป  เราจะเห็นว่า  ไคลเอนต์มีการเชื่อมต่อกับเว็บเซอร์เวอร์  และมีการส่งข้อมูลควบคุมการแสดงหน้าตาของเว็บรวมทั้งข้อมูลและ/หรือ การเรียกใช้เมธอดจากเว็บเซอร์เวอร์   แต่ข้อมูลที่จัดเก็บไว้ในดาต้าเบสเซอร์เวอร์นั้น เว็บเซอร์เวอร์จะไม่เข้าถึงโดยตรง  โดยเว็บเซอร์เวอร์จะติดต่อร้องขอข้อมูลจากเซอร์เวอร์ที่ให้บริการเว็บ เซอร์วิส   และเว็บเซอร์วิสก็จะติดต่อกับดาต้าเบสเซอร์เวอร์อีกทีหนึ่ง   การออกแบบลักษณะนี้เรียกว่า three-tier  ซึ่งมีข้อดีคือ  หากเว็บเซอร์เวอร์ถูกเจาะ  แฮกเกอร์จะยังไม่ได้รายละเอียดในการล็อกอินเข้าสู่ดาต้าเบสเซอร์เวอร์   และเราสามารถเซ็ตไฟล์วอลล์ให้กับเว็บเซอร์เวอร์ที่ให้บริการเว็บเซอร์วิสรวม ทั้งดาต้าเบสเซอร์เวอร์   และสามารถกำหนดไอพีที่จะติดต่อขอใช้เว็บเซอร์วิส  ทำให้การเจาะระบบเป็นไปได้โดยลำบากมากขึ้น   ส่งผลให้ระบบมีความปลอดภัยสูง  รวมทั้งหากจะต้องการเปลี่ยนแปลงโครงสร้างฐานข้อมูล และกรรมวิธีการ query ฐานข้อมูล ก็สามารถกระทำได้โดยกระทำกับเว็บเซอร์วิสโดยไม่จำเป็นต้องไปกระทำกับ เว็บเซอร์เวอร์ที่ติดต่อกับผู้ใช้  โดยเฉพาะถ้าออกแบบระบบโดยยึดหลักการออกแบบเชิงวัตถุอย่างเคร่งครัด  จะทำให้การแก้ไขโค้ดบนเว็บเซอร์เวอร์ที่ติดต่อกับผู้ใช้น้อยที่สุดเมื่อต้อง มีการเปลี่ยนแปลงวิธีการจัดการกับฐานข้อมูล
                นอกจากนี้  เรายังอาจออกแบบระบบให้มีลักษณะผสมผสานได้  เช่น เราอาจออกแบบให้มีเว็บเซอร์วิสส่วนหนึ่งฝั่งอยู่ที่เว็บเซอร์เวอร์ที่ใช้ ติดต่อกับผู้ใช้  และออกแบบ Web Application ที่กระทำงานอย่างใดอย่างหนึ่งโดยติดต่อกับเว็บเซอร์วิสดังกล่าว  และออกแบบ Appplication ธรรมดาที่อาจจะเขียนด้วย C# C++ Delphi หรือภาษาอื่นใด ที่มีการติดต่อกับเว็บเซอร์วิสตัวเดียวกัน    การออกแบบผสมผสานสองลักษณะนี้ ช่วยสร้างความยืดหยุ่นให้กับการออกแบบระบบซอฟต์แวร์ที่อาจจะต้องมีบริการบางตัวกระทำผ่านเว็บบราวเซอร์  และบริการบางตัวกระทำผ่าน Back Office หรือจากหน้าเคาน์เตอร์บริการของเจ้าหน้าที่    โดยทำให้เราสามารถออกแบบโค้ดให้ใช้ร่วมกันระหว่างเว็บและโปรแกรมที่รันบนเครื่องปกติได้  โดยหากมีการเปลี่ยนแปลงการประมวลผลในส่วนที่เป็นโค้ดที่ใช้ร่วมกัน ก็จะสามารถแก้ไขเพียงจุดเดียว และผลจะเกิดกับโปรแกรมทั้งสองประเภทโดยอัตโนมัติ
การทำงานของ 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  ที่มีส่วนแปลไบต์โค้ดของคลาสที่ได้จากโปรแกรมภาษาจาวา เป็นต้น


3. ความแตกต่างระหว่าง 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 services

  • เป็น platform ในการแลกเปลี่ยนข้อมูลระหว่าง device
  • มี 2 แบบคือ SOAP และ REST แต่ SOAP ทุกวันนี้ไม่ค่อยได้เห็นแล้ว อาจจะมีใช้แต่ภายในองค์กร
  • สื่อสารกันด้วย message เช่น XML/JSON
  • ช่วงยุค Web 2.0 เราจะได้ยินคำว่า Web API ซึ่งมันก็คือ Web services นั่นเอง การแลกเปลี่ยนข้อมูลเดี๋ยวนี้นิยมใช้ JSON มากกว่า XML
  • ไม่จำเป็นต้องมี GUI ติดต่อกับ user เพราะจุดประสงค์ไม่ได้มีไว้ให้ end-user ใช้แต่ให้โปรแกรมหรือแอปฯ อื่นเรียกใช้อีกที
  • ยกตัวอย่างเช่น Twitter API, Facebook API, RSS feed
Web application
  • มันคือโปรแกรมประยุกต์เหมือนเราใช้โปรแกรมบน desktop แต่ย้ายมาอยู่บนเว็บใช้งานผ่าน browser แทน
  • ในแง่การใช้งานคนใช้งานคือ end-user จึงจำเป็นต้องมี GUI
  • ยกตัวอย่างเช่น Google maps, Google docs, โปรแกรมวาด chart Cacoo,  Evernote on web, Youtube, etc.
4. ยกตัวอย่าง web application ที่สนใจ (รายละเอียดของระบบ, จุดเด่น, จุดด้อย, หากจะพัฒนาต่อจะพัฒนาต่ออย่างไร ใช้ภาษาอะไร เครื่องมืออะไร ฯลฯ)
ตอบ
        Facebook คือ  เว็บไซต์ Social Network เว็บหนึ่ง เป็นเว็บไซต์ที่มีผู้ใช้บริการมากที่สุดเป็นอันดับ 1 ของโลก การได้รับความนิยมของ Facebook อาจเนื่องมาจากบน Facebook นั้น ผู้ใช้งานสามารถใช้เพื่อติดต่อสื่อสารหรือร่วมทำกิจกรรมกับผู้ใช้งานท่านอื่นได้เช่น การเขียนข้อความ เล่าเรื่อง ความรู้สึก แสดงความคิดเห็นเรื่องที่สนใจ โพสต์รูปภาพ โพสต์คลิปวิดีโอ แชทพูดคุย เล่นเกมที่สามารถชวนผู้ใช้งานท่านอื่นมาเล่นกับเราได้ รวมไปถึงทำกิจกรรมอื่นๆ ผ่านแอพลิเคชั่นเสริม (Applications) ที่มีอยู่อย่างมากมาย ซึ่งแอพลิเคชั่นดังกล่าวได้ถูกพัฒนาเข้ามาเพิ่มเติมอยู่เรื่อยๆ แอพลิเคชั่นยังแบ่งออกเป็นหลายหมวดหมู่ เช่น เพื่อความบันเทิง เกมปลูกผักยอดนิยม เป็นต้น หรือไม่ว่าจะเป็นเชิงธุรกิจ แอพลิเคชั่นของ Facebook ก็มีให้ใช้งานเช่นเดียวกัน ด้วยเหตุนี้Facebook จึงได้รับความนิยมไปทั่วโลก
    
สำหรับมือใหม่ที่ยังไม่มี Facebook ท่านสามารถทำการสมัครใช้งาน Facebook ได้ดังนี้
1. เข้าสู่เว็บไซต์ www.facebook.com

2. ทำการลงทะเบียนสมัครโดยกรอก ชื่อ-นามสกุล, อีเมล์, พาสเวิร์ด, เพศ,วัน เดือน ปี เกิด ให้ครบถ้วนและกด ลงทะเบียน

3. กรอกรหัสผ่าน ตามรูปภาพที่กำหนดให้ แล้วกดปุ่มลงทะเบียน
4. คลิ๊ก ข้าม

 5. คลิ๊ก ข้ามขั้นตอนนี้ 


6. คลิ๊ก ข้าม


7. คลิ๊ก ข้าม

8. อัพโหลด รูปภาพประจำตัว แล้ว กดบัทึก
9. ข้อความแจ้งว่าให้ไปที่อีเมล์ เพื่อทำการกดลิงค์ ยืนยันเข้าใช้งาน Facebook


10.  หลังจากกดยืนยันในอีเมล์เรียบร้อยแล้ว สามารถเข้าใช้งาน facebook ได้เลย

อ้างอิงจาก  http://www.makewebeasy.com/article/facebook.html

จุดเด่น ของ  FaceBook คือ
     1.FaceBook จะเป็นการสร้างเครือข่ายและจุดประกายด้านการศึกษาได้  อย่างกว้างขวางหากใช้ได้       อย่างถูกวิธี
     2.ทำให้ไม่ตกข่าว คือทราบความคืบหน้า เหตุการณ์ของบุคคลต่างๆและผู้ที่ใกล้ชิด
     3.ผู้ใช้สามารถสร้างเครือข่ายทางสังคม แฟนคลับหรือผู้ที่มีเป้าหมายเหมือนกันและทำงานให้สำเร็จลุล่วงไปได้
     4.สามารถสร้างมิตรแท้ หรือเพื่อนที่รู้ใจที่แท้จริงได้
     5.FaceBook เป็นซอฟแวร์ที่เอื้อต่อผู้ที่มีปัญหาในการปรับตัวทางสังคม ขาดเพื่อน อยู่โดดเดี่ยวหรือผู้ที่ไม่สามารถออกจากบ้านได้ ให้มีเครือข่ายทางสังคม และเติมเต็มชีวิตทางสังคมได้อย่างดีไม่เหงาและปรับตัวได้ง่ายขึ้น
     6.สร้างเครือข่ายที่ดี สร้างความเห็นอกเห็นใจ และให้กำลังใจที่ดีแก่ผู้อื่นได้
จุดด้อย ของ
FaceBook คือ
 
    1.Face Book   เป็น การขยายเครือข่ายทางสังคมในโลกอินเตอร์เน็ตดังนั้นการมีเพิ่มเพื่อนเครือ ข่ายที่ไม่รู้จักดีพอจะทำให้เกิดการลักลอบขโมยข้อมูลหรือการแฝงตัวของขบวน การได้หลอกลวงต่างๆ
     2. เพื่อนทุกคนในเครือข่ายสามารถเขียนข้อความต่างๆลง Wall Face Book ได้ แต่หากเป็นข้อความที่เป็นความลับการใส่ร้ายกันหรือแฝงไว้ด้วยการยั่วยุต่างๆจะทำให้ผู้อ่านที่ไม่มีวุฒิภาวะพอหลงเชื่อเกิดความขัดแย้ง และปัญหาตามมาได้ในภายหลัง 
     3.
Facebook
 อาจเป็นช่องทางในการสร้างสังคมแห่งการนินทาหรือการยุ่งเรื่องส่วนตัวของผู้อื่นโดยใช่เหตุโดยเฉพาะสังคมที่ชอบสอดรู้สอดเห็น
     4. การ เปิดเผยข้อมูลส่วนตัวทั้งหมดให้กับบุคคลภายนอกที่ไม่รู้จักดีพอเช่นการลงรูป ภาพของครอบครัวหรือลูกอาจนำมาเรื่องปัญหาการปลอมตัวหรือการหลอกลวงอื่น ๆ ที่คาดไม่ถึงได้
     5. ใน การสร้างความผูกพันและการปรับตัวทางสังคมเป็นการพบปะกันในโลกของความจริง มากกว่าในโลกอินเตอร์เน็ตดังนั้นผู้อยู่ในโลกของไซเบอร์มากเกินไปอาจทำให้มี ปัญหาทางจิตหรือขาดการปรับตัวทางสังคมที่ดี โดยเฉพาะผู้ที่ชอบเล่น FaceBook ตั้งแต่ยัง เด็ก
    6.Face Book
 อาจ เป็นแรงขับให้มีการพบปะทางสังคมในโลกแห่งความเป็นจริงที่น้อยลงได้เนื่องจาก ทราบความเคลื่อนไหวของผู้ที่อยู่ในเครือข่ายอย่างตลอดเวลา
ส่วนภาษาและเครื่องมือในการพัฒนาFace Book
        
- ความรู้พื้นฐานเกี่ยวการสร้างหน้าเว็บ 
        - ภาษา PHP หรือภาษา Web Programming อื่นๆ ที่เหมาะกับระบบ Web Server ที่ใช้อยู่
        - ระบบฐานข้อมูลเบื้องหลังเว็บ เช่น MySQL
        - ระบบปฏิบัติการเบื้องหลังระบบ Web Server เช่น Unix
        - Facebook API ซึ่งเป็นเสมือนประตูที่จะทำให้โปรแกรมเมอร์เข้าถึงข้อมูลต่างๆ ของ Facebook เช่นรายชื่อเพื่อน รูป ประวัติต่างๆ