При разработке специализированного программного обеспечения для работы кластера 3D принтеров особое внимание было уделено архитектуре, которая позволяла бы работать большому количеству 3D принтеров с минимальным количеством операторов и минимальными затратами ручного труда.
В качестве «ядра» системы был выбран Java EE сервер приложений JBoss в версии WildFly 8.2, соответствующий стандарту Java EE 7. В качестве СУБД используется PostgreSQL.
Основные функции, которые реализует сервер приложений:
- Импорт заказов на изготовление из внешнего источника (например Интернет-магазина)
- Автоматическое определение STL файлов для печати по данным из заказа, в том числе по наборам
- Формирование и управление очередью печати с учетом различных факторов, — приоритет заказа, приоритет конкретной задачи для печати, свойств 3D принтера
- Хранение статуса и временных моментов по всем этапам 3D печати каждого изделия, — получение задания принтером, прогрев, печать, повтор, завершение, а также прочей информации, — название изделия, цена, файл и т.д
- Обработка запроса от 3D принтера на получение нового задания и изменение статуса существующего задания
- Генерация недостающих GCode файлов по конкретный 3D принтер «на лету», при обработке запроса от 3D принтера
- Ведение справочника всех используемых 3D принтеров с возможностью настройки под каждый отдельный 3D принтер или под группу
- Обработка запросов от десктопного Java-приложения для контроля и управление очередью печати, изменения приоритетов заказов и отдельных задач, изменения настроек принтеров, импорт заказов, фильтрация по разным критериям отображаемой очереди печати
Еще три важных компонента архитектуры это:
- приложения под Android-планшет, который подключен к 3D принтеру и осуществляет управление и передачу GCode команд 3D принтеру. По сути, это приложение является посредником между сервером приложений и 3D принтером, но с возможностью передачи 3D принтеру некоторых ручных команд.
- Десктопное Java-приложение для управление очередью печати, мониторинга, изменения настроек и т.д.
- Механизм отчетов на базе JasperReports Server, который позволяет строить и просматривать различные отчеты для анализа работы кластера 3D принтеров через Web интерфейс.
Опыт использования данной архитектуры около 2-х лет. Для управления кластером с множеством 3D принтеров достаточно одного низко квалифицированного работника, работа которого, в основном, заключается в снятии готового изделия с платформы 3D принтера и нажатии кнопки «Получить задание» на планшете. Работник более высокой квалификации способен контролировать работу кластера и выполнять мелкий ремонт 3D принтеров. Рабочее место другого сотрудника, оператора очереди 3D печати (на компьютере), совмещается с функциями оператора склада или производства, который работает с заказами.
Все компоненты архитектуры, кроме, Android приложения, могут быть запущены под разные программно-аппаратные платформы, — OS X, Windows, Linux и т.д. На данный момент, для проекта Lubimova.com, сервер приложений и отчетов успешно работают под ОС Ubuntu Linux, а в качестве рабочих станций используются ПК под Windows, Linux и Mac OS.