Які веб-сервіси бувають. Що таке веб-сервіс? Технічна реалізація web-сервісів

Web-сервіс (служба) – програма, яка організовує взаємодію між сайтами. Інформація з одного порталу передається на інший.

Наприклад, є авіакомпанія. Має багато рейсів, відповідно, багато квитків. Інформацію через веб-службу вона передає сайту-агрегатору тур-подорожей. Користувач, який заходить на агрегатор, зможе прямо купити квитки цієї авіакомпанії.

Інший приклад веб-сервісів - це сайт відстеження погоди, який містить відомості про метеоумови в конкретному місті або країні в цілому. Ця інформація також часто використовується сторонніми.

Інформація в інтернеті є різнорідною. Сайти керуються різними системами. використовуються різні протоколи передачі та шифрування. Веб-сервіси полегшують обмін інформацією між різними майданчиками.

Архітектура та протоколи Web-сервісів

Можна визначити 3 інстанції, які взаємодіють між собою: каталог, виконавець та замовник. Після створення сервісу виконавець реєструє його в каталозі, а там сервіс знаходить замовник.

Механізм обміну даними формується у описі Web Services Description. Це специфікація, що охоплює формати пересилання, типи контенту, транспортні протоколи, що застосовуються у процесі обміну відомостями між замовником та послугами транспортування.

Сьогодні найчастіше використовуються кілька технологій для реалізації різних веб-сервісів:

  1. TCP/IP - протокол, який розуміється практично будь-яким мережевим обладнанням, від мейнфреймів до портативних пристроївта PDA.
  2. HTML – універсальна мова розмітки, яка використовується для демонстрації контенту пристроями споживачів.
  3. XML – універсальний засіб обробки всіх різновидів даних. На його базі можуть працювати інші протоколи обміну інформацією: SOAP і WSDL.
  4. UDDI – універсальне джерело розпізнавання, інтеграції та описи. Працює, як правило, у приватних мережах і поки що не знайшов достатнього поширення.

Універсальність представлених технологій – основа розуміння веб служб. Вони працюють на стандартних технологіях, що не залежать від постачальників програм та інших ресурсів мережі. Можуть використовуватись у будь-яких операційні системи, сервери додатків, мов програмування і т.д.

Переваги

  • Створення необхідних умов взаємодії програмних компонентів незалежно від платформи.
  • Веб-сервіси базуються на відкритих стандартних протоколах. За рахунок впровадження XML забезпечується простота формування та налаштування веб-сервісів.
  • Застосування HTTP гарантує взаємодію систем за допомогою міжмережевого доступу.

Недоліки

  • Невисока продуктивність і великий обсяг трафіку, порівняно із системами RMI, CORBA, DCOM, за рахунок використання XML-повідомлень у розрізі тексту.
  • Рівень безпеки. Всі сучасні веб-сервіси повинні впроваджувати кодування та вимагати авторизації користувача. Чи вистачить тут наявності HTTPS або потрібні більш надійні протоколи, як XML Encryption, SAML і т.д., – вирішуються під час розробки.

Завдання веб-сервісів

Веб-сервіси можуть використовуватись у багатьох сферах.

B2B-транзакції

Інтеграція процесів відбувається одразу, без участі людей. Наприклад, поповнення каталогу інтернет-магазину новими товарами. Їх привозять на склад, і комірник зазначає в базі даних парафію. Автоматично інформація передається до інтернет-магазину. І покупець замість позначки "Немає на складі" на картці товару бачить його кількість.

Інтеграція сервісів підприємств

Якщо в компанії використовуються корпоративні програми, то веб-сервіс допоможе налаштувати їхню спільну роботу.

Створення системи клієнт-сервер

Сервіси використовуються, щоб настроїти роботу клієнта та сервера. Це дає переваги:

  • можна продавати не саме програмне забезпеченняа робити платним доступ до веб-сервісу;
  • легше вирішувати проблеми із використанням стороннього ПЗ;
  • простіше організовувати доступ до контенту та матеріалів сервера.

Веб-сервіс - це програма, яка спрощує технічне налаштування взаємодії ресурсів.

Механізм Web-сервісів системи «1С:Підприємство» заснований на використанні однойменних об'єктів метаданих, тобто. об'єктів конфігурації з галузі «Web-сервіси».

1. ЗАГАЛЬНІ ВИЗНАЧЕННЯ

Спробуємо надати узагальнене визначення терміну «Web-сервіс».

Web-сервіс- це мережна технологія, що забезпечує міжпрограмне взаємодія(між різними додатками) на основі веб-стандартів. Web-сервіси дають можливість звернутися з одного додатка до іншого і виконувати певні функції.

Веб-сервіс ідентифікується рядком URI (Uniform Resource Identifier) ​​- уніфікованим ідентифікатором ресурсу (це символьний рядок, що дозволяє ідентифікувати ресурс).

Веб-сервіс має програмний інтерфейс, представлений у форматі WSDL(Web Services Description Language) - мова опису веб-сервісів та доступу до них, що базується на мові XML (специфікація http://www.w3.org/TR/wsdl). Призначений для уніфікованого подання зовнішніх інтерфейсіввеб-служби і використовується для того, щоб інша програма знала, що такий «сервіс» у цієї програми (тобто перша програма на веб-сайті викладає відомості про свої сервіси саме у форматі файлу WSDL).

Інші системи взаємодіють із веб-сервісом шляхом обміну повідомленнями протоколу SOAP (Simple Object Access Protocol - простий протокол доступу до об'єктів) - протокол обміну структурованими повідомленнями в розподіленому обчислювальному середовищі (специфікація http://www.w3.org/TR/soap). Як і будь-який текстовий протокол, SOAP може використовуватися з будь-яким протоколом прикладного рівня: SMTP, FTP, HTTPS та інші, але найчастіше SOAP використовується поверх HTTP.

Малюнок 1. Концепція веб-сервісу.

SOAP використовується для обміну довільними повідомленнями у форматі XML та віддаленого виклику процедур (RPC).

Таким чином, між веб-сервісом та програмою здійснюється обмін XML-документами, оформленими у вигляді повідомлень. Стандарти веб-сервісів визначають:

формат повідомлень, інтерфейс, якому передається повідомлення;

Правила прив'язки змісту повідомлення до реалізує додатку і назад;

Механізми публікації та пошуку інтерфейсів.

Найпростіший і очевидніший приклад застосування web-сервісів – отримання довідкових даних з публічних сервісів, доступних в Інтернеті. Наприклад, Аерофлот за допомогою Web-сервісу надає інформацію про свої рейси, Банк Росії - інформацію про курси валют, цінні папери, кредитні організації - варіантів може бути багато.

2. WEB-СЕРВІСИ В СИСТЕМІ «1С:ПІДПРИЄМСТВО»

Прикладне рішення «1С:Підприємства 8» може бути:

постачальником веб-сервісів;

У системі «1С:Підприємства 8» Web-сервіси - це один із механізмів платформи, які використовуються для інтеграції з іншими інформаційними системами та додатками «1С:Підприємства 8» між собою.

Іншими словами, система «1С:Підприємство» може експортувати свою функціональність через Web-сервіси. Їх визначення задаються у дереві конфігурації та стають доступними довільним інформаційним системам завдяки публікації їх на веб-сервері.

Механізм Web-сервісів у системі «1С:Підприємство» є засобом підтримки сервісно-орієнтованої архітектури (Service-Oriented Architecture, SOA) - означає, що програми для обміну даними один з одним використовують «сервіси».

Для того, щоб функціональність системи «1С:Підприємство» могла бути доступна зовнішнім споживачам Web-сервісів, потрібно виконати такі дії:

Створити у конфігурації необхідну кількість Web-сервісів;

Створення Web-сервісу полягає:

Додавання в дерево метаданих об'єкта конфігурації Web-сервіс;

опис операцій, які може виконувати даний Web-сервіс;

Опис параметрів операцій.

Об'єкт конфігурації Web-сервіс містить модуль, у якому створюються процедури вбудованою мовою, які виконуються під час виклику тих чи інших операцій Web-сервиса. Типи параметрів операцій Web-сервісу описуються за допомогою типів XDTO і можуть являти собою значення XDTO, або об'єкти XDTO.

Виклик Web-сервісу відбувається так:

З пулу сполук вибирається відповідне з'єднання з інформаційною базою; за відсутності необхідного з'єднання з'єднання створюється;

Створюється новий сеанс;

Здійснюється виклик затребуваного методу Web-сервісу.

Механізм Web-сервісів, реалізований у системі «1С:Підприємство», підтримує такі стандарти:

WS-I Basic Profile 1.1;

SSL 3.0/TLS 1.0.

3. ВИВЧЕННЯWEB-СЕРВІСІВ У СИСТЕМІ «1С:ПІДПРИЄМСТВО»

Веб-служба – це програма, до якої можуть звертатися інші програми через Інтернет (http). Наприклад, припустимо, що у вас є функція, яка надає текст у форматі HTML. Ціль програми - це веб-браузер, який відображає результати, і людина зможе легко прочитати цей текст на сторінці.

З іншого боку, цільовою аудиторією веб-сервісу є інші програми або інші веб-служби, які споживають дані, які обслуговує веб-служба. Зазвичай висновок здійснюється стандартною мовою, яка може бути зрозуміла іншим програмам. Візьміть наведений вище приклад, якщо веб-служба виводить текст у форматі XML, тоді інші веб-служби, які можуть читати чи розуміти XML, можуть використовувати цей висновок.

Основною перевагою веб-служби є те, що програми можуть бути написані будь-якою мовою, але вони можуть обмінюватися даними та обмінюватися даними один з одним через веб-службу. Програмні програми, написані різними мовами програмування та працюють на різних платформах, можуть використовувати веб-служби для обміну даними через Інтернет (HTTP). Це взаємодія (наприклад, між Java і Python, або програмами Windowsта Linux) пов'язане з використанням відкритих стандартів (XML, SOAP, HTTP).

  • SOAP (простий протокол доступу до об'єктів)
  • UDDI (універсальний опис, виявлення та інтеграція)
  • WSDL (мова опису веб-сервісів)

Скільки існує різноманітних видів веб-служб?

Насамперед існують два типи веб-служб, простий протокол доступу до об'єктів (SOAP) та репрезентативне перенесення станів (REST).

  • Веб-служба SOAP приймає запит у форматі XML та генерує висновок у форматі XML.
  • Веб-служба REST більш універсальна і може приймати XML, а також JSON як запит і генерує висновок у XML, а також JSON або навіть HTML

Докладніше це питання може бути вивчений на наших .

Ми роздивились загальні поняттявикористання механізму « Web-Сервісів».Освіжимо деякі знання.

Web-сервіси застосовуються для обміну даними між сервером та клієнтом; формат XML використовується для «упаковування» даних для взаєморозуміння між обома учасниками спілкування.

РОЗДІЛI

ПРИКЛАД РЕАЛІЗАЦІЇWEB-СЕРВІСУ В СИСТЕМІ «1С:ПІДПРИЄМСТВО»

ЗАВДАННЯ:Необхідно створити web-сервіс, звертаючись до якого клієнти можуть визначити всю необхідну інформацію за своїми заявками.

Завдання є демонстраційним і служить лише прикладом для розуміння та навчання механізмуweb-Сервісів.

РІШЕННЯ:

Крок 1.Створимо нову інформаційну базубез конфігурації розробки нової конфігурації.

Крок 2Додамо до конфігурації кілька нових об'єктів

Довідник "Клієнти";

Документ "Заявка";

Перелік «СтатусиЗаявок».

Крок 3Створимо новий XDTO пакет.

Чому і навіщо ми створюємо XDTO-пакет? Докладніше про використання механізму XDTO можна прочитати в розділі 16. Посібник розробника та .

Коротко відзначимо лише те, що механізм XDTO є універсальним способомподання даних для взаємодії з різними зовнішніми джерелами даних та програмними системами.

У нашому випадку пакет XDTO створюється для опису значення web-сервісу, що повертається.

Розкриємо гілку "Загальні" → "XDTO-пакети" → Додати…

Вкажемо ім'я XDTO-пакету « DocumentsData» та його простір імен http://localhost/request або http://192.168.1.76/request (для полегшення розуміння та процесу навчання, ми вказуємо локальна IP-адресакомп'ютера, де встановлений web-сервер (підтримуваний web-сервер: IIS або Apache)). Кожен Web-сервіс може бути однозначно ідентифікований за своїм ім'ям та URI простором імен, якому він належить.

Наш пакет містить два типи об'єктів XDTO:

1) Сустомер- для передачі даних елемента довідника "Клієнти".

- Name ;

2) Document- для передачі даних документа "Заявки"

Цей тип об'єкта XDTO міститиме такі властивості:

- Сустомер- Тип Суstomer з простору імен http://192.168.1.76/request; є посилання на об'єкт XDTO, який ми визначили вище;

- Status- Тип string з простору імен http://www.w3.org/2001/XMLSchema;

- Numder- Тип string з простору імен http://www.w3.org/2001/XMLSchema.

Крок 4.Додамо до конфігурації новий Web-сервіс

Розкриємо гілку "Загальні" → "Web-сервіси" → Додати…

Для Web-сервісу вкажемо наступні значення властивостей:

Ім'я - DocumentsData

URI Простір імен - http://192.168.1.76/request

Пакети XDTO - DocumentsDataабоhttp://192.168.1.76/request

Ім'я файлу публікації - request.1cws

Крок 5.У створеного Web-сервісу визначимо операцію « GetData»

Значення властивостей операції:

Тип значення, що повертається - Document (http://192.168.1.76/request)

Можливе порожнє значення - Істина

Ім'я процедури - GetData.

Крок 6У операції GetDataвизначимо параметр Суstomer з наступними значеннями властивостей:

Тип значення – тип stringіз простору імен http://www.w3.org/2001/XMLSchema;

Напрямок передачі - вхідний.

Крок 7.Відкриємо модуль створеного Web-сервісу та помістіть у нього функцію Отримати(), яка буде виконуватися під час виклику даного Web-сервісу.

Функція GetData (Сustomer) // Отримати типи об'єктів XDTO КлієнтТип = Фабрика XDTO. Тип ("http://192.168.1.76/request", "Сustomer"); Заявка Тип = Фабрика XDTO. Тип ("http://192.168.1.76/request", "Document"); // Отримуємо клієнта КлієнтПосилання = Довідники.Клієнти.ЗнайтиПо Найменуванню(Сustomer); Якщо Не ЗначенняЗаповнено(КлієнтПосилання) Тоді Повернення Невизначено; КінецьЯкщо; Запит = Новий Запит; Запит.Текст = "ВИБРАТИ ПЕРШІ 1 | Заявка.Посилання, | ПРЕДСТАВЛЕННЯ(Заявка.Статус) ЯК Статус, | Заявка.Номер |З | Документ.Заявка ЯК Заявка |ДЕ | Заявка.Клієнт = &Клієнт"; Запит.ВстановитиПараметр("Клієнт", КлієнтПосилання); РезультатЗапиту = Запит.Виконати(); Якщо РезультатЗапроса.Пустой() Тоді Повернення Невизначено; КінецьЯкщо; Вибірка = Результат Запиту. Вибрати (); Вибірка.Наступний(); Документ = Вибірка.Посилання.ОтриматиОб'єкт(); // Створити об'єкт XDTO заявки Заявка = Фабрика XDTO. Створити (Заявка Тип); Заявка.Numder = Вибірка.Номер; Клієнт = Фабрика XDTO. Створити (Клієнт Тип); Клієнт.Name = КлієнтПосилання.Найменування; Заявка. Сустомер = Клієнт; Заявка. Status = Вибірка. Статус; // Повернути заявку Повернення Заявка; КінецьФункції

Крок 8Опублікуємо створений Web-сервіс на веб-сервері.

Пункт меню Конфігуратор: "Адміністрування" → "Публікація на Web-сервері".

На вкладці "Web-сервіси" встановлюємо ознаку "Публікувати Web-сервіси" і навпроти нашого нового Web-сервісу також ставимо "галочку".

РОЗДІЛII

ПРИКЛАД ЗВЕРНЕННЯ ДОWEB-СЕРВІСУ СИСТЕМИ «1С:ПІДПРИЄМСТВО» З СТОРІННОГО ДОДАТКУ

Основне призначення механізму Web-сервісів у системі «1С:Підприємство» - це передача необхідних даних стороннім програмам.

Розглянемо приклад розробки програми на Delphi звернення до нашого web-сервісу з першого розділу цієї статті.

Крок 1.Створимо новий проект і на формі розмістимо декілька елементів керування

Текстове поле – використовується для виведення отриманої від web-сервісу інформації;

Дві кнопки - очищення текстового поля та звернення до web-сервісу;

Поле введення - параметр, що передається в web-сервіс.

Крок 2Виконуємо імпорт WSDL-файлу

В результаті ми отримуємо новий модуль request(Таке найменування ми визначили безпосередньо в 1С). В даному модулі є вся необхідна інформація по web-сервісу.

Крок 3Напишемо обробник виклику web-сервісу

Змінна DocumentDataPortType вже визначена у модулі request

Крок 4.Запустити програму та виконати перевірку.

РОЗДІЛIII

ПРИКЛАД ЗВЕРНЕННЯ ДОWEB-СЕРВІСУ В СИСТЕМІ «1С:ПІДПРИЄМСТВО»

Крок 1.Створимо нову зовнішню обробку з ім'ям WEB_Service

Крок 2Для обробки визначимо нову форму

Крок 3У форми вкажемо кілька реквізитів

Клієнт - тип «Рядок»

КлієнтПовернення - тип «Рядок»

НомерПовернення - тип «Рядок»

СтатусПовернення - тип «Рядок».

Виведемо реквізити на форму.

Крок 4.Додамо команду форми « ОтриматиДані»

Вкажемо обробник команди

&НаКлієнті Процедура ОтриматиДані(Команда) ОтриматиДаніНаСервері(Клієнт); КінецьПроцедури Процедура ОтриматиДаніНаСервері(Клієнт) // Створити WS-проксі на основі посилання та виконати операцію Отримати() Визначення = Новий WSВизначення("http://192.168.1.76/WEB_Service/ws/request.1cws;ws Проксі = Новий WSПроксі (Визначення, "http://192.168.1.76/request", "DocumentsData", "DocumentsDataSoap"); Дані Заявки = Проксі. GetData (Клієнт); Якщо Дані Заявки = Невизначено Тоді КлієнтПовернення = "Невизначено"; СтатусПовернення = "Невизначено"; Номер Повернення = "Невизначено"; Повернення; КінецьЯкщо; КлієнтПовернення = ДаніЗаявки.Сustomer.Name; СтатусПовернення = ДаніЗаявки.Status; НомерПовернення = ДаніЗаявки.Numder; КінецьПроцедури

Система «1С:Підприємство» може використовувати веб-сервіси, що надаються іншими постачальниками, двома способами:

За допомогою статичнихпосилань, створюваних у дереві конфігурації;

"плюс":велика швидкість роботи;

"мінус":повторний імпорт WSDL-опису засобами конфігуратора та збереження зміненої конфігурації.

За допомогою динамічнихпосилань, створюваних засобами вбудованої мови

(відповідно «мінуси» статичних для динамічних – «плюси»)

РОЗДІЛIV

НАЛАДКА WEB-СЕРВІСІВ У СИСТЕМІ «1С:ПІДПРИЄМСТВО»

Для локального web-сервісу необхідно:

Крок 1.Покласти на клієнт, де запускається система 1С файлик webservicecfg.xmlз наступним вмістом

Крок 2У файл default. vrdпублікації конфігурації додати рядок

Крок 3У конфігураторі виберіть пункт меню

«Налагодження» → «Підключення» → «Автоматичне підключення» → «Web-сервіси на сервері»

Крок 4.Натиснути кнопку «OK»

Для серверного варіанта ще треба сервер 1с запускати в режим налагодження з ключем /debug