(计算机应用技术专业论文)基于企业门户系统的商业智能应用设计与实现.pdf_第1页
(计算机应用技术专业论文)基于企业门户系统的商业智能应用设计与实现.pdf_第2页
(计算机应用技术专业论文)基于企业门户系统的商业智能应用设计与实现.pdf_第3页
(计算机应用技术专业论文)基于企业门户系统的商业智能应用设计与实现.pdf_第4页
(计算机应用技术专业论文)基于企业门户系统的商业智能应用设计与实现.pdf_第5页
已阅读5页,还剩80页未读 继续免费阅读

下载本文档

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

文档简介

中文摘要 商业智能是随着i n t e r n e t 应用的高速发展和企业信息化的不断深入而产生 的。b i 的应用使得企业的决策者能够对企业信息进行有效、合理地分析和处理, 为生产决策提供可靠的依据。 商业智能通常被理解为将企业中现有的数据转化为知识,帮助企业做出明智 的业务经营决策的工具。 把商业智能看成是一种解决方案应该比较恰当。商业智能的关键是从来自企 业运作系统的数据中提取出有用的数据并进行清理,以保证数据的正确性,然后 经过抽取( e x t r a c t i o n ) 、转换( t r a n s f o r m a t i o n ) 和装载( l o a d ) ,即e t l 过程, 合并到一个企业级的数据仓库里或形成基于业务部门应用的数据集市中,从而得 到企业数据的一个全局视图。在此基础上利用合适的查询和分析工具、数据挖掘 工具、o l a p 工具等对其进行分析和处理,这时信息变为辅助决策的知识,最后 将知识呈现给管理者,为管理者的决策过程提供支持。 本文简要讨论了商业智能应用模型与系统架构,详细描述了一个架构在企业 门户系统上的商业智能应用,即通过p o r t a l 软件架构技术,将b i 报表及其分析 功能整合到企业门户中。本文说明了如何使用u m l 的方法进行b i 门户系统的设 计,并重点讨论了基于j 2 e e 多层应用体系统架构技术,开发p o r t a l 系统,实现 智能报表的应用,并对如何将原始资料转化成分析功能所要求的数据,形成数据 集市作出了完整的介绍,最后简要描述了系统的功能与使用。 关键词:商业智能;企业门户;数据集市;报表分析 a bs t r a c t w i t ht h er a p i dp r o g r e s so fi n t e r n e ta n dt h ec o n t i n u o u sd e e p e n i n go fe n t e r p r i s ei t a p p l i c a t i o n , b u s i n e s si n t e l l i g e n c ee m e r g e d t h eb ia p p l i c a t i o na l l o w st h ed e c i s i o n m a k e r sa n a l y s i sa n dp r o c e s s i n ge n t e r p r i s ei n f o r m a t i o ni na l le f f e c t i v ea n dr a t i o n a l f a s h i o n , w h i c hp r o v i d ear e l i a b l eb a s i sf o rt h ep r o d u c t i o nd e c i s i o n b u s i n e s si n t e l l i g e n c ei su s u a l l yu n d e r s t o o da st r a n s f o r me x i s t i n ge n t e r p r i s ed a t a i n t ok n o w l e d g e ,i t sd e e m e da sat o o lf o rh e l pp e o p l em a k eb u s i n e s sd e c i s i o ni n r e a s o n 一 t h h 墩o fb ia sc o m m e r c i a ls o l u t i o ns h o u l db em o r ea p p r o p r i a t e t h ek e yo f b u s i n e s s1 i n t e l l i g e n c ei st oe x t r a c tu s e f u ld a t af r o me n t e r p r i s ea n dc l e a nu pt oe n s u r e t h ec o r r e c t n e s so fd a t a ,t h e na f t e re x t r a c t i o n , t r a n s f o r m a t i o n , a n dl o a d ,( t h a ti st h e e t l p r o c e s s ) ,t oam e r g e ro fe n t e r p r i s ed a t aw a r e h o u s eo rad a t am a r tw h i c hr e l a t e st o t h ea p p l i c a t i o no fd e p a r t m e n tb u s i n e s s ,t h u sc o m ei n t ob e i n ga no v e r a l lv i e wo ft h e e n t e r p r i s ed a t a u p o nt h i sb a s i s ,u s eo fa p p r o p r i a t ei n q u i r i e sa n da n a l y s i st o o l s ,d a t a m i n i n gt o o l s ,o l a pt o o l s f o rt h ed a t a a n a l y s i sa n dh a n d l i n g ,a tt h i sp h a s e , i n f o r m a t i o nc o n v e r t i n gt ot h ek n o w l e d g eo fa s s i s tm a k ed e c i s i o na n dt h e np r o v i d et h e k n o w l e d g et ot h eg o v e r n o r , s u p p o r tf o rt h eg o v e m o r i nt h ed e c i s i o n - m a k i n gp r o c e s s s t h i sp a p e rd i s c u s s e dt h ea p p l i c a t i o no fb u s i n e s si n t e l l i g e n c em o d e la n ds y s t e m a r c h i t e c t u r e ,p r o v i d e sr e a d e rad e t a i l e dd e s c r i p t i o no ft h eb u s i n e s si n t e l l i g e n c e a p p l i c a t i o n sw h i c ho na ne n t e r p r i s ep o r t a ls y s t e ma r c h i t e c t u r e t h r o u g hp o r t a l s o f t w a r ea r c h i t e c t u r et e c h n o l o g y , i n t e g r a t et h eb 1w e br e p o r t sa n da n a l y s i sf u n c t i o n s i n t ot h ee n t e r p r i s ep o r t a l n i sp a p e rd e s c r i b e sam e t h o do fh o wt ou s eu m l d e s i g n b ip o r t a ls y s t e m , a n df o c u s e do nd i s c u s so fd e v e l o p i n gp o r t a ls y s t e ma n di n t e l l i g e n t w e br e p o r t sw h i c hh a sm u m - l a y e rs y s t e ma r c h i t e c t u r eb a s e do nj 2 e et e c h n o l o g y 1 1 1 i sp a p e ra l s oi n t r o d u c e dh o wt ot r a n s f o r mt h er a wd a t ai n t of u n c t i o n a la n a l y s i s r e q u i r e dd a t aa n dt h e nf o r m si tt oad a t am a r t a tl a s t ,t h i sp a p e rd e s c r i b e ds y s t e m f u n c t i o na n du s a g e k e yw o r d s :b u s s i n e s si n t e l l i g e n c e ,e n t e r p r i s ep o r t a l ,d a t am a r t ,r e p o r t a n a l y s i s 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的 研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表 或撰写过的研究成果,也不包含为获得基盗盘鲎或其他教育机构的学位或证 书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中 作了明确的说明并表示了谢意。 学位论文作者签名仫祝秭+ 签字日期砷:年。月心日 学位论文版权使用授权书 本学位论文作者完全了解丞鲞盘堂有关保留、使用学位论文的规定。 特授权苤鲞盘堂可以将学位论文的全部或部分内容编入有关数据库进行检 索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校 向国家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名:千厅0 专细 签字日期:孙7 年f 月i 多日 , 导师签名: 起锻 签字日期:铆年月吝 天津大学硕士学位论文第一章绪论 1 1 课题背景 第一章绪论 对制造行业来讲,质量是一个企业的生命,然而,如何对质量数据进行分析, 从而更快的找到引发质量问题的生产环节,是每一个企业都面临的严竣问题。 提高产品的良率对企业增强赢利能力极为重要。一经发现问题区域的清晰迹 像,就要开始采取正确的行动。 如何以数据分析为中心,通过计算机网络和数据库技术,把企业生产过程中 所有与产品质量相关的信息和过程集成起来,统一管理,使产品数据在其生命周 期内保持一致,为工程技术人员提供一个协同工作的环境,从而缩短产品研发周 期、降低成本、提高质量,为企业赢得竞争优势是至关重要的。 “大陆 ( c o n t i n e n t a l ) 汽车电子厂为提高生产质量,给客户提供高质量的 汽车电子产品,决定采用现代化的管理手段,借助计算机商业智能( b i ) 系统来 促进提高产品质量,保证优质的生产经营状况。基于这样的需求,一套基本的商 业智能系统由此应运而生,其英文名为v i s u a lf a c t o r yp r o j e c t 。 v i s u a lf a c t o r y b i 系统以图形化的方式展示了质量管理关键性能指标( k p i ) , 主要的k p i 计算说明如下所示: y i e l d ( 一次通过率) :生产过程中,产品一次性成功通过某一生产工艺 的百分比,也叫一次良率。其计算公式如下: y i e l d = ( n u m b e ro f u n i t sp a s s e d 础1 ) ( n u m b e ro f u n i t st e s t e d 刚。1 ) 例如:在8 :0 0 至8 :1 5 之间,共有2 7 0 件产品经过高温加工,经一次检 验,只有2 2 3 件产品通过性能测试,因此在这1 5 分钟内,该产品通过 高温加工工艺的y i e l d 值为:y i e l d = 2 2 3 2 7 0 = 0 8 2 5 9 或8 2 5 9 o u t p u t ( 产量) :在给定的时间范围内,通过某项生产工艺或完成整个生 产流程后,所有合格的产品数量。 t h r o u g h p u t ( 直通量) :给定时间范围内,在某一生产工艺上加工的产品 总量。这个数值不仅包括合格的产品数量,还包括有缺陷的产品个数。 天津大学硕士学位论文第一章绪论 d p m o ( d e f e c t sp e rm i l l i o no p p o r t u n i t i e s ,百万机会缺陷数) :6 西格玛 质量管理中常用的度量指标。 d p m o = ( 装配期间产生的缺陷总数x1 0 6 ) ( 缺陷机会总数) 1 2 论文作者所做的主要工作 在v i s u a lf a c t o r y 商业智能系统的软件外包开发项目中,本人做为主要研发 人参与了从系统架构、程序设计到实际编码开发的大部分工作,并侧重如下几个 方面: 1 项目需求分析 2 系统架构设计 3 生产线数据库分析与数据集市建模 4 商业门户系统的二次开发与智能报表的集成 1 3 创新性介绍 本系统是一个架构在企业门户系统上的商业智能应用,即通过p o r t a l 将b i 报表分析整合到企业门户中,实现商务智能与企业门户的无缝整合。而通过门户, 用户不需要访问商务智能系统而直接获得对其所关心报表的访问,提高了工作效 率,通过p o r t a l 的无缝整合,用户可以避免不必要的点击和操作,并通过门户获 得一致的用户体验。通过单点登陆,用户无需在访问商务智能系统时再次登陆, 并且可以利用p o r t a l 的安全机制灵活设定不同的用户映射,b i + p o r t a l 整合插件 支持表格操作( 包括钻取、排序和分页等o l a p 操作) 、图形报表查看等功能。 v i s u a lf a c t o r y 系统通过对产品生产全过程的质量监控,提供给品管人员基础 数据和分析工具,帮助企业进行日常品质分析和周期性的品质持续改进。其主要 功能如下: 统计分析功能:柏拉图( p a r e t o ) ,可对计数值管制项目,不良现象,不良 原因做多层次分析。 生产作业即时看板:本系统可以计算生产线各站的良率与直通率,计算六 西格码( 6s i g m a ) 中d p m o 指标,管理者可以随时掌握生产线的品质状 况。 查津大学硕士学位论文 第一章绪论 综合报表:使用者可以根据自己的需要去查询各种参数,不同层别的日、 周、月报表。 报表打印与格式输出:相关数据图表可以导出到p d f 或m i c r o s o f 【o t t i c e 的w | o r d 或e x c e l 上操作,弹性方便的完成各类报表。 自动报表订阅:系统后台定期监控产品质量状况,一有异常发生,按照使 用者的预定方式,自动把不同的报表以e m a i l 的方式发给相关的人员。 天津大学硕士学位论文第二章v i s u a lf a c t o r y 商业智能的系统架构 第二章v i s u a lf a c t o r y 商业智能的系统架构 2 1 商业智能应用模型与系统架构 商业智能( b u s i n e s si n t e l l i g e n c e ,简称b i ) 的概念最早在1 9 9 6 年由g a r t n e r g r o u p 提出。当时将商业智能定义为一类由数据仓库( 或数据集市) 、查询报表、 数据分析、数据挖掘、数据备份和恢复等部分组成的、以帮助企业决策为目的技 一术及其应用。 。 简而言之,它是能够帮助用户对自身业务经营做出正确明智决定的工具。一 般现代化的业务操作,通常都会产生大量的数据,如何利用这些数据增进对业务 情况的了解,帮助我们在业务管理及发展上作出及时、正确的判断,也就是说, 怎样从业务数据中提取有用的信息,然后根据这些信息来采用明智的行动这就 是商业智能的课题。 2 1 1 商业智能领域的技术 商业智能的技术体系主要有数据仓库( d w ) 、在线分析处理( o l a p ) 以及 数据挖掘( d m ) 三部分组成。 。 数据仓库是商业智能的基础,许多基本报表可以由此生成,但它更大的用处 是作为进一步分析的数据源。所谓数据仓库( d w ) 就是面向主题的、集成的、 稳定的、不同时间的数据集合,用以支持经营管理中的决策制定过程。多维分析 和数据挖掘是最常听到的例子,数据仓库能供给它们所需要的、整齐一致的数据。 在线分析处理( o l a p ) 技术则帮助分析人员、管理人员从多种角度把从原 始数据中转化出来、能够真正为用户所理解的、并真实反映数据维特性的信息, 进行快速、一致、交互地访问,从而获得对数据的更深入了解的一类软件技术。 数据挖掘( d m ) 是一种决策支持过程,它主要基于m 、机器学习、统计学 等技术,高度自动化地分析企业原有的数据,做出归纳性的推理,从中挖掘出潜 在的模式,预测客户的行为,帮助企业的决策者调整市场策略,减少风险,做出 正确的决策。 因此,从技术层面上讲,商业智能不是什么新技术,它只是数据仓库、o l a p 和数据挖掘等技术的综合运用。商业智能,是帮助企业提高决策能力和运营能力 天津大学硕士学位论文第二章v i s u a lf a c t o r y 商业智能的系统架构 的概念、方法、过程以及软件的集合。对该定义的正确解释,从四个层面展开: 信息系统层面: , 称为商业智能系统( b is y s t e r a ) 的物理基础。表现为具有强大决策分析功 能的单独的软件工具和面向特定应用领域的信息系统平台,如s c m 、c i 洲、e i 冲。 与事务型的m i s 不同,商业智能系统能提供分析、趋势预测等决策分析功能。 数据分析层面: 数据分析层面是一系列算法、工具或模型。首先获取与所关心主题有关的高 质量的数据或信息,然后自动或人工参与使用具有分析功能的算法、工具或模型, 帮助人们分析信息、得出结论、形成假设、验证假设。 知识发现层面: 一 与数据分析层面一样,是一系列算法、工具或模型。将数据转变成信息,而 后通过发现,将信息转变成知识,或者直接将信息转变成知识。 战略层面: 将信息或知识应用在提高决策能力和运营能力上,企业建模等。商业智能的 战略层面是利用多个数据源的信息以及应用经验和假设来提高企业决策能力的 一组概念、方法和过程的集合。它通过对数据的获取、管理和分析,为贯穿企业 组织的各种人员提供信息,以提高企业战略决策和战术决策能力。 2 1 2 商业智能的功能 基于以上定义的商业智能应具有以下功能: 数据管理功能: 从多个数据源e t l ( 抽取、转换、转贮) 数据、清洗数据、数据集成能力; 大量数据高效存储与维护能力。 数据分析功能: 具备o l a p 多种数据分析功能;终端信息查询和报表生成能力;数据可视化 能力。 r 知识发现功能: 从大型数据库中的数据中提取人们感兴趣的知识的能力。这些知识是隐含 的、事先未知的、潜在有用的信息,提取的知识表示为概念( c o n c e p t s ) ,规则 ( r u l e s ) ,规律( r e g u l a t i o n s ) ,模式( p a t t e r n s ) 等形式。 天津大学硕士学位论文第二章v i s u a lf a c t o r y 商业智能的系统架构 2 1 3v i s u a lf a c t o r y 商业智能应用模型 目前商业决策面临的最大挑战不是缺少数据,而是数据太多。大部分企业无 法发掘数据的价值给公司决策层提供支持。决策人员的困惑在于,一是海量数据 无边无际,企业现有的信息系统无法高效地处理;二是数据混乱,根本找不到解 决的方法【1j 。 如何把数据库中存在的数据转变为业务人员需要的信息? 大部分的答案是 报表系统。简单说,报表系统已经可以称作是b i 了,它是b i 的低端实现。数据 报表不可取代,传统的报表系统技术上已经相当成熟,大家熟悉的e x c e l 、水晶 报表、r e p o r t i n gs e r v i c e 等都已经被广泛使用。但是,随着数据的增多,需求的 提高,传统报表系统面临的挑战也越来越多。 1 数据太多,信息太少 密密麻麻的表格堆砌了大量数据,到底有多少业务人员仔细看每一个数据? 到底这些数据代表了什么信息、什么趋势? 级别越高的领导,越需要简明的信息。 如果我是董事长,我可能只需要一句话:目前我们的情况是好、中还是差? 2 难以交互分析、了解各种组合 定制好的报表过于死板。例如,我们可以在一张表中列出不同客户、不同产 品的缺陷的数据,另一张表中列出不同工艺流程、不同测试条件下的缺陷数据量。 但是,这两张表无法回答诸如“为福特公司生产的蓝牙接口设备,在x r a y 测 试过程下的一次测试通过率情况 等问题。业务问题经常需要多个角度的交互分 析。 3 难以挖掘出潜在的规则 报表系统列出的往往是表面上的数据信息,但是海量数据深处潜在含有哪些 规则呢? 什么客户对我们价值最大,产品之间相互关联的程度如何? 越是深层的 规则,对于决策支持的价值越大,但是,也越难挖掘出来。 4 难以追溯历史,数据形成孤岛 业务系统很多,数据存在于不同地方。太旧的数据( 例如一年前的数据) 往 往被业务系统备份出去,导致宏观分析、长期历史分析难度很大。 因此,随着时代的发展,传统报表系统已经不能满足日益增长的业务需求了, 企业期待着新的技术。数据分析和数据挖掘的时代正在来临。值得注意的是,数 据分析和数据挖掘系统的目的是带给我们更多的决策支持价值,并不是取代数据 报表。甚至有的学者指出,商业智能应用就是提供商业智能的机制报表和分 析应用为企业提供有用的信息2 1 。 天津大学硕士学位论文第二章v i s u a lf a c t o r y 商业智能的系统架构 v i s u a lf a c t o r yb i 系统主要包括如下几个技术部分: 基于j 2 e e 的系统架构设计 完全采用了j 2 e e 的系统架构,开发的应用程序是纯b s 的结构,对于 最终用户只需要具有网页浏览器,无需下载任何控件和插件既可访问和操 作b i 系统。v i s u a lf a c t o r y 采用了最新的b s 开发技术,利用a j a x 技术, 实现w e b 操作页面的无刷新机制,用户操作界面友好,充分体现了人性化 的系统架构。n 层的,基于j 2 e e 的组件体系结构,开放的体系,开放的标 准,可扩展性强,逻辑上的“层 可分布在多个物理的服务器上。 提供报表设计工具 为报表设计人员( i t 部门的人员或者技能娴熟的用户) 提供工具,用 来定义报表。报表设计人员不需要掌握诸如v i s u a lb a s i c ,j a v a ,j a v a s c r i p t 等程序设计语言,通过使用此b i 系统提供的报表设计工具,定制人员只需 要懂简单的s q l 语句,就可以定制出丰富的图形统计。可以根据不通层次 的用户定义不同的k p i ( 关键性能指标) ,配合p o r t l c t 配置给不通的用户。 提供逐层钻取( d r i l l d o w n ) 分析功能 数据挖掘( d r i l l d o w n ) 的方法使用户真正深入对所隐含的细节进行分 析,帮助用户建立起对企业业务的自上而下的整体的认识【3 】。在电子制造行 业的生产过程中,通常要对每一道工序进行检测,检测的相关数据都保存 在二维关系数据库中。产品质量管理人员可以通过v i s u a lf a c t o r yb i ,以排 列图的方式查看测试通过率最低的几道工序,当用户点击其中某个工序的 柱状图时,系统以表格的方式显示出该工序的详细测试记录,其中包括测 试名,测试说明,测量值等;此时用户还可以点击其中的测试条目,系统 显示相应的产品缺陷信息,包括缺陷零件编号,缺陷在p c b 板上的位置, 缺陷可能产生的原因等等以实现进行更深一步的数据钻取分析功能。 报表导出与定制发送功能 所有报表都能够以标准格式导出,可以导出的格式包括h t m l 、p d f 、 m i c r o s o f te x c e l 、w o r d 文档等;通过定制,系统能够自动生成用户所关心 的产品质量k p i 相应的报表,并发送到预定的邮箱中。 天津大学硕士学位论文第二章v is u a lf a c t o r y 商业智能的系统架构 个性化p o r t l e t 配置 随着应用软件的发展,人们越来越来强调软件的人性化,使用人员通 常都希望能够对软件进行各种个性定义。包括界面风格、使用习惯,还包 括功能组织视图、数据表现等,甚至还包括自定义报表等。v m u a lf a c t o r y 系统采用最新的应用门户的概念来设计系统,强调根据业务的不同特点为 使用人员提供特定的门户界面,而不是千篇一律的功能菜单。 2 2j 2 e e 应用体系 j 2 e e 可以理解为一个企业级的中间件体系或平台,它把多种分散到网络上 的资源和应用连接起来,为构造和管理、运行可伸缩的企业级业务应用提供了一 系列的应用组件和一个运行环境【4 】。从物理上看,j 2 e e 环境可分布驻留到一个 以上的服务器,单一的业务应用能够以一组分布式组件的形式部署到网络上的一 个或者多个服务器。 j 2 e e 平台本质上是一个分布式的服务器应用程序设计环境一个j a v a 环境【5 】,它提供了: 宿主应用的一个运行基础框架环境。 一套用来创建应用的j a v a 扩展a p i 。 用上述环境建立的应用可以是开发w e b 页面的应用,或者是实现复杂数据 库事务处理的组件,或者甚至可以是j a v aa p p l e t 所有在这些应用均通 过网络来进行发布。 2 2 1j 2 e e 多层应用体系 要理解j 2 e e ,就必须掌握下面几个支撑起j 2 e e 体系的核心概念: j 2 e en t i e r 应用体系:或称为j 2 e e 多层应用体系,j 2 e e 平台提供的基 本应用架构。 j 2 e e 应用组件:构造j 2 e e 应用的基本软件单元。 j 2 e e 企业服务:可被j 2 e e 应用组件调用的公共服务功能。 j 2 e e 容器:j 2 e e 组件的运行环境。 j 2 e e 中间件体系定义了四个独立的层,应用软件就构造在这个框架上, 它们是: - 客户层( c l i e n tt i e r ) 、 天津大学硕士学位论文第二章v i s u a lf a c t o r y 商业智能的系统架构 - 表现逻辑层( p r e s e n t a t i o nl o g i ct i e r ) 业务逻辑层( b u s i n e s sl o g i ct i e r ) 、 - 企业信息系统层( e i s ,e n t e r p r i s ei n f o r m a t i o ns y s t e m st i e r ) 如图2 1 所示: j 1 一一、- s e r v l e t 。 | a p p l a j s p r r 、 。咖。 川 。如。 lllj 陆 c l a s s 、p一, 广曰 一 胁 一 客户层 表现逻辑业务逻辑e i s 图2 1j 2 e e 中间件体系 表现逻辑层和业务逻辑层属于应用服务器领域。所谓应用服务器,也即j 2 e e 平台的具体实现。这四层中的每一层都可以在物理上分布到多个机器,即使同属 于应用服务器领域的表现逻辑层和业务逻辑层,也可以驻留在不同的应用服务器 上。例如,在一个应用中,h t t p 和表现逻辑的容器可以使用s u n 公司的j 2 e e 应用服务器i p l a n e t ,部署业务逻辑组件可以用b e a 公司的j 2 e e 应用服务器 w e b l o g i c 。 按照习惯,表现逻辑层总是与j s p 容器相关,业务逻辑层总是与e j b 容器 相关。为便于理解,可以把j 2 e e 多层体系中的“层理解为一种概念实体,引 入“层”这个概念是为了简化设计【6 】;与此相对,把容器理解为一种物理性的软 件实体,容器的目标是为应用组件提供运行环境。 天津大学硕士学位论文 第二章v i s u a lf a c t o r y 商业智能的系统架构 不同层次的j 2 e e 应用组件驻留在它们各自的运行环境中,这些运行环境就 是j 2 e e 术语所谓的容器。容器是遵从一定接口标准的产品,为j 2 e e 组件提供 了必需的底层基础功能。按照j 2 e e 标准编写好应用组件之后,还要用厂商专有 的部署工具把它们分别部署到各自的容器。j 2 e e 标准定义了四种不同的容器: a p p l e t 容器:运行和管理a p p l e t 。 应用客户端容器:运行和管理标准j a v a 应用客户程序,包括s w i n g 应用。 w e b 容器:运行和管理表现逻辑层的s e r v l e t 和j s p 组件。 e j b 容器:运行和管理业务逻辑层的e 毋。 为了提供静态h t m l 页面服务,随同w e b 容器提供一个h t t pw e b 服务器 是很典型的做法,目前几乎所有流行的j 2 e e 应用服务器都有内建的h r r pw e b 服务器。 一般地,容器提供的基础功能包括内存管理、线程同步机制、垃圾收集、 可用性、可伸缩性、负载平衡和故障转移等。容器必须实现的基本接口和功能由 j 2 e e 规范定义,但具体如何实现完全由容器厂商自己决定。因此,j 2 e e 既确保 了不同应用服务器之间的兼容性,又为各个厂商的专有代码留下了自由空间。实 际上,在中间件产业,各路厂商之所以得以施展各自神通,容器功不可没。 j 2 e e 多层体系的思想在很大程度上受到了m v c 设计模式的启发和影响。 所谓m v c ,即m o d e l - v i e w - c o n t r o l l e r ,它是一种在复杂的应用系统中划分和界 定各个组件的职能和作用范围的设计模式【7 】。在m v c 设计模式中,m o d e l 即模 型,是处理核心数据模型或实现核心应用功能的部分;v i e w 即视图,主要与用 户界面有关,例如把处理结果提供给客户端或其他应用。m v c 设计模式认为这 些不同的部分应该尽可能地相互独立,它们之间的交互则由c o n t r o l l e r ( 控制器) 协调。 例如,在本系统中查看产品测试一次通过率( f i r s ty i e l dp a s s ) 的过程。按 照m v c 的设计思想,这个过程可以分割成四个独立的任务: 任务1 :从浏览器启动查看请求( v i e w ) 。 任务2 :发出对产品测试通过率计算的调用( c o n t i n u e r ) 。 任务3 :实际完成产品测试通过率的计算( 业务过程或m o d e l ) 。 任务4 :把计算结果显示给浏览器( v i e w ) 。 m v c 认为核心业务过程( 任务3 ) 不应该做任何有关客户端的假设,例如, 它不能假定客户端是一个浏览器,因为除了浏览器之外,其他的应用程序也应当 能够顺利地调用核心业务过程;所有与客户端直接相关的操作应当由v i e w 来完 成。至于业务逻辑和表现逻辑的联系和协调,则专门由c o n t r o l l e r 部分负责。 j 2 e e 体系建立在m v c 设计思想的基础上。很自然地,j 2 e e 体系也鼓励把 天津大学硕士学位论文 第二章v i s u a lf a c t o r y 商业智能的系统架构 业务逻辑从表现层分离出来,属于c o n t r o l l e r 性质的代码可以放在这两个层的任 意一个( 或全部) 。依赖于这种设计思想,j 2 e e 为重用业务逻辑组件打开了广阔 的空间。 2 2 2j 2 e e 应用组件 j 2 e e 标准定义了一个完善的应用组件框架,作为企业应用系统基本构造模 块的组件就建立在这个框架之上。几乎所有的业务应用,从简单的w e b 门户到 复杂的企业级分布式事务应用,都可以在此基础上构造。 j 2 e e 组件框架只是一个以库、类和接口形式提供的基础架构,最终构成应 用的业务逻辑和表现腔制逻辑要由建立在这个框架上的应用组件实现。以j 2 e e 提供的标准应用组件s e r v l e t 为例,为具体的业务应用构造的s e r v l e t 总是建立在 j 2 e e 提供的基本s e r v l e t 接口之上,开发者可以调用各种s e r v l e t 包提供的基本库 和服务。许多系统级的服务都已经在这些库中提供,例如操作h t t p 输入流读取 数据和写入数据,只需直接调用即可。因此,我们把j 2 e e 提供的组件基础架构 叫做应用框架( a p p l i c a t i o nf r a m e w o r k ) ,把建立在应用框架之上的代码叫做j 2 e e 应用组件( a p p l i c a t i o nc o m p o n e n t ) 。 如图2 1 所示,无论是客户层、表现层还是业务逻辑层,都有相应的j 2 e e 应用组件: 客户层:a p p l e t ,j a v a b e a r l s 表现逻辑层:s e r v l e t ,j s p ,j a v a b e a n s 业务逻辑层:e j b 必须指出的是,除了上述j 2 e e 组件之外,标准的j a v a 类和j a r 包也可以在 所有这些层上很好地运行。在许多场合,我们可以找到代码以普通j a v a 类而不 是j 2 e e 组件状态存在的情形。e i s 即e n t e r p r i s ei n f o r m a t i o ns y s t e m ,它包含所有 的企业后端资源,例如数据库等。显然,对于e i s 资源,我们要做的只是从组件 访问它们,访问细节则由j 2 e e 企业服务解决,所以在e i s 层没有应用组件的位 置。开发j 2 e e 应用就是开发一种或者多种上述组件,然后把它们部署到各自的 容器中。 组件的接口确保组件遵从一定的标准并向外界提供公用功能,从而为具有良 好互操作性的j 2 e e 环境提供了基础。应用组件在各个层之间宽松结合,确保了 组件互操作的灵活性和组件的可重用性。对于给定的业务情形,适当地选用和搭 配各种应用组件是j 2 e e 应用体系设计中一项富有艺术性的工作。由于组件的种 类繁多,要想得到优质的代码和表现出色的应用,就要有丰富的知识和经验来确 天津大学硕士学位论文第二章v i s u a lf a c t o r y 商业智能的系统架构 定组件的最佳搭配方案。对于每一种应用组件,j 2 e e 明确定义了它在应用中应 当担负的角色,从而为合理设计应用体系提供了坚实的基础。下面我们就来看看 在应用服务器领域,各种组件的主要特点,请参见图2 2 。 图2 - 2j 2 e e 应用服务器组件 需要注意有几下几点: w e b 容器和e j b 容器是不同的,两者相对独立,可以是来自不同厂商 的产品。这两种容器都可以使用企业服务。也就是说,无论是w e b 容器的 组件还是e j b ,都可以访问数据库连接、e m a i l 服务、目录服务和消息服务。 组件只能通过一个或者多个以驱动程序或适配器形式实现的企业服务访问 e i s 资源。 天津大学硕士学位论文第二章v i s u a lf a c t o r y 商业智能的系统架构 最好把所有应用组件频繁调用的用户自定义服务和库集中到一个独立 的层。在图2 2 的j 2 e e 模型中,用户自定义的服务和库被合并到自定义 组件库。这些库由用户自己开发,不属于标准j 2 e e 应用服务器的一部分, 一般它们会随着软件项目的成熟而日渐丰富。例如,配置文件工具库就是 一个很好的例子:它根据指定的配置文件名字,打开该文件,然后以整数 或字符串的形式返回指定的配置选项。 另一种常见的现象是,开发者在j 2 e e 提供的核心企业服务的基础上编 写自定义的访问例程。把这些自定义的服务访问例程组织成一个单独的“服 务访问库”层是值得的。例如,假设我们在一个项目中用m m 的m qs e r i e s 作为消息系统。通常,我们会编写一些在j m s 基础上访问m qs e r i e s 服务 的简单a p i ,例如给所有外发的消息加上企业标准的消息头。这时,最好把 这些服务整理成“服务访问库”层的公用a p i ,并让它们可被企业平台的所 有应用调用。简而言之,服务访问库提供了j 2 e ea p i 上的一层抽象,它们 总是与特定的企业应用平台密切相关。 如前所述,在复杂的企业计算环境中,不同的j 2 e e 组件应当担负不同的角 色。下面我们就来看看具体情况。 w e b 容器组件: s e r v l e t s e r v l e t 是服务器端面向表现逻辑的组件,驻留在w e b 容器内。正如a p p l e t 扩展了浏览器的功能,s e r v l e t 扩展了w e b 服务器的功能除了提供静态h t m l 之外,s e r v l e t 还提供编程和生成动态内容的功能。 s e r v l e t 能够处理来自客户端浏览器的请求,处理输入参数,把处理结果以 h t t p 应答的形式发送到客户端浏览器上显示出来。例如,在本系统中,s e r v l e t 用来开发基于w e b 的l d a p 认证系统,从客户端浏览器接收用户名字和密码, 处理请求,再发回认证通过或不通过的应答。 除了接受来自客户端浏览器的请求之外,s e r v l e t 还能够响应其他s e r v l e t 的 调用。虽然s e r v l e t 本身也能够生成发送给客户端的h 1 曙应答流,但是,就显 示处理结果来说,j s p 更擅长一些。 j s p j s p 即j a v as e r v e rp a g e s ,它也是面向表现逻辑的组件,与s e r v l e t 一样,驻 留在w e b 容器之内。但无论在适用场合还是功能方面,j s p 与s e r v l e t 都有所不 同。j s p 页面是h n 压l 和j a v a 的混合物,即,j s p 页面既能够包含h t m l 代码, 天津大学硕士学位论文第二章v i s u a lf a c t o r y 商业智能的系统架构 也能够包含j a v a 代码。j s p 页面中的h t m l 代码被直接发送给客户端浏览器, 而j a v a 则被抽取出来由服务器处理。因此,j s p 最适合于为h t m l 标签引入程 序逻辑。 在j s p 页面中,有一种结构化的、可重用的引用j a v a 代码逻辑的途径,即, 使用j s p 标记库。j s p 标记库开发方便,能够更清楚地隔离j a v a 代码和h t m l 代码。 j s p 是对s e r v l e t 的补充和完善,经常用来显示s e r v l e t 的处理结果。但是, 在一些应用设计中,只使用j s p ( 并充分有效地结合运用j a v a b e a n s ) 而不使用 s e r v l e t 的情形也很常见。 j a v a b e a n j a v a b e a l l 是基本的数据模型组件,在j 2 e e 出现很久之前就已经被引入。在 j 2 e e 体系中,j a v a b e a n 常常驻留在客户端或表现逻辑层,作为对a p p l e t 或j s p 的补充。j a v a b e a n 规范定义了j a v a 代码如要成为b e a n 组件必须符合的条件。例 如,一个简单的j a v a 类如果定义了几个变量,并为这些变量定义了g e t _ a t t r i b u t e 0 方法和s e t a t t r i b u t e 0 方法,就可以认为是标准的j a v a b e a n 组件。 j a v a b e a n 与e j b 除了名称相似之外,没有任何其他相似之处。e j b 是一种完 全不同的企业级j a v a 应用组件。 e j b 容器组件: e j b 是分布式可伸缩的业务逻辑组件,它们封装了企业j a v a 工程的核心业 务逻辑和数据模型元素。e j b 驻留在称为e j b 容器的特殊环境之内,e j b 容器由 应用服务器提供。j 2 e e 规范定义了开发者编写的应用e j b 与容器环境的关系 ( c o n t r a c t ) 。 开发e j b 必须符合一定的接口要求,这些接口中的一部分方法由开发者实 现,一部分由e j b 容器提供者( 或应用服务器厂商) 实现。从某个方面来看, 我们可以把e j b 的这种接口要求看成一种隔离业务逻辑实现( 开发者编写的方 法) 与应用基础结构( 容器实现的方法) 的途径。 e j b 组件可以与任意其他e j b 交互不管对方是位于同一个容器之内,还 是位于一个远程服务器的不同容器之内。e j b 不仅可以调用所有的企业服务,还 可以调用所有的自定义组件库和服务访问库。 针对不同的应用情况,e j b 规范定义了几种不同的e j b 类型,包括:无状态 会话b e a n 、有状态会话b e a n 、实体b e a n 、消息驱动的b e a n 。 结合运用e j b 、s e r v l e t 和j s p ,可构造出一个具有高度灵活性和可重用性 的符合m v c 特征的应用体系。 天津大学硕士学位论文第二章v i s u a lf a c t o

温馨提示

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

评论

0/150

提交评论