Нақты уақыттағы бірлескен редактор - Collaborative real-time editor

A нақты уақыт режиміндегі бірлескен редактор түрі болып табылады бірлескен бағдарламалық жасақтама немесе веб-қосымша мүмкіндік береді нақты уақытта бірлескен редакциялау, бір мезгілде редакциялау, немесе тірі редакциялау сол сияқты сандық құжат, компьютерлік файл немесе бұлтта сақталады деректер - мысалы желідегі электрондық кесте, мәтінді өңдеу құжат, дерекқор немесе презентация - бір уақытта әр түрлі компьютерлердегі әр түрлі қолданушылар немесе мобильді құрылғылар, олардың түзетулерін автоматты түрде және бір сәтте біріктіру арқылы.

Нақты уақыттағы бірлескен редакция онлайн режимінде жүзеге асырылуы мүмкін веб-қосымшалар сияқты Интернеттегі Microsoft Office (бұрын Office Online ) - желіде қолдайтын (вебке негізделген ) бір мезгілде редакциялау (ол Microsoft «дегенді білдіредіБірлескен авторлық «) of Сөз құжаттар, Excel электрондық кестелер, Power Point және басқа да Microsoft Office сақталған құжаттар Office.com, OneDrive немесе SharePoint бұлтты сақтау - немесе Google Docs және басқа да G Suite өнімділік (кеңсе жиынтығы) қосымшалар - интерактивті редакциялауға арналған мәтінді өңдеу сақталған басқа құжаттар Google Drive. Нақты уақыттағы бірлескен редакция гибридті түрде де орын алуы мүмкін, мысалы Excel үшін Power Sheet BI,[1] жұмыс үстеліндегі бағдарламалық жасақтамада, веб-негізіндегі және мобильді қосымшаларда офлайн, веб-және онлайн-бірлескен редакциялауда, оларды нұсқалар тарихына жедел қол жетімділікпен автоматты түрде синхрондауға болады. Майкрософт пен Vaadin нақты уақыттағы синхронды деректерді бөлісудің қиындығын өңдейтін мамандандырылған нақты уақыт режиміндегі ынтымақтастықты басқара отырып, бұл қосымшаларды қауіпсіз веб-қосымшаларға енгізу, әсіресе 2020 ж. әзірлеушілер API арқылы қолдана алады.[2][3]

Асинхрондыдан айырмашылығы (нақты уақыт емес, кешіктірілген немесе оффлайн) бірлесіп редакциялау сияқты пайда болады қайта қарау сияқты жүйелер Гит немесе Субверсия, нақты уақыт режимінде өңдеу барлық желі қолданушыларының құжаттарды өз құрылғысында өңдеу кезінде автоматты, мерзімді, жиі лезде синхрондауын жүзеге асырады. Бұл болдырмау немесе азайту үшін жасалған қайшылықтарды өңдеу. Асинхронды бірлескен редакцияда әр пайдаланушы әдетте қолмен жіберуі (жариялауы, итермелеуі немесе жасауы), жаңартуы (жаңарту, тарту, жүктеу немесе синхрондау) және (егер қандай-да бір қайшылықтар туындаса) оларды өңдестіру керек.

Бірлескен асинхронды редакциялаудың кешігу сипатына байланысты бірнеше пайдаланушылар бір жолды, сөзді, элементті, деректер, қатар немесе өріс нәтижесінде қайшылықтарды өңдеу олар қолмен қажет біріктіруді өңдеу немесе қайта жазу, пайдаланушыдан қандай өңдеулерді қолдану керектігін таңдауды талап етеді немесе (жүйеге және қондырғыға байланысты) ескертулермен немесе ескертусіз олардың өңдеулерін немесе басқа адамдардың түзетулерін автоматты түрде қайта жазады.

Негізгі өнімдердің тарихы

Нақты уақыт режиміндегі бірлескен редактордың алғашқы нұсқасы көрсетілген Дуглас Энгельбарт 1968 ж., Барлық демонстрациялардың анасы. Тұжырымдаманы кеңінен енгізу бірнеше онжылдықтар пайда болды.

Үшін жедел жаңарту шығарылды классикалық Mac OS 1991 ж. бастап ON технологиясы.[4][жақсы ақпарат көзі қажет ] Кейінірек, нұсқасы Microsoft Windows нақты уақыт режиміне мүмкіндік беріп, шығарылды[дәйексөз қажет ] осы екеуі бойынша ынтымақтастық операциялық жүйелер.[дәйексөз қажет ] Жылдам жаңарту бірнеше клиенттерге нақты уақыт режимінде жаңартылған құжаттарды үйлестіру үшін жұмыс тобының серверіне сүйенді.

The Web 2.0 бұл құбылыс браузерге негізделген құжаттарды өңдеу құралдарына деген қызығушылықты тудырды. Атап айтқанда, өнім деп аталады Жазбаша пайдаланушының жарылғыш өсуін көрді және оны Google 2006 жылдың наурызында сатып алды (ол қалай аталады) Google Docs және кейінірек болып өзгертілді Google Drive ). Бұл құжаттың тұтасымен бір мезгілде редакциялауды қамтамасыз етті, дегенмен басқа пайдаланушылардың өзгерістері клиенттік бағдарлама серверден сауалнама алғаннан кейін ғана көрінді (әр жарты минут сайын).[дәйексөз қажет ] Интернетке негізделген тағы бір шешім JotSpotLive болды, онда нақты уақыт режимінде қатар-қатар бір мезгілде редакциялауға болатын.[5] Алайда, 2006 жылдың қарашасында Google компаниясы JotSpot бас компаниясын сатып алғаннан кейін сайт жабылды. Google сайттары 2007 жылдың ақпанында JotSpot қайта өңдеу ретінде іске қосылды,[6][7][8][9] бірақ JotLive-тің нақты уақыттағы көп қолданушысының мүмкіндіктері жетіспейді. Synchroedit (бай мәтін) және MobWrite (кәдімгі мәтін) жобалары - бұл нақты уақыт режимінде, әсіресе, нақты уақыттағы өнімділікке қол жеткізе алмаса да, нақты уақыт режимінде шолушының негізделген бірлескен редакциялауындағы олқылықтың орнын толтыруға бағытталған екі, соңғы, ашық көзді әрекеттер. ауқымды архитектура.[дәйексөз қажет ]

2009 жылы Google бета-тестілеуді бастады Google Wave, Google нақты уақыттағы электрондық пошта мен жедел хабарламаларды ығыстырады деп үміттенетін ынтымақтастық ортасы.[дәйексөз қажет ] EtherPad Google сатып алды, ол EtherPad командасын Wave жобасы аясында жұмыс істеуге бөлді. Алайда, Google өзінің блогында 2010 жылдың тамызында жариялады[10] пайдаланушының жеткіліксіз қабылдануына байланысты Wave-ті дербес жоба ретінде дамытуды тоқтату туралы шешім қабылдады. Google қалдырылған EtherPad бастапқы кодын шығарғаннан кейін ашық ақпарат көзі 2009 жылдың желтоқсанында қоғамдастық өзінің дамуын қолға алды және толықтай қайта жазуды шығарды Etherpad lite, ол толығымен жазылған JavaScript және үстіне салынған node.js. Негізделген басқа көрнекті құралдар жедел трансформация технологиялар болып табылады CKEditor, және SubEthaEdit.[11] 2020 тұжырымдамаға деген қызығушылықтың жоғарылауы байқалды, өйткені Microsoft жақында OT немесе CRDT-ге қарағанда Total Order Broadcast романына негізделген Fluid шеңберін шығарды.[12] Сұйықтық қазіргі кезде құрылымдық агностикалық болып табылады. Майкрософт өндірісті пайдалануға әлі дайын емес екенін мәлімдейді.[13]

2020 жылдың қазанында Vaadin Ltd., Vaadin платформасының сатушысы, олардың Collaboration Engine V1.0 шығарды,[14] бірнеше жолдар кодын қолдана отырып, әзірлеушілерге кез-келген веб-қосымшаның нақты уақыт режиміндегі ынтымақтастықты және өңдеу мүмкіндіктерін Java-ның артқы жағымен жылдам құруға мүмкіндік беруіне мүмкіндік беру (олардың шектеулі, жоғары деңгейлі API интерфейстері арқылы).[15] Бұл функция қазіргі уақытта Java-ны қолдайды, дегенмен сатушы Vaadin платформасының жақында кеңейіп келе жатқан TypeScript-ке негізделген API, сонымен қатар алдағы Fusion шеңберінде болашақта TypeScript-ке негізделген интерфейс ғимаратын қосуға мүмкіндік беретіні, TypeScript-ке негізделген API-нің келетіндігін атап өтті.[16][17]

Техникалық қиындықтар

Нақты уақыттағы бірлескен редакциялау шешімдерінің күрделілігі коммуникацияның кешігуінен туындайды. Теория жүзінде, егер байланыс лезде болса, онда нақты уақытта бірлескен редакторды құру бір қолданушы редакторынан гөрі қиын болмас еді, өйткені құжатты келесіге ұқсас алгоритм көмегімен редакциялауға болатын еді:

  1. Серверден 'құжатты өңдеу' белгісін сұраңыз
  2. Сервер құжатты редакциялау кезегі келді деп айтқанша күтіңіз
  3. Серверге құжатты қалай өңдеу керектігін айтыңыз
  4. 'Құжатты өңдеу' белгісін босатыңыз

Алайда, байланыс жылдамдығы желінің кідірісімен шектеледі. Бұл іргелі дилемманы тудырады: пайдаланушыларға дереу құжатқа енгізілген түзетулер қажет, бірақ егер олар бірден енгізілсе, онда байланыс кешігуіне байланысты олардың редакциялары міндетті түрде құжаттың әр түрлі нұсқаларына енгізілуі керек.

Мысал осы мәселені көрсетеді. Боб пен Алис сөз бар құжаттан бастайды делік Мэри. Боб сөзді өзгерту үшін 'M' өшіреді, содан кейін 'H' енгізеді Хари. Элис, ол Бобтан редакция алғанға дейін 'r', содан кейін 'а' жойып, оны өзгертеді Менің. Содан кейін Боб пен Элис екеуі құжаттың нұсқаларына қолданылған редакцияларды алады ешқашан болған емес өз машиналарында.

Сонымен, нақты уақыт режиміндегі бірлескен редакциялаудың қиындығы - бастапқыда құжаттың ешқашан жергілікті болмаған нұсқаларында жасалған және пайдаланушының өзінің жергілікті өңдеулерімен қайшы келуі мүмкін қашықтағы пайдаланушылардың түзетулерін қалай қолдану керектігін анықтау.

Неғұрлым күрделі шешімдер бұл мәселені серверді қажет етпейтін, құлыптауды қолданбайтын (барлық пайдаланушылар бір уақытта құжаттың барлық бөліктерін еркін өңдей алады) және пайдаланушылардың кез келген санын қолдайтын тәсілмен шешеді (тек ресурстармен шектелген) компьютерлер). UNA және SubEthaEdit осы тәсілді қолданатын екі бағдарламаның мысалдары.

Бұл күрделі тәсілдер ең жақсы мүмкіндік береді пайдаланушы тәжірибесі, бірлескен редакторды а-да жасауға болады клиент-сервер моделі. Клиент-сервер сценарийінде редактор даналарының біріне құжат ашылған кезде ынтымақтастық серверінің рөлі тағайындалады. Бұл сервер желінің кешігуін анықтап, а ретінде әрекет ете отырып, басқа редакторлардың синхронды болуын қамтамасыз етеді уақытты синхрондау сервер. Сервер қабылдайды уақыт белгілері бар басқа қолданушылардың құжатқа енгізген өзгертулері туралы хабарламалар. Бұл өзгерістер оның жергілікті көшірмесіне қалай әсер етуі керек екенін анықтайды және оның өзгертулерін ынтымақтастық пулына таратады. Кейбір модельдерде өзгерістер клиентте ресми жауап серверден қайтарылғанға дейін көрінбейді, тіпті егер бұл өзгерістер жергілікті түрде жасалған болса да.

Бұл тәсіл айтарлықтай аз қуатты болғанымен, салыстырмалы түрде аз шығындармен негізгі ынтымақтастыққа мүмкіндік береді. Бұл оны өңдеу ресурстары шектеулі жағдайларда қолайлы етеді. NetSketch осы модельді қолданатын бағдарламаның мысалы болып табылады.

Баяғыда, Microsoft және IBM қолданыстағы архитектураларына ынтымақтастық құралдарын қосу бойынша жұмыс жасады.[18] Нақты уақыттағы ынтымақтастық ретінде сатылатын болса да, бұл «жұмыс кеңістігі» тәсілдері құжаттарды бұғаттауды қажет етеді (сондықтан оны бір уақытта тек бір адам өңдей алады) немесе қарама-қайшылықты өзгерістерді «келісу» керек, оны әдетте пайдаланушылар қанағаттанарлықсыз деп санайды.[дәйексөз қажет ]

Сондай-ақ қараңыз

Әдебиеттер тізімі

  1. ^ «Ақысыз кодтық қосымша, Analytics AI, Blockchain, Excel & Web 3.0 ынтымақтастық платформасы». PowerSheet.ai. Алынған 2020-06-08.
  2. ^ «Сұйықтық шеңбері». fluidframework-docs.azureedge.net. Алынған 2020-11-02.
  3. ^ «Бірлескен қозғалтқыш». Ваадин. Алынған 2020-11-02.
  4. ^ «Пайдаланушы нұсқаулығы». Архивтелген түпнұсқа 2009-02-21.
  5. ^ Майкл Аррингтон (2005-09-27). «JotSpot Live - Perfect Wiki?». TechCrunch.
  6. ^ Майкл Аррингтон (2008-02-27). «Бұл 16 ай өтті, бірақ Google Jotspot-ты қайта іске қосты». TechCrunch.
  7. ^ Дэвид Шартье (2008-02-28). «Бірінші көзқарас: Google JotSpot-ты Google Sites ретінде қайта іске қосады». Ars technica.
  8. ^ Дэн Фарбер (2008-02-27). «JotSpot Google сайттары ретінде қайта туды». CNET жаңалықтары.
  9. ^ Марк 'Риззн' Хопкинс (2008-02-27). «Google ақырында JotSpot-ты Google сайттарымен босатады». Mashable.
  10. ^ Ина Фрид және Джош Лоуэнсон (2010-08-04). «Google Google Wave-ті қосады». CNET.
  11. ^ SunChengzheng; SunDavid; НгАгустина; CaiWeiwei; Чобрайден (2020-01-04). «Қосалқы редакторлардағы консистенцияны қолдаудың жалпы трансформациялық шеңберіндегі OT және CRDT арасындағы нақты айырмашылықтар». Адам мен компьютердің өзара әрекеттесуі туралы ACM жинағы. дои:10.1145/3375186.
  12. ^ «Жиі Қойылатын Сұрақтар». fluidframework-docs.azureedge.net. Алынған 2020-11-02.
  13. ^ «Сұйықтық шеңбері». fluidframework-docs.azureedge.net. Алынған 2020-11-02.
  14. ^ «Meet Collaboration Engine: қарапайым веб-қосымшаларды құрудың қарапайым тәсілі». Ваадин. Алынған 2020-11-02.
  15. ^ «Бірлескен қозғалтқыш». Ваадин. Алынған 2020-11-02.
  16. ^ «Vaadin-тің нақты уақыттағы ынтымақтастық сипаттамаларының болашағына көз жүгірту». Ваадин. Алынған 2020-11-02.
  17. ^ «Vaadin Flow және Fusion-мен таныстыру». Ваадин. Алынған 2020-11-02.
  18. ^ Microsoft Live Communications Мұрағатталды 2008-03-05 Португалияның веб-архивінде осы мақаланың мағынасында нақты уақыт емес, нақты уақыт ретінде сатылады.