Серверные процессы OpenEdge
Независимо от того, выполняете ли вы тестирование или развёртывание вашего приложения, оно работает в процессорной архитектуре OpenEdge, которая содержит один или несколько клиентских процессов и один или несколько серверных процессов. Поэтому важно понимать, что такое OpenEdge-процессы и как написанный вами код их использует.
Как разработчик, вы будете создавать, компилировать и тестировать программный код. При разработке приложения вы должны обеспечить работу определённых OpenEdge-процессов. Например, для тестирования программного кода бизнес-логики должен быть запущен серверный процесс.
В среде исполнения OpenEdge может присутствовать несколько серверных процессов. Обычно инсталляция OpenEdge включает в себя ряд компонент, которые представляют собой такие серверные процессы. Вы можете настраивать каждый из процессов и определять способы их старта.
- Application Server. Платформа OpenEdge предоставляет два сервера приложения для исполнения бизнес-логики на ABL:
- Progress Application Server (PAS) for OpenEdge – это веб-сервер Apache Tomcat, у которого есть встроенная маршрутизация и функциональность различных адаптеров.
- Classic AppServer – требует некоторых дополнительных процессов, включая Name Server для идентификации и регистрации процессов во время выполнения, а также OpenEdge-адаптеры для обработки запросов от не ABL-клиентов.
Progress Software рекомендует использовать PAS for OpenEdge в производственных средах, поскольку он отлично приспособлен для высоких нагрузок, а также прост в развёртывании и поддержке.
- Database Server. Группа процессов, обслуживающих запросы от различных процессов для получения доступа к данным и управления транзакциями в базе данных OpenEdge. Сервер OpenEdge состоит из брокера и одного или нескольких серверов.
- Data Server. Процесс, который позволяет ABL-клиентам получать доступ к не OpenEdge-базам данных.
- Admin Server. Процесс, который стартует серверные процессы OpenEdge. Он также необходим для работы OpenEdge Management и OpenEdge Explorer. При использовании OpenEdge Management или OpenEdge Explore, применяется для обновления конфигурации сервера и файлов свойств.
Рассмотрим взаимодействие клиентов с серверными процессами на примере Progress Application Server for OpenEdge. Стоит отметить, что термин «клиент» может иметь различные значения. В рамках этого урока под клиентом мы будем подразумевать ABL-код, который выполняется неким клиентским процессом.
Итак, развёрнутое приложение ABL содержит бизнес-логику на стороне сервера, которая исполняется на экземпляре PAS for OpenEdge.
Сервер приложений PAS for OpenEdge содержит несколько компонент, обеспечивающих поддержку ABL-клиентов. Рассмотрим их взаимодействие.
Маршрутизатор направляет запросы от клиентов к соответствующему встроенному адаптеру: AIA для ABL-клиентов; WSA для SOAP-клиентов и REST-адаптер для Mobile- и REST-клиентов.
Каждый адаптер форматирует поступающие запросы по правилам, которые зависят от типа клиента, а затем передаёт их менеджеру сессий (Session Manager). Менеджер сессий обрабатывает клиентские запросы и назначает для каждого запроса ABL-сессию из списка доступных сессий многосессионного агента (Multi-session Agent), который является пулом ABL-сессий, выполняющих бизнес-логику на ABL.
Клиент ABL подключается к экземпляру PAS for OpenEdge через HTTP. Веб-сервер направляет запрос на подключение на адаптер AIA. В свою очередь адаптер перенаправляет запрос к менеджеру сеансов. После подключения, ABL-клиент может сформировать запрос на обслуживание к серверу. Он вставляет ABL-запрос внутрь HTTP-запроса и отправляет его на веб-сервер. Веб-сервер отправляет запрос на адаптер, который перенаправляет его менеджеру сессий, который находит свободную сессию и передаёт ей запрос. После этого ABL-сессия активируется и исполняет бизнес-логику от имени клиента. Когда исполнение бизнес-логики завершено, ABL-сессия деактивируется и возвращается в пул доступных сессий, а ответ возвращается клиенту.
Сервер приложений PAS for OpenEdge поддерживает множество конкурентных клиентских подключений, т.е. все клиентские запросы получают собственные ABL-сессии и обрабатываются одновременно.
После того, как ABL-клиент отключился от экземпляра PAS for OpenEdge, менеджер сессий полностью очищает («забывает») информацию о нём.