Авторский вариант. Статья была опубликована c небольшими сокращениями в журнале BYTE/Россия (N 06/2005, с.32)
- Задачи создания и развития автоматизированных систем...
- COM-соединения и Automation
- Обмен данными
- Создание Web-приложений
- Таблица. Средства и механизмы интеграции "1С:Предприятие 8.0"
Задачи создания и развития автоматизированных систем...
Задачи создания и развития автоматизированных систем управления организаций сегодня все в большей степени с вопросами интеграции из отдельных подсистем и компонентов. Поэтому неудивительно, что расширение функциональных и технологических возможностей базовых платформ для создания подобных решений масштаба предприятия в последние годы во многом связано с задачами интеграции. Более того, арсенале ведущих поставщиков ERP-систем корпоративного уровня появились соответствующие специализированные продукты (например, SAP NetWeaver и InterSystems Ensemble), которые, как мы можем отчетливо наблюдать, постепенно становятся центральным ключевым элементом всего комплекса поставляемых продуктов.
По мере роста сферы текущих и потенциальных интересов ведущего российского игрока на поле автоматизации управления предприятий, фирмы "1С", мы также видим существенное усиление интеграционных средств, реализуемых в первую очередь на платформенном уровне, а затем уже в прикладных решениях. Выпущенная немногим более полутора лет назад и динамично развивающая все это время платформа "1С:Предприятие" 8.0 (1СП8) на сегодня обладает значительным спектром функций и механизмов взаимодействия с внешними программами и оборудованием на основе общепризнанных открытых стандартов и протоколов (рис. 1).
Рис. 1. Основные возможности интеграции "1С:Предприятия" 8.0 с внешними приложениями и источниками данных.
Тут сразу нужно отметить, что эти средства имеют явно неравноценный характер, решая задачи интеграции разного уровня. Однако, в этой связи нужно отметить, что проблемы интеграции существуют не только для крупных корпораций, но и для небольших фирм, при этом, естественно, суть этих проблем и соответственно методы их решения имеют свою специфику. Вполне понятно, что "1С", работая на массовом рынке, должна поддерживать широкий набор решений.
Еще один специфический момент заключается в том, что говоря о проблематике интеграции, "1C" включает в этот круг вопросов и задачи взаимодействия приложений внутри собственного семейства экономического ПО. Это также вполне понятно, и здесь можно выделить два момента:
- На практике формирование информационных систем предприятий идет, как правило, по
принципу "снизу-вверх" и путем автоматизации отдельных участков работы. Определенные же
сложности взаимодействия даже однородных решений возникают из-за сильного различия в
настройках систем, использования специфических функциональных расширений и т.д. (Другим
словами: высокие возможности по адаптации продукта к конкретному участку автоматизации
создают определенные препятствии на пути интеграции.)
- Все чаще возникают задачи создания сложных распределенных систем. Более того, в силу специфики архитектуры самой платформы 1СП8 и схем организации реального бизнеса заказчиков, "1С" особое внимание в своих технологиях уделяет поддержке децентрализованных моделей информационных систем.
В целом средства и механизмы интеграции "1С:Предприятие 8.0" позволяют выполнять следующие основные задачи (см. таблицу):
- создавать, обрабатывать и обмениваться данными различных форматов;
- осуществлять доступ ко всем функциональным объектам системы "1С:Предприятие 8.0";
- поддерживать различные протоколы обмена;
- поддерживать стандарты взаимодействия с другими подсистемами;
- разрабатывать собственные интернет-решения.
И тем не менее, как мы уже не раз отмечали ранее, основной вектор развития технологий 1СП8 связан с повышения масштаба и сложности реализуемых проектов. Именно поэтому мы сейчас детальнее рассмотрим только новые возможности интеграции, появившиеся впервые и нацеленные на создание систем среднего и крупного уровня.
Проблематика интеграции включает также и такой важный аспект, как обеспечение взаимодействия людей и деловых процессов. На решение этих задач нацелен механизм управления бизнес-процессами, реализованный в выпуске "1С:Предприятие" 8.0.10. Подробнее о нем см. "Автоматизация бизнес-процессов в "1С:Предприятие 8.0", BYTE/Россия N 03/2005.
Технологии COM-соединений и Automation используют в "1С:Предприятии" еще со времен версии 7.0, но о них нужно немного сказать, так как они (особенно COM-соединения) играют ключевую роль в обеспечении взаимодействия 1СП8 с внешними приложениями через стандартный механизм Microsoft COM. В целом работа COM-соединения (рис. 2) подобна режиму Automation- сервера (используются одни и те же системные программные интерфейсы.), но есть и важные отличия:
*в случае Automation-сервера запускается полноценное приложение 1СП8, а в случае COM- соединения запускается относительно небольшой внутрипроцессный COM-сервер; *при работе через COM-соединение недоступны функциональные возможности так или иначе связанные с организацией пользовательского интерфейса системы 1СП8; *COM-соединения не используются модуль приложения конфигурации 1СП8, его роль выполняет модуль внешнего соединения.
В то же время COM-соединения имеют следующие преимущества по сравнению с Automation- сервера:
- более быстрая установка соединения, так как не требуется создания отдельного процесса операционной системы, а все действия производятся в рамках вызывающего процесса;
- более быстрое обращение к свойствам и методам объектов системы 1СП8, так как для организации обращения не требуется организации межпроцессной коммуникации;
- меньший расход ресурсов операционной системы.
Основное назначение Automation-сервера 1СП8 - управление прикладными решениями 1СП8 из других приложений и выполнение действий аналогичных интерактивным действиям. Он предоставляет доступ ко всем свойствам и методам своего глобального контекста, имеет дополнительные свойства и методы для выполнения действий, специфичных для работы в режиме Automation. Как и многие современные программные продукты, 1СП8 может выступать в роли клиента Automation. Поэтому имеется возможность из системы 1СП8 обращаться к другой копии 1СП8 (например, к другой конфигурации) для обмена данными.
Рис. 2. Используя COM-соединение и средства работы с XML можно организовывать интеграцию с прикладными системами по принятым в них форматам. Например, для такой интеграции можно использовать Microsoft BizTalk Server.
Механизмы обмена данными позволяют создавать распределенные информационные системы на основе 1СП8 и других информационных систем. Они реализуется благодаря использованию ряда средств технологической платформы, которые разработчик может применять как по отдельности, так и в различных комбинациях, в зависимости от конкретной решаемой задачи (рис. 3). Такой подход позволяет обеспечить гибкость механизмов обмена и их настраиваемость на решение как можно большего круга задач. В состав средств платформы, используемых для построения схем обмена данными, входят: объекты "План обмена", средства XML-сериализации и средства чтения/записи XML-документов.
Рис. 3. Архитектура механизмов обмена данными в "1С:Предприятие" 8.0.
Планы обмена содержат информацию об узлах, которые могут участвовать в обмене данными, определяют состав информации и указывают, следует ли задействовать механизм распределенной информационной базы при обмене (рис. 4). В одном прикладном решении может существовать несколько планов обмена, каждый из которых может описывать свой порядок обмена данными. Например, если выполняется обмен данными с удаленными складами и удаленными офисами, то, скорее всего, будет существовать два плана обмена (один для обмена со складами, другой - для офисов), поскольку состав данных, которыми производится обмен со складами, будет значительно "уже", чем состав данных, предназначенных для обмена с офисами.
Рис. 4. Описание плана обмена в "1С:Предприятие 8.0".
XML-сериализация - это процесс преобразования данных 1СП8 в последовательность данных формата XML и наоборот. Средства чтения и записи XML-документов позволяют работать с XML- данными без привязки к объектам 1СП8. В частности, они позволяют открывать XML-документы для чтения, получать из них данные, создавать новые XML-документы и записывать в них данные.
При помощи этих средств могут быть реализованы две основные технологии:
- универсальный механизм обмена данными (УМОД);
- механизм распределенных информационных баз (МРБД).
УМОД предназначен как для создания территориально распределенных систем на основе как 1СП8.0, так и решений. Однако этот механизм позволяет переносить только данные, перенос конфигурации и административной информации 1СП8.0 при его помощи невозможен. В качестве в качестве формата обмена используются XML документы, при этом при обмене данными между информационными базами 1СП8 не накладывается ограничений на идентичность конфигурации и структуры конкретных объектов. В то же время в одной конфигурации может быть создано несколько независимых схем обмена с различными информационными системами. Важным является также то, что при организации схемы обмена не накладывается ограничений на структуру распределенной системы. Может быть организована как классическая структура типа "звезда", так и более сложные многоуровневые структуры типа "снежинка" и другие;
МРИБ играет ключевую роль в создании территориально распределенных систем на основе идентичных конфигураций 1СП8 (распределенная система должна иметь древовидную структуру, в которой существует корневой узел и определено отношение "главный - подчиненный" для каждой пары связанных узлов). Данная технология обеспечивает регистрацию изменений в базах данных, инфраструктуру сообщений и обмен информацией в формате XML. Централизованное управление конфигурацией системы выполняется с помощью визуальных средств. С ее помощью выполняется не только обмен данными, но и перенос программной конфигурации и административной информации. МРИБ реализует следующие основные возможности:
- интерактивное создание распределенной системы и выполнение обмена данными без дополнительного программирования;
- обеспечение идентичности конфигураций информационных баз, входящих в состав распределенной системы;
- подключение новых и отключение существующих узлов;
- создание начального образа информационной базы для нового узла;
- реализация различных способов разрешения коллизий при одновременном изменении данных в разных узлах распределенной системы;
- в рамках одной распределенной информационной базы может быть создано несколько схем обмена;
- распределенная информационная база может содержать схемы обмена с другими информационными системами, в том числе с информационными базами 1С:Предприятия, не являющимися распределенными информационными базами;
- задание условий на передачу и прием изменений на уровне отдельных элементов данных; реализация восстановления обмена данными в таких случаях, как восстановление информационных баз из резервных копии и т.д.;
- сжатие сообщений обмена в формате .ZIP и автоматическая распаковка сообщений обмена при приеме.
Структура распределенной информационной базы описывается при помощи объекта "План обмена", в котором отражаются набор узлов и состав данных. Кроме этого, планы обмена реализуют работу трех механизмов, задействованных в распределенной информационной базе:
- Основной механизм распределенных информационных баз. Предоставляет интерактивные
и программные средства обмена в распределенной информационной базе, в том числе на
основе других средств обмена данными, таких как служба регистрации изменений,
инфраструктура сообщений, XML-сериализация и чтение/запись XML-документов.
-
Служба регистрации изменений. Позволяет получать информацию о том, какие элементы
данных были изменены, и в какой узел обмена их необходимо передать.
- Инфраструктура сообщений. Перенос данных между узлами распределенной информационной базы выполняется с помощью сообщений, которые поддерживаются инфраструктурой сообщений. Каждое сообщение относится к определенному плану обмена, имеет определенный узел-отправитель, узел-получатель и целочисленный номер.
Особое положение технологии создания Web-приложения в 1СП8 заключается в том, что она является не каким-то внутренним механизмом платформы, а самостоятельным продуктом ? "1С:Предприятие 8.0. Web-расширение 1.0" (1СП8-Web), инструментальным средством для организации взаимодействия Интернет-пользователей с прикладными решениями на базе 1СП8 (рис. 5).
Рис. 5. Положение "1C:Web-расширения" в системе "1С:Предприятие 8.0"
Возможность клиентского Web-доступа к приложениям "1С:Предприятие" появилась только весной 2000 г., когда был выпущен компонент "Web-расширение" для платформы версии 7.7 (см. "Разработка Web-приложений для "1С:Предприятия", BYTE/Россия N 04/2001). В нем была использована технология ASP, позволяющая написать код активных страниц на внутреннем языке 1С:V7Script. Однако вся разработка ASP-страниц должна была выполняться исключительно "руками", без применения каких бы то ни было специальных средств. Очевидно, что такие дедовские методы были непригодны для создания сложных Web-приложений и могли применяться лишь в ограниченных масштабах. Тем не менее с помощью этого варианта Web-расширения целый ряд компаний-разработчиков не только получал собственные продукты, но и реализовывал некоторые проекты и тиражные решения.
Нынешний вариант Web-расширения — это качественно более мощный (по сравнению с 7.7) инструмент, который позволяет решать довольно широкий круг задач, связанных с использованием Интернет-технологий, — начиная от обеспечения клиентского Web-доступа и заканчивая интеграцией с внешними приложениями.
В основе концепции 1СП8-Web лежит стандартная технология создания ASP.NET-приложений, дополненная программными компонентами 1СП8, которые обеспечивают, с одной стороны, привычный для пользователя 1СП8 клиентский интерфейс, а с другой — взаимодействие с базой данных и с функционалом прикладного решения (рис. 6). Пользовательский интерфейс и бизнес-логика создаются в рамках технологии ASP.NET (приложение типа Web Forms). Для программирования разрешается применять любой .NET-язык, сами авторы 1СП8-Web рекомендуют для программирования использовать C# (демонстрационный пример, шаблоны и конструкторы ориентированы на этот язык).
Рис. 6. Подключение дополнительных компонентов "1С:Web-расширения" к среде Visual Studio .NET
Одна из целей 1СП8-Web — повысить эффективность разработки Web-приложений в среде Visual Studio .NET с учетом специфики прикладных решений семейства 1СП8. Большинство компонентов 1СП8-Web, реализованных в виде элементов управления, предназначено именно для решения этой задачи: они позволяют строить пользовательский интерфейс и обрабатывать данные в традиционном стиле "1С:Предприятия". При этом разработчик может самостоятельно создавать Web-формы или использовать те, которые автоматически генерируются системой на основе структуры прикладного решения 1СП8. Во втором случае обеспечивается простая адаптация Web-решения при внесении изменений в хост-приложение.
С учетом того, что применение Web-расширения чаще всего связано с задачами презентации и анализа данных, в состав 1СП8-Web включен также набор компонентов для создания аналитических отчетов, опирающийся на мощные механизмы 1СП8. В частности, пользователь Web-приложения с помощью инструмента "Построитель отчета" может визуально настроить исходный текст запроса и получить оформленный результат его обработки — при этом поддерживается механизм расшифровок для детализации полученных данных. Но все перечисленные выше средства могут лишь повысить эффективность разработки Web- приложения. Главная же технологическая задача 1СП8-Web — реализовать механизм взаимодействия собственно с информационной базой прикладного решения (см. рис. 7) — метаданными, COM-соединениями и объектами доступа к данным.
Рис. 7. Общая схема взаимодействия компонентов "1С:Web-расширения"
Метаданные содержат сведения о структуре прикладного решения и его информационной базы. Они автоматически генерируются при создании Web-приложения и хранятся в подключаемых к проекту файлах (DLL и XML). Кроме того, если конфигурация информационной базы была изменена, утилита генерации метаданных может быть запущена и отдельно.
Для доступа к функционалу прикладного решения (в том числе к информационным базам) используются COM-соединения — универсальный низкоуровневый программный интерфейс для интеграции 1СП8 с внешними приложениями. Это наиболее эффективный инструмент организации взаимодействия программ. В частности, возможность сохранения пула открытых COM-соединений для их повторного использования позволяет экономить ресурсы Web-сервера и уменьшает время отклика системы.
Однако с точки зрения оптимизации процесса разработки к данным 1СП8 лучше всего обращаться через высокоуровневый слой специализированных объектов ADO.NET. Их применение позволяет реализовать эффективное взаимодействие с компонентами бизнес-логики и визуального интерфейса. Кроме того, с помощью таких объектов можно не только получать данные, но и модифицировать их.
В нынешнем варианте 1СП8-Web значительная часть инструментария предназначена для программирования Web-интерфейса, но наиболее важным все же видится набор компонентов для работы с данными, который фактически представляет собой интерфейс между платформами 1СП8 и .NET. С его помощью разработчики помимо возможности реализации собственно Web- приложений могут уже сегодня создавать весь спектр программ, реализуемых в среде .NET, включая Web-решения для мобильных клиентских устройств, обычные Windows-приложения, Web- сервисы, .NET-компоненты и пр. Не говоря уже о том, что VS.NET обладает широким спектром средств (в том числе третьих фирм) взаимодействия с различными источниками данных и приложениями.
Таблица. Средства и механизмы интеграции "1С:Предприятие 8.0"
Функция | Назначение |
Работа с текстовыми документами | |
Встроенный язык 1СП8 позволяет разработчику создавать, динамически формировать и записывать текстовые документы, в том числе на основе готовых шаблонов. Обмен данными с использованием текстовых документов может быть одним из самых простых способов взаимодействия с другими информационными системами. Работа с текстовыми файлами очень важна также в плане формирования отчетов с использование недавно появившегося механизма применения макетов форм. Для этого разработчик может использовать специальный редактор текстов. | |
Последовательное чтение текстовых файлов | Выделение этого пункта вызвано тем, что имеют специальные функции анализа содержимого вводимых файлов, в том числе с использованием разных кодовых таблиц символов. |
XML | 1СП8 позволяет организовывать интеграцию с прикладными системами с использованием XML-документов, являющихся на сегодняшний день общепринятым средством представления данных. Поддержка XML выполнена на уровне встроенного языка 1СП8. |
DBF-файлы | Механизм работы с базами данных формата DBF предназначен для обеспечения возможности манипулирования ими непосредственно из встроенного языка системы 1СП8 через объект xBase. Можно работать как с существующими базами данных, так и создавать новые БД произвольной конфигурации. |
COM-соединение | Основная задача, решаемая с помощью COM-соединения — обеспечение надежного и быстрого программного доступа к данным системы 1СП8 из внешних приложений. В общем и целом работа с системой 1СП8 через COM-соединение подобна работе в режиме Automation-сервера. |
Automation Client/Server | Назначение Automation-сервера 1СП8 — управление прикладным решением из других приложений и выполнение действий аналогичных интерактивным действиям. |
Работа с HTML-документами | Средства работы с HTML-документами позволяют встраивать их в формы прикладного решения и выполнять их редактирование средствами встроенного языка |
Работа с файловой системой | Доступ к функциям работы с файловой системой реализован на уровне встроенного языка. Эта возможность может быть использована при организации взаимодействия с другими информационными системами через общие каталоги. |
Технология внешних компонентов | Данная технология позволяет создавать программы, которые будут динамически подключаться и тесно взаимодействовать с системой 1СП8. Разработка компонентов может выполняться с помощью любого инструмента поддерживающего COM-стандарты (Visual Studio, Delphi и пр.) |
Элементы управления ActiveX | Платформа 1СП8 позволяет внедрять в формы и табличные документы дополнительные элементы управления, поддерживающие технологию ActiveX |
Макеты ActiveDocument | Технология ActiveDocument предназначена для редактирования документов внешними по отношению к 1СП8 редакторами. |
Работа с Интернет | Работа ведется непосредственно из встроенного языка. Разработчик может выполнять отправку и прием писем электронной почты (как с использованием установленного на компьютер встроенного клиента, так и без него), а также осуществлять обмен данными по протоколам HTTP (HTTPS) и FTP |
WEB-расширение | Web-расширение является отдельным программным продуктом и позволяет встраивать доступ к данным 1СП8 в существующие Web-сайты и Web- приложения, а так же создавать готовые Web-приложения, использующие информационную базу 1СП8. |
Обмен данными | Механизмы обмена данными, реализованные в технологической платформе 1СП8, позволяют создавать территориально распределенные системы как на основе информационных баз 1СП8, так и других прикладных решений. |
Начать дискуссию