读书人

都别装了ESB真的很简略么

发布时间: 2012-08-21 13:00:22 作者: rapoo

都别装了,ESB真的很容易么
首先对该标题表示歉意,沿袭了“都别装了”系列,果断的做了一回标题党。

第一次来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系统数据如何自动推送到中心数据库?

希望朋友们给点建议,拍砖,指教都行,谢谢。 ,第二个项目一直进展不顺利,目前只是通过webservice来获取自己开发的A系统的数据进行处理和展示。如何将自己开发的系统A和其他子系统的服务接口和ESB关联起来?

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

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

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

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

读书人网 >软件架构设计

热点推荐