อ่าน 7 นาที
เทคโนโลยี Push
เทคโนโลยีพุช หรือ ที่รู้จักกันในชื่อ เซิร์ฟเวอร์พุช เป็นวิธีการสื่อสารที่การสื่อสารเริ่มต้นโดย เซิร์ฟเวอร์ แทนที่จะเป็น ไคลเอ็นต์ วิธีนี้แตกต่างจากวิธี " พูล "...
เทคโนโลยี Push
เทคโนโลยีพุช หรือที่รู้จักกันในชื่อเซิร์ฟเวอร์พุชเป็นวิธีการสื่อสารที่การสื่อสารเริ่มต้นโดยเซิร์ฟเวอร์แทนที่จะเป็นไคลเอ็นต์วิธีนี้แตกต่างจากวิธี " พูล " ซึ่งการสื่อสารเริ่มต้นโดยไคลเอ็นต์[ 1 ]
ในเทคโนโลยีแบบพุช (push technology) ลูกค้าสามารถแสดงความต้องการเกี่ยวกับข้อมูลหรือประเภทข้อมูลบางอย่างได้ โดยทั่วไปผ่านกระบวนการที่เรียกว่า โมเดล การเผยแพร่และสมัครรับข้อมูล (publish–subscribe model) ในโมเดลนี้ ลูกค้าจะ "สมัครรับข้อมูล" จากช่องทางข้อมูลเฉพาะที่โฮสต์โดยเซิร์ฟเวอร์ เมื่อมีเนื้อหาใหม่พร้อมใช้งานในช่องทางเหล่านี้ เซิร์ฟเวอร์จะส่งหรือ "พุช" ข้อมูลนี้ไปยังลูกค้าที่สมัครรับข้อมูลโดยอัตโนมัติ
ภายใต้เงื่อนไขบางประการ เช่น นโยบายความปลอดภัยที่เข้มงวดซึ่งปิดกั้น คำขอ HTTP ที่เข้ามา เทคโนโลยีพุชบางครั้งจะถูกจำลองโดยใช้เทคนิคที่เรียกว่าโพลล์ในกรณีเหล่านี้ ไคลเอนต์จะตรวจสอบกับเซิร์ฟเวอร์เป็นระยะเพื่อดูว่ามีข้อมูลใหม่หรือไม่ แทนที่จะรับการอัปเดตอัตโนมัติ
การใช้งานทั่วไป
การประชุมแบบเรียลไทม์และการส่งข้อความโต้ตอบแบบทันทีเป็นตัวอย่างของบริการแบบพุช ข้อความแชทและบางครั้งไฟล์จะถูกส่งไปยังผู้ใช้ทันทีที่ได้รับจากบริการส่งข้อความ ทั้ง โปรแกรม แบบกระจายศูนย์แบบเพียร์ทูเพียร์ (เช่นWASTE ) และโปรแกรมแบบรวมศูนย์ (เช่นIRCหรือXMPP ) อนุญาตให้ส่งไฟล์ได้ ซึ่งหมายความว่าผู้ส่งเป็นผู้เริ่มต้นการถ่ายโอนข้อมูลแทนที่จะเป็นผู้รับ
อีเมลอาจเป็นระบบแบบพุชได้เช่นกัน: SMTPเป็นโปรโตคอลแบบพุช (ดูอีเมลแบบพุช ) อย่างไรก็ตาม ขั้นตอนสุดท้าย—จากเซิร์ฟเวอร์อีเมลไปยังคอมพิวเตอร์เดสก์ท็อป—โดยทั่วไปจะใช้โปรโตคอลแบบพูล เช่นPOP3หรือIMAPไคลเอนต์อีเมลสมัยใหม่ทำให้ขั้นตอนนี้ดูเหมือนเกิดขึ้นทันทีโดยการตรวจสอบเซิร์ฟเวอร์อีเมลซ้ำๆ และตรวจสอบอีเมลใหม่ๆ อย่างสม่ำเสมอ โปรโตคอล IMAP มี คำสั่ง IDLEซึ่งช่วยให้เซิร์ฟเวอร์แจ้งให้ไคลเอนต์ทราบเมื่อมีข้อความใหม่เข้ามาBlackBerry รุ่นแรก เป็นตัวอย่างแรกๆ ที่ได้รับความนิยมของอีเมลแบบพุชในบริบทไร้สาย
อีกตัวอย่างหนึ่งคือPointCast Networkซึ่งเป็นที่รู้จักกันอย่างแพร่หลายในช่วงทศวรรษ 1990 โดยนำเสนอข่าวสารและข้อมูลตลาดหุ้นในรูปแบบสกรีนเซฟเวอร์ ทั้งNetscapeและMicrosoft ต่าง ก็ผสานรวมเทคโนโลยีพุช (push technology) ผ่านChannel Definition Format (CDF) เข้ากับซอฟต์แวร์ของตนในช่วงสงครามเบราว์เซอร์แต่ก็ไม่ได้รับความนิยมมากนัก CDF ค่อยๆ หายไปและถูกลบออกจากเบราว์เซอร์ในยุคนั้น และถูกแทนที่ด้วยRSS (ระบบพูล) ในช่วงทศวรรษ 2000
การใช้งานอื่นๆ ของเว็บแอป พลิเคชันที่รองรับ การแจ้งเตือนแบบพุช ได้แก่ การแจกจ่ายการอัปเดตซอฟต์แวร์ ("การอัปเดตแบบพุช"), การแจกจ่ายข้อมูลตลาด (ตัวแสดงราคาหุ้น), ระบบแชท/ส่งข้อความออนไลน์ ( เว็บแชท ), การประมูล, การพนันและเกมออนไลน์, ผลการแข่งขันกีฬา, คอนโซลตรวจสอบ และการตรวจสอบ เครือข่ายเซ็นเซอร์
ตัวอย่าง
เว็บพุช
ข้อเสนอ Web push ของInternet Engineering Task Forceเป็นโปรโตคอลที่เรียบง่ายโดยใช้HTTP เวอร์ชัน 2เพื่อส่งเหตุการณ์แบบเรียลไทม์ เช่น สายเรียกเข้าหรือข้อความ ซึ่งสามารถส่ง (หรือ "push") ได้ทันท่วงที โปรโตคอลนี้รวบรวม เหตุการณ์ แบบเรียลไทม์ ทั้งหมด ไว้ในเซสชันเดียว ซึ่งช่วยให้ใช้ทรัพยากรเครือข่ายและวิทยุได้อย่างมีประสิทธิภาพมากขึ้น บริการเดียวจะรวบรวมเหตุการณ์ทั้งหมดและกระจายเหตุการณ์เหล่านั้นไปยังแอปพลิเคชันเมื่อมาถึง ซึ่งต้องใช้เพียงเซสชันเดียว หลีกเลี่ยงค่าใช้จ่ายส่วนเกินที่ซ้ำซ้อน[ 2 ]
การแจ้งเตือนบนเว็บเป็นส่วนหนึ่งของ มาตรฐาน W3CและกำหนดAPIสำหรับการแจ้งเตือนผู้ใช้ปลายทาง การแจ้งเตือนช่วยให้สามารถแจ้งเตือนผู้ใช้เกี่ยวกับเหตุการณ์ เช่น การส่งอีเมล นอกบริบทของหน้าเว็บ[ 3 ]ในฐานะส่วนหนึ่งของมาตรฐานนี้ Push API ได้รับการใช้งานอย่างสมบูรณ์ในChrome , FirefoxและEdgeและใช้งานบางส่วนในSafariณ เดือนกุมภาพันธ์ 2023 [ 4 ] [ 5 ]
พุชเซิร์ฟเวอร์ HTTP
การส่งข้อมูลแบบ HTTP server push (หรือที่เรียกว่า HTTP streaming) เป็นกลไกในการส่งข้อมูลแบบไม่ร้องขอ (แบบอะซิงโครนัส) จากเว็บเซิร์ฟเวอร์ไปยังเว็บเบราว์เซอร์ การส่งข้อมูล แบบ HTTP server push สามารถทำได้หลายวิธี
Web Socket API ซึ่งเป็นส่วนหนึ่งของHTML5ช่วยให้เว็บเซิร์ฟเวอร์และไคลเอ็นต์สามารถสื่อสารกันผ่านการเชื่อมต่อ TCP แบบสองทิศทางได้
โดยทั่วไป เว็บเซิร์ฟเวอร์จะไม่ตัดการเชื่อมต่อหลังจากส่งข้อมูลตอบกลับไปยังไคลเอ็นต์แล้ว เว็บเซิร์ฟเวอร์จะเปิดการเชื่อมต่อไว้ เพื่อที่ว่าหากเกิดเหตุการณ์ใด ๆ ขึ้น (เช่น การเปลี่ยนแปลงข้อมูลภายในที่ต้องรายงานไปยังไคลเอ็นต์หนึ่งรายหรือหลายราย) ก็สามารถส่งออกไปได้ทันที มิฉะนั้น เหตุการณ์นั้นจะต้องถูกจัดคิวไว้จนกว่าจะได้รับคำขอถัดไปจากไคลเอ็นต์ เว็บเซิร์ฟเวอร์ส่วนใหญ่มีฟังก์ชันนี้ผ่านCGI (เช่น สคริปต์ Non-Parsed Headers บนApache HTTP Server ) [ 6 ] [ 7 ]กลไกพื้นฐานสำหรับวิธีการนี้คือการเข้ารหัสการถ่ายโอนแบบแบ่งส่วน (chunked transfer encoding )
กลไกอีกอย่างหนึ่งเกี่ยวข้องกับประเภทMIME พิเศษที่เรียกว่า ซึ่ง Netscapemultipart/x-mixed-replaceนำมาใช้ในปี 1995 เว็บเบราว์เซอร์จะตีความสิ่งนี้ว่าเป็นเอกสารที่เปลี่ยนแปลงทุกครั้งที่เซิร์ฟเวอร์ส่งเวอร์ชันใหม่ไปยังไคลเอ็นต์[ 8 ] ปัจจุบัน Firefox , OperaและSafariยังคงรองรับอยู่ แต่ Internet Explorerไม่สนใจ[ 9 ] และ Chromeรองรับเพียงบางส่วนเท่านั้น[ 10 ] สามารถนำไปใช้กับ เอกสาร HTMLและภาพสตรีมมิ่งในแอปพลิ เคชัน เว็บแคมได้
ข้อเสนอ WHATWG Web Applications 1.0 [ 11 ]ประกอบด้วยกลไกในการผลักดันเนื้อหาไปยังไคลเอ็นต์ เมื่อวันที่ 1 กันยายน พ.ศ. 2549 เว็บเบราว์เซอร์ Opera ได้นำระบบทดลองใหม่นี้มาใช้ในฟีเจอร์ที่เรียกว่า " เหตุการณ์ที่ส่งจากเซิร์ฟเวอร์ " [ 12 ] [ 13 ]ปัจจุบันเป็นส่วนหนึ่งของมาตรฐานHTML5 แล้ว [ 14 ]
พุชเล็ต
ในเทคนิคนี้ เซิร์ฟเวอร์ใช้ประโยชน์จากการเชื่อมต่อ HTTP แบบถาวรโดยปล่อยให้การตอบสนอง "เปิด" อยู่ตลอดเวลา (กล่าวคือ เซิร์ฟเวอร์จะไม่ยุติการตอบสนอง) ซึ่งเป็นการหลอกเบราว์เซอร์ให้ยังคงอยู่ในโหมด "กำลังโหลด" หลังจากที่การโหลดหน้าเว็บครั้งแรกถือว่าเสร็จสมบูรณ์แล้ว จากนั้นเซิร์ฟเวอร์จะส่งโค้ดJavaScript เป็นระยะ เพื่ออัปเดตเนื้อหาของหน้าเว็บ ทำให้สามารถส่งข้อมูลแบบพุชได้ ด้วยเทคนิคนี้ ไคลเอนต์ไม่จำเป็นต้องใช้Java appletsหรือปลั๊กอินอื่นๆ เพื่อรักษาการเชื่อมต่อกับเซิร์ฟเวอร์ ไคลเอนต์จะได้รับการแจ้งเตือนโดยอัตโนมัติเกี่ยวกับเหตุการณ์ใหม่ๆ ที่ส่งมาจากเซิร์ฟเวอร์[ 15 ] [ 16 ]อย่างไรก็ตาม ข้อเสียที่สำคัญอย่างหนึ่งของวิธีนี้คือ เซิร์ฟเวอร์ไม่สามารถควบคุมการหมดเวลาของเบราว์เซอร์ได้ จำเป็นต้องรีเฟรชหน้าเว็บเสมอหากเกิดการหมดเวลาที่ฝั่งเบราว์เซอร์
การสำรวจความคิดเห็นระยะยาว
การโพลล์แบบยาวนั้นไม่ใช่การผลักดันที่แท้จริง การโพลล์แบบยาวเป็นรูปแบบหนึ่งของเทคนิคการโพลล์แบบดั้งเดิม แต่ช่วยให้สามารถจำลองกลไกการผลักดันได้ในสถานการณ์ที่ไม่สามารถผลักดันได้จริง เช่น เว็บไซต์ที่มีนโยบายความปลอดภัยที่กำหนดให้ปฏิเสธคำขอ HTTP ที่เข้ามา[ 17 ] [ 18 ]
ด้วยการโพลลิ่งแบบยาว ไคลเอนต์จะร้องขอข้อมูลเพิ่มเติมจากเซิร์ฟเวอร์เช่นเดียวกับการโพลลิ่งแบบปกติ แต่คาดหวังว่าเซิร์ฟเวอร์อาจจะไม่ตอบสนองทันที หากเซิร์ฟเวอร์ไม่มีข้อมูลใหม่สำหรับไคลเอนต์เมื่อได้รับการโพลลิ่ง แทนที่จะส่งการตอบกลับที่ว่างเปล่า เซิร์ฟเวอร์จะเก็บคำขอไว้และรอจนกว่าจะมีข้อมูลการตอบกลับ เมื่อมีข้อมูลใหม่แล้ว เซิร์ฟเวอร์จะส่งการตอบกลับ HTTP ไปยังไคลเอนต์ทันที ทำให้คำขอ HTTP ที่เปิดอยู่เสร็จสมบูรณ์ เมื่อได้รับคำตอบจากเซิร์ฟเวอร์ ไคลเอนต์มักจะส่งคำขอไปยังเซิร์ฟเวอร์อีกครั้งทันที ด้วยวิธีนี้ ความหน่วงในการตอบสนองตามปกติ (เวลาระหว่างที่ข้อมูลพร้อมใช้งานครั้งแรกและคำขอของไคลเอนต์ครั้งถัดไป) ที่เกี่ยวข้องกับการโพลลิ่งของไคลเอนต์จะถูกกำจัดออกไป[ 19 ]
ตัวอย่างเช่นBOSHเป็นเทคนิค HTTP ที่ได้รับความนิยมและใช้งานได้ยาวนาน ซึ่งใช้เป็นทางเลือกแบบ long-polling แทนการเชื่อมต่อ TCP อย่างต่อเนื่องเมื่อการเชื่อมต่อดังกล่าวทำได้ยากหรือเป็นไปไม่ได้ที่จะใช้โดยตรง (เช่น ในเว็บเบราว์เซอร์) [ 20 ]นอกจากนี้ยังเป็นเทคโนโลยีพื้นฐานในXMPPซึ่ง Apple ใช้สำหรับการสนับสนุน iCloud push
รีเลย์ซ็อกเก็ต XML แฟลช
เทคนิคนี้ ซึ่งใช้โดย แอปพลิ เคชันแชทใช้ประโยชน์จาก อ็อบเจ็กต์ XML Socket ในภาพยนตร์ Adobe Flashขนาดพิกเซลเดียวภายใต้การควบคุมของJavaScriptไคลเอนต์จะสร้างการเชื่อมต่อ TCPไปยัง รีเลย์ แบบทิศทางเดียวบนเซิร์ฟเวอร์ เซิร์ฟเวอร์รีเลย์จะไม่อ่านอะไรจากซ็อกเก็ต นี้ แต่จะส่งตัวระบุที่ไม่ซ้ำกัน ไปยังไคลเอนต์ทันที จากนั้น ไคลเอนต์จะทำการร้องขอ HTTPไปยังเว็บเซิร์ฟเวอร์ โดยรวมตัวระบุนี้ไปด้วย แอปพลิเคชันเว็บสามารถส่งข้อความที่ส่งถึงไคลเอนต์ไปยังอินเทอร์เฟซภายในของเซิร์ฟเวอร์รีเลย์ ซึ่งจะส่งต่อข้อความเหล่านั้นผ่านซ็อกเก็ต Flash ข้อดีของวิธีการนี้คือ มันสามารถใช้ประโยชน์จากความไม่สมมาตรของการอ่านและเขียนตามธรรมชาติ ซึ่งเป็นเรื่องปกติของแอปพลิเคชันเว็บหลายๆ แอปพลิเคชัน รวมถึงแชท และด้วยเหตุนี้จึงมีประสิทธิภาพสูง เนื่องจากไม่รับข้อมูลบนซ็อกเก็ตขาออก เซิร์ฟเวอร์รีเลย์จึงไม่จำเป็นต้องตรวจสอบการเชื่อมต่อ TCP ขาออกเลยทำให้สามารถเปิดการเชื่อมต่อพร้อมกันได้หลายหมื่นรายการ ในโมเดลนี้ ข้อจำกัดของขนาดคือสแต็ก TCP ของระบบปฏิบัติการเซิร์ฟเวอร์พื้นฐาน
การส่งข้อมูลกลุ่มที่เชื่อถือได้ (RGDD)
ในบริการต่างๆ เช่นการประมวลผลแบบคลาวด์เพื่อเพิ่มความน่าเชื่อถือและความพร้อมใช้งานของข้อมูล มักจะมีการส่ง (จำลอง) ข้อมูลไปยังเครื่องหลายเครื่อง ตัวอย่างเช่น Hadoop Distributed File System (HDFS) จะสร้างสำเนาเพิ่มเติม 2 ชุดของวัตถุที่จัดเก็บไว้ RGDD มุ่งเน้นไปที่การส่งวัตถุจากที่หนึ่งไปยังหลายที่อย่างมีประสิทธิภาพ ในขณะที่ประหยัดแบนด์วิดท์โดยการส่งสำเนาจำนวนน้อยที่สุด (ดีที่สุดคือเพียงหนึ่งชุด) ของวัตถุผ่านลิงก์ใดๆ ทั่วทั้งเครือข่าย ตัวอย่างเช่น Datacast [ 21 ]เป็นแผนการสำหรับการส่งไปยังโหนดจำนวนมากภายในศูนย์ข้อมูลที่อาศัยโทโพโลยีแบบปกติและมีโครงสร้าง และ DCCast [ 22 ]เป็นแนวทางที่คล้ายกันสำหรับการส่งข้ามศูนย์ข้อมูล
การแจ้งเตือนแบบพุช
A push notification is a message that is "pushed" from a back-end server or application to a user interface, e.g. mobile applications[23] or desktop applications. Apple introduced push notifications for iPhone in 2009,[24] and in 2010 Google released "Google Cloud to Device Messaging" (superseded by Google Cloud Messaging and then by Firebase Cloud Messaging).[25] In November 2015, Microsoft announced that the Windows Notification Service would be expanded to make use of the Universal Windows Platform architecture, allowing for push data to be sent to Windows 10, Windows 10 Mobile, Xbox, and other supported platforms using universal API calls and POST requests.[26]
Push notifications are mainly divided into two approaches, local notifications and remote notifications.[27] For local notifications, the application schedules the notification with the local device's OS. The application sets a timer in the application itself, provided it is able to continuously run in the background. When the event's scheduled time is reached, or the event's programmed condition is met, the message is displayed in the application's user interface.
Remote notifications are handled by a remote server. Under this scenario, the client application needs to be registered on the server with a unique key (e.g., a UUID or Apple Device Token). The server then transmits the message against the unique key to deliver it to the client via an agreed client/server protocol such as HTTP or XMPP. When the push notification arrives at the client, it can cause the display of short notifications or messages, set badges on application icons, blink or continuously light up the notification LED, or play alert sounds to attract user's attention.[28] Push notifications are usually used by applications to bring information to users' attention. The content of the messages can be classified in the following example categories:
- Chat messages from a messaging application such as Facebook Messenger sent by other users.[29]
- Vendor special offers: A vendor may want to advertise their offers to customers.
- Event reminders: Some applications may allow the customer to create a reminder or alert for a specific time.
- การเปลี่ยนแปลงหัวข้อที่ติดตาม: ผู้ใช้อาจต้องการรับข้อมูลอัปเดตเกี่ยวกับสภาพอากาศในพื้นที่ของตน หรือตรวจสอบหน้าเว็บเพื่อติดตามการเปลี่ยนแปลง เป็นต้น
การแจ้งเตือนแบบพุชแบบเรียลไทม์อาจก่อให้เกิดปัญหาความเป็นส่วนตัว เนื่องจากสามารถใช้เพื่อเชื่อมโยงตัวตนเสมือนของนามแฝงในเครือข่ายสังคมกับตัวตนที่แท้จริงของเจ้าของสมาร์ทโฟนได้[ 30 ]การใช้การแจ้งเตือนแบบพุชที่ไม่จำเป็นเพื่อวัตถุประสงค์ในการส่งเสริมการขายถูกวิพากษ์วิจารณ์ว่าเป็นตัวอย่างของ การ ขโมยความสนใจ[ 31 ]
ดูเพิ่มเติม
ลิงก์ภายนอก
- การประชุมเชิงปฏิบัติการ W3C Push การประชุมเชิงปฏิบัติการในปี 1997 ที่ membahas เทคโนโลยี Push และตัวอย่างแรกเริ่มบางส่วน
- การสตรีมข้อมูลผ่าน HTTP ด้วย Ajaxคำอธิบายเกี่ยวกับการสตรีมข้อมูลผ่าน HTTP จากเว็บไซต์ Ajax Patterns
- คำแนะนำสำหรับตัวเลือกWeb Socket API
- ร่างข้อกำหนดHTML5 Server-Sent Events
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ เทคโนโลยี Push
เทคโนโลยีพุช หรือ ที่รู้จักกันในชื่อ เซิร์ฟเวอร์พุช เป็นวิธีการสื่อสารที่การสื่อสารเริ่มต้นโดย เซิร์ฟเวอร์ แทนที่จะเป็น ไคลเอ็นต์ วิธีนี้แตกต่างจากวิธี " พูล "...
การใช้งานทั่วไป
การประชุมแบบเรียลไทม์ และ การส่งข้อความโต้ตอบแบบทันที เป็นตัวอย่างของบริการแบบพุช ข้อความแชทและบางครั้ง ไฟล์ จะถูกส่งไปยังผู้ใช้ทันทีที่ได้รับจากบริการส่งข้อความ ทั้ง โปรแกรม แบบกระจายศูนย์แบบเพียร์ทูเพียร์ (เช่น WASTE ) และโปรแกรมแบบรวมศูนย์ (เช่น IRC หรือ...
เว็บพุช
ข้อเสนอ Web push ของ Internet Engineering Task Force เป็นโปรโตคอลที่เรียบง่ายโดยใช้ HTTP เวอร์ชัน 2 เพื่อส่งเหตุการณ์แบบเรียลไทม์ เช่น สายเรียกเข้าหรือข้อความ ซึ่งสามารถส่ง (หรือ "push") ได้ทันท่วงที โปรโตคอลนี้รวบรวม เหตุการณ์ แบบเรียลไทม์ ทั้งหมด...
พุชเซิร์ฟเวอร์ HTTP
การส่งข้อมูลแบบ HTTP server push (หรือที่เรียกว่า HTTP streaming) เป็นกลไกในการส่งข้อมูลแบบไม่ร้องขอ (แบบอะซิงโครนัส) จาก เว็บเซิร์ฟเวอร์ ไปยัง เว็บเบราว์เซอร์ การส่งข้อมูล แบบ HTTP server push สามารถทำได้หลายวิธี