Сервер — программное обеспечение или отдельный компьютер, выполняющие обслуживание клиентов по запросам. Формат этих запросов определяет протокол.
Серверы в версии Nemo Connect
Вторая ветка проекта Nemo.travel — это масштабируемая гибкая система, организованная как группа самостоятельных серверов, взаимодействующих друг с другом.
Основные серверы проекта:
- Сервер бронирования — главный управляющий сервер, содержащий всю агентскую логику, позволяющий настраивать работу остальных серверов. Имеет в качестве интерфейса агентское XML API для подключения фронтенда — CMS, мобильные приложения, агрегаторы и т.д.
- Сервер заказов — база данных созданных броней с SOAP XML интерфейсом. Сервер способен выполнять такие функции как: добавление, редактирование, получение брони, а также выборка списка броней по параметрам.
- Сервер Авиа (Авиа Хаб) – сервер, предоставляющий единый интерфейс к авиапоставщикам. Сервер не содержит агентской логики, а лишь занимается трансляцией запросов на интерфейсы поставщиков.
- Сервер Отелей — сервер, подобно авиа агрегирующий запросы к поставщикам отельных услуг.
- Платежный сервер — объединяет в себе все платежные методы Nemo.Travel, обрабатывает и управляет проведением платежей. Имеет панель управления платежными системами, в т.ч. управление депозитами.
- Статика, Маппинг — данный сервер занимается сбором и управлением статикой системы. Сервер регулярно создает дампы для экспорта в локальные базы серверов.
Сервер бронирования основывается на Yii Framework. Остальные серверы — на базе шаблонного Nemo.Travel сервера.
Шаблонный сервер Nemo.Travel
Шаблонный сервер Nemo.Travel в репозитории организован как модульное приложение, в котором в т.ч. и серверы являются модулями. Для установки конкретного сервера в нем размещают только нужные модули.
На данный момент для построения сервером распределение модулей следующее:
- Авиа сервер: Core, Main, Zend, Flights, [модули GDS], Schemas, Services, FlightsServices.
- Сервер отелей: Core, Main, Zend, Hotels, [модули WBS], Scmas, Services, HotelsServices.
- Cервер заказов: Core, Main, Zend, Flights, Hotels, Schemas, Services, OrderServices.
- Платежный сервис: Core, Main, Zend, Services, PaymentServices.
Таким образом, готовый сервер содержит в себе только те модули от которых он зависит.