`
- 浏览:
639620 次
- 性别:
- 来自:
杭州
-
/**
*作者:张荣华(ahuaxuan)
*2007-9-20
*转载请注明出处及作者
*/
首先来一段名词解释吧:
名词解释:
B2B,business to business。(非电子商务中的b2b)
A2A, Application to Application。(可以翻译为应用到应用)
第二个概念好像不是很常见,我暂且用来表示企业内部的应用。B2B用来表示不同企业的应用。
Message Endpoint: 消息端点,接受消息的端点(我们把企业应用之间传输的数据可以称之为消息,那么接受消息的端点就是Message Endpoint)
Adapter: 这是一个非常重要的概念,这里的Adaptor可能是应该应用,或者是组件,为了消除不同系统之间的差异性而产生的。
看了几个基础概念之后,对消息比较熟悉的人大概都知道我在说什么了,没错,还是SOA,但是今天主要不是谈概念,而是架构。
我们知道随着社会的发展,企业内部和企业之间的交互变的越来越频繁,尤其是企业内部的系统。一个大型企业会用到大小不一的多个系统,他们可能是用不同的语言写的,运行在不同的机器上,有不同的系统平台,但是随着企业的发展,他们之间开始需要有信息交互。那么他们就需要被集成起来。
除了企业内部的系统集成,还有一种就是企业之间系统的集成,他们需要共享信息,或者他们通过系统来做生意,这些都是企业之间的系统集成。
下面我们来设定一个具体的场景:某企业内部有多个独立的系统,但是这多个系统需要有信息的交互,而且这多个系统之间的某一个系统还需要和其他企业的系统进行交互。看上去问题域非常明确,就是信息交换。我用visio画了一幅图来表示这种场景。
见图1
从图上看来,有四家公司有着业务上的联系,他们分别是A,B,C,D四家公司。A公司分别和B,C,D三家公司有业务往来。A公司内部有多个系统进行交互,我们就叫它A2A。显然A公司和B,C,D三家公司之间存在着不可避免的差异性,但是这不是我们要关注的重点,重点是A和BCD是属于哪种情况,很显然是B2B。那么在上面这张图中同时出现了A2A和B2B两种情况,这两种情况可以说是SOA中常见的场景了。
在这里我也不打算提供企业应用集成(EAI)服务器和企业服务总线方面的讨论,因为我也没有研究或使用过哪个EAI和ESB框架(但将来可能会使用,“将来的事将来再说“)。
我们可以把A公司的app称之为endpoint,其他应用的接入点称之为adapter(内容应用之间也有可能存在adapter,其他企业接入点绝大多数都需要adapter了)。如图中所示,这样我们就可以明确整个图的概况了。A的整个应用体系由endpoint和adapter构成。
我们可以看到在A2A的情况下有一个JMS server,还有轻量级远程调用,我也知道,很多公司在A2A的情况下使用了webservice,但是我认为这是不恰当的,太重量级了,不合适企业内部应用之间的调用(特殊情况例外,比如两个应用使用不同语言开发等等,有时候这种特殊情况是很多的,呵呵)。那么A2A的情况下用什么比较好,个人觉得如果都是构建于java语言,那么使用jms+httpinvoke或者jms+Hessian比较好。为什么,简单。两个都是java的应用使用xml作为通信的结构会带来不必要的复杂,而且会浪费大量的带宽,而且是大师推荐(该点仅作为参考)。
而在B2B的情况下,好像选择也不是很多,一般就是基于xml+http,还有就是webservice.(虽然还是xml+http),这种情况应该很常见,实际上我们可以看作是通过文件来作为消息传递,但是这个文件的格式被统一化,规范化了,就是xml。
在我看来图中所描述的业务模型就是A2A+B2B的结合体,当然我们也要区分他们,区别对待,因为不同的场景都技术的需求是不一样的,比如B2B的场景中我们可能需要security(我们可以现在ws-security),而A2A的场景中绝大多数不需要security支持(这也是jms规范中为什么没有定义security相关内容的原因)当然授权和验证不能属于security,授权和验证大多数remote invoke技术都是支持的。这里讲的security是指”对称加密”,”非对称加密”,”数字签名”,”双重签名”的支持等。
当然这所有的一切都是基于都业务和系统的了解,如果对业务不了解就不要谈架构了。说到这里我想批评一下自己,原来一直不重视业务,为了技术而技术,后来慢慢发现业务的重要性,可以这样说,如果对业务不熟悉就不能给整个系统作一个合理的架构,如果对业务不熟悉也不能写出好的代码来,因为代码就是对业务的抽象,不熟悉业务怎么可能写出好代码(当然并不是说熟悉了业务就一定能写出好代码,这还得看程序员得水平了)。
至于具体的技术的特性(如,jms,webservice,hessian等等)不在这篇文章的讨论之列,本文假设大家对这些技术都比较了解。
欢迎大家对技术的选择提出不同的看法。而且我觉得这篇文章是比较high level的,如果大家比较感兴趣,我会接下去和大家一起学习讨论具体的技术。
- 描述: 图1
- 大小: 39.3 KB
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
综上所述,《EAI企业应用集成操作手册》为用友ERP-U8普及版的用户提供了全面的数据交换解决方案,涵盖了从基础档案到复杂业务流程的数据交换需求。通过该手册的学习,用户能够更好地掌握如何利用EAI工具来提升工作...
本文主要探讨的是中国电信业务支撑系统中企业应用集成(Enterprise Application Integration, EAI)的架构规划,以及IBM提供的相应解决方案。EAI在电信行业中的应用旨在解决各业务系统之间的信息孤岛问题,实现高效...
企业应用集成是企业的一项基本需求,即让企业内部及合作伙伴的不同应用程序能够无缝、可靠地进行通信,从而实现业务目标。无论应用程序所处的平台或地理位置如何,都需要实现这一点。可以说,业务需求永远不会消失,...
### iWay平台:商务智能中间件与EAI解决方案 #### 一、iWay Software概述 iWay Software由Information Builders在2001年2月7日正式宣布成立,是一家专注于加速企业电子商务集成的专业软件公司。其前身是...
尽管市场上存在多种面向服务集成的解决方案,但其中很多采用的是非标准技术,导致技术专有化且缺乏灵活性。2005年,SUN公司提交的JBI(Java Business Integration)1.0版参考实施技术规范(JSR-208)获得JCP社团批准...
在实际应用中,基于消息路由器的企业应用集成解决方案,可以支持各种不同类型的消息传递,包括同步和异步消息、点对点和发布/订阅消息等。这些消息传递机制可以用来支持业务流程的不同需求,例如,处理企业间或企业...
这在多系统协同工作或构建复杂的企业级解决方案时尤其重要。在本实验中,我们可能会使用API接口、消息队列、Web服务或其他中间件技术来实现这种集成。 中间件是应用集成的关键组件,它充当桥梁,允许不同系统之间...
【描述】:本文深入探讨了企业应用集成(EAI)和Web服务的概念,强调它们在集成异构系统中的作用,以及如何利用Web服务改善EAI解决方案。 【主要内容】: 企业应用集成(EAI)是解决企业内部不同系统间通信问题的...
EAI解决方案形式多样,包括用户界面集成、数据集成、业务流程集成、函数/方法集成等。 #### 数据集成概述 数据集成主要发生在企业内部数据库和数据源级别,通过数据移动或全局访问局部数据源来实现。它是目前最...
- **微软工作流解决方案白皮书.docx**:深入介绍工作流解决方案的技术原理、应用场景和最佳实践。 - **微软工作流解决方案技术手册.docx**:面向技术人员,详细阐述工作流的开发、配置和维护。 - **微软工作流管理...
企业服务总线(Enterprise Service Bus,ESB)是一种中间件解决方案,旨在解决企业内部不同系统间集成的复杂性。它以消息传递为核心,通过标准化的消息格式和协议,实现不同应用程序和服务之间的通信。在本文中,...
Siebel EAI(Enterprise Application Integration)是Siebel Systems为实现企业内部不同应用系统间的数据集成而设计的一套解决方案。它主要包括两个核心组件:适配器(Adapter)与传输(Transport)服务。通过这些组件,...
TurboCRM EAI-U8是TurboCRM系列产品的一部分,旨在提供企业级的客户关系管理解决方案。TurboCRM EAI-U8集成了多种功能,例如客户信息管理、销售管理、市场营销管理等。 初始配置 在使用TurboCRM EAI-U8之前,需要...
本文将基于给定材料中的内容,详细探讨企业应用集成的关键问题——用户认证、单点登录和应用授权,并提出具体的解决方案。 #### 1. 前言 电信运营商在长期的信息化进程中构建了许多支撑企业运营的IT系统,这些系统...
企业IT规划设计解决方案是现代企业适应全球化竞争和市场变化的关键手段,其核心理念在于流程化、平台化和标准化。首先,流程化强调打破传统的部门视角,实施全公司的流程化管理,以端到端流程为核心,各部门按照职责...