SAP技术概述(三)
ESA (Enterprise Service Architecture)
简单的说, ESA是SAP 基于SOA(Service Oriented Architecture)的概念。主要目的通过WebService, 进一步提高SAP各业务系统间的统一性, 可重用性, 建议更方便的业务流程开发模式。主要手段为:
建立以Service为中心的开发模式。 因为service相对于组建或者其他软件封装技术来说, 有耦合度低, 跨Internet, 范围更广, 跨平台, 粒度更自由等优点。
在web service的基础上, 建立统一的service infrastructure(就是后面说到的ESI)。
建立所谓“模式-驱动”的开发模式。 其实, 我的理解是, 在强大的Service Infrastructure基础上, 有统一的数据类型来描述数据, 有Business Object来封装逻辑, 有UI pattern来封装UI, 有了这些, 就可以用一个简单的设计工具, 就可以快速的描述数据, 拼装业务逻辑, 建立UI, 这就是使所谓的“模式-驱动”的开发模式, 成为现实。这里指的开发, 不是简单应用的开发, 而是业务流程的开发。这各设计工具, 就是Visual Composure。
先介绍几个概念:
Service:
Service就是SOA中的service概念. 它提供了企业的某个业务功能。
ESA中有三种Service:
Core Service: 提供对Business Object的直接访问, 如retrieve, access, action…
Compound Service: 由对多个core service的call组成。
Enterprise Service: 也是一种compound service, 但是它是组成Business Process的直接service. 它提供企业的关键业务功能。
Business Object:
BO可以看作是Service的实现. Service的定义和其实现无关. SAP在ESA中主要用BO实现 Service的功能。
BO是结构化的. 每个BO之间由Association连接.但是只有一个root node。
一个BO可以有多个service interface, 一个service interface由多个operation组成
BO定义了一组Attribute和Operation. 每个BO都由一个Business Object provider class 实现, 它实现了一组Generic Interface。
BO的attirbute的type必须是Global Data Types(GDT)
Global Data Type
要统一service interface的定义, 就必须统一数据类型。
Business Process:
LDU(Logical Deployment Unit)
一个LDU由一组语义相关的componenet组成, 为了可以简单的activate/deactive一个业务功能。
Process Agent:
提供Message-Based的LDU之间的通信。
下图是ESA实现:
ESI(Enterprise Service Infrastructure) 为ESA的实现提供了基于Web Service的统一的Service定义。使“模式驱动”的开发成为可能。这种设计由需求开始, 定义服务, 服务驱动实现.
下图显示了ESA的开发模式: