我需要从一些外部应用程序中获取一些数据,以便在Web门户中呈现。
我可以通过创建一个简单的Web服务来实现这一点,例如使用REST或SOAP,通过访问外部应用程序的数据库以表示形式返回外部应用程序的数据。
我也可以通过使用消息传递和请求 - 回复模式来实现这一点。
这是我到目前为止所考虑的可扩展性和可用性问题。如果我错了,请纠正我。
使用RESTful方法:
我可以想象无状态REST架构很容易扩展,就像可以集群的Web服务器一样,其吞吐量可以控制(比如服务多少线程等),但我认为瓶颈会在数据库访问。
如果外部应用程序的数据库以某种方式不可用,则REST可能只返回一些错误状态,并且门户网站webapp可以打印出舒缓的错误消息。
使用消息传递方法:
我可以'缓冲'中的所有消息 频道,如果有很多频道,甚至可以有多个频道 请求,同时,可以控制消费率 这对数据库处理能力是合理的。
应该使用持久性优雅地处理不可用性问题 通道,但在这种情况下,它是一个同步访问,并且必须 如果外部应用程序的数据库在一个时间限制内响应 不可用。我不认为这种同步需求是有利的。
在某种程度上,我更喜欢RESTful方法,因为它实际上是一种同步访问,当然实现起来要简单得多。 但我仍有疑问。
请分享您的想法。谢谢!
答案 0 :(得分:0)
http://blogs.msdn.com/b/nickmalik/archive/2005/04/14/408328.aspx
有点旧,但划分了SOA和MOA。您的案例看起来像一个SOA,您想要获取数据并在页面上发布。 MOA在问题空间方面完全不同。