联通内部门户技术规范 下载本文

? Delete类接口:删除目录项

? Modify DN类接口:重新命名一个目录项或将一个目录移动到新位置。 8.1.6.3 接口的规范

对于成熟的软件要有成熟的接口模式、文件与配置办法 对于其它应用,要求有具体的接口函数、对象,编码方式。 8.1.7 编码原则 8.1.7.1 概述

门户的主要业务功能由门户小应用程序(portlet)提供,门户应用的开发实际上可以归结为一系列portlet的开发。

Portlet是Java Servlet的一个扩展,因此,portlet开发的很多方面与典型的Web应用开发是一样的。然而,Portal的一些独特特性,如在一个页面中展现多个portlet,portlet url,porltet页面流的控制,portlet之间的通讯等,使Portlet的应用模型变得更复杂。在进行portlet设计时,需要仔细的考虑,以充分利用portal的先进特性,并尽量简化应用。

编码规范部分指出了一些基本的portlet设计和编码原则,符合这些原则能在很大程度上实现代码的重用,并减少代码维护工作量,提高系统运行效率。在门户系统的设计和编码中应符合这些原则,以避免不必要的损失。 8.1.7.2 Portlet设计原则

在进行portlet设计时,将portlet分成三个部分:模式、视图和控制(MVC)。这种设计遵循标准的面向对象设计模式,每一个部分都是自包含并模块化的。它能使维护、扩展更加简单。

模式(model)是portlet所处理和展现的数据。通常的数据格式包括:xml文档、数据库表或者其他的Web应用。模式中访问数据的Java程序应该无需知道数据的具体形式就能实现数据访问。理想情况下,model应该能够进行修改,而不会影响portlet应用的其他部分。

视图(view)是数据模式的展现部分。View通过模式来实现对于数据的访问,因此它应该无需知道数据的详细细节。视图无需关注数据模式之间的关系。视图中不应包括处理数据的业务逻辑。与模式类似,视图应该相对独立并可修改。可以变更视图,而无需影响业务逻辑或者模式。推荐使用(Java Server Page)jsp来实现视图,对于需要在多种设备上展现的信息,可以考虑使用XML+XSL来实现。

控制(Controller)将Model和View连接在一起,并定义portlet中交互的方式。控制处理从view中获得的用户请求,并将它传递给适当的模式对象来完成请求所对应的操作。操作的结果由控制器使用适当的视图对象完成展现后发回给用户。

控制位于Portlet的Java类中。它通过模式访问数据,通过View展现数据。在设计portlet时,MVC是一个最为重要的设计原则。Portlet通常都会变化得很快,新的portlet都会在很大程度上以原有的portlet作为基础,如经常需要让一个portlet连接到一个新的数据源,展现该数据源中的数据;增加新的标记语言,支持移动设备的访问;扩展portlet,以支持个性化等。

8.1.7.3 Portlet开发原则

33

在本部分列出了在进行portlet开发应当遵循的一些原则,这些内容可能影响到系统的可实现、稳定性、可维护性和效率。

Portlet开发原则包括:portlet编码原则、jsp编码原则、数据管理的原则以及会话对象适用原则四个部分。

Portlet编码: 1) 避免使用类实例变量:Portlet要求对于所有的请求处理程序都是线程安全的,

将变量存放在实例变量中并由多个用户进行访问可能引起冲突。

2) 向视图(jsp)传递数据时,采用java bean的方式传递。 3) 充分利用portlet日志机制,以便在出现问题时能够追踪并定位问题。 4) 在代码中包括文档注释。 5) 使用数据访问服务(ContentAccessService)访问外部的内容。 6) 缓存portlet setting对象和portlet data对象,避免在session中保存在以上

两个对象中存在的全局数据。

7) 采用Struts,Struts是一个优秀的架构,可以实现在portlet和servlet之间简

单的实现移植。

JSP编码原则: 1) JSP中只能包含HTML的片段:portlet所提供的内容是最终展现的页面的一部分,

因此它不能包含,和等标记。在JSP中也应当包括等用于内容组织和格式化的标签,以保证内容的格式化的组织,避免混乱。 2) 设计视图时考虑在同一个页面上有其他的portlet。 3) 用java风格的注释取代html风格的注释。 4) 使用portlet风格的类声明,以保持界面风格与门户管理员的设计相统一。 5) URI,HTML元素的名称,JavaScript资源必须采用命名空间命名。多个portlet位

于同一个页面中,为了避免命名空间的冲突,必须使用portlet api进行名称的编码。 6) 降低对于JavaScript的依赖,在不同的浏览器中,javascript实现的差别较大,

为了兼容多个浏览器,应该尽量减少对于javascirpt的使用,尤其要避免应用的执行完全依赖于javascript。 7) 避免使用弹出式窗口:Portal是基于状态的,只能够通过portal和portlet知道

你的操作,一旦弹出新的窗口,portal就对该窗口中的行为失去了控制。 8) 尽量使用taglib。

数据管理原则:

1) 使用portlet settings对象保存与用户无关的配置数据。 2) 使用portlet data保存与用户相关联的配置数据。

3) 使用Servlet Configuration保存静态的初始的配置信息,如保存安装目录或者路

径信息。 会话管理: 1) 限制使用portlet会话来保存portlet状态信息。Portlet Session是一个很方便

用来保存全局数据的地方。然而这样做可能会带来比较大的系统开销,无论是内存还是cpu资源。对于一些比较方便重建的数据,或者比较大的数据对象,建议在需要时重建或者将其保存在数据库中以供访问。

34

2) 3) 4)

如果一个portlet需要支持匿名访问,不要使用portlet session。

请求一个已存在的portlet session,而不是创建一个portlet session。 通过<%@page session=”false” %>避免在jsp中创建临时的会话。

8.2 门户对被集成系统的技术要求

对于需要在门户中进行接入,实现集成的各水平应用系统,需满足下列技术要求: 8.2.1 C/S接入系统技术要求

对于中国联通公司现有的C/S架构需接入门户的系统,需完成系统架构由C/S变更为B/S架构,然后遵循B/S架构接入系统技术要求进行系统接入。 8.2.2 B/S接入系统技术要求

对于B/S架构接入系统,在接入时需遵循以下技术要求:

1. 修改系统界面,使接入系统或接入系统模块满足中国联通企业信息门户系统VI规

范。

2. 基于IBM Domino Server平台基础开发的应用系统需按照中国联通公司统一目录要

求进行用户管理。其他接入系统预留统一登录、统一认证接口。接入系统需支持Form-based、HttpHeader、LTPA此三种方式的一种。

3. 使用iFrame进行整体接入或单个模块接入的系统需提供接入URL。

4. 对于需要实现和门户系统在数据级别的通讯的系统,原则上系统需要进行自身修

改,使之支持iFrame接入方式。如无法完成修改,系统需提供业务数据传输接口,或提供数据的文件传输。如使用XML文件传输、文本文件传输、WebServices传输等传输方式。

8.2.3 域内应用系统集成的实现方式 8.2.3.1 与邮件系统集成

i.

与Exchange邮件的集成 1. 用户管理接口实现方式

邮件系统的用户注册库使用的是微软的活动目录(AD),在集成时采用与目录系统用户数据完全一致的数据结构,AD用户数据和目录用户数据通过用户帐号实现关联;用户数据由目录系统统一管理,不建议管理员在AD上进行用户组织增、删、改的功能;当目录数据发生变化时通过IDI装配线把数据的变化写入AD。 2. 展现集成方式

邮件系统的展现采用调整邮件系统的页面展现风格,通过iFrame在门户内展现。 3. SSO的实现方式

35

ii.

8.2.3.2 1.2.8.2.3.3 1.邮件系统的SSO采用Form-based的方式实现,由于在Exchange登录时必须要用户密码,在TAM为邮件系统创建GSO帐号,GSO的帐号名为目录系统的用户名,密码为目录系统的用户密码。 与domino邮件的集成

1. 用户管理接口实现方式

如果邮件系统采用IBM Domino Server作为应用服务器,邮件用户使用Domino LDAP进行管理,在集成时通过IDI将协同办公系统主用户目录(IDS)中用户信息同步到Domino LDAP中,保证Domino LDAP存储的邮件用户信息与协同办公系统主用户目录信息相同。 2. 展现集成方式

通过webPage Portlet(iFrame)封装各模块URL实现页面展现。

3. SSO的实现方式

LTPA令牌信任机制或者Form-based方式。

与公文系统集成

基于.net架构公文系统集成

1. 用户管理接口实现方式

办公系统的用户注册库使用RDBMS,在集成时采用与目录系统用户数据完全一致的数据结构,办公用户数据和目录用户数据通过用户帐号实现关联;用户数据由目录系统统一管理,办公系统屏蔽掉用户组织增、删、改的功能;当目录数据发生变化时通过IDI 装配线把数据的变化写入办公系统。

2. 展现集成方式

在办公系统通过门户统一展现,展现集成的方式有两种:1、开发新的portlet重新实现某些应用的展现逻辑;2、调整办公系统的页面展现风格,通过iFrame在门户内展现。 3. SSO的实现方式

访问控制系统(TAM)通过http header的方式与办公系统实现SSO。

与Domino的集成

1. 用户管理接口实现方式

如果公文系统采用IBM Domino Server作为应用服务器,公文系统用户使用Domino LDAP进行管理,在集成时通过TDI将协同办公系统主用户目录(IDS)中用户信息同步到Domino LDAP中,保证Domino LDAP存储的公文系统用户信息与协同办公系统主用户目录信息相同。 2. 展现集成方式

1)通过webPage Portlet(iFrame)封装各模块URL实现页面展现。 2)开发新的portlet重新实现某些应用的展现逻辑。 3. SSO的实现方式

LTPA令牌信任机制或者Form-based方式。 与经营分析系统

用户管理接口实现方式

36