EAI概述,需求,功能,技术要点----1. EAI的原始需求

时间:2023-02-04 11:19:07
 

EAI概述,需求,功能,技术要点

1.       EAI的原始需求

2.       需要解决的问题

3.       EAI平台软件

4.       EAI项目开发过程

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

1.       EAI的原始需求

1.1 企业应用系统的构成因素

企业的信息化发展是一个渐进的过程,从最初的大型机系统到现在的SOA 漫长的时间内,使用了各类各样的机器,平台,程序语言,数据格式,设计开发策略。在一个企业中(如果企业长命的话),通常都会存在很多由这些不同种类的元素构建的千差万别的系统。

 

1 构成企业信息系统的元素

元素

种类

说明

机器

主机系统MainFrame, UNIX工作站,PC 嵌入式设备

对于应用软件而言,机器的差别已经被程序语言和操作系统屏蔽

操作系统

ZOS, UNIXLinux, Windows, Symbian

单片机可以不使用操作系统

计算机编程语言

汇编,Cobol, C, C++, Java, Python, Ruby

不同语言中的数据类型定义可能都是不一样的

远程方法调用技术

RMI, CORBA,COM,EJB,Web Service

这些技术的调用机制都比较类似

数据格式,

纯文本,XML

不论在内存里,文件中,结构数据的存储都需要有预定义的格式

行业数据协议

ebXML, FIXML , ISO 20022

这是数据语义层面的协议,针对不同行业定义在行业内统一的数据模型

数据存储

文件,数据库

数据库也是使用文件来保存数据

设计开发策略

面向过程,面向对象,面向组件,面向服务

有一个目标贯穿这些方法的发展, 就是提高程序或者系统的复用性

 

 

 

 

1.2 系统互联的接口方式

这些系统自成一派,彼此或有星点联系,或者老死不相往来。系统互联接口的几种方式如下。

2 程序互联接口方式

互联接口方式

使用技术

耦合性分析

进程间通信

信号灯,管道,文件锁

彼此会影响程序的流程

程序方法调用

调用程序API 远程方法调用

API的功能,输入输出数据的改变会影响API的调用方

数据共享

共享内存,文件,数据库

数据格式,数据模型的改变对互联的系统都会造成影响

网络传输

TCP, HTTP, 消息中间件

通信协议,数据格式,数据模型的改变会造成影响。 使用消息中间件是现在最通用的程序互联的传输层方式。

组件,服务调用

CORBA,COM,EJB,Web Service

组件和服务调用技术提供了耦合性最小的系统互联接口方式

 

1.3 数据的差异

其中各个系统数据的差异有三个层次

3 数据差别的三个层次

数据差异的层次

描述

技术

数据类型

基本数据类型,复杂数据类型定义

不同程序语言可能有不同的数据类型定义

数据格式

内存,网络或者文件中的结构数据存放格式。不同的程序语言对内存中的结构数据有自己的数据格式,网络通信程序都有私有的线上数据格式。应用程序可以定义私有的数据序列化格式,用来把结构数据存放在文件中。

纯文本,XML

数据定义

这是数据的语义,即各个数据定义代表什么含义。各个行业针对本行业内部的各种实体和操作,可定义相应的数据协议规范,方便行业应用系统的互通互联

ebXML, FIXML , ISO 20022

 

1.4 传统的应用集成方式

面对如此纷杂的IT系统, 不论是管理维护,还是基于已有系统开发一个新的产品或系统,都会是一项相当复杂难以控制的任务。 对于一个实施企业信息化工作在5—10年阶段的企业,这种情况十分常见。 事实上,对于这些企业现在面对很多新的需求,需要基于已有的系统的功能来实现新的业务需求。新系统需要跨很多已有系统或者第三方套件,平台,或者通过调用API 或者通过网络通信,或者通过数据库同步,多种方式连互联互通。 在没有EAI平台的帮助时,传统的开发实现方式如下.

 

1 传统方式的集成项目开发

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

 

 

EAI概述,需求,功能,技术要点----1. EAI的原始需求

 

如图所示我们需要基于已有系统实现一个新的业务需求,要按照即定的流程分别调用系统123的方法,得到最终的结果。在新的实现里,需要调用三种不同的API, 并且要在各个系统间做数据转换。 概括一下,为实现新的业务,我们将面对:

(1)       各个系统的不同接口,可能是不同程序语言的API, 消息,或者访问数据库。

(2)       不同系统的接口有不同的调用规范,即调用顺序,上下文关系,Session等。

(3)       不同的数据。包含上文提到的三个方面的不同。

(4)       新业务流程的编写。

我们需要了解三个系统的接口及其调用规范, 需要在新系统至系统1 系统1至系统2,系统1至系统3 系统2至新系统,系统3至新系统共5个端到端方向,在数据差异的三个层次上,做数据转化。极致情况下,需要在任意两个系统间做数据转换,假定系统数目为n 那么需要做的数据转换的次数为C2n=n(n-1)/2。对于n的平方的数量级而言,这种数据转换的工作量是极其大的。同时还需要使用程序语言硬编码实现业务操作流程,很显然这种方式在业务流程经常发生变化时,更新的效率低下,同时也难以保证程序的可靠性。

综上所述,我们使用传统集成开发方法实现跨多种子系统,多种第三方软件平台的项目时,会遭遇开发工作量巨大,程序复杂难以管理,系统复用性差,扩展性差等问题。 这急需有一种新的集成开发方法, 新的集成开发平台来简化这些工作。 这就是EAI的需求由来。