`
can4you
  • 浏览: 101166 次
  • 性别: Icon_minigender_1
  • 来自: 天朝
社区版块
存档分类
最新评论

都别装了,ESB真的很容易么

    博客分类:
  • SOA
阅读更多
首先对该标题表示歉意,沿袭了“都别装了”系列,果断的做了一回标题党。

第一次来SOA板块发帖,在看过了http://www.iteye.com/topic/831144对ESB的精华帖讨论之后,结合目前项目的状况,想针对以下问题进行咨询,希望朋友给小弟出点建议:

首先说一下项目情况:智能电网物联网(Internet of things)项目,该项目拥有多个独立的子系统,各个子系统由各个“兄弟”公司负责开发,类似生产管理系统(PMS),B/S和C/S的都有,可以说是异构独立的系统,业务基础数据各自子系统都有对应的数据库,现在我所在公司负责2个项目:

1. 物联网项目其中一个子系统A的开发,也是PMS系统,目前已经进入开发后期,基础功能也已经开发完毕;
2. 针对项目子系统(包括A)的业务数据,搭建一个综合展示平台,展示各子系统(A,B,C,D...)的核心数据,要求数据实时、高效、安全的展示。

物联网,说白了就是炒作一个概念(没有贬低的意思),我接触到的部分主要还是使用有源/无源传感器自动采集数据,自动(主动推送或主站请求)传输到主站,我们接受主站的数据进行分析,处理,展示。

现在问题来了:

1. “领导”要求使用ESB(企业服务总线)来将各子系统间的通信做到集中、规范、统一管理,但是目前项目组都没有人有ESB方面的经验 ,第二个项目一直进展不顺利,目前只是通过webservice来获取自己开发的A系统的数据进行处理和展示。如何将自己开发的系统A和其他子系统的服务接口和ESB关联起来?

2. 综合展示平台有一个中心数据库,如何保证该数据库和其他子系统的数据库之间数据的同步实时性,因为展示功能有时候必须是实时的,比如系统B刚更新某个列表的数据,展示平台必须同步展示,B系统数据如何自动推送到中心数据库?

希望朋友们给点建议,拍砖,指教都行,谢谢。
分享到:
评论
22 楼 can4you 2011-08-10  
ltian 写道
不好意思,借你地盘胡乱发挥了一些,请恕罪。

非常感谢你的“胡乱发挥”,看来你是我的前辈啊,对智能电网和物联网的阐述也给了我一些有意义的启发,谢谢 Q:443638599

ltian 写道
你谈到的智能电网和物联网,我认为并非一个概念,其实智能电网可以看做一个物联网,从系统工程的角度看,智能电网是由若干具有电气接口和信息接口的执行者连接在一起组成的系统。 这里的执行者可以是人、组织、计算、设备或者程序。比如说,在智能电网里面,变压器可以说是一个执行电压转换业务的执行者,而计费程序可以看做是为客户提供计费服务业务的执行者。
随着物联网的发展,每个连接到智能电网里面的系统都应具备自我描述能力,包括我是谁,我能做什么,我现在工作的怎么样。随着这一趋势的发展,对我们开发人员来讲,以后通过人机界面录入的信息会越来越少。系统之间自动信息交换的能力将会逐步增强,因此基于公共语义的自动数据交换(ADE)产品的作用会逐渐凸显。

的确,物联网中的每个个体都需要具备自我认知,数据分析和处理,信息交换等特性,物联网的特点就是:自组网络,网内计算,信息感知末梢,具备个体计算能力。

ltian 写道
ESB是一种支持系统集成,或者说“互操作”的技术产品。
真正的系统集成=技术标准(诸如WebSevice)+语义标准(诸如电力里面的CIM模型)。
二者缺一不可。如果以上两个标准已经定义清楚了,使用点对点方式也可以很好地完成系统之间的集成,ESB只是可选项。
ESB集成与点对点方式相比,主要是可以较容易地实现服务的治理,因为服务不是直接调用,是通过ESB进行的,这时候,如果某个服务不能提供了,则ESB这个中介就会发现,从而实现某种程度的服务监控,当然还有其他一些服务治理功能,比如服务的抽取和发现等。
ESB只是容易实现治理,若点对点的服务调用失败时也能发出一些事件,则可以实现同样的功能。当然,服务治理需要对服务本身除技术之外的管理属性需要定义,可以用一个Excel文件也可以完成,这些管理属性包括服务的版本,拥有者,提供者,支持的业务集成点需求(便于追查到需求)等等。
若ESB无法满足某些性能要求,可以采用点对点的方式调用,但要注意加入服务调用失败的监控点处理代码。

不知道你说的P2P的方式是不是可以结合JMS来完成,因为JMS中也提到了通过Queue的方式来实现P2P的消息发送,当然这里需要发送的消息就是一些业务数据。
21 楼 ltian 2011-08-09  
不好意思,借你地盘胡乱发挥了一些,请恕罪。
20 楼 ltian 2011-08-09  
你谈到的智能电网和物联网,我认为并非一个概念,其实智能电网可以看做一个物联网,从系统工程的角度看,智能电网是由若干具有电气接口和信息接口的执行者连接在一起组成的系统。 这里的执行者可以是人、组织、计算、设备或者程序。比如说,在智能电网里面,变压器可以说是一个执行电压转换业务的执行者,而计费程序可以看做是为客户提供计费服务业务的执行者。
随着物联网的发展,每个连接到智能电网里面的系统都应具备自我描述能力,包括我是谁,我能做什么,我现在工作的怎么样。随着这一趋势的发展,对我们开发人员来讲,以后通过人机界面录入的信息会越来越少。系统之间自动信息交换的能力将会逐步增强,因此基于公共语义的自动数据交换(ADE)产品的作用会逐渐凸显。
19 楼 ltian 2011-08-09  
上一个回帖是说单单从技术角度说ESB可以完成系统集成其实是缺少了公共语义模型这一关键要素,而带来实际的困难。
本回帖主要针对你提出的第二个问题:
大批量的数据同步,一般来说需要其他的工具,比如ETL等,若ETL可以将启动这些导数据的过程包装成服务,注册到ESB上也是一种很好的方法。若ETL工具无法包装为服务。那么手工编写触发导数据过程的服务,当数据同步完成后,向任务发起者发出一个消息即可,总之,大批量数据导入不宜采用ESB,但ESB可以作为一个传话筒,真实的数据流传不通过ESB。
18 楼 ltian 2011-08-09  
ESB是一种支持系统集成,或者说“互操作”的技术产品。
真正的系统集成=技术标准(诸如WebSevice)+语义标准(诸如电力里面的CIM模型)。
二者缺一不可。如果以上两个标准已经定义清楚了,使用点对点方式也可以很好地完成系统之间的集成,ESB只是可选项。
ESB集成与点对点方式相比,主要是可以较容易地实现服务的治理,因为服务不是直接调用,是通过ESB进行的,这时候,如果某个服务不能提供了,则ESB这个中介就会发现,从而实现某种程度的服务监控,当然还有其他一些服务治理功能,比如服务的抽取和发现等。
ESB只是容易实现治理,若点对点的服务调用失败时也能发出一些事件,则可以实现同样的功能。当然,服务治理需要对服务本身除技术之外的管理属性需要定义,可以用一个Excel文件也可以完成,这些管理属性包括服务的版本,拥有者,提供者,支持的业务集成点需求(便于追查到需求)等等。
若ESB无法满足某些性能要求,可以采用点对点的方式调用,但要注意加入服务调用失败的监控点处理代码。
17 楼 wang_scu 2011-05-31  
互联网企业的化 性能和使用可能要求高一些 pb rpc,thrift rpc就够了
can4you 写道
首先对该标题表示歉意,沿袭了“都别装了”系列,果断的做了一回标题党。

第一次来SOA板块发帖,在看过了http://www.iteye.com/topic/831144对ESB的精华帖讨论之后,结合目前项目的状况,想针对以下问题进行咨询,希望朋友给小弟出点建议:

首先说一下项目情况:智能电网物联网(Internet of things)项目,该项目拥有多个独立的子系统,各个子系统由各个“兄弟”公司负责开发,类似生产管理系统(PMS),B/S和C/S的都有,可以说是异构独立的系统,业务基础数据各自子系统都有对应的数据库,现在我所在公司负责2个项目:

1. 物联网项目其中一个子系统A的开发,也是PMS系统,目前已经进入开发后期,基础功能也已经开发完毕;
2. 针对项目子系统(包括A)的业务数据,搭建一个综合展示平台,展示各子系统(A,B,C,D...)的核心数据,要求数据实时、高效、安全的展示。

物联网,说白了就是炒作一个概念(没有贬低的意思),我接触到的部分主要还是使用有源/无源传感器自动采集数据,自动(主动推送或主站请求)传输到主站,我们接受主站的数据进行分析,处理,展示。

现在问题来了:

1. “领导”要求使用ESB(企业服务总线)来将各子系统间的通信做到集中、规范、统一管理,但是目前项目组都没有人有ESB方面的经验 ,第二个项目一直进展不顺利,目前只是通过webservice来获取自己开发的A系统的数据进行处理和展示。如何将自己开发的系统A和其他子系统的服务接口和ESB关联起来?

2. 综合展示平台有一个中心数据库,如何保证该数据库和其他子系统的数据库之间数据的同步实时性,因为展示功能有时候必须是实时的,比如系统B刚更新某个列表的数据,展示平台必须同步展示,B系统数据如何自动推送到中心数据库?

希望朋友们给点建议,拍砖,指教都行,谢谢。

16 楼 eredlab 2011-05-31  
<p>
</p>
<div class="quote_title"> <span style="">kimmking</span>写道</div>
<div class="quote_div">ESB必定要支持 ws/jms/tcp 这些基本的东西~ <br>MQ可以看做是一个退化的ESB <br><br>ESB的关注点是集成,是解耦和整合,而不是开发的视角。 <br>ESB要做的是把集成和业务本身区分开来。把涉及到集成的部分工作,从业务系统里提出来, <br>放在esb这种的集成层来做。 <br><br>ESB改变系统集成的方式,同时改变系统间的连接关系。从网状的结构到星形结构。 <br>把不同位置的服务和资源,整合到一起。对应用透明化。 <br>在esb与系统间,esb需要提供丰富的adapter来实现各种方式的消息接入接出。 <br>在esb的内部,消息通过统一的组织管理方式和可编排的中介方式,来实现消息的流程编排、数据转换、协议转换和路由。同时提供消息的安全、监控、流控、QoS和系统的水平垂直扩展性等等。。。 <br>... <br>... <br><br>这些都是ESB需要具有的能力。 <br><br>but现实是,目前大部分用ESB的场合,都是把ESB作为 一个ws的代理来用的。用的有点鸡肋。~ </div>
 圣经啊,一字不漏的抽在笔记本上了 :)
15 楼 ray_linn 2011-05-31  
。。。。物联网,无非用点modbus组网就好了,搞什么ESB?
14 楼 k.y 2011-05-31  
你们老板给的方向也没错,对你们比较实际的是设计的时候多想着面向消息的设计方式。这东西小项目小公司用起来反而麻烦。就像用设计模式写一个helloworld一样。

跨国那种大公司,业务复杂,变化快的公司,这种公司还用得到。

你们现在服务有了,无非就是管理一下消息的流向,服务的发现这种。加入ESB能使你们以后扩展有利。

加中间层这种东西都会牺牲一定的性能了,就看你们怎么取舍,是要扩展还是要性能。当然像helloworld这样的程序不扩展也罢。

对个人发展还是有用的。
13 楼 lkj107 2011-05-31  
感觉你们的项目弄个portal就可以实现了
12 楼 kimmking 2011-05-31  
F.U.C.K 写道
ESB主要应用在异构系统中消息的交换,路由等,是由JMS规范所实现的一种商业消息中间件(MOM)。

去读《JMS 消息服务》一切都会明白。。。。

地址:http://book.51cto.com/art/201001/178449.htm


ESB必定要支持 ws/jms/tcp 这些基本的东西~
MQ可以看做是一个退化的ESB

ESB的关注点是集成,是解耦和整合,而不是开发的视角。
ESB要做的是把集成和业务本身区分开来。把涉及到集成的部分工作,从业务系统里提出来,
放在esb这种的集成层来做。

ESB改变系统集成的方式,同时改变系统间的连接关系。从网状的结构到星形结构。
把不同位置的服务和资源,整合到一起。对应用透明化。
在esb与系统间,esb需要提供丰富的adapter来实现各种方式的消息接入接出。
在esb的内部,消息通过统一的组织管理方式和可编排的中介方式,来实现消息的流程编排、数据转换、协议转换和路由。同时提供消息的安全、监控、流控、QoS和系统的水平垂直扩展性等等。。。
...
...

这些都是ESB需要具有的能力。

but现实是,目前大部分用ESB的场合,都是把ESB作为 一个ws的代理来用的。用的有点鸡肋。~

11 楼 can4you 2011-05-31  
F.U.C.K 写道
ESB主要应用在异构系统中消息的交换,路由等,是由JMS规范所实现的一种商业消息中间件(MOM)。

去读《JMS 消息服务》一切都会明白。。。。

地址:http://book.51cto.com/art/201001/178449.htm


谢谢推荐
10 楼 can4you 2011-05-31  
给太阳洒水 写道
朋友,ESB本来就是个中间件,主要的功能真的就只能体现在消息的路由和转发上。你的第一个问题,只需要用ESB提供统一的消息入口,在ESB中对消息进行路由,再送到相应的子系统。第二个问题跟ESB其实没直接关系……


嗯,其实正是因为不了解,所以可能提问的出发点就在于搞清楚是否有必要用ESB,如何用,以及了解一下整体的思想,多谢指点。
9 楼 给太阳洒水 2011-05-31  
朋友,ESB本来就是个中间件,主要的功能真的就只能体现在消息的路由和转发上。你的第一个问题,只需要用ESB提供统一的消息入口,在ESB中对消息进行路由,再送到相应的子系统。第二个问题跟ESB其实没直接关系……
8 楼 F.U.C.K 2011-05-31  
ESB主要应用在异构系统中消息的交换,路由等,是由JMS规范所实现的一种商业消息中间件(MOM)。

去读《JMS 消息服务》一切都会明白。。。。

地址:http://book.51cto.com/art/201001/178449.htm
7 楼 can4you 2011-05-31  
hu437 写道
第一个问题:既然你们公司买的有ESB产品,那直接找厂家来培训就行了,如果你们现在的系统有比较全面的WebServices接口,和ESB接入是非常简单的事情

简单说就是将你们现在的系统接口配置到ESB上,有ESB统一对外提供,将原来的网状结构变化星状结构

ESB会提供各种适配器,来适应不同的协议如:webServices、JMS、http、数据库等,如果有特殊系统,如SAP等,可能需要别外购买适配器

第二个问题:我感觉ESB并不适合做这种事,ESB的主要作用是协议的转换、服务的路由等功能;而且ESB的性能并不高,你们要保证数据为之间的数据同步,可以考虑ETL工具


谢谢给出的建议!
6 楼 can4you 2011-05-31  
prowl 写道
LZ你们的系统需要ESB来集成?领导不懂你可以给他分析,领导不懂又不肯听别人分析那就没办法了。

至少就你的描述来看没看出你们系统有必要用ESB的必要,也许你没表述清楚。



每次开项目组会议,TM总是说领导有这方面的要求,我就无语。因为的确没方向感╮(╯▽╰)╭
我们的系统平台已经将Webservice封装的很好了,直接拿来用就好了,还干嘛套一个没用的壳子。
5 楼 prowl 2011-05-31  
LZ你们的系统需要ESB来集成?领导不懂你可以给他分析,领导不懂又不肯听别人分析那就没办法了。

至少就你的描述来看没看出你们系统有必要用ESB的必要,也许你没表述清楚。
4 楼 beeke 2011-05-31  
IBM帮我们一个客户做了一个ESB项目,结果,ESB就是起到了消息转发到功能

有个客户打算全面用ESB产品,即:所有的系统(10几个)只提供后台服务,前台也统一。
比如:后台有客户管理系统、销售系统、财务系统。
当前台输入一组数据,后台可能查询客户管理系统,写销售系统,写财务系统...

我比较疑惑:
1.性能如何保证
2.事务如何保证
3 楼 hu437 2011-05-31  
第一个问题:既然你们公司买的有ESB产品,那直接找厂家来培训就行了,如果你们现在的系统有比较全面的WebServices接口,和ESB接入是非常简单的事情

简单说就是将你们现在的系统接口配置到ESB上,有ESB统一对外提供,将原来的网状结构变化星状结构

ESB会提供各种适配器,来适应不同的协议如:webServices、JMS、http、数据库等,如果有特殊系统,如SAP等,可能需要别外购买适配器

第二个问题:我感觉ESB并不适合做这种事,ESB的主要作用是协议的转换、服务的路由等功能;而且ESB的性能并不高,你们要保证数据为之间的数据同步,可以考虑ETL工具

相关推荐

    ESB介绍和案例

    虽然ESB在很多场景下是有效的,但并非所有SOA项目都必须依赖ESB,有时过度依赖ESB可能会引入额外的复杂性。 综上所述,这些文档将从理论到实践,全面阐述ESB在企业集成中的重要性,以及如何通过ESB实现服务的高效...

    esb简单例子 学习esb的初学者 可以看看

    在提供的压缩包文件中,我们可以看到一系列与ESB相关的项目和组件,这将是一个很好的学习资源,特别是对于ESB初学者。下面,我们将详细讨论这些文件可能涵盖的知识点: 1. **ESBSimpleSamples.sln**: 这是一个...

    ESB技术学习教程,适用初学ESB人员

    Enterprise Service Bus (ESB) 技术是一种关键的中间件解决方案,特别适用于构建和整合分布式企业应用。ESB 的核心理念在于提供一个平台,使得不同的服务能够高效、安全地进行交互,实现服务导向架构(Service-...

    IBM ESB 介绍(IBM ESB Story)

    【IBM ESB 介绍(IBM ESB Story)】 在IT行业中,企业服务总线...无论是WebSphere ESB还是WebSphere Message Broker,都是IBM在中间件领域深厚技术积累的体现,为企业构建现代、敏捷的IT基础设施提供了坚实的基础。

    ESB

    **ESB:企业服务总线** 企业服务总线(Enterprise Service Bus,ESB)是企业级集成中的核心组件,主要用于解决分布式系统之间的通信问题。它提供了一种中间件架构,使得不同系统的服务能够互相交互,实现数据和服务...

    ESB原理及Mule ESB实践

    ### ESB原理及Mule ESB实践 #### ESB(Enterprise Service Bus)原理概述 **ESB**(企业服务总线)是SOA(面向服务架构)架构中的关键...无论是理论层面还是实际应用,掌握ESB原理及Mule ESB实践都是非常有价值的。

    mule -esb 源码

    《深入解析Mule ESB源码》 Mule ESB(Enterprise Service Bus,企业服务总线)是一款开源的集成平台,旨在简化企业级应用之间的数据交互。本文将围绕Mule ESB的源码进行深入探讨,揭示其核心设计理念与工作原理。 ...

    esb的简介和优点

    3、 准确性高:ESB 产品采用可配置的方式,所有跟数据操作相关的元素都由 ESB 产品来获取,用户只需简单选择即可,避免了错误的发生,可以达到百分之百的准确。 4、 丰富的协议:ESB 产品中包括各种常用或者不常用...

    ESB.NET架构方案

    **ESB.NET架构方案** 企业服务总线(Enterprise Service Bus,ESB)是一种软件架构模式,用于构建松散耦合、灵活的企业级应用系统。它作为企业内部不同系统间通信的桥梁,允许服务消费者和服务提供者之间进行高效、...

    C# ESB 分布式处理技术 Remote

    **C# ESB 分布式处理技术 Remote** 在软件开发中,企业服务总线(Enterprise Service Bus,ESB)是一种架构模式,它提供了一种在分布式系统中集成和交互服务的方式。C#中的Remote技术是.NET框架提供的一个关键组件...

    ESB 企业服务总线

    **企业服务总线(ESB)详解** 企业服务总线(ESB)是现代企业级IT架构中的核心组件,它作为一个集成平台,旨在促进不同系统之间的通信和数据交换。ESB的概念源于20世纪90年代末,随着企业对集成各种异构系统的需求...

    talend-ESB是什么?OSGI是什么?TOS-ESB相关组件介绍

    ESB(企业服务总线)是面向服务体系架构(SOA)发展而来的,它将传统中间件技术与XML、Web服务等新兴技术相结合。ESB在企业中扮演着基础的连接中枢角色,是构成企业神经系统的必不缺少的组件。它改变了传统的软件...

    ESB3实例代码及文档

    【标题】"ESB3实例代码及文档"指的是企业服务总线(Enterprise Service Bus,ESB)的第三阶段实现的相关实例代码和配套文档。ESB是企业级集成的关键技术,它提供了一种在不同系统之间交换信息和服务的方式,使得应用...

    JBoss ESB 开发指南

    《JBoss ESB 开发指南》是一本专为开发者设计的详实教程,旨在提供关于最新版本JBoss ESB(企业服务总线)的全面编程...无论是想要了解JBoss ESB的基础知识,还是寻求解决特定技术问题的方案,都能在这本书中找到答案。

    ESB开源系统mule

    开源ESB框架 Mule 2增加了基于Schema的spring xml配置,用于集成传统的web应用。表达式赋值被内建在运行时的消息传递中,因此头信息,Xquery或是其他的测试可以很容易的完成,不需要新建POJO或是这些活动转换器。

    Jboss ESB简介及开发实例

    一、Jboss ESB的简介 1、 什么是ESB。 ESB的全称是Enterprise Service Bus,即企业服务总线。ESB是过去消息中间件的发展,ESB采用了“总线”这样一种模式来管理和简化应用之间的集成拓扑结构,以广为接受的开放...

    esb 资料大全汇总

    ESB.rar ESB设计与最佳实践.ppt IBM ESB, WebSphere ESB and WebSphere Message Broker.pdf IBM_ESB_MB企业服务总线系统集成的核心平台.ppt IBMESB总体架构交流.ppt

    JBOSS_Esb学习资料

    【JBOSS_Esb学习资料】是一份涵盖了JBOSS ESB基础到进阶学习的综合资源包。JBOSS ESB(Enterprise Service Bus,企业服务总线)是Red Hat公司的开源中间件产品,它提供了服务集成和服务导向架构(SOA)的实现,允许...

    MuleEsb开源框架简介.pdf

    6. 与 Spring 框架集成:可以用作 ESB 容器,也可以很容易地嵌入到 Spring 应用中。 7. 使用基于 SEDA 处理模型的高度可伸缩的企业服务器。 8. 强大的基于 EIP 模式的事件路由机制等。 Mule ESB 的整体结构图: ...

Global site tag (gtag.js) - Google Analytics