Должно быть много приложений, предназначенных для взаимодействия с сервером. Мой вопрос касается только того, что приложение установлено на устройстве iOS + серверное взаимодействие с сервером. Веб-приложение - это не то, о чем я говорю, и в этой дискуссии вообще не должно быть веб-страницы. Типичными примерами являются такие приложения, как Instagram и Twitter, в которых большая часть информации, обмениваемой между App и сервером, - это просто данные, такие как String, Image и Integers (завернутые в JSON или XML), не требуется представление веб-страницы.
Мой вопрос будет: если вы независимый разработчик приложений, и вы разрабатываете такое приложение с нуля без какого-либо существующего API веб-сайта, структуры базы данных или приложения (поэтому вы не ограничены каким-либо существующим API или структурой базы данных или приложением протокол). Каким будет наиболее эффективный подход?
То, что нужно сделать этой стороне:
- получать данные, отправляемые приложением;
- обрабатывать данные с помощью разработанной логики;
- взаимодействовать с базой данных (например, MySQL);
- выполнить необходимый анализ данных и анализ - это может быть постоянно работающий сервис или однократная задача, запрошенная клиентом приложения;
- отправить данные обратно в приложение по запросу или спонтанно;
- обменивать или транслировать данные между/между различными клиентами приложений (т.е.: групповое общение в чате и одноранговое сообщение);
Насколько я знаю, есть 3 очевидных варианта реализации серверной части:
- PHP
- Python
- Ruby on Rails
(не стесняйтесь добавлять дополнительные параметры)
Мои вопросы:
- какой из них наиболее подходящий для реализации серверной части?
- Если приложение интенсивно фокусируется на поиске естественного человеческого языка/текста, анализе и интеллектуальном анализе данных, какой из них является лучшим выбором? Я слышал, что Python неплохо работает в этой области.
- Любые советы по выбору базы данных? Я использую MySQL на данный момент, и я нашел его достаточно мощным для своих целей, я слышал, что Twitter переключается на Cassandra. С этим будет сложно начать?
- Для завершения сервера, если вам нужно создать интерфейс управления сервером, для вас как администратора для управления и мониторинга сообщества, членства, данных и т.д. существует ли существующее решение или инфраструктура или инструмент для этого? какой будет наиболее эффективный подход?
- Если новый программист не имеет опыта работы с ними, из которых вы предлагаете начать с него?
- Есть ли какой-либо хороший ссылочный материал или пример кода на стороне сервера в таком контексте, о котором мы можем узнать?
Я знаю, что в Stackoverflow есть много опытных экспертов по этим областям, но я видел больше новичков, которые только что вошли в область разработки iOS без особых знаний в области программирования серверов/баз данных. И я надеюсь, что эта тема может помочь тем, кто думает создать приложение с серверной/клиентской структурой, но понятия не имеет, с чего начать.
ps: Я буду продолжать обновлять этот вопрос и добавлять свои выводы по этой теме, чтобы помочь всем другим пользователям в stackoverflow.:-) Пожалуйста, постарайтесь сделать ваш ответ информативным, понятным и конструктивным. Я думаю, что большинство читателей этой темы будут новыми членами этого великого сообщества.