顾问设计了一个使用电子邮件作为Web服务的系统

时间:2014-11-05 06:41:34

标签: web-services email architecture anti-patterns

我正在寻找针对提供的解决方案的一些可靠论据,其中面向公众的web服务器托管aspx表单并基于用户输入将表单内容以XML格式放置在电子邮件正文中并将其发送到仅用于这个解决方案然后,公司防火墙后面的内部系统在从电子邮件服务器检索电子邮件并从那里进行处理后读取XML。我不认为这将是一个强有力的解决方案,并担心维护它,所以现在只需更换它,但有压力保持解决方案。

由于

3 个答案:

答案 0 :(得分:2)

大多数无法在不知道具体限制的情况下判断架构解决方案。

在某些限制条件下,这可能是最好的解决方案。

让我们先来看看弱点:

  • 由于邮件服务不可用,邮件可能会丢失。
  • 邮件服务可能太大。 (例如,在我的公司,我们的限制为10Mb。)
  • 传输时邮件可能已损坏。 (邮件服务可能会应用病毒扫描程序并夸耀这一事实,添加页脚,重命名附件等。)
  • 如果邮件流量太大,邮件系统可能无法应对额外的负担。
  • 不保证交货顺序。
  • 解决方案有点不常规。
  • 安全和其他非功能可能无法实现。

另一方面:

  • 这可能是异步消息传递的一种(非常实用的)实现。异步消息传递通常比同步解决方案更强大,更可靠。
  • 此解决方案使用现有的基础架构。
  • 邮件系统通常不会丢失消息"就这样"。所以我们这里基本上有一个可靠的持久消息存储。
  • 邮件系统通常被认为是关键任务"因此,他们经常建立高度可靠和多余的。因此,与引入新的软件/硬件组件相比,使用邮件服务实际上可能更多可靠。
  • 而且更便宜。
  • 可以用非常实用的方法进行测试。
  • 电子邮件具有良好的图书馆支持。
  • 您不需要昂贵的专业人员来实施。

想象一下以下约束:

  • 构建异步消息处理。
  • 丢失一小部分消息并不是什么大问题。
  • 快点。
  • 便宜。
  • 快速和肮脏是可以的("我们将在三个月内扔掉它")。

在这些限制条件下,这可能是一个非常好且务实的解决方案。

通过@techtrek解决问题:

    1. "更强大" - 见上文,邮件系统实际上可能比内部ESB基础设施更多可靠。至少这是我的经历。
    1. 同意,但没有风险。无论如何,附件通常不会损坏。否则管理层会在每次PowerPoint幻灯片损坏时尖叫。
    1. 电子邮件服务中断 - 好吧,ESB或任何内部服务也可能会崩溃。
    1. 我不太明白为什么电子邮件可追溯性更复杂。我发了一封电子邮件,它是否到达。如果没有,则这是邮件服务的问题。 "并发"相比什么?
    1. 当然,邮件服务管理是独立的,为什么这是一个维护问题?实际上,我们拥有由不同团队管理和维护的所有平台服务(数据库,服务器,ESB等)。这是一种常规做法,我不明白为什么它应该成为问题。相反,通过邮件服务,您可能拥有一个专门致力于该传输渠道可靠性的专业团队。

坦率地说,我看到了很多ESB / MQ解决方案,我真的认为它会更便宜,更容易,而且如果一些不同的应用程序只发送彼此的电子邮件,事实上更可靠。

答案 1 :(得分:0)

使用电子邮件作为中继代理的问题是:

  1. 创建一个允许公司内部系统直接拦截和解析XML系统的Web服务对我来说似乎更加健壮。

  2. 在传输协议(电子邮件)中封装XML mime类型本身就存在风险。

  3. 由于(2),有两个失败点(xml转换过程中的损坏)以及电子邮件服务中断的风险。

  4. 除了失败点之外,您还可以将可追溯性复杂化一个数量级。

  5. 电子邮件管理通常与Web服务的管理分开。除非有真正合法的回忆,否则听起来更像是维护问题?

答案 2 :(得分:0)

我同意所说的内容,尤其是第4点。应用程序和电子邮件维护可能是断开连接的实体。

另一个需要考虑的方面是将邮件从任何地方发送到后端并以这种方式泛滥的可能性