【发布时间】:2012-07-23 12:40:17
【问题描述】:
它们有许多共同的特点。但是有什么区别呢?
MOM 允许异步,而 SOA 不允许,这是唯一的区别吗?
【问题讨论】:
它们有许多共同的特点。但是有什么区别呢?
MOM 允许异步,而 SOA 不允许,这是唯一的区别吗?
【问题讨论】:
SOA,即面向服务的架构,是一种定义如何在不同应用程序之间构建对业务信息的访问的架构。简而言之,通常,一个应用程序需要使用应用程序需要的一条信息(可能是订单文件或其他任何东西)来完成某些事情。另一个应用程序可能能够对该条信息进行相应的处理,因此它具有能力。然后第一个应用程序使用提供服务的第二个应用程序的服务(无论底层技术如何,可以是任何东西,例如 JMS、HTTP/SOAP、HTTP/REST、EMail、FTP 等)。为了完成这项工作,必须定义第一个应用程序和服务之间的合同,清除消息格式(XSD 或类似)、协议(HTTP/SOAP?JMS?)等。
另一方面,MOM(面向消息的中间件)只是一系列软件/中间件平台。它们是实际的实现,而不是像 SOA 这样的高级概念。它们可用于实现 SOA 架构、事件驱动架构或其他架构。通常,MOM 使用异步消息传递来丰富一组应用程序,其中 MOM 服务器存储和转发消息。通常,诸如事务、保证交付、故障转移、松散耦合和负载平衡之类的东西都内置在 MOM 实现中。 MOM 的示例有IBM WebSphere MQ、Apache ActiveMQ、RabbitMQ、JBoss HornetQ 等。
【讨论】:
面向消息的中间件 (MOM) 是一种技术,而 SOA 是一种架构。尽管很多人在谈论 SOA 时都会想到 Web 服务,但您也可以使用 MOM 来实现它(实际上在许多情况下这是更好的选择)
【讨论】: