Web服务通过多个传输提供通知

时间:2014-04-07 08:11:57

标签: web-services notifications alert saas instant-messaging

我想为我的客户启用事件通知。有许多可能的方式来发送通知:电子邮件,短信,XMPP /其他IM,通过SIP预先录制的语音消息,特定于电话的消息推送服务,REST回调等。

我不想自己开发所有这些传输,因此我需要一个可以为客户管理这些通知的Web服务。此外,我不想存储电子邮件/电话/其他个人身份信息。

通知是交易性的(即,它不会向所有人传递相同的消息)。我们欢迎付费解决方案。

http://pagerduty.com,但它是

  • 旨在在企业内部而非外部客户中工作
  • 专注于事件响应的完整周期而不是简单的消息传递

因此,它给受访者带来了更多的负担,我想要一些用户无需设置的东西。

Monitis是另一个例子。它有多种传输方式,包括Twitter,但它又是为内部人士设计的,而不是为大量号码的服务用户设计的。

亚马逊SNS似乎太低级,因为它只管理推送通知的传送,但是为了延迟它们,我必须编写一个我不想要的移动应用程序。

How best to deliver notifications to various IM / notification services?中描述的XMPP服务器传统上支持不同传输的想法,但我想要第三方托管服务。

Twilio只有2个传输:短信和语音呼叫,更多的是针对完整的双方通信。

我甚至无法找到合适的Google关键字来搜索我想要的服务/ SaaS。

问题是,有没有这样的服务?一些样本会让我知道要寻找什么。

1 个答案:

答案 0 :(得分:1)

这很晚,也许为时已晚......但

您不需要实现任何传输,但可能需要构建一些网关,并且您很可能需要组装与每个网关通信的应用程序。你可能不会为此找到一个服务。

您已经概述了该策略。你基本上有这些作品:

  1. 传输
  2. 网关
  3. 应用
  4. 每个传输都可以通过API或CLI通过某个客户端访问 - 因此您需要弄清楚您的环境是什么。 Java可能是一个不错的选择,但其他跨平台环境可能会起作用。 Apache ServiceMix等现有基础架构支持其中一些传输:

    https://cwiki.apache.org/confluence/display/SM/Components+list

    并且可能有其他中间件具有相似的,不同的运输。

    对于每种传输类型,您可能需要为每个提供商提供网关。您可以找到一个能够为多种传输提供充分服务的提供商,例如: Twilio的短信和语音,但这可能是例外。您可能还会发现,由于传输(以及功能)的不同,为每种传输类型构建网关更方便。因此,您的SMS网关中可能有两个已配置的提供程序,一个用于Twilio,另一个用于Kannel,您可能在SMS网关和SIP网关中使用了Twilio帐户。

    最后一步是将您的应用程序组装成有意义的东西。这可能是这样的:

    sent.......: "Thanks for your purchase, ${username}!"
    

    发送到可能由用户配置并能够收集用户响应的频道(即提供商 - 传输对):

    response...: "It was a pleasure! --Bob"
    

    您需要存储每个传输终端的基本信息,例如,短信的电话号码,聊天的用户名等,如果您有PII安全问题需要解决,则需要想想虽然如此。一种选择可能是将所有PII转交给每个提供商,但您仍然需要为每个提供商中的用户保留每个帐户,并且您可能需要了解用户的某些信息,例如" $ {用户名}"以上,在您的申请中适当地个性化您的通知。因此,从您的应用程序中删除所有PII似乎不太可能。

    我不确定这有多大帮助,但也许它会给你一些想法。