(计算机应用技术专业论文)基于j2ee的企业mis实现技术研究.pdf_第1页
(计算机应用技术专业论文)基于j2ee的企业mis实现技术研究.pdf_第2页
(计算机应用技术专业论文)基于j2ee的企业mis实现技术研究.pdf_第3页
(计算机应用技术专业论文)基于j2ee的企业mis实现技术研究.pdf_第4页
(计算机应用技术专业论文)基于j2ee的企业mis实现技术研究.pdf_第5页
已阅读5页,还剩52页未读 继续免费阅读

(计算机应用技术专业论文)基于j2ee的企业mis实现技术研究.pdf.pdf 免费下载

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

文档简介

摘要 随着计算机应用技术的发展和市场竞争加剧,开发高效、安全的企业信息系 统已经成了各企业为了提高各自生存和竞争能力的重要手段之一。新型的信息系 统不仅需要支持局域网下各个部门应用,更要建立基于i n t e r n e t 的企业间信息交 互和资源共享。因此,构建新型的企业信息系统不仅需要有效利用信息资源,与 遗留系统有机结合,还要考虑到系统内部事务执行的可靠性,数据操作和事务操 作的安全性,系统对于业务变化所必需面对的可扩展性。 本论文从应用系统的总体结构入手,对系统的架构进行了详细的分析,并在 此基础上,结合系统中的一个模块,深入研究了应用中的安全控制机制,给出了 在j 2 e e 平台上使用j a a s 框架的应用实例。 本文是以南京跃进汽车集团冲压件厂m i s 项目升级为背景完成的。 关键字一j 2 e e 、e j b 、m v c 、j a a s 、m i s 、授权、认证、角色 a b s t r a c t d i s t r i b u t e do b j e c t sa n dw o r l dw i d ew e ba r ep l a y i n gam o r ea n dm o r ei m p o r t a n t r o l ei nt h ec o n s t r u c t i o no fe n t e r p r i s ed 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 tb e c a u s et h e f o r m e rc a nb eu s e dt ow r a pb u s i n e s sl o g i ca n da c c e s s e dt h r o u g hh e t e r o g e n e o u s p l a t f o r m s ,a n dt h el a t t e r o f f e rp o w e r f u la b i l i t i e si nt h ei n f o r m a t i o ni n t e g r a t i o na n d i n t e r a c t i o nw i t he n du s e r t h ej 2 e ea p p l i c a t i o nb a s e do nw e bn e e dt or e s t r i c tt h e a c c e s st o i m p o r t a n ti n f o r m a t i o n ,p r o v i d ev a r i o u sa c c e s sr i g h t st o v a r i o u su s e r sa n d p r o t e c t t h es e c u r i t yo ft r a n s m i s s i o no fs e n s i t i v ei n f o r m a t i o n j a a st e c h n i q u ei sa g o o ds o l u t i o n t h i sp a p e ri n t r o d u c e st h ea r c h i t e c t u r eo ft h ea p p l i c a t i o n ,j a v as e c u r i t ym o d e l , j 2 e es e c u r i t ym o d e la n dj a a sa r c h i t e c t u r e ,t h e nm a k et h e l o g i nm o d u l ed e s i g n a p p l y i n gj a a s b a s e do nj 2 e e t h i sp a p e ri sb a s e do nt h ep r o j e c t “n a n j i n gy u e j i nm o b i l ec o r pp a r t sf a c t o r y m i s u p d a t e d ” k e y w o r d s :j 2 e e ,e j b ,m v c ,j a a s ,m i s ,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 ,r o l e 南京航空航天人学坝l 二学位论文 1 1 背景 第一章绪论 随着网络技术的高速发展,信息高速公路已经把世界紧密地联系在一起,企 业已经不在只是某一独立的生产环节,而是供应链中众多环节中的环。而且经 济全球化的发展,使得跨国企业的数量日益增多。地理上分布全球各地的企业比 比皆是。新型的信息系统不仅需要支持局域网下各个部门应用,更要建立基于 i n t e r n e t 的企业间信息交互和资源共享。例如,对于一个地理分布广泛的企业来 说,不同部门不同机构要求能在统一的平台上进行业务处理,实现分散机构的统 一管理。 因此,构建新型的企业信息系统不仅需要有效利用信息资源,与遗留系统有 机结合,还要考虑到系统内部事务执行的可靠性,数据的安全性,系统随业务的 变化所必需应对的可扩展性。关于企业级应用的系统结构,传统的客户服务器 系统是基于二层结构的,其中在数据层和表示层之间有着清晰的边界。这类应用 一般都是数据驱动,应用运行在客户端,并且在企业中会配置一个数据库服务器。 这里存在了许多问题。其一,处理负载都位于客户端上,服务器仅充当了应用程 序和数据间的传输控制器。不仅应用程序受客户端p c 资源限制,而且网络流量 也增加了。其二,系统对于应用环境变化的承受能力很低,应用程序的修改,分 发,部署,都很麻烦。 为了解决上述这些问题,业界提出了三层体系结构的概念,应用层被划分成 几个相互隔离的逻辑层。每一逻辑层都定义好一套接口集。第一层,也就是表示 层,主要由界面友好的用户部分组成;中间层,即业务层,由应用逻辑和业务逻 辑组成:而第三层,数据层,包括应用程序所需要的数据。从用户界面中分离出 应用逻辑,极大地增强了应用程序设计的灵活性。在应用逻辑对表示层提供了一 套定义清晰的接口的情况下,甚至不用改变逻辑部分,就可以建立和分发多种用 户界面。第三层包含的数据可以由不同信息源组成,可以是像o r a c l e 和m s s q l s e r v e r 等数据库,也可以是x m l 文档,还可以是l d a p 服务器,还有企 业遗留系统中的存储信息。 在三层结构的基础上,人们又进一步提出n 层体系结构。结构如下 用户接口层负责处理用户与应用程序之间的交互过程;它可以是一个 通过防火墙运行的w e b 浏览器,也可以是一桌面应用程序,甚至还能是 无线设备。 表示逻辑层,定义了用户界面要显示的内容和如何处理用户请求。这部 分针对不同客户的需求会有不同。 基十j 2 e e 的企业m i s 实现技术研究 业务逻辑层,更多的是与数据相关,对应用规则实施建模。 基础框架服务层,提供应用系统需要的基础设施,如传输协议的实现, 事务处理等等。 数据层,应用数据存放处。 在这种多层体协结构的基础上,为了便于划分工作内容、增强应用组件的可 复用性,还可以引入m v c 设计模式,即模型一视图一控制器( m o d e i v i e w c o n t r o l l e r ) 模式,它把数据模型与如何表示信息的部分视图分离出来。它们两者 之间是由应用业务逻辑控制器来控制信息流向。 至此,所讨论的内容只局限于单个应用。在多个应用中间,许多信息驱动的 业务流程,比如订单驱动生产等,要求应用中引入消息驱动的机制。异构应用系 统间的业务交互需要建立基于x m l 消息传递的松散耦合体系。这些新的需求都 是新的应用平台所必须满足的。 1 2 现状 目前,有多种技术途径来实现企业级应用。最有代表性的是由微软公司提出 的n e t 平台和s u n 、l b m 等公司提出的j 2 e e 平台。下面将对这两种技术作简 单介绍并给出比较。 1 2 1 n e t 一个基于i n t e r n e t 高度分布式计算环境的以简化应用程序开发为目的的全 新计算平台。它借鉴了j a v a 的可在各个平台上( 安装j a v a 虚拟机) 运行的特点, 通过一个“通用语言的执行时期系统”( c o m m o nl a n g u a g er u n t i m e ,c l r ) ,来 执行l l 格式的程序代码,任何语言只要被编译成i l 格式后,就可以在n e t 平 台上执行。c l r 作为在运行时管理代码的代理,提供了核心服务,如:内存管 理、线程管理等,强制保证代码的安全和正确。平台还提供了个n e t 框架类 库,这是一个全面的、面向对象的可重用类集合,可以用于开发命令行、g u l 应用程序。 表示层:a s pn e t 。包括w e bf o r m s ,w i n d o w sf o r m s 。a s p + 可以用v b , c 撑编写,一次编译成i l 格式,而不需要像a s p 那样每次都要解释执行。 中间业务层:c o m + 服务。c o m + 月e 务主要面向中间层应用程序开发,并主 要为大型分布式应用程序提供可靠性和可扩展性。这些服务是对n e t 框架所提 供服务的补充:通过n e t 框架类,可以直接访问这些服务 数据层:a d o + 技术。a d o + 被设计为基于网络的可扩展的应用程序和服务 提供数据访问服务。 2 南京航卒航天人学顺 学位论文 1 2 2j 2 e e j 2 e e 平台本质上是一个分布式的服务器应用程序设计环境一个j a v a 环境,它提供了: 宿主应用的一个运行基础框架环境。 一套用来创建应用的j a v a 扩展a p i 。 一个典型的j 2 e e 平台提供了一个或多个容器。通常有两个: w e b 容器:包含j a v as e r v l e t 和j s p e j b 容器:企业级j a v a b e a n 容器的基本任务就是为了应用组件提供一个运行环境,也就是容器的j v m 中创建和调用应用组件实例,管理应用组件的生命周期,提供涉及应用的事务, 安全性,系统资源管理,集群的平衡负载等服务。 以多层的观点看,同样,j 2 e e 平台也可以大致分以下三层。 表示层:j s p j a v ab e a n s e r v l e t 。主要用于视图显示,视图逻辑控制,数 值传递等。 中间业务层:企业器j a v a b e a n 。用于业务逻辑的封装。 企业信息系统层:数据库等。 1 2 3j 2 e e 与n e t 的比较 主要是在可移植性方面,n e t 只能在w i n d o w s 上运行,理论上它支持多种 语言,但其核心技术( 如i l 执行时期系统,a s p + ,w i n d o w sf o r m ,w e bf o r m ) 都被微软所垄断。j 2 e e 则可在所有j v m 平台上执行,但必须有兼容的服务( e j b 包容器,j m s 等) 。j 2 e e 的一切标准都是公开的,许多厂商提供兼容的产品和 开发工具。 1 3 论文的研究目标和主要内容 本论文结合了“南京跃进汽车集团冲压件厂m i s 升级”项目,以设计开发基 于j 2 e e 平台的管理信息系统为论文的主要内容和目标。 新的系统将是基于w e b 的企业级应用,运行于组织的局域网,并且可以借 助i n t e r n e t 与客户或上下游厂商或异地的其他部门进行业务交往。客户端不需要 安装任何定制的软件,通过w e b 浏览器访问系统。考虑到企业内部数据的保密 性,登陆模块采用了j a a s 技术( j a v a 认证和授权) ,可以灵活实现不同级别管理 捧十j 2 e e 的企业m i s 实现技术研究 人员不同事务的访问权限控制。由于j 2 e e 业务实现的独立性特点,系统还可以 支持不同类型的客户端设备,除了p c ,p a d 和掌上电脑等移动设备也将被支持。 另外,由于e j b 本身就具有模块化的特点,系统具备了很好扩展性和适应性。 考虑到管理信息系统的复杂性和与行业结合紧密的特点,本篇论文先是讨论 了整体设计方面,突出j 2 e e 在开发企业级应用方面的优势,重点讨论了系统中 用户身份认证授权方面的问题。具体的内容和章节安排如下: 第一章绪论:主要介绍论文背景、企业级分布式应用开发的现状以及论 文的研究目标和主要内容。 第二章 j 2 e e 体系结构:介绍j 2 e e 的体系结构,客户层,e j b 层,安 全方面的特点,j 2 e e 应用程序设计的考虑事项。 第三章 系统的总体设计:描述了系统的总体设计,模块划分,系统的工 作流程。 第四章 用户登录模块的设计实现与相关技术:j a v a 及j 2 e e 平台的安 全模式,j a a s 的体系结构,用户身份认证授权模块的设计与实 现方案。 第五章 论文总结:分析系统的不足,提出完善系统所需的工作。 商京航空航天人学硕| 一学位论文 第二章j 2 e e 体系结构 2 1j 2 e e 的体系结构 2 。1 1 平台概述 j 2 e e 平台提供了一个多层分布式应用程序模型。这也就意味着应用程序的 各个部分能够运行在不同的设备上。j 2 e e 结构中分别定义了客户层( c l i e n tt i e r ) 、 中间层( m i d d l et i e r ,由一个或多个子层组成) 和用来提供现存信息系统的各种服 务的后端系统层。客户层可以支持各种客户类型,即包括公司防火墙内部和外部 的用户。中间层通过w e b 层的w e b 容器来支持客户服务,并通过e j b 层的e j b 容器支持业务逻辑组件服务。企业信息系统层( e l s ) 能够通过标准a p i 的方法来 支持对现存信息系统的访问。 以下是一张j 2 e e 的整体结构图: 图2 1j 2 e e 体系结构 在j 2 e e 基于组件的开发模型中,其中心是容器的概念。容器是提供特定 组件服务的标准化运行时环境。通过这些组件,可以在任何j 2 e e 平台上得到所 期望的服务。例如,所有j 2 e ew e b 容器都提供响应客户要求、执行请求时j 司 处理、以及将结果返回至客户的运行时支持。所有的e j b 容器都提供对事务和 甚于j 2 e e 的企业m i s 实脱技术研究 e j b 组件的生命周期管理的自动化支持等等。 此外,容器还提供了一种用来在汇编或部署时选择应用程序行为的机制。 通过部署描述符的使用( 一种x m l 格式的文本文件) ,组件在部署时能够配置为 一个特定的容器环境,而不是组件代码。这些在部署时能够配置的特性还包括安 全性检查、事务控制以及其他管理功能。 j 2 e e 规范定义了必须支持的组件容器,却没有指定或者说限制对于这些容 器的配置。这样,两种容器类型能够运行在一个平台上,也可以让w e b 容器运 行在个平台上而让e j b 容器运行在另一个平台上,或者说一个j 2 e e 平台可 以由多个平台上的多个容器组成。 2 1 2j 2 e e 平台优势 j 2 e e 平台支持一个简化的基于组件的开发模型。因为它基于j a v a 编程语 言,这一模型具有“编写次,随处运行”的可移植性,并被任何遵循j 2 e e 标 准的服务器产品所支持。基于组件的应用程序模型可以很容易和很灵活地映射到 应用程序所期望具有的功能上,同时也简化了对应用程序的维护,由于各种组件 能够独立地进行更新和取代,新功能也就可以透过简单地更新所选择的组加入到 现有应用程序中。许多应用程序行为够在应用程序进行汇编或部署时进行设 置,而无需重新编码。组件有助于划分应用程序开发的劳动量,j 2 e e 规范中所 涉及到的角色有应用程序组件提供者、应用程序汇编者、应用部署者等。 j 2 e e 容器提供了一种机制,以支持对分布式应用程序进行简单伸缩。由于 j 2 e e 容器提供了支持事务处理、数据库连接、生命周期管理以及其他一些影响 性能的组件,所有它们可以可具有在这些范围内的可伸缩性。例如通过提供数据 库连接池,容器可确保客户能快速地访问数据。 j 2 e e 平台有大量访问现有信息系统的a p i ,例如:j d b c 一访问数据库: j 1 i a 一用来协同跨异类企业信息系统间的事务过程,并对其进行管理等等。此外, j 2 e e 还可以通过连接器结构,支持对i b m 的c i c s 和l m s 等系统的特殊访问。 e j b 组件能够将连接器访问对象和包含中间商务逻辑的服务性a p i 结合在一起, 从而完成它们的商务功能。 j 2 e e 平台提供了简化、统一的安全模型。组件开发者可以在方法级别上指 定某一个组件的安全要求,从而确保只有拥有合法权益的用户能访问特定的数据 操作。在e j b 和j a v as e r v l e ta p i 都提供对代码的安全性检查的同时,匹配不 同角色用户的基本机制在应用程序进行部署时执行。 南糸航空航天人学坝i 学位抡芟 2 2 客户层 2 2 1 客户的类别 客户的程序会受到客户执行环境的限制,如操作环境,部署和实现限制因 素的影响。客户的许多特征是由客户连接到企业级应用程序的层所决定的。按照 客户与之交互的层,可以把客户分成三大类: 连接到w e b 层的客户。他们在w e b 浏览器或浏览器插件中的桌面或其 他宿主上执行。应用程序的商务逻辑和表示逻辑可以在服务器或客户上 运行。 连接到e j b 层的客户。他们通常是运行在台式计算机上的g u l 程序。 e j b 客户可以访阃j 2 e ee j b 层的所有实用程序。应用程序的表示逻辑 在e j 8 客户上运行,而商务逻辑在服务器上运行。 企业信息系统客户直接访问企业信息系统资源。通常这些程序为后端系 统提供管理功能。表示逻辑和商务逻辑都包含在客户上。 2 2 2 w e b 客户 w e b 客户通常在浏览器中运行,用户界面在服务器端由w e b 层生成并使用 h t m l 来通信。a p p l e t 和j a v a s c r i p t 可以用来增强浏览界面。就客户而言,浏览 器或其他等价的程序产生用户界面并执行与用户的交互。数据交换由x m l 完成。 w e b 客户使用h t t p 或h t t p s 作为传输协议。它们健壮简单,h t t p 服 务器被广泛使用,因此可以穿越防火墙。但是h t t p 是个响应请求协议,没有 建立对话的概念,而且它不是为处理分布式计算设计的,没有事务或安全的背景。 这些都在服务器端作了补充。 平时所说的大多数w e b 客户端都是运行在w e b 浏览器中。浏览器可以处 理h t t p 通信和h 丁m l 表现的细节,而应用程序组件可以集中处理h t m l 不能 表达的交互事务。w e b 客户具体还可分为以下几类: w e b 浏览器:w e b 浏览器是最简单的j 2 e e 客户端。加上浏览器所支 持的d h t m l 和j a v a s c r i p t ,w e b 浏览器可创建出很好的用户界面。如 果移动设备上运行了w e b 浏览器,同样可以作为j 2 e e 应用系统的客 户端。 j a v aa p p l e t = 他们通常是运行在w e b 浏览器上的g u i 组件。a p p l e t 可以为客户端提供强大的用户界面。对于客户机,它是来自异地的代码, 因此对a p p l e t 的安全限制和检测显得尤为重要。 捧f 二j 2 e e 的企业m i s 实脱技术研究 浏览器插件:最典型的是微软的i n t e r n e te x p l o r e r 的a c t i v e x 组件。但 是,插件通常是为特定的操作系统编写的。如果在i n t e r n e t 上要为每个 客户端用这种方法实现功能,需要多种版本。 独立的w e b 客户:这种模型与浏览器的方式正好颠倒。客户端应用程 序由独立的用户界面,用特制的组件显示来自服务器的h t m l 响应。 它的优点是给用户提供了一个更具交互性的g u i 。但是它的缺点是显著 的,正如传统的c s 结构样,当为客户端升级时,每个客户桌面上 的程序都必须显式的更改。 2 2 3e j b 客户层 e j b 客户是和j 2 e ee j b 层交互的应用程序客户端。他们管理自己的g u i , 使用r m i i i o p 协议于j 2 e ee j b 层交互。许多中间层服务对应用程序客户端来 说都是可用的:查找操作j n d i ,接发消息的j m s ,访问数据库的j d b c 等。 客户容器通常与j 2 e ee j b 容器的同一提供商提供,它管理r m i i i o p 通信 的细节,也处理安全、事务和部署问题。 e j b 客户应用程序包装在j a r 文件中,其中包括了类似于其他j 2 e e 应用 程序组件的部署描述符。这种描述符描述了应用程序引用的企业级b e a n 和外部 资源。客户端程序对资源的访问是在部属时配置的,并且为企业级b e a n 和资源 指定了名字。 e j b 客户使用企业级b e a n 来启动事务,也可以使用j d b c 的事务实用程 序。客户端应用程序需要鉴别才能访问j 2 e e 的中间层。鉴别由客户程序所在的 容器提供,并于平台的鉴别系统集成。客户端容器可能会为用户提供一个登陆窗 口,来收集所要鉴别的数据。 在事务处理能力和集成的安全方面,e j b 客户的优势是显然的,甚至应用 程序客户端容器可以和客户运行的操作系统安全相结合,提供更加透明和易管理 的安全系统。 但是e j b 客户端程序缺点也很显著:需要显式部署,重新配置防火墙等, 重复了c s 结构中我们所遇到的很多麻烦。 2 2 4 企业信息系统客户 企业信息系统客户直接访问企业信息系统资源并且承担了应用程序应用逻 辑的责任。他们直接通过了j d b ca p i 或者平台提供的连接器访问企业的信息系 统a 存在很多的安全问题。业务逻辑和表示逻辑混合,当系统规模很大时,维护 南京航空航天入学硕: 学位论史 的代价相当高。 2 3j 2 e e 系统客户层常用结构 在j 2 e e 应用程序中只要有可能就应当使用w e b 客户。有d h t m l 和 j a v a s c r i p t 等技术的帮助,w e b 浏览器可以支持相当强大和快速的用户界面,还 可以借助a p p l e t 生成交互性更好的界面。 在基于w e b 客户的结构中,用户的交互层与传统的客户层分离。由w e b 浏览器来管理与用户的交互,而客户层的其余响应功能留给了w e b 服务器端应 用程序实现。这些功能包括驱动用户界面的逻辑、与e j b 组件交互和与数据库 交互等等。 为了建立动态的w e b 应用程序,j 2 e e 体系结构提供了w e b 容器、 j a v a s e r v l e t a p i 和j s p a p i 来创建和管理w e b 应用程序。下图显示一个j 2 e e w e b 容器内w e b 应用的工作情况 图2 2w e b 客户层的应用流程 这里描述了一个w e b 层应用的过程: 1 浏览器( 客户) 连接到w e b 服务器,并且在连接上发送一个h t t p 请求。 2 w e b 服务器需要知道这个请求是否对应于w e b 容器种的一个w e b 应用。这 就要求w e b 服务器和w e b 容器之间能相互理解。容器用s e r v l e t 上下文来 标识w e b 服务器。在部署应用到容器时,定义了这个上下文。一旦知道由 某一个容器来处理请求,w e b 服务器会把该请求代理给w e b 容器。这一过 程可以看作是w e b 服务器调用w e b 容器的l o c a l r e m o t e 方法的过程。 堆十j 2 e e 的企业m i s 实现技术研究 3 w e b 容器收到请求信息,决定由哪个应用程序来处理。在j 2 e e 应用程序中, h t t p 请求被映射为一个s e r v l e t 、i s p 页面等资源上。资源还包括 h t m l x m l 、图像、a p p l e t 类等。在部署w e b 应用时,要定义好这些资源 的映射信息,如果资源为静态的,容器的任务就是把请求映射到这些资源上, 传递到w e b 服务器上,如果容器根据映射信息,发现该请求要被s e r v l e t 处 理,那么容器将创建或定位s e r v l e t 实例,并将请求代理给实例。 4 当容器将请求代理给实例时,容器也会把封装了h t t p 请求和h t t p 应答的 对象传递给s e d v e t 实例。s e r v l e t 实例将应答写入对象,由容器、w e b 服务 器处理后,返回给浏览器( 客户) 。 2 4e j b 层 2 4 1e j b 概述 e j b 组件是设计用于封装业务逻辑,从而避免应用程序开发人员考虑系统级 问题。这些问题包括事务、安全性、伸缩性、并发问题、通信、资源管理、持久 化等等。 概括地说,e j b 组件就是j a v a 类与一个x m l 文件的集合,封装为一个集体。 j a v a 类必须遵循某些规则,并且提供明确的回调方法。e j b 组件运行于应用程 序服务器的e j b 容器内。容器负责系统级问题,而让e j b 开发者只要关注于真 正的业务逻辑。e j b 同时也是一项规范,开发好的组件可以在不同的满足规范的 服务器实现方案间迁徙。 e j b 可以处理任何类型的客户端: 可以使用s e r v l e t 与j s p 为w e b 客户端提供访问 可以从j a v a 客户端使用r m i 直接访问e j b 。 可以使用c o r b a 访问支持r m i i l o p 的服务器。 可以使用通过s e r v l e t 为任何支持x m l 的客户端提供访问等等。 2 4 2e j b 容器及其服务 e j b 容器是组件的运行环境。组件驻留容器内,容器为组件提供服务,而容 器通常驻留于应用服务器,该服务器为他和其他容器提供运行环境。 通过使用e j b 组件,我们可以利用容器提供的服务。 1 持久化保存或恢复实体b e a n 状态的过程。最为常见的持久化代码形式 o 南京航空航灭火学坝士学位论文 是s q l ,特别是当数据库模式很复杂时,s q l 代码的编写冗长且困难。 编写e j b 框架的目的是将这些系统级问题转移给e j b 容器。 2 声明性事务事务管理可能很复杂,尤其是如果涉及多数据库访问组件。 e j b 可以无须任何编码就可以实现对复杂事物的管理。开发人员在开发 组件时,可以无需考虑应该什么时候提交或回滚一个事务。容器通过在 部署描述符中声明的e j b 方法的事务性属性,完成事务管理 3 数据缓存缓存极大地改善了应用的性能。在实体b e a n 中,表示对象的 持久化状态的实例变量实际上是一种数据缓存,该数据的永久性存贮就 位于数据库中。实际上持久化问题就是e j b 容器和底层数据库共同负责 管理实体缓存的同步。同步的操作将调用e j b l o a d ( ) _ 币1 : e j b s t o r e ( 1 。 4 声明性安全在每一个应用程序中,通过声明,不需要编码实现对e j b 组 件访问的控制。 5 伸缩性与错误修复依靠e j b 规范,应用程序服务器可以运行于集群环 境,并且对任何集群节点错误实施恢复。 2 4 3e j b 组成与分类 两种接口提供了e j b 的客户视图,实现这些接口使得容器可以调节客户对 e j b 的操作并为客户提供组件的简化视图。接下介绍这些接口和类: 本地接口允许客户创建新的e j b 实例或删除已有的e j b 实例,获得本 地接口的旬柄,并且这种句柄可以串行化。还可以通过调用 f i n d b y p r i m a r y k e y 0 方法来获得对实体对象的引用。 远程接口定义了e j b 的客户视图,即客户可用的方法。可获得本地接口, 删除e j b 实例,获得e j b 实例句柄,获得实体b e a n 实例的主键。 e n t e r p r i s eb e a n 类实现在远程接口中定义的方法。和远程接口共同负 责:c r e a t e 方法和f i n d e r 方法。 e j b 总体上可以分成两类: 实体b e a n 它表示存储在持久存储器或现存应用程序中的商务数据的对 象视图。b e a n 围绕数据提供了一种对象包装,以简化访问和处理它的任 务。这种对象接口有助于软件重用。实体b e a n 允许多个用户共享访问, 生存期可以超过客户和服务器的会话。 会话b e a n 用来实现保存特定于客户的应用逻辑的对象。对象的状态反 映它和客户的交互。会话b e a n 不是直接表示数据库中的共享数据的,尽 管它们可以访问和更新这些数据。会话对象的状态是非持久性的,不需 要写入永久存储器。会话本来是有状态的,但e j b 规范允许无状态b e a n 接十j 2 e e 的企业m i s 实现技术研究 作为一种提供不维持任何特定状态的服务器端行为的方式而存在。有状 态会话b e a n 它包含代表客户的会话状态,它们生命周期一般也就是它 所代表的客户存在的时间。无状态会话b e a n 它不包含特定于用户的数 据,在e j b 体系结构中单个无状态会话b e a n 提供了服务多个用户的方 法,它是个模型化可重用的服务对象,可以以较少的系统资源服务于 多用户。 2 5j 2 e e 中的安全体系 2 5 1j 2 e e 中的安全概念 j 2 e e 平台为企业应用的开发提供了良好的框架和服务。下面给出j 2 e e 中的 一些安全概念。 身份( p r i n c i p a l ) 身份是被在企业安全服务验证了的实体。身份作为实体的 标识,通过与身份相关的验证数据进行验证。通常情况下身份就是登陆名, 验证数据就是登陆密码。 安全策略域( s e c u r i t yp o l i c yd o m a i n ) 也称安全域( s e c u r i t yd o m a i n ) 或 s e c u r i t y r e a l m ,这是以一个逻辑范围,在这一范围内安全服务的管理员 定义实施通用的安全策略。从安全策略角度,可以将企业应用系统划分为 生产、供应商、合作伙伴等不同的安全域。 安全技术域( s e c u r i t yt e c h n o l o g yd o m a i n ) 它从安全技术角度划分区域, 在一个安全技术域中使用同样的安全机制来执行安全策略。一个安全技术 域可以包括多个安全策略域。 安全属性( s e c u r i t ya t t r i b u t e s ) 每个身份都有一系列与之相关的安全属 性。安全属性可用来访问被保护资源,检查用户身份和完成其他安全相关 用途。但j 2 e e 规范并没有限定怎样将安全属性与身份相联系。 凭t e ( c r e d e n t i a l ) 凭证包含或引用为j 2 e e 系统验证一个身份的验证信 息。如果成功验证,身份将获得一个包括安全属性的凭证。一个身份也可 以获取另一个身份的凭证。 2 5 2j 2 e e 中的认证模型 身份认证是用户或组件调用者向系统证明其身份的过程。用户通过某种方式 南京航空航天人学顷一l 学位论文 向系统提交验证信息( 用户名和密码或用户的数字证书) 。系统用安全策略来验证 客户身份。 一般验证分为三种类型: h t t p 基本验证( h 丌pb a s i ca u t h e n t i c a t i o n ) 被h t t p 协议所支持。这种 验证机制使用用户名和密码作为验证信息。w e b 客户端从用户获取用户 名和密码,然后传递给w e b 服务器,w e b 服务器在指定的区域( r e a l m ) 中验证用户。但这种方法对密码不加密,w e b 服务器对用户也是非验证 的,即身份不被用户信任。因为是应用层的机制,所以要在下面的层次上 采取安全措施,如在传输层上应用s s l 或在网络层上使用v p n 。 基于表单的验i e ( f o r m b a s e da u t h e n t i c a t i o n ) 使用自定义的登陆页面 和报错页面。其余和h t t p 基本验证类似。 基于客户端证书的验证( c l i e n t c e r t i f i c a t ea u t h e n t i c a t i o n )它通过 h t t p s ( h t t po v e rs s l ) 来保证证书安全。安全套接层( s e c u r es o c k e t l a y e 0 为验证过程提供了数据加密,服务器端认证,信息真实性等方面的 保证。客户端必须提供个公钥证书,它由一个证书授权机构( c a ) 颁发。 2 5 。3j 2 e e 的授权模型 授权紧跟认证过程,在识别了用户身份后,必须给其授权。在j 2 e e 编程模 型中,要求由额外的授权机制根据谁正在使用调用代码来限制对被调用组件的访 问。调用者身份可以从对调用代码有效的一组认证过程中建立,或者调用者可以 传播它的调用身份,任选一个身份或是匿名。在所有这些情况下,被调用组件都 可以得到一个证书。它包含了调用者身份安全属性描述。通过将调用者的安全属 性与被调用组件的安全属性作比较,来决定对被调用组件的访问。 在j 2 e e 体系结构中,容器本身作为调用者和它所管理的组件之间的授权边 界。 j 2 e e 提供了两种形式的授权: 声明性授权由部署者来建立与j 2 e e 应用程序相关联的强加于容器的 访问控制规则。部署描述符中定义了称为安全角色的逻辑特权,并将它 们与组件相关联来定义允许访问组件的特权。部署者将这些逻辑特权分 配给特定的调用者,以此来在运行时环境中建立用户的权能, ( c a p a b i l i t y ) 。 根据调用者的安全属性值来为它们分配特权。例如部署者可能把安全角 色映射为操作环境中的安全分组,如果一个调用者的安全属性表明它是 这个组的成员,那么,它将被赋予这个角色所有的特权。只有当调用者 至少有一个特权与一个方法相关联时,e j b 容器才授予它访问此方法的 权限。w e b 容器与e j 8 容器类似,也通过安全角色来保护资源。可见, 璀十j 2 e e 的企业m i s 实现技术研究 访问控制策略是在部署时而不是在应用程序开发时定义的。 编程性授权在向组件发出方法调用请求之前,j 2 e e 容器要做出访问控 制决策。虽然已经有部署描述符对决策作了定义,但组件仍然可以用 e j b c o n t e x t i s c a l l e r l n r o l e 和h t t p s e r v l e t r e q u e s t i s u s e r l n r o l e 等a p i 来执行细粒度访问控制。这里要用到的参数r o l e n a m e 的值必须由应用程 序组件的提供者在描述符中的s e c u r i t y r o l e r e f 元素中声明,这些值作为 安全角色的引用。这种引用机制很好的向应用组件开发者屏蔽了安全角 色的定义。 在组件使用方法级访问控制时,要保证具有低保护级方法不会破坏更严格保 护的方法施加的策略。 在调用是通过中间组件进行时,目标组件中调用者的身份可能依赖于中间组 件所作的身份选择。目标组件可以假设调用者身份已经通过调用链传播,那么它 的调用者的身份就是开始此调用链的调用者的身份。其余情况下,被调用组件必 须假设在调用路径上,一个或多个调用者使用身份选择策略而不是身份传播。部 署者为内部组件调用配置身份选择( 是传播还是选择新的身份) 。 2 5 4 总结 j 2 e e 平台安全机制的重要特点就是和安全控制和应用程序开发分离。允许 组件开发者和应用程序的汇编者指定应用程序的哪些部门需要保护,然后部署者 在部署时选择特定的安全机制。部署描述符提供了种非代码方式使组件开发者 将安全要求通知部署者。应用程序的汇编者把多个组件组合到一个应用中将单个 组件提供的安全视图组成应用程序的整体一致性安全视图。部署者利用工具将这 一视图映射为应用环境的安全策略。 j 2 e e 安全机制结合了容器管理的概念,加上应用程序安全要求的声明性规 范,使用程序嵌入机制,为安全的分布式组件计算提供了个强大的模型。 i 荀京航空航天大学顺上学位论义 第三章应用系统结构设计 3 1 系统应用背景 3 1 1 简介 跃进轻型汽车股份有限公司冲压件厂主要根据总公司及轻型汽车股份有限 公司、南京依维柯股份有限公司、南亚公司下达的指令性生产计划和其它客户的 需求定单生产冲压零部件。近年来该厂生产任务饱满,生产规模不断扩大,经济 效益不断提高,为了使企业在日益激烈的竞争环境中求得生存和发展,提高企业 主动适应市场变化的能力、不断提升企业现代化管理水平,企业决定全面开发计 算机辅助管理信息系统。 3 1 2 应用现状 现有系统是借助p o w e r b u i l d e r 开发的一套c s 系统,数据库服务器为s q l s e r v e r 7 。虽然它可以满足原有系统的设计需求,但是c s 系统的弊端仍然很突 出,具体表现在: 客户端的维护代价很大,如果为某一个客户端增加功能必须在客户机 上安装新的客户端程序,由于采用了o d b c 数据库连接,还得在操作系 统中配置好o d b c 设置。 服务器端的工作量很大,维护工作很艰巨。由于采用了单服务器,而且 每个客户端的数据操作都是通过单独的连接进行的,随着在线用户数量 增多,数据库的性能会下降很快。 系统的扩展性很差,增加新的类型的用户,即增加了新的设计和编码任 务。 与外部系统交互性很差。为了充分利用组织内部的信息资源,与其他系 统的交互性必然会变得十分重要,而现有应用几乎无法与企业内部局域 网或外部i n t e r n e t 交换信息。 安全性方面,现有应用系统中对数据操作的安全控制差。企业中不同身 份的操作人员几乎没有权限上的区别。没有体现出不同部门之间信息的 隔离或共享。企业中的保密信息无法得到应有的保护。 立望:婴塑尘、业塑! ! 兰些垫查婴塑 3 1 3 对策 针对现有系统的种种缺陷,我们给出了在j 2 e e 平台下的新的设计方案。重 点考虑了安全性方面的问题。 3 2 系统的功能模块 3 2 1 企业的组织结构图 根据企业组织机构设置,以行政机构划分为基础,以各行政机构的职能为 依据,设计总体结构框图。这里给出调研得出的组织结构图: 3 2 2 系统的功能划分 图3 1 企业组织结构图 根据业务的不同,应用系统可划分成若干个子系统,各子系统相对独立,通 过接口交互。 登录子系统完成对用户的认证授权。 南京航空航天入学颅l j 学位论文 物料管理子系统涉及原材料、辅助材料、零配件、在制品和产成品的 管理。 生产计划调度子系统依据零部件的工时定额、原辅材料定额和本企业 的生产能力制定企业年度计划、月度生产作业计划,并根据生产实际情 况和临时要货订单进行生产计划作业调整。 技术管理予系统主要涉及产品生产工艺配套卡、工装、新产品试制的 管理。 综合办子系统主要涉及人事劳资、工时定额和教育培训的管理。 质量管理子系统涉及设备器具、质量统计、质量标准的管理。 财务管理子系统涉及帐户管理系统、成本核算、工资奖金的管理 车间管理予系统整理在制品日报、职工出勤报表、设备工装状况报表, 并给出生产进度流程显示和生产作业计划显示。 机动科管理子系统包括设备管理、工装管理。 党群办管理子系统涉及干部档案管理和党群活动计划。 3 3 基于分层思想的结构设计 3 3 1 设计思路 整个应用系统将以e j b 为中心,运行于e j b 服务器上的企业b e a n 封装了 应用的核心逻辑。w e b 层与e j b 层通信,而不是直接访问信息系统资源,如数 据库等,w e b 层仅仅是作为前端来取得客户w e b 请求并把h t m l 响应显示给 客户。 在最高级别上,应用系统划分成三种逻辑种类的对象:处理应用程序表示 的对象、处理商务规则和数据的对象以及接收、解释用户请求并控制这些商务对 象来完成某些请求的对象。在应用的客户端,程序界面的外观相对于业务逻辑和 数据来说,改变的可能会大很多,例如用户的需求,新增功能的用户交互需要等 等。也就是说,负责控制的对象比表示对象更稳定。因此,我们在设计时将这三 种对象有意地分离,即采用m v c ( 模式一视图控制器) 模式。用户界面的表示 逻辑可以由w e b 层来处理。与控制相关的对象出现在每一层中,用来对跨层的 行为进行协调。而业务逻辑和数据的对象都位于e j b 层。 3 3 2 应用的模块划分 根据以上的系统要求和设计思想,基于j 2 e e 平台构建企业的管理信息系 龌十j 2 e e 的企业m i s 实j 她技术研究 统- p 的各个模块将对应前文所提到的原有系统各功能模块,一一实现。模块结构 犬敛如下幽 3 3 3 运行方案 图3 2 应用模块设计图 用户通过浏览器,提供一个账户标识符和口令进行登录,系统赋予当前用户 一个或多个角色,这里的角色等同于后面章节所说的j a a s 中的身份概念。系统 中的各个模块通过j a a s 提供的认证授权功能,来决定用户能否执行某些功能。 管理员则负责角色的分配。 因为是企业信息系统,不同于商务网站或b b s ,用户的注册信息由原有的 信息系统导入,或是统一输入,而不允许自由注册。这样便于组织内部人事信息 的统一管理和使用,即登录名称由组织分配,而对应的人称,即显示的用户名可 由用户自由定义。这种方式,有利于组织建立s i n g l es i g n o n 服务,即在内部 的一个安全域或多个相互信任的安全域内,可以提供这样一种

温馨提示

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

评论

0/150

提交评论