面向门户的开发平台设计与实现.doc_第1页
面向门户的开发平台设计与实现.doc_第2页
面向门户的开发平台设计与实现.doc_第3页
面向门户的开发平台设计与实现.doc_第4页
面向门户的开发平台设计与实现.doc_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

分类号 密级 UDC 编号 研研究究生生院院 硕硕士士学学位位论论文文 面向门户的开发平台设计与实现 刘冬 指导教师 钟华 研究员 软件研究所 申请学位级别 硕士 学科专业名称 计算机软件与理论 论文提交日期 论文答辩日期 培养单位 软件研究所 学位授予单位 研究生院 答辩委员会主席 金 芝 摘 要 门户能够有效地实现异构信息之间的集成与协作,并为用户提供可定制、 统一且遵循规范的访问服务。随着信息化建设的深入,门户已经成为企业构建 新型办公环境的重要信息化工具。伴随门户更加广泛的使用和更加复杂的需求, 如何提高门户应用系统开发效率、缩短门户应用系统开发生命周期成了当前门 户领域的重点待解决问题。 开放式、整合式的软件开发平台框架是软件开发者在软件开发过程中应对 不断变化的软件需求、快速发展的软件开发技术、日渐增长的软件复杂度的强 有力工具。针对门户设计并实现一套高效开放的组件化软件开发平台,对于确 保门户用户体验、增强门户可用性、提升门户开发效率均有着重要意义。 论文从资源管理、部署和调试三个方面针对面向门户的开发平台进行设计 和实现。首先给出了构建面向门户的开发平台的关键技术和整体架构;然后从 门户应用工程开发的生命周期出发,给出了支持状态维护、资源生成和验证、 属性维护等自动化辅助功能的资源管理机制和模块设计方案;并以应用服务器 和门户服务器的部署流程分析为基础,提出了动态部署模型,设计了应用部署 模块;之后从门户应用的具体调试方式分析出发,设计了调试框架和服务器加 载机制,并基于门户环境下的具体调试问题,提出了应用调试模块的设计方案。 最后,论文给出了资源管理、部署和调试模块设计方案在 OncePortal 门户中间 件中的技术实现。 关键字:门户,开发平台,Portlet。 Design and Implementation of Portal-Oriented Development Platform Jiang Youyi, Directed by Prof. Zhong Hua Abstract Portals facilitate users to easily access information by integrating heterogeneous applications, services and data resources in a consistent way. With the development of in-depth information technology, Portal has already become an important information tool for the construction of new-style office environment. With more widely used and more complex needs of Portal, how to improve the efficiency and shorten the life cycle of Portal application system development become the key issues to be resolved. Open, integrated software development framework is not only the protection of its own vitality, but also a powerful tool for developers to cope with the changing needs of the software, the rapid development of the software development technology and the increasing complexity of software during the software development process. The design and implementation of a highly efficient component-based software development platform in Portal environment are of great significance of ensuring users experience, enhancing usability as well as improving development efficiency. This paper presents a design and implementation of Portal-oriented development platform, which is based on three main aspects including resource management, application deployment and application debugging. Firstly, the key technology and the infrastructure of development platform are discussed. Then starting from the life cycle of portal application development, the design of Resource Management Module is given, which contains functions including status management, resource generation, resource validation and attribute management. After that, the deploy process of Portal- oriented application is discussed, and the design of dynamic deploy model as well as Application Deployment Module are proposed. Then the paper gives the design of debugging framework and server-launching mechanism. After the discussion on key problems in Portal-oriented debugging environment is given, the paper proposes the specific design of Application Debugging Module. Finally, the implementation of OncePortal development platform is given, which is designed based on the three main modules discussed above including Resource Management Module, Application Deployment Module and Application Debugging Module. Keywords: Portals, development platform, portlet. 目 录 第一章 绪论1 1.1 研究背景1 1.2 论文的主要工作2 1.2.1 面向门户的开发平台核心技术和模块设计.3 1.2.2 OncePortal 开发平台的实现3 1.3 论文内容的组织4 第二章 门户与开发平台技术5 2.1 门户5 2.1.1 门户的概念.5 2.1.2 门户的功能和特点.5 2.1.3 门户的应用和系统结构.7 2.1.4 门户环境下的应用系统开发.10 2.2 开发平台10 2.3 面向门户的软件开发平台11 2.3.1 关键功能点分析.11 2.3.2 相关产品.13 2.4 小结14 第三章 门户开发平台中的资源管理技术.15 3.1 概述15 3.2 资源管理15 3.2.1 生命周期.15 3.2.2 资源管理.16 3.3 小结24 第四章 门户开发平台中的部署技术26 4.1 概述26 4.2 门户应用部署流程分析26 4.2.1 门户应用的部署流程.26 4.2.2 J2EE 应用部署模型27 4.2.3 门户服务器的部署过程.29 4.2.4 开发平台的部署关键问题分析.30 4.3 部署模块设计31 4.3.1 部署模块结构与设计.31 4.3.2 动态部署模型与设计.35 4.4 小结39 第五章 门户开发平台中的调试技术.40 5.1 概述40 5.2 通用调试框架设计41 5.3 门户环境下的调试技术43 5.3.1 门户调试的关键问题.43 5.3.2 服务器加载设计.43 5.3.3 门户服务器联接技术与设计.44 5.3.4 门户应用的动态重配.45 5.4 参数设计46 5.5 小结46 第六章 门户开发平台的实现.47 6.1 概述47 6.2 ONCEPORTAL开发平台.47 6.2.1 门户中间件 OncePortal47 6.2.2 Eclipse 开发平台48 6.2.3 OncePortal 开发平台50 6.3 实现细节51 6.3.1 总体结构.51 6.3.2 界面交互元素.53 6.3.3 内核子插件.55 6.3.4 界面子插件.58 6.3.5 核心逻辑实现.60 6.4 应用案例和特点分析65 6.4.1 应用案例.65 6.4.2 特点分析.67 6.5 小结70 第七章 结束语.71 7.1 工作总结71 7.2 进一步的工作72 7.2.1 面向门户的模型驱动软件开发支持.72 7.2.2 Web 应用开发框架的支持73 参考文献.74 发表文章目录.76 致 谢.78 第一章第一章 绪论绪论 1.11.1 研究背景研究背景 门户1系统提供了面向表示层的开放集成框架以及个性化、单点登录、内 容聚合等功能。它提供了基于 J2EE 平台的高度的集成技术,并且其可扩展性框 架结构能够适应不断变化的商业应用需求。门户系统根据实际的企业需求,重 点解决个性化访问与应用集成问题。 应用软件开发的生产力和效率不足,是促成开发平台及其技术出现的直接 原因。开发平台的引入旨在提供软件开发过程中生命周期的管理和工程的维护 功能,最大程度提高应用软件开发的生产力22。随着应用软件开发需求不断提 高,应用软件开发生产力不足与高软件开发复杂度的矛盾更加突出。在这种背 景下,开发平台已由最初仅包含编辑器、编译器和调试器的简单软件开发环境 发展到了今天的组件化、模型驱动化的开放、整合式协作软件开发框架23。先 进的开发平台技术对于解决软件开发复杂度矛盾,提升应用软件开发生产力均 具有关键意义。 门户中的应用是一类满足 J2EE 规范的特殊 Web 应用11。一个完整的门户 应用由源程序文件、数据访问协议、部署描述符和 Web 资源文件四个基本部分 组成,门户应用的结构如图 1.1 所示: 源程序文件。指用户开发的门户应用代码,包括 Portlet 源文件和门户 应用业务逻辑文件,它们的编译结果将作为应用的逻辑组件运行单元 部署到服务器上。 数据访问协议。指门户应用访问数据的协议和配置信息,包括应用数 据库、内容库、用户属性库、系统配置文件以及 LDAP 数据库的相关 访问协议。 部署描述符。指门户应用部署到服务器时,服务器可读的自身描述文 件,以供服务器部署时信息加载使用。 Web 资源文件。门户应用作为一类 Web 应用,包含的如页面、图片资 源等的文件信息。 门户应用 数据访问协议 应用数据库系统配置文件 Web资源文件源程序文件部署描述符 LDAP数据库用户属性库内容库 图 1.1 门户应用的结构示意图 结合门户规范和门户应用的特点,门户应用系统的开发除了有常规软件开 发的特点外,还有其自身的特殊之处。具体来说: 开发需遵循一定规范。门户应用的开发需遵循一定的规范,门户规范 对应用格式和资源组织均有一定的定义和限制。 配置信息繁琐。为确保正常运转,门户应用的配置信息较传统的 Web 应用更多。 资源管理复杂。门户应用中因为资源结构的规范性和配置信息的繁琐, 导致了开发过程针对资源的管理也更加复杂。 特殊的部署和调试流程。门户服务器上针对门户应用有一套特殊的部 署和调试流程。 上述特殊之处决定了门户应用的开发过程较之传统 Web 应用更加复杂。如 何结合开发平台的成果和技术解决门户环境中的应用开发问题,也就成了当前 门户研究领域中的一个重要方向。 1.21.2 论文的主要工作论文的主要工作 论文从门户环境中应用开发的实际问题着手,结合软件开发平台的技术和 发展现状,首先给出了构建面向门户的开发平台的关键技术,提出了整体架构, 然后分析和设计了资源管理、应用部署、应用调试三大主功能模块,最后给出 了设计方案在 OncePortal 门户中间件中的实现细节。论文的主要工作分为两块: 面向门户的开发平台核心技术和模块设计以及 OncePortal 开发平台的实现。 1.2.1 面向门户的开发平台核心技术和模块设计 论文给出了面向门户的开发平台的核心技术和模块设计,面向门户的开发 平台以组件化软件开发平台框架为基础,探讨了门户环境与开发平台的结合问 题,并分析了如何利用开放式整合性开发框架来提升门户应用的开发效率。论 文提出了开发平台整体框架的设计,从整体框架铺开,分资源管理、应用部署 和应用调试三大关键技术点具体探讨了相关核心技术及其模块设计。 资源管理 资源管理提供对开发平台中用户开发的应用工程及其资源的管理。资源管 理技术从门户应用工程的生命周期分析出发,论文引入工作区、资源增量、工 程增量构建器等概念,设计了包含资源生成、资源导入导出、资源结构维护、 lib 库管理和资源验证等功能的资源管理模块。 应用部署 论文分别从应用服务器及门户服务器两个层级讨论了门户应用的特殊部署 流程和相关技术,并结合上述讨论分析了开发平台需要提供的应用部署支持。 给出了包含资源组织、服务器交互、部署配置三大子功能组件的应用部署模块 设计,并结合动态部署需要设计了门户应用的动态部署模型。 应用调试 应用调试提供门户应用程序的漏洞检测和错误纠正功能。论文首先分析了 通用调试器的基本功能需求,并给出了针对性的调试框架和要点设计。在分析 出开发平台中门户应用的调试包含的关键问题点后,论文给出了应用调试模块 的具体设计。 1.2.2 OncePortal 开发平台的实现 论文根据前面的分析和讨论,从设计的模块和框架出发实现了 OncePortal 开发平台。OncePortal 开发平台以 OncePortal 门户中间件以及 Eclipse 开发平台 为实现背景,并依照论文提出的核心技术和模块设计搭建开发平台的架构和模 块。OncePortal 开发平台由内核、界面、帮助子组件构成,为门户环境下的应 用开发提供资源管理、应用部署、应用调试、插件管理、界面交互方面的功能。 OncePortal 开发平台的实现目前已经被集成到 OncePortal 门户中间件中,并在 多个实际项目中得到了应用。论文最后给出了 OncePortal 开发平台在一个具体 应用项目中的使用情况,并对开发流程做出了阐述,分析了具体的开发特点。 1.31.3 论文内容的组织论文内容的组织 论文的后续章节按以下方式组织: 第二章给出了面向门户的开发平台技术分析。首先分别介绍了门户和开发 平台的基本概念和发展现状。然后结合门户应用的开发流程和开发平台技术, 探讨了门户环境下开发平台的关键技术点。 第三章至第五章则从关键技术点铺开,分别讨论了面向门户的开发平台的 资源管理、应用部署和应用调试核心技术,并给出开发平台中资源管理模块、 应用部署模块以及应用调试模块的具体设计。 论文的第六章给出前文技术和设计的实现OncePortal 开发平台,论文 分内核子插件和界面子插件详细介绍了 OncePortal 开发平台的实现细节,并给 出了界面交互元素的设计和实现以及关键功能的具体实现逻辑。通过 OncePortal 开发平台在实际工程开发中的应用情况,论文给出了 OncePortal 开 发平台的具体功能特点。 第七章给出了论文的结论和下一步的研发工作展望。 第二章第二章 门户与开发平台技术门户与开发平台技术 2.12.1 门户门户 本节介绍门户的基本概念,并探讨门户的主要功能与特点。在介绍门户及 其应用的系统结构后,从门户应用的特性出发,分析了门户环境下的应用系统 开发流程,作为面向门户的开发平台的设计基础。 2.1.1 门户的概念 随着信息技术的发展,企业应用系统中包含有更加广大的用户群体和更加 复杂的系统结构。同时企业中也出现了应用系统之间集成和协作的需求。门户 (Portal)技术1就是在这种背景下产生的。门户提供了对信息和应用等各种资源 的集成功能,它以 Web 的方式提供对集成资源的单一访问入口点,并展现给用 户一致的界面风格。 在企业的信息化过程中,门户的概念得到了进一步的扩展。人们希望通过 门户,不仅集成企业的信息资源,同时也集成企业的各种应用系统,使得门户 成为员工的统一工作平台。简而言之,员工只需要进入门户,就可以访问各种 信息和各个系统、参与企业业务流程并实现与其它员工交流协作,完成原先需 要打开一大堆客户端窗口才可以完成的事情。 企业信息门户 EIP2(Enterprise Information Portal)的概念是传统的门户概 念在企业内部的延伸,企业信息门户以企业运营的相关业务信息为主,其对象 是企业的员工以及供应商、销售商等与本企业密切相关的用户。企业信息门户 是一个企业的信息窗口,它的主要用途是发布企业内部和外部的各种信息,这 样使企业员工、客户和合作伙伴能够从单一的渠道访问其所需的个人化信息。 除了企业信息之外,同时企业也能够通过这一单一渠道集成和发布多种应用资 源,企业信息门户的用户可以通过它来执行多种企业应用,实现各种应用工作。 通过集成企业信息和应用,企业用户仅使用单一的访问方式能更好的访问企业 信息并参与到企业信息流程中。 在本文中,所提到的“门户”概念,若无特别说明即是指企业信息门户。 2.1.2 门户的功能和特点 门户作为企业的信息和应用接入点,其在企业的业务和信息流程中起到了 如下的作用:首先,门户对企业内部来说是管理和查询日常业务的公用平台, 员工可以访问企业的客户、销售、生产、库存、财务等信息,以最低的成本共 享和利用企业的所有信息。 其次,门户对外是企业网站,通过门户及时向客户 和合作伙伴提供产品、服务的信息。 开拓新的网上业务,推动企业走进电子商 务。 通过门户,企业能够释放存储在内部和外部的各种信息,同时使企业员工、 客户和合作伙伴能够从单一的渠道访问其所需的个性化信息。 门户可以认为包含如下几部分功能:用户接口、内容发布,服务发布和信 息门户管理。 用户接口是用来管理门户的输出功能的,通常它管理图形化接口,合并内 容并在特定的设备上输出。它包括表示管理功能、应用容器支撑和用户个性化 功能。表示管理管理内容在指定设备上的输出形式,门户应用访问不同信息来 源的实体,它是门户的主要组成部分,应用容器是容纳应用程序运行的环境, 使其能运行访问信息资源,并返回网页表示结果。个性化功能则是针对不同的 用户输出不同网页内容。 内容发布是指访问各种不同来源的信息的功能,它包括对内容的管理功能 以及内容的导航功能。因为门户可以访问不同来源的内容,因此用户可能需要 通过链接和查询,其以相似的方式来访问内容,其中也需要一些内容分类机制 来管理这些分布的内容。 服务发布使门户能访问一些复杂的应用,例如会议室,邮件,订单处理这 样的功能力。这使得信息门户需要提供服务平台、协作框架、应用连接、服务 平台网关,Web Services 网关,工作流引擎等,同时其能集成已有的企业应用。 服务平台是指提供服务的基础。协作框架提供了访问门户用户之间的协作,消 息模型和事件处理的框架,其为会议室,邮件等一类应用提供基础框架。应用 连接是特殊的连接器,用来包装和客户化企业应用。工作流引擎用于在信息门 户中提供为访问门户的用户提供业务流程支持。 门户管理主要涉及对访问本门户的用户的管理,对门户系统注册和管理等 信息的管理。 门户一般具有如下特点: 1,单一的访问方式。所有的用户都可以通过单一的入口访问他们所需要的 信息。单一访问方式需要单点登录功能的支持。单点登录(Single Sign On,简 称 SSO)是应用集成领域的一个重要概念,它提供一个统一的机制用于管理用 户的认证,可以在用户的授权下在应用系统间按照某种规则共享认证信息,并 代替用户来完成一些具体的登录工作,其目的是允许用户仅仅通过一次登录就 可以访问到多个应用。对于一个实现了单点登录功能的门户系统,当用户成功 登录到门户之后,如果要访问门户后台的某个集成应用,门户可以代替用户自 动完成在该应用上的登录验证过程,不需要用户输入任何信息,从而实现了单 一的访问方式。 2,信息集成和应用集成。系统可以集成企业现有的、各种不同来源的信息 资源和企业应用,用户通过门户可以方便地访问到这些信息和应用。 3,个性化。每个企业用户都可以定制自己的个性化访问页面,这一页面只 包含用户希望访问到的信息和应用,而滤除用户不需要访问的信息和应用。 4,强大的内容管理能力。基于对企业内外各种类型信息的处理能力,门户 支持几乎各种结构化和非结构化的数据。 5,多种信息发布方式。门户可以有多种不同的发布信息的方式,用户可以 通过浏览器来访问企业信息,也可以通过手机、PDA 等其他无线的接入方式来 访问这些信息。 6,高度的可扩展性。能适应企业新的人员和部门调整的变化,满足企业业 务调整和扩展的要求,解决企业与 IT 部门短时间内无法解决的技术需求问题。 7,安全可靠的保障。门户可以提供的安全机制包括认证、角色分配、用户 和组的授权、用户操作监督等,通过这些机制控制用户对信息和应用的访问, 保证数据的机密性及完整性,使企业业务流程正常运转。 从上面所描述的特点可以看出,门户能够通过超越现有分散的应用环境实 现企业信息和业务集成的目标。它把原来不同的内部部门的分割、不同的企业 内外的分割,通过系统的集成使其相互关系连接到一起,形成统一的、广泛的 和相互关联的企业应用环境。 2.1.3 门户的应用和系统结构 门户通常架构在 Web 服务器或者 Web 应用服务器的基础之上,它通常以 网页的形式来发布各种信息和应用,同时它可以访问各种不同的数据来源,集 成各种企业应用,同时它可以采用多种不同的发布形式来发布信息。 门户自身可以由如下这几部分组成:门户服务器(Portal Server), Portlet 容器(Portlet Container) ,Portlet 应用接口(Portlet API)和底层服务支持。门 户的结构如图 2.1 所示。 图 2.1 门户系统结构示意图 在门户环境下,应用程序以 Portlet 的形式进行组织。Portlet 是一种 Web 组 件,在门户中由 Portlet 容器进行管理,用以进行用户请求处理和动态内容生成。 门户的界面可以由多个“小窗口”组成(图 2.2) ,每个小窗口部分对应一个 Portlet。Portlet 可以有不同的数据来源,可以是本地或者远程网页,也可能为数 据库数据,同时还可能为应用程序。通过集成显示多种 Portlet,门户可以在同 一界面中为用户提供多种不同来源的内容显示。另外,门户为用户提供了自定 义界面的功能,用户可以选择自己所希望看见的内容(Portlet) ,并可以管理 Portlet 的布局,这样就可以实现个性化的网页。 在门户的系统架构中,门户服务器用来处理用户的门户页面请求。当门户 所架构的 Web 服务器接收到门户用户对于页面的请求后,它将其请求转交给门 户服务器。门户服务器接收到这一请求后,通过底层管理模块,访问到这一请 求所包含的用户的注册信息及其所请求页面的注册信息。从中分析出页面所包 含哪些 Portlet,然后它将用户请求消息分解为对这些 Portlet 的请求消息,转发 给 Portlet 容器执行。待 Portlet 执行完毕后,其将各自的网页内容以统一的形式 返回给门户服务器。门户服务器接收到这些返回的内容后,它根据页面注册信 息中的 Portlet 的布局情况,组装这些内容,并加上标题,导航,页角,颜色, 肤表等附加部分,构造成完整的网页输出给用户。 Portlet 容器是控制 Portlet 运行的容器,它根据门户服务器对 Portlet 的请求 来启动相关的 Portlet 执行,保存 Portlet 运行时刻的上下文环境。每一个门户系 统都制定了一套 Portlet 接口(API) ,它规定了对 Portlet 的访问方式,以及 Portlet 执行完毕返回结果的形式。符合这套 Portlet API 标准的 Portlet 都能够被 此 Portlet 容器访问并执行。随着越来越多企业门户的出现,不同的供应商都根 据自己的标准开发了各自的门户系统组件接口,即 Portlet 接口,这些互不兼容 的接口实现给应用提供商、门户系统客户和门户产品提供商带来了各种问题。 为了解决这个问题, 近年来,JCP 和 OASIS 分别发布了 Portlet 规范(Portlet Specification)和 WSRP 规范34,从而为不同门户系统和 Portlet 之间以及远程 Portlet 之间的互操作提供了可行性。 图 2.2 典型门户访问界面图 门户的底层服务支持包括如下几个部分: (1)用户管理,其负责管理访问门户的用户,它将用户的信息存储到用户 管理数据库中,并且它记录用户访问的权限,根据这一权限控制用户只能对特 定的资源(主要针对 Portlet)进行访问; (2)注册信息访问,负责记录和获取特定门户页面的注册信息,这些信息 表示了页面的组成形式等内容; (3)缓存机制,对用户所访问网页的内容或者 Portlet 返回的内容进行缓 存,这样可以提高执行效率。 (4)协作框架,用户之间可能存在着会议、邮件之类的要求。因此,门户 需要为用户提供这种用户之间交互的底层支持,而协作框架正是实现这一功能 的底层基础。 2.1.4 门户环境下的应用系统开发 一般说来,门户环境下应用开发的流程与目前的 Web 应用软件开发过程类 似。从软件开发过程模型看,包括如下几个主要阶段5: 需求抽取。包括:需求分析以及成本预算分析;构建目标制定;内容 集合定义;用户视图设计。 环境规划。包括:划分门户系统中的子系统及门户整合结构设计;服 务器划分、组件部署设计、环境拓扑设计等结构设计;硬件、数据库、 LDAP 环境规划设定。 工程进度规划。整个开发过程中工程阶段的设立和进度的预计与规划。 门户组件设计。包括页面布局和导航、皮肤风格和主题、访问控制与 权限、内容和文档管理的设计;门户应用组件单元的设计。 工程开发实施。包括:门户应用系统的构建与开发阶段、特殊的调试 和测试阶段、系统部署与发布阶段。 工程维护。包括:逐步引导、变更管理、流程整合、问题跟踪、门户 功能性能评价、系统的持续升级。 在门户的应用开发流程中,包括门户组件设计、工程开发实施等许多开发 阶段都涉及到门户特性相关的配置和设定,其中很多步骤对于用户是复杂冗余 的。开发平台的出现和发展,目的在于解决应用开发过程中原本用户手工完成 的复杂开发动作,使之转为开发平台来协助完成。使用户能够专注于应用的业 务逻辑开发,而非冗余的软件环境配置、工程资源管理等机械化的额外工作。 2.22.2 开发平台开发平台 随着软件工程研究和实践的进一步发展与深入,已经提出并实现了许多面 向大型软件系统的软件设计开发方案与方法。在诸多软件设计开发方案与方法 中,软件开发平台技术能够有效地支持大型软件系统的实践并提高开发效率22。 软件开发平台是一种以业务为导向快速构建应用的软件平台。软件开发平 台具有软件的业务描述以及操作系统、软件基础构架平台之间的交互管理功能, 并屏蔽技术细节,让开发平台用户专注应用软件开发中具体逻辑和业务开发, 从而提高应用系统的开发效率。 开发平台为复杂应用软件系统的开发提供了一个基本框架,并提供与之相 应的开发与维护管理工具。这个框架给出了一些复杂应用软件的基本组成部分 和实现方法,并且预置了很多供参考的软件模块。因此,在开发平台上开发软 件就可以降低复杂度,省去很多基础性的工作,从而大大缩短开发周期,提高 开发效率。 具体来说,软件开发平台能满足复杂应用软件系统开发的如下要求: 快速性:通过软件开发平台提供的基础框架,以及预置好的模块,软 件提供商能很快地研制出用户所需要的复杂应用软件系统; 灵活性:通过软件开发平台提供的开发与管理工具,软件提供商能很 方便地满足用户个性化的需求,以及项目进展过程中各种各样变化的 需求; 集成性:软件开发平台为复杂应用软件系统提供了一个集成框架,不 仅为集成同一平台上的各种不同软件提供了规则,还为集成其他应用 软件系统提供了思路。 目前,组件化是软件开发平台的主要发展趋势之一,组件化是通过在一个 开发平台上通过预置和定制多个软件组件、中间件以及相关组件库等功能模块, 根据开发目的组织软件部件的开发生产、组装与协作。通过功能扩展和升级, 组件化能够为开发平台提供更加开放的整合框架,并能保障开发平台在应用开 发流程中发挥更大作用。 2.32.3 面向门户的软件开发平台面向门户的软件开发平台 门户应用的开发过程是源程序文件、数据访问协议、部署描述符和 Web 资 源文件的开发和生成过程。面向门户的软件开发平台的设计目的,就是如何结 合门户应用的结构特点,利用开发平台技术来解决门户应用开发的难点和复杂 点。 2.3.1 关键功能点分析 如前所述,门户环境下的应用系统开发流程中存在许多特定于门户环境的、 且面向用户是复杂冗余的步骤和工作。如环境规划阶段的门户服务器、数据库、 组件部署规划;门户开发实施阶段的调试测试配置等等。上节探讨的软件开发 平台技术通过抽取配置和参数信息,能够根据门户的环境设置,将相应的配置 和规划工作转为开发平台自动完成。从门户应用的结构特征出发,结合开发平 台技术,我们认为面向门户的开发平台需要考虑如下几点关键技术: 资源管理技术。资源是开发平台的应用工程内容表示和存储。开发平 台以工程为单位管理用户开发的应用。开发平台中,资源管理技术结 合工程的生命周期管理实现资源生成、资源导入导出、资源结构维护、 lib 库管理和资源验证等支持。 应用部署技术。部署是工程从开发状态向运行状态的转换,门户环境 中的应用部署指将门户应用加载到服务器中,并可由门户用户所访问。 开发平台中,应用部署技术提供对门户应用部署的辅助支持,包括资 源组织、服务器交互、部署配置支持功能。 资源组织:主要作用在将用户开发好的门户工程组织为正确的能在 服务器上正常部署的文件结构。 服务器交互:负责部署过程中开发平台与服务器之间的交互。 部署配置:提供开发平台中部署流程的属性配置及接口。 应用调试技术。调试指从开发的应用程序中找到问题并解决。开发平 台中,应用调试技术负责调试过程中对应用服务器的调试连接支持、 应用重配和调试配置支持功能。 调试连接支持:支持开发平台与目标应用服务器的连接和管理。 应用重配:负责调试过程中应用的实时重配和刷新。 调试配置:提供开发平台中调试流程的属性配置及接口。 从上述关键功能点出发,论文将整个开发平台设计为资源管理、应用部署、应 用调试三大功能模块。 面向门户的开发平台的设计工作原理是通过资源管理、部署、调试等内部 核心模块的逻辑执行,将相应辅助和自动化功能作用于门户应用的四个基本元 素上,从而实现门户应用的开发过程。 从门户的应用开发流程角度看,目前面向门户的软件开发平台89主要针对 环境规划、工程进度规划、门户组件设计和功能开发实施等阶段提供辅助和优 化开发流程的功能。伴随开发平台技术的发展,开发平台所涉及的开发阶段也 将逐渐增多。 在本文的后续章节中,将根据本节分析的关键技术和问题,分别探讨资源 管理、应用部署、应用调试技术,并提出一套具体的面向门户的软件开发平台 设计与实现。 2.3.2 相关产品 面向门户的软件开发平台技术是近年来伴随门户技术发展起来的新技术。 就目前来看,面向门户的软件开发平台产品分为商业产品与开放源代码产品两 类。 商业产品 IBM 针对自己的门户中间件产品推出了开发平台支持9。其中包括代码组 织、界面设计、调试支持、开发管理、部署管理等主要功能。IBM 的门户开发 平台以 Rational Application Developer9产品的组件形式存在,开发者可以方便 地通过开发平台基于 IBM WebSphere Portal 服务器开发出符合规范或符合 IBM WebSphere Portal API,且包含 WebServices 引用、EJB 调用、数据库访问的各 式各样布局和外观的 Portlet 应用。整个开发平台提供了相对完善的定制和设定 功能,使开发者只需要少量的个人参与即可实现上述目的。但是,他们的产品 只针对自身的门户开发和运行环境,不具备通用和适配性;此外,结合到具体 门户环境的资源管理、调试和部署方面,还存在着一定的缺陷。图 2.4 所示为 IBM 门户开发平台的图形化主题定制界面,功能完备性是 IBM 门户开发平台的 主要特点之一。 BEA 针对自己的门户中间件产品也有对应的开发平台支持8。和 IBM 类似, BEA 的门户开发平台产品只针对 WebLogic Portal 服务器的开发和运行环境,功 能完备性方面不及 IBM 门户开发平台,且在门户环境结合性方面也存在着不足 之处。 图 2.4IBM 门户开发平台的图形化主题定制界面 开放源代码产品 目前的开放源代码产品主要基于 Eclipse 开发平台6完成,并以插件的形式 整合到 Eclipse 中。主要的开源门户开发平台产品包括 JBoss Portlet Plugin,eXo Platform Plugin 以及 Lomboz Portlet Development Tool,它们均针对具体的门户 开发和运行环境,但在功能上较之商业产品有一定差距。开源产品仅对 Portlet 部署描述符、规范版本等做了简单功能支持,仍需用户在资源管理、部署和调 试方面做大量工作。但开源产品在开发平台框架的定义,组件化的结构等方面 仍是论文值得参考的地方。图 2.5 给出了 JBoss Portlet Plugin 的创建界面图。 图 2.5 JBoss Portlet Plugin 的创建界面图 2.42.4 小结小结 本章首先介绍了门户的基本概念及其功能特点,并探讨了门户环境下的应 用开发流程,然后给出了开发平台的相关技术。最后结合门户和开发平台,探 讨了面向门户的软件开发平台在设计和实现中面临的关键技术点,并给出了相 关产品的分析。 第三章第三章 门户开发平台中的资源管理技术门户开发平台中的资源管理技术 3.13.1 概述概述 资源管理提供对开发平台中用户开发的应用工程及其资源的管理。如前所 述,资源是开发平台的应用工程内容表示和存储。资源管理技术负责应用工程 的维护和管理,并为其他各个功能模块的开发和运行提供环境基础。 开发平台通过引入工程的概念组织用户的开发资源和信息,资源管理涉及 门户应用工程的全部生命周期,包括工程的创建、打开、关闭、维护、删除等, 以及和工程有关的环境和配置。 本章首先探讨开发平台中门户工程的生命周期,然后分析资源管理模块中 的资源管理机制,并给出具体的设计。 3.23.2 资源管理资源管理 本节探讨并分析门户应用开发过程中的资源管理具体技术和设计,首先分 析门户应用开发的生命周期及其与资源管理的关系,然后提出资源管理的若干 基本定义和概念,最后具体讨论门户应用资源管理技术及其设计要点。 3.2.1 生命周期 开发平台中,门户应用工程的生命周期涉及到开发者开发门户应用的完整 过程,包括创建、打开、关闭、开发、删除工程等动作,以及相关的 Portlet 组 件添加删除、资源增删等动作。图 3.1 给出了门户应用工程的生命周期示意图。 10 创建工程 2 开启工程 关闭工程 4 删除工程 工程开发 组件添加 资源增删 3 发布工程 工程维护 图 3.1 门户应用工程的生命周期示意图 如图 3.1 所示,门户应用工程的生命周期涉及到创建、开启、发布、维护、 关闭和删除动作。而门户应用工程的生命周期管理动作,就是对整个工程在生 命周期不同状态下的资源管理和维护变更管理。在开发平台中,工程的生命周 期管理动作包括资源的状态维护、属性绑定、不同状态下的资源管理等功能。 3.2.2 资源管理 论文针对门户工程生命周期的特性,为资源管理模块设计引入如下概念: 工作区(Workspace):是工程文件在平台中的组织和保存区,工作区 包含有若干个用户创建的工程,每一个工程均与用户指定的文件系统 目录对应。 工程属性(Project Nature) 。工程属性允许平台为工程添加标记,以体 现所构建的工程的特殊性。 资源(Resource) 。工作区中的文件通过资源的概念进行组织。文件以 资源对象的格式进行组织,并提供一组完备的操作。开发平台通过资 源树视图来组织工程中的资源结构。图 3.2 所示为一个典型门户应用工 程的资源树视图。 图 3.2 一个典型门户应用工程的资源树视图 资源增量(Resource Deltas) 。资源增量负责管理资源的变更情况。通 过跟踪工作区的资源变更,注册资源变更监听器,在资源创建、删除 和内容变更时实时得到监听器的通知。这种资源变更事件的通知报告 在平台中以资源增量树的方式进行表述。 工程增量构建器(Incremental Project Builder) 。开发平台中的编译器和 验证器需要对工程中的大量信息进行遍历和分析操作,通过工程增量 构建器框架,为工程构建动作提供优化。工程增量构建器捕获资源增 量树中所表述的资源变更,并针对这些资源变更来完成增量的构建动 作,以提升工程维护过程中资源管理的效率。 结合上述定义,论文给出了如图 3.3 所示的门户应用工程的资源管理模型。 门户应用工程 工程属性标记 资源 - 源程序文件 - 部署描述符 - Web资源文件 - 数据访问协议 工程配置信息 工程增量 构建器 生命周期动作 资源增量 资源变更 监听器 - 生成 - 导入导出 - 结构维护 - lib库管理 - 验证 图 3.3 门户应用工程的资源管理模型 在图 3.3 所示的资源管理模型中,生命周期动作(创建、打开、关闭、开 发、删除、组件添加、资源增删)触发生命周期管理逻辑,具体的操作是通过 工程增量构建器捕获资源增量表示的资源变更,执行应用工程的状态维护、属 性绑定、不同状态下的资源管理等功能。具体来说,针对资源的操作包括资源 生成、资源导入导出、资源结构维护、lib 库管理和资源验证。 3.2.2.1 资源生成 如前所述,一个标准的门户应用工程包含源程序文件、部署描述符、Web 资源文件以及数据访问协议四类基本元素。根据门户服务器的部署和运行要求, 并遵循 Portlet1.0 规范的定义,这四类基本元素在不同的应用工程中有着部分一 致的表示。根据这一特性,开发平台可以抽取出这种部分一致的内容,组织成 共通的模板,用户在创建门户应用工程时,根据用户的参数设置和输入信息, 调用模板完成资源的自动生成动作。资源的生成分为资源结构生成和资源文件 生成两层。 资源结构生成 不同的门户应用工程均有着相似的资源结构。如图 3.2 所示,根据参数设 置和门户应用工程所需满足的需要和规范。生成的资源结构包含 src(源程序文 件) 、Web-content(Web 资源) 、web.xml(部署描述符)、portlet.xml(部署描述 符) ,如有数据访问需求,则根据用户的数据访问设置生成对应的数据访问协议 文件。这些文件和文件夹在工作区保持稳定的结构。资源结构的生成关键,是 需要开发平台保留资源结构信息,用户提交资源生成请求时,开发平台读取相 应资源结构信息以获取上述资源结构,并按照结构信息在指定文件位置生成对 应资源文件。 资源文件生成 以源程序文件为例来说明资源文件的生成动作,图 3.4 所示为一个典型的 Portlet 源程序文件结构。 图 3.4 一个 Portlet 源程序文件结构 在图 3.4 的源程序文件中,包含有包名(com.mygroup) 、类名 (PoprojectPortlet)等应用工程相关的特殊信息,每个方法中也有应用工程特定的 逻辑代码。但为了满足 Portlet1.0 规范以及门户服务器的部署和运行要求,不同 的源程序文件在初始化定义(如上述标记红框的 init 方法)和 Portlet 模式的方 法声明上(如上述标记红框 doView、doEdit、doHelp 等方法)均有着相同的模 式。此外,Portlet 参数和属性的设定与初始化也满足一定的格式。 开发平台可通过设计资源生成逻辑来实现门户应用工程的自动生成功能, 通过抽取出共通的模式格式组织成模板,模板结合具体的用户输入和参数设置, 实现具体应用工程的资源生成。论文设计的资源生成流程如图 3.5 所示。 创建工程 模板 新建Portlet 源程序文件 部署描述符 Web显示页 获取 生成并导出 用户输入 配置参数 获取 图 3.5 资源自动生成流程图 图 3.6 所示为门户应用部署描述符文件 portlet.xml 的生成模板片段,开发 平台通过捕获以“#”开头语句的逻辑以及获取以“$”开头语句用户赋予的参 数值来实现模板向对应文件的转换和生成动作。 图 3.6 门户应用部署描述符文件 portlet.xml 的生成模板片段 3.2.2.2 资源导入导出 资源导入过程是文件系统向工作区的文件传输过程,资源导入考虑的问题 包括导入文件的重名以及文件导入后的资源结构调整。 文件重名问题 导入文件的重名问题通过添加监听器来解决,监听器捕获到用户导入的文 件与当前工作区中的文件结构存在冲突后,通过用户交互获取下一步动作的权 限(覆盖、更名、取消等) ,然后触发相应事件完成导入动作,如图 3.7 所示。 图 3.7 资源导入过程序列图 资源结构调整 资

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论