2013-04-29 55 views
2

我正在开发一个使用瘦客户端体系结构的Android应用程序。Android应用服务器的工业标准是什么?

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

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

服务器的职责是处理数据并发回结果。 我写了一个功能原型服务器,使用java和它的套接字API来验证应用程序的可行性。 现在我正在考虑发布此应用,显然套接字并不适用于我的应用程序是个好主意,因为这是最低级别的API的Java网络通信的长期提供,当我扩展该项目,以容纳数百个用户的很多bug都可能发生。由于这是第一次我打算发布一个应用程序,我真的想从那些谁之前,开发这种应用程序,请告知你会用它的技术有所帮助。我正在考虑tomcat,在实践中可以接受吗?我的应用程序的

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

+0

不知道你从'http'期望相比'socket's如果你的代码已经存在。添加一个协议层和一个Web服务器只会导致系统中可能出现问题的点数增加。它也不会解决任何性能问题。这里的关键是你的服务器代码是否可以分发,如果它依赖于存储,那么最重要的操作是什么。那么为什么不运行Java服务器;它听起来不像你的情况,连接数将是每台机器的关键因素。 – 2013-04-29 09:18:29

回答

1

授权用户

您可以使用OAuth这一点。

等待用户输入一些数据

Android有一堆从EditText上不同的输入选项复选框,单选按钮,等看在Android API,并有大量的教程了那里这些东西。

发送用户输入到服务器

相反插座我建议建立一个RESTful API为您的应用程序,你应该看一看DropWizard。它基于Java,我发现它非常易于使用。

规模该项目,以容纳数百个用户

答案很简单:把一切都放到亚马逊弹性云,如果服务器耗尽资源,那么亚马逊将自动添加一个额外的机器来应对,并删除机器,如果他们不再需要。

1

没有关于您的应用程序的功能以及您的功能和非功能需求的详细信息。这是旁边有可能建议你。所以我会限制自己的一般性。

  • 套接字层面的编程本质上并不是多余的。这是(在某些方面)更难,但你可以编写可靠的套接字代码。

  • 使用更高级别的协议和抽象简化的东西,可以让你实现更大更复杂的系统更快。但是只有当抽象/协议与你实际要做的事情相匹配。 (例如,对于对等系统而言,HTTP是很差的匹配。)

  • 较高级别的协议和框架也具有性能处罚......与“精简和平均”较低级别实现相比。

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


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

我们不能告诉你的Tomcat是不理解您的实际问题的好(或不够好)的选择。

相关问题