Что касается самой системы визуализации, мы воспользовались классической архитектурой с каналами/фильтрами. Метафора «конвейера» естественным образом подходит для построения изображений, а разделение сложной последовательности действий на более простые шаги упрощает модульное тестирование.
При извлечении задания из PCS система визуализации создает объект RenderRequest. Объект передается конвейеру визуализации, каждая стадия которого работает с самим запросом. Одна из завершающих стадий конвейера сохраняет построенное изображение в каталоге, путь которого задает PCS. К моменту выхода из конвейера запрос содержит только объект результата с признаком успешного завершения и (возможно) набором сообщений об ошибках.
На каждом этапе конвейера возможны сообщения о возникших проблемах, включая сообщение об ошибке в объект результата. Если на каком-то этапе возникнут ошибки, работа конвейера прерывается, а информация о проблеме передается PCS.
Related posts: