Android应用程序与远程或云数据库之间的高性能集成是什么?

Android应用程序与远程或云数据库之间的高性能集成是什么?,android,Android,我正在开发Android应用程序,当用户使用它时,需要对远程或基于云的MySQL数据库进行频繁更新,例如用户添加新朋友,这些信息将保存在远程数据库上 将Android应用程序集成到远程数据库的高性能方法是什么 假设管理远程数据库的应用程序是基于Java的 可能性包括: 像在标准web应用程序中一样使用普通HTTP URL 使用JMS 使用Web服务 使用基于ESB的解决方案 最终,您将拥有三种可能的解决方案之一,即SOAP服务、url/REST服务或打开您自己的套接字 SOAP对于移动设备来说通

我正在开发Android应用程序,当用户使用它时,需要对远程或基于云的MySQL数据库进行频繁更新,例如用户添加新朋友,这些信息将保存在远程数据库上

将Android应用程序集成到远程数据库的高性能方法是什么

假设管理远程数据库的应用程序是基于Java的

可能性包括:
  • 像在标准web应用程序中一样使用普通HTTP URL
  • 使用JMS
  • 使用Web服务
  • 使用基于ESB的解决方案

    最终,您将拥有三种可能的解决方案之一,即SOAP服务、url/REST服务或打开您自己的套接字

    SOAP对于移动设备来说通常不是一个好的解决方案,它有很多开销,而且在Android上不支持开箱即用

    因此,您可以归结为发布到URL,这类似于REST服务。这是最轻的方法,但是您需要决定如何打包,因为发送的数据越多,性能越低

    因此,您可以使用自己的编码方案,例如使用xml或JSON。使用您自己的方案基本上是重新设计轮子,IMO,我更喜欢JSON,因为您可以选择不包含标签,所以您只需发送数据,还需要一些额外的字符

    您可以打开自己的套接字连接,但是,这也就是重新发明轮子

    因此,为了获得最佳性能,我将使用REST服务,基本上只需提交JSON数据,因为这将以最少的工作量获得最佳性能

    我忘了,基于服务器端的工作,您的性能将受到影响。例如,如果您使用的是基于ESB的解决方案,它仍然在调用SOAP Web服务(坏主意),但是那里的数据流会影响性能

    JMS/ESB实际上取决于您对其他操作需求的需求。例如,如果我将数据发送到您的服务器,然后您的服务器在处理之前停机,那么我是应该再次发送数据,还是需要能够从停止的位置继续发送数据

    这取决于您正在处理的内容。如果您处理了一张信用卡,那么重新发送是一个坏主意,因为这意味着该卡会被收取两次费用,但是添加一个朋友应该可以,因为您可以确定该朋友已经添加并进行更新