﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-esoa-文章分类-f. 架构.ESB研究</title><link>http://www.blogjava.net/esoa/category/16072.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 18:13:29 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 18:13:29 GMT</pubDate><ttl>60</ttl><item><title>SOA 和 ESB 之间的区别是什么？</title><link>http://www.blogjava.net/esoa/articles/74123.html</link><dc:creator>comchyi</dc:creator><author>comchyi</author><pubDate>Mon, 09 Oct 2006 09:08:00 GMT</pubDate><guid>http://www.blogjava.net/esoa/articles/74123.html</guid><wfw:comment>http://www.blogjava.net/esoa/comments/74123.html</wfw:comment><comments>http://www.blogjava.net/esoa/articles/74123.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/esoa/comments/commentRss/74123.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/esoa/services/trackbacks/74123.html</trackback:ping><description><![CDATA[
		<p>From developerWorks</p>
		<p>问： SOA 和 ESB 之间的区别是什么？</p>
		<p>答： 面向服务的体系结构（Service Oriented Architecture，SOA）是一种方式或架构，用于具有自服务功能的应用程序，应用程序随后通过用户接口（UI）或经过工作流将其聚合成用户的功能。服务不仅是可复用代码的组件，更是运行程序的一部分，客户端可以不必合并它自己的代码直接调用该程序。事实上，应用程序的界限变得非常模糊了，它包括所有能被调用来执行它的功能的服务。</p>
		<p>企业服务总线（Enterprise Service Bus，ESB）是用于调节 SOA 中的调用者及服务提供者的机制。它使得调用者在不知道提供者或提供者使用的地址的情况下调用该服务。ESB 可在多个提供者、提供者的负载平衡及停止使用提供者（当失效时）之间进行选择，并且基于调用者的需求在提供者之间进行选择，这些提供者提供了各种质量级别的服务。ESB 能够调节同步或异步服务，事实上对于同一服务可以提供同步及异步的访问。</p>
		<p>因此 SOA 和 ESB 是相对应的。具备 SOA 的应用程序应当使用 ESB 来调用它的服务。SOA 和 ESB 不必用 Web 服务实现。然而，经常需要 ESB 来调用服务，该服务提供自我描述及发现的能力，这由 Web 服务帮助完成。在 SOA 中经常需要由一种技术实现的调用者，它们用于调用由其它技术实现的服务，这也由 Web 服务帮助完成。所以 SOA、ESB 和 Web 服务都集中于创建这样的领域——一个应用程序中的功能在其它应用程序中也是可用的，本质是复用性。 <br /></p>
<img src ="http://www.blogjava.net/esoa/aggbug/74123.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/esoa/" target="_blank">comchyi</a> 2006-10-09 17:08 <a href="http://www.blogjava.net/esoa/articles/74123.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个ESB集成框架CodeHaus Mule</title><link>http://www.blogjava.net/esoa/articles/74115.html</link><dc:creator>comchyi</dc:creator><author>comchyi</author><pubDate>Mon, 09 Oct 2006 08:56:00 GMT</pubDate><guid>http://www.blogjava.net/esoa/articles/74115.html</guid><wfw:comment>http://www.blogjava.net/esoa/comments/74115.html</wfw:comment><comments>http://www.blogjava.net/esoa/articles/74115.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/esoa/comments/commentRss/74115.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/esoa/services/trackbacks/74115.html</trackback:ping><description><![CDATA[
		<p>Mule 是一个基于ESB架构理念的消息平台。Mule 的核心是一个基于SEDA的服务容器，该容器管理被称为通用消息对象（Universal Message Objects /UMO）的服务对象，而这些对象都是POJO。所有UMO和其他应用之间的通信都是通过消息端点（message endpoint）来进行的。这些端点为众多的分立的技术，比如Jms, Smtp, Jdbc, Tcp, Http, Xmpp, file等等，提供了简单和一致的接口。</p>
		<p align="left">Mule 应用通常是由网络中的许多Mule 实例组成。每一个实例都是一个驻留一个或者多个UMO组件的轻量级容器。每一个UMO 组件都有一个或者多个通过它（们）发送和接收事件的端点。<br /><br /><br /><a href="/images/blogjava_net/steelhand/clip_image001_0013.gif" target="_blank"><img onmousewheel="return bbimg(this)" title="点击在新窗口查看原始图片" height="264" alt="clip_image001_0013.gif" src="http://www.blogjava.net/images/blogjava_net/steelhand/clip_image001_0013.gif" width="500" onload="java_script_:if(this.width&gt;500)this.width=500" border="0" /></a></p>
		<p>容器通过UMO组件提供各种各样的服务，比如事务管理、事件转换，路由，事件关联、日志、审计和管理等等。Mule将对象构造从管理手段中分离出来，通常流行框架和IoC/DI 容器，如Spring, PicoContainer 或者 Plexus 可用这种管理手段来构建你的UMO 组件。</p>
		<p>很多人认为， "Mule是一个Jms 实现"。实际上，Mule 不是一个Jms server，但是可以配置来使用任何你觉得非常漂亮的Jms server。Mule 的理念是，如果已经有了稳定和广泛接受的实现，就不会直接实现任何传输。例如，Mule 就重用了Axis 和 GLUE 的SOAP栈而不是重新实现一个。Mule 提供了一个一致的服务集来管理任何类型的连接的事件流、关联、事务、安全和审计。</p>
		<p> </p>
		<p>下面是Mule Server 组件的简单图示：<br /></p>
		<p align="left">
				<a href="/images/blogjava_net/steelhand/clip_image002_0002.gif" target="_blank">
						<img onmousewheel="return bbimg(this)" title="点击在新窗口查看原始图片" height="349" alt="clip_image002_0002.gif" src="http://www.blogjava.net/images/blogjava_net/steelhand/clip_image002_0002.gif" width="369" onload="java_script_:if(this.width&gt;500)this.width=500" border="0" />
				</a>
				<br />
		</p>
		<p align="center">
				<a href="/FreeTextBox/Utility/spacer.gif" target="_blank">
						<img onmousewheel="return bbimg(this)" title="点击在新窗口查看原始图片" height="1" src="/FreeTextBox/Utility/spacer.gif" width="1" onload="java_script_:if(this.width&gt;500)this.width=500" border="0" />
				</a>
		</p>
		<h3>
				<a name="Introduction-TheMuleManager">Mule Manager</a>
		</h3>
		<p>Mule Manager是Mule server 实例的中心(也称为一个节点户或者Mule Node)。其主要的角色是管理各种对象，比如Mule实例的连接器、端点和转换器。这些对象然后被用来控制进出你的服务组件的消息流，并且为Model 和它所管理的组件提供服务。</p>
		<p align="left">
				<a name="Introduction-TheModel">
						<strong>Model</strong>
				</a>
				<strong>
				</strong>
		</p>
		<p>model 是管理和执行组件的容器。它控制进出组件的消息流，管理线程、生命周期和缓充池。默认的<em>MuleModel</em>是基于SEDA的，它使用一个有效的基于事件的队列模型来获取的最大的性能和直通性。</p>
		<p align="left">
				<a name="Introduction-UMOComponents">
						<strong>UMO Components</strong>
				</a>
				<strong>
				</strong>
		</p>
		<p>UMO代表Universal Message Object；它是一个可以接收来自于任何地方的消息的对象。UMO 组件就是你的业务对象。它们是执行引入的事件之上的具体业务逻辑的组件。这些组件是标准的JavaBean，组件中并没有任何Mule特定的代码。 Mule 基于你的组件的配置处理所有进出组件的事件的路由和转换。</p>
		<p align="left">
				<a name="Introduction-Endpoints">
						<strong>Endpoints</strong>
				</a>
				<strong>
				</strong>
		</p>
		<p>Endpoint是Mule的通信能力的基础。一个Endpoint定义了两个或者多个组建应用或者存储库之间的通信渠道。并且提供了一个强大的机制来允许你的对象在一个统一的方式上再多种协议之上进行交谈。端点可以通过消息过滤器、安全拦截器和事务信息进行配置来控制什么消息，在何时，以及怎样通过端点进行发送和接收。</p>
		<p align="left">
				<a name="Introduction-ExternalApplications">
						<strong>External Applications</strong>
				</a>
				<strong>
				</strong>
		</p>
		<p>外部应用可以使任何应用，从应用服务器到遗留的传统应用，主机程序，或者C/S系统。基本上是任何可以产生和操纵数据的应用。因为Mule通过endpoints执行所有通信，UMO 组件并不打算在其中包含应用产生数据，以及应用主流，以及使用传输协议的部分。</p>
		<p> </p>
		<p align="left">
				<a name="Overview-KeyFeatures">
						<strong>关键特性</strong>
				</a>
				<strong>
				</strong>
		</p>
		<ul>
				<li>基于J2EE 1.4的企业消息总线（ Enterprise Service Bus (ESB)）和消息代理（broker） 
</li>
				<li>可插入性连接，比如Jms (1.0.2b 和 1.1), vm (嵌入), jdbc, tcp, udp, multicast, http, servlet, smtp, pop3, file, xmpp等 
</li>
				<li>支持任何传输之上的异步，同步和请求响应事件处理机制 
</li>
				<li>支持<a href="http://mule.codehaus.org/Axis+Web+Services+and+Mule">Axis</a>或者<a href="http://mule.codehaus.org/Glue+Web+Services+and+Mule">Glue</a>的Web Service. 
</li>
				<li>灵活的部署结构[Topologies]包括Client/Server, P2P, ESB 和Enterprise Service Network. 
</li>
				<li>支持声明性和编程性事务，包括XA 支持 
</li>
				<li>对事件的路由、传输和转换的断到端支持 
</li>
				<li>Spring 框架集成。可用作ESB 容器，而Mule c也可以很容易的嵌入到Spring 应用中。 
</li>
				<li>使用基于<a href="http://mule.codehaus.org/SEDA">SEDA</a>处理模型的高度可伸缩的企业服务器 
</li>
				<li>支持REST API 来提供技术独立和语言中立的基于web的对Mule 事件的访问 
</li>
				<li>强大的基于<a href="http://www.eipatterns.org/">EIP</a>模式的事件路由机制 
</li>
				<li>动态、声明性的，基于内容和基于规则的路由选项 
</li>
				<li>非入侵式的方式。任何对象都可以通过ESB 容器管理 
</li>
				<li>强大的应用集成框架 
</li>
				<li>完整的可扩展的开发模式</li>
		</ul>
		<p align="left">
				<a name="Overview-WhentouseMule">
						<strong>何时使用</strong>
				</a>
				<strong>
				</strong>
		</p>
		<p>一般在这些情形下使用Mule - </p>
		<ul>
				<li>集成两个或者多个需要互相通信的或者多个现有的系统. 
</li>
				<li>需要完全和周围环境去耦合的应用，或者需要在系统中伸缩不止一个组件的系统 
</li>
				<li>开发人员不知道未来是否会将其应用分发或者伸缩需求的单VM 应用。</li>
		</ul>
		<p>项目地址：<a href="http://mule.codehaus.org/">http://mule.codehaus.org/</a><br />转载。</p>
<img src ="http://www.blogjava.net/esoa/aggbug/74115.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/esoa/" target="_blank">comchyi</a> 2006-10-09 16:56 <a href="http://www.blogjava.net/esoa/articles/74115.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>什么是ESB?</title><link>http://www.blogjava.net/esoa/articles/74111.html</link><dc:creator>comchyi</dc:creator><author>comchyi</author><pubDate>Mon, 09 Oct 2006 08:48:00 GMT</pubDate><guid>http://www.blogjava.net/esoa/articles/74111.html</guid><wfw:comment>http://www.blogjava.net/esoa/comments/74111.html</wfw:comment><comments>http://www.blogjava.net/esoa/articles/74111.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/esoa/comments/commentRss/74111.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/esoa/services/trackbacks/74111.html</trackback:ping><description><![CDATA[
		<center>
				<h1>ESB</h1>
		</center>
		<div>
				<p>
						<font face="Verdana">      <a href="http://www.itisedu.com/phrase/200604150901505.html" target="_new">ESB</a>（<a href="http://www.itisedu.com/phrase/200604241236115.html" target="_new">Enterprise Service Bus</a>，即<a href="http://www.itisedu.com/phrase/200604241236415.html" target="_new">企业服务总线</a>）是传统<a href="http://www.itisedu.com/phrase/200604241155005.html" target="_new">中间件</a>技术与<a href="http://www.itisedu.com/phrase/200604231236585.html" target="_new">XML</a>、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢，是构筑企业神经系统的必要元素。</font>
				</p>
				<p>
						<font face="Verdana">      企业服务总线ESB就是一种可以提供可靠的、有保证的<a href="http://www.itisedu.com/phrase/200603090938465.html" target="_new">消息</a>技术的最新方法。ESB中间件产品利用的是Web服务标准和与公认的可靠消息MOM协议接口(例如IBM的WebSphere MQ、Tibco的Rendezvous和Sonic Software的SoniCMQ)。ESB产品的共有特性包括:连接异构的MOM、利用Web服务描述语言接口封装MOM协议，以及在MOM传输层上传送简单<a href="http://www.itisedu.com/phrase/200603090845215.html" target="_new">对象</a>应用协议(SOAP)传输流的能力。大多数ESB产品支持在分布式应用之间通过<a href="http://www.itisedu.com/phrase/200603101709095.html" target="_new">中间层</a>如集成代理实现直接对等沟通。</font>
				</p>
				<p>
						<font face="Verdana">      企业服务总线（Enterprise Service Bus，ESB）的概念是从面向服务体系<a href="http://www.itisedu.com/phrase/200604241328115.html" target="_new">架构</a>(Service -Oriented <a href="http://www.itisedu.com/phrase/200604241327575.html" target="_new">Architecture</a>， <a href="http://www.itisedu.com/phrase/200603021816435.html" target="_new">SOA</a>)发展而来的。SOA描述了一种IT基础设施的应用集成模型，其中的软<a href="http://www.itisedu.com/phrase/200604161439595.html" target="_new">构件</a>集是以一种定义清晰的层次化结构相互耦合，其中，一个ESB是一个预先组装的SOA实现，它包含了实现SOA<a href="http://www.itisedu.com/phrase/200604161254415.html" target="_new">分层</a>目标所必需的基础功能部件。 </font>
				</p>
				<p>
						<font face="Verdana">      ESB是传统中间件技术与XML、Web服务等技术相互结合的产物</font>
				</p>
				<p>
						<font face="Verdana">      <a href="http://www.itisedu.com/phrase/200603021438435.html" target="_new">计算机</a>技术和<a href="http://www.itisedu.com/phrase/200604232134205.html" target="_new">软件</a>技术应用于企业已经有30年的历史了，这也是软件技术发展的主要动力，目前它已经进入到一个新的发展阶段。由于各个企业持续的对内外部的整个价值链的业务操作进行流程化和智能化的改进，业务整合有了非常重要的成长。无处不在的IT技术将以前只能想象的事情变成了现实，它可以帮助实现从后台到前台，到合作伙伴，及到客户的业务市场的扩展，这种IT应用整合<a href="http://www.itisedu.com/phrase/200603101518295.html" target="_new">需求</a>趋势为ESB平台的兴起着重要的铺垫作用。 </font>
				</p>
				<p>
						<font face="Verdana">　　ESB的出现改变了传统的<a href="http://www.itisedu.com/phrase/200602281452595.html" target="_new">软件架构</a>，可以提供比传统中间件产品更为廉价的解决方案，同时它还可以消除不同应用之间的技术差异，让不同的应用服务器协调运作，实现了不同服务之间的通信与整合。从功能上看，ESB提供了事件驱动和文档导向的处理<a href="http://www.itisedu.com/phrase/200603061709535.html" target="_new">模式</a>，以及分布式的运行管理机制，它支持基于内容的路由和过滤，具备了复杂数据的传输能力，并可以提供一系列的标准接口。</font>
				</p>
				<p>
						<font face="Verdana">
								<strong>一、企业服务总线（ESB）可以有那些用处</strong>
						</font>
				</p>
				<p>
						<font face="Verdana">      ESB不是万能的,他不是一个应用<a href="http://www.itisedu.com/phrase/200604232224305.html" target="_new">程序</a><a href="http://www.itisedu.com/phrase/200603061723295.html" target="_new">框架</a>,也不是一个企业应用的解决方案.它只是一个基于消息的调用企业服务的通信模块!你可以把它嵌入到你的应用程序框架中,例如嵌入到spring容器里面,或者嵌入到<a href="http://www.itisedu.com/phrase/200603110944215.html" target="_new">工作流</a>系统中.它的作用是对企业里面的SOA服务的调用提供一个框架和简便的方法.</font>
				</p>
				<p>
						<font face="Verdana">
								<strong>二、企业服务总线（ESB）的应用特征</strong>
						</font>
				</p>
				<p>
						<font face="Verdana">      大规模分布式的企业应用需要相对简单而实用的中间件技术来简化和统一越来越复杂、繁琐的企业级<a href="http://www.itisedu.com/phrase/200603011147495.html" target="_new">信息系统</a>平台。面向服务体系架构（SOA）是能够将应用程序的不同功能单元通过服务之间定义良好的接口和契约联系起来。SOA使用户可以不受限制地重复使用软件、把各种资源互连起来，只要IT人员选用标准接口包装旧的应用程序、把新的应用程序构建成服务，那么其他应用系统就可以很方便的使用这些功能服务。 </font>
				</p>
				<p>
						<font face="Verdana">       支撑SOA的关键是其消息传递架构-企业服务总线（ESB）。ESB是传统中间件技术与XML、Web服务等技术相互结合的产物，用于实现企业应用不同消息和信息的准确、高效和安全传递。ESB的出现改变了传统的软件架构，可以提供比传统中间件产品更为廉价的解决方案，同时它还可以消除不同应用之间的技术差异，让不同的应用服务协调运作，实现不同服务之间的通信与整合。ESB在不同领域具有非常广泛的用途: </font>
				</p>
				<p>
						<font face="Verdana">电信领域 </font>
				</p>
				<p>
						<font face="Verdana">ESB能够在全方位支持电信行业OSS的应用整合概念。是理想的电信级应用软件承载平台。 </font>
				</p>
				<p>
						<font face="Verdana">电力领域 </font>
				</p>
				<p>
						<font face="Verdana">ESB能够在全方位支持电力行业EMS的数据整合概念，是理想的SCADA系统数据交换平台。 </font>
				</p>
				<p>
						<font face="Verdana">金融领域 </font>
				</p>
				<p>
						<font face="Verdana">ESB能够在全方位支持银企间业务处理平台的流程整合概念，是理想的B2B交易支撑平台。 </font>
				</p>
				<p>
						<font face="Verdana">
								<a href="http://www.itisedu.com/phrase/200603011339185.html" target="_new">电子政务</a>
						</font>
				</p>
				<p>
						<font face="Verdana">ESB能够在全方位支持电子政务应用软件业务基础平台、信息共享交换平台、决策分析支撑平台和政务门户的平台化实现。 </font>
				</p>
				<font face="Verdana">
						<p>
								<br />
								<strong>三、企业服务总线（ESB）的结构和功能</strong>
						</p>
						<p>      ESB提供了一种开放的、基于标准的消息机制，通过简单的标准适配器和接口，来完成粗粒度应用（服务）和其他<a href="http://www.itisedu.com/phrase/200603302222545.html" target="_new">组件</a>之间的互操作，能够满足大型异构企业环境的集成需求。它可以在不改变现有基础结构的情况下让几代技术实现互操作。InterESB专门用于异构环境，既可以帮助企业迁移到SOA，又能够让企业继续利用现有的已部署的软件投资。 </p>
						<p>      通过使用ESB，可以在几乎不更改代码的情况下，以一种无缝的非侵入方式使企业已有的系统具有全新的服务接口，并能够在部署环境中支持任何标准。更重要的是，充当“缓冲器”的ESB（负责在诸多服务之间转换业务逻辑和数据格式）与服务逻辑相分离，从而使得不同的应用程序可以同时使用同一服务，用不着在应用程序或者数据发生变化时，改动服务代码。 </p>
						<p> </p>
						<p>
								<strong>四、InterESB的功能特点</strong>
						</p>
						<p>      多种通信技术的综合应用 </p>
						<p>       InterESB利用了多种公认、成熟和可靠的通信技术，来支撑上层数据传输的多种模式。在<a href="http://www.itisedu.com/phrase/200604031336425.html" target="_new">CORBA</a>以及<a href="http://www.itisedu.com/phrase/200604261605045.html" target="_new">JMS</a>技术的基础上，InterESB能够同时支持同步通信、异步通信模式。 </p>
						<p>      在异步模式中，InterESB创新地将多种通信模式融为一体，其中包括目标通信模式（Message Channel）、点对点通信模式（Point-to-Point）、发布/订阅通信模式（Publish-Subscribe）、扩展的发布/订阅集群模式（P/S Cluster），并支持通信过程中的加密、压缩、断点续传等重要保障功能。 </p>
						<p>      InterESB将上述多种通信方式有机封装成一个整体，并通过CORBA IDL、SOAP、JMS等标准接口方式对外进行发布，从而使得基于InterESB构建的企业应用能够以透明、一致、高效的方式应用不同的底层通信机制。 </p>
						<p>      高度灵活、可分布部署的信息总线 </p>
						<p>       在InterESB内部，由部署在不同节点和计算域下的多种消息通信服务实现灵活的企业应用通信功能。同时，InterESB支持对这些通信服务的面向问题领域可不断优化的分布式部署功能，包括有以下三种模式: </p>
						<p>       全连接的总线模式，在InterESB内部部署全连接方式的消息服务器; </p>
						<p>      集中可拔插方式的总线模式，在InterESB内部部署一台超级转发服务器; </p>
						<p>      “雪花状结构”的分布级联方式，在InterESB内部分区域部署多个超级转发服务器。这种模式在大型SOA系统中部署具有很强的动态增长性、可管理性、可维护性和极高的效率。 </p>
						<p>      便捷、标准的企业应用集成模式 </p>
						<p>      InterESB提供了简单、快速、基于标准的多点集成功能。InterESB为企业应用开发和集成提供了一套完善的开发模式来帮助<a href="http://www.itisedu.com/phrase/200603082208195.html" target="_new">客户端</a>应用连接到服务上。这些模式定制了系列机制用于描述服务、通知及发现服务、与服务进行通信。在InterESB中，基于标准的服务成了应用间的集成点。也即围绕服务的所有模式都是以基于标准的技术实现的。这使得InterESB可适应于任何现有系统，并使得系统在集成时不必刻意遵循任何特殊定制。 </p>
						<p>      InterESB在面向企业应用集成需求时，可以表述为数据传输和应用集成两部分的内容。其中，数据传输涵盖了用户应用系统中的<a href="http://www.itisedu.com/phrase/200602282323195.html" target="_new">文件</a>、<a href="http://www.itisedu.com/phrase/200602271218062.html" target="_new">数据库</a>、消息、事件、指令等全方位的数据传输内容;应用集成涵盖了<a href="http://www.itisedu.com/phrase/200603281008545.html" target="_new">数据集成</a>、应用集成、设备集成、协议系统封装等多方面的应用集成内容。 </p>
						<p>
								<br />      灵活的适配器技术 </p>
						<p>       一个设计良好的适配器的作用好比是一个设计良好的SOA服务，它提供了一个抽象层，把应用基础设施的其余部分与各种棘手问题隔离开来。 </p>
						<p>      通用适配器是InterESB为解决系统之间的连接而开发的可重用的、统一的接口，通过该接口每一个应用系统仅需要与业务整合平台相连，而不需要与每个与之交互的应用系统相连。InterESB适配器一般包括遗留系统适配器、技术标准<a href="http://www.itisedu.com/phrase/200603090857555.html" target="_new">类</a>适配器和适配器开发工具。 </p>
						<p>      与CORBA、<a href="http://www.itisedu.com/phrase/200603091447335.html" target="_new">J2EE</a>技术的结合 </p>
						<p>      InterESB底层基于CORBA分布计算中间件InterBus以及遵照JMS规范的InterMQ消息通信中间件，因此，可以说InterESB与CORBA、J2EE具有天然的结合优势。 </p>
						<p>      但InterESB并不等同于CORBA。与CORBA技术相比，InterESB继承了CORBA技术的开放标准、分布式架构、组件技术以及高性能，适合于复杂的应用集成等优点;同时，InterESB还提供了CORBA技术所不具备的SOA功能，即: </p>
						<p>InterESB支持更多种技术标准； </p>
						<p>InterESB支持更广泛的互操作性； </p>
						<p>InterESB具有更好的可扩展性； </p>
						<p>InterESB对专有系统的支持； </p>
						<p>InterESB对未来标准的支持。 </p>
						<p>通过J2EE支持的MDB/<a href="http://www.itisedu.com/phrase/200604091919205.html" target="_new">JDO</a>，InterESB也能够很容易的和J2EE应用系统相连接，形成有效的功能集成。 </p>
						<p>      广泛的平台支持 </p>
						<p>      InterESB插件式<a href="http://www.itisedu.com/phrase/200603122156385.html" target="_new">体系结构</a>在每个层次上都是开放式的，这样就可以与现有的基础组件实现透明的互操作，让用户能够对速度、成本和使用技巧方面的因素加以权衡。InterESB能够在忽略传输系统的情况下，使用包括XML和二进制在内的任何格式发送数据，并能够在任何开发平台（C++和Java）上实现，而不是强制所有应用程序都使用相同的开发语言。 </p>
						<p>      InterESB包括全连接的总线模式、集中可拔插方式的总线模式和“雪花状结构”的分布级联方式。 </p>
						<p>
								<br />
								<strong>五、企业服务总线（ESB）距离实际的企业应用还有哪些不足?</strong>
						</p>
						<p>       ESB目前有很多商业方案,也有很多<a href="http://www.itisedu.com/phrase/200603091812115.html" target="_new">开源</a>产品,例如ObjectWeb,CodeHaus,Sourceforge都有这样的开源项目.距离真正成熟还有一段距离,另外各家厂商都各自为阵,目前<a href="http://www.itisedu.com/phrase/200604241437025.html" target="_new">JCP</a>还没有这项技术的草案,标准的指定也还有很长的距离.当然,目前的状态和SOA一样.相信等SOA真正普及的时候,ESB会更加的成熟.</p>
						<p>
								<font face="Verdana">
										<strong>六、企业服务总线(ESB)技术与革新</strong>
								</font>
						</p>
						<p>
								<font face="Verdana">　　由于更大任务所带来的要求，消息传递技术现在正处于发展之中。为了给当今的实时企业提供其所需的灵活性，就需要一种混合的消息传递模型将 Web 服务的优点与传统的异步消息传送结合在一起。 </font>
						</p>
						<p>
								<font face="Verdana">　　传统消息排队中间件将很快被企业服务总线(ESB)技术所取代，从而将消息传递带到新的高度。新的ESB骨干(催生了下一代集成和应用平台产品)将显著改善多数企业的软件基础架构。行业正转向消息传递和ESB，并以此作为核心应用平台基础架构模型，这将标志着一个转折点：围绕企业对其信息资源的使用而触发了新的一轮巨大的革新浪潮；企业都正在利用事件架构。这都将消除最近人们对 IT 在战略性业务区分中可扮演关键角色的所有疑虑。 </font>
						</p>
						<p>
								<font face="Verdana">　　简介 </font>
						</p>
						<p>
								<font face="Verdana">　　在过去的10年中，竞争压力和日新月异的技术根本地改变了企业的运行节奏。在过去，企业可以根据月底的成批报告来进行决策。现在，实时流程意味着如果原材料在早上出现问题，或者有停电事故发生，那么就会造成下午无法交付和托运成品。于是，企业不得不以越来越快的速度应对突发事件――否则，它就要靠边站了。“零时延企业(zero latency enterprise)”的时代已经来临。 </font>
						</p>
						<p>
								<font face="Verdana">　　当今的企业环境正在一点一点的发展以应对这个挑战。异构存储、网络和硬件支持着“孤岛计算”(应用程序与数据相互孤立或者条块分割)，这导致环境的利用和管理都过度复杂，并使之变为资源密集型。对于企业所必须面对的大多数关键挑战而言，这种复杂性无疑是一种障碍，这些挑战包括： </font>
						</p>
						<p>
								<font face="Verdana">　　满足对利用多渠道传递大量信息服务的不断增长的需求。 </font>
						</p>
						<p>
								<font face="Verdana">　　实时管理基础架构以满足不断变化的业务需求。 </font>
						</p>
						<p>
								<font face="Verdana">　　使业务多样化以促进业务灵活地增长，并降低与固定产品线相关的经济风险。 </font>
						</p>
						<p>
								<font face="Verdana">　　确保对客户、合作伙伴和雇员的信息服务请求做出快速且高质量的响应。 </font>
						</p>
						<p>
								<font face="Verdana">　　在过去几年中，EAI、B2B和应用开发等方面的迅速发展推动了几种关键技术和标准的发展，这些技术和标准又推动了基础架构领域的显著进步： </font>
						</p>
						<p>
								<font face="Verdana">　　XML 作为通用的、自解释的数据交换格式，已经为大多数应用程序所采用。面向 Web 的信息交换以及其后的基础架构，与 XML 一起使 Web 服务的使用成为不可避免的事情。 </font>
						</p>
						<p>
								<font face="Verdana">　　Java 已经作为用于服务器端的一个主要技术而被接受，并且J2EE 已经作为应用服务器的标准而被接受。 </font>
						</p>
						<p>
								<font face="Verdana">　　企业服务总线在事务性消息交换和实时事件通知领域的使用已经围绕 Java 消息服务(JMS)而被标准化了。 </font>
						</p>
						<p>
								<font face="Verdana">　　通过 Java 管理扩展(<a href="http://www.itisedu.com/phrase/200604261751455.html" target="_new">JMX</a>)标准已经实现了服务器端组件的公共管理框架。 </font>
						</p>
						<p>
								<font face="Verdana">　　基础架构必须像业务一样运转 </font>
						</p>
						<p>
								<font face="Verdana">　　瞬息万变的市场需要通过多渠道传递大量的信息服务。下一代的企业要求松散耦合的资源能够共享跨越多领域的公共通信和管理基础架构。企业基础架构不得不像有形的业务那样运转，允许对资源进行动态管理以应对客户和合作伙伴的需求波动，同时处理系统资源的供应和可用性变化。企业应用程序也需要一个基于标准的协作模型以最大程度地利用该基础架构。为此，实时企业使用了来自实时基础架构的最好做法和服务器端的网格技术(gridtEChnology)。 </font>
						</p>
						<p>
								<font face="Verdana">　　实时企业的组件 </font>
						</p>
						<p>
								<font face="Verdana">　　形成实时企业的一些概念与用于定义服务器端网格环境的概念相同，用来描述其核心组件(见表1)的结构类似于GArtner的 5 层网格技术模型。 </font>
						</p>
						<p>
								<font face="Verdana">　　一个建立在现有的而且是被广泛采用的技术和开放标准之上的ESB可为服务协作、管理和控制提供一个可适应的分布式架构。ESB支持在企业内部的任何地方进行业务服务的运行时部署，并提供协作和通知服务作为其核心基础架构的一部分。让我们看一下 ESB 技术是如何映射到 Gartner 的 5 层模型的。  </font>
						</p>
						<p align="center">
								<img src="http://www.itisedu.com/manage/Upload/image/200641591011205.gif" border="0" />
						</p>
						<p>
								<font face="Verdana">　　基础架构资源和虚拟<a href="http://www.itisedu.com/phrase/200602281634075.html" target="_new">操作系统</a></font>
						</p>
						<p>
								<font face="Verdana">　　第0层由基础架构资源组成，包括网络、服务器、存储和每台服务器的操作系统环境。第1 层位于基础设施层之上，并建立了一个多资源的分布式操作系统，它支持的功能如进行工作计划、将资源名集成到总体结构中以及确保不同系统间的一致认证。 </font>
						</p>
						<p>
								<font face="Verdana">　　尽管Gartner将J2EE 作为一个第 2 层的技术，我们相信分布式 JMX 和一台基于 J2EE 的应用服务器的结合会具有虚拟操作系统的特点。使用对所有组件和服务提供部署和完全 JMX 管理的容器或者微内核，从而允许对服务进行远程激活和管理。 </font>
						</p>
						<p>
								<font face="Verdana">　　JMX作为一种技术最初设计用于管理单个代理，如一台应用服务器。JMX通过与JMS 的结合，其范围就可以扩展到管理单个代理、群集或松藕合的联合体(如果您喜欢，亦可称之为超级群集)，允许对联合的 ESB 基础架构进行全生命周期和部署管理。由于 JMX 同时也集成了许多传统的管理协议，如 SNMP，因此ESB 基础架构可以为 Java、Web 服务和传统平台提供随需应变的(on-DEMand)的热部署和自我修复(self-annealing)式的基础架构。 </font>
						</p>
						<p>
								<font face="Verdana">　　分布式编程模型 </font>
						</p>
						<p>
								<font face="Verdana">　　分布式编程模型构成了实时企业的第1层：可在应用程序和服务(无论是内部还是外部)之间进行协作和通知的核心基础架构。ESB提供事件通知、动态路由选择和事务性确保传递；并且使用一个定义明确的过程语言以使应用程序通过一个公共 <a href="http://www.itisedu.com/phrase/200604241228185.html" target="_new">API</a> 进行活动协调。 </font>
						</p>
						<p>
								<font face="Verdana">　　实时企业要求在恰当的时间将正确的数据传递到正确的位置；JMS(<a href="http://www.itisedu.com/phrase/200604261600355.html" target="_new">Java消息服务</a>)提供事件分布和事务性确保传递的方法。同时也需要智能数据结构(datafabric)，它可以在需要的时候在网络范围内进行信息分发，目的是提高吞吐量和降低宝贵的后台系统的负载。该结构的骨干是通过JCache (Java 通用缓冲框架)所形成的。 </font>
						</p>
						<p>
								<font face="Verdana">　　一个类似于Linda的元组空间(tuplespace)将消息队列的“一个且只有一个”传递语义与发布/订阅的广播功能和对等系统的松藕合结合到一起。元组空间就如同由无限数目的进程所共享的相连内存。进程可以向该空间中添加元组(本质上就是数据对象)，或者从中取出元组来以独占的方式工作――如果需要的话，可以一直处于等待状态，直到匹配对象的出现。进程也可以读取元组而不需要将其从空间中删除。该范例(将消息队列的“一个且只有一个”传递语义与发布/订阅的广播功能和对等系统的松藕合结合到一起)被映射到 Jcache 的顶部，它提供一个该概念的高性能分布式实现。 </font>
						</p>
						<p>
								<font face="Verdana">　　这也可以和一个业务流程模型引擎(例如，jBpm：www.jbpm.org)结合起来以提供一套丰富的分布式编程域。进程之间独立工作——从元组空间那里获得适当的输入，并将输出放回元组空间以便进行后续任务。进程在元组上的执行顺序比在传统工作流系统上的执行顺序所受到的约束要少。该模型提供分布式共享内存、通用的群集、并行计算以及分布式工作流和BPM 的基础。 </font>
						</p>
						<p>
								<font face="Verdana">　　应用程序 </font>
						</p>
						<p>
								<font face="Verdana">　　构成实时企业第3层的应用程序依赖于企业基础架构的资源，以及使用协作编程模型进行相互通信。<a href="http://www.itisedu.com/phrase/200604231335565.html" target="_new">架构师</a>们已经意识到更松散藕合的和多层组件模型的优越性，而不是开发独立的或简单的两层客户/服务器(<a href="http://www.itisedu.com/phrase/200604291148225.html" target="_new">C/S</a>)应用程序。为定义、发现和实际执行该模型(例如WSDL、UDDI 以及用于 Web 服务的 SOAP)而采用的标准有助于<a href="http://www.itisedu.com/phrase/200604241241025.html" target="_new">面向服务架构</a>的实现。 </font>
						</p>
						<p>
								<font face="Verdana">　　作为虚拟操作系统基础的<a href="http://www.itisedu.com/phrase/200606221217315.html" target="_new">J2EE应用服务器</a>为基础架构提供了一个基于事务性的安全服务的集成点。由于分布式ESB 是一个像网格一样的使能技术，所以基于 OGSI 源代码组织定义的 Web 服务接口是一个很自然的选择。OGSI 当前是外化网格技术的事实标准，它允许在一个环境下所书写的网格服务可以很容易地部署在其他环境中。 </font>
						</p>
						<p>
								<font face="Verdana">　　此外，ESB可以提供一个基于优化Tete算法的可扩展规则引擎。外化业务规则使得在较低层对迅速变化的业务流程、决策机制进行管理以及使消息过滤和路由选择变得可能，而不需要对基础应用程序进行代码级的改变。它将业务从对缓慢的代码开发周期的依赖中解放出来，允许精通业务的分析师进行必要的变化以支持新产品或法规需求的引进，而无需中断系统的运行。 </font>
						</p>
						<p>
								<font face="Verdana">　　“在过去的10年中，竞争压力和日新月异的技术根本性地改变了企业运营节奏” </font>
						</p>
						<p>
								<font face="Verdana">　　管理支持 </font>
						</p>
						<p>
								<font face="Verdana">　　实时企业要求服务在宏观和微观两个层面上管理和协调应用程序及其服务。第4层提供了实现安全策略、定义资源使用指南和集成操作流程所需的管理支持。基本功能包括： </font>
						</p>
						<p>
								<font face="Verdana">　　监视：整理事件和统计数据以了解应用程序的性能、资源使用情况和操作行为。它允许对整个基础架构进行模拟、错误判定以及对资源利用进行手动和自动平衡。 </font>
						</p>
						<p>
								<font face="Verdana">　　反应协调：需要通过启发分析、动态规则和灵活的工作流对应用程序进行智能管理、控制、自我修复以及微调。通过使用有效的动态拓扑布局(在正确的位置运行正确数量的应用程序)、实时企业管理利用负载，并选择正确的硬件和位置来运行应用程序。 </font>
						</p>
						<p>
								<font face="Verdana">　　ESB管理结构将分布式JMX与统计事件收集和对比与用在应用级的基于相同标准的 Java 规范框架进行了结合。这为资源使用、性能监视和警告通知提供了位置透明性、发现、远程控制和统计数据的整理。这些技术允许对在整个实时企业中的智能性资源可视化、协同合作和供应环境进行预言性的决策，从而为 IT 经理和业务经理赋予了洞察力。 </font>
						</p>
						<p>
								<font face="Verdana">　　结束语 </font>
						</p>
						<p>
								<font face="Verdana">　　使用一个分布式企业服务总线，企业可以通过利用标准以提供灵活实时的“按需服务”基础架构来最大化利用其在硬件和软件的现有投资。该灵活的基础架构包括： </font>
						</p>
						<p>
								<font face="Verdana">　　提供可主动调整 IT 资源的技术，使业务领导可以转变核心信息服务以满足不断变化的市场 </font>
						</p>
						<p>
								<font face="Verdana">　　创建一个基于开放标准的统一 IT 基础，它可灵活变化以满足未来的需求。 </font>
						</p>
						<p>
								<font face="Verdana">　　降低 IT 基础架构的成本，同时保持高水平的性能。 </font>
						</p>
						<p>
								<font face="Verdana">　　这些目标是通过企业消息传递、实时缓冲以及分布式主动管理技术的大量结合而实现的。结果就是一个具有更低总体成本和具有更高应对业务变化能力的IT基础。通过依赖于标准，实时基础架构将不同的技术结合到一个连续的结构中，这个结构提供了快速调整软件和硬件基础架构以满足企业实时业务需求的方法。 </font>
						</p>
						<p>
								<br />
								<strong>七、ESB的几种模式</strong>
						</p>
						<p>
								<strong>      </strong>
								<font face="Verdana">John Reynolds 提出了ESB的几种模式，在选择ESB进行企业应用开发的时候，先要确定自己的业务模型适合于哪一种ESB模式，详见：</font>
						</p>
						<p>
								<font face="Verdana">http://weblogs.java.net/blog/johnreynolds/archive/2006/01/soapesb_level_s_1.html</font>
						</p>
						<p>
								<font face="Verdana">
								</font> </p>
						<p>
								<font face="Verdana">      对于Web Service，只有理解了异步服务调用才能真正理解WS的好处。异步调用就是用户发出一次请求，然后过一会回头检查这个请求是否返回了。使用异步调用，用户不需要发出请求后立即等待请求返回，这样就增强了用户体验性。其实现在很多服务，例如邮件服务，消息服务，在线支付都是异步调用的服务。</font>
						</p>
						<p>
								<font face="Verdana">
								</font>
								<strong>八、企业服务总线（ESB）的应用前景</strong>
						</p>
						<p>      企业级应用系统一直是中国软件产业发展的主要方向之一，占有至关重要的地位。同时，它也受到整个世界IT发展潮流的影响，当前IT软件领域的主要技术趋势是SOA和ESB，原因是信息技术的不断发展和成熟使各个企业有机会在更大的范围内整合自己的资源，提高经营运行效率。 </p>
						<p>      二十一世纪信息共享与整合对企业的变革发展日趋重要，而企业对网络环境的依赖及应用创新的追求，将是我们面临的主要挑战。</p>
						<p>转载</p>
						<p>
						</p>
				</font> </div>
<img src ="http://www.blogjava.net/esoa/aggbug/74111.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/esoa/" target="_blank">comchyi</a> 2006-10-09 16:48 <a href="http://www.blogjava.net/esoa/articles/74111.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>