我应该使用啥作为服务器来满足以下要求?

Posted

技术标签:

【中文标题】我应该使用啥作为服务器来满足以下要求?【英文标题】:What should I use as a server to meet the following requirements?我应该使用什么作为服务器来满足以下要求? 【发布时间】:2011-11-28 03:34:09 【问题描述】:

我正在尝试开发一个涉及以下内容的系统:

    带有处理系统逻辑和操作数据的数据库的服务器 将与该服务器交互的 android 应用程序(将数据拉取和推送到服务器) 一个与 Android 应用执行相同操作的网站,但来自一个数据略有不同的网站。

我想到的是使用 SQLite 和服务器上安装的 Apache Tomcat 并在其上部署 Grails 战争文件。这将照顾系统的“网站”端。但是安卓应用呢?也可以和Tomcat通信吗?

【问题讨论】:

【参考方案1】:

Tomcat 将满足您的需求。我会看看托管选项。您是托管自己的服务器,还是有托管服务提供商?您是否有托管 tomcat 服务器等的经验。您是否有使用 java web 应用程序或其他 web 框架的经验?以上所有内容,可能还有更多内容应该引导您决定在服务器上使用哪种类型的框架/语言。这反过来将引导您选择托管和使用网络容器。

一旦确定,所有主要的 Web 框架都将允许您发布可供 Android 应用程序使用的 Web 服务 Rest、Soap 等。

另外,如果您计划在服务器级别提供 Web 界面和服务,我猜您将存储大量数据,我会考虑使用更强大和可扩展的数据库,例如 mysql 或后记。 This post contains some insights into this.

【讨论】:

嗯,这是一个学校项目,项目的更大部分是学习。问题是我们的团队并不真正知道我们需要什么,因为这是我们第一次这样做。理想的情况是拥有某种架构,允许 android 应用程序使用随应用程序一起提供的 API(意思是应用程序的一部分),并且它使用该 API 的方式与我使用 Twitter 的 API 的方式相同(如上所述)。 鉴于这是一个学校项目,我假设您使用的是 java,所以我可能会使用 tomcat 作为应用程序服务器,特别是如果您已经有创建 java webapps 的经验。 twitter api 是基于休息的(dev.twitter.com/docs/api)。如果你想为你的 web 服务提供一个客户端,你仍然需要创建一个 web 应用程序来公开一个基于 rest 的 web 服务。然后,您可以创建一个 jar,其中包含与服务交互的方法,但隐藏调用的复杂性和 json/xml 的翻译。这可以包含在项目中。 通过一些快速搜索可以轻松找到一些如何在 android 中使用 rest 服务的示例。(timewasted.net/?p=127,http://***.com/questions/…)。如果您使用 tomcat,那么我可能会使用 jersey 作为您的 web 服务,可以在此处找到信息 (ibm.com/developerworks/web/library/wa-aj-tomcat)。现在由您和您的团队负责挖掘并开始动手。【参考方案2】:

Android 与 Tomcat 通信应该没有任何问题。 查看http://grails.org/doc/latest/guide/13.%20Web%20Services.html 了解更多信息。 RESTful Web 服务很可能是您需要的。 Android 可以使用 SOAP Web 服务,但它需要更多的工作以减少整体功能。

【讨论】:

如果我想做类似... twitter 之类的事情怎么办。它们允许用户下载他们的 API,并且用户可以在他的代码中导入该 API 的类,然后只调用 twitter 的类。用户不必知道任何有关 Twitter URI 和 hhtpRequests 和响应的信息。我想这都是 Twitter 的 API 源代码的一部分。我试图查看这些课程中发生了什么,但我找不到那个来源。在这种情况下,Twitter 是否在内部使用 REST?【参考方案3】:

如果您有一个可通过网络访问的 API,那么 Android 可以访问它。

【讨论】:

以上是关于我应该使用啥作为服务器来满足以下要求?的主要内容,如果未能解决你的问题,请参考以下文章

考虑到我必须遵循的要求,我可以/应该采取啥方法来更改密码?

远程服务器错误 请稍后重试 是啥原因?

具有客户端-服务器架构的聊天应用程序使用啥? [关闭]

需要 Openlayers 指南来满足我的要求

React Native Parse.File,我应该将它作为输入提供啥?

我应该学习啥来提高我的技能? [关闭]