© Андрій Колесов, 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 і схем організації реального бізнесу замовників, "1С" особливу увагу в своїх технологіях приділяє підтримці децентралізованих моделей інформаційних систем.
В цілому кошти і механізми інтеграції "1С: Підприємство 8.0" дозволяють виконувати такі основні завдання ( см. таблицю ):
- створювати, обробляти і обмінюватися даними різних форматів;
- здійснювати доступ до всіх функціональних об'єктів системи "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- сервера:
- швидша установка з'єднання, так як не потрібно створення окремого процесу операційної системи, а всі дії проводяться в рамках викликає процесу;
- більш швидке звернення до властивостей і методів об'єктів системи 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-додатків
Особливе становище технології створення 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, так і інших прикладних рішень.