需要通知/仪表板系统的框架? [关闭]

Posted

技术标签:

【中文标题】需要通知/仪表板系统的框架? [关闭]【英文标题】:Need a framework for a notification/dashboard system? [closed] 【发布时间】:2013-05-27 11:54:00 【问题描述】:

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

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

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

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

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

【问题讨论】:

【参考方案1】:

我猜你正在寻找类似于Amazon Simple Notification Service (SNS) 的东西。但首先让我们把一些事情弄清楚:

您正在尝试发送电子邮件/短信 - 两者都需要基础设施,而不仅仅是框架/库。我猜你的客户端(或任何客户端)会在某个地方运行一个电子邮件服务器,所以你不会有直接的成本影响。但是发送 SMS确实会产生基础架构开销。 您不会有开箱即用的解决方案。由于您将拥有额外的基础架构,因此您最终将至少编写与此基础架构的良好集成。

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

使用 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 方法非常相似。您将拥有一个消息队列,您将拥有主题和侦听器。除非您将编写自己的代码来发送所有电子邮件/短信。

编辑:次要说明

【讨论】:

谢谢。到目前为止,您所写的主要是我经过几天调查得出的结论。这些也是我正在查看的所有组件。听起来我可能需要完成比我希望的更多的集成工作。我不介意这样做,但我只是不想重做已经做得更好的东西,因为它“不是在这里写的”。【参考方案2】:

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

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

通常情况下,为了避免缺乏被广泛接受的支持,已经出现了相当多的 javascript/服务器端框架,看起来很有希望。当不支持 websocket 时,这些框架通常会处理后备支持。一些后备技术包括服务器发送事件、jsonp、长轮询、短轮询等。

想到2个优秀的开源项目:

1)。氛围:https://github.com/Atmosphere/atmosphere

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

【讨论】:

不,问题不在于浏览器中的实时数据。 OP 希望用户能够通过电子邮件、短信接收通知并直接显示在网站上。

以上是关于需要通知/仪表板系统的框架? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

NodeJS 和 MongoDB:在文档插入时向多个用户发送电子邮件和仪表板通知 [关闭]

用于构建仪表板(条形、线形、饼形等)的开源库/框架[关闭]

golang中管理仪表板的建议[关闭]

带有仪表板的最佳应用程序监控系统[关闭]

Web 应用程序 - 仪表板类型 GUI - 界面 [关闭]

我可以在 C# 桌面应用程序中创建实时推送通知吗? [关闭]