В настоящий момент подходит к своему концу разработка системы обновления SkyUD, входящей в наш движок SkyEngine2. И т.к. разработка сервера для этой системы уже полностью завершена, то можно подвести некоторые итоги.
Сервер разрабатывался с использованием связки CFW+CSRTL+CSO. Вот некоторые сведения о сервере:
- 17837 строк кода, из них 16237 строк кода из библиотек и RTL
- полное отсутствие каких-либо зависимостей
- размер бинарного файла 121КБ
- время компиляции релизной версии ~1.8 секунд
- время разработки: 91 час (исследование: 1 час; проектирование: 4 часа; разработка: 82 часа; документирование: 4 часа)
Когда разработка сервера только начиналась, то была выбрана гибридная архитектура многопоточности: классическое блокирование объектов критической секцией для некоторых сущностей + асинхронный обмен сообщениями для остальных сущностей. Деление осуществлялось на основании предполагаемого времени “владения”. Если время “владения” было незначительным, то использовалась простая блокировка. В противном случае использовался асинхронный обмен сообщениями. Данный выбор полностью себя оправдал – получился маленький, простой и надёжный сервер.