(计算机应用技术专业论文)门户系统的设计与实现.pdf_第1页
已阅读1页,还剩76页未读 继续免费阅读

(计算机应用技术专业论文)门户系统的设计与实现.pdf.pdf 免费下载

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

文档简介

、_ 户系统的设计与实现 计算机应用技术专业 研究生王佳指导老师李志蜀 摘要:在当今世界的分布计算环境中,我们每天要登录到很多不同的 系统和应用中。随着用户需要进入的系统越多,用户出错的概率和安全 问题出现的可能性就越高。另外,随着系统数量的不断增加,用户授权 的正确性将难以保证,其维护成本以及维护难度也将会随之日益增加。 因此,应用一个门户系统对各个系统的认证和授权进行统一的管理,就 显得十分必要了。丌发门户系统的目的是为了方便用户使用、简化管理 人员的管理工作,做到每个用户拥有惟一账号,系统拥有惟一的入1 5 , 并且能够很方便集成更多的予系统。我们采用单点登录技术,结合流行 的x m l 和x s l 技术进行门户系统的开发。并且根据需求抽象权限结构 模型,将权限进行多级权限划分,并提供了一套较为成熟的授权机制。 在系统设计中,充分考虑了一个大型系统需要同时为多个客户端服务的 并发性特点,利用数据库连接池技术来解决这一问题。整个系统的实现, 基本满足了统一资源管理、统一集成、统一安全认证、统一入口和具有 可扩展性、可移植性的设计要求。同时,我们制定了资源编码规范和集 成子系统开发规范,以此规范整个系统中的编码体系,保证子系统能够 被方便的集成到门户系统中来,使门户系统成为集成和管理其他应用的 基础平台。该系统已经开发完成,并且投入使用。 关键词:门户;单点登录;认证;授权 1 :佳,( 1 9 7 9 一) ,男,坝士研究生,专业:计算机应用技术,研究方向:计算机刚络1j 信息系统 t h e d e s i g n a n d i m p l e m e n t o fp o r t a ls y s t e m c o m p m e ra p p l i c a t i o n s g r a d u a t e 、 ,a n gj i aa d v i s o rl iz h i s h u a b s t r a c t :i nt o d a y sd i s t r i b u t e dc o m p u t i n ge n v i r o n m e n t ,w em u s t l o g i nm a n y d i f f e r e n ts y s t e m sa n da p p l i c a t i o n s t h ep r o b a b i l i t yo fm a k i n gm i s t a k ea n d h a v i n gs e c u r i t yp r o b l e m sw i l l b eh e i g h t e n e da l o n gw i t ht h ea m o u n to ft h e s y s t e m s t h a tw el o g g e di n ,i no t h e r r e s p e c t s ,t h e c o r r e c t n e s so fu s e r a u t h e n t i c a t i o nw i l ld i f f i e u i tt oe n s u r e 。t h ec o s ta n dd i f f i c u l t yo f m a i n t a i n i n g s y s t e mw i l li n c r e a s e ,t o o t h e r e f o r e ,i ti sn e c e s s a r yt oh a v eap o r t a ls y s t e mt o u n i f o r m l ym a n a g et h ea u t h e n t i c a t i o na n da u t h o r i z a t i o no f a l l s y s t e m s t h e p u r p o s e o fd e v e l o p i n gt h i s s y s t e m i st o p r e d i g e s t u s e r s o p e r a t i o n s a n d a d m i n i s t r a t o r sw o r k s e v e r yu s e rh a sau n i q u ea c c o u n t a l ls y s t e m sh a v ea u n i f o r me n t r a n c ea n dc a nb ei n t e g r a t e ds i m p l y w et a k eo nt h es s o ( s i n g l e s i g n o n ) ,x m l a n dx s l t e c h n o l o g yt od e v e l o p t h i ss y s t e m a c c o r d i n gt ot h e r e q u i r e m e n t ,w e d i v i d ea l lr i g h t si n t oa nnl e v e l s m o d e la n d p r o v i d eam a t u r e a u t h o r i z a t i o nm e c h a n i s m i nt h i s p o r t a ls y s t e m ,w e u s ed b c p ( d a t a b a s e c o n n e c t i o np 0 0 1 ) t os o l v et h ep r o b l e mo f c o n c u r r e n c ye f f i c i e n c y t h i ss y s t e m s a t i s f i e so u rd e s i g nr e q u i r e m e n t ,s u c ha su n i f o r mr e s o u r c e sm a n a g e m e n t , m l i f o r mi n t e g r a t e d ,u n i f o r ma u t h e n t i c a t i o n s ,u n i f o r me n t r a n c e ,e x t e n s i b l ea n d m i g r a t a b l e w eh a v ea l s o e s t a b l i s h e dt h ec r i t e r i o no fr e s o u r c e sc o d i n ga n d h o wt oi n t e g r a t eas u b s y s t e mi n t oo u rp o r t a ls y s t e m t h i sp o r t a ls y s t e mi st h e b a s i cp l a t f o r mt oi n t e g r a t ea n dm a n a g eo t h e r sa p p l i c a t i o n s k e yw o r d s :p o r t a l ;s s o ( s i n g l es i g n - o n ) ;a u t h e n t i c a t i o n ;a u t h o r i z a t i o n w a n g j i a , ( 1 9 7 9 - ) ,m a l e ,m a s t e r ,c o m p u t e ra p p l i c a t i o n s ,c o m p u t e r n e t w o r ka n di n f o r m a t i o ns y s t e m 1 引言 在当今世界的分布计算环境中,用户每天要登录到很多不同的系统和 应用中,如电子邮件系统、办公m i s 系统、资源管理系统等等。传统模 式中,每个系统都拥有自己的认证过程,要求用户针对不同的系统输入 不同的用户名、口令。用户需要进入的系统越多,用户出错的概率和安 全问题出现的可能性就越高。在i n t e m e t 中,如果访问一个公司网站过于 复杂或者不安全,客户或合作者可能会失去耐心,进而中止业务关系, 这对公司业务的影响是不言而喻的。 另一方面,由于每个系统都是独立维护自身的授权机制,并且管理的 方式形形色色、各不相同,随着系统数量的不断增加,用户授权的正确 性将难以保证,其维护成本以及维护难度也将会随之日益增加。 为了更好的解决这些问题,应用一个门户系统对各个系统的认证和授 权进行统一的管理,就显得十分必要了。其目的是方便用户使用、简化 管理工作,做到每个用户拥有惟一账号,系统捌有惟一的入口,当用户 在入口点一次性登录之后,就可以访问所有按照门户规范开发的、集成 在门户系统中的各种子系统。 2 门户系统的必要性 目前门户的基础设施还不能满足大多数的需求。具体说来,当今门户 实现者在构建这些门户时经历了如下的技术性和商务性问题: 1 ) 门户的内容必须是安全的 现在的网站常常把注意力放在防止人们接近网站上。安全仅通过阻止 访问而实现。然而,大规模的门户必须努力吸引人们到网站上来,因为 这样才能扩展业务。但是,用户登录到网站上以后必须得到控制,这就 需要全面的基础设施,让用户只可以访问经过授权的那部分应用和信息。 2 1 门户管理非常困难,而且代价昂贵 应用软件开发商过去常常在每一个应用软件中设置安全执行密码。当 重要的应用软件数且有限时,这一方法是可行的。但是,当门户应用软 件的数量和复杂性部增长了的时候,这就难以想象了。而且,各个应用 软件通常在本地仓库里储存它们自己的特权信息,这和整体的用户目录 是分离的。这就导致了冗余的用户管理,容易过时的用户数据库,以至 危及安全性。 3 ) 门户中用户体验是非常重要的 一对一市场的核心是以一神客户易于掌握的方式,向客户提供所需信 息的能力。如果客户在一个门户感到使用困难的话,客户也许就不会选 择这个系统。如果内容没有针对客户的需求实现个性化,或者是如果客 户被迫要忍受在不同的应用上重复地登录,客户肯定会感到操作繁琐, 以至于寻求别的门户获取服务。 4 ) 门户体验不可预知,用户负担极高 一一般来说,用户门户必须能够支持大量的用户,使访问该站点的高峰 负担很沉重。如果用户使用的门户站点反应缓慢甚至失去响应,用户就 会不断的孢怨。 5 ) 必须通过现有的基础设施实现投资回报 也许我们对现有的平台、目录、网络服务器等已经有了巨额投入。大 规模地改变这些基础设施让我们难以接受。采用的门户管理方案必须使 这笔巨额的、现有的投资起到作用。 6 ) 门户必须将联盟站点综合到现存的网站上来 门户站点常和许多联盟站点有商务关系。这些站点被链接到门户站点 上来,这样用户就可以从这些门户链接到联盟网站来开展业务或获得更 详细的产品信息。因为合作伙伴双方都可以从这种关系中获益,所以它 对两者来说都是十分重要的。用户把这视为从一个站点到另一个站点无 缝、方便的转化。举例来说,如果联盟站点要求用户重新登录,或者要 求用户提供门户站点已经捌有的信息,这会很快把客户赶跑的。 总之,企业和消费者门户需要安全、可升级、可靠的特权管理设施来 开展业务。当我们努力吸引客户和合作伙伴登录站点,提高员工工作效 率的时候,我们需要可以让用户通过单一的认证步骤访问多台服务器上 的软件的解决方案。而且,用户访问的信息必须越来越个性化,并满足 其特别的需求。当应用软件的数量不断增多,软件中数据的质量也越来 越有针对性时,管理这些应用软件的负担却减轻了。最终,我们需要一 个开放的、可扩张的体系结构来延续和扩展我们的各种应用。 3 设计目标 3 1 统一资源管理 对最终用户而言,通过门户系统可以访问所有信息资源,所有的企业 信息资源被门户系统统一管理。门户系统可以认为是一个自身可管理的 资源集合体。例如,邮件系统、考勤系统、文档管理系统、工作流管理 系统等,这些都是对邮件资源、考勤资源、文档资源、工作流资源的管 理,这些系统通过统一的集成技术集成到门户系统中,用于对这些资源 的统一管理。 3 2 统一集成 对所有资源的管理我们使用统一的集成技术,使用f o r - t p c s 、j 2 e e 、 c o r b a 等为基础,将所有资源的管理系统集成起来,既可以以统一的服 务方式发布,又可以灵活配置,可谓一举两得。 在这些服务集成的过程中,我们规划了一个统一框架体系结构用于实 现集成,并将如何集成在一起的服务以统一的方式发布出来,这就是我 们的门户系统和对应的门户系统开发规范和指南。 3 3 统一安全认证 在门户系统中,用户通过单点登录的认证,根据情况授予不同的使用 权限,然后可以使用不同的资源。在门户系统中,认证和授权是一体化 的,只需一次认证,在门户包含的子系统中就都可以使用认证信息。 3 4 统一入口 在各个子系统被集成好之后,会以一个可配置的模式展示给所有被支 持的客户端,使用门户系统将各种资源管理展示给最终不同的用户,用 户可以通过门户系统这个统一入1 2 1 进入系统。 3 。5 可扩展性 门户系统使用标准统一的集成技术,根据资源的变化和业务的需要, 可以适应多种开发模式,做到无限的扩展,满足各种业务的需要,新的 子系统根据标准的开发框架,可以方便的集成到现有的门户系统中来。 门户系统适用于f o r ,t p c s 、j 2 e e 、c o r b a 等分布式技术的开发, 使得系统平台的扩展和部署非常灵活,各种子系统可以根据业务量的大 小任意的部署在若干的节点上,充分发挥系统的性能。 3 6 可移植性 门户系统不仅是一个企业信息资源管理的平台,同时也是一种结构形 式的总结,其中的子系统采用的开发模式基本都适用于软件、硬件异构 的环境,并且都是按照门户系统的这种框架进行开发和集成。因此门户 系统使用了开放的平台,容易移植成为其他系统的集成平台,并且部署 也十分方便。 3 7 门户管理子系统功能模块需求 为了更有效地对各子系统进行统一管理,门户管理子系统应具备以下 功能模块: 1 ) 用户基本信息管理 按各种条件检索用户基本信息 用户基本信息的增加 用户基本信息的修改 用户所隶属的用户组列表修改 对于无门户和子系统权限、无隶属组并且已经停用的用户可 以进行删除 2 ) 用户组基本信息管理 按各种条件检索用户组基本信息 用户组基本信息的增加 用户组基本信息的修改 用户组下属成员列表修改 对于无门户和子系统权限、无下属用户并且已经停用的用户 组可咀进行删除 3 子系统基本信息管理 按各种条件检索子系统基本信息 予系统基本信息的增加 子系统基本信息的修改 对于未配置用户和用户组权限并且已经处于关闭状态的子系 统可以进行删除 4 、权限管理 按各种条件检索子系统权限列表 子系统权限列表的添加 子系统权限列表的修改 对于未配置用户和用户组权限的子系统权限列表可以进行删 除 按各种条件检索用户、用户组拥有的门户和予系统权限 配置用户、用户组捅有臼勺门户和子系统权限 查询子系统各层权限位 配置子系统各层权限位 配置用户管理权限 5 1 字典管理 字典内容的检索 字典内容的修改 6 ) 只志管理 门户登录r 志分时段检索 子系统登录日志分时段检索 子系统操作日志分时段检索 其他相关日志分时段检索 按时段删除日志 7 ) 门户会话管理 门户会话信息检索 门户会话变量内容检索 门户会话删除 3 8 门户系统接口功能需求 根据现有的几种开发模式,门户系统将为f o r - t p c s ( 服务或者库函 数形式) 、w e b l o g i c ( j a v ab e a n 形式) 、j 2 e e ( j a v ab e a n 或者e j b 形式) 、 c o r b a ( 远程对象或者库函数形式) 等开发平台提供界面相同的接口, 用于子系统的开发。 门户系统应包含以下功能: a 1 门户会话操作类 创建、删除、获取、更新、验证门户会话 创建、删除、获耿、修改门户会话变量 b 1 用户操作类 验证用户合法性 修改用户密码 获取用户与用户组相关信息 c 1 权限操作类 创建、修改、删除、获取权限列表 配置、获取用户用户组权限 用户用户组权限组合计算 d ) 日志操作类 门户登录、操作日志记录 子系统登录、操作日志记录 e ) 字典操作类 获取门户系统中各类字典内容 n 工具类 x m l x s l 文档辅助工具类:创建、配置、输出等 转换工具类:各类编码、名称相互转换 其他工具类:m d 5 摘要计算、特定字符串检查、时间格式检 查等 g ) 常数定义类 定义门户系统中的一些关键数值,以方便开发和后期更改。 例如:各种编号、名称长度等等 3 9 工作分解 编号任务名称工作日 初始阶段 8 5 l方案设计3 0 2设计确认与评审 5 w e b l o g i c 系统接1 2 1 设计 1 0 l 4用户管理5 l5用户组管理 5 1 6 子系统管理 5 权限管理1 5 7 子系统权限列表配置5 8 用户、用户组可使用的子系统权限配置5 9 用户、剧户组在子系统中的第n 级权限的配置 5 1 0 字典配置5 1 1 日志管理3 1 2 总结【 细化阶段 1 5 1 3与现有某个w e b 子系统的整合测试、进一步改进1 3 1 4总结22 构建阶段1 7 i 1 5t p c s 、j 2 e e 、c o r b a 接口设计i 5 1 6总结32 产品化阶段 t 0 1 7所有系统接1 :3 和门户管理平台的测试8 18总结42 表1 工作分解图 七表粗略显示了整个系统开发的工作分解,以及每个工作环节预计所 需要的工期,以每天工作8 小时的工作日为计算单位。 4 相关技术介绍 4 1 单点登录 4 1 1 原有登录方式的不足 随着计算机和网络的发展,以及计算机辅助系统的出现,用户和系统 管理员将会面临以下问题: 用户需要使用任何一个系统的时候都需要进行一次身份认证,而 且出于安全性的考虑,企业会要求用户在每个系统上要采用不同 的密码,而且要周期性更改; 系统管理员需要对每一个系统设置对应的安全策略,而且需要为 每个系统中的用户分别授权,以此确保他们的正确访问范围。 我们可以看到,以上的这些问题无疑是增加了使用和管理的难度。 41 2 单点登录概述 单点登录( s i n g l es i g n 0 1 1 ,s s o ) 是指用户只需要进行一次登录,就 可以访问到所有的授权服务,是一种用于方便用户访问系统的技术。s s o 实现了“多个系统一个入口,一人一个账号、一个口令”的登录管理模 式。它允许用户通过一次性登录,便可自动访问所有已授权的应用和系 统,从而增强了总体的安全性,提高了效率。同时,通过对各个系统的 权限管理的高度统一抽象化,简化了权限控制点,并使访问方法得到标 准化,从而使添加和删除用户等管理任务变得更快、效率更高。另一方 面,口令的减少,也减轻了重新设置口令的需求,使得服务台的技术人 员能够参与解决更多的重要问题。 该系统实现了对信息资源访问权限的集中控制,并且采用了基于角色 的权限管理模型,使得企业对权限的管理更加合理方便。系统的另一个 重要功能是集中的身份认证。如果用户通过了对s s o 系统的登录,系统 就能够为用户提供自动登录应用系统的功能。而用户登录s s o 系统还可 以采用s s l 协议中的握手协议和k e r b e r o s 协议相结合的方式,能大大提 高系统的安全性。 s s o 系统主要实现了以下几个功能: 1 1 集中的权限控制 集中的权限控制摆脱了以往复杂、繁琐的权限分配方式,实现了基于 角色的权限管理模型。它可根据用户的需求实现任意粒度的资源的权限 控制。 2 ) 数据保密和数据完整性 为了防止网上传输的数据被修改、删除、插入、替换或重发,以保证 合法用户接收和使用数据的真实性,可根据用户的需求选用多种密码算 法。 3 1 身份验证 它是权限控制的基础。s s o 系统为用户提供了对老系统身份验证的 自动实现功能,用户勿需再手工输入用户名和口令,由系统帮助用户完 成登录过程,但前提是:用户必须通过了对s s o 系统的登录。s s o 系统 可以提供对客户和服务方双向身份的验证。 4 1 完整的审计和日志 s s o 系统集中控制用户的访问,并为每个子系统提供详细的日志和 审计接口,只需轻松调用即可。 4 2j a v a 平台 j a v a 最初是在浏览器和客户端机器中粉墨登场的。当时,很多人质 疑它是否适合做服务器端的开发。现在,随着对j a v a 2 平台企业版( j a v a 2 e n t e r p r i s ee d i t i o n ,j 2 e e ) 第三方支持的增多,j a v a 被广泛接纳为开发企 业级服务器端解决方案的首选平台之一。 4 2 1 a p p i e t j a v aa p p l e t 是指用j a v a 编写的能够在主页中运行的应用程序。它具 有安全,功能强和跨平台等特性。i n t e r n e te x p l o r e r ,n e t s c a p e 等主流浏 览器都能够支持包含a p p l e t 的页面。 在门户系统中,我们在s e r v l e t 、a p p l e t 、j a v as c r i p t 和d h t m l 四者 之间进行数据交换,以此来增强页面功能,增加可操作性,方便用户的 使用。 42 2j 2 e e j 2 e e 是美国s u n 公司推出的一种全新概念的模型,与传统的互联网 应用程序模型相比有着不可比拟的优势。 当今许多企业都需要扩展他们的业务范围,降低自身经营成本,缩短 他们和客户之间的响应时间,这就需要存在一种简捷,快速的服务于企 业、合作伙伴和雇员之间。 典型的说,提供这些服务的应用软件必须同企业信息系统相结合,并 能为更为广阔的用户提供的服务。这些服务要具备以下的特点: 高可用性:来满足现在的全球商业环境; 安全性:保护用户的隐私和企业数据的安全; 可依赖性和可扩展性:保证商业交易的正确和迅捷。 通常这些服务是由分布的应用程序组成的,包括前端客户端和后端数 据源以及它们之间的一层或几层,这些中间层提供了把商业功能和数据 与企业信息系统相结合的功能。这些中间层把客户端从复杂的商业逻辑 中分离出来,利用成熟的i n t e r n e t 技术使用户在管理上所花费的时间减 少。 j 2 e e 正式降低了开发这种中间层服务的成本和复杂程度,因而使得 服务可以被快速的展丌,并能够更轻松的面对竞争中的压力。 j 2 e e 平台由整套服务、应用程序接口和协议构成,它对开发多层 应用提供了丰富的功能支持,其中包含了1 3 种核心技术:j d b c ,j n d i , e j b s ,r m i ,j s p ,j a v as e r v l e t ,x m l ,j m s ,j a v ai d l ,j t s ,j t a tj a v a m a i l 和j a f 。 s e r v l e t 是j a v a2 0 中新增的一个全新功能,s e r v l e t 是一种采用j a v a 技术来实现c g i 功能的一种技术。s e r v l e t 和c g i 一样都是运行在w e b 服务器上,用来生成w e b 页面。 j a v as e r v l e t 比传统的c g i 或其他c g i 类似替代技术来说,效率更高, 使用更方便,功能更强大,更小巧也更便宜: i )效率:传统c g i 对每一个h t t p 请求都要产生一个新的进程。 如果某个c g 程序是一个执行非常快的操作,打开进程的时间 也许占用了大部分执行时间。而对j a v as e r v l e t 来说,在j a v a 虚拟机上,每一个请求由一个线程响应,而不是一个操作系统 进程。类似地,传统c g i 如果对同一个c g i 程序有n 个同时 请求,这个c g i 程序的代码将被导入内存n 次。j a v as e r v l e t 产生n 个线程,但只有个j a v as e r v l e t 类的拷贝。同时j a v a s e r v l e t 比c g i 有更多的优化选择,像预先计算,打开数据库连 接等。 2 1方便:j a v as e r v l e t 能自动解码h t m l 表单数据,读和设置h t t p 头,处理c o o k i e ,跟踪会话等其他大量功能。 3 )强大的功能:j a v as e r v l e t 可以很容易的实现对c g i 来说是不可 能或很困难的事务,例如j a v as e r v l e t 能直接和服务器进行通讯 而c g i 是不能的。 4 1 j a v as e r v l e t 之间能共享数据:c g l 之间通讯差,由于每个c g i 程序的调用都开始一个新的进程,调用问通讯通常要通过文件 进行,因而相当缓慢。同一台服务器上的不同c g i 程序之问的 通讯也相当麻烦。 5 )调用时间:c g i 程序是作为单独过程运行的,通常调用时间较 长,这个间接成本在每次调用的时候都要发生。在使用解释器 的时候调用时间会更长。而内存中的s e r v l e t 可以非常迅速的被 加载。 6 1安全:有些c g i 版本有明显的安全弱点。即使是使用最新的标 准和p e r l 等语言,系统也没有基本的安全框架。面j a v a 定义有 完整的安全机制,包括s s l 、c a 认证、安全政策等规范。 7 )小巧:j a v as e r v l e t 使用j a v a 编写,遵循标准a p i 。它能直接或 借助插件在几乎所有w e b 服务器上运行。 8 )价格低:显然,有很多s e r v l e t 容器都是免费的。 s e r v l e t 的一些应用范围: 1 )用于处理提交的数据:可以处理页面通过各种方法提交的数 据,例如表单、文件流等等。 2 )允许人们之间的合作:一个s e r v l e t 能并发处理多个请求:他们 可以使用在诸如在线会议这样的同步请求支持系统。 3 )转送请求:s e r v l e t 可以转送请求给其他的服务器和s e r v l e t 。这 就允许在镜象同样内容的几个服务器之间平衡负载。按照任务 类型或组织范围,可以允许被用来在几个服务器中划分逻辑上 的服务器。 4 1s e r v l e t 编写者们可以定义彼此之间共同工作的激活代理,每个 代理者是一个s e r v l e t ,而且代理者能够在他们之间传送数据。 422 2j d b c j d b c ( j a v ad a t a b a s ec o n n e c t i v i t y ,j a v a 数据库连接) 是一种用于执 行s q l 语句的j a v a a p i 。它由一组用j a v a 编程语言编写的类和接口组 成。j d b c 为数据库开发人员提供了一个标准的a p i ,使他们能够用纯 j a v a a p i 来编写数据库应用程序。 有了j d b c ,向各种关系数据库发送s q l 语句就是一件很容易的事。 因为,有了j d b ca p i ,就不必为访问s y b a s e 数据库专门写一个程序, 而又为访问o r a c l e 数据库又专门写一个程序等等。您只需用j d b ca p i 写个程序就够了,它可向相应数据库发送s q l 语句。而且,使用j a v a 编程语言编写的应用程序,就不用再为不同的平台编写不同的应用程序。 将j a v a 和j d b c 结合起来将使程序员只须写一遍程序就可让它在任何 平台上运行。 j a v a 具有坚固、安全、易于使用、易于理解和可以从网络上自动下 载等特性,是编写数据库应用程序的杰出语言。所需要的只是j a v a 应用 程序与各种不同数据库之间进行对话的方法,而j d b c 正是作为此种用 途的机制。 j d b c 扩展了j a v a 的功能。例如,用j a v a 和j d b c a p i 可以发布含 有a p p l e t 的网页,而该a p p l e t 使用的信息可能来自远程数据库。企业也 可以用j d b c 通过i n g a n e t 将所有职员连到一个或多个内部数据库中,即 使这些职员所用的计算机有w i n d o w s 、m a c i n t o s h 和u n i x 等各种不同的 操作系统。随着越来越多的程序员开始使用j a v a 编程语言,对从j a v a 中 便捷的访问数据库的要求也在日益增加。 因此,j d b c 是为外部客户提供获取信息更新的更好方法。 4 23 为什么选择j a v a 由于j a v a 平台拥有以下众多特点,所以我们选用了j a v a 作为整个门 户系统开发的核心语占。 1 ) j a v a 为大规模的软件工程项目的开发提供了些特性,例如包、 面向对象方法、单继承、垃圾回收机制、统一的数据格式。另外, 线程和并发控制已经成为了语言的组成部分,非常有易于使用和 控制。 2 、j a v a 提供了包含丰富函数的类库,例如:网络套节字通信、s s l 存耿、网格计算等等。 3 1 通过j a v ab e a n 和e n t e r p r i s ej a v ab e a n 实现了组件结构体系,使 得基于组件的程序开发成为可能。 4 、j a v a 程序的部署比较容易,可以通过w e b 浏览器或者某些自动 安装机制轻而易举的进行部署。 5 、由于j a v a 采用了统一的字节码,使得j a v a 可以在异构的平台上 运行,真正做到“一次编程,到处使用”。 6 、j a v ab e a n 形式的组件维护较为容易,可以被轻松的集成到不同 的丌发环境中使用。 7 ) j a v a 的应用广泛,小到在智能卡、p d a 等广泛应用,大到应用 于科学领域的分布式应用中,例如网格计算。 8 ) j a v a 在业内受到很多厂商的支持,例如i b m 、o r a c l e 、b e a 等大 型厂商,其发展前途十分光明。 9 ) j a v a 的普及也是非常迅速的,现在非常多的学校都已经开设与之 相关的课程。 l o ) 虽然当前j a v a 运行的效率经常受到指责,但是s u n 公司已经向 客户承诺将给予足够的重视,尽快提高其性能;同时,随着计算 机硬件的飞速发展,j a v a 的运行效率问题也将很快不是问题。 4 3a o t iv e x 4 3 1a c t i v e x 概要 a c t i v e x 是m i c r o s o f t 公司提出的一组使用c o m ( c o m p o n e n to b j e c t m o d e l ,部件对象模型) 使得软件部件在网络环境中进行交互的技术集。 它与具体的编程语言无关。作为针对i n t e m e t 应用开发的技术,a c t i v e x 被广泛应用于w 曲服务器以及客户端的各个方面。同时,a c t i v e x 技术 也被用于方便地创建普通的桌面应用程序。 a c t i v e x 既包含服务器端技术,也包含客户端技术。其主要内容是: a c t i v e x 控制( a c t i v e xc o n t r 0 1 ) :用于向w 曲页面、m i c r o s o f t w o r d 等支持a c t i v e x 的容器( c o n t a i n e r ) 中插入c o m 对象。 a c t i v e x 文档( a c t i v e xd o c u m e n t ) :用于在w e bb r o w s e r 或者其 他支持a c t i v e x 的容器中浏览复合文档( 非h t m l 文档) ,例如 m i c r o s o f tw o r d 文档,m i c r o s o f te x c e l 文档或者用户自定义的文 档等。 a c t i v e x 脚本描述( a c t i v e xs c r i p t i n g ) :用于从客户端或者服务 器端操纵a c t i v e x 控制和j a v a 程序,传递数据,协调它们之间的 操作。 a c t i v e x 服务器框架( a c t i v e xs e r v e rf r a m e w o r k ) :提供了一系 列针对w 曲服务器应用程序设计各个方面的函数及其封装类 诸如服务器过滤器、h t m l 数据流控制等。 a c t i v e x 控制是o l e 控制的更新版本。控制是建立可编程部件的主 要元素。a c t i v e x 控制可以用于所有支持c o m 规范的容器中,或者作为 i n t e r n e t 控制嵌入到w e b 页面中。用户访问浚页面时将下载该控制并自动 在本地注册。利用脚本描述语言( s c r i p t ) 可以在控制之间以及客户与服 务器之间通过设置属性( p r o p e a y ) 、调用方法( m e t h o d ) 和激活事件 ( e v e n t ) 进行通信。 a c t i v e x 控制与以前的o l e 控制相比,具有更少的接口,并且可以 没有窗口。所有的a c t i v e x 控制都支持i u n k n o w n 接口。 另外,设计运行于i n t e r n e t 的a c t i v e x 控制时,必须考虑以下几个问 题: a c t i v e x 控制的文件大小尽可能小; 持续存储数据( p e r s i s td a t a ) 如何保存: 如何在i n t e r n e t 上下载和安装: 控制如何在客户端注册。 4 32a c t iv e x 控制在w e b 上的应用 考虑到w e b 的安全性为了在服务器与客户端建立良好的信任关系, 必须为每个在w e b 上使用a c t i v e x 控制设置一个“代码签名”( c o d e s i g n i n g ) 。 在w e b 页面中使用a c t i v e x 控制,还要对之进行包装,将有关的动 态连接库及信息文件压缩到一个扩展名为c a b ( c a b i n e t ) 文件中。可以 使用v i s u a ls t u d i o 提供的工具包装a c t i v e x 控制。在h t m l 文件中,使 用o b j e c t 标签插入a c t i v e x 控制,并利用v b s c r i p t 或者j a v a s c f i p t 访 问该a c t i v e x 控制。客户端用i n t e r n e t e x p l o r e r 浏览此页面时,可以自动 对该文件进行解包。出于安全性的考虑,i n t e m e te x p l o r e r 为a c t i v e x 部 件的下载、初始化、是否拥有合法的代码签名以及是否允许s c r i p t i n g 等 设置了不同的安全级别,用户可根据需要进行设置。 j 下如i n t e r n e t 和w e b 技术一样,a c t i v e x 技术的发展e :| 耨月异,新的 更强大的开发工具使得服务器及客户端的应用开发、网站建设变得更简 单,并容易扩展和重用。随着m i c r o s o f f 的包括w i n d o w sn t 、i n t e r n e t i n f o r m a t i o ns e r v e r 、a c t i v es e r v e rp a g e s 以及m i c r o s o f f f r o n t p a g e 、i n t e r n e t e x p l o r e r 等组件在内完整的i n t e r n e t 解决方案被广泛使用,a c t i v e x 技术 将会有更大的发展。 4 4x m l 4 41x m l 概述 x m l 是e x t e n s i b l em a r k u pl a n g u a g e 的简写,通常翻译为扩展性标记 语言。 x m l 具有与描述w e b 页面的h t m l 语言相似的格式。h t m l 是大 家所熟悉的一种网页描述语言,它就是一种标记语言,其全称为h y p e r t e x t m a r k u pl a n g u a g e ,即是超文本标记语言。h t m l 里面有很多标签( 标记) , 类 f g , 等等,这些标签的名称和属性都是在h t m l 规范里 面已经明确定义了的,不可以更改的。而x m l 里允许你自己随意创建这 样的标签,这样更易于生成数据,所以x m l 是具有可扩展性的。 但是,以下几点是需要特别注意的: 1 1x m l 并不是标记语言。它只是用来创造标记语言( 比如h t m l ) 的元语言。x m l 和h t m l 是不一样的,它的用途比h t m l 要更 为广泛。 2 1x m l 并不是h t m l 的替代产品。x m l 不是h t m l 的升级,它 只是h t m l 的补充,为h t m l 扩展更多功能。我们仍将在较长 的一段时闯里继续使用h t m l 。但值得注意的是h t m l 的升级 版本x h t m l 的确j 下在向适应x m l 靠拢。 3 ) x m l 不能直接用来编写网页。即便是包含了x m l 数据,依然要 转换成h t m l 格式刁能在浏览器上显示。 记。 下面就是一段x m l 示例: 2 0 0 4 年2 月2 6 日 晴 户系统开发结束了。q c n n t e n t 其中类 以 、 语句就是按照我们的需求自己创建的标 4 4 2x m l 解析技术 随着x m l 越来越广泛地被采用,高效解析x m l 文档也变得越来越 重要。尤其是对于那些要处理大量数据的应用程序,这种技术尤为重要。 不正确的解析会导致过度的内存消耗和过长的处理时间。 x m l 解析器将一个未经处理的序列字符串作为输入,并对它执行一 些特定的操作。首先它检查x m l 数据是否符合句法规则,确保开始标记 有相应的结束标记,并且没有重叠的元素。大多数解析器还根据文档类 型定义( d o c u m e n tt y p ed e f i n i t i o n ,d t d ) 或x m ls c h e m a 进行验证, 核实其结构和内容与d t d 或s c h e m a 相符合。最后,解析输出通过编程 a p i 提供对x m l 文档内容的访问。 现有三种用于j a v a 的流行x m l 解析技术: 文档对象模型( d o c u m e n t o b j e c t m o d e l ,d o m ) ,一个来自w 3 c 的成熟标准。 用于x m l 的简单a p i ( s i m p l e a p if o rx m l ,s a x ) ,第一个被 广泛采用的用j a v a 编写的x m l a p i 。 用于x m l 的数据流a p i ( s t r e a m i n g a p i f o r x m l ,s t a x ) 。 4 4 21d o m 解析 d o m 是一个基于树型的解析技术,它在内存中构建一棵完整的解析 树。它可以实现对整个x m l 文档的全面、动态访问。 文档是所有d o m 树的根,这个根有至少一个子节点,即根元素,根 元素有予节点,它的子节点也有自己的子节点。子节点可以是元素、文 本、注释、处理指令以及类似的信息。 佼用d o m 非常简单。可以随机地访问x m l 文档,因为整个树都构 建在内存中。通过d o m a p i 可以修改这些节点,例如增加一个子节点或 修改、删除一个节点。 虽然内存树结构提供了很好的导航支持,但仍有一些解析策略问题需 要考虑。首先,整个x m l 文档必须一次解析完成,不可能只做部分解析。 其次,在内存中加载整个文档和构建完整树结构成本很筒,尤其当文档 非常大的时候。第三,般的d o m 节点类型在互操作性上有优势,但 对于对象类型绑定也许不是最好的。 相对来说,某些应用程序更适合采用d o m 解析。当应用程序需要随 机访问x m l 文档时很适合采用d o m 解析。例如在处理模板时需要重复 查找整个文件的x s l 处理器。因为d o m 能够更新文档,因此对于需要 修改数据的应用程序,如x m l 编辑器,d o m 解析也很方便。 4 42 2s a x 解析 s a x 是一个用于处理x m l 的事件驱动的“推”模型。它不是w 3 c 标准,但它是一个手导到了广泛认可的a p i ,大多数s a x 解析器在实现的 时候都遵循标准。s a x 解析器不象d o m 那样建立整个文档的树型表示, 而是在读取文档时激活一系列的事件。这些事件被推给事件处理器,而 事件处理器则提供对文档内容的访问。 与d o m 相比,s a x 解析器的性能更佳。它提供对x m l 文档内容的 有效低级访问。s a x 模型最大的优点是内存消耗小,因为整个文档无需 一次加载到内存中,这使s a x 解析器可以解析大于系统内存的文档。另 外。不需要像在d o m 中那样为所有节点创建对象。 s a x 的缺点是必须实现处理所有到来事件的事件处理程序。必须在 应用程序代码中维护这个事件状态。因为s a x 解析器不能交流元信息, 如d o m 的父子支持,所以必须跟踪解析器所处文档层次的位置。这样, 文档越复杂,应用逻辑就越复杂。虽然没有必要一次将整个文档加载到 内存中,但s a x 解析器仍然需要解析整个文档,这点和d o m 样。 s a x 面临的最大问题也许是它没有内置如x p a t h 那样的导航支持。 再加上它的单遍解析,这就意味着它不支持随机访问。 s a x 解析非常适合于那些只需要单遍读取内容的应用程序:同时, s a x 解析对根据d t d 和x m ls c h e m

温馨提示

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

评论

0/150

提交评论