2010-06-25 42 views
1

我们正在讨论设置通知服务的正确方法。这种服务将被各种应用程序调用,服务将需要返回相关数据。MSMQ/.EXE与Web服务.... MEF IoC?

我的感觉是你只是创建一个Web服务,内部网门户(或任何其他)可以通过发送用户ID和作为回报获取任何信息(用户425报告是90天到期,应用程序已拒绝..等等..)我们有多个内联网应用程序以及门户(让我们称他们为应用程序A,B和C)。

另一个人在这里说我们需要使用MSMQ ..所以我做了一些研究,并且据我所知,MSMQ的意义在于当你有一个用户执行某种请求很长而且不能同步运行..如果这些呼叫需要0.02秒.. MSMQ的优势是什么?我正在做的是发回一条消息...

那么哪个更有意义?

奖励:应用程序A,B和C都有自己的业务逻辑,用于确定将消息发送回主门户应用程序......所以我可以。

  1. 通知Web服务是否包含应用程序A B和C的所有逻辑?现在有问题了,我正在理解应用程序AB和C如何工作,以便我可以让WS回发相应的消息。

  2. 使用MEF/IoC并作为构建过程的一部分我得到一个MEF .DLL实现一定的接口。所以我的通知程序jsut去各种应用程序,并说给我你的BIZ LOGIC DLL ....所以一旦我有所有的DLL,并知道接口,我可以循环通过thme,并获得我需要的数据...这样它直到A,B和C的开发者都是他们的领域的expoerts来实现这个消息传递接口。

帮助。 (我几乎没有理解MEF,所以我可以离开那里)

回答

1

我认为这里的一部分问题是,对于MSMQ在这个过程中究竟扮演什么角色存在一些困惑。基本上你做这些通知的方法有两种:

  1. 有一系列可以查询,以获得所需的通知网络服务(拉模式让说)
  2. 拥有的应用程序发布过程中出现的状态变化他们在选择2的情况下,当然做他们的工作,其中一些可以通过通知服务被拾起,然后加工(推模式)现在

,你可以使用像NServiceBus设置建立一个发布/订阅消息系统,它将允许应用程序发布重要事件i系统和通知服务来订阅需要生成通知的消息。恰巧NServiceBus使用MSMQ作为默认传输,所以在这种情况下,MSMQ会出现在图片中,但仅作为实现细节。

在选项1的情况下,您可以通过多种方式实现它,包括WCF Web服务。

就我个人而言,我发现Pub/Sub模型是选项中最具可扩展性和灵活性的,并且项目的文档高于标准,这很好。

+0

我最初的想法是版本1。这更简单,重要。有人登录后,它会向通知系统发出请求,以便恢复任何通知。 选项2对我来说似乎很好,如果这些应用程序正在为我的通知服务创建工作,这将是长期运行的... 因此,假设通知服务可以开始和完成任何它在0.05秒内做的事情..我不查看有任何队列的点 – punkouter 2010-06-27 17:09:44

+0

该队列为您提供了一些额外的可靠性,因此如果在Web服务调用期间发生某些严重故障(Windows更新),而不是在以太网中丢失,它实际上会写入队列,所以当事情发生故障或重新开始时,处理等待的消息。这实际上取决于你如何看待你的架构,你问服务的状态还是你的服务提醒其他服务有关正在发生的事情。 – ckramer 2010-06-28 00:08:29

+0

如果我创建了一个更新“通知”表并在发现需要发送通知时创建条目的Windows服务。 然后,我想其他应用程序可以调用一个Web服务,该服务查找nable并返回集合的通知.. 我不明白pub/sub如何帮助这里或否则我不明白...内部应用程序不是'订阅 以任何方式,除了他们有代码调用通知Web服务..应用程序不会发布任何状态更改..通知Web服务具有逻辑和数据库。 – punkouter 2010-06-28 14:27:51