? 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中也应当包括于同一个页面中,为了避免命名空间的冲突,必须使用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