Веб-сервисы интеграции. Для чего они нужны?

15 12

Введение.

Продолжая серию статей по нововведениям в DIRECTUM 4.8, следует уделить внимание вопросу интеграции DIRECTUM с другими системами. Компоненты для интеграции появились в DIRECTUM уже давно. Например, коннектор к SAP существует, начиная с версии DIRECTUM 4.5. Примерно в то же время появились коннекторы к 1С и Axapta. Они позволяют синхронизировать данные между интегрированной системой и системой DIRECTUM, связывать объекты интегрированной системы и документы DIRECTUM, стартовать задачи DIRECTUM из интегрированной системы и т.д. Но главное их ограничение состоит в том, что для интеграции необходимо, чтобы обе системы были установлены на одном компьютере.

Для большего удобства пользователей необходима связь интегрированной системы и DIRECTUM именно «на расстоянии», т.е. так, чтобы интегрированная система находилась на одном сервере, а DIRECTUM на другом. Причем довольно часто между системами отсутствует связь по локальной сети и есть возможность связи только через Интернет.

Раньше такое взаимодействие было невозможно. Но в версии DIRECTUM 4.8 оно стало возможным, благодаря разработанным веб-сервисам интеграции.

Прежде, чем перейти к рассмотрению назначения и механизма обмена данными между системами через веб-сервисы, необходимо напомнить, что представляет из себя веб-сервис.

Веб-сервис, (или веб-служба, англ. web service) — идентифицируемая веб-адресом программная система со стандартизированными интерфейсами. Веб-службы могут взаимодействовать друг с другом и со сторонними приложениями посредством сообщений, основанных на определённых протоколах (XML, JSON и т. д.). Веб-служба является единицей модульности при использовании сервис-ориентированной архитектуры приложения.

Из приведенного определения видно, что веб-сервис интеграции – это просто частный случай применения веб-сервисов.

Применение.

Веб-сервис интеграции предназначен для организации обмена данными между системой DIRECTUM и интегрированной системой в условиях, когда между системой DIRECTUM и интегрируемой системой нельзя установить связь через COM-объекты. Также веб-сервисы позволяют расширить возможности работы с объектами системы DIRECTUM в интегрируемой системе.

Веб-сервис обеспечивает выполнение следующих действий:

  • создание задачи;
  • загрузка документов в систему DIRECTUM, получение информации о документах, создание, обновление, получение связей документов системы DIRECTUM с объектами внешней системы, получение метаинформации карточки документа;
  • загрузка записей справочника в систему DIRECTUM, получение информации о записях справочника, получение метаинформации карточки записи справочника;
  • преобразование данных (преобразование xml-пакета в формат системы DIRECTUM);
  • обработка синхронного/асинхронного метода;

Различают два типа методов веб-сервиса:

синхронный – метод, результаты которого ожидаются в системе, инициирующей запрос;

асинхронный – метод, результаты которого не влияют на систему, инициирующую запрос. В качестве возвращаемого значения передается ИД запроса. Подробную информацию о выполнении запроса можно посмотреть в лог-файле.

  • выполнение прикладных сценариев после загрузки данных в систему DIRECTUM.

Архитектурно веб-сервис интеграции представляет собой WCF-сервис. (Windows Communication Foundation — программный фреймворк, используемый для обмена данными между приложениями входящими в состав .NET Framework). Обмен данными производится через SOAP-пакеты. Формат обмена данными зависит от типа объекта, который передается из одной системы в другую.

Следует отметить, что для установки требуется серверная лицензия Веб-сервисы интеграции.

Пример работы веб-сервисов интеграции.

В заключение обзора рассмотрим пример загрузки данных в интегрированную систему, когда инициатором является интегрированная система.

1. Интегрированная система вызывает методы веб-сервиса.

2. Веб-сервис получает данные из системы DIRECTUM.

3. Веб-сервис возвращает данные в интегрированную систему.

15
Авторизуйтесь, чтобы оценить материал.
4
Иван Середкин

Веб-сервис обеспечивает двустороннюю связь или одностороннюю? Т.е. из DIRECTUM можно с помощью веб-сервиса запросить данные из удаленной системы (нажал на кнопку в DIRECTUM и получил данные из 1С)?

Артем Шастин
Веб-сервис обеспечивает двустороннюю связь или одностороннюю? Т.е. из DIRECTUM можно с помощью веб-сервиса запросить данные из удаленной системы (нажал на кнопку в DIRECTUM и получил данные из 1С)?
Только одностороннюю. Можно в удаленной системе запросить данные из DIRECTUM или загрузить данные в DIRECTUM. Инициатором может быть только удаленная система. 
Юрий Шаталинский

Т.е. инициировать из DIRECTUM какой либо обмен данными нельзя? Я правильно Вас понял?

Артем Шастин
Т.е. инициировать из DIRECTUM какой либо обмен данными нельзя? Я правильно Вас понял?

Да, Юрий, Вы все верно поняли: используя веб-сервисы интеграции системы DIRECTUM нельзя инициировать из DIRECTUM обмен данными. Для того, чтобы инициировать обмен данными из DIRECTUM необходимо обратиться к аналогичным веб-сервисам удаленной системы, если таковые имеются.

 

Анатолий Юмашев

Артем, спасибо за ценный материал. Я прям с большим удовольствием прочитал.

А вопрос такой... я правильно понимаю что эти сервисы, по сути делают ДИРЕКТУМ равноправным участником систем поддерживающих SOA?

И я правильно понимаю что SOA это такой очень абстрактный умный слово, под которым понимается много чего, но по сути это все сводится к тому, что все элементы информационной системы организации начинают обмениваться между друг другом данными посредством таких вот веб-сервисов?

Или я ошибаюсь и плохо понимаю предмет SOA применительно к данному материалу?

Артем Шастин

Анатолий, на самом деле, сложно дать однозначный ответ на Ваши вопросы, но тем не менее можно попытаться это сделать.

Действительно, DIRECTUM имеет возможности для интеграции с различными системами с помощью стандартных протоколов (SOAP). Это как раз и является одним из признаков SOA.

По поводу правильности понимания: не мне судить, правильно ли Вы понимаете суть SOA. Но мое личное мнение, исходя из определения, что суть SOA именно в организации обмена между модулями с помощью на (веб-)сервисов. Так что, думаю, Ваши суждения вполне обоснованы.

Дмитрий Тарасов

Веб-сервисы интеграции вещь конечно очень полезная и нужная, но почитал документацию и обнаружил, что их функционал в текущей реализации сильно урезан. Отсутствует возможность работы с поисками (что на мой взгляд очень критично), задачи можно стартовать только по ТМ и т.п. Итого, доступных методов в документации насчитал чуть более двадцати, что составляет совсем маленькую часть от возможностей системы. Ради любопытства зашел на сайт DIRECTUM в раздел цены и ужаснулся. Мне кажется за такую цену функционал веб-сервисов интеграции должен быть значительно шире. В связи с этим вопрос, планируется ли расширение существующего функционала веб-сервисов интеграции в ближайшее время?

Артем Шастин
Веб-сервисы интеграции вещь конечно очень полезная и нужная, но почитал документацию и обнаружил, что их функционал в текущей реализации сильно урезан. Отсутствует возможность работы с поисками (что на мой взгляд очень критично), задачи можно стартовать только по ТМ и т.п. Итого, доступных методов в документации насчитал чуть более двадцати, что составляет совсем маленькую часть от возможностей системы. Ради любопытства зашел на сайт DIRECTUM в раздел цены и ужаснулся. Мне кажется за такую цену функционал веб-сервисов интеграции должен быть значительно шире. В связи с этим вопрос, планируется ли расширение существующего функционала веб-сервисов интеграции в ближайшее время?
Да, Дмитрий, расширение функционала веб-сервисов планируется, причем в самое ближайшее время. Например совсем скоро появится поиск по записям справочника и документам. Помимо этого, будут и другие изменения, подробнее о которых будет говориться в новости о выпуске версии. Также в дальнейшем планируется расширение функционала. Не стоит забывать о том, что мы всегда готовы услышать пожелания по необходимому функционалу.
 
При высказывании предложений по функционалу, следует помнить, что данные сервисы предназначены для интеграции, а не для работы с DIRECTUM.
 
Дмитрий Тарасов

Хорошие новости smiley

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

Ну, и например, было бы неплохо, если бы веб-сервисы позволяли выполнять произвольные запросы к БД и возвращать результат запроса. Тогда многие задачи можно было бы решить подобным функционалом.

Иван Чурбаков

Произвольные запросы к БД - это большая дыра в безопасности.

Дмитрий Тарасов
Произвольные запросы к БД - это большая дыра в безопасности.

Согласен smiley
Просто очень хочется какой-нибудь универсальный механизм, чтобы не ждать пока в веб-сервисы добавят очередной нужный функционал.
Денис Архипов

пусть добавят возможность расширять веб сервисы своими методами. вон в 1С-ке пресловутой вообще конструктор веб сервисов есть.
 

Авторизуйтесь, чтобы написать комментарий