我是这个领域的新手,对我目前关于我的应用程序的Web服务实现的想法有点困惑。我想将所有连接的客户端与MySQL DB上的当前数据同步。为了协调目的,我开始使用网络服务,但是我被卡住了。
我试图实现它的方式是......
Web服务正在运行deamon来检查/侦听影响DB数据的CRUD操作。一旦发生CRUD操作,它就不会通知所有连接的客户端,每个客户端依次用当前的DB数据刷新JTable,并通知用户数据库发生的变化。
这就是我被困的地方......
我认为它(可能是?)错误的方式,因为概念上Web服务正在等待客户端请求,然后向他发送相应的响应。但在这里,没有客户要求。 Web服务只发送响应(通知),该响应必须多播,因为它不知道"调用"客户 - 没有请求。
因此,为了让客户发送请求,它必须" cron"如果发生了对DB的更改,则始终为Web服务。然后,Web服务使用CRUD详细信息(CRUDEventFired(event_type,event_details))作为true或false响应。但是,这不是最佳的,因为它会产生大量(大部分时间)无用的流量,尤其是在没有CRUD操作发生时。此外,将有两个不同的守护程序(一个在Web服务中,另一个在客户端应用程序中),用于检查/侦听相同类型的事件,这是多余的。
此外,通过该实现,似乎根本不需要Web服务,并且可以在客户端中实现检查DB的更改的代码。另一方面,设置负责数据库更改的客户端需要在不同平台(桌面,ios,android等)中编写相同的功能,同时将Web服务设置为客户端之间数据同步的协调器需要代码只有适当的函数和每个客户端只需实现自己的NotificationListener()。
我使用网络服务的方式是否错误?应该如何改变?我甚至需要使用网络服务吗?
为了您的方便,我附上了我的图表。