У цій статті ми знову повертаємося до вже неодноразово обговорювалася нами темі Web-сервісів, які представляють собою технологію інтеграції Web-додатків. Сьогодні ми розглянемо, як можна використовувати Web-сервіси в Windows-додатках, створених за допомогою Borland Delphi 6, а також як за допомогою цього ж кошти розробки створювати власні Web-сервіси. Відзначимо, що на момент написання даної статті, коли вихід остаточної версії Visual Studio .Net ще тільки очікується в найближчому майбутньому, Delphi 6 є єдиним засобом розробки, що підтримує створення Web-сервісів.
Відзначимо, однак, що еволюція WWW не зупинилася на Web-додатках. Взаємна інтеграція бізнесів різних компаній, що відбувається зараз у всьому світі, неминуче тягне за собою появу технологій і стандартів інтеграції обслуговуючих їх додатків і корпоративних інформаційних систем. Найбільш популярною технологією такої інтеграції в даний час слід назвати обмін даними в форматі XML (eXtensible Markup Language) по протоколу SOAP (Simple Object Access Protocol) і створення Web-сервісів, які застосовують подібний обмін даними.
Оскільки Web-сервіси є відносно новою технологією, про підтримку їх застосування і тим більше створення на рівні компонентів, класів або експертів для їх створення в усіх без винятку засобах розробки говорити поки ще рано. Відзначимо, однак, що такі засоби розробки вже є або повинні з'явитися в найближчому майбутньому. Зокрема, створення Web-сервісів підтримується в Delphi 6, випущеної влітку нинішнього року. Нижче ми розглянемо два найпростіших прикладу, що ілюструють можливості застосування і створення Web-сервісів за допомогою цього дуже популярного в нашій країні кошти розробки. Передбачається, що з створенням додатків за допомогою Delphi читачі вже знайомі.
Використання Web-сервісу в додатку
Для початку запустимо Delphi 6 і створимо проект звичайного Windows-програми. Потім, вибравши з середовища розробки пункт меню File | New | Other, відкриємо репозитарій об'єктів і виберемо в ньому на сторінці Web Services піктограму Web Sertvice Importer.
Як ми бачимо, що використовується Web-сервіс реалізує шість методів, конвертують один в одного різні температурні шкали. Скористаємося одним з них - FahrenheitToCelsius, що переводять значення температури в градусах Фаренгейта в відповідне значення в градусах Цельсія (це улюблена завдання російських громадян, які вивчають прогнози погоди за допомогою американських сайтів). Посилаючись на згенерований модуль з модуля, пов'язаного з головною формою додатка за допомогою пункту меню File | Use Unit.
Далі слід подбати про наявність у додатку об'єкта, що відповідає за вилучену активізацію Web-сервісу і, отже, зберігає відомості про його місцезнаходження. Для цієї мети в палітрі компонентів на сторінці Web Services є компонент THTTPRIO (RIO означає Remote Invokable Object). Помістимо цей компонент на форму і дамо його властивості WSDLLocation URL WSDL-опису Web-сервісу. Після цього спробуємо встановити значення властивості Service (це властивість містить список інтерфейсів, що надаються Web-сервісом, - їх імена вже є в створеному интерфейсном модулі) або властивості Port (містить ім'я порту, визначеного в WSDL-файл і встановлює місце розташування Web-сервісу, і протокол, застосовуваний для звернення до нього). Середовище розробки знову звернеться до WSDL-опису Web-сервісу, отримавши на його основі відомості про місцезнаходження сервісу і його інтерфейси. Ось так виглядає фрагмент WSDL-файлу, що містить ці відомості:
Після цього властивості Service і Port можна буде вибрати з випадаючих списків.
Зауважимо, що в ряді випадків можна не використовувати WSDL-опис, а просто вказати URL Web-сервісу в властивості URL і ввести властивості Service і Port вручну.
Наступним кроком буде створення призначеного для користувача інтерфейсу нашого клієнтського додатку. Він нескладний: поле для введення вихідного значення, мітка для виведення результатів і кнопка, натискання на яку ініціює звернення до Web-сервісу.
Обробник події, пов'язаного з натисканням на кнопку, містить код для звернення до Web-сервісу. Він має вигляд:
Тепер можна зберегти проект, скомпілювати додаток і протестувати його.
Отже, ми навчилися створювати додатки, що використовують Web-сервіси. У наступному розділі даної статті ми розглянемо, як створювати самі Web-сервіси.
Створення Web-сервісу
Вибравши тип програми, ми отримаємо об'єкт TWebModule, що містить три компоненти:
- THTTPSoapDispatcher, що відповідає за отримання запитів за допомогою протоколу SOAP;
- THTTPSoapPascalInvoker, що відповідає за перетворення цих запитів в виклики методів об'єктів нашого застосування;
- TWSDLHTMLPublish, що відповідає за генерацію WSDL-файлів, що містять опис реалізованих в Web-сервісі інтерфейсів, призначене для розробників клієнтських додатків для даного Web-сервісу.
Тепер можна приступити до створення опису інтерфейсу Web-сервісу. Для цього просто створимо новий модуль і в ньому опишемо інтерфейс IMult, що містить єдиний метод Multiply:
І нарешті, нам слід створити модуль з реалізацією методу Multiply:
Натиснувши на посилання, що вказує на інтерфейс IMult, можна отримати WSDL-опис нашого інтерфейсу IMult, яке використовується клієнтським додатком і тому поміщається в доступне місце в Internet. У нашому ж випадку ми просто збережемо його у файлі.
Залишилося протестувати наш Web-сервіс. Зробити це можна різними способами, наприклад звернутися до нього з Web-сторінки, що містить код на одному з скриптових мов. Однак ми напишемо клієнтську програму на Delphi, якщо ми вже вміємо це робити. Як і в першій частині цієї статті, створимо новий проект, виберемо зі сторінки Web Services репозитария об'єктів піктограму Web Services Importer і вкажемо в якості параметра WSDL or XML Schema Location (Filename or URL) діалогового вікна Web Services Import шлях до WSDL-файлу, який ми тільки що зберегли. Потім пошлемося на згенерований інтерфейсний модуль з модуля, пов'язаного з головною формою клієнтського додатку. Помістимо на форму компонент THTTPRIO, вкажемо в якості значення його властивості WSDLLocation ім'я того ж WSDL-файлу, виберемо з випадаючих списків значення властивостей Service і Port і створимо найпростіший призначений для користувача інтерфейс програми.
Обробник події, пов'язаного з натисканням на кнопку, має вигляд:
Запустивши клієнтську програму, можемо переконатися, що наш Web-сервіс цілком працездатний.
Отже, ми навчилися створювати свої Web-сервіси за допомогою Delphi 6 і тестувати їх.
висновок
У цій статті ми розглянули створення за допомогою Delphi 6 додатків, що використовують Web-сервіси, а також створення самих Web-сервісів і переконалися, що це не дуже складно. У реальному житті, напевно, не варто створювати Web-сервіс, перемножуються два числа, - існує багато інших, набагато більш цікавих завдань, вирішення яких варто реалізувати в вигляді Web-сервісу. Здається, вони не змусять себе чекати.
Зовсім недавно компанія Cougar представила нову серію блоків живлення для традиційних ПК - VTX, орієнтовану на користувачів з обмеженим бюджетом. У цьому огляді буде розглянута модель Cougar VTX600, яка завдяки своїм характеристикам буде однією з найбільш затребуваних в цій лінійці блоків живлення
На щорічному заході Capsaicin SIGGRAPH в Лос-Анджелесі компанія AMD зміцнила свої позиції на ринку ПК класу high-end з новими процесорами Ryzen Threadripper і GPU «Vega»
Для простого і зручного побудови мереж рядовими користувачами компанія ZyXEL випустила чергову версію свого Інтернет-центру для підключення до мереж 3G / 4G через USB-модем з точкою доступу Wi-Fi - ZyXEL Keenetic 4G III, який ми і розглянемо в цьому огляді
До своєї і так великій родині роутерів і маршрутизаторів фірма ASUS недавно додала дві вельми цікаві моделі: флагманську 4G-AC55U і більш просту 4G-N12. У даній статті буде розглянута флагманська модель ASUS 4G-AC55U
Молода, але амбіційна компанія KREZ на початку цього року випустила нову, оригінальну модель ноутбука KREZ Ninja (модель TM1102B32) під керуванням Windows 10. Оскільки цей комп'ютер має поворотний екран, він може служити універсальним рішенням - його можна з успіхом використовувати і для роботи, і для навчання, і для ігор
Якщо ви часто друкуєте фотографії та вже втомилися міняти картриджі в своєму принтері, зверніть увагу на МФУ Epson L850. Великий ресурс витратних матеріалів, чудова якість відбитків, найширший набір функціональних можливостей - ось лише деякі з переваг даної моделі