【ZT】基于.Net的SAP Portal开发

文章作者不詳,地址http://dev.21tx.com/2007/03/12/10784.html

最近因为项目的需要,必须考虑intelliFlow.Net与SAP的整合问题,于是抽空研究了一下,发现还真是有趣。现整理一下,聊作记忆。

一、几个基本术语

让我们先了解几个概念,在阅读和查阅任何关于SAP Portal开发的资料之前,你必须了解它们。

1Portal 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两种语言。

2SAP Enterprise Portal

SAP Enterprise Portal是一种应用集成平台,它把企业的商业信息、企业应用和服务等等整合在一起,并且以独立的基于Web的用户界面的形式展示给操作者。

关于这一点,我以为与其它的Portal平台没有任何区别,比如BizTalk。

3Portal Content

Portal Content是一组Portal对象的统称。这些Portal对象存储在PCD-----Portal Content Directory中,Portal管理者可以构建、定义这些对象的外观和操作,并且访问后台的SAP应用。

4iView

iView是Portal Content面对用户的逻辑再现,iView本质上是一个可视化的组件,从物理的Portal Content获取数据并且在Portal中感知和展示数据。

5Portal Component

Portal Component则是iView的支撑组件,它隐藏在iView的背后,所有展示给用户的iView外观的背后,都是经由某个对应的Portal Component从Portal Content获取数据并且推介给iView展示。

6Portal Component  VS.  iView

Portal Component看起来与iView非常类似,但是请记住它们有很大的区别。它们之间的区别类似于“对象与对象的实例”的关系。

采用PDK.Net开发的Code Object(代码化对象)被部署在企业Portal中,并且作为Portal Component引用。

当Portal Content管理者利用Portal Component构建自己的iView时,这些Portal Component被实例化。本质上,一个iView是一个Portal Component的实例。

7Portal Application

Portal Application是一组部署在同一个Portal上的逻辑上相关的Portal Component的集合。

8Portal 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互操作组件运行时

如下图所示,运行时流程如下:

  1. Portal从iView接受请求。
  2. Portal 检测到这是一个.NET iView。
  3. Portal分发请求给Java-.Net互操作组件,因为只有该组件才能与.Net Portal 运行时通信。
  4. Java-.Net组件传递请求给.Net Portal运行时。
  5. 如果该iView的请求需要访问SAP后端系统,那么该请求将被传递到SAP的.Net连接桥。
  6. SAP的.Net连接桥连接到SAP后端系统,获取或者更新数据。
  7. 结果返回到iView。
  8. 该.Net iView必须被.Net Portal Runtime 处理和规则化(着色)后,传递给互操作组件。
  9. 处理结果通过互操作组件直接返回到Portal。
  10. 结果通过J2EE Server推送给浏览器。

注意:在设计状态,其过程与此相同。 

四、其它

PDK.Net目前是2.5版,评估版有30天的试用期。我注册,并根据SAP的要求下成功。安装之后,感觉外观很丑陋。SAP的东西就是这样,有很好的理念和业务模型,但是技术上总是差强人意。

不过,我根据SAP的Manual尝试着做了一个Case,发现这个东西和一般的.Net Assembly没有什么区别,使用起来还是很方便的。

posted on 2009-01-05 09:56  巍巍边疆  阅读(578)  评论(0编辑  收藏  举报