本教程的目的是讓讀者理解:SAP Process Integration(如下簡稱SAP PI)是什麼。咱們不須要探究課題的本質,可是會討論SAP PI的架構和不一樣特色。本文只會覆蓋到PI的基本特色,而不是討論所有。html
本文連接:http://www.cnblogs.com/hhelibeb/p/7105070.htmlweb
對於任何業務——不管是大的仍是小的——都會有必需要執行的標準業務功能,好比:物料管理(MM),銷售與分銷(SD),財務(FI),人力資源(HR)等等。市場上有不少正在爲業界所使用的軟件。一個簡單的例子:若是你前往一個大型零售商店、旅店的下屬的小店面,而且它們運行在ERP系統之上的話,收銀機器能夠經由ERP生成銷售發票。瀏覽器
對於絕大多數業務實現來講,企業資源計劃(Enterprise Resource Planning,ERP)是一種能夠改善生產力和業績的有效途徑。SAP ERP是SAP 公司推出的的企業資源計劃,它是一個整合了組織的關鍵業務功能的集成軟件解決方案。基本功能包括:HR,MM,SD,FICO等,在SAP中它們叫作業務模塊。SAP把它們構建成產品而且在市場上銷售。有兩個(或者更多)模塊是不直接支持業務功能的,而是用於展示和集成。前者叫作EP(企業門戶)後者叫作PI(過程集成)。全部的業務模塊都是由ABAP開發的,然而這兩個模塊卻主要由Java開發。這些模塊不是可執行文件,而是須要部署在應用服務器上運行。緩存
在咱們進入主題以前,須要認識到這些點:服務器
當在一個大型的機構中實施SAP的時候,並非全部部件均可以放在SAP ERP中。其中的不少業務部件有它們本身的專有工具,可能極度複雜、而且沒法被替代。它們和SAP系統平行運行。它們叫作「遺留系統」。有必要把這些先前存在的非SAP系統和SAP集成起來,這就是SAP PI出場的地方。網絡
在大型的機構中,除了遺留系統以外,SAP ERP也不是由一個單一系統組成的,而是集成了多個系統,如CRM,SRM和FICO等。爲了處理這種複雜性,SAP引入了PI:一個能夠爲全部系統提供單一集成點的平臺。它不須要接觸已有的遺留系統的複雜網絡。這是一個能夠爲SAP和非SAP應用之間、企業內部和內部或者內部和外部之間提供平滑的端對端集成的強大的中間件。SAP PI支持B2B和A2A交換,支持同步和異步消息交換,而且包含了用於設計和執行PI的內建引擎。架構
SAP PI有着輪輻式結構,由中心和輻條組成;輻條鏈接外部系統,中心會在它們之間交換消息。源系統成爲發送者系統,目標系統成爲接收者系統。PI不是一個單獨的組件,而是不少個能夠根據集成場景靈活地一塊兒工做的組件的集合。該架構包含了在設計期間使用的組件、在配置期間使用的組件和在運行期間使用的組件。app
咱們能夠把PI劃分爲多個領域:框架
集成服務器是SAP PI的中心處理引擎。全部消息都在這裏以一致的方式處理。它包含三個獨立引擎:異步
集成引擎能夠被看作是中心,而適配器引擎則是輪輻。
關於業務處理引擎,本文會晚些解釋。
集成構建器是一個用於訪問和編輯集成對象的C/S框架,它包含兩個相關的工具:
兩者放在一塊兒,就是一般被成爲場景的集成過程。
系統規劃是數據中心的一個有關軟件和系統的信息的中心庫,簡化了系統規劃的管理。
在配置和監控中,能夠監控消息和適配器。
在PI初次發佈的時候,不是全部的組件都是在同一個平臺上構建的。集成引擎和業務處理引擎由ABAP構建,然而適配器引擎、集成構建器、SL、CM和Mapping Runtime由Java構建。所以PI須要Java和ABAP環境來運行,這被稱爲雙棧。
ABAP Stack | Java Stack |
|
|
可是在晚些的版本中,全部組件都是由Java構建的。某些雙棧組件已經廢除,或者在被修改後運行在Java棧。所以PI只須要Java環境來運行。這就是單棧。
(單雙棧各有利弊,可是本文不會涉及到相關內容)
集成引擎負責中央集成服務器服務,例如管線步驟:路由和映射。若是源消息結構和目標的消息結構不一樣,集成引擎調用Mapping Runtime,源結構會被轉換成目標結構。Mapping Runtime基於Java棧。集成引擎也能夠利用ABAP程序來轉換,這個基於ABAP棧。
消息能夠是兩種類型:
在PI中,消息由接口表示。
接口:XML格式的消息結構和說明。
基於上面的限制,會有三種接口類型:
在PI中爲每個業務需求配置集成邏輯(場景)的時候,集成引擎會以按部就班的方式執行配置。術語「管線」指的是在處理XML消息的時候執行的全部步驟。管線步驟包含:
你必定已經發現,集成引擎只使用XML-SOAP協議處理消息。可是若是咱們有一對發送和接收系統,它們的數據格式是不一樣的呢?這時咱們使用適配器引擎中的不一樣的適配器來將XML和基於HTTP的消息轉換爲這些系統須要的指定的協議和格式,或者相反。
如本文早先討論的那樣,SAP PI是輪輻式結構的,其中適配器引擎能夠被看做輪輻。咱們使用適配器引擎來鏈接集成引擎(中心)和外部系統。適配器框架基於適配器引擎,適配器框架是基於SAP J2EE Connector Archtiecture(JCA)的。適配器框架提供了用於配置、管理和監控適配器的接口。
在雙棧系統中,大多數適配器基於Java棧,只有兩個基於ABAP棧:
Java Stack |
RFC adapter, SAP Business Connector adapter, file/FTP adapter, JDBC adapter, JMS adapter, SOAP adapter, Marketplace Adapter, Mail adapter, RNIF adapter, CIDX adapter |
ABAP stack |
IDOC adapter and HTTP adapter |
在SAP PI從雙棧變爲單棧的時候,這兩個適配器成爲了Java棧的一部分。修改後的適配器引擎成爲高級適配器引擎,兩個適配器分別叫作IDOC_AAE和HTTP_AAE。
業務處理引擎(Business Process Engine)的職責是執行和持久化集成過程。
BPM表明跨組件業務處理管理(Business Process Management )或者ccBPM,也叫作集成過程。集成過程是指可運行的、跨系統的消息處理。在集成過程當中,你能夠定義全部須要運行的的處理步驟和相關的過程控制參數。業務處理管理提供了SAP Exchange Infrastructure,包含如下功能:
在運行期間,BPE執行集成過程。集成過程能夠只經過抽象接口發送和接收消息。
若是須要在PI中創建場景(scenario),要從主頁開始。
主頁界面以下:
主頁有如下四個工做區的超連接:
每一個超連接均可以打開對應的應用。這四個都是Java應用。ESR和ID是swing應用。它們基於JNLP,須要從瀏覽器啓動,因此第一次會花較多的時間來下載整個庫文件。可是從第二次開始,加載時間就會變短了。SL和CM是純web應用,運行在瀏覽器上。
使用企業服務庫設計和建立用於製做場景的對象。PI中的數據流是這樣的:
找到如下設計的選項:
PI使用集成庫來爲發送者和接收者設計消息結構,而且經過相應的消息結構開發接口消息,接口消息是與外部世界互動的一個點。數據類型和消息類型能夠用來對複雜接口進行簡化和模塊化設計。
操做映射容許源結構和目標結構之間的轉換。可是若是源結構和目標結構是相同的,那該過程可能會免於執行。和服務接口相似,消息映射用於簡化和木塊話複雜的操做映射。消息映射能夠經過四種方式進行:
圖形化映射是最經常使用的手段,由於它容許開發者圖形化地映射結構的屬性,以經過服務接口傳遞數據。對於其它三個,須要經過寫代碼來開發映射。若是是若是是單棧服務器,ABAP映射是不可用的。
(還有些其它方面,本文沒有涉及)
這裏咱們經過早先配置的ESR對象來製做管線步驟。這些步驟在運行期間經過集成引擎執行。
在咱們開始配置以前,咱們須要在DIR建立/導入如下的對象:
服務容許你處理消息的發送者或者接收者。根據你使用這些服務的目的,你能夠選擇如下的服務類型:
通訊通道決定了消息的內向和外向處理。消息會經過適配器從原生格式被轉換爲soap-xml指定的消息格式,或者相反。一般一個場景中會有兩個通訊通道:
必須爲服務分配一個信道。根據服務被視爲消息的發送者或接收者,信道也會有一個發送者/接收者角色,兩者必須匹配。不能夠把信道分配給集成過程服務。
管線步驟DIR中的經過如下四步配置:
發送者協議定義了發送者的消息如何轉換,所以它能夠由集成系統處理。它包含:
發送者協議相似於表中的主鍵。同一個規劃中不能夠有兩個相同的發送者協議。
接收者協議則定義了消息如何被轉換爲接收者能夠處理的形式。它包含:
使用接收者斷定來指定消息發送的對象。能夠經過定義條件以轉發消息,它包括:
接收者斷定包含2個類型——標準的和擴展的。使用哪一個取決於你想要手工指定接收者、仍是在在運行期間經過映射動態地指定。
接收者斷定和接口斷定——加在一塊兒一般稱爲邏輯路由。發送者協議和接收者協議——這兩個加在一塊兒一般成爲合做協議。
SAP System Landscape Directory(SLD)是系統規劃中的核心信息的提供者。在web頁面上你能夠發現如下鏈接:
SLD的界面以下圖所示:
產品和組件均可以叫作組件信息。
技術系統和業務系統都叫作規劃描述(Landscape Description)。
一個業務系統能夠配置爲集成服務器或者應用系統。
只有一個SAP系統中的客戶端能夠配置爲集成服務器。
如下信息從SLD提取到ESR和DIR中:
在目錄中用於定義消息發送者和消息接收者的業務系統。
配置和監控是監測的中心入口。它給予了你導航到集成引擎的功能,也能夠與計算中心管理系統(Computing Center Management System,CCMS)、SAP的進程監控設施(Process Monitoring Infrastructure,PMI )集成。
配置和監控的界面以下圖:
配置和監控支持如下監控功能:
處理能夠定義爲同步或者異步。
計算機的世界裏沒有異步通訊,全部的兩個系統之間的通訊老是經過方法調用進行(請求/響應操做)。因此如何使其異步呢?答案是,在調用者和被調用者之間引入一個第三方的系統。
假設存在兩個系統——A和B。A與B之間全部的通訊經過一個方法調用來進行,所以他們是同步的。咱們在AB間引入一個第三方系統,稱其爲中間系統I。A和I之間的通訊經過方法調用,I和B之間的通訊也是經過方法調用進行。可是A和B之間的調用能夠是異步的,由於A不須要等待來自B的響應。
這是異步通訊的基本原理,那麼什麼是中間系統呢?答案是隊列。A被稱爲調用者,B被稱爲接收者。來自於A的消息首先添加到隊列中,接着它再次被從隊列中拉出,而且發送給B。B的響應經過相同的方式返回給A。在某些狀況下,業務需求要求消息按照以A觸發的時順序發送給B,這種狀況下能夠依據先進先出策略。若是沒有這樣的需求,則消息會以隨機順序從隊列發送至B。
所以能夠把消息通訊分爲三類:
在PI中,咱們定義它們爲:同步——BE(Best Effort),異步且無序的——EO(Exactly Once),異步且有序的(Exactly Once in Order)。
確認是異步通訊的基礎,爲何?
對於同步通訊,系統A調用系統B時,若是B發送響應失敗,處理會失敗。可是在異步通訊中,系統A調用系統I而且系統I會調用系統B。因此假設A與I之間的通訊成功,然而I和B之間的通訊失敗。A該怎樣得知發送到B的過程失敗了呢?它經過確認來實現,該確認經過消息從A到B相同的路由方式,反向發送給A。若是從B到A的確認沒有成功抵達A,那麼A會認爲處理失敗,而且再次發送消息。
當咱們討論PI中的異步的時候,咱們會使用術語 ‘Exactly Once’ 來表示EO和EOIO。Exactly Onc的意思是一旦發送的消息不能再次發送。爲了實現這一特性,每個從A發往B的消息都會有一個確認。通訊的終端是適配器,所以適配器必須支持確認。
全部適配器都提供系統確認(system-acknowledgment),好比發送確認。支持同步通訊的適配器除了支持系統確認之外還支持應用確認。
因此在PI中存在着如下類型的確認:
在進行PI工做時,你會接觸到名詞——RFC。這是什麼?爲了創建兩個SAP系統之間的鏈接,好比R/3和PI,咱們建立了RFC目標。RFC目標須要配置如下內容:
鏈接類型描述了系統鏈接的類型,好比R/3,TCP/IP,內部鏈接等等..
建立的RFC目標能夠根據通訊類型分類。按照異步或者同步通訊能夠分爲:
(譯者注:此外還有bgRFC)
原文標題:SAP PI for Beginners