ПОРТИРОВАНИЕ и МИГРАЦИЯ ПО
Мы переносим на новые технологии как целые ИТ-системы, так и отдельные компоненты
Это может быть переход как на другие аппаратные платформы, так и на другие программные технологии. В процессе перехода мы выявляем «узкие» места, где падает производительность, проводим оптимизацию с учетом возможностей выбранных платформ и технологий. Также обеспечиваем техническую документацию, проводим обучение технических специалистов по развертыванию ПО. Можем обеспечивать постоянную техподдержку портированного ПО.
Примеры реализованных проектов:
Перенос базы данных с Oracle на PostgreSQL с максимальным сохранением бизнес-логики, реализованной на уровне СУБД, которая взаимодействует с бэк-ендом, реализованным на Java. Сделано также множество оптимизаций.
Технологии: СУБД Oracle, СУБД PostgreSQL, Ora2Pg
Для эффективной работы вычислительных приложений на процессорах «Эльбрус» адаптируются и оптимизируются специализированные библиотеки, как оригинальные, так и широко используемые на других платформах:
- OpenCV –библиотека компьютерного зрения. Специфические оптимизации существенно улучшили производительность: например, при вычислении функции GEMM (умножение матриц) процессор Эльбрус с 800 МГц обгоняет процессор Intel х86 с 3.4 ГГц на 20%
- EML - библиотека математических функций
- LibreSSL – библиотека шифрования
- Библиотека функций цифровой обработки сигналов для специализированного сопроцессора DSP
Для российской аппаратной платформы, на основе которой выпускаются российские процессоры "Эльбрус", сделано портирование нескольких очень популярных программных платформ на основе открытых проектов. Это позволило запускать на "Эльбрусах" программные приложения и системы, которые работают на основе Java, JavaScript и С#. При этом некоторые компоненты этих технологий реализованы с нуля. Также проведено множество оптимизаций, которые многократно улучшили производительность. Работа по этим направлениям продолжается, подробности здесь:
- Виртуальная машина Java на основе проекта OpenJDK; выпущено уже более 10 последовательных версий
- Виртуальная машина языка JavaScript на основе двух "движков" - V8 из браузера Chrome и SpiderMonkey из браузера FireFox
- Реализация поддержки языка C# на основе проекта Mono
В рамках реинжиниринга большого коммерческого пакета по корпоративному управлению проектами реализованы:
- Перенос пользовательского интерфейса с языка C и Win32 API на язык Java и библиотеку SWT
- Реинжиниринг приложения, написанного с использованием устаревшего (1997 г) пакета Visual Prolog v4.1 до современного уровня через трансформацию проприетарного расширения языка к современному стандарту с последующей генерацией Java кода. Как следствие произошло расширение поддерживаемых платформ для бэк-енда до Win/Linux x32/x64.
Технологии: С, Java, Prolog, SWT