数据库更改通知应用程序


Database change notification app

我即将开始编写一个android应用程序,当外部mySQL数据库用票证更新(仅添加)时,该应用程序会通知手机用户,这样用户就可以检查票证是否需要他注意(试图减少他必须搜索的票证的堆积)。

根据我的研究,大多数问题都建议在我的程序中使用PHP web服务(用java编写),而且肯定/也许/肯定不推荐使用SQLNotification来触发事件。我还看到了一些关于一个叫JSON的家伙和他使用的SOAP品牌的东西。

我一直无法弄清楚所有这些框架/工具包/服务/事物是如何协同工作的。

我的问题分为两部分:

  1. SQLNotification可用吗?如果没有,是否有一种简单的方法来检查更改(除了轮询的明显答案之外)
  2. 所有的东西(SOAP、JSON、web服务、应用程序)是如何组合在一起的?我是否错过了框架方面的任何东西(听说过spring、hibernate、tomcat)

根据我的经验,我的Java相对流利,理解MySQL的基础知识,是PHP的初学者,以前没有为android写过东西。

谢谢,

Ben

根据您提供的信息,您似乎有不同的选择:

  • Push
    • 如果你想采用推送方式,你需要一些中央架构,可以从数据库中获取通知,并立即将其发送到连接的客户端。建立这样一个方案并不容易,只有当你真的需要立即通知时,才会推荐它。从以下示例开始:http://www.gianlucaguarini.com/blog/push-notification-server-streaming-on-a-mysql-database/
  • 拉动
    • 如果你采用拉取方式(轮询),你可以在手机上运行一项服务,该服务在每次配置的时间进行轮询。在这种情况下,您将需要一些无状态服务,一些简单的JSON服务会非常好

在这两种情况下,都要注意安全性,您应该使用ssl保护您的通道,并进行某种适当的身份验证。

我认为一个很好的经验法则是说(这只是基于个人意见/经验,也许你的决策路径还有其他因素需要考虑),如果你的民意调查间隔不需要低于5分钟,民意调查就会很好。如果你需要几乎实时的通知,你可以实现推送架构,但你必须知道,让它工作会花费更多的精力,因为你必须处理客户端断开连接、客户端未连接时如何处理通知、从数据库获取实时通知等问题。

希望这有助于作为一个起点,