需要一个通知/仪表板系统的框架?

时间:2013-05-31 15:39:17

标签: java notifications dashboard

我被要求在Cloud Java应用程序中实现通知系统。前提是应用程序的管理员或组件可以向特定用户发送特定消息,或向所有用户发送广播通知。

通知将按严重程度,类型(中断,新服务等)和相应组件进行分类。

用户可以选择他们感兴趣的类型和组件,以及他们希望如何接收这些通知(通过电子邮件,只显示在仪表板上,短信等)。用户可以确认或删除通知,因此不会再显示该用户。

虽然我确信这从头开始实现会很有趣,但感觉应该有一个现有的系统,Apache项目,商业项目等才能做到这一点并避免我不得不重新发明轮子。

我的问题是:任何人都可以推荐一个可以集成到现有应用程序中并自动处理所有后端内容的通知跟踪框架吗?商业或开源是好的,只要许可条款是商业友好的(请不要使用GPL或LGPL)。

2 个答案:

答案 0 :(得分:13)

我猜你所寻找的东西与Amazon Simple Notification Service (SNS)类似。但首先让我们把事情做好:

  • 您正在尝试发送电子邮件/短信 - 并且都需要基础设施,而不仅仅是框架/库。我想你的客户端(或任何客户端)会在某个地方运行一个电子邮件服务器,因此不会对直接的成本产生影响。但发送短信 会产生基础设施开销。
  • 您将无法获得开箱即用的解决方案。由于您将拥有其他基础架构,因此您最终将至少与该基础架构进行良好的集成。

记住所有这些,以下是按难度顺序列出的选项:

  • 使用Amazon SNS
  • 使用Cloud Message Bus (CMB) - Amazon SNS的开源克隆。它具有与Amazon SNS相同的API格式,因此您将使用与使用Amazon SNS相同的方式
  • 使用Apache Camel及其各种Email/SMS Components。 Apache Camel是一个企业路由框架。它有一个消息队列,开发人员可以将消息推送到其中,然后它有各种路由器接收这些消息并将它们发送到其他地方。它具有用于发送Email / SMS开箱即用的路由器。您首先要创建一个发布消息的主题。然后,当用户注册电子邮件通知时,您将为他/她添加email endpoint。当他们选择退出电子邮件时,您将删除该端点。基本上它非常接近于设计您自己的解决方案 - 除了您不必编写用于发送SMS / Email的代码之外,它还具有开箱即用的组件,您只需编写集成代码即可添加这些用户订阅通知时的端点。
  • 滚动你自己。您的解决方案最终将与Apache Camel方法非常相似。您将拥有一个消息队列,您将拥有主题和侦听器。除非您编写自己的代码来发送所有电子邮件/短信。

编辑:次要说明

答案 1 :(得分:0)

看起来您的要求是基于浏览器的Web应用程序中的某种实时数据。如果这是正确的,那么一些HTML 5 apis,特别是Web套接字已经取得了很大进展。

Websockets是HTTP协议的扩展,允许客户端和服务器之间的双向通信。然而,有一个缺点。信不信由你,浏览器支持仍然非常稀缺,并且在野外使用http代理会出现一些复杂情况。

通常,为了避免缺乏广泛接受的支持,已经有相当多的javascript /服务器端框架浮出水面似乎真的很有希望。当不支持websockets时,这些框架通常会处理后备支持。一些后退技术包括服务器发送事件,jsonp,长轮询,短轮询等。

开始考虑2个优秀的开源项目:

1)。 Atmoshphere:https://github.com/Atmosphere/atmosphere

2)。 Socket-io - http://socket.io/