基于.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目前是2.5版,评估版有30天的试用期。我注册,并根据SAP的要求下成功。安装之后,感觉外观很丑陋。SAP的东西就是这样,有很好的理念和业务模型,但是技术上总是差强人意。
不过,我根据SAP的Manual尝试着做了一个Case,发现这个东西和一般的.Net Assembly没有什么区别,使用起来还是很方便的。