ESB架构之企业实施案例(一)
第二部分:http://guoshiguan.iteye.com/admin/blogs/838691
第三部分:http://guoshiguan.iteye.com/blog/838704
1??????主要概念W3C :可以调用的一系列组件,其接口描述可以发布和发现。
ESB的存在主要是为了整合企业内部的应用,使一个企业能的应用能合为一体,而不是成为一个个独立的应用。可以说ESB企业内所有的服务的中心点,其他的系统间的交互都要通来ESB来完成。为此他的质量属性的重要性依次是这样的,可用性、性能、可修改性、可测试性、易用性。它门描述可以参看下面的2.1章节
为了完成这些属性,我们可以从企业域,部门域,ESB内部视角三个层次来进行说明。因为ESB除了高可用性和性能之外,高可伸缩性也很重要,在实际的应用过程中,你可以进行对整个结构进行裁减,在开始时,你可能只要一个部门域,一个部门域内支持水平扩展,当到了瓶颈后,你可能会部署多个部门域,这样做到这时你可以把他看成一个垂直扩展。
2.1????ESB的质量属性第一位:可用性
??? ESB是企业内应用之间及对外第三方系统之间交互的集中点,他集中的管理了交互的所有服务。他还有服务查找,管理,审计,监控,分析,等功能。当一个 ESB服务出现了故障,它就将会影响企业内的所有应用的正常运行。所以,可用被性放在了第一位。
第二位:性能
随着企业内部整合的推进,ESB内部的服务交易量应该不会是个小数,高性能对于一个ESB的应用也是非常重要的。
第三位:可修改性
因为 SOA的企业治理是一个循序渐进的过程,在ESB部署的开始之初,很难对交易的量上有一个准确的估计,对性能的扩展性有比较高的要求。
在实际的生产运维过程中,我们还是会常常发现,服务可能会出现这样或那样的问题。为了让使用这个服务的应用能正常的使用,快速的修改和部署,是一个很重要的问题。
ESB的项目是随着SOA的企业治理而进行一次次的迭代过程,这也就意味这可修改性在ESB中的重要性。
???第四位:可测试性
?? ESB的上线既然是一个迭代的过程,服务会根据SOA理念的深入而增加。在迭代的过程中,要保证以前的服务能顺利的通过,可测试性是一个很重要的保障。
企业内应用的交易,应该只面向ESB,它们要交互并不需要知道这个服务在哪里或是给谁使用。这时,ESB的测试就是一个很大的问题,因为这支交易在开始的时候,你可能并不知道他会在哪里被使用,但我们至少要保证这支交易基本上是正确的,这样才能便于使用。
??? 第五位:易用性
??? 易用性,这当然是要提高一个服务的开发效率,能快速的开发和部署一个服务。因为他对生产上的活动没有影响,在这里它只能放在第五位
?
在大多数据情况下,如果你的交易量不大,你大可以只使用一个部门域来支撑整个企业内的服务。但如果只是一个ESB的部门域的话,是没有办法支撑后来交易量的年年增长的。虽然我们的每一个部门域,都可以自行进行水平的扩展,但这还是有一个度,如果超过这个度后,你就只能使用垂直扩展,这种扩展方式当然没有水平扩展来得廉价,但他能支撑更大的交易量。
在企业域中,最大的特点就是有多个部门子域,每个部门子域都是高度自治的。他们可以独立的处理域内各个系统的整合,只有当需要别的域的服务时,他才会请求其他的域。为了防止部门域之间变成一个蜘蛛网,这里我们引入了企业域管理器,来统一管理域内的服务与及对这些部门域进行必要的监控。
在企业域管理器中主要有以下的几个组件:
图表3?1
3.1????元素3.1.1?企业域管理器3.1.1.1?????? 企业服务查找注册组件
这个是企业域管理器的核心组件,使用他来管理整个企业内的所有服务,这个组件应该有以下几个功能。
这个组件可以查看各个部门域内的运行情况,并在部门域的运行超过伐值时进行相应的预警,必要时,操作域内流控来操作交易。具体的功能如下:
部门域是整个企业域内的一个个的ESB结点,每个部门的域内会根据项目群,或者根据部门来进行划分,在各个部门域内都有一个ESB的应用,通过这个ESB来整合整个部门内的服务和应用。这个元素我们将会在部门域的视角中祥细进行阐述。
所有的服务都会被注册到企业管理器的服务查找组件中,这个组件拥这些服务的描述和服务的地址信息。一个具体的流程可以查看序列图(图表3?2),部门域A如果要发起一个跨域的服务请求,那就必须要使用企业域管理器的服务查找组件,通过这个组件的路由表来获取此服务的服务方的部门域B的服务的地址后,才能请求对应的部门域B。
为了提高性能,在这个场景里,我们也可以在启动的时候就去取对应的路由表信息,然后缓存起来,通过缓存来找到部门域B的地址,但这样有一个注意点,那就是当部门域的改变了服务的地址后的通知部门域A的策略问题,我们可以有下以几种策略

图表3?2
?
本文已经首发于InfoQ中文站,版权所有,原文为《ESB架构之企业实施案例》,如需转载,请务必附带本声明,谢谢。
??????? InfoQ中文站是一个面向中高端技术人员的在线独立社区,为Java、.NET、Ruby、SOA、敏捷、架构等领域提供及时而有深度的资讯、高端技术大会如QCon 、线下技术交流活动QClub、免费迷你书下载如《架构师》等。