什么是Android应用服务器的行业标准?

时间:2013-04-29 09:12:37

标签: java android tomcat web-applications

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

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

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

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

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

2 个答案:

答案 0 :(得分:1)

  

授权用户

您可以使用OAuth

  

等待用户输入一些数据

Android有许多不同的输入选项,从EditText到Checkbox再到RadioButtons等。查看Android API,有很多教程可以解决这些问题。

  

将用户输入发送到服务器

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

  

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

简单回答:将所有内容放在亚马逊弹性云上,如果服务器资源耗尽,亚马逊将自动添加额外的机器以应对,并在不再需要时移除机器。

答案 1 :(得分:1)

没有您的应用程序的功能,以及您的功能和非功能需求的详细信息。接下来可以建议你。所以我将自己局限于一般性。

  • 套接字级编程本质上不是错误的。它(在某些方面)更难,但你可以编写可靠的套接字代码。

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

  • 更高级别的协议和框架也会产生性能损失......与“精益和平均”较低级别的实施相比。

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


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

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