© Андрей Колесов, 2000Авторский вариант. Статья была опубликована c небольшими сокращениями вжурнале BYTE/Россия (N 06/2005, с.32)
Задачи создания и развития автоматизированных систем...
Задачи создания и развития автоматизированных систем управления организаций сегодня все в большей степени с вопросами интеграции из отдельных подсистем и компонентов. Поэтому неудивительно, что расширение функциональных и технологических возможностей базовых платформ для создания подобных решений масштаба предприятия в последние годы во многом связано с задачами интеграции. Более того, арсенале ведущих поставщиков ERP-систем корпоративного уровня появились соответствующие специализированные продукты (например, SAP NetWeaver и InterSystems Ensemble), которые, как мы можем отчетливо наблюдать, постепенно становятся центральным ключевым элементом всего комплекса поставляемых продуктов.
По мере роста сферы текущих и потенциальных интересов ведущего российского игрока на поле автоматизации управления предприятий, фирмы "1С", мы также видим существенное усиление интеграционных средств, реализуемых в первую очередь на платформенном уровне, а затем уже в прикладных решениях. Выпущенная немногим более полутора лет назад и динамично развивающая все это время платформа "1С:Предприятие" 8.0 (1СП8) на сегодня обладает значительным спектром функций и механизмов взаимодействия с внешними программами и оборудованием на основе общепризнанных открытых стандартов и протоколов (рис. 1).
Рис. 1.Основные возможности интеграции "1С:Предприятия" 8.0 с внешними приложениями и источниками данных.
Тут сразу нужно отметить, что эти средства имеют явно неравноценный характер, решая задачи интеграции разного уровня. Однако, в этой связи нужно отметить, что проблемы интеграции существуют не только для крупных корпораций, но и для небольших фирм, при этом, естественно, суть этих проблем и соответственно методы их решения имеют свою специфику. Вполне понятно, что "1С", работая на массовом рынке, должна поддерживать широкий набор решений.
Еще один специфический момент заключается в том, что говоря о проблематике интеграции, "1C" включает в этот круг вопросов и задачи взаимодействия приложений внутри собственного семейства экономического ПО. Это также вполне понятно, и здесь можно выделить два момента:
В целом средства и механизмы интеграции "1С:Предприятие 8.0" позволяют выполнять следующие основные задачи (см. таблицу):
И тем не менее, как мы уже не раз отмечали ранее, основной вектор развития технологий 1СП8 связан с повышения масштаба и сложности реализуемых проектов. Именно поэтому мы сейчас детальнее рассмотрим только новые возможности интеграции, появившиеся впервые и нацеленные на создание систем среднего и крупного уровня. <*>
<*>Проблематика интеграции включает также и такой важный аспект, как обеспечение взаимодействия людей и деловых процессов. На решение этих задач нацелен механизм управления бизнес-процессами, реализованный в выпуске "1С:Предприятие" 8.0.10. Подробнее о нем см. "Автоматизация бизнес-процессов в "1С:Предприятие 8.0", BYTE/Россия N 03/2005.
В начало статьи
COM-соединения и Automation
Технологии 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-сервера:
Основное назначение 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. Централизованное управление конфигурацией системы выполняется с помощью визуальных средств. С ее помощью выполняется не только обмен данными, но и перенос программной конфигурации и административной информации. МРИБ реализует следующие основные возможности:
Структура распределенной информационной базы описывается при помощи объекта "План обмена", в котором отражаются набор узлов и состав данных. Кроме этого, планы обмена реализуют работу трех механизмов, задействованных в распределенной информационной базе:
Создание Web-приложений
Особое положение технологии создания 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"