Android中的客户端服务器通信选项

时间:2009-11-06 20:35:04

标签: java android networking client-server middleware

我目前正处于论文项目的研究阶段。

我的项目是移动设备的订票系统,我选择定位Android。

我预计需要一个带有中央服务器的客户端/服务器架构,因此我目前正在研究Android如何与这样的服务器进行通信。服务器将授予客户访问票务信息的权限,客户端将向票证预订发送有关票务预订的信息。我正在寻找服务器的Java EE,因为Java是我最熟悉的语言。

我知道Android附带了java.niojava.net以及一些org.apache个软件包,但我也在寻找可以与Android一起使用的库/技术

到目前为止,我还没有在互联网上找到任何有用的东西,所以我看到了SO的建议。

具体来说,我有兴趣知道:

       
  1. Android中的各种中间件技术有哪些支持?例如       
               
    • 基于RPC的中间件
    •          
    • CORBA
    •          
    • 基于消息的中间件
    •          
    • Web服务,例如XML-RPC,SOAP,REST
    •       
       
  2.    
  3. 在Android平台上使用时,现有Java库的工作效果如何? (例如,如果我想使用为Java SE设计的库/ API而不是Android,我会遇到哪些问题?)
  4. 理想情况下,由于我的项目的重点并不是服务器和客户端之间的通信,我可以使用现有的中间件来处理通信,但我已经准备好应对最糟糕的情况,即必须编写我自己的。

1 个答案:

答案 0 :(得分:14)

  

各种各样的支持   Android中的中间件技术?

我的个人意见 - 尽管我并不觉得我一个人这么想 - 只有专门设计用于在互联网上运行的协议才能远程适用于移动客户端。所以,在你的名单中,我唯一能接受的就是:

  

Web服务,例如XML-RPC,SOAP,REST

有些人一直在维护kSOAP2的Android端口。但是,我得到了一个明显的印象,即在这个领域工作的大多数Android开发人员都倾向于使用REST和REST-ish协议。如果没有别的,那就是所有有趣的网站和服务都用于API,特别是与XML-RPC(旧)和SOAP(旧的和icky)相比。

我已成功使用Android中的java.net.URLConnection和Apache HTTPClient库与REST风格的端点进行通信 - 无论是直接还是通过第三方JAR - 都没有真正的Android特定问题。

  

现有Java的表现如何(或不存在)   图书馆在使用时工作   Android平台?

很难在摘要中回答这个问题。 Android实现了JavaSE的一个重要子集,但不是所有的JavaSE,所以任何给定的JAR都有可能期望Android不提供的东西。同样,Android不使用环境变量,命令行开关或开发人员专注于桌面的各种其他东西作为半需求引入。所以,有些东西对我来说只不过是重新编译(Beanshell),有些东西在删除冗余类(JTwitter)之后对我有用,而且有些东西看起来像是可怕的工作(JavaMail)