Google Docs یک واژهپرداز آنلاین است که بهعنوان بخشی از مجموعه رایگان و مبتنی بر وب Google Docs Editors ارائهشده توسط Google است که شامل موارد زیر است: Google Sheets، Google Slides، Google Drawings، Google Forms، Google Sites و Google Keep. Google Docs از طریق مرورگر اینترنت به عنوان یک برنامه مبتنی بر وب قابل دسترسی است و همچنین به عنوان یک برنامه تلفن همراه در Android و iOS و به عنوان یک برنامه دسکتاپ در ChromeOS Google در دسترس است.
ارزش یک عکس بیشتر از هزار کلمه است. در این پست به نحوه طراحی Google Docs خواهیم پرداخت:
1- کلاینت ها عملیات ویرایش اسناد را به سرور WebSocket ارسال می کنند.
2- ارتباط بلادرنگ توسط سرور WebSocket انجام می شود.
3- عملیات اسناد در صف پیام ادامه دارد.
4- File Operation Server عملیات تولید شده توسط کلاینت ها را مصرف می کند و عملیات تبدیل شده را با استفاده از الگوریتم های همکاری تولید می کند.
5- سه نوع داده ذخیره می شود: فراداده فایل، محتوای فایل و عملیات.
یکی از بزرگترین چالشها حل تعارض در زمان واقعی است. الگوریتم های رایج عبارتند از:
🔹 Operational transformation (OT)
🔹 Differential Synchronization (DS)
🔹 Conflict-free replicated data type (CRDT)
Google Doc مطابق صفحه ویکیپدیا خود از OT استفاده میکند و CRDT یک منطقه فعال تحقیقاتی برای ویرایش همزمان بلادرنگ است.