企业服务总线和消息代理
我想开始了解 WCF,但说实话,在此之前我想了解更多关于 SOA 的总体知识。
我不太理解“企业服务总线”的概念,并且不确定它是一种模式/方法还是一个软件。 另外,“消息代理”也是如此。
除此之外,大型 SOA 框架(例如 BizTalk、WebSphere 等)如何融入其中? 就此而言,WCF 如何融入其中?
I want to start looking at WCF but to be honest before I do I would like to understand more about SOA in general.
I don't really understand the concept of a "Enterprise Service Bus", and am not sure whether it is a pattern/methodology or piece of software. Additionally, the same can be said of a "Message Broker".
On top of which how do the big SOA frameworks fit in here i.e. BizTalk, WebSphere etc? For that matter how does WCF fit in?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
简而言之,SOA 将与演示相关的组件与获取内容的机制分离。
这听起来很微不足道,但其想法是,表示组件不仅应该独立于获取数据的程序,而且应该与它无关。
为了实现这一点,创建了一个“服务”抽象层,其中包含著名的“企业服务总线”(ESB)。 ESB 是一个程序,它知道服务所在的位置以及如何调用它们以将数据转发给请求者。
如今,SOA 已经成为企业级系统的标准,而不仅仅是一种选择,原因很简单,数据是(而不是“可能”)从不同的来源获取。 例如,登录/身份验证服务可能是基于集中式 LDAP 的; 可以使用 JDBC 连接到托管数据库引擎来获取订单详细信息; 信用卡授权可以使用支付网关 Web 服务调用; 等等...
使用此架构的最大优势是,如果明天可以从不同的资源获得相同的服务,那么对核心应用程序设计的影响为零或最小。
SOA in simple terms decouples your presentation related components from the mechanism that fetches the content.
It sounds very trivial but the idea is that the presentation components should not only be independent of the program that fetches the data but also be agnostic of it.
To achieve this, a "Service" abstraction layer is created which contains the famous "Enterprise Service Bus" (ESB). ESB is the program that is aware of where the services are located, and how to invoke them to relay the data to the requester.
SOA has become more of a standard in enterprise level systems these days than just a choice, for the simple reason that at the data is (rather than "may be") fetched from different sources. E.g. A Login/Authentication service may be centralized LDAP based; An order details may be fetched using JDBC connection to an hosted DB engine; A credit card authorization may be using Payment Gateway Web Services invocation; and so on...
The single most biggest advantage of using this architecture is that there is zero or minimal impact on the core application design if tomorrow the same service is available from a different resource.
我同意,将流行语与现实脱钩可能很棘手。
我的想法是这样的:
SOA 是围绕服务来定位您的业务功能。 这意味着要考虑具有(通常)定义良好的接口的功能黑匣子。 通常,SOA 还涉及使服务可用的前期工作 - 这将它与更老式的“集成”区分开来 - 尽管两者之间存在高度交叉。
ESB 只是一个架构层,允许您将服务连接在一起。 通常它会添加连接、路由、协议转换等。它是可选的,但仍然是许多 SOA 项目的典型组件。 这是一种模式,但许多软件供应商都有可以帮助实现该模式的 ESB“产品”。
诚然,这些都是模糊的答案,一些软件/服务供应商有更具体的定义(以及实现它们的多种技术)。 你必须自己做出决定。
免责声明:我在 IBM 担任 WebSphere 顾问,但我并不是以官方身份代表他们发言。
It can be tricky to decouple the buzzwords from the reality, I agree.
Here's how I think about it:
SOA is about orienting your business functionality around services. That means thinking in terms of functionality black-boxes with (normally) well-defined interfaces. Often SOA also involves upfront work to make services available - this distinguishes it from more old-faishoned 'integration' - although there is a high degree of cross-over between the two.
An ESB is simply an architectural layer that allows you to connect your services together. Often it adds connectivity, routing, protocol transformation etc. It's optional, but nevertheless a typical component of many SOA projects. It's a pattern, but many software vendors have ESB 'products' that can help to implement the pattern.
These are admittedly vague answers, and some software/services vendors have more specific definitions (as well as a huge variety of technologies to implement them). You'll have to make your own mind up about those.
Disclaimer: I work for IBM as a WebSphere Consultant, but I am not speaking for them in an official capacity.
ESB 提供了一个基于标准的集成平台,在事件驱动的 SOA 中结合了消息传递、Web 服务、数据转换和智能路由。 ESB 是迈向完整 SOA 的重要步骤之一。
Biztalk Server 2006 等框架及其 ESB 指导工具包旨在成为 ESB。 您可能已经知道,Biztalk 提供开箱即用的消息传递、Web 服务和转换功能。 借助 ESB 指导工具包 (www.codeplex.com/esb),BizTalk 现在可以提供智能内容 -基于路由和基于行程的处理。 这使得集成架构比具有重量级集成代理的传统 EAI 架构更加松散耦合。
WCF 可以用作托管服务的轻量级容器,消费者可以通过 ESB 访问这些服务。
以硬件世界为例,ESB 就像 PC 中的主板,所有设备都通过总线插入主板,并且由主板决定不同设备如何相互通信。 设备只需要知道它们与总线接口的方式即可。
ESB provides a standards-based integration platform that combines messaging, web services, data transformation, and intelligent routing in an event-driven SOA. ESB is one of the important steps in moving towards a complete SOA.
Frameworks like Biztalk Server 2006 along with its ESB Guidance toolkit aim at being an ESB. As you might already know, out of the box, Biztalk provides the messaging, web services and transformation capabilities. With the ESB Guidance toolkit (www.codeplex.com/esb), BizTalk can now provide intelligent content-based routing and itinerary based processing. This makes the integration architecture much more loosely coupled than the conventional EAI architectures with a heavy-weight integration broker.
WCF can serve as a lightweight container for hosting services which consumers can accesses through the ESB.
Giving an analogy from the hardware world, ESB is like a motherboard in your PC, all devices plug in to the board through a bus and it's up to the board to figure out how the different devices talk to each other. The devices just have to know the way they can interface with the Bus.