1. Назначение и принцип работы системы Online

advertisement
БРОНИРОВАНИЕ И ПРОДАЖА ПАССАЖИРСКИХ
АВИАПЕРЕВОЗОК С ИСПОЛЬЗОВАНИЕМ ГЛОБАЛЬНОЙ
РАСПРЕДЕЛИТЕЛЬНОЙ СИСТЕМЫ «СИРЕНА–ТРЭВЕЛ»
СИСТЕМА ONLINE-TICKET
ИНСТРУКЦИЯ ПОЛЬЗОВАТЕЛЯ
МОСКВА, 2009 год
Содержание
1. Назначение и принцип работы системы Online-ticket
2. Настройка клиентской части системы Online-ticket
Приложение №1. Описание XML-формата обменного файла
Приложение №2. Описание полей XML документа
1. Назначение и принцип работы системы Online-ticket
Система оперативной передачи информации о продажах авиабилетов
(далее системы Online-ticket) предназначена для автоматизации процесса
обработки финансовой информации и учета операций над билетами (продажа,
обмен, возврат и т.д.) в режиме реального времени.
Схема работы системы Online-ticket представлена на рис.1. Рассмотрим
каким образом информация о продаже билета от кассира поступает
заинтересованным сторонам. В качестве заинтересованной стороны может
выступать агентство, авиакомпания, пункт продажи или любая их комбинация.
Касси
р
ГР
С
Сервер
Клиент
Общая
директория
(папка)
Online-ticket
Программа учета
финансовой
информации
Рис.1. Схема работы системы Online-ticket.
При выполнении кассиром одной из системных операций с билетом,
таких как: печать билета, обмен билета при изменении условий полета, БЛ обмен билета при изменении фамилии, возврат в АРС «Сирена-Трэвел» (далее
ГРС), формируется управляющее сообщение для сервера системы Online-ticket,
который на основе полученных данных формирует один или несколько XMLфайлов для клиента. Таким образом, информация об операции с билетом «почти
мгновенно» оказывается у сервера системы Online-ticket.
Следующий этап - это передача сформированного XML-файла
заинтересованным сторонам. Файл передается только по запросу приемной
стороны, поэтому на данном этапе возможны два случая:
1. Клиент подключен к серверу;
2. Клиент не подключен к серверу.
Если клиент подключен к серверу, то он получит сообщение из очереди
почти мгновенно.
Если клиент не подключен к серверу в данный момент, то сообщение
(которое состоит из идентификатора клиента и XML-файла) встанет в очередь
на доставку и будет там находится пока клиент не установит соединение с
сервером. После авторизации (об этом ниже), клиент делает запрос на наличие
сообщений для него, и в случае положительного ответа «забирает» их из
очереди сообщений клиентам.
Из выше сказанного следует, что если клиенту требуется получать
информацию мгновенно, то он должен всегда находится в состоянии
соединения с сервером, и при разрыве связи подключаться заново. В программе
клиента при разрыве соединения реализовано автоматическое подключение.
Клиент получив XML-файл сохраняет его в директории (папке) указанной
в файле конфигурации. В данную директорию (папку), также имеет доступ
программа обрабатывающая финансовую информацию и ведущая учет
проданных билетов.
Авторизация клиентов основана на основе сертификатов. Клиенту после
обработки заявки высылается два файла:
1.
ca.crt - корневой сертификат авторизационного центра;
2.
имя клиента.pem - данный файл содержит серификат клиента и его
закрытый ключ.
Данные файлы после их получения необходимо скопировать в
директорию с программой и указать к ним путь в конфигурационном файле.
Внимание!!! Файл «имя клиента.pem» не должен быть доступен никому,
кроме пользователя работающего с системой. В противном случае ваши
данные с сервера может скачать любой обладатель данного файла.
2. Настройка клиентской части системы Online-ticket
В настоящее время поддерживаются две разновидности программы
клиента: одна для семейства операционных систем (ОС) Windows, другая GNU/Linux. Клиент включает в себя 5 файлов:
1. Исполняемый файл: stat_client.exe - Windows, stat_client - Linux;
2. Файл конфигурации (stat_client.conf - по умолчанию);
3. ca.crt - корневой сертификат (сертификат авторизационного центра);
4. «***».pem - сертификат пользователя;
5. client.out - лог-файл.
При запуске исполняемого файла с ключом --help программа выведет
справку и прекратит работу. На рис.1. представлен вывод программы для
семейства ОС Windows, а на рис.2. для семейства ОС GNU/Linux, рассмотрим
назначение аргументов:
C:\tick>stat_client --help
Current version: 0.9.3
Help option requested
Command line parameters:
-i [ --install ]
-u [ --uninstall ]
-s [ --start ]
-n [ --name ] arg (=SC_0)
--help
Install Windows service
Uninstall Windows service
Work as Windows service (used by
Windows SCM. Don't use!!!)
Custom Windows service name
show this message
-f [ --config-file ] arg (=stat_client.conf) configuration file
Config file parameters:
--connect arg
--ca_cert arg
--client_cert arg
--client_id arg
--storage arg
--prefix arg (=prefix)
--ext arg (=.xml)
--logger arg (=dest=cout)
--keepalive arg (=10)
--reconnect arg (=10)
--openssl_conf arg
--openssl_conf_sect arg
host:port, example 127.0.0.1:7777
path to the authorization center certificate
path to the client certificate
if no certificates, name is requered
storage directory
prefix for file name
extension for output files: .txt, .xml
logger settings
Keep Alive Interval
Reconnect Interval
path to custom openssl.conf
name of section in openssl.conf
Рис.1. Листинг вывода программы при вызове помощи для ОС Windows.
Прокоментируем назначение аргументов.
Секция «Command line parameters»:

i - инсталлирует программу и позволяет рабтать ей в качестве
службы
Windows. Перед установкой новой версии обязательно
необходимо удалить старую. Программу можно запускать и без
установки из консоли Windows или файлового менеджера Norton
Commander, Total Commander и т.п.;

u - удаляет программу;

f - указывает путь к файлу конфигурации;

s, n - на данный момент не используются.
Секция «Config file parameters»:

connect - данный ключ в виде аргумента указывает адрес
сервера в формате host:port, причем через пробел можно указывать
следующий сервер и так далее;

сa_cert - аргументом является полный путь к корневому
сертификату (сертификату авторизационного центра);

client_cert - аргументом является полный путь к сертификату
клиента;

storage - полный путь к директории, куда буду записываться
XML-файлы;

prefix - задает префикс с которого будет начинаться имя
созданного файла;

ext - задает расширение созданного файла xml или txt;

logger - задает полный путь к лог-файлу; (возможны 3 варианта:
dest=file - вывод в файл, dest=cout - вывод на консоль, dest=syslog вывод в порт);

keepalive - интервал времени в секундах с момента последнего
получения данных от сервера, после которого проверяется состояние
соединения;

reconnect - интервал времени в секундах до следующей попытки
подключения, в случае не успешной настоящей попытки. Если указан

список серверов, то попытка подключения будет производится к
следующему в списке.
client_id, openssl_conf, openssl_conf_sect - не используются.
[Andrey@Linux ticket]$ ./client.gnu --help
Current version: 0.9.3
Help option requested
Command line parameters:
-d [ --daemon ]
-s [ --stop ]
-p [ --pidfile ] arg
--help
-f [ --config-file ] arg (=stat_client.conf)
Config file parameters:
--connect arg
--ca_cert arg
--client_cert arg
--client_id arg
--storage arg
--prefix arg (=prefix)
--ext arg (=.xml)
--logger arg (=dest=cout)
--keepalive arg (=10)
--reconnect arg (=10)
--openssl_conf arg
--openssl_conf_sect arg
Work as UNIX daemon
Stop UNIX daemon
Custom Name of PID file
show this message
configuration file
host:port, example 127.0.0.1:7777
path to the authorization center certificate
path to the client certificate
if no certificates, name is requered
storage directory
prefix for file name
extension for output files: .txt, .xml
logger settings
Keep Alive Interval
Reconnect Interval
path to custom openssl.conf
name of section in openssl.conf
Рис.2. Листинг вывода программы при вызове помощи для ОС GNU/Linux.
Секция «Command line parameters»:

d - запуск в виде демона;

s - останавливает демон;

p - имя PID-файла (чтобы запустить программу необходимо
создать в каталоге /var/run/ папку с названием программы, в нашем
случае stat_client или обязательно указать ключ);

f - указывает путь к файлу конфигурации.
Секция «Config file parameters» имеет такие же аргументы, как и в случае
клиента для ОС Windows.
Приложение №1. Описание XML-формата обменного файла
<TICKETS>
<TICKET>
<TYPE DESC=«TICKET, ETICKET, MCO»>varchar2(10)</CURRENCY>
<CURRENCY DESC=«код валюты оплаты – USD,RUB...»>varchar2(3)</CURRENCY>
<DEALDATE DESC=«дата продажи, возврта, обмена – дата сделки»> varchar2(8) /DEALDATE>
<DEALTIME DESC=«время продажи, возврта, обмена – время сделки»>varсhar2(6)
</DEALTIME>
<OPTYPE DESC=«SALE,REFUND»>varchar2(10)</OPTYPE>
<TRANS_TYPE DESC=«SALE,REFUND,CANCEL,EXCHANGE»>varchar2(10)</TRANS_TYPE>
<MCO_TYPE DESC=«PTA, PENALTY, RECEIPT»>varchar2(10)</MCO_TYPE>
<STAMP DESC=«валидатор»>varchar2(10)</STAMP>
<BSONUM DESC=«номер БСО - 421 4200000001»>varchar2(20)</BSONUM>
<EX_BSONUM DESC=«номер БСО сданного билета, или выданного взамен»>varchar2(20)
</EX_BSONUM>
<FIO DESC=«ФИО пассажира»>varchar2(100)</FIO>
<PASS DESC=«документ, удостоверяющий личность»>varchar2(100)</PASS>
<GENERAL_CARRIER DESC=«ответственный перевозчик – 421»>varchar2(10) </GENERAL_CARRIER>
<TCC DESC=«расчетный код для бланков ТКП – 99А, 421…»>varchar2(3)</TCC>
<SALEDATE DESC=«дата продажи, для возвращаемых»>varchar2(8)</SALEDATE>
<SALETIME DESC=«время продажи, для возвращаемых»>varchar2(6)</SALETIME>
<RETTYPE DESC=«вид возврата – добровольный=0, вынужденный=1»>varchar2(1)</RETTYPE>
<TOURCODE DESC=«код тура»>varchar2(15)</TOURCODE>
<DISP DESC=«код диспетчера»>varchar2(20)</DISP>
<TAP DESC=«технологический адрес пульта - PID»>varchar2(100)</TAP >
<OCURRENCY DESC=«код валюты отчетности – EUR…»> varchar2(3) </OCURRENCY>
<ORATE DESC=«курс перевода из валюты назначения в валюту отчетности –
0.7103»> number </ORATE>
<NCURRENCY DESC=«код валюты назначения тарифа – USD, RUB…»> varchar2(3) </NCURRENCY>
<NRATE DESC=«курс перевода из валюты назначения в валюту оплаты – 25.9003»>
number </NRATE>
<PNR>varchar2(8)</PNR>
<PNR_LAT>varchar2(8)</PNR_LAT>
<CONJ DESC=«номера дополнительных бланков»>varchar2(100)</CONJ>
<SALESTAMP DESC=«номер пункта продажи для возвращаемых»> varchar2(8) </SALESTAMP>
<SALEAG DESC=«номера дополнительных бланков»>varchar2(6)</SALEAG>
<TO_BSONUM DESC=«номер основного билета»>varchar2(20)</TO_BSONUM>
<TYP_NUM DESC=«типографский номер бланка»>varchar2(20)</TYP_NUM>
<SEGMENTS>
<SEGMENT>
<SEGNO DESC=«номер участка –от 1 до 4»>number
<IS_VOID DESC=«F – flight, V – VOID, S - Surface»>varchar2(1)</IS_VOID>
<STPO DESC=«признак стоповера, 0 – остановка разрешена, 1 – запрещена
на билете Х»>number</STPO>
<CITY1CODE DESC=«код ,как на бланке – SIP»>varchar2(3)</CITY1CODE>
<CITY2CODE DESC=«код ,как на бланке – VKO»>varchar2(3)</CITY2CODE>
<PORT1CODE DESC=«код ,как на бланке – SIP»>varchar2(3)</PORT1CODE>
<PORT2CODE DESC=«код ,как на бланке – VKO»>varchar2(3)</PORT2CODE>
<CARRIER DESC=«код перевозчика на участке – S7»>varchar2(2)</CARRIER>
<CLASS DESC=«X,N…»>varchar2(2)</CLASS>
<REIS>varchar2(5)</REIS>
<FLYDATE>varchar2(8)</FLYDATE>
<FLYTIME>varchar2(4)</FLYTIME>
<BASICFARE DESC=«базовый тариф, FARE BASIS, название атрибута некорректное, но так уж исторически сложилось»>varchar2(13)</BASICFARE>
<FARE DESC=«тариф в валюте оплаты 10360.00»>number</FARE>
<NFARE DESC=«тариф в валюте назначения 400.00»>number</NFARE>
</SEGMENT>
</SEGMENTS>
<TAXES>
<TAX>
<SEGNO DESC=«номер участка –от 1 до 4»>number</SEGNO>
<CODE DESC=«Код таксы – RU, YQ…»>varchar2(20)</CODE>
<AMOUNT DESC=«сумма сбора в валюте оплаты 389.00»>number</AMOUNT>
<NAMOUNT DESC=«сумма сбора в валюте назначения 15.00»> number </NAMOUNT>
</TAX>
</TAXES>
<FOPS>
<FOP>
<TYPE DESC=«форма оплаты - CASH, СС, INV, INVOICE…»>varchar2(50) </TYPE>
<ORG DESC=«организация – MO (Министерство обороны)…»>varchar2(100) </ORG>
<DOCSER>varchar2(100)</DOCSER>
<DOCNUM>varchar2(200)</DOCNUM>
<AMOUNT DESC=«сумма итого в валюте оплаты 389.00»>number</AMOUNT>
</FOP>
</FOPS>
</TICKET>
</TICKETS>
Приложение №2.Описание полей XML документа
TICKETS — корневой узел XML документа , состоит из записи об операции TICKET.
Поля записи об операции TICKET.
Тип документа
TICKET, ETICKET, MCO
CURRENCY
код валюты оплаты - USD,RUB...
DEALDATE
дата продажи, возврата, обмена – дата сделки
время продажи, возврата, обмена – время
DEALTIME
сделки
SALE, REFUND для обычных билетов,
ETSALE, ETREFUND для электронных,
OPTYPE
в случае обмена формируется пара сообщений,
первое с данными возвращаемого билета,
второе с данными выданного.
Общий тип транзакции
TRANS_TYPE
SALE, REFUND, EXCHANGE
Если сообщение является данными MCO то
MCO_TYPE
указывается тип MCO из ряда : PTA,
RECEIPT, PENALTY
STAMP
валидатор
номер БСО - 421 4200000001
BSONUM
если ТКП - тип бланков и номер
если нет - код авиакомпании, пробел и номер
Заполняется при обменах, обеспечивает связь
пары сообщений по обмену.
EX_BSONUM
Содержит номер БСО сданного билета для
сообщения SALE, или выданного взамен для
REFUND
FIO
ФИО пассажира
PASS
документ, удостоверяющий личность
GENERAL_CARRIER ответственный перевозчик - 421
TCC
расчетный код для бланков ТКП – 99А, 421…
SALEDATE
Заполняется для возвращаемых. Дата продажи.
Заполняется для возвращаемых. Время
SALETIME
продажи.
Вид возврата – добровольный=0,
RETTYPE
вынужденный=1
TOURCODE
Код тура
DISP
Код диспетчера
TAP
Технологический адрес пульта - PID
OCURRENCY
Код валюты отчетности – EUR,USD, RUB…
Курс перевода из валюты назначения в валюту
ORATE
отчетности – 0.7103
NCURRENCY
Код валюты назначения тарифа – USD, RUB…
TYPE
NRATE
PNR
CONJ
SALESTAMP
SALEAG
TO_BSONUM
TYP_NUM
SEGMENTS
TAXES
FOPS
Курс перевода из валюты назначения в валюту
оплаты – 25.9003
PNR заказа
Номера дополнительных бланков
Заполняется для возвращаемых. Номер пункта
продажи.
Заполняется для возвращаемых. Код агентства.
Заполняется для МСО. Номер основного
билета
Типографский номер бланка
Одна или несколько записей участка маршрута
SEGMENT
Ни одной, одна или несколько записей сборов
TAX
Одна или несколько записей форм оплаты FOP
Поля записи участка маршрута SEGMENT
SEGNO
IS_VOID
STPO
CITY1CODE
CITY2CODE
PORT1CODE
PORT2CODE
CARRIER
CLASS
REIS
FLYDATE
FLYTIME
BASICFARE
FARE
NFARE
номер участка – от 1 до 4
F – flight, V – VOID, S - Surface
Признак стоповера, 0 – остановка разрешена, 1 –
запрещена (на билете Х)
Код города отправления, как на бланке - LED
Код города прибытия, как на бланке - MOW
Код порта отправления, как на бланке - PUL
Код порта прибытия, как на бланке - VKO
Код перевозчика на участке – S7
X,N…
Номер рейса
Дата отправления . ДДММГГГГ
Время отправления . ЧЧММ
Базовый тариф, FARE BASIS, название атрибута
некорректное, но так уж исторически сложилось
Тариф в валюте оплаты 10360.00
Тариф в валюте назначения 400.00
Поля записи сбора TAX
SEGNO
CODE
AMOUNT
NAMOUNT
Номер участка –от 1 до 4
Код таксы – RU, YQ…
Сумма сбора в валюте оплаты 389.00
Сумма сбора в валюте назначения 15.00
Поля записи формы оплаты FOP
TYPE
ORG
DOCSER
DOCNUM
AMOUNT
Форма оплаты - CASH, СС, INV, INVOICE…
Организация – MO (Министерство обороны)…
Серия документа
Номер документа
Сумма итого в валюте оплаты 389.00
Представление операций.
ПБ печать MCO.
Формируется одно сообщение с данными по напечатанному MCO. OPTYPE равен SALE,
или ETSALE, для электронных билетов, TRANS_TYPE равен SALE, MCO_TYPE равен PTA.
ПБ печать билета.
Формируется одно сообщение с данными по напечатанному билету. OPTYPE равен SALE,
или ETSALE, для электронных билетов, TRANS_TYPE равен SALE, MCO_TYPE не
заполнен.
ПO и БЛ обмен билета.
Формируется пара сообщений, в обоих TRANS_TYPE равен EXCHANGE: первое с данными
возвращаемого билета, OPTYPE равен REFUND, или ETREFUND, для электронных
билетов, второе с данными выданного взамен билета OPTYPE равен SALE, или ETSALE,
для электронных билетов. В обоих сообщениях пары заполняется поле EX_BSONUM,
которое содержит номер БСО сданного билета для сообщения SALE, или выданного взамен
для REFUND, таким образом, пара связывается по полям EX_BSONUM и BSONUM. Так
же в информации о сданном билете заполняются поля SALEDATE, SALETIME,
SALESTAMP, SALEAG, поле MCO_TYPE не заполняется.
ОТ отказ от билета.
Формируется одно сообщение с данными по возвращаемому билету. TRANS_TYPE равен
REFUND, OPTYPE равен REFUND, или ETREFUND, для электронных билетов.
Заполняются поля SALEDATE, SALETIME, SALESTAMP, SALEAG, поле MCO_TYPE не
заполняется.
АП возврат билета
Формируется пара сообщений в обоих TRANS_TYPE равен REFUND: первое с данными
возвращаемого билета, OPTYPE равен REFUND, или ETREFUND, для электронных
билетов, поле MCO_TYPE не заполняется; второе с данными МСО, OPTYPE равен SALE,
или ETSALE, для электронных билетов, MCO_TYPE равен RECEIPT. В сообщении с
данными МСО заполняется поле TO_BSONUM, которое содержит номер БСО сданного
билета, таким образом, МСО связывается по полю TO_BSONUM с BSONUM сданного
билета. Так же в информации о сданном билете заполняются поля SALEDATE, SALETIME,
SALESTAMP, SALEAG.
ПШ печать штрафа
Формируется одно сообщение с данными МСО. OPTYPE равен SALE, или ETSALE, для
электронных билетов, MCO_TYPE равен PENALTY. Заполняется поле TO_BSONUM,
которое содержит номер БСО билета, по которому взимается штраф. Поле TRANS_TYPE
содержит EXCHANGE, если штраф соответствует обмену, или REFUND, если штраф
соответствует возврату.
Download