SAP技術概述(三)
[2] ESI的組成
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的開發模式: