• Москва улица Мишина дом 35
    8 (495) 602-00-48
  • Санкт-Петербург улица Шпалерная дом 51, лит "А"
    8 (812) 703-55-05
  • Телефон горячей линии
    8 (800) 100-95-30
Технологии

На протяжении многолетней работы в области разработки программного обеспечения в компании ИНСОФТ опробовано множество технологических цепочек и фреймворков с применением различных языков программирования. Каждый вариант имеет свои преимущества и может быть выбран в зависимости от приоритетов, заданных Заказчиком в техническом задании, например: высокое быстродействие, масштабируемость, распределённость системы, работа с большими объёмами данных, скорость разработки, особые требования к интерфейсу. Основные технологические платформы, используемые в нашей компании, подробно описаны ниже.

1. Классическая трёхзвенная цепочка для построения Web-приложений с применением языков SQL, Java, JavaScript, html/css.

технологии1

Каждое Web-приложение строится по трёхзвенной архитектуре, однако не всегда имеется чёткое разделение на уровни клиента, сервера приложений и сервера базы данных со стороны исходного кода. Тем не менее классический подход заключается в том, что программа состоит из трёх частей, каждая из которых пишется на своём языке программирования и с использованием своих библиотек. Главные преимущества такого подхода - высокое быстродействие системы и возможность расширения допустимой функциональности за счёт применения особых приёмов и утилит из используемых фреймворков, например, возможностей СУБД по оптимизации запросов и способам хранения данных или каких-либо нестандартных элементов управления на стороне клиента. Кроме того, такая архитектура позволяет осуществлять распараллеливание работ по уровням приложения на этапе программирования, что позволяет более гибко распределять ресурсы и уменьшает общее время разработки.

На уровне клиента Web-приложение представляет собой совокупность Web-страниц на языке html с применением стилей css, функциональная оболочка клиентской части - JavaScript код. Используемые JavaScript-фреймворки: Sencha ExtJS, jQuery, mootools, twitter bootstrap. Некоторые из них могут генерировать html-код непосредственно из JavaScript и таким образом избавляют программиста от необходимости вручную создавать html-страницы.

Взаимодействие с сервером приложений осуществляется посредством технологии AJAX. Сервер приложений реализует стандарт Java Enterprise Edition и принимает AJAX-запросы с клиента через REST-сервисы (JAX-RS), которые впоследствии обращаются к Enterprise Java Beans (EJB), где и реализована основная серверная логика. Взаимодействие сервера приложений с базой данных осуществляется через Java Persistence API (JPA, Hibernate). В качестве сервера приложений используется ПО семейства JBoss/WildFly. Средство сборки программы из исходных кодов - Maven.

На уровне базы данных используется реляционная СУБД PostgreSQL или Oracle в зависимости от объёмов и требуемых условий обработки данных. Код, связанный с обработкой большого количества данных или с получением статистики, выносится в хранимые процедуры СУБД.

Для получения отчётных форм в приложении используется программный компонент BIRT Viewer Runtime, который может быть встроен в Java-приложение или располагаться на сервере приложений отдельно. Данное средство позволяет генерировать отчёты в привычных для пользователей форматах, таких как PDF, HTML, DOC, XLS, по единому шаблону.

Примеры проектов:

2. Технология построения Web-приложений Java Server Faces (JSF). Основные языки - Java, xhtml/css.

технологии 2JSF-приложение не имеет чёткого разграничения между серверной и клиентской частью. Код сервера и клиента пишется неразделимо и зачастую в одном и том же исходном файле. Вместо html-страниц в JSF используются xhtml-страницы, которые содержат в себе элементы html, JavaScript и AJAX. Эти страницы при выполнении программы компилируются в стандартные Web-страницы браузера, при этом изменяется и код, выполняемый на уровне клиента. Главное преимущество - минимальное количество различных языков программирования, используемых при написании программы. Это позволяет достаточно быстро писать небольшие приложения с привлечением малого количества ресурсов. Ещё один плюс - снижение зависимости от типов и версий браузеров на уровне клиента и СУБД на уровне базы данных, так как основная логика выполняется сервером приложений.

Сама по себе спецификация JSF предоставляет довольно ограниченную функциональность с точки зрения доступных элементов интерфейса, поэтому для расширения возможностей приложения обычно применяются дополнительные JSF-библиотеки, такие как Richfaces, Primefaces, Icefaces. При необходимости в исходные xhtml-файлы можно вставлять фрагменты классического html и/или JavaScript.

Взаимодействие с сервером приложений осуществляется через JSF Beans различных уровней видимости. В дальнейшем логика может быть переадресована EJB. Обращение к БД осуществляется через спецификацию JPA, причём максимум кода работы с базой данных находится на сервере приложений, чтобы уменьшить зависимость от конкретной СУБД. Сервера приложений - ПО семейства JBoss/WildFly. Средство сборки программы из исходных кодов - Maven.

На уровне базы данных используется реляционная СУБД PostgreSQL или Oracle в зависимости от объёмов и требуемых условий обработки данных. Код на сервере базы данных сведён к минимуму - хранимые процедуры и триггеры практически отсутствуют.
Для получения отчётных форм в приложении также может использоваться BIRT Viewer Runtime.
Примеры проектов:

3. Использование средств разработки компании Microsoft.

В компании ИНСОФТ разрабатываются клиент-серверные приложения на основе .NET Framework с использованием языка высокого уровня C#.  Это позволяет вести достаточно быструю разработку клиентской части приложений. Для проектирования интерфейса пользователя используется технология WinForms, которая имеет в своем составе большое количество заготовленных элементов управления. Для взаимодействия клиентской части с базой данных применяются каркасы ADO.NET и LINQtoSQL. C помощью этих технологий можно генерировать код манипуляции данными на основе уже созданных таблиц в БД.

LINQtoSQL позволяет взаимодействовать со строками таблиц базы данных как с полноценными объектами в понимании объектно-ориентированного программирования (ООП). Что ведет к минимизации количества громоздкого серверного кода.

В качестве системы управления базами данных применяется MS SQL Server. Это эффективная, надежная и производительная СУБД, основанная на расширенном диалекте языка SQL – Transact-SQL.

Примеры проектов:

«Муниципальный регистр населения»

АИС «Несовершеннолетние»

АИС «Учет и распределение жилья»

АИС «Опека»

АИС «Физкультура и спорт»

АИС «Культура»

АИС «Молодежная политика»

АИС «Военно-учетный стол»