【问题标题】:what is the industrial standard for an Android app server?Android 应用服务器的工业标准是什么?
【发布时间】:2013-04-29 09:12:37
【问题描述】:

我正在使用瘦客户端架构开发一个 Android 应用程序。

客户端的一些基本用例是:

  • 授权用户
  • 等待用户输入一些数据
  • 将用户输入发送到服务器

服务器的职责是处理数据并发回结果。 我使用 java 及其套接字 api 编写了一个功能原型服务器来验证应用程序的可行性。 现在我正在考虑发布这个应用程序,显然套接字对我的应用程序来说不是一个好主意,因为它是 java 在网络通信方面提供的最低级别的 api,当我扩展这个项目以容纳数百个用户时可能会发生很多错误。由于这是我第一次计划发布应用程序,我真的想从以前开发过此类应用程序的人那里获得一些帮助,请告知您将使用的技术。我正在考虑tomcat,这在实践中可以接受吗?

我的应用程序的一个限制是服务器必须能够轻松执行 java 代码,因为我编写的处理部分是用 java 编写的,并且它使用了其他开发人员编写的十几个其他 jar 文件。

【问题讨论】:

  • 如果您的代码已经存在,与sockets 相比,不确定您对http 的期望。添加协议层和 Web 服务器只会导致系统中出现更多扩展可能带来问题的点。它也不会解决任何性能问题。这里的关键是你的服务器代码是否可以分布式,如果它依赖存储,最重要的操作是什么。那么为什么不运行 Java 服务器呢?在您的情况下,这听起来不像是连接数将是每台机器的关键因素。

标签: java android tomcat web-applications


【解决方案1】:

授权用户

您可以为此使用OAuth

等待用户输入一些数据

Android 有许多不同的输入选项,从 EditText 到 Checkbox 再到 RadioButtons 等。查看 Android API,那里有很多关于这些东西的教程。

将用户输入发送到服务器

我建议不要为您的应用程序构建一个 RESTful API,而不是套接字,您应该看看 DropWizard。它是基于java的,我发现它很容易使用。

扩展此项目以容纳数百名用户

简单的回答:把所有东西都放在 Amazon 的 Elastic Cloud 上,如果服务器用完资源,那么 Amazon 会自动添加额外的机器来应对,如果不再需要机器,则移除它们。

【讨论】:

    【解决方案2】:

    没有详细说明您的应用程序的功能,以及您的功能性和非功能性需求。几乎可以为您提供建议。所以我会限制自己的笼统。

    • 套接字级编程本身并没有错误。它(在某些方面)更难,但您可以编写可靠的套接字代码。

    • 使用更高级别的协议和抽象可以简化事情,让您更快地实现更大更复杂的系统。但前提是抽象/协议与您实际尝试做的相匹配。 (例如,HTTP 不适合点对点系统。)

    • 与“精益求精”的低级实现相比,更高级别的协议和框架也有性能损失。

    • 最后,HTTP(特别是)具有无处不在的优势。浏览器支持它,并且有很多服务器端和类似的工具。安全人员最有可能让它通过防火墙。


    您所询问的具体问题都可以通过多种方式完成。从可扩展性的角度来看,有些方法更好。但真正的可扩展性需要良好的设计和努力工作,而不是选择“正确”的技术。

    如果不了解您的实际问题,我们无法告诉您 Tomcat 是否是一个好的(或足够好的)选择。

    【讨论】:

      猜你喜欢
      • 2010-11-10
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-25
      • 2013-06-03
      • 1970-01-01
      相关资源
      最近更新 更多