Советы по реализации сервера для разработки сервера/клиента iOS App?
Должно быть много приложений, предназначенных для взаимодействия с сервером. Мой вопрос касается только того, что приложение установлено на устройстве iOS + серверное взаимодействие с сервером. Веб-приложение - это не то, о чем я говорю, и в этой дискуссии вообще не должно быть веб-страницы. Типичными примерами являются такие приложения, как Instagram и Twitter, в которых большая часть информации, обмениваемой между App и сервером, - это просто данные, такие как String, Image и Integers (завернутые в JSON или XML), не требуется представление веб-страницы.
Мой вопрос будет: если вы независимый разработчик приложений, и вы разрабатываете такое приложение с нуля без какого-либо существующего API веб-сайта, структуры базы данных или приложения (поэтому вы не ограничены каким-либо существующим API или структурой базы данных или приложением протокол). Каким будет наиболее эффективный подход?
То, что нужно сделать этой стороне:
- получать данные, отправляемые приложением;
- обрабатывать данные с помощью разработанной логики;
- взаимодействовать с базой данных (например, MySQL);
- выполнить необходимый анализ данных и анализ - это может быть постоянно работающий сервис или однократная задача, запрошенная клиентом приложения;
- отправить данные обратно в приложение по запросу или спонтанно;
- обменивать или транслировать данные между/между различными клиентами приложений (т.е.: групповое общение в чате и одноранговое сообщение);
Насколько я знаю, есть 3 очевидных варианта реализации серверной части:
(не стесняйтесь добавлять дополнительные параметры)
Мои вопросы:
- какой из них наиболее подходящий для реализации серверной части?
- Если приложение интенсивно фокусируется на поиске естественного человеческого языка/текста, анализе и интеллектуальном анализе данных, какой из них является лучшим выбором? Я слышал, что Python неплохо работает в этой области.
- Любые советы по выбору базы данных? Я использую MySQL на данный момент, и я нашел его достаточно мощным для своих целей, я слышал, что Twitter переключается на Cassandra. С этим будет сложно начать?
- Для завершения сервера, если вам нужно создать интерфейс управления сервером, для вас как администратора для управления и мониторинга сообщества, членства, данных и т.д. существует ли существующее решение или инфраструктура или инструмент для этого? какой будет наиболее эффективный подход?
- Если новый программист не имеет опыта работы с ними, из которых вы предлагаете начать с него?
- Есть ли какой-либо хороший ссылочный материал или пример кода на стороне сервера в таком контексте, о котором мы можем узнать?
Я знаю, что в Stackoverflow есть много опытных экспертов по этим областям, но я видел больше новичков, которые только что вошли в область разработки iOS без особых знаний в области программирования серверов/баз данных. И я надеюсь, что эта тема может помочь тем, кто думает создать приложение с серверной/клиентской структурой, но понятия не имеет, с чего начать.
ps: Я буду продолжать обновлять этот вопрос и добавлять свои выводы по этой теме, чтобы помочь всем другим пользователям в stackoverflow.:-) Пожалуйста, постарайтесь сделать ваш ответ информативным, понятным и конструктивным. Я думаю, что большинство читателей этой темы будут новыми членами этого великого сообщества.
Ответы
Ответ 1
Вы уверены, что хотите потратить время и деньги на разработку собственного сервера и разработку собственного API?
Сегодня существует множество mBaaS (мобильных бэкэдов как сервис), таких как QuickBlox, Parse, StackMob, которые готовы к использованию, и у них есть отличный API пользовательских объектов и некоторые предопределенные модули. У них отличные бесплатные планы с большой квотой. Некоторые из них QuickBlox имеют план предприятия - так что вы можете купить лицензию и сервер серверов для серверов.
Поэтому я рекомендую не развивать свой сервер и думать о рынке mBaaS.
Как раз о вашей проблеме - я могу порекомендовать образец кода QuickBlox Custom Objects, а также API пользовательских объектов. Модуль Custom Objects предоставляет гибкость для определения любой структуры данных (схемы), в которой вы нуждаетесь. Схема определена в панели администрирования. Схема называется классом и содержит имена полей и их тип. Я думаю, что вам нужно.
Ответ 2
- , который является наиболее подходящим вариантом для реализации сервера
сторона?
Ну, это зависит от того, что вы знаете, есть выбор по выбору один из других
- Если приложение интенсивно фокусируется на естественном человеческом языке/тексте
поиск, анализ и анализ данных, какой из них является лучшим выбором? я
слышал, что Python очень хорошо справляется в этой области.
Это будет отражать ваш первый вопрос, вы выбираете язык, который вам нужен. Таким образом, если python упрощает выбор, выберите этот.
- Любые советы по выбору базы данных? Я использую MySQL на данный момент, и я
нашел его достаточно мощным для моих целей, я слышал, что Twitter
переключение на Кассандру. С этим будет сложно начать?
Опять не тот, на который легко ответить, поскольку все это связано с требованиями. Но любой SQL-сервер будет делать. Cassandra предназначена для "масштабируемости и высокой доступности без ущерба для производительности", на которой есть сайт. Считаете ли вы, что веб-служба получит много запросов, тогда это может быть выбор.
- Для сервера, если вам нужно создать управление сервером
интерфейс, для вас, как администратора для управления и мониторинга сообщества,
членство, данные и т.д., существует ли существующее решение или
рамки или инструмент для этого? какой будет наиболее эффективный подход?
На этот раз вам будет дан ответ, когда вы выберете сервер SQL Server и язык сервера.
- Если новый программист не имеет опыта работы с ними, кто из вас
подскажите, с чего начать?
Начните с чего-то более простого, вы действительно выходите на конечность здесь.
- Есть ли хороший справочный материал или пример кода на сервере
в этом контексте мы можем учиться?
Возможно, есть некоторые, но вы действительно должны начинать с малого и работать оттуда.
Twitter начал работать как приложение Rub on Rails и работает над масштабируемостью и доступностью, которая не очень хороша для рубина (это мое мнение). или Посмотрите на facebook, они написали компилятор php to c, чтобы ускорить работу php.
Единственное, что я могу сказать, чтобы начать код, когда приложение отключается, затем устраняет некоторые проблемы с производительностью.
И поскольку вы заявляете, что вы новичок в программировании, не кусайте больше, чем можете пережевывать.
Ответ 3
Это огромный вопрос, и я не думаю, что есть лучший ответ. Это больше всего зависит от того, что вас волнует, например, как быстро процесс разработки, насколько легко реализуется и т.д.
И какой из них популярен, какой из них классный, я не думаю, что это действительно имеет смысл.
По моему личному мнению, я хорошо разбираюсь в ASP.NET, и я могу легко получить Windows-сервер, поэтому я начну с службы ASP.NET для предоставления данных.
И, чтобы быть продолженными.