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