ESB作用
中国企业信息化经历了从无到有、从有到多、从多到散的过程,如今的后信息化时代面临着系统整合、优化IT架构、提升IT价值的新问题。随着现代企业经营理念的转变,在竞争加剧和IT发展的驱使下,企业开始朝着实时型的管理模式发展。原有的分割、零散系统将阻碍企业成为实时企业,因此想要具备实时反应能力的企业对信息系统的整合提出了前所未有的高要求。
AEAI ESB是数通畅联自主研发的核心产品,ESB 应用集成平台能够消除信息系统之间的“信息孤岛”情况,集中进行应用管理维护,打破系统壁垒,实现各系统间数据、功能的互通,提高系统使用的便捷性。从v3.5版本开始主推K8S云平台分布式Cloud云ESB服务/数据总线平台,为企业制定各项集成规范,实现各监管、认证等系统,以标准化的方式进行集成,为后续IT建设奠定基础架构。
整体介绍
ESB企业服务总线作为集成龙骨满足应用、数据和业务等集成需要,应用集成如统一认证、单点登录等主要实现业务系统间的对接;数据集成如主数据治理和数据分析等,通过ESB实现数据的聚合以及分发;业务集成如业财一体化等,实现企业业务之间的互联互通。在集成的过程中,ESB的作用至关重要,它连接着上下游业务系统,构建了数据集成传输的通道,是企业信息化建设由无序到有序、由散乱到规范、由点对点到总线式的有效工具与手段。
产品设计理念
AEAI ESB服务总线最大的技术特点在于它是一个完全面向企业级的中间件解决方案,可以构建在企业现有的网络框架、软硬件系统之上,基于适配器组件技术,把数据、接口、协议、消息、文件都进行统一封装,采用引擎把它们图形化串联起来,构建数据集成、应用集成的可视化流程,实现数据传输交换、异构系统对接。
产品整体定位
ESB企业服务总线核心功能是消除信息系统之间的“信息孤岛”情况,集中进行应用管理维护,打破系统壁垒,实现各系统间数据、功能的互通,提高系统使用的便捷性。传统模式的ESB是传统中间件技术与XML、Web服务等技术结合的产物,提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。
产品功能介绍
ESB企业服务总线在实际项目中主要用于各业务系统之间的集成,集成包括数据集成、应用集成以及业务单据集成等等,ESB企业服务总线主要包含三部分:ESB设计器、SMC管理控制台以及Server运行环境,ESB设计器用于服务以及集成流程的开发,可以直接将服务或者流程部署在Server当中,并通过前端管理控制台SMC来对服务以及流程进行管理,并进行监控统计分析。
K8S云平台是目前公司核心产品的主推部署方式,通过云平台实现ESB部署,可以提升部署效率,特别是针对集群式、高可用部署,云平台具有天然的优势。云平台部署模式在满足常规部署的同时,也提供了对于服务器资源的监控、运维的辅助,能协助运维人员快速进行服务器升级、扩容、启停等操作,降低运维难度。
解决问题
目前大多数企业的信息化现状尤其是集团企业面临困境——信息竖井,企业信息化的过程中,形成了很多的信息孤岛,信息孤岛割裂了信息系统间的互联互通。如何让企业的系统间互联互通、打破信息孤岛、制定集成规范,让各IT系统相互组合、形成合力、提升信息化的价值,一直是困扰企业领导者的头疼问题。
消除应用孤岛
信息孤岛割裂了信息系统之间的互联互通,被割裂的信息系统无法有效对公司经营、管理、决策形成统一的视图,对公司长期、高速发展的战略形成了一定的阻碍。统筹规划全局的信息基础与应用平台,在统一化、集成化的基础架构与平台之上,整合遗留的应用系统,推进及保障企业的业务战略落地。
提升生产效率
实现无边界的业务、信息流体系的打通。通过监管系统搭建、数据采集交换等手段,为集团人、财、物等资产综合管理提供有效的支撑,同时通过系统建设倒逼组织布局、业务流程、管理制度的问题,规范业务操作流程,实现统一的系统监控和安全管理,达到企业业务全局的一体化管控,提高生产效率。
降低出错机率
大量且重复性高的工作,会占据企业和员工的时间,不仅给员工带来不必要负担,还会导致效率低下。对于信息化的企业来说,将原来复杂和重复劳动的工作交给信息化系统批量处理,减少人工方式的介入,能够降低出错机率,提高工作效率。同时,将人力资源释放出来,去做更有价值、更具有创造性的工作,从而推动企业高质量发展。
涉及方案
在数通畅联ESB总线平台是核心产品,可以跟其他产品套件组合使用,形成不同针对方向的方案,可以满足绝大多数的应用场景。在实际项目中,可根据企业项目的不同需求/性质,将产品进行相应的组合搭配,最终形成满足企业自身需求,独具特色的解决方案,能够快速解决企业问题,辅助企业决策。
统一集成平台
在统一集成平台中,ESB应用集成平台自带集成样例可以快速上手,丰富的数据适配、协议适配、协议接入、消息转换、消息路由等组件;MDM基础数据管理平台可以进行数据的清洗,管理和丰富。对企业组织、人员、客户、供应商等高度共享的数据进行统一管理,对需要的业务系统进行同步分发,使数据易采集、易理解、易分析,提高部门与部门之间的沟通效率。
二者相结合形成主数据治理方案,可以满足企业各个应用系统间数据共享与功能集成的需求,帮助企业解决数据整合的问题,推进企业信息化建设。
统一身份管控
随着信息化的迅猛发展,各个企业也加快了信息化建设并引入大量的业务系统用于企业的业务管控。而随着业务系统的逐步增多,各个业务系统之间的组织、岗位、用户也变得愈加难以统一,企业中缺少统一的人员信息管理。由此我们公司的统一身份管理平台+应用集成平台结合的统一身份管控方案应运而生。
IDM作为统一身份管理平台,实现了5A管控,即应用管控、统一用户、统一认证、统一权限和统一审计用于解决企业的多应用无统一管控的局面。而ESB应用集成平台,是一款强大的应用集成产品,配合IDM与其他业务系统进行数据对接,使得统一身份管控方案的灵活性更高。
基础数据治理
随着企业业务迅速发展,需要支撑业务运转的信息系统越来越多,各系统之间的数据分散、重复,未完全形成业务闭环,数据孤立不能互通,数据统计不一致,企业主数据(组织、人员、岗位客户、供应商、产品、项目等)不能共享,数据不完整,缺少关键基础数据。
作为数据交换平台,支持应用间批量数据交换和数据库间的数据交互,包括数据的抽取、转换和导入操作。不需要向不同的业务系统请求主数据的获取、同步,只需要通过ESB进行数据分发、下发等操作即可获取这些数据,帮助企业数据整合或数据中心建设。
集成底座方案
集成底座是基于IDM、MDM、ESB三个核心产品组合打造的一套解决方案,主要解决企业信息化建设过程中业务系统打通以及基础业务集成整合的问题,通过构建企业集成底座,实现各业务系统间的统一认证,保证业务系统访问的一致性;实现各系统基础数据的同源,保证数据一致性的同时为后续复杂的业务集成、财务集成等提供基础数据支撑。
其中IDM平台基于5A管控体系实现统一用户、统一认证、统一授权、统一审计、统一应用管控等安全管控;MDM通过支持组织、岗位、人员等主数据的同步分发,实现主数据的标准化,实现全生命周期的主数据管理;ESB作为集成通道,通过API管理将业务系统接口注册、代理到ESB平台,并通过平台实现集中监控、认证、限流、报警等功能,在满足IDM、MDM以及上下游系统的集成管理的同时实现服务接口的集中化管理。
数据中台方案
数据中台是基于公司的三款核心产品DAP、MDM和ESB组成的解决方案,主要实现基于数据治理分析的中台建设,通过MDM将企业内部的基础数据标准化、规范化、整合化后,由DAP进行数仓建设以及最终数据分析的可视化展现,ESB通过数据集成完成整个数据中台的主数据分发和数仓的数据汇聚。
数据中台主要是针对企业的数据进行管理,其中包括了基础数据和业务数据,在管理过程中会为不同职级的用户赋予角色权限,在数据管理的过程中不同角色需要各司其职,共同实现数据中台的数据管理办法,保障数据的科学性和规范性。
产品优势
数通畅联的产品并不是从一开始创造出来时,就十分的完美无缺,而是通过不断的升级优化,通过完成一个个项目深度挖掘问题加以解决得来的,不断与时俱进跟K8S无缝结合、主推K8S云平台模式提供分布云ESB模式。AEAI ESB功能非常强大、扩展性的灵活和多功能性,既可以通过图形化的拖拽方式设计流程,还可以通过地址对流程进行访问及测试,可以快速实现设计的功能。
敏捷应用集成
支持服务注册、应用集成,支持集成场景的配置化,通过SMC配置集成场景,满足推、拉、定时等集成方式,可以更加快速、更加方便地实现业务系统间的集成,并支持邮件、微信、短信等多种预警机制。
AEAI ESB应用集成平台负责实现异构、分布式系统之间互联互通,实现服务API治理以及数据传输交换。通过ESB预置的各种适配器组件,连接现有各孤立应用系统,以图形化、拖拽方式构建集成流程和服务,提高应用系统集成工作效率,降低异构系统集成风险。针对未来可能出现的业务需求变更,在应用集成平台上进行动态调整,实现各应用系统之间的集成策略平滑升级。
性能易用强大
ESB应用集成平台具有易用性、开放性、标准化、安全性、扩展性、实用性和高可用等特性。云ESB提供了丰富强大的组件堆,如:Http Rest、Soap、Web Service、Rest Service、FTP、数据库操作、消息队列、主题收发,可以满足客户绝大多数的业务场景。通过AEAI 设计器,开发人员使用优雅的方式和极少的代码即可完成整套流程的设计。
具有可开放性
开发的流程可对外发布,也支持外部服务调用,提供服务源码,所有底层源码封装在jar包中,提供完整的技术框架,可深度学习。数通畅联软件本着开放的理念,产品源码直接打入Jar包,自带集成样例,支持远程调试;支持各种各样的服务质量等级和通信模式:同步(例如SOAP)和异步(例如MQ) 两种通信模式,请求/响应、队列、点到点以及发布/订阅模式,各种交付保证,集群支持。
性能稳定安全
服务、流程支持用户名/密码、认证流程、IP白名单等机制,可以按应用进行安全策略配置,支持通过服务代理扩展安全认证。底层预置缓存处理机制,优化流程稳定性,满足多服务、多流程同时运行的需要,服务流程支持大数据量、高并发的使用场景。
支持Web服务和HTTP/Rest服务用户名/口令的身份认证机制,且支持原服务和代理服务之间身份信息的自动二次封装;支持Web服务、Rest服务通讯安全保障,包括白名单、黑名单、IP地址、用户名&密码等多种身份验证机制、传输消息安全性及完整性等,支持HTTPS;服务管理通过权限分离实现管理控制台的权限控制,支持基于角色的功能权限、数据权限进行资源隔离。
价值分析
产品的IT价值往往不是可以量化的或是直观展现出来的,更多的是偏向于技术层面的价值,看不见、摸不着,却是真实存在着的。从IT层面来说,AEAI ESB可以在企业信息化建设过程中搭建一套稳定的、标准的、可持续的集成框架,满足企业业务集成的需要,同时为后续信息化的稳定发展提供强力保障。
1优化体系架构
确保企业核心系统(财务、生产、OA、HR等)实现信息系统互联,满足集团信息共享需求,避免信息孤岛形成。统一系统架构及协同标准,单一系统变化对其它系统影响极小,符合未来业务发展需求,支持插拔式信息应用扩展/替换,为后续信息化建设提供支撑。
2提高集成质量
AEAI ESB组件的丰富性可以满足客户的绝大部分业务需求,可以帮助开发人员简化基础代码开发的工作量,降低开发难度,也减少了代码出错的几率。另一方面,基于AEAI ESB规范化的特点,开发人员在开发过程中可以参照标准,优化程序的设计结构,提高项目的交付质量。
3加快交付速度
向导化开发、基于流程设计的方式、动态热部署技术、组件的复用,可以为开发人员屏蔽很大部分的基础代码编写,让开发人员更多的关注业务需求,从而大幅度加快开发效率。从用户的实际利益出发,通过复用内置的组件可以大幅度减少开发工作量,间接地减少企业人工成本,使企业更好地实现资源分配。
4强化数据治理
随着信息技术的飞速发展,企业对互联网环境下数据的呈现提出了更高的要求。AEAI ESB企业服务总线与AEAI DAP数据治理分析平台结合,实现数据抽取、加工、转换,构建企业数据中心,在分析数据可视化的基础上,实现了资产可视化。以图形化的方式呈现资产数据,为用户提供更加直观的数据呈现形式,更好地展现资产数据之间的相互关系,挖掘出数据背后隐含的信息,有效地提高资产管理效率。
ESB应用集成平台作为系统中间件可以实现集成业务处理,监控系统间消息流动,管理系统间交互的业务服务。国外的知名ESB公司有Oracle、IBM等,这些公司在集成领域相较于国内的ESB厂商起步较早,但是这些公司的ESB产品不能满足国内公司的需求。而作为本土诞生的数通畅联产品家族的ESB应用集成平台,会更加适合国内的集团型公司。
随着计算机技术、网络技术和通信技术的发展和应用,企业信息化已成为品牌实现可持续化发展和提高市场竞争力的重要保障。而ESB应用集成平台可以打破企业的信息孤岛,和MDM基础数据平台进行结合形成统一集成平台,清洗、治理企业的主数据,使企业的主数据具有唯一性、准确性、一致性、及时性,促进企业的信息化建设。
ESB与业务逻辑的关系
ESB是"中介逻辑,而不是应用逻辑",应用逻辑应当放在应用程序服务器中,这样扩展性会更好
开源ESB介绍
1.Apache ServiceMix
Apache ServiceMix 是一个灵活的开源集成容器,它将 Apache ActiveMQ、Camel、CXF 和 Karaf 的特性和功能统一到一个强大的运行时平台上,你可以用来构建自己的集成解决方案。它提供了一个完整的、企业就绪的 ESB,完全由 OSGi 驱动。
2.OpenESB
OpenESB (NetBeans ESB) 项目实现了一个运行期企业服务总线 (Enterprise Service Bus:ESB) 使用 JBI (Java 业务集成) 作为核心基础。OpenESB 可以让你集成企业应用与 Web Service 松散地连 接成复合的应用程序。这使得你可以无缝地组合与拆解该复合应用程序,并认识到一个真正面向服务架构 (SOA) 的优点。
3.MuleESB
Mule ESB是世界上使用最广泛的开源企业服务总线(ESB)产品,已拥有超过数百万的下载量,以及来自世界各地数十万个开发人员,很多世界五百强企业选择Mule ESB作为企业集成平台。通过Mule,企业可以在短时间内轻松地创建并集成应用服务,Mule ESB消除了系统集成的复杂度,使开发人员能够在异构系统和服务之间,轻松地构建出高性能的集成应用。
开源方案对比
Mule ESB | Apache ServiceMix | Open ESB | Apache Synapse | JBoss ESB | WSO2 | OpenAdaptor | ||||||||
产品描述与定位 | 轻量级的消息框架和整合平台;基于EIP实现;核心组件UMO实现整合逻辑;支持20多种传输协议(File、FTP、UDP、SMTP、POP、HTTP、SOAP、JMS等)。并整合了许多流行的开源项目,比如Spring,ActiveMQ,CXF,Axis,Drools等 | 它是JBI规范的一种实现;包含很熟JBI组件。这些组件支持多种协议,比如JMS,HTTP,FTP,FILE等。同时也实现了EIP,规则和调度。ApacheServiceMix 也整合了其他的开源项目,比如Apache、Apache、ActiveMQ CXF,Apahe Camel,Apache ODE以及Apache Geronimo。 | Open ESB可运行在由SUN支持的Glassfish应用服务中。同时SUN的Netbeans IDE为Open ESB提供了拖拉式的开发工具,这是其他开源ESB不可匹敌的,尽管Mule也提供了基于Eclipse的插件工具,但目前仍然不够强大。 | 虽然Apache Synapse具备一些ESB所必备的功能,但是从本质上而言Synapse更是一个web服务仲裁框架,它是构建在Apache Axis2之上的。Synapse的关注点是路由,转换,消息验证以及基于web服务和xml标准的注册。它支持HTTP, SOAP, SMTP, JMS,FTP ,MTOM/XOPPOP3/IMAP/SMTP 等传输协议,还支持多种web服务规范(WS-*),比如WS-Addressing,WS-Security,WS-Policy以及WS- Reliable Messaging;支持多种语言;比如Java, JavaScript, Ruby, Groovy等。 | JBoss ESB是基于JBoss公司的ESB产品Rosetta的。Jboss ESB将JbossMQ作为其消息层,将JBoss rules为其提供路由功能, 将jBPM为其提供服务编排功能;JBoss ESB是JBoss社区为面向SOA而提出的一个EAI系统平台;它提供了很多EAI本身所应具有的功能,例如业务流程监控、集成开发环境、工作流用户接口、业务流程管理、分布式计算架构以及作为应用容器的功能等。 | WSO2是基于Apache Synapse产品的,通过它可以在web服务,REST/POX服务以及遗留系统间连接,管理和转换服务交互。它还提供了一个基于AJAX的ESB管理控制台对其配置文件进行统计分析,管理(添加,删除以及修改等),和指定执行相应的配置文件。这在开源ESB中是非常少见的。 | OpenAdaptor定位于EAI (Enterprise Application Integration,企业应用集成)软件。它支持各种传输协议,如JMS, JDBC, IBM MQ Series, TIBCO Rendezvous, TCP/IP Sockets, SOAP, HTTP 和 File等 | |||||||
官方网站 | http://mule.codehaus.org/ | Welcome to Apache ServiceMix! | https://open-esb.dev.java.net/ | http://ws.apache.org/synapse | http://labs.jboss.com/jbossesb/ | WSO2 Integration - Your Systems, United and Efficient | https://www.openadaptor.org/ | |||||||
缺陷与不足 | 没法热部署新的集成流程。 | 如果要做进一步的总线上的扩展,则需要对源代码和例子进行较为深入的学习和研究,当然这一切的基础是对JBI的规范有较为全面的了解。 | 如果要对OpenESB进行按照自身的要求进行扩展则较为困难,除非对OpenESB的源代码进行全面的分析。 | 相对于上面的总线而言,它的技术架构方案是最独立的。因为它除了支持J2EE标准外,对于JBI规范压根就不沾边;当然也就不存在JBI规范中的规范化消息路由、服务引擎和绑定组件了。 | ||||||||||
对比 | Mule提供了以Java为中心的模型,支持jBPM,支持消息无关,没有热部署功能。 Mule的优点: 1,架构简单清晰、容易上手; 2,它有非常广泛的传输器、路由器和转换器,且易于扩展; 3,Mule不需将消息转换成统一的格式,而只在需要时进行转换,提高了性能; 4,开发过程中无需关注Mule代码,只需通过配置即可将服务暴露,减少了侵入性; 5,文档清晰而完善; Mule的缺点: 1,没有实现任何ESB规范(但遵循了《Enterprise Intergration Patterns》与 SEDA (Staged Event-Driven Architecture)); 2,不支持热部署(企业版支持); Mule选择不实现JBI的理由:为保持其轻量级和灵活性,提高效率和易用性。 Mule提供了一个JBI适配器来与JBI容器保持联通性。 | ServiceMix提供了JBI支持,BPEL集成,关注XML消息和热部署功能。 Servicemix的优点: 1,基于JBI规范; 2,可以热部署; 3,支持Camel(可以用DSL去开发集成流程); Servicemix的缺点: 1,JBI规范带来了使用上的繁琐,且JBI规范没有得到太多的青睐,前途未卜; 2,过多依赖XML的配置; 3,由于所有消息要进行标准化处理,即生成和解析XML文件,所以会导致性能下降; 4,开发过程中需要实现框架特定接口(MessageExchangeListener)接收和处理上述标准消息,侵入性强; 5,文档不健全、不够清晰; | ||||||||||||
结论 | 综上所述,Mule和Servicemix都实现了ESB的核心功能,都提供了广泛的可用组件和良好的扩展性,从功能上看差别不大,但从稳定性、易用性和性能上比较,Mule可能是更好的选择。 |
API,ESB,ETL对比
API 集成成本相对较低,只要具备一定的代码能力,无需第三方工具,即可由研发团队按照数据共享需求对系统进行 API 封装,为下游新业务供数。但直接在源库上构建 API 对性能的影响也比较大,且 API 通常会有 Rate Limit,难以支撑海量数据读写。此外,API 基本上只能对单库发布数据,难以跨库操作(本身脆弱,调用频率高了500,数据量大了崩溃)。
ETL 也是过去很长一段时间里的主推方案,这种方式的优势在于,不需要写太多 Java 代码或服务代码,而是通过工具或脚本的方式,来实现数据向下游系统的抽取复制。ETL 的局限性主要体现在不易管理上,因为太过简单且无法复用,导致每个新起业务都需要不少数量的 ETL 链路,最终散落在企业各处。
缺乏统一管理的的下场,就是痛苦的意大利面式结构状态。面对这一痛点,二十年前就出现了不错的架构解决方案——用 ESB/MQ 将数据都推到中央化的企业消息队列、服务总线上,然后将企业各个需要共享数据的系统,通过 API 和 Service 的方式连接起来,省去了多个系统之间两两交互的重复工作,降低了系统之间的对接成本。但整体成本仍较高,所以多用于商业化方案。而且开发复杂、系统耦合较高,性能又较低,很快就退热成了“明日黄花”,被类似于 Kafka 这样的分布式开源产品所取代。
大约十年前,Kafka 迅速流行起来,大量企业开始基于 Kafka 实现数据集成。但由于 Kafka 并非为此而生,最初只是一个分布式的日志存储,所以其架构设计特性更倾向于高并发、高性能、分布式。相较于数据集成要求的链路短、耗时短、延迟短,基于 Kafka 的 ETL 架构因节点较多,反而显露出长链路、数据容易中断、排查难等特性。如果想要实现,还需要做很多 Java 代码开发,使用复杂度很高。
最近十年,各种中央化数据平台打得火热,特别是以 Hadoop 为主的大数据平台,以及传统数仓、新一代数仓等代表,这一类方案的表现是将企业内散落在各个数据孤岛的数据集中化到一个平台里,从而实现通过中央平台统一获取需要的数据。但由于其技术架构多基于 Hadoop,本质上还是一个以离线分析为核心场景的技术栈,多用于对历史数据进行洞察、分析,数据不够实时,无法支撑对实时数据要求较高的一些 TP 型业务场景。看下linkis