Советы по реализации сервера для структуры сервер / клиент Разработка приложений для iOS?

Должно быть много приложений, которые предназначены для взаимодействия с сервером. Мой вопрос касается только приложения, установленного на устройстве iOS + взаимодействие службы на стороне сервера. Я говорю не о веб-приложении, и в этом обсуждении вообще не должно быть веб-страниц. Типичными примерами являются такие приложения, как Instagram и Twitter, в которых большая часть информации, обмениваемой между приложением и сервером, представляет собой просто данные, такие как String, Image и Integer (завернутые в JSON или XML), представление веб-страницы не требуется.

У меня будет следующий вопрос: если вы являетесь независимым разработчиком приложения и разрабатываете такое приложение с нуля без какого-либо существующего API веб-сайта, структуры базы данных или приложения (так что вы не ограничены каким-либо существующим API или структурой базы данных или приложением протокол), какой подход будет наиболее эффективным?

Что необходимо сделать серверной стороне:

  • получить данные, отправленные приложением;
  • обрабатывают данные с помощью разработанной логики;
  • взаимодействуют с базой данных (например, MySQL);
  • выполняют необходимый анализ и анализ данных - это может быть постоянно работающая служба или одноразовая задача, запрошенная клиентом приложения;
  • отправлять данные обратно в приложение по запросу или спонтанно;
  • обмениваться или транслировать данные между разными клиентами приложения (т. Е.: групповой чат и одноранговое сообщение);

Насколько мне известно, есть 3 очевидных варианта реализации на стороне сервера:

  • PHP
  • Python
  • Ruby on Rails

(пожалуйста, не стесняйтесь для добавления дополнительных опций)

Мои вопросы:

  • какой из них наиболее подходящий для реализации на стороне сервера?
  • Если приложение уделяет большое внимание поиску, анализу и интеллектуальному анализу данных на естественном языке / тексте, какой из них лучший выбор? Я слышал, что Python неплохо справляется в этой области.
  • Есть какие-нибудь советы по выбору базы данных? Сейчас я использую MySQL, и я обнаружил, что он достаточно мощный для моих целей, я слышал, что Twitter переходит на Cassandra. Будет ли это слишком сложно для начала?
  • Для серверной части, если вам нужно создать интерфейс управления сервером, для вас, как администратора, для управления и мониторинга сообщества, членства, данных и т. Д., Есть ли какое-либо существующее решение , или фреймворк, или инструмент для этого? какой подход будет наиболее эффективным?
  • Если новый программист не имеет опыта ни в одном из них, с какого из них вы предлагаете ему начать?
  • Есть ли какие-нибудь хорошие справочные материалы или примеры кода на стороне сервера в таком контексте, из которых мы могли бы поучиться?

Я знаю, что в Stackoverflow есть много очень опытных экспертов в этих областях, но я видел больше новичков, которые только вошли в область разработки iOS без особых знаний в области программирования серверов / баз данных. И я надеюсь, что эта ветка может помочь тем, кто думает создать приложение со структурой сервер / клиент, но не знает, с чего начать.

ps: Я буду продолжать обновлять эту ветку вопросов и добавлять свои выводы по этой теме, чтобы помочь всем другим пользователям в stackoverflow. :-) Постарайтесь, чтобы ваш ответ был информативным, легким для понимания и конструктивным. Я думаю, что большинство читателей этой ветки будут новыми членами этого замечательного сообщества.

12
задан horacex 6 December 2011 в 09:40
поделиться