我的雇主是一个特定市场的软件供应商。我们的客户使用web服务将我们的系统与其他系统集成在一起。我们使用微软技术,我们的web服务是在ASP.NET和WCF中实现的。
现在是时候审查我们当前的服务集,并为未来的集成制定公司标准了。我正在读“企业集成模式”,我也在研究nServiceBus和公共交通。这些可能会简化契约版本控制和单元测试等问题,但它们似乎最适用于提供内部服务总线,而不适用于向外部客户端公开服务。
我们的客户在许多不同的平台上,并要求我们的服务符合标准。这可能对不同的人意味着不同的事情,但我认为可以安全地假设他们想要访问用WSDL描述的web服务。
在这种情况下,WCF是可行的吗?
发布于 2009-12-23 11:38:30
到目前为止,WCF是Microsoft平台上最符合标准的堆栈。好的是,它对于不同的客户端“开箱即用”是非常灵活的,如果有让你痛苦的事情,大多数都可以通过自定义行为进行更改,而不会有太多麻烦。
发布于 2012-05-03 17:51:21
我通常推荐的另一种方法是在消息代理之间通过AMQP集成。也就是说,您可以使用推送范例而不是轮询范例(相比之下,轮询范例非常强大且可伸缩)!
您可以在本地设置自己的代理,例如RabbitMQ。然后你会让你的集成伙伴设置一个。(简单:just download it)。
如果您的合作伙伴是从同一数据中心集成的,那么您可以假定网络拆分的很少-这意味着您可以共享代理。另一方面,如果您在不同的网络上,则可以在中设置代理。(对另一个代理运行rabbitmq-plugins enable rabbitmq_federation和point )
现在你可以使用例如MassTransit:
ServiceBusFactory.New(sbc =>
{
sbc.UseRabbitMqRouting();
sbc.ReceiveFrom("rabbitmq://rabbitmq.mydomain.local/myvhost/myapplication");
// sbc.Subscribe( s => s ... );
});,就像你不做任何集成时所做的那样。
如果您现在查看http://rabbitmq.mydomain.local:55672/,您会发现RabbitMQ的管理界面。MassTransit为每种消息类型创建一个交换(将此类消息发送到该交换将分散到所有订阅者),您可以在其上设置授权规则。
授权规则可以是每用户正则表达式的形式,也可以集成到LDAP中。有关这一点,请参阅文档。
如果您要通过广域网,并且没有IPSec隧道,那么您还需要使用SSL -文档在这里:http://www.rabbitmq.com/ssl.html,并且您启用了it like this。
就这样!享受吧!
如果你想冒险,这将帮助你管理你所有的基础设施,作为一个副作用,你可以看看puppet。puppet是服务器的配置器和配置管理器;在这种情况下,您可能会对使用Puppet设置SSL感兴趣。首先,为您的域订购一个通配符子域证书,然后使用该证书对其他证书进行签名:您可以委托该证书-请参阅rabbitmq指南,其中声明“现在我们可以生成我们的测试证书颁发机构将使用的密钥和证书。”-为证书生成证书-签名-请求而不是创建新的证书颁发机构-并让RMQ将此证书用于SSL -它将在internet上有效。
https://stackoverflow.com/questions/1949227
复制相似问题