En Ru
Разработка
на платформе Java

ТЕХНОЛОГИИ JAVA


Мы создаем корпоративные приложения со сложным пользовательским интерфейсом, широким набором функций бизнес-логики и самоконтроля, используя при этом различные технологии Java.
Мы не только используем различные библиотеки и фреймворки, но также расширяем их и приспосабливаем к специфическим требованиям архитектуры отдельных приложений. 






Разработка комплексных алгоритмов

Использованные технологии: J2SE

Избранные решения:
  • Online планирование оптимального плана действий. Комбинированный алгоритм, использующий подход, основанный на генетическом алгоритме. Базируется на наборе правил исключения вариантов плана,  которые имеют потенциально низкую возможность достижения  приемлемых результатов. Алгоритм был оптимизирован для снижения количества вычислений, чтобы удовлетворить требования ограничений по времени, обусловленные online-природой задачи.
  • Семантический анализ аналитической модели данных. Приложение анализирует модель данных (сущности, атрибуты и отношения), выделяет семантику и автоматически создает пользовательский интерфейс для просмотра, ввода и изменения информации. Обмен данными между GUI и базой данных происходит автоматически. Цель – быстрая разработка приложения. Семантический анализ требует сложных алгоритмов, в частности во время  семантического упорядочивания и группировки атрибутов сущности.

Разработка Java EE приложения

Использованные технологии: EJB, Hibernate, JMS, Java Mail
Избранные решения:
  • Механизм поиска в базе данных с использованием EJB. Универсальный подход, который позволяет выполнять эффективный поиск по произвольному набору критериев в базе данных с разбиением на страницы и сортировкой данных.
  • Автоматическое обновление данных, предоставляемых пользователю. Основанный на JMS механизм уведомлений, который позволяет клиентскому приложению работать с последними версиями данных, предоставляемых сервером.
  • EJB performance tuning. Набор решений для повышения быстродействия Session и Entity beans: группировка логики с помощью session facade beans, отложенная загрузка для entity beans, настройка EJB-контейнера сервера приложений.
  • Менеджер транзакций. Нестандартный менеджер транзакций, который позволяет управлять набором параллельных транзакций.
  • Менеджер блокировок. Механизм блокировок для обеспечения  коллективного доступа к данным.
Так как все перечисленные решения основываются на  API платформы Java EE, мы в состоянии разрабатывать решения с использованием похожих технологий (например, Spring Framework).
 

Web-приложения

Использованные технологии: Struts 2, Tiles, Java Servlets, JSP, JavaScript, Portlets
Избранные решения:
  • Интернационализация и произвольное преобразование данных. Web-приложения с поддержкой множества языков и произвольных форматов представления данных.
  • Механизм поиска данных. Набор решений на уровне представления, который позволяет использовать общий механизм поиска данных по произвольному набору критериев. Взаимодействует с бизнес-уровнем  поисковой системы для получения данных из базы данных.
  • Защищенные страницы. Web-приложения, которые поддерживают различное поведение (возможные действия, наборы компонентов и их доступность) в зависимости от текущих прав пользователя.
  • Составные страницы. Создание страниц как сложных представлений, которые состоят из нескольких независимых частей, которыми можно оперировать отдельно.
  • Многократно используемые шаблоны страницы. Шаблоны страниц, встраиваемые в макет страницы. Они могут быть модифицированы произвольным образом путем указания конкретных значений характеристик шаблона.
  • Многократно используемые таблицы. Таблицы для JSP с поддержкой сортировки данных и разбиения данных на страницы.
  • Мультибраузерный HTTP/XML преобразователь Ajax запроса/ответа. Преобразует асинхронный запрос/ответ в общий формат (XML), который позволяет абстрагироваться от особенностей реализации конкретного браузера при использовании возможностей Ajax.

Приложение со сложным пользовательским интерфейсом

Использованные технологии: SWING

Избранные решения:
  • Форма с автоматическим размещением компонентов. Компонент, пригодный для повторного использования, базирующийся на JInternalFrame и обеспечивающий саморегулируемое  автоматическое размещение подкомпонентов согласно их логической группировке. Все необходимые корректировки размера производятся автоматически. Несколько стратегий группировок могут быть скомбинированы произвольным образом.
  • Таблица, с расширенной функциональностью. Многократно используемый компонент для основанного на таблицах представления данных, встраиваемый в другие компоненты. Поддерживает элементы-изображения, составные строки и колонки, сортировку и фильтрацию по произвольным критериям, быстрый поиск, ручное переупорядочение столбцов.
  • Управление фокусом. Реализация нестандартного поведения фокуса
  • Измененное поведение компонентов. Реализация UI-компонентов, которые поддерживают нестандартное поведение: встроенные верификаторы, определённый разработчиком формат отображения данных, настраиваемые обработчики событий, и т.д.


Платформы баз данных

Использованные технологии: Oracle Database 8i, 9i, 10g, 11, PL/SQL and MySQL, JDBC
Избранные решения:
  • Индексирование для больших таблиц (сотни миллионов записей).
  • Оптимизация запросов подсказками. Создание запросов, использующих специфические для Oracle подсказки оптимизатора для улучшения производительности.
  • Автоматическое обновление базы данных. Встроенная автоматическая установка обновлений  схемы баз данных (структур таблиц, хранимых процедур, последовательностей). Это обеспечивает автоматическое обновление структуры базы данных  при инсталляции новой версии программного обеспечения.
  • Хранимые процедуры. Часть логики, управляющей данными, находится в хранимых процедурах для улучшения быстродействия приложения.
  • Нестандартные типы данных. Пользовательские объектные и списочные типы данных, используемые хранимыми процедурами и приложениями (Oracle Database Server).

Приложение и Web серверы

Использованные технологии: JBoss, Orion Application Server, Tomcat, WebSphere, WebLogic
У нас есть опыт в создании и  установке распределенных программных систем, работающих на различных серверах приложениях и Web серверах: JBoss, Orion Application Server, Tomcat, WebSphere.

Многопоточность, рефлексия, расширение для управления

Использованные технологии: J2SE, JMX
Избранные решения:
  • Мониторинг состояния потоков. Встроенная система мониторинга состояния потоков позволяет  обнаружить  блокировки потоков различного типа.  

Поддержка формата пользовательских данных

Использованные технологии: XML, POI Framework
Избранные решения:
  • Excel-export framework. Основанный на использовании библиотеки POI экспорт пользовательских данных в файл Excel с возможностью произвольного форматирования данных.
  • Служба обмена сообщениями, базирующаяся на XML. Автоматический обмен данными между несколькими приложениями, основанный на XML.  
  • DBF/XML преобразование. Решение, которое автоматически преобразует данные со специфической структурой между этими двумя форматами.

Автоматическое тестирование

Использованные технологии: JUnit, TestNG
Избранные решения:
  • Расширение JUnit framework для обеспечения взаимной независимости тестов, изменяющих информацию в базе данных. Решение, поддерживающее автоматический откат тестов (включая откат изменений в базе данных). Позволяет создавать набор независимых тестов, выполняемых на сервере.