Разработка WEB-приложений с помощью UTS WEB 6

Соответствует версии 6.1.0.108 от 10-SEP-2003

 

Назначение UTS WEB 6
Установка UTS WEB 6
Параметры запуска для UTS WEB 6
Запуск UTS_WEB_6.exe
Запрос на выполнение команды Gabriel
Выполнение последовательности команд 
Результат выполнения команды Gabriel
Особенности использования UTS WEB 6
Параллельное выполнение запросов
Рестарт сессии
Таймаут
Ошибки при работе TCP/IP на стороне Gabriel
Использование UTS WEB 6 на платформе .NET
Использование прямого доступа через TCP/IP сокеты
Оплата и регистрация

Назначение UTS WEB 6x

Программа UTS WEB 6 предназначена для обеспечения разработки и эксплуатации различных WEB-приложений, связанных с системой бронирования авиабилетов Gabriel. 

UTS WEB 6 - это HTTP-интерфейс к системе Gabriel. Этот интерфейс может быть использован для разработки различных WEB-проектов: справочных систем, интернет-магазинов по бронированию и продаже авиабилетов и др. 

UTS WEB 6 обеспечивает выполнение команд Gabriel, которые указываются в параметрах HTTP-запросов, направляемых от WEB сервера к UTS WEB 6. Далее, в UTS WEB 6 запросы преобразуются в стандартные транзакции Gabriel и через сеть UTS NET передаются на выполнение в Atlanta Data Processing Center (ATLDP) - в систему бронирования Gabriel. Ответы системы бронирования Gabriel возвращаются в UTS WEB 6 и преобразуются в HTTP - ответы для WEB сервера. 

Это позволяет разработчикам WEB-приложений использовать стандартный HTTP протокол для доступа к ATLDP - Gabriel.

 

 

Реальные примеры, работающие через UTS WEB 6

 

Пример 1

Выполнение команды Gabriel из HTML-формы

Gabriel Command:

 

Пример 2

Выполнение команды Gabriel из HTML-ссылки

Команда DA

 

Данные примеры работают через UTS WEB 6, установленный исключительно для целей демонстрации. Для реальной работы - программу UTS WEB 6 нужно устанавливать в агентcтве или в авиакомпании.

 

Внимание ! UTS WEB 6 обеспечивает параллельное выполнение неограниченного количества запросов к данным любых авиакомпаний, хостирующихся в Gabriel. Встроенный диспетчер запросов позволяет выполнять последовательности команд Gabriel с сохранением состояния между запросами.

 

UTS WEB 6 использует для работы всю инфраструктуру и все возможности сети UTS NET. Доступ к Gabriel выполняется через сеть серверов UTS NET Server. Поэтому, для работы и использования UTS WEB 6 необходимо быть зарегистрированным участником сети UTS NET и иметь Username/Password в сети UTS NET. Процедура подключения к сети UTS NET описана здесь

Для работы с Gabriel через UTS WEB 6 необходимо иметь SITA USERID/PASSWORD и SI для доступа к системе Gabriel. Эти данные авиакомпании выдают агентствам по продаже авиабилетов. 

Внимание !  В UTS WEB 6 могут использоваться СТАТИЧЕСКИЕ и ДИНАМИЧЕСКИЕ PID. Статический PID необходимо получать в авиакомпании. Динамический PID можно назначить самостоятельно из диапазона 70000-99999. Каждый PID в UTS WEB 6 имеет уникальный серийный номер. Регистрация серийных номеров (SN) PID для UTS WEB 6 выполняется так же, как и для UTS Access 6 и описана здесь

Главная   Назад   Оглавление раздела

Установка UTS WEB 6

Загрузите с сайта www.uts2000.com программу - инсталлятор UTS WEB 6 и выполните установку. Следуйте подсказкам стандартного инсталлятора.

После установки, все файлы и каталоги UTS WEB будут находиться в каталоге: C:\Program Files\UTS WEB\Bin\

Список файлов:

UTS_WEB_6.exe - исполняемый модуль

UTS_WEB_6x.ini - файл с параметрами запуска

test_form.htm - страница с тестовыми запросами

\Log\... - файлы журналов для каждого PID

Главная   Назад   Оглавление раздела

Параметры запуска для UTS WEB 6 

Все параметры для запуска находятся в файле UTS_WEB_6x.ini в том же каталоге, где размещен исполняемый модуль UTS_WEB_6.exe

Содержимое файла UTS_WEB_6x.ini
[UTS_WEB]

// Port number of UTS WEB 6x interface. Use any allowed port.
UTS_WEB_PORT=28000

// UTS NET Server IP address and Port. Default: 212.30.150.66:18000
// For change of this address contact with support@uts2000.com
UTS_NET_SERVER_IP=212.30.150.66
UTS_NET_SERVER_PORT=18000

// DYNAMIC PID
[70213]
SI_COMMAND=SI:123/1234A
AIRLINE=UN
LOGFILE=Y
// STATIC PID
[12345]
SI_COMMAND=SI:2222
AIRLINE=UN
LOGFILE=N

Внимание !  Если в UTS WEB 6 используются динамические PID, команда SI должна вводиться в расширенном формате (с паролем): SI:NNNN/PASSWORD. Подробности см. Cессия типа Dynamic. Все используемые PID должны быть зарегистрированы в UTS Register.

UTS WEB 6 обеспечивает HTTP-интерфейс для работы с системой Gabriel. Встроенный в UTS WEB 6 диспетчер  обеспечивает параллельное выполнение множества команд Gabriel через множество PID разных авиакомпаний. Все необходимые PID разных авиакомпаний перечисляются в виде секций [NNNNN] в файле UTS_WEB_6x.ini.

Например:
// DYNAMIC PID
[70213]
SI_COMMAND=SI:123/1234A
AIRLINE=UN
LOGFILE=Y

описывает динамический PID 70213. Для запуска будет использована команда SI:123/1234A в расширенном формате (с паролем). PID 70213 будет использоваться для работы с данными авиакомпании UN. Все ответы системы Gabriel будут записываться в Log-файл с именем \Log\Log-70213.txt.

Для сайтов с большой посещаемостью необходимо иметь возможность параллельно выполнять запросы через 3-5 и более PID для исключения конфликтов. Для этого нужно будет зарегистрировать в UTS Register 3-5 или более PID. Каждый используемый PID будет иметь уникальный серийный номер (SN), который необходимо зарегистрировать в UTS Register 6. 

Внимание !  Серийные номера для каждого PID указаны в закладке PIDs and SN Registration в в программе UTS WEB 6. После настройки файла UTS_WEB_6x.ini запустите UTS WEB 6 и перейдите к закладке PIDs and SN Registration.

Регистрация серийного номера (SN) и PID для UTS WEB 6 выполняется так же, как и для UTS Access 6 и описана здесь. Для регистрации SN-PID необходимо быть участником в сети UTS NET и иметь Username/Password в сети UTS NET. Процедура подключения к сети UTS NET описана здесь.

Главная   Назад   Оглавление раздела

Запуск UTS_WEB_6.exe

Запустите исполняемый модуль UTS_WEB_6.exe. Файл с параметрами запуска UTS_WEB_6x.ini должен находиться в том же каталоге, что и исполняемый модуль UTS_WEB_6.exe

 

После запуска автоматически стартуют все перечисленные в файле UTS_WEB_6x.ini сессии (PID) для работы с Gabriel. При каждом запуске или рестарте сессии, автоматически выполняются команды вписывания SI... (SIGN IN).

Для каждого PID UTS WEB 6 обеспечивает режим постоянно открытой активной сессии Gabriel (постоянно запущенный PID). UTS WEB автоматически отслеживает различные ситуации, связанные с отключением или восстановлением каналов связи и другие проблемы, которые могут возникать при работе сессии в Gabriel. При необходимости будет выполнен автоматический рестарт сессии. 

UTS WEB 6 будет обрабатывать HTTP-запросы, поступающие на порт, указанный в параметрах запуска в переменной UTS_WEB_PORT=...., выполнять команду Gabriel из запроса и отправлять HTTP-ответы в виде текста ответа Gabriel. Трасса выполняемых команд и ответов Gabriel ведется в закладке Trace в UTS WEB 6.

Программа UTS_ WEB_6.exe может быть запущен как сервис с использованием программы SrvAny.

В закладке PIDs and SN Registration перечислены PID и назначенные каждому PID уникальные серийные номера. Каждый PID и каждый серийный номер должен быть зарегистрирован в UTS Register 6.

Регистрация серийного номера (SN) и PID для UTS WEB 6 выполняется так же, как и для UTS Access 6 и описана здесь. Для регистрации SN-PID необходимо быть участником в сети UTS NET и иметь Username/Password в сети UTS NET. Процедура подключения к сети UTS NET описана здесь.

 

Главная   Назад   Оглавление раздела

Запрос на выполнение команды Gabriel

В UTS WEB 6 реализованы 2 механизма выполнения команд GABRIEL:

  1. выполнение одиночных команд без сохранения состояния PID

  2. выполнение последовательности команд с сохранением состояния PID после выполнения запроса

 

Выполнение одиночных команд

Если состояние PID после выполнения запроса не будет далее использоваться как стартовая точка для следующих команд, тогда можно выполнить команду GABRIEL с использованием любого свободного PID конкретной авиакомпании.

Одиночную команду Gabriel можно выполнить, отправив следующий HTTP запрос к UTS WEB 6:

http://212.30.150.66:28000/?gabriel_cmd=AV:MOWLON&ALC=UN&PID=ANY
Параметры запроса:

212.30.150.66 - IP-адрес UTS WEB 6. В настоящее время UTS WEB 6 запущен для демонстрации на адресе 212.30.150.66

28000 - порт, по которому отвечает UTS WEB 6 Задается при запуске параметром

UTS_WEB_PORT=28000. Можно назначить любой свободный порт

gabriel_cmd - зарезервированное имя для параметра с текстом команды

AV:MOWLON - текст исполняемой команды Gabriel

ALC=UN - код авиакомпании (UN)

PID=ANY - выполнить команду Gabriel AV:MOWLON под любым свободным PID авиакомпании UN. Выполнение команд под любым свободным PID допустимо и имеет смысл только в том случае, если нужно выполнить только одну команду и не сохранять состояние (контекст) PID. 

Внимание ! Для выполнения цепочки связанных команд под одним PID, в параметре PID= нужно указывать конкретный номер PID, который сначала должен быть получен для монопольного использования текущей WEB-сессией запросом GET_PID. см. Выполнение последовательности команд

После выполнения одиночной команды (запрос из WEB-сессии с параметром PID=ANY) PID будет автоматически освобожден для использования другими WEB-сессиями. Поэтому, состояние PID после выполнения запроса с параметром PID=ANY в общем случае - неизвестно, поскольку следующий запрос от другой WEB-сессии уже может изменить состояние PID.

 

Для ввода многострочных команд используйте символ %13 в тексте HTTP-запроса для разделения отдельных строк.

Например: 
http://127.0.0.1:7777/?gabriel_cmd=ZZ%20RDI%13STRING1%13STRING2

Главная   Назад   Оглавление раздела

Выполнение последовательности команд 

В некоторых случаях необходимо выполнить несколько логически связанных команд Gabriel под одним PID. При этом может быть важно, чтобы PID сохранял свое состояние (контекст).

Например, при создании PNR нужно последовательно выполнить несколько команд (IG, SD, SD, NM, CT, *). Для этих целей в UTS WEB 6 реализован механизм получения и монопольного использования номера свободного PID для выполнения цепочки команд (запросы GET_PID и FREE_PID).  

Запрос GET_PID позволяет найти (получить) PID указанной в запросе авиакомпании, который не используется в данный момент в других WEB-сессиях (для которого еще не была выдана команда GET_PID или который уже был освобожден командой FREE_PID). Если PID был получен запросом GET_PID и используется в одной WEB-сессии, то другие WEB сессии не могут использовать этот же PID, пока используемый PID не будет освобожден явно запросом FREE_PID.

 

ВЫПОЛНЕНИЕ ЦЕПОЧКИ КОМАНД

В общем случае, для выполнения цепочки команд нужно выполнить следующие запросы:

1.  http://212.30.150.66:28000/?gabriel_cmd= GET_PID&ALC=UN

Этот запрос GET_PID позволяет получить номер любого свободного PID авиакомпании UN  и пометить PID как используемый монопольно. Монопольно используемый PID не может быть получен другой WEB-сессией для одновременного использования. Номер PID, выделенный для использования в сессии будет возвращен в ответе - в строке USED PID: 

Например:
VERSION=UTS WEB 6.1.0.114
PID=70000
AIRLINE=UN
ERRORS=NO
ANSWER
USED PID: 70000

Номер используемого PID должен быть указан во всех последующих запросах - в параметре PID=. При этом, параметр ALC= (код авиакомпании) становится необязательным.

 

Выполнить команду Gabriel (например DA) с использованием PID 70000

2.  http://212.30.150.66:28000/?gabriel_cmd= DA&PID=70000  
 

Выполнить следующую команду из цепочки команд, с использованием того же самого PID 70000

3.  http://212.30.150.66:28000/?gabriel_cmd= AVMOWLON&PID=70000

 

По окончании использования PID=70000, необходимо освободить его для использования в других сессиях запросом FREE_PID

4.  http://212.30.150.66:28000/?gabriel_cmd= FREE_PID&PID=70000

Если PID 70000 был успешно освобожден, тогда в строке RELEASED PID: будет указан номер освобожденного PID 

Например:
VERSION=UTS WEB 6.1.0.114
PID=70000
AIRLINE=UN
ERRORS=NO
ANSWER
RELEASED PID: 70000

Внимание ! Если PID, полученный запросом GET_PID не был явно освобожден запросом FREE_PID, тогда данный PID не может быть повторно получен запросом GET_PID, то есть не может использоваться другими WEB-сессиями. Поэтому, разработчикам WEB-систем следует предусмотреть средства гарантированного освобождения PID сразу же после выполнения необходимой последовательности команд

Главная   Назад   Оглавление раздела

Результат выполнения команды Gabriel

Результат выполнения запроса будет направлен по протоколу HTTP в текстовом виде. Строки разделяются символом $D (#13). Cимвол SOE (>) заменяется на <SOE_SYM>

 

Например:

VERSION=UTS WEB 6.1.0.114
PID=70000
AIRLINE=UN
ERRORS=NO
ANSWER
NO ROUTINGS 17AUG
1  UN  333 /J5 C5 D5   MO18AUG DMELGW 1020   1115   73G 0 L
            W5 A5 Z2 SC Y9 M9 H9 Q9 B9 K9 L9 V9 T9 N9 X5 GQ UQ
            OQ ES
2  UN  307 /J3 C3 D3   MO18AUG DMEFRA 1230   1400   73G 0 L
            W3 A3 Z2 SC Y9 M9 H9 Q9 B9 K9 L6 VS TS NS XS GQ OQ
            E2
 + BA  905 /J4 C4 D4           FRALHR 1530   1605   32S 0 S
            S4 Y4 B4 H4 M4 N4 K4 V4
<SOE_SYM>
В заголовке ответа содержатся строки:

VERSION=UTS WEB 6.1.0.105 - текущая версия


PID=70000
- номер PID, под которым была выполнена команда


AIRLINE=UN
- код авиакомпании


ERRORS=NO
- наличие ошибок при выполнении запроса (NO/YES)


ANSWER
- строка, после которой следует ответ Gabriel или сообщение от UTS WEB 6
 

UTS WEB 6 не выполняет парсинг ответов Gabriel или преобразование их в другие форматы. Эта задача лежит полностью на разработчиках WEB-приложений.

Главная   Назад   Оглавление раздела

Особенности использования UTS WEB 6

Параллельное выполнение запросов

Если 2 или более WEB-сессий отправляют запросы к UTS WEB 6, тогда для каждой WEB сессии будет выделен отдельный PID из списка свободных PID. Если количество PID недостаточно, будет получен ответ:

FREE PID NOT FOUND FOR AIRLINE UN

и соединение с WEB-клиентом будет закрыто. 

Для сайтов с большой проходимостью в UTS WEB 6 должно быть запущено необходимо количество PID (3-5 и более), которые будут обслуживать WEB-сессии.

Рестарт сессии

При возникновении нештатных ситуаций (потеря связи, закрытие сессии и др.) UTS WEB 6 выполняет автоматический рестарт сессии (перезапуск PID). В процессе рестарта сессии выполнение команд Gabriel невозможно. Если сессия (PID) находится в состоянии рестарта и в этот промежуток времени направить запрос на выполнение команды через UTS WEB 6 с использованием данного PID, будет получен ответ:

PID IN RESTART MODE: 70000

и соединение с WEB-клиентом будет закрыто.

Кроме того, можно отправить запрос для принудительного рестарта PID

http://212.30.150.66:28000/?gabriel_cmd=RESTART_PID&PID=70000

Если рестарт PID выполнен успешно, будет получено сообщение:

VERSION=UTS WEB 6.1.0.105
PID=70000
AIRLINE=UN
ERRORS=NO
ANSWER
PID RESTARTED: 70000
Таймаут

Если сессия в UTS NET 6 активна, но ответ на запрос не поступает от Gabriel в течение 60 секунд -  будет получен ответ:

GABRIEL TIMEOUT - PID RESTARTED

и соединение с WEB-клиентом будет закрыто. После этого будет выполнен автоматический рестарт PID.

 

Ошибки при работе TCP/IP на стороне Gabriel

Если при выполнении запроса произошла ошибка TCP/IP  на стороне Gabriel, будет получен ответ:

TCP/IP ERROR=10053. PID RESTARTED: 70000

Соединение с WEB-клиентом будет закрыто. После этого будет выполнен автоматический рестарт сессии (PID).

 

Использование UTS WEB 6 на платформе .NET

Для обращения к UTS WEB 6 в приложениях ASP.NET могут быть использованы классы: WebClient или HTTPWebRequest.

Пример обращения к UTS WEB из приложения ASP.NET (VB) приведен ниже:

Dim utsweb As New System.Net.WebClient
Dim myDatabuffer As Byte() = utsweb.DownloadData("http://212.30.150.66:28000/?gabriel_cmd=DA&ALC=UN&PID=ANY")
Dim s As String = System.Text.Encoding.ASCII.GetString(myDatabuffer)
Label1.Text = s
 
Использование прямого доступа через TCP/IP сокеты

Разработчик может использовать TCP/IP сокеты для работы с UTS WEB.

 

Формат запросов при использовании TCP/IP сокетов

Запрос к UTS WEB 6 можно отправлять как текстовую строку в формате:

GET /?gabriel_cmd=DA&PID=74321 HTTP/1.1

Здесь DA - исполняемая команда Gabriel. 

PID=74321 - номер PID, через который нужно выполнить команду. Конкретный номер PID нужно указывать для выполнения цепочки команд. Этот номер PID необходимо предварительно получить от UTS WEB выполнив запрос GET_PID

GET /?gabriel_cmd=GET_PID&ALC=SU HTTP/1.1

 

После выполнения команды GET_PID, UTS WEB 6 вернет номер PID, который можно использовать для выполнения последовательности (цепочки) команд.

VERSION=UTS WEB 6.1.0.114 PID=70000 AIRLINE=UN ERRORS=NO
    ANSWER USED PID: 74321 

Если в запросе в качестве номера PID указать ANY, запрос будет выполнен под любым свободным PID авиакомпании, указанной в параметре ALC=. Параметр ALC= в этом случае - обязательный. 

GET /?gabriel_cmd=DA&PID=ANY&ALC=SU HTTP/1.1
 

По окончании использования PID=74321 необходимо освободить его для использования в других сессиях командой FREE_PID

GET /?gabriel_cmd=FREE_PID&PID=74321 HTTP/1.1

 

После текста запроса и перед "HTTP/1.1" ПРОБЕЛ НУЖЕН ОБЯЗАТЕЛЬНО !!!

 

Формат оветов при использовании TCP/IP сокетов

HTTP-ответ будет включать стандартный HTTP-заголовок, за которым следует текст ответа Gabriel (GABRIEL_RESPONSE) или текст сообщения UTS WEB 6 (TIME OUT и др.).

Элементы заголовка HTTP-ответа разделяются символами CRLF ( $D$A)

'HTTP/1.1 200 Document Follows'+CRLF+
'Content-Length: NNNNN'+CRLF+
'Content-Type: text/plain'+CRLF+CRLF+
RESPONSE+CRLF+CRLF

RESPONSE - это текст ответа от UTS WEB 6. Строки в ответе RESPONSE разделены символом $D.

NNNNN - длина текста ответа. 

Главная   Назад   Оглавление раздела

Оплата и Регистрация UTS WEB

Регистрация в UTS NET 6

UTS WEB 6 работает с использованием всей инфраструктуры сети UTS NET 6 (через любой сервер UTS NET Server 6). Поэтому, использовать UTS WEB 6 могут только зарегистрированные пользователи UTS NET.  

см. Порядок регистрации в сети UTS NET

 

Оплата

Оплата за техническую поддержку при использовании UTS WEB 6 выполняется по тем же счетам и тарифам, что и за UTS Access. Каждый используемый PID в UTS WEB 6 имеет уникальный серийный номер (SN). 

Внимание !  При выписке счета к оплате - количество используемых серийных номеров (SN) UTS WEB 6 (количество PID) должно быть ДОБАВЛЕНО к количеству используемых серийных номеров программы UTS Access. Оплату необходимо делать по одному счету - за UTS Access и за UTS WEB 6 - за общее количество серийных номеров.

 

Регистрация SN-PID

Для использования UTS WEB 6 необходима такая же регистрация серийных номеров ( SN), PID и SITA USERID/Password, как и для работы UTS Access 6. В UTS WEB 6 каждый используемый PID имеет уникальный серийный номер (SN). Регистрация серийного номера (SN) и PID для UTS WEB 6 выполняется так же, как и для UTS Access 6 и описана здесь.

Внимание !  Серийные номера для каждого PID указаны в закладке PIDs and SN Registration в в программе UTS WEB 6. После настройки файла UTS_WEB_6x.ini запустите UTS WEB 6 и перейдите к закладке PIDs and SN Registration.

 

Главная   Назад   Оглавление раздела