Связь между уровнями сервера веб-приложений PHP в Amazon Web Services - PullRequest
9 голосов
/ 10 апреля 2011

Я занимаюсь разработкой веб-приложения, размещенного на Amazon Web Services, и у меня есть вопрос относительно его архитектуры.

Глядя на диаграмму ниже от Amazon, у них есть 3 слоя;веб-сервер, обслуживающий пользователей через HTTP, сервер приложений, обрабатывающий бизнес-логику, и сервер базы данных.Это идеально подходит для нашего использования, и разделение логики сети и приложения прекрасно, однако у меня есть вопрос относительно связи между слоями.

Код приложения будет написан на PHP.Связь между сервером приложений и сервером базы данных может быть выполнена расширением mysqli PHP (по умолчанию к серверу базы данных хоста через порт 3306).Это нормально, однако я не уверен, как будет происходить связь между веб-сервером и сервером приложений во время HTTP-запроса пользователя, и каков наилучший способ сделать это.

Я прочитал оXML / RPC или, возможно, JSON / RPC, но это то, что я ищу?Или же связь между различными уровнями PHP-сервера обычно осуществляется по-другому?

Любой совет будет принят с благодарностью.

Recommended AWS Web App Architecture

Ответы [ 3 ]

2 голосов
/ 18 апреля 2011

Существует большая вероятность, что интерфейсы, которые вы должны разработать для уровня приложений, будут разными для нескольких приложений.Один из способов получить общий подход для этого - создать больше абстракций.

Это может быть реализовано многими способами, в PHP или, возможно, какой-то другой технологией между ними.Вы можете прочитать о Web-сервисах (WSDL, SOAP, WSO2.org для PHP), REST , RPC-стиль (вы это сделали), RMI Java), Corba , JAXB , несколько проектов из Apache Foundation, буфер протокола Google или реализация собственного протокола;В некоторых случаях подготовка баз данных также может помочь.

Я думаю, что ваш вопрос слишком общий, чтобы действительно "ответить" на него.Это один из первых вопросов, на которые вам нужно ответить при настройке такой архитектуры.

2 голосов
/ 25 апреля 2011

Если вы используете PHP в качестве резервной копии, то, скорее всего, ваши веб-серверы и серверы «приложений» будут располагаться на одной машине (Apache + php), поэтому диаграмма от Amazon практически не применима в этом случае. Одна вещь, на которую вы, возможно, захотите взглянуть, - это установка машины перед вашими веб-серверами (nginx или подобной) для обратного прокси-запроса на ваши веб-серверы, или, возможно, поиск ELB от amazon.

0 голосов
/ 10 апреля 2011

Можно также рассмотреть REST, который использует http для связи между веб-уровнем и уровнем приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...