JavaIsJunk писал(а) 23. Марта 2012 :: 15:14:Этот. Немного адаптированый сервер уже полгода молотит живые данные на волгоградском хладокомбинате, обслуживая софт на ТСД. Он Выгружает из базы 1С (SQL) сводные заявки на ТСД и формирует документы по собранным данным.
Я в дискуссии вступать на собираюсь, просто решил рассказать, что есть такой проект. Никого в помощь не ищу, ибо рук хватает. Кому что интересно, спрашивайте по существу.
В скрины верить тоже не заставляю. Грузить из мд гуй не самое трудное. Впереди еще биндинг всего АПИ, который хоть и не такой богатый, зато надо потрудиться, чтобы воспроизвести точно поведение 1С. Потом еще остается на десерт местная ORM, по которой пока еще нет идей. По хорошему, всю работу с данными надо переносить на сервак, но 77 не знает, что это такое, поэтому в целях совместимости надо дать клиенту возможность работать с данными, а тут уже возможны варианты: либо прокидывать серверные дейта-сеты на клиенты через RPC, что не очень шустро, либо передавать все разом на клиент и там дальше обрабатывать. Склоняюсь ко второму, но надо еще поизучать поведение 1С чтобы не вляпаться.
RPC для этого проекта писался специально, но вылился в отдельный проект. Первая версия была целиком завязана на буст, но из-за этого отлаживать либу было сложно, да и компилилось не быстро. Я молчу про то, что сам когда влез туда после месяца перерыва с трудом мог разобраться. Поэтому сейчас весь RPC переписан с нуля, интерфейс описывается деларативно на С-подобном синтакисе, файл с интерфейсом обрабатывает утилита, которая генерит нужный сетевой код на С++, который уже включается в проект.
Скриптовый двиг закончен примерно на 70% и представляет собой вирт-машину + компилятор. Работает субъективно шустро, но сравнительных тестов пока не делал.
Конфа грузится сервером без использования одинесных приблуд и прочего ОЛЕ-недоразумения, либа для чтения Compound-файлов своя, ибо планируется переносимость, но писать оные файлы пока не умеет. Программные модули разжимаю zlib'ом, но только нешифрованные, шифрованные пока не осилил, да и цели не было.
Аналог мокселя писать только начал, пока там все плохо, в зачаточном состоянии. В коде не используется ничего, специфичного для винды, кроме ODBC (изначально Qt не использовался на сервере), но некоторые его части gcc переварить не смог (в основном шаблоны), их позже буду переделывать.
Пока ничего не выкладываю в общий доступ, ибо пока все это по сути лишь набор компонент, которые еще предстоит связать воедино, но если кому интересно - некоторыми вещами могу персонально поделиться.