วันศุกร์ที่ 3 มกราคม พ.ศ. 2557

เรื่องความรู้เกี่ยวกับ Web Application, Search Engine

ความหมายของ Web Application คือ การพัฒนาระบบงานบนเว็บ ซึ่งมีข้อดีคือ ข้อมูลต่าง ๆ ในระบบมีการไหลเวียนในแบบ Online ทั้งแบบ Local (ภายในวง LAN) และ Global (ออกไปยังเครือข่ายอินเตอร์เน็ต) ทำให้เหมาะสำหรับงานที่ต้องการข้อมูลแบบ Real Time ระบบมีประสิทธิภาพ แต่ใช้งานง่าย เหมือนกับท่านทำกำลังท่องเว็บ ระบบงานที่พัฒนาขึ้นมาจะตรงกับความต้องการกับหน่วยงาน หรือห้างร้านมากที่สุด ไม่เหมือนกับโปรแกรมสำเร็จรูปทั่วไป ที่มักจะจัดทำระบบในแบบกว้าง ๆ ซึ่งมักจะไม่ตรงกับความต้องการที่แท้จริง ระบบสามารถโต้ตอบกับลูกค้า หรือผู้ใช้บริการแบบ Real Time ทำให้เกิดความประทับใจ เครื่องที่ใช้งานไม่จำเป็นต้องติดตั้งโปรแกรมใด ๆ เพิ่มเติมทั้งสิ้น ตัวอย่างระบบงานที่เหมาะกับเว็บ แอพพลิเคชั่น เช่น ระบบการจองสินค้าหรือบริการต่าง ๆ เช่น การจองที่พัก การจองโปรแกรมทัวร์ การจองแผ่น CD-DVD ฯลฯ ระบบงานบุคลากร ระบบงานแผนการตลาด ระบบการสั่งซื้อแบบพิเศษ ระบบงานในโรงเรียน เช่น ระบบงานวัดและประเมินผล ระบบงานปกครอง ระบบงานห้องสมุด ระบบการลงทะเบียน เช็คเกรด ฯลฯ ระบบงานอื่น ๆ ที่ต้องการนำข้อมูลมา Online ค่าใช้จ่ายในการทำเว็บ แอพพลิเคชั่น ปกติจะใช้วิธีการคำนวณจากขอบเขตของระบบงาน และปริมาณของข้อมูลที่ไหลเวียนในระบบ รวมถึงปัจจัยด้านอื่น ๆ ซึ่งทางเว็บ โปรแกรมเมอร์จะคำนวณราคาออกเป็นงาน ๆ ไป ซึ่งส่วนใหญ่จะมีค่าใช้จ่ายต่าง ๆ ต่อไปนี้รวมกัน ค่าจัดทำระบบงาน ค่าชื่อโดเมน และ Web Hosting (ในกรณีจะนำระบบออกทางเครือข่ายอินเตอร์เน็ต) ค่าบริการหลังการขาย ค่า Hardware และอุปกรณ์ด้านเครือข่าย เพิ่มเติม อื่น ๆ
2. ลักษณะการทำงานของ 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 ที่มีส่วนแปลไบต์โค้ดของคลาสที่ได้จากโปรแกรมภาษาจาวา เป็นต้น 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 4. ยกตัวอย่าง web application ที่สนใจ (รายละเอียดของระบบ, จุดเด่น, จุดด้อย, หากจะพัฒนาต่อจะพัฒนาต่ออย่างไร ใช้ภาษาอะไร เครื่องมืออะไร ฯลฯ) Search Engine ความหมาย Search Engine Search Engine คือ เครื่องมือการค้นหาข้อมูลผ่านอินเตอร์เน็ต ที่ทุกคนสามารถหาข้อมูลผ่านอินเตอร์เน็ตก็ได้ โดยกรอกข้อมูลที่ต้องการค้นหา หรือ Keyword (คีย์เวิร์ด) เข้าไปที่ช่อง Search Box แล้วกด Enter ข้อมูลที่เราค้นหาก็จะถูกแสดงออกมาอย่างมากมาย เพื่อให้เราเลือกข้อมูลตรงกับความต้องการของเรามากที่สุด โดยลักษณะการแสดงผลของ Search Engine นั้นจะทำการแสดงผลแบบ เรียงอันดับ Search Results ผ่านหน้าจอคอมพิวเตอร์ 9 สิ่งที่คุณยังไม่รู้เกี่ยวกับ Search engine มีดังนี้ 1. Search Engine ถูกประดิษฐ์ครั้งแรกในปี 1936 โดยนำแนวความคิดของการคิดค้นเรื่อง hypertxt และการจัดเก็บสารสนเทศ โดยในปี 1936 นั้นเองมีการประดิษฐ์เครื่องมือที่ชื่อว่า Memex เอาไว้สำหรับเก็บข้อมูลสารสนเทศ(สำหรับคนที่ไม่รู้จัก Memex จริงๆ ผมเคยเขียนถึงสิ่งประดิษฐ์ชิ้นนี้แล้ว ในเรื่อง ““เมมเมคซ์ (Memex)” คืออะไร“) 2. Search Engine เป็นความมหัศจรรย์ของการสืบค้นข้อความอัตโนมัติ ในปี 1960 มีการประดิษฐ์เครื่องมือเพื่อช่วยในการสืบค้นสารสนเทศ และข้อมูลอัตโนมัติโดยใช้ชื่อว่า “SMART information retrieval system” เพื่อใช้ในวงการห้องสมุด 3. Search Engine ครั้งแรกบนอินเทอร์เน็ต ครั้งแรกบนอินเทอร์เน็ต Search Engine ถูกเรียกว่า “Archie”, โดยทำหน้าที่เป็นการจัดเก็บ Index ของ File FTP 4. Search Engine ครั้งแรกบน www ครั้งแรกบน www ในปี 1993 Search Engine ถูกเรียกว่า “Wandex”, ใช้ในปี 1993 และมีการใช้เครื่องมือในการดึงข้อมูลเว็บไซต์อัตโนมัติ “web crawler” เป็นครั้งแรก โดยเรียกว่า “World Wide Web Wanderer” โดยเขียนใช้ภาษา Perl ในการเขียนโปรแกรม และผู้ที่เขียน คือ Matthew Gray (ปัจจุบันทำงานที่ google) 5. ความซับซ้อนของ Search Engine ในอดีตมีไม่มาก ในปี 1993 ที่มีการใช้เครื่องมือทางด้าน Search Engine ครั้งแรกนั้น ในปีนั้นมีเว็บไซต์ทั่วโลกรวมกันแค่ 623 เว็บไซต์เท่านั้นเอง ดังนั้นระบบจึงไม่ซับซ้อนมากเท่าปัจจุบันซึ่งมีเว็บไซต์มากกว่า 162 ล้านเว็บไซต์ 6. ครั้งแรกของการใช้ Full text Search การกำเนิดของ Full text search เกิดขึ้นในปี 1994 โดยใช้ WebCrawler ในการดึง Index ข้อมูลส่วน หัวเรื่อง และชื่อเรื่องของแต่ละหน้าเว็บไซต์ ปัจจุบัน WebCrawler เปลี่ยนวิธีในการดึงข้อมูลจากชื่อเรื่อง และส่วนหัวมาเป็น Meta tag แทน 7. การกำเนิดต้นแบบของ Google ในปี 1996 Larry Page และ Sergey Brin ทำโครงงานปริญญาร่วมกันโดยคิดค้นเทคโนโลยีเพื่อการดึงข้อมูลเว็บไซต์ ซึ่งเรียกว่า BackRub (เทคโนโลยีที่เป็นจุดกำเนิดของ Google) 8. Yahoo และ Microsoft สายเกินไปสำหรับเกมส์ในครั้งนี้ Yahoo และ Microsoft ไม่เคยมีเทคโนโลยี Search Engine เป็นของตัวเองเลยจนกระทั่งปี 2004 โดยก่อนหน้านี้ Yahoo Search ใช้ข้อมูลจาก AltaVista และ Inktomi รวมถึงใช้ Engine ของ Google ไปพร้อมๆ กัน ส่วนทาง Microsoft หรือ MSN Search (ปัจจุบันเรียกว่า Live Serach) ใช้ข้อมูลเหมือนกับของ yahoo เพียงแต่ไม่ใช้ Engine ของ Google 9. Search Engine ทั้งสามต้องแข่งขันกันต่อไป มีคนบอกว่า Google, Yahoo, Microsoft คือปรากฏการณ์แห่งการสืบค้นที่ยิ่งใหญ่ แต่ในความเป็นจริงแล้วปัจจุบันมีการประดิษฐ์ Search Engine ที่เป็นแบบ local search มากขึ้น จริงอยู่ที่บอกว่าบริษัททั้งสามเป็นสุดยอดของการสืบค้น แต่ในลักษณะของการสืบค้นเฉพาะท้องถิ่น หรือเฉพาะประเทศ ทั้งสามอาจจะไม่ได้ยิ่งใหญ่ในแต่ละประเทศนั้นๆ ก็ได้ เช่น ในประทศจีน ก็จะมี Search Engine ที่ชื่อว่า baidu อีกหนึ่งที่เป็นคู่แข่งได้ ดังนั้นถึงแม้ว่าทั้งสามบริษัทจะใหญ่ขนาดไหนแต่ก็ต้องพัฒนาการสืบค้นเฉพาะท้องถิ่นกันต่อไป Search Engine มี 3 ประเภท ประเภทที่ 1 Crawler Based Search Engines คือ เครื่องมือการค้นหาบนอินเตอร์เน็ตแบบอาศัยการบันทึกข้อมูล และ จัดเก็บข้อมูลเป็นหลัก ซึ่งจะเป็นจำพวก Search Engine ที่ได้รับความนิยมสูงสุด เนื่องจากให้ผลการค้นหาแม่นยำที่สุด และการประมวลผลการค้นหาสามารถทำได้อย่างรวดเร็ว จึงทำให้มีบทบาทในการค้นหาข้อมูลมากที่สุดในปัจจุบัน โดยมีองค์ประกอบหลักเพียง 2 ส่วนด้วยกันคือ 1. ฐานข้อมูล โดยส่วนใหญ่แล้ว Crawler Based Search Engine เหล่านี้จะมีฐานข้อมูลเป็นของตัวเอง ที่มีระบบการประมวลผล และ การจัดอันดับที่เฉพาะ เป็นเอกลักษณ์ของตนเองอย่างมาก 2. ซอฟแวร์ คือ เครื่องมือหลักสำคัญที่สุดอีกส่วนหนึ่งสำหรับ Serch Engine ประเภทนี้ เนื่องจากต้องอาศัยโปรแกรมเล็กๆ ทำหน้าที่ในการตรวจหา และทำการจัดเก็บข้อมูล หน้าเพจ หรือ เว็บไซต์ต่าง ๆ ในรูปแบบของการทำสำเนาข้อมูล เหมือนกับต้นฉบับทุกอย่าง ซึ่งเราจะรู้จักกันในนาม Spider หรือ Web Crawler หรือ Search Engine Robots เช่น http://www.google.com/ ประเภทที่ 2 Web Directory หรือ Blog Directory คือ สารบัญเว็บไซต์ที่ให้สามารถค้นหาข่าวสารข้อมูล ด้วยหมวดหมู่ข่าวสารข้อมูลที่เกี่ยวข้องกัน ในปริมาณมากๆ คล้าย ๆ กับสมุดหน้าเหลือง ซึ่งจะมีการสร้าง ดรรชนี มีการระบุหมวดหมู่อย่างชัดเจน ซึ่งจะช่วยให้การค้นหาข้อมูลต่าง ๆ ตามหมวดหมู่นั้น ๆ ได้รับการเปรียบเทียบอ้างอิง เพื่อหาข้อเท็จจริงได้ในขณะที่เราค้นหาข้อมูล เพราะว่าจะมีเว็บไซต์มากมาย หรือ Blog มากมายที่มีเนื้อหาคล้าย ๆ กันในหมวดหมู่เดียวกัน ให้เราเลือกที่จะหาข้อมูลได้อย่างตรงประเด็นที่สุด (ลดระยะเวลาได้มากในการค้นหา) ตัวอย่างเช่น 1. ODP หรือ Dmoz ที่หลาย ๆ คนรู้จัก ซึ่งเป็น Web Directory ที่ใหญ่ที่สุดในโลก Search Engine หลาย ๆ แห่งก็ใช้ข้อมูลจากที่แห่งนี้เกือบทั้งสิ้น เช่น Google, AOL, Yahoo, Netscape และอื่น ๆ อีกมากมาย ODP มีการบันทึกข้อมูลประมาณ 80 ภาษาทั่วโลก รวมถึงภาษาไทยด้วย (URL : http://www.dmoz.org ) 2. สารบัญเว็บไทย SANOOK ก็เป็น Web Directory ที่มีชื่อเสียงอีกเช่นกัน และเป็นที่รู้จักมากที่สุดในเมืองไทย(URL : http://webindex.sanook.com ) ประเภทที่ 3 Meta Search Engine คือ Search Engine ที่ใช้หลักการในการค้นหาโดยอาศัย Meta Tag ในภาษาHTML ซึ่งมีการประกาศชุดคำสั่งต่าง ๆ เป็นรูปแบบของ Tex Editor ด้วยภาษา HTML นั่นเองเช่น ชื่อผู้พัฒนา คำค้นหา เจ้าของเว็บ หรือ บล็อก คำอธิบายเว็บหรือบล็อกอย่างย่อ ผลการค้นหาของ Meta Search Engine นี้มักไม่แม่นยำอย่างที่คิด เนื่องจากบางครั้งผู้ให้บริการหรือ ผู้ออกแบบเว็บสามารถใส่อะไรเข้าไปก็ได้มากมายเพื่อให้เกิดการค้นหาและพบเว็บ หรือ บล็อกของตนเองและอีกประการหนึ่งก็คือ มีการอาศัย Search Engine Index Server หลาย ๆ แห่งมาประมวลผลรวมกัน จึงทำให้ผลการค้นหาข้อมูลต่าง ๆ ไม่เที่ยงตรงเท่าที่ควร ตัวอย่าง Search Engine ที่นิยมใช้มีทั้งเว็บไซต์ที่เป็นของต่างประเทศ และของไทยเอง ตัวอย่างเว็บไซต์ของต่างประเทศ ได้แก่ http://www.yahoo.com http://www.google.com http://www.infoseek.com http://www.ultraseek.com http://www.lycos.com http://www.excite.com http://www.altavista.digital.com http://www.opentext.com http://www.hotbot.com http://www.webcrawler.com http://www.dejanews.com http://www.elnet.net สำหรับเว็บไซต์ของไทย ได้แก่ http://www.sanook.com http://www.siamguru.com บทสรุป ปัจจุบันเป็นยุคของข้อมูลและข่าวสาร ดังนั้น Search Engine จึงมีประโยชน์มากต่อผู้ที่ใช้อินเตอร์เน็ตเพื่อค้นหาข้อมูลและโดยเฉพาะ อย่างยิ่งผู้ที่ต้องการให้ข้อมูลบนอินเตอร์เน็ต โดยที่ Search Engine ทำหน้าที่เป็นแหล่งที่ให้ข้อมูลที่ได้จากการเก็บและรวบรวมข้อมูลที่มีอยู่ในเว็บไซด์ต่างๆ ซึ่งช่วยประหยัดเวลาในการค้นหา แต่เนื่องจากการที่มีผู้ใช้อินเตอร์เน็ตเพิ่มขึ้นเป็นทวีคูณ ในแต่ละปี จึงทำให้ธุรกิจบนอินเตอร์เน็ตเป็นตลาดการค้าเสรีไร้พรมแดนที่ใหญ่มากและมีการแข่งขันสูง ดังนั้นจึงมีหลายเว็บไซด์ที่พยายามหาทางทำให้เว็บไซด์ของตนติดอันดับต้นๆ เพื่อผลประโยชน์ส่วนตน โดยเจตนาทำ Spam เพื่อให้ข้อมูล ที่ไม่เป็นจริงหรือเกินความจริงกับ Spider ในการจัดทำฐานข้อมูลของ Search Engine อย่างไรก็ตามผู้ใช้อินเตอร์เน็ตไม่ต้องกังวลเรื่อง Spam มากนักเพราะว่า Search Engine หลายแห่งมีความสามารถในการตรวจ Spam ประเภทต่างๆ ได้ จะต่างกันก็ตรงที่ Search Engine แต่ละแห่งอาจจะเข้มงวดกับเรื่องของการ Spam ไม่เท่ากัน โดยที่เทคนิคการ Spam บางอย่างอาจไม่เป็นที่ยอมรับได้ใน Search Engine หนึ่ง แต่อาจจะทำให้เว็บไซต์ยังติดอันดับอยู่ใน Search Engine อีกแห่งหนึ่ง ดังนั้นถ้าคุณ รู้สึกว่าไม่ยุติธรรมกับการที่คู่แข่งใช้เทคนิคพวกนี้ มาเอาเปรียบคุณ สิ่งที่คุณควรทำ ไม่ใช่โกงตามเค้า แต่ให้ email แจ้งไปที่ editor ของ Search Engine ได้เลย เพราะ Search Engine ทุกแห่งพร้อมรับแจ้งปัญหาลักษณะนี้อยู่แล้ว เพียงแต่คุณต้องตรวจดู ให้แน่ชัดว่าเป็นการ Spam จริงๆ (ไม่ใช่มาใส่ร้ายกัน) และควรระบุจุดปัญหาที่เจอไปด้วย เพื่อว่าทาง editor จะได้ดำเนินการได้เร็วขึ้น ที่มา : http://plainsofeternity.blogspot.com/2013/07/3-web-application.html http://chatraksa014.blogspot.com/2011/03/search-engine.html

ไม่มีความคิดเห็น:

แสดงความคิดเห็น