Office interop (서버 측 자동화)
정의
코드로 Microsoft Office를 구동하여 문서를 열거나 변환합니다. 데스크톱에서는 작동하지만, Microsoft와 이를 시도한 모든 사람에 의해 서버에서는 명시적으로 권장되지 않습니다.
Office는 키보드 앞의 한 명의 인터랙티브 사용자를 위해 설계되었습니다. 동시 요청을 처리하는 서버에서는 이 가정이 특정하고 익숙한 방식으로 실패합니다: 프로세스가 서로를 기다리며 교착 상태에 빠지고, 아무도 해제할 수 없는 모달 대화 상자가 나타나며, 인스턴스가 요청이 끝난 후에도 남아 머신의 메모리가 부족해질 때까지 지속됩니다.
라이선스 상황도 마찬가지로 어색합니다. 다수 사용자 대신 문서를 렌더링하는 서버는 해당 용도에 맞게 설계되지 않은 데스크톱 라이선스가 필요하며, 이는 구매 팀과의 대화가 거의 원활하지 않은 상황을 초래합니다.
대안은 네이티브 렌더링입니다: 포맷을 직접 파싱하고 프로세스 내에서 출력을 생성하는 라이브러리입니다. 두 번째 애플리케이션도 없고, 자동화 레이어도 없으며, 일정에 따라 수집할 고아 프로세스도 없습니다.
Doconut에서
Doconut는 네이티브로 렌더링합니다. 파이프라인 어디에도 Office 설치, COM 자동화 및 인터옵 어셈블리가 없으며 — 이는 컨테이너 배포를 간단하게 만드는 이유이기도 합니다.