อ่าน 5 นาที
โปรแกรมแก้ไขแบบเรียลไทม์ที่ทำงานร่วมกันได้
โปรแกรมแก้ไขแบบเรียลไทม์ที่ทำงานร่วมกันได้ คือ ซอฟต์แวร์หรือแอปพลิเคชันบนเว็บประเภทหนึ่งที่ช่วยให้สามารถแก้ไขเอกสารดิจิทัลไฟล์คอมพิวเตอร์หรือข้อมูลที่จัดเก็บในระบบคลาวด์เดียวกันเช่...
โปรแกรมแก้ไขแบบเรียลไทม์ที่ทำงานร่วมกันได้
โปรแกรมแก้ไขแบบเรียลไทม์ที่ทำงานร่วมกันได้ คือ ซอฟต์แวร์หรือแอปพลิเคชันบนเว็บประเภทหนึ่งที่ช่วยให้สามารถแก้ไขเอกสารดิจิทัลไฟล์คอมพิวเตอร์หรือข้อมูลที่จัดเก็บในระบบคลาวด์เดียวกันเช่นสเปรดชีตออนไลน์เอกสารประมวลผลคำฐานข้อมูลหรืองานนำเสนอ ได้พร้อม กันแบบ เรียลไทม์ โดยผู้ใช้หลายคนบนคอมพิวเตอร์หรือ อุปกรณ์เคลื่อนที่ที่แตกต่างกันพร้อมกับการรวมการแก้ไขโดยอัตโนมัติและเกือบจะในทันที
การแก้ไขแบบเรียลไทม์จะทำการซิงโครไนซ์การแก้ไขของผู้ใช้ทุกคนที่ออนไลน์อยู่โดยอัตโนมัติ เป็นระยะๆ และมักจะเกิดขึ้นเกือบจะในทันที ขณะที่พวกเขากำลังแก้ไขเอกสารบนอุปกรณ์ของตนเอง วิธีนี้ออกแบบมาเพื่อหลีกเลี่ยงหรือลดความขัดแย้งในการแก้ไข ให้ เหลือ น้อยที่สุด
ในการแก้ไขร่วมกัน แบบอะซิงโครนัส (เช่น ไม่ใช่แบบเรียลไทม์ มีความล่าช้า หรือแบบออฟไลน์) โดยทั่วไปแล้วผู้ใช้แต่ละคนจะต้องส่ง (เผยแพร่ พุช หรือคอมมิต) อัปเดต (รีเฟรช ดึง ดาวน์โหลด หรือซิงค์) และ (หากมีข้อขัดแย้งในการแก้ไข) รวมการแก้ไขของตนเองด้วยตนเอง เนื่องจากลักษณะที่มีความล่าช้าของการแก้ไขร่วมกันแบบอะซิงโครนัส ผู้ใช้หลายคนอาจแก้ไขบรรทัด คำ องค์ประกอบข้อมูล แถว หรือฟิลด์เดียวกันส่งผลให้เกิดข้อขัดแย้งในการแก้ไขซึ่งต้องมีการรวมหรือเขียนทับการแก้ไขด้วยตนเอง ทำให้ผู้ใช้ต้องเลือกการแก้ไขที่จะใช้ หรือ (ขึ้นอยู่กับระบบและการตั้งค่า) อาจเขียนทับการแก้ไขของตนเองหรือการแก้ไขของผู้อื่นโดยอัตโนมัติ โดยมีหรือไม่มีการแจ้งเตือน
ประวัติความเป็นมาของผลิตภัณฑ์หลัก
ตัวอย่างแรกของโปรแกรมแก้ไขข้อความแบบเรียลไทม์ที่ทำงานร่วมกันได้นั้น ถูกสาธิตโดยDouglas Engelbartในปี 1968 ในผลงานชื่อThe Mother of All Demosแต่กว่าจะมีการใช้งานอย่างแพร่หลายในรูปแบบต่างๆ ก็ต้องใช้เวลาหลายสิบปี
ซอฟต์แวร์ชื่อInstant Updateได้รับการเผยแพร่สำหรับMac OS รุ่นคลาสสิกในปี 1991 โดยON Technology [ 1 ] ซอฟต์แวร์ นี้อนุญาตให้ผู้ใช้หลายคนแก้ไขเอกสารเดียวแบบเรียลไทม์ผ่านLANและอาศัยเซิร์ฟเวอร์ เวิ ร์ กกรุ๊ป
โปรแกรมสเปรดชีตแบบร่วมมือกันQuickoffice Conference ได้รับการสาธิตที่งาน COMDEX 2001 ซึ่งพัฒนาโดย Jeff Musa จาก Cutting Edge Software ซอฟต์แวร์นี้ได้รับการออกแบบมาเพื่อให้สามารถประชุมและทำงานร่วมกันแบบบุคคลต่อบุคคลและบุคคลต่อหลายบุคคลได้ และทำงานบนแพลตฟอร์มมือถือ Palm OS [ 2 ]
ความสนใจในการแก้ไขเอกสารร่วมกันแบบเรียลไทม์ผ่านทางอินเทอร์เน็ต นำไปสู่การพัฒนาMoonEditและSubEthaEditในช่วงปี 2003-2005 และตามมาด้วยGobby ในเวลาต่อ มา
ด้วยการนำ เทคโนโลยี Ajaxและฟังก์ชัน "แก้ไขเนื้อหาได้" มาใช้ในเบราว์เซอร์ การแก้ไขร่วมกันบนเว็บแบบเรียลไทม์จึงพัฒนาขึ้นเป็นส่วนหนึ่งของ ปรากฏการณ์ Web 2.0ในช่วงประมาณปี 2548 โดยเฉพาะอย่างยิ่ง ผลิตภัณฑ์ที่ชื่อ Writely มีการเติบโตของผู้ใช้อย่างรวดเร็วและถูก Google ซื้อไปในเดือนมีนาคม 2549 (ซึ่งต่อมากลายเป็นที่รู้จักในชื่อGoogle Docsและเปลี่ยนชื่อเป็นGoogle Drive ในภายหลัง ) ผลิตภัณฑ์นี้ช่วยให้สามารถแก้ไขเอกสารทั้งหมดพร้อมกันได้ แม้ว่าการเปลี่ยนแปลงจากผู้ใช้รายอื่นจะแสดงผลหลังจากที่โปรแกรมไคลเอ็นต์ตรวจสอบเซิร์ฟเวอร์แล้วเท่านั้น (ทุกครึ่งนาทีหรือประมาณนั้น) อีกหนึ่งโซลูชันบนเว็บในช่วงแรกคือ JotSpotLive ซึ่งสามารถแก้ไขแบบบรรทัดต่อบรรทัดพร้อมกันได้ในเวลาเกือบเรียลไทม์[ 3 ]อย่างไรก็ตาม หลังจากที่ Google ซื้อบริษัทแม่ JotSpot ในเดือนพฤศจิกายน 2549 เว็บไซต์ดังกล่าวก็ถูกปิดลงGoogle Sitesเปิดตัวในเดือนกุมภาพันธ์ พ.ศ. 2550 โดยเป็นการปรับปรุง JotSpot ใหม่ [ 4 ] [ 5 ] [ 6 ] [ 7 ]แต่ขาดความสามารถในการใช้งานแบบเรียลไทม์หลายผู้ใช้เหมือน JotLive โครงการ Synchroedit (ข้อความแบบ Rich Text) และ MobWrite (ข้อความธรรมดา) เป็นความพยายามแบบโอเพนซอร์สที่เกิดขึ้นเมื่อไม่นานมานี้เพื่อเติมเต็มช่องว่างในการแก้ไขร่วมกันแบบเรียลไทม์บนเบราว์เซอร์ แม้ว่าจะยังไม่สามารถบรรลุประสิทธิภาพแบบเรียลไทม์อย่างแท้จริง โดยเฉพาะอย่างยิ่งบนสถาปัตยกรรมขนาดใหญ่
ในปี 2009 Google เริ่มทดสอบเบต้าGoogle Waveซึ่งเป็นสภาพแวดล้อมการทำงานร่วมกันแบบเรียลไทม์ที่ Google หวังว่าจะเข้ามาแทนที่อีเมลและการส่งข้อความโต้ตอบแบบทันทีในที่สุด Google ได้เข้าซื้อ EtherPadและมอบหมายให้ทีม EtherPad ทำงานภายในโครงการ Wave อย่างไรก็ตาม Google ประกาศในเดือนสิงหาคม 2010 บนบล็อกของตน[ 8 ]ว่าได้ตัดสินใจหยุดพัฒนา Wave ในฐานะโครงการอิสระ เนื่องจากมีผู้ใช้งานไม่เพียงพอ หลังจากที่ Google ปล่อยซอร์สโค้ด EtherPad ที่ถูกทิ้งร้างให้เป็นโอเพนซอร์สในเดือนธันวาคม 2009 ชุมชนก็เข้ามารับช่วงการพัฒนาต่อและสร้างเวอร์ชันที่เขียนใหม่ทั้งหมดชื่อEtherpad liteซึ่งเขียนด้วยJavaScript ทั้งหมด และสร้างขึ้นบนNode.jsเครื่องมือที่น่าสนใจอีกอย่างหนึ่งที่ใช้เทคโนโลยีการแปลงการดำเนินงาน คือ CKEditor [ 9 ]ในปี 2020 ความสนใจในแนวคิดนี้เพิ่มขึ้นอย่างมาก เนื่องจาก Microsoft เพิ่งเปิดตัวFluid Frameworkซึ่งอาศัยเทคโนโลยี Total Order Broadcast ที่แปลกใหม่ ซึ่งแตกต่างจาก OT หรือ CRDT [ 10 ]ปัจจุบัน Fluid ไม่ขึ้นกับเฟรมเวิร์กใดๆ ไมโครซอฟต์ระบุว่ายังไม่พร้อมสำหรับการใช้งานจริง[ 11 ]
ในเดือนมิถุนายน พ.ศ. 2559 Collabora Productivity ได้เปิดตัวCollabora Online เวอร์ชัน 1.0 ซึ่ง เป็นชุดโปรแกรมสำนักงานออนไลน์แบบโอเพนซอร์สที่ใช้ เทคโนโลยี LibreOfficeโดยสามารถผสานรวมเข้ากับเว็บไซต์ใดก็ได้ด้วยโค้ดเพียงไม่กี่บรรทัด มี ชุดพัฒนาซอฟต์แวร์พร้อมโค้ดตัวอย่างสำหรับการผสานรวมในหลายภาษา ได้แก่Node.js , PHP , Python , ReactJSและ.NETซึ่งมี ข้อกำหนด APIที่อนุญาตให้ผสานรวมที่ทำงานร่วมกันได้พร้อมอินเทอร์เฟซผู้ใช้ที่ปรับแต่งได้[ 12 ] [ 13 ] [ 14 ]ด้วย Collabora Online เอกสารจะยังคงอยู่บนเซิร์ฟเวอร์ และผู้ใช้แต่ละคนจะแชร์เอกสารเดียวกันพร้อมกัน ทำให้สามารถแก้ไขเอกสารแบบโต้ตอบได้เพียงเอกสารเดียวโดยไม่มีความล่าช้าเพิ่มเติมในการดูการพิมพ์ของผู้ใช้อื่น หลีกเลี่ยงความจำเป็นในการล็อกย่อหน้าในเอกสารข้อความ ช่วยให้สามารถแก้ไขเอกสารประมวลผลคำ สเปรดชีต งานนำเสนอ ภาพวาด และกราฟิกเวกเตอร์แบบเรียลไทม์ร่วมกันได้
ตัวอย่างอื่นๆ
การแก้ไขร่วมกันแบบเรียลไทม์สามารถเกิดขึ้นได้ทางออนไลน์ในแอปพลิเคชันบนเว็บเช่นMicrosoft Office บนเว็บ (เดิมคือOffice Online ) ซึ่งรองรับการแก้ไขพร้อมกันทางออนไลน์ ( บนเว็บ ) (ซึ่งMicrosoftเรียกว่า "Co-Authoring") ของเอกสารWord , สเปรดชีตExcel , PowerPointและ เอกสาร Microsoft Office อื่นๆ ที่จัดเก็บไว้ในOffice.com , OneDriveหรือที่เก็บข้อมูลบนคลาวด์SharePointหรือGoogle Docsและแอปพลิเคชันเพิ่มประสิทธิภาพการทำงานอื่นๆของ Google Workspace (ชุดโปรแกรมสำนักงาน)สำหรับการแก้ไขร่วมกันทางออนไลน์ของการประมวลผลคำและเอกสารอื่นๆ ที่จัดเก็บไว้ในGoogle Driveการแก้ไขร่วมกันแบบเรียลไทม์ยังสามารถเกิดขึ้นได้ในลักษณะไฮบริด เช่น Power Sheet BI สำหรับ Excel [ 15 ]ในการแก้ไขร่วมกันแบบออฟไลน์ บนเว็บ และออนไลน์ในซอฟต์แวร์เดสก์ท็อป รวมถึงแอปพลิเคชันบนเว็บและมือถือ ซึ่งสามารถซิงโครไนซ์โดยอัตโนมัติพร้อมการเข้าถึงประวัติเวอร์ชันได้ทันที ในปี 2020 ความสนใจในการฝังแอปพลิเคชันเหล่านี้ลงในเว็บแอปพลิเคชันที่ปลอดภัยกลับมาได้รับความนิยมอีกครั้ง โดยเฉพาะอย่างยิ่งสำหรับกรณีการใช้งานทางธุรกิจ โดย Microsoft และ Vaadin เป็นผู้นำในการพัฒนาแบ็กเอนด์สำหรับการทำงานร่วมกันแบบเรียลไทม์โดยเฉพาะ ซึ่งจัดการความซับซ้อนของการแชร์ข้อมูลแบบซิงโครนัสแบบเรียลไทม์ ซึ่งนักพัฒนาสามารถใช้ประโยชน์ได้ผ่าน API [ 16 ] [ 17 ] Mozilla ได้เปิดตัวไลบรารี JavaScript TogetherJS ในปี 2013 ซึ่งเพิ่มการแก้ไขร่วมกันแบบเรียลไทม์ให้กับเว็บแอปพลิเคชันใดๆ ผ่านระบบส่งข้อความ และอาจมีอัลกอริธึมการแปลงการทำงานสำหรับการซิงโครไนซ์แบบฟอร์ม[ 18 ]
Vaadin Ltd. ผู้จำหน่ายแพลตฟอร์ม Vaadin ได้เปิดตัว Collaboration Engine เวอร์ชัน 1.0 ในเดือนตุลาคม 2020 [ 19 ]โดยมีหลักการคืออนุญาตให้นักพัฒนาสร้างฟีเจอร์การทำงานร่วมกันและการแก้ไขแบบเรียลไทม์ในเว็บแอปพลิเคชันใดๆ ที่มีแบ็กเอนด์ Java ได้อย่างรวดเร็วโดยใช้โค้ดเพียงไม่กี่บรรทัด (สำหรับกรณีการใช้งานเฉพาะผ่าน API ระดับสูงที่ยังคงมีข้อจำกัด) [ 20 ]ปัจจุบันฟีเจอร์นี้รองรับ Java แม้ว่าผู้จำหน่ายจะระบุว่า API ที่ใช้ TypeScript ก็กำลังจะมาถึงเช่นกัน ซึ่งสอดคล้องกับการขยายตัวอย่างต่อเนื่องของแพลตฟอร์ม Vaadin ในการเปิดใช้งานการสร้าง UI ที่ใช้ TypeScript ในอนาคตผ่านเฟรมเวิร์ก Fusion ที่กำลังจะมาถึง[ 21 ] [ 22 ]
ความท้าทายทางเทคนิค
ความซับซ้อนของโซลูชันการแก้ไขร่วมกันแบบเรียลไทม์นั้นเกิดจากความล่าช้าในการสื่อสาร ในทางทฤษฎี หากการสื่อสารเกิดขึ้นทันที การสร้างโปรแกรมแก้ไขร่วมกันแบบเรียลไทม์ก็จะไม่ยากไปกว่าการสร้างโปรแกรมแก้ไขสำหรับผู้ใช้คนเดียว เพราะเอกสารสามารถแก้ไขได้โดยใช้อัลกอริทึมที่คล้ายกับต่อไปนี้:
- ขอโทเค็น 'แก้ไขเอกสาร' จากเซิร์ฟเวอร์
- รอจนกว่าเซิร์ฟเวอร์จะแจ้งว่าถึงตาเราในการแก้ไขเอกสารแล้ว
- แจ้งให้เซิร์ฟเวอร์ทราบถึงวิธีการแก้ไขเอกสาร
- ปล่อยโทเค็น 'แก้ไขเอกสาร'
อย่างไรก็ตาม ความเร็วในการสื่อสารถูกจำกัดด้วยความหน่วงของเครือข่าย ซึ่งก่อให้เกิดปัญหาพื้นฐาน: ผู้ใช้ต้องการให้การแก้ไขของตนเองถูกรวมเข้ากับเอกสารทันที แต่หากรวมเข้าทันทีแล้ว เนื่องจากความหน่วงในการสื่อสาร การแก้ไขเหล่านั้นจะต้องถูกแทรกเข้าไปในเอกสารเวอร์ชันต่างๆ กัน
ตัวอย่างต่อไปนี้จะช่วยอธิบายปัญหานี้ได้ สมมติว่าบ็อบและอลิซเริ่มต้นด้วยเอกสารที่มีคำว่าMaryบ็อบลบตัวอักษร 'M' แล้วแทรกตัวอักษร 'H' เพื่อเปลี่ยนคำเป็นHaryส่วนอลิซ ก่อนที่เธอจะได้รับการแก้ไขจากบ็อบ ก็ลบตัวอักษร 'r' แล้วลบตัวอักษร 'a' เพื่อเปลี่ยนคำเป็นMyดังนั้นทั้งบ็อบและอลิซจะได้รับการแก้ไขที่ถูกนำไปใช้กับเอกสารเวอร์ชันที่ไม่เคยมีอยู่บนเครื่องของพวกเขาเลย
ดังนั้น ความท้าทายของการแก้ไขร่วมกันแบบเรียลไทม์คือการหาวิธีที่ถูกต้องในการนำการแก้ไขจากผู้ใช้ระยะไกลมาใช้ ซึ่งการแก้ไขเหล่านั้นถูกสร้างขึ้นในเวอร์ชันของเอกสารที่ไม่เคยมีอยู่ในเครื่องของผู้ใช้ และอาจขัดแย้งกับการแก้ไขในเครื่องของผู้ใช้เอง
วิธีแก้ปัญหาที่ล้ำสมัยที่สุดจะแก้ปัญหานี้ในลักษณะที่ไม่ต้องใช้เซิร์ฟเวอร์ ไม่ใช้การล็อก (ผู้ใช้ทุกคนสามารถแก้ไขทุกส่วนของเอกสารได้พร้อมกันอย่างอิสระ) และรองรับผู้ใช้ได้ไม่จำกัดจำนวน (จำกัดเฉพาะทรัพยากรของคอมพิวเตอร์เท่านั้น) UNAและSubEthaEditเป็นตัวอย่างของสองโปรแกรมที่ใช้วิธีการนี้
แม้ว่าวิธีการที่ซับซ้อนเหล่านี้จะช่วยให้ผู้ใช้ได้รับประสบการณ์ ที่ดีที่สุด แต่เราก็สามารถสร้างโปรแกรมแก้ไขแบบร่วมมือขั้นพื้นฐานได้ในรูปแบบไคลเอนต์-เซิร์ฟเวอร์ในสถานการณ์แบบไคลเอนต์-เซิร์ฟเวอร์ เมื่อเปิดเอกสาร โปรแกรมแก้ไขตัวใดตัวหนึ่งจะได้รับบทบาทเป็นเซิร์ฟเวอร์การทำงานร่วมกัน เซิร์ฟเวอร์นี้จะช่วยให้มั่นใจได้ว่าโปรแกรมแก้ไขอื่นๆ จะซิงค์ข้อมูลกันโดยการตรวจสอบความหน่วงของเครือข่ายและทำหน้าที่เป็น เซิร์ฟเวอร์ การซิงโครไนซ์เวลาเซิร์ฟเวอร์จะได้รับ การแจ้งเตือน ที่มีการประทับเวลาของการเปลี่ยนแปลงที่ผู้ใช้รายอื่นทำกับเอกสาร มันจะพิจารณาว่าการเปลี่ยนแปลงเหล่านั้นควรส่งผลต่อสำเนาในเครื่องของตนอย่างไร และกระจายการเปลี่ยนแปลงไปยังกลุ่มการทำงานร่วมกัน ในบางรูปแบบ การเปลี่ยนแปลงจะไม่ปรากฏบนไคลเอนต์จนกว่าจะได้รับการตอบกลับอย่างเป็นทางการจากเซิร์ฟเวอร์ แม้ว่าการเปลี่ยนแปลงเหล่านั้นจะเกิดขึ้นในเครื่องก็ตาม
วิธีการนี้ แม้จะมีประสิทธิภาพน้อยกว่าอย่างเห็นได้ชัด แต่ก็ช่วยให้สามารถทำงานร่วมกันขั้นพื้นฐานได้ในต้นทุนที่ค่อนข้างต่ำ ทำให้เป็นที่นิยมในสถานการณ์ที่ทรัพยากรการประมวลผลมีจำกัดNetSketchเป็นตัวอย่างหนึ่งของโปรแกรมที่ใช้โมเดลนี้
ในอดีตMicrosoftและIBMได้ทำงานเพื่อเพิ่มสิ่งอำนวยความสะดวกในการทำงานร่วมกันให้กับสถาปัตยกรรมที่มีอยู่[ 23 ] แม้ว่าจะทำการตลาดในฐานะการทำงานร่วมกันแบบเรียลไทม์ แต่แนวทาง 'พื้นที่ทำงาน' เหล่านี้จำเป็นต้องมีการล็อกเอกสาร (เพื่อให้มีเพียงคนเดียวที่สามารถแก้ไขได้ในแต่ละครั้ง) หรือ 'การกระทบยอด' ของการเปลี่ยนแปลงที่ขัดแย้งกัน ซึ่งโดยทั่วไปผู้ใช้พบว่าไม่น่าพอใจ
ดูเพิ่มเติม
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ โปรแกรมแก้ไขแบบเรียลไทม์ที่ทำงานร่วมกันได้
โปรแกรมแก้ไขแบบเรียลไทม์ที่ทำงานร่วมกันได้ คือ ซอฟต์แวร์หรือแอปพลิเคชันบนเว็บประเภทหนึ่งที่ช่วยให้สามารถแก้ไขเอกสารดิจิทัลไฟล์คอมพิวเตอร์หรือข้อมูลที่จัดเก็บในระบบคลาวด์เดียวกันเช่...
ประวัติความเป็นมาของผลิตภัณฑ์หลัก
ตัวอย่างแรกของโปรแกรมแก้ไขข้อความแบบเรียลไทม์ที่ทำงานร่วมกันได้นั้น ถูกสาธิตโดย Douglas Engelbart ในปี 1968 ในผลงานชื่อ The Mother of All Demos แต่กว่าจะมีการใช้งานอย่างแพร่หลายในรูปแบบต่างๆ ก็ต้องใช้เวลาหลายสิบปี
ตัวอย่างอื่นๆ
การแก้ไขร่วมกันแบบเรียลไทม์สามารถเกิดขึ้นได้ทางออนไลน์ใน แอปพลิเคชันบนเว็บ เช่น Microsoft Office บนเว็บ (เดิมคือ Office Online ) ซึ่งรองรับการแก้ไขพร้อมกันทางออนไลน์ ( บนเว็บ ) (ซึ่ง Microsoft เรียกว่า "Co-Authoring") ของเอกสาร Word , สเปรดชีต Excel ,...
ความท้าทายทางเทคนิค
ความซับซ้อนของโซลูชันการแก้ไขร่วมกันแบบเรียลไทม์นั้นเกิดจากความล่าช้าในการสื่อสาร ในทางทฤษฎี หากการสื่อสารเกิดขึ้นทันที การสร้างโปรแกรมแก้ไขร่วมกันแบบเรียลไทม์ก็จะไม่ยากไปกว่าการสร้างโปรแกรมแก้ไขสำหรับผู้ใช้คนเดียว...