Сервер для мобильных и веб-приложений
Я планирую создать большое приложение. Он будет иметь интерфейс на основе браузера, а также интерфейс мобильного приложения (iOS, Android, Blackberry).
Я хотел бы иметь возможность передавать данные с сервера на эти интерфейсы, и из мобильных приложений на сервер будет отправляться много данных. Поэтому мой вопрос в том, какой сервер я собираюсь построить.
Я в основном разработчик PHP, хотя я могу писать на Java и заниматься другими. Я в порядке с изучением нового языка. Я думаю, как разработчик PHP, что я мог бы просто создать приложение PHP и использовать его API для питания других интерфейсов.
Однако будет много данных, и я не думаю, что PHP будет лучшей базой для этого. Поэтому я изучаю альтернативы. Есть мысли о том, с чего начать?
2 ответа
Вы можете использовать такую среду, как Rhomobile Rhomobile, которая генерирует клиенты на основе вашего браузера, а также они предлагают серверный компонент: http://rhomobile.com/products/rhosync/
Обычной практикой будет разделение функциональности бэкэнда между различными серверами.
- Сервер 1: обслуживать ваш статический контент
- Сервер 2: обслуживать динамически генерируемый контент (вещи, основанные на запросах, требующих ввода-вывода, например, взаимодействие с БД
- Сервер 3: выделенная инфраструктура реального времени для функциональности push-уведомлений в реальном времени
Возможно, серверы 1 и 2 на данный момент могут быть одним и тем же сервером, но я бы рекомендовал иметь выделенный сервер реального времени. Связь между серверами обычно осуществляется с помощью некоторой очереди сообщений, хотя также возможны вызовы веб-службы.
Моя область интересов - это запуск в реальном времени, так что здесь есть немного больше информации об этом. Если вы хотите придерживаться PHP, есть проект phpwebsocket. Если вы хотите взглянуть на Java, то есть [WaterSpout} (http://www.spoutserver.com/), jwebsocket и Jetty, которые уже давно используются (или были в последний раз, когда я проверял), используемые Twitter Потоковое API.
В этом руководстве по технологиям реального времени, которое я веду, есть больше возможностей для компонента вашего решения в реальном времени.