基于
.Net
的
SAP Portal
开发
最近因为项目的需要,必须考虑
intelliFlow.Net
与
SAP
的整合问题,于是抽空研究了一下,发现还真是有趣。现整理一下,聊作记忆。
一、几个基本术语
让我们先了解几个概念,在阅读和查阅任何关于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
没有什么区别,使用起来还是很方便的。