|
|
| (не показаны 54 промежуточных версий 3 участников) |
| Строка 1: |
Строка 1: |
| | + | |
| | == Назначение сервиса == | | == Назначение сервиса == |
| − | Сервис предназначен для:
| + | === Импорт данных в систему клиента === |
| − | * Импорт данных в систему клиента (тип поиска: БД).
| + | Импорт данных в систему клиента может производиться для получения каких-то статистических показателей. Например расчета минимальных по каким-то параметрам. Или же организации каких-то своих сервисов. |
| − | * Организация поиска на сайте клиента (тип поиска: комбинированный).
| + | |
| − | | + | |
| − | | + | |
| − | В зависимости от выбранного клиентом способа использования администрацией TourClient выставляется соответствующая настройка сервиса - '''тип поиска'''. Клиенту изменение данной настройки недоступна.
| + | |
| − | | + | |
| − | Тип поиска определяет поведение сервиса и предоставляемые им данные.
| + | |
| − | | + | |
| − | | + | |
| − | === Импорт данных в свою систему === | + | |
| − | Импорт данных в свою систему может производиться для получения каких-то статистических показателей. Например расчета минимальных по каким-то параметрам. Или же организации каких-то своих сервисов. | + | |
| − | | + | |
| − | | + | |
| − | '''Сервис предоставляет только те данные которые в текущий момент сохранены в нашей БД.'''
| + | |
| − | | + | |
| − | | + | |
| − | '''Обратите внимание:''' сервис не предназначен для полной синхронизации БД клиента с нашей (из-за большого объема данных и очень интенсивной скорости обновления нашей БД). Архитектура получения данных в текстовом формате через xml-шлюз маленькими блоками не позволит работать с такими объемами данных, пропускной способности будет недостаточно для оперативного обновления данных (потенциально базу выкачать возможно, но она тут же устарает, и не будет успевать обновляться по данной технологии).
| + | |
| − | | + | |
| − | | + | |
| − | Сервис рекомендуется использовать для получения данных в рамках какого-то среза ограничивающего возможный объем данных: по ограниченному набору отелей, на ближайшие даты, по нескольким странам и т.п.
| + | |
| − |
| + | |
| − | ==== Особенности работы ====
| + | |
| − | * максимально быстрая скорость получения результата
| + | |
| − | * ответ на запрос формируется сразу полностью
| + | |
| − | * минимальная цена точная (та которая в текущий момент минимальна в нашей БД по данным параметрам)
| + | |
| − | * по непопулярным запросам можно получить данных меньше чем в комбинированном поиске, если они в текущий момент не присутствуют в нашей БД (принципы работы комбинированного поиска не позволяют использовать его для выгрузки данных)
| + | |
| − | * ответы сервиса не кешируются
| + | |
| − | | + | |
| − | ==== Ограничения ====
| + | |
| − | * Количество данных возвращаемое одним запросом: не более 2500 туров.
| + | |
| − | * Макс. допустимое количество запросов в сутки: не регламентировано (определяется индивидуально в случае создания клиентом высокой нагрузки на сервис).
| + | |
| | | | |
| | + | В этом случае используется [[XML_-_результаты_поиска/Поиск_туров/Тип_поиска_-_БД|Тип поиска - БД]]. |
| | | | |
| | === Организация поиска на сайте клиента === | | === Организация поиска на сайте клиента === |
| | Используется для организации сервиса подобного нашему модулю [[Поиск туров - результаты поиска]], когда клиент хочет самостоятельно управлять его работой. Позволяет получить результат в текущий момент наиболее соответствующий данным в системах туроператоров. | | Используется для организации сервиса подобного нашему модулю [[Поиск туров - результаты поиска]], когда клиент хочет самостоятельно управлять его работой. Позволяет получить результат в текущий момент наиболее соответствующий данным в системах туроператоров. |
| | | | |
| | + | В этом случае используется [[XML_-_результаты_поиска/Поиск туров/Тип_поиска_-_Комбинированный|Тип поиска - комбинированный]]. |
| | | | |
| − | '''Сервис предоставляет данные полученные в текущий момент из всех возможных источников: сохраненные в БД, полученные "на лету" из системы туроператора, а также некоторыми другими способами.'''
| |
| | | | |
| | + | В зависимости от выбранного клиентом способа использования сервиса, администрацией TourClient выставляется соответствующая настройка сервиса - '''тип поиска'''. Клиенту изменение данной настройки недоступно. |
| | + | |
| | + | Тип поиска определяет поведение сервиса и предоставляемые им данные. |
| | | | |
| − | '''Обратите внимание:''' данный тип поиска для обработки запросов от конечных пользователей, и не предназначен для обработки автоматических запросов. Ограничение вызвано тем что запросы в конечном счете передаются в системы туроператоров, которые зачастую не адаптированы к большой нагрузке. Для автоматических запросов должен использоваться тип поиска '''БД поиск'''.
| + | <br> |
| | | | |
| − | ==== Алгоритм организации поиска ==== | + | == Описание интерфейсов == |
| − | [http://wiki.tourclient.ru/w/images/d/d6/Search_tour.svg <img src="http://wiki.tourclient.ru/w/images/d/d6/Search_tour.svg" width="200px" style="float: right">]
| + | |
| | | | |
| − | # Приложение формирует поисковый запрос и отправляет его сервису '''Поиск туров'''.
| + | * [[XML_-_результаты_поиска/Поиск_туров/Интерфейс_-_Результаты_поиска|Результаты поиска]] |
| − | # Сервис инициирует новый поиск.
| + | * [[XML_-_результаты_поиска/Поиск_туров/Интерфейс_-_Статус_поиска|Статус поиска]] |
| − | # Приложение ожидает ответа от сервиса.
| + | * [[XML_-_результаты_поиска/Поиск_туров/Интерфейс_-_Результаты_поиска_по_отелю|Результаты поиска по отелю]] |
| − | # Сервис возвращает данные по запрошенной странице, данные о количестве найденных туров и ключ поиска.
| + | * [[XML_-_результаты_поиска/Поиск_туров/Интерфейс_-_Сводный_прайс_по_ночам|Сводный прайс по ночам]] |
| − | # Сервис в фоновом режиме продолжает поиск до нахождения всех данных для запроса.
| + | |
| − | # Приложение периодически опрашивает сервис '''Статус поиска''', для обновления найденного количества туров и проверки что поиск не завершен.
| + | |
| − | # Получив информацию что поиск завершен приложение может:
| + | |
| − | #* сообщить пользователю что поиск завершен
| + | |
| − | #* предложить обновить результаты поиска (т.к. могли быть найдены новые данные)
| + | |
| − | #* обновить результаты поиска автоматически
| + | |
| − | # Для обновления результатов поиска приложение отправляет сервису '''Поиск туров''' поисковый запрос, идентичный тому что был отправлен ранее.
| + | |
| | | | |
| − | <br>
| |
| | | | |
| − | ==== Особенности работы ====
| + | Результаты возвращаемые сервисом содержат общие для системы объекты, описанные в |
| − | ===== Время поиска =====
| + | * [[XML_экспорт/Описание_объектов|Описании объектов]] |
| − | * Т.к. в момент поиска приходится ждать ответа из разных систем, полный поиск может занимать продолжительное время.
| + | |
| − | * Ограничение на время полного поиска 30 сек., после этого в результаты поиска попадают туры найденные за это время.
| + | |
| − | * Приложение должно запрашивать у сервиса нужную ему страницу данных. Страница определяется параметрами dataLimit, dataOffset. | + | |
| − | * После запроса сервис возвращает данные в момент когда:
| + | |
| − | ** либо найдено достаточное количество данных для формирования запрошенной страницы
| + | |
| − | ** либо истек таймаут
| + | |
| − | * Таймаут на возврат запрошенной страницы 10 сек. По истечении таймаута сервис вернет все найденные на этот момент предложения.
| + | |
| − | * Таймаут может быть автоматически увеличен до 30 сек, если за это время ни одного предложения не найдено, но все еще ожидается ответ от медленного поставщика данных.
| + | |
| | | | |
| − | ===== Минимальная цена =====
| + | <br> |
| − | * При возврате запрошенной страницы первым туром будет тур с минимальной ценой из всех найденных в текущий момент.
| + | |
| − | * Если на момент возврата страницы таймаут еще не истек, это тур с минимальной ценой по данному запросу.
| + | |
| − | * Если страница возвращена из-за таймаута, то потенциально в процессе поиска могут быть найдены туры с ценой меньше. Они будут доступны по данному запросу после окончания поиска.
| + | |
| | | | |
| − | ===== Кеширование ===== | + | == Дополнительная информация == |
| − | * Результаты всех запросов кешируются.
| + | |
| − | * Последующий запрос с аналогичными параметрами (без учета dataLimit, dataOffset) будет возвращен из кеша.
| + | |
| − | * Время жизни кеша 15 минут.
| + | |
| − | * В случае если при обращении к сервису с определенными параметрами поиск по таким параметрам уже идет, то:
| + | |
| − | ** если данные для формирования запрошенной страницы уже найдены, будет возвращен результат
| + | |
| − | ** если данные для формирования запрошенной страницы еще найдены, результат будет возвращен как только будут найдены данные
| + | |
| | | | |
| − | ==== Ограничения ====
| + | * [[XML_-_результаты_поиска/Поиск_туров/Буфер_поиска|Буфер поиска]] |
| − | * Количество данных возвращаемое одним запросом: не более 2500 туров. | + | * [[XML_-_результаты_поиска/Поиск_туров/Тип_поиска_-_БД|Тип поиска - БД]] |
| − | * Макс. допустимое количество запросов в сутки: 3000 | + | * [[XML_-_результаты_поиска/Поиск туров/Тип_поиска_-_Комбинированный|Тип поиска - комбинированный]] |
| − | | + | |
| − | '''Обратите внимание:''' Большее число запросов необходимо согласовывать индивидуально, и может повлечь за собой увеличение тарифов. Если не было соответствующей договоренности, то при превышении нагрузки сервис может быть отключен без предварительного предупреждения.
| + | |
| | | | |
| | <br> | | <br> |
| − | == Описание интерфейса ==
| |
| − |
| |
| − | * [[XML_экспорт/Поиск_туров/Сервис_-_Результаты_поиска|Сервис - Результаты_поиска]]
| |
| − | * [[XML_экспорт/Поиск_туров/Сервис_-_Статус_поиска|Сервис - Статус_поиска]]
| |
| − |
| |
| − | * [[XML_экспорт/Поиск_туров/Описание_объектов|Описание объектов]]
| |
Импорт данных в систему клиента может производиться для получения каких-то статистических показателей. Например расчета минимальных по каким-то параметрам. Или же организации каких-то своих сервисов.
Тип поиска определяет поведение сервиса и предоставляемые им данные.