협업 실시간 편집기
Collaborative real-time editor협업 실시간 편집기는 온라인 스프레드시트, 워드프로세싱 문서, 데이터베이스 또는 프리젠테이션과 같은 동일한 디지털 문서, 컴퓨터 파일 또는 클라우드 저장 데이터의 실시간 공동 편집, 동시 편집 또는 실시간 편집을 동시에 가능하게 하는 협업 소프트웨어 또는 웹 애플리케이션의 한 유형이다.사용자들을 다른 컴퓨터나 모바일 기기에 끌어들이며, 편집한 내용을 거의 즉각적으로 자동 병합한다.
실시간 편집은 모든 온라인 사용자가 자신의 기기에서 문서를 편집할 때 거의 즉각적이고 주기적인 자동 동기화를 수행한다.이것은 편집 충돌을 피하거나 최소화하기 위해 고안되었다.
비동기식 협업 편집(즉, 비실시간, 지연 또는 오프라인)을 통해 각 사용자는 일반적으로 수동으로 제출(게시, 푸시 또는 커밋), 업데이트(새로 고침, 꺼내기, 다운로드 또는 동기화)해야 하며 (편집 충돌이 발생하는 경우) 편집 내용을 병합해야 한다.비동기식 협업 편집의 지연된 특성 때문에 여러 사용자가 동일한 줄, 단어, 요소, 데이터, 행 또는 필드를 편집하여 편집 충돌이 발생하여 수동 편집 병합 또는 덮어쓰기가 필요한 편집 충돌을 유발할 수 있으므로 사용자가 사용할 편집본을 선택하거나 (시스템과 설정에 따라) 자신의 에디를 자동으로 덮어쓰도록 한다.경고가 있거나 없는 ts 또는 다른 사람의 편집.
주요 제품 이력
협업 실시간 편집자의 첫 번째 사례는 1968년 더글라스 엥겔바트가 <모든 데모스의 어머니>에서 시연했다.그 개념의 널리 이용 가능한 구현은 나타나는데 수 십 년이 걸렸다.
On Technology에서 1991년 클래식 맥 OS용 Instant Update라는 소프트웨어가 출시되었다.[1][better source needed]LAN을 통해 여러 사용자가 단일 문서를 실시간으로 편집할 수 있으며 작업 그룹 서버에 의존했다.
인터넷을 통한 실시간 협업 편집에 대한 관심은 2003~2005년 타임 프레임에서 문편집과 서브에타편집(SubEthaEdit)을 발전시켰고, 곧 고비(Gobby)가 뒤를 이었다.
아약스 기술의 도입과 브라우저에서의 "콘텐츠 편집 가능" 기능의 도입으로, 웹 기반의 실시간 협업 편집은 2005년경 Web 2.0 현상의 일부로 개발되었다.특히 Writely라는 제품은 폭발적인 사용자 성장을 보였으며 2006년 3월 구글에 의해 구입되었다(Google Docs로 알려지게 되었다가 나중에 Google Drive로 개명됨).다른 사용자의 변경사항은 클라이언트 프로그램이 서버를 폴링한 후(반분마다) 반영되었지만, 문서 전체에서 동시 편집을 제공했다.[citation needed]또 다른 초기 웹 기반 솔루션은 거의 실시간으로 라인별 동시 편집이 가능한 JotSpotLive였다.[2]하지만 2006년 11월 구글이 모기업인 조트스팟을 인수한 뒤 사이트는 폐쇄됐다.구글 사이트는 2007년 2월 조트스팟의 리팩터링으로 출범했지만 조트라이브의 멀티유저 실시간 능력은 부족하다.[3][4][5][6]Synchroedit(리치 텍스트)와 MobWrite(플레인 텍스트)[citation needed] 프로젝트는 비록 여전히 대규모 아키텍처에서 진정한 실시간 성능을 달성할 수는 없지만 실시간 브라우저 기반 협업 편집의 공백을 메우기 위한 보다 최근의 오픈 소스 시도다.
2009년 구글은 실시간 협업 환경인 구글 웨이브를 베타 테스트하기 시작했는데, 구글은 결국 이메일과 인스턴트 메시징을 대체할 것으로 기대했다.[citation needed]EtherPad는 EtherPad 팀을 Wave 프로젝트 내에서 작업하도록 할당했던 구글에 의해 인수되었다.하지만 구글은 2010년 8월 블로그를[7] 통해 사용자 채택이 미흡해 웨이브를 독립형 프로젝트로 개발하는 것을 중단하기로 결정했다고 발표했다.2009년 12월 구글이 버려진 EtherPad 소스 코드를 오픈 소스로 공개한 후 커뮤니티는 개발을 이어받아 완전히 자바스크립트로 작성돼 노드 js 위에 구축된 Etherpad lite라는 완전한 재작성을 생산했다.운영 혁신 기술을 기반으로 한 또 다른 주목할 만한 도구는 CKEditor이다.[8]마이크로소프트도 최근 OT나 CRDT가 아닌 새로운 토탈 오더 브로드캐스트 기술에 의존하는 Fluid 프레임워크를 발표하면서 2020년에 대한 관심이 급증했다.[9]Fluid는 현재 프레임워크에 구애받지 않고 있다.마이크로소프트는 아직 생산에 사용할 준비가 되지 않았다고 말한다.[10]
Collabora Productivity는 2016년 6월 오픈소스 온라인 오피스 제품군인 Collabora Online의 V1.0을 출시하여 코드 몇 줄만 있으면 어떤 웹사이트에도 통합할 수 있고, 소프트웨어 개발 키트는 여러 언어로 된 샘플 통합 코드(Python, PHP, Node.js, JavaScript)와 API 사양이 있어 상호운용성이 가능하다.사용자 인터페이스를 사용자 정의할 수 있다.[11][12][13]워드 프로세싱 문서, 스프레드시트, 프리젠테이션, 도면 및 벡터 그래픽의 공동 실시간 편집을 가능하게 한다.
최근 실시간 협업 편집은 2020년 출시된 아톰과 비주얼 스튜디오 코드의 확장이 적용된 독립형 텍스트 편집 어플리케이션으로 복귀했다.[14][15]
기타 예
웹 상의 Microsoft Office(이전의 Office Online)와 같은 웹 애플리케이션에서 실시간 협업 편집이 가능하며, 이 애플리케이션은 Word 문서, Excel 스프레드시트, PowerPoint 및 Office.com, OneDrive에 저장된 Microsoft Office 문서의 온라인(웹 기반) 동시 편집(Microsoft "Co-Authoring"이라고 함)을 지원한다.또는 SharePoint 클라우드 스토리지(또는 Google 워드프로세싱 및 기타 Google Workspace 생산성(오피스 제품군) 앱)을 사용하여 Google Drive에 저장된 문서와 워드 프로세싱의 온라인 공동 편집을 수행할 수 있다.실시간 협업 편집은 엑셀용 Power Sheet BI와 같이 오프라인, [16]웹 기반, 데스크톱 소프트웨어의 온라인 협업 편집 등 하이브리드 방식으로도 발생할 수 있으며, 웹 기반 및 모바일 앱은 버전 히스토리에 대한 즉각적인 액세스로 자동 동기화가 가능하다.2020년에는 개발자들이 API를 통해 활용할 수 있는 실시간 동기식 데이터 공유의 복잡성을 처리하는 전문 실시간 협업 백엔드로 마이크로소프트와 바딘이 선두에 서면서, 특히 비즈니스 사용을 위한 안전한 웹 애플리케이션에 이러한 애플리케이션을 내장하는 데 관심이 다시 높아지고 있다.[17][18]
Vaadin 회사는 Vaadin 플랫폼의 공급 업체, 10월 2020,[19]에서 개발자들 빠르게 자바 backends들을 통해 여전히high-leve 제한된 특정한 유스 케이스에 대한 정보의 몇줄을 사용하여 어느 웹 응용 프로그램에는 실시간 협력과 편집 기능들을 허용하는 전제가 V1.0 그들의 공동 엔진의 발표했다.나는 APIs).[20] 이 기능은 공급업체가 최근 바딘 플랫폼이 향후 Fusion 프레임워크를 통해 TypeScript 기반 UI 건물로 확장하고 있는 것과 일치하여 TypeScript 기반 API도 유입되고 있다고 지적하지만, 현재 자바를 지원한다.[21][22]
기술적 당면 과제
이 섹션은 검증을 위해 추가 인용구가 필요하다. 편집자 – · · · · (2008년 8월) (이 를 |
![]() | 이 절에는 아마도 독창적인 연구가 포함되어 있을 것이다.(2008년 8월) (이 를 과 시기 |
실시간 협업 편집 솔루션의 복잡성은 통신 지연에서 비롯된다.이론적으로, 만약 통신이 즉각적이었다면, 실시간 협업 편집기를 만드는 것은 다음과 유사한 알고리즘을 사용하여 문서를 편집할 수 있기 때문에 단일 사용자 편집기를 만드는 것만큼 어렵지 않을 것이다.
- 서버에서 '문서 편집' 토큰 요청
- 서버가 문서를 편집할 차례라고 말할 때까지 기다리십시오.
- 서버에게 문서 편집 방법 알려주기
- '문서 편집' 토큰 릴리스
그러나 통신 속도는 네트워크 지연 시간에 의해 제한된다.이것은 근본적인 딜레마를 야기한다: 사용자들은 즉시 문서에 통합되는 그들 자신의 편집이 필요하지만 만약 그것들이 즉시 통합된다면, 통신 지연 때문에, 그들의 편집은 반드시 문서의 다른 버전에 삽입되어야 한다.
예를 들어 이 문제를 설명한다.밥과 앨리스가 메리라는 단어가 들어 있는 문서로 시작한다고 가정하자.밥은 'M'을 삭제하고 'H'를 삽입하여 단어를 하리로 바꾸었다.앨리스는 밥으로부터 편집을 받기 전에 'r'을 삭제한 다음 'a'를 삭제하여 'My'로 변경한다. 그러면 밥과 앨리스 모두 자신의 컴퓨터에 존재하지 않았던 문서 버전에 적용된 편집을 받게 된다.
따라서, 실시간 협업 편집의 과제는 원래 로컬에 존재하지 않았던 문서 버전에서 작성되었으며, 사용자 자신의 로컬 편집과 상충될 수 있는 원격 사용자의 편집 내용을 어떻게 적용할 것인가를 정확히 파악하는 것이다.
가장 정교한 솔루션은 서버가 필요하지 않고, 잠금을 사용하지 않으며(모든 사용자가 동시에 문서의 모든 부분을 자유롭게 편집할 수 있음), 임의의 수의 사용자(컴퓨터 자원에 의해서만 제한됨)를 지원하는 방식으로 이 문제를 해결한다.UNA와 SubEthaEdit는 이 접근법을 사용하는 두 프로그램의 예다.
이러한 정교한 접근방식은 최상의 사용자 경험을 가능하게 하지만, 클라이언트-서버 모델에서도 기본적인 협업 편집기를 만들 수 있다.클라이언트-서버 시나리오에서, 편집자 인스턴스 중 하나에 문서가 열릴 때 협업 서버의 역할이 할당된다.이 서버는 네트워크 지연 시간을 결정하고 시간 동기화 서버 역할을 함으로써 다른 편집기가 동기화되도록 한다.서버는 다른 사용자에 의해 문서에 대한 변경사항의 타임스탬프 통지를 수신한다.그것은 그러한 변화가 그것의 로컬 복사본에 어떤 영향을 미칠지 결정하고 그것의 변경사항을 공동작업 풀에 방송한다.일부 모델에서는 변경사항이 로컬로 변경되더라도 서버에서 공식 응답이 반환될 때까지 변경사항이 클라이언트에 반영되지 않는다.
이러한 접근방식은 상당히 강력하지는 않지만 비교적 낮은 비용으로 기본적인 협업을 가능하게 한다.이것은 처리 자원이 제한된 상황에서 그것을 더 선호하게 만든다.NetSketch는 이 모델을 사용하는 프로그램의 한 예다.
과거에 마이크로소프트와 IBM은 기존 아키텍처에 협업 시설을 추가하기 위해 노력해왔다.[23]실시간 협업으로 판매되지만, 이러한 '작업공간' 접근방식은 문서 잠금(그래서 한 번에 한 사람만 편집할 수 있다)이나 상충하는 변경사항의 '조정' 중 하나를 요구하는데, 이는 일반적으로 사용자가 만족하지 못하는 것으로 파악된다.[citation needed]
참고 항목
참조
- ^ "User manual". Archived from the original on 2009-02-21.
- ^ Michael Arrington (2005-09-27). "JotSpot Live — The Perfect Wiki?". TechCrunch.
- ^ Michael Arrington (2008-02-27). "It Took 16 Months, But Google Relaunches Jotspot". TechCrunch.
- ^ David Chartier (2008-02-28). "First look: Google relaunches JotSpot as Google Sites". Ars technica.
- ^ Dan Farber (2008-02-27). "JotSpot reincarnated as Google Sites". CNET News.
- ^ Mark 'Rizzn' Hopkins (2008-02-27). "Google Finally Frees JotSpot with Google Sites". Mashable.
- ^ Ina Fried and Josh Lowensohn (2010-08-04). "Google pulls plug on Google Wave". CNET.
- ^ SunChengzheng; SunDavid; NgAgustina; CaiWeiwei; ChoBryden (2020-01-04). "Real Differences between OT and CRDT under a General Transformation Framework for Consistency Maintenance in Co-Editors". Proceedings of the ACM on Human-Computer Interaction. 4: 1–26. arXiv:1905.01518. doi:10.1145/3375186.
- ^ "Frequently Asked Questions". fluidframework-docs.azureedge.net. Retrieved 2020-11-02.
- ^ "Fluid Framework". fluidframework-docs.azureedge.net. Retrieved 2020-11-02.
- ^ Gathoye, William (2016-06-02). "Collabora Productivity releases Collabora Online 1.0 "Engine" for Hosters and Clouds". Archived from the original on 2016-08-07. Retrieved 2021-09-02.
- ^ "Collabora Online SDK". Archived from the original on 2021-03-01. Retrieved 2021-09-02.
- ^ Guoan, Xiao (2020-12-10). "Integrate Collabora Online with Nextcloud on Ubuntu with Docker". LinuxBabe. Archived from the original on 2020-06-14. Retrieved 2021-09-02.
- ^ "Live Share for VS Code". Retrieved 2022-02-26.
- ^ "Teletype for Atom". Retrieved 2022-02-26.
- ^ "FREE No-Code App, Analytics AI, Blockchain, Excel&Web 3.0 Collaboration Platform". PowerSheet.ai. Retrieved 2020-06-08.
- ^ "Fluid Framework". fluidframework-docs.azureedge.net. Retrieved 2020-11-02.
- ^ "Collaboration Engine". Vaadin. Retrieved 2020-11-02.
- ^ "Meet Collaboration Engine: The simplest way to build collaborative web apps". Vaadin. Retrieved 2020-11-02.
- ^ "Collaboration Engine". Vaadin. Retrieved 2020-11-02.
- ^ "A sneak-peek at the future of Vaadin's real-time collaboration features". Vaadin. Retrieved 2020-11-02.
- ^ "Introducing Vaadin Flow and Fusion". Vaadin. Retrieved 2020-11-02.
- ^ Microsoft Live Communications 2008-03-05 포르투갈 Web Archive Marketing에서 이 기사의 관점에서 실시간은 아니지만 실시간은 아니다.