Перейти к содержимому
FastOffice

Архитектура: четыре слоя и объекты

Одна система из четырёх слоёв ответственности, точное место Rust, перечень объектов и главные связи между ними.

Слой Владелец Ответственность Не должен делать
Host / DMS Партнёр Пользователь, права, карточка, версии, аудит, бизнес-процесс. Не обязан понимать внутреннее устройство XLSX.
Web Shell F1 + бренд партнёра Показывает редактор, собирает намерение пользователя, отображает ответ. Не рассчитывает формулы и не меняет файл самостоятельно.
Compute Contract Совместная интеграционная граница Описывает команды, результаты, ошибки, ревизии и возможности. Не зависит от конкретного WASM/native транспорта.
Rust Core F1 Единый смысловой владелец книги: расчёт, изменения, история, сохранение. Не управляет карточкой документа и пользователями партнёра.

Rust Core — не сервер и не экран. Это переносимый вычислительный модуль. В браузере тот же код собирается в WebAssembly. В desktop или серверной среде он запускается как native binary/process. Способ запуска меняется, семантика рабочей книги и compute contract остаются общими.

Web TypeScript/Lit: интерфейс и оркестрация Contract JSON-команды и типизированные ответы Rust единая модель и операции книги
Архитектурное правило В Web не должно появляться второе «маленькое ядро». Если кнопка меняет смысл документа, операция должна пройти через contract и Rust. Иначе браузерная и серверная версии начнут вести себя по-разному.

2 · ОБЪЕКТНАЯ МОДЕЛЬ

Какие объекты существуют и как они связаны

Заголовок раздела «Какие объекты существуют и как они связаны»
Объект Содержит / знает Жизненный цикл
IntegrationSession Идентификатор документа, контекст прав, конфигурацию продукта. Создаётся системой партнёра на открытие редактора.
WorkbookSession Открытую книгу, текущую revision, history, backend и состояние сохранения. Живёт от open до close; изолирован от других книг.
Workbook Листы, имена, стили, настройки, связи и package parts. Загружается из файла и изменяется только ядром.
Sheet Ячейки, строки/колонки, таблицы, объекты и параметры печати. Имеет стабильную identity внутри книги.
Viewport Только видимую проекцию листа и нужные метаданные. Меняется при scroll/zoom; не равен всей книге.
Operation / Intent Действие, параметры, expectedRevision, ограничения. Один запрос через compute contract.
Result / Event Новый state, delta, warning/refusal и данные для отображения. Возвращается Web и Host после операции.
SavedArtifact Байты файла, формат и сведения о сохранении. Передаётся DMS для новой версии.
IntegrationSession создаёт и ограничивает WorkbookSession
WorkbookSession владеет состоянием Workbook + Revision + History
Workbook публикует только нужное Viewport
Operation проверяет revision и меняет WorkbookSession
Save создаёт SavedArtifact → DMS version
Почему это важно Партнёр интегрируется не с «экраном Excel», а с понятным набором объектов. Экран можно заменить или адаптировать; WorkbookSession, Operation, Revision и SavedArtifact остаются стабильной основой.

3 · ЖИЗНЕННЫЙ ЦИКЛ

Ассистент документации

Ответ собран из документации и может быть неточным — сверяйтесь с источниками.