您的位置:首页 > 大数据 > 人工智能

SOA 和 EAI概念

2012-11-23 11:05 316 查看
SOA介绍

面向服务的体系结构(service-oriented architecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。

这种具有中立的接口定义(没有强制绑定到特定的实现上)的特征称为服务之间的松耦合。松耦合系统的好处有两点,一点是它的灵活性,另一点是,当组成整个应用程序的每个服务的内部结构和实现逐渐地发生改变时,它能够继续存在。而另一方面,紧耦合意味着应用程序的不同组件之间的接口与其功能和结构是紧密相连的,因而当需要对部分或整个应用程序进行某种形式的更改时,它们就显得非常脆弱。

  对松耦合的系统的需要来源于业务应用程序需要根据业务的需要变得更加灵活,以适应不断变化的环境,比如经常改变的政策、业务级别、业务重点、合作伙伴关系、行业地位以及其他与业务有关的因素,这些因素甚至会影响业务的性质。我们称能够灵活地适应环境变化的业务为按需(On demand)业务,在按需业务中,一旦需要,就可以对完成或执行任务的方式进行必要的更改。

  虽然面向服务的体系结构不是一个新鲜事物,但它却是更传统的面向对象的模型的替代模型,面向对象的模型是紧耦合的,已经存在二十多年了。虽然基于
SOA 的系统并不排除使用面向对象的设计来构建单个服务,但是其整体设计却是面向服务的。由于它考虑到了系统内的对象,所以虽然 SOA 是基于对象的,但是作为一个整体,它却不是面向对象的。不同之处在于接口本身。SOA 系统原型的一个典型例子是通用对象请求代理体系结构(Common
Object Request Broker Architecture,CORBA),它已经出现很长时间了,其定义的概念与 SOA 相似。

  然而,现在的 SOA 已经有所不同了,因为它依赖于一些更新的进展,这些进展是以可扩展标记语言(eXtensible Markup Language,XML)为基础的。通过使用基于 XML 的语言(称为Web 服务描述语言(Web Services
Description Language,WSDL))来描述接口,服务已经转到更动态且更灵活的接口系统中,非以前 CORBA 中的接口描述语言(Interface Description Language,IDL)可比了。

  Web 服务并不是实现 SOA 的惟一方式。前面刚讲的 CORBA 是另一种方式,这样就有了面向消息的中间件(Message-Oriented Middleware)系统,比如
IBM 的 MQseries。但是为了建立体系结构模型,您所需要的并不只是服务描述。您需要定义整个应用程序如何在服务之间执行其工作流。您尤其需要找到业务的操作和业务中所使用的软件的操作之间的转换点。因此,SOA 应该能够将业务的商业流程与它们的技术流程联系起来,并且映射这两者之间的关系。例如,给供应商付款的操作是商业流程,而更新您的零件数据库,以包括进新供应的货物却是技术流程。因而,工作流还可以在
SOA 的设计中扮演重要的角色。

  此外,动态业务的工作流不仅可以包括部门之间的操作,甚至还可以包括与不为您控制的外部合作伙伴进行的操作。因此,为了提高效率,您需要定义应该如何得知服务之间的关系的策略,这种策略常常采用服务级协定和操作策略的形式。   最后,所有这些都必须处于一个信任和可靠的环境之中,以同预期的一样根据约定的条款来执行流程。因此,安全、信任和可靠的消息传递应该在任何 SOA 中都起着重要的作用。

EAI介绍

EAI的基本概念
EAI(Enterprise Application Integration)——企业应用集成,最初字面理解为企业内部不同应用系统之间的互连,以期通过应用整合实现数据在多个系统之间的同步和共享。随着EAI技术的不断发展,认识它的内涵也越来越多,它已经被扩展到精力整合的范畴(Business Integration)。业务整合不仅要提供底层应用支撑系统之间的互连,同时要实现存在于企业内部应用与应用之间,本企业和其他合作伙伴之间的端到端的业务流程的管理,它包括应用整合、B2B整合、自动化业务流程管理、人工流程管理、企业门户以及对所有应用系统和流程的管理和监控待方方面面。对于要实施EAI的企业而言,EAI也是分层次的。对于如何划分和规范EAI层次的定义,业界并没有一个统一的标准,针对不同的企业,同样叫“企业应用整合”,其内容和层次可能就会存在一定的差异。对于各家EAI厂商,基于EAI理解的侧重点不同,也可以理解为不同的答案。
EAI的技术架构
EAI的四种类型
EAI有以下四种表现形式,形式逐渐复杂,难度逐渐加大:
数据集成:数据集成的目标是通过利用消息和数据转换工具进行集成,以一致、可重复的方式在数据库间安全、可靠地传输数据,使得企业的各种数据库中的数据是一致和同步的,从而建立企业范围的统一信息视图。
应用集成:应用集成是以数据集成为基础,利用集散(Hub)、星型或者总线等架构,使一个应用的数据和功能与其他应用的数据和功能协作。应用集成常常利用消息代理或者应用服务器,并需建立企业范围的应用接口模型。


业务流程集成:业务流程集成是以数据和应用集成为基础,按企业的业务流程来集成多个系统的数据和功能。业务流程集成不仅仅在系统间共享数据,而是进行企业级的数据管理。业务流程集成需要使用流程自动化的建模工具,并需建立企业级的业务模型。
外部集成:外部集成是指与客户、合作伙伴及供应商进行交互和整合。外部集成需要利用前面3个类别的EAI集成所建立的企业范围的应用,常常利用公共的网络集成设备(例如Internet),并利用XML等开放的数据标准。常见的外部集成包括B2B和B2C等。
EAI的六个整合层次
EAI涉及多个整合层次,任何的EAI导入都必须藉由外部协作、业务流程管理、数据转换、应用接口、中间消息服务和系统连接传输这六个整合层次的集成,并附以信息安全管理和系统管理及监控方可达成真正的企业集成。其中外部协作层和业务流程管理层属于业务层面,数据转换层和应用适配层属于接口层面,中间消息服务层和系统连接层属于中间件层面:
EAI的六个整合层次分别为:
层次1:外部协作层(Collaboration Layer)
层次2:业务流程管理员(Process Layer)
层次3:数据转换层(Transformation Layer)
层次4:应用适配层(Adapter Layer)
层次5:中间消息服务层(Messaging Layer)
层次6:传输层(Transport Layer)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: