关于服务器/客户端结构iOS App开发的服务器实现的建议?

时间:2011-12-06 09:35:17

标签: iphone ios database client

必须有很多旨在与服务器通信的应用程序。我的问题只是关于安装在iOS设备上的App +服务器端服务交互。 Web应用程序不是我所说的,并且根本不应该涉及这个讨论的网页。典型的例子是像Instagram和Twitter这样的应用程序,其中App和服务器之间交换的大多数信息只是String,Image和Integers(用JSON或XML包装)等数据,不需要网页显示。

我的问题是:如果您是一名独立的应用程序开发人员,并且您从头开始设计这样的应用程序而没有任何现有的网站API,数据库结构或应用程序(因此您不受任何现有API或数据库结构或应用程序的限制)协议),最有效的方法是什么?

服务方需要做的是:

  • 接收App发送的数据;
  • 使用设计逻辑处理数据;
  • 与数据库交互(如MySQL);
  • 进行必要的数据挖掘和分析 - 这可能是一个持续运行的服务或App客户端请求的一次性任务;
  • 根据请求或自发地将数据发回应用程序;
  • 在不同的App客户端之间交换或广播数据(即:组聊天室和点对点消息);

据我所知,实现服务器端有3个明显的选项:

  • PHP
  • 的Python
  • Ruby on Rails

(请随意添加更多选项)

我的问题是:

  • 哪一个是实现服务器端最合适的选择?
  • 如果App专注于自然人类语言/文本搜索,分析和数据挖掘,哪一个是最佳选择?我听说Python在这方面做得很好。
  • 有关数据库选择的任何建议吗?我现在正在使用MySQL,我发现它对我的目的非常强大,我听说Twitter正在转向Cassandra。这难以开始吗?
  • 对于服务器端,如果您需要构建服务器管理界面,作为管理员来管理和监控社区,成员资格,数据等,是否有任何现有的解决方案或框架或工具?什么是最有效的方法?
  • 如果新程序员没有经验,你建议他/她开始使用哪一个?
  • 在我们可以学习的上下文中,服务器端是否有任何好的参考资料或示例代码?

我知道Stackoverflow上有很多非常有经验的专家,但我看到更多的新手刚刚进入iOS开发区,对服务器/数据库编程经验不太了解。我希望这个线程可以帮助那些正在考虑设计具有服务器/客户端结构的应用程序但不知道从哪里开始的人。

ps:我将继续更新此问题主题并在此主题上添加我的发现,以帮助stackoverflow上的所有其他用户。 :-)请尽量使您的答案信息丰富,易于理解和建设性。我猜这个帖子的大多数读者都是这个伟大社区的新成员。

3 个答案:

答案 0 :(得分:4)

你确定要花时间吗?有资金开发自己的服务器&开发自己的API? 今天有很多mBaaS(移动后端即服务)提供商QuickBloxParseStackMob,它们已经可以使用了,它们有很棒的自定义对象API和一些预定义的模块。他们有很大的免费计划,配额很大。其中一些如此QuickBlox具有企业计划 - 因此您可以为您购买许可证和服务器团队更新服务器。

所以,我建议不要开发你的服务器并考虑mBaaS市场。

关于您的问题 - 我建议您查看QuickBlox Custom Objects code sampleCustom Objects API。自定义对象模块提供了定义所需数据结构(模式)的灵活性。架构在管理面板中定义。该模式称为Class,包含字段名称及其类型。我认为这就是你所需要的。

答案 1 :(得分:1)

  • 哪一个是实现服务器的最合适选择 侧吗

那取决于你所知道的,有理由选择其中一个

  • 如果应用程序专注于自然的人类语言/文本 搜索,分析和数据挖掘,哪一个是最佳选择?一世 听说Python在这方面做得很好。

这将反映您的第一个问题,您选择了您需要的语言。因此,如果python更容易,那么选择那个。

  • 有关数据库选择的任何建议吗?我现在正在使用MySQL,而我 发现它对我的目的来说非常强大,我听说Twitter是 切换到卡桑德拉。这样做难度太大了吗?

同样不是一个容易回答的问题,因为这一切都与要求有关。但任何SQL服务器都可以。 Cassandra旨在通过网站提供“可扩展性和高可用性而不影响性能”。你认为你的webservice会得到很多请求,那么它可能是一个可供考虑的选择。

  • 对于服务器端,如果需要构建服务器管理 界面,作为管理员来管理和监控社区, 会员资格,数据等,是否有任何现有的解决方案,或 那个框架或工具?什么是最有效的方法?

当您选择SQL服务器和服务器语言时,这只会得到解答。

  • 如果新程序员没有经验,那么你就是哪一个 建议他/她开始?

从更简单的事情开始,你真的要走出困境。

  • 服务器上是否有任何好的参考资料或示例代码 在这样的背景下,我们可以从中学到什么?

可能有一些,但你应该从小做起并从那里开始工作。


Twitter最初是作为Rub on Rails应用程序开始的,并且正致力于可扩展性和可用性,而ruby并不是真正优秀的ar(这是我的观点)。或者看看facebook他们已经编写了一个php到c编译器,以使php运行得更快。

我唯一可以说启动代码,当你的应用确实起飞然后解决一些性能问题。

既然你声明自己是编程新手,那就不要咬你了。

答案 2 :(得分:0)

这是一个很大的问题,我认为没有最好的答案。它最依赖于您关心的内容,例如开发过程的速度,实施的容易程度等等。

哪一个很受欢迎,哪一个很酷,我觉得它不是真的有意义。

在我个人看来,我擅长ASP.NET,我可以轻松获得Windows服务器,所以我将从ASP.NET服务开始提供数据。

并且,继续。