基于
.Net
的
SAP Portal
開發
最近因為項目的需要,必須考慮
intelliFlow.Net
與
SAP
的整合問題,于是抽空研究了一下,發現還真是有趣?,F整理一下,聊作記憶。
一、幾個基本術語
讓我們先了解幾個概念,在閱讀和查閱任何關于SAP Portal開發的資料之前,你必須了解它們。
(
1
)
Portal Development Kit for Microsoft .NET (PDK for .NET)
SAP
企業
Portal
開發包
PDK.Net
允許
VS.Net
開發者為
SAP
應用構建企業
Portal
組件。對于那些在
Microsoft.Net
平臺上有足夠投資的企業而言,這無疑是好消息,因為你將可以采用
SAP NetWeaver
技術通過
PDK.Net
極大的保護和重用你的
.Net
投資。
目前,
PDK.Net
支持
C#
和
VB.Net
兩種語言。
(
2
)
SAP Enterprise Portal
SAP Enterprise Portal
是一種應用集成平臺,它把企業的商業信息、企業應用和服務等等整合在一起,并且以獨立的基于
Web
的用戶界面的形式展示給操作者。
關于這一點,我以為與其它的
Portal
平臺沒有任何區別,比如
BizTalk
。
(
3
)
Portal Content
Portal Content
是一組
Portal
對象的統稱。這些
Portal
對象存儲在
PCD-----Portal Content Directory
中,
Portal
管理者可以構建、定義這些對象的外觀和操作,并且訪問后臺的
SAP
應用。
(
4
)
iView
iView
是
Portal Content
面對用戶的邏輯再現,
iView
本質上是一個可視化的組件,從物理的
Portal Content
獲取數據并且在
Portal
中感知和展示數據。
(
5
)
Portal Component
Portal Component
則是
iView
的支撐組件,它隱藏在
iView
的背后,所有展示給用戶的
iView
外觀的背后,都是經由某個對應的
Portal Component
從
Portal Content
獲取數據并且推介給
iView
展示。
(
6
)
Portal Component? VS.? iView
Portal Component
看起來與
iView
非常類似,但是請記住它們有很大的區別。它們之間的區別類似于“對象與對象的實例”的關系。
采用
PDK.Net
開發的
Code Object
(代碼化對象)被部署在企業
Portal
中,并且作為
Portal Component
引用。
當
Portal Content
管理者利用
Portal Component
構建自己的
iView
時,這些
Portal Component
被實例化。本質上,一個
iView
是一個
Portal Component
的實例。
(
7
)
Portal Application
Portal Application
是一組部署在同一個
Portal
上的邏輯上相關的
Portal Component
的集合。
(
8
)
Portal Services
Portal Services
是一組為
Portal Component
提供服務的
Portal Middleware
。
二、基于 PDK.Net 的 Portal 架構
考察上圖,我們會發現
PDK.Net
主要由三部分構成:
A、
????
設計時環境(
Portal Add-in
)
B、??????
運行時環境(
Portal Runtime
)
C、??????
Java-.Net
互操作框架(
Interoperability Framework
)
(1)
????????
設計時環境(
Portal Add-in
)
Portal Add-in
擴展了
VS.Net
的功能,使得
.Net
開發者可以構建、部署和調試
Portal Component
。所有的
Portal Object
(如
iView Profile, User Context
)和
Portal Service
(如
(Systems Landscape Service, User Management Service
)將通過
API
的方式提供給
Portal Component
開發者。
(2)
????????
運行時環境(
Portal Runtime
)
Portal Component
的運行必須依賴于
Portal Runtime
,它以
NT
服務的方式托管在
.Net
引擎中。
(3)
????????
Java-.Net
互操作框架(
Interoperability Framework
)
Java-.Net
互操作框架使得用
.Net
構建的
Portal
運行時與基于
Java
的
SAP
企業
Portal
之間可以通信。
通常在兩端各有一個組件:
Portal
端是
Java Portal
組件,
.Net
端是
Remoting
組件。很奇怪,它們之間居然不是采用
Soap
協議,我不知道
SAP
的技術人員是出于何種考慮。
(4)
????????
SAP .Net
連接橋(
SAP .NET Connector
)
通常
SAP
的
.Net Connector
是一個附加工具,該工具可以使得
.Net
的
Portal Component
連接到
SAP
的后臺系統,并且完全的訪問其業務對象庫。
三、
PDK.Net
的運行時環境
PDK.Net
的運行時環境包括
.Net Portal
運行時和
Java-.Net
互操作組件運行時
如下圖所示,運行時流程如下:
-
Portal
從
iView
接受請求。
-
Portal
檢測到這是一個
.NET iView
。
-
Portal
分發請求給
Java-.Net
互操作組件,因為只有該組件才能與
.Net Portal
運行時通信。
-
Java-.Net
組件傳遞請求給
.Net Portal
運行時。
-
如果該
iView
的請求需要訪問
SAP
后端系統,那么該請求將被傳遞到
SAP
的
.Net
連接橋。
-
SAP
的
.Net
連接橋連接到
SAP
后端系統,獲取或者更新數據。
-
結果返回到
iView
。
-
該
.Net iView
必須被
.Net Portal Runtime
處理和規則化(著色)后,傳遞給互操作組件。
-
處理結果通過互操作組件直接返回到
Portal
。
- 結果通過 J2EE Server 推送給瀏覽器。
注意:在設計狀態,其過程與此相同。
四、其它
PDK.Net
目前是
1.3
版,評估版有
30
天的試用期。我注冊,并根據
SAP
的要求下成功。安裝之后,感覺外觀很丑陋。
SAP
的東西就是這樣,有很好的理念和業務模型,但是技術上總是差強人意。
不過,我根據 SAP 的 Manual 嘗試著做了一個 Case ,發現這個東西和一般的 .Net Assembly 沒有什么區別,使用起來還是很方便的。