(计算机应用技术专业论文)基于组件的企业电子商务应用原型系统的设计与实现.pdf_第1页
(计算机应用技术专业论文)基于组件的企业电子商务应用原型系统的设计与实现.pdf_第2页
(计算机应用技术专业论文)基于组件的企业电子商务应用原型系统的设计与实现.pdf_第3页
(计算机应用技术专业论文)基于组件的企业电子商务应用原型系统的设计与实现.pdf_第4页
(计算机应用技术专业论文)基于组件的企业电子商务应用原型系统的设计与实现.pdf_第5页
已阅读5页,还剩56页未读 继续免费阅读

(计算机应用技术专业论文)基于组件的企业电子商务应用原型系统的设计与实现.pdf.pdf 免费下载

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

文档简介

西南交通大学硕士研究生学位论文第1 页 摘要 面对快速多变的市场环境和企业用户需求的多样化趋势,电子商务系统 应充分利用以网络为核心的各种信息技术来构造它的软件系统;而是否能够 快速地构建一个性能良好的软件系统,是一个电子商务系统成功的关键之一。 有效的体系结构、分析设计方法以及软件实现技术,可以降低企业电子商务 应用系统设计的复杂度和加快构造速度,并且能够实现有效的电子商务。因 此,本文对企业电子商务应用系统开发过程中的软件关键技术进行了较深入 的研究,并采用这些技术构造了企业电子商务应用的原型系统。本文主要内 容有: ( 1 ) 软件组件技术特点的分析与比较 探讨了主流的软件组件技术,分析各自的体系结构和实现方式,并从不 同角度进行了比较分析。 ( 2 ) 电子商务模型构建原理 在对软件组件技术分析的基础上,对电子商务建模技术进行了探讨,并 对构造该系统的相关技术进行探讨。 ( 3 ) 电子商务组件实现结构的设计 对电子商务软件系统的实现技术和软件结构进行研究,设计了一个通用 的基于组件的企业电子商务应用系统的实现结构,并给出结构的组件映射。 ( 4 ) 企业电子商务应用系统原型的设计与实现 采用面向对象分析和设计技术,首先对企业电子商务应用系统进行了需 求分析,然后进行了静态建模、动态建模、组件设计、数据库设计和系统部 署设计,并且对系统性能等问题进行初步的探讨。最后实现了该系统的原型。 关键词:电子商务;组件;u m l ;建模 西南交通大学硕士研究生学位论文第1 i 页 a b s t r a c t a st h er e s u l to ft h er a p i dc h a n g e so nt h em a r k e t , a n dt h ed i v e r s i f i c a t i o no f e n t e r p r i s ec u s t o m e r s d e m a n d si nab u s i n e s sd i s t r i c t ,e b u s i n e s ss y s t e ms h o u l d a d o p t t h en e t w o r k c e n t e r e di n f o r m a t i o nt e c h n o l o g i e s ,t oi ti st h ek e yt oc o n s t r u c t ae bs y s t e mw i t hb e r e re f f i c i e n c ya n dp e r f o r m a n c e w i t he f f i c i e n ts o f t w a r e a r c h i t e c t u r e ,a n a l y s ta n dd e s i g nt e c h n i q u ea n di m p l e m e n t a t i o nt e c h n o l o g yo fe b a p p l i c a t i o n ,t h ec o m p l e x i t yo f t h ee b s y s t e md e s i g n i n gc a nb er e d u c e d ,a n de b c a nb e i m p l e m e n t e dr e a l l y a n d e f f e c t i v e l y t h e r e f o r e ,t h e t h e s i s p r i m a r i l y c o n c e n t r a t e so nm es y s t e mi m p l e m e n t a t i o n t e c h n o l o g i e s a n da r c h i t e c t u r eo f e l e c t r o n i cb u s i n e s ss y s t e m t h em a i nc o n t e n t sa r cl i s t e da st h ef o l l o w i n g : 1 。a n a l y s i s a n dc o m p a r e o f c o m p o n e n t - b a s e d s o f t w a r et e c h n o l o g i e s d i s c u s st h em a i nc o m p o n e n t - b a s e ds o f t w a r et e c h n o l o g i e s ,a n a l y s et h e i r a r c h i t e c t u r e sa n di m p l e m e n t a t i o nm e t h o d s ,a n dc o m p a r et h e mi nt h ef i e l do f c r i t e r i o na p p l i e dt oe n t e r p r i s e a p p l i c a t i o n 2 c o n s t r u c t i o n o f p r i n c i p l e so f e b u s i n e s sm o d e l o nt h eg r o u n do fa n a l y s i so f c o m p o n e t - b a s e ds o f t w a r et e c h n o l o g i e s ,d i s c u s s t h ec o n s t r u c t i n g p r i n c i p l e so f e c o m m e r c e m o d e l 3 c o m p o n e n ti m p l e m e n t i n g a r c h i t e c t u r eo f e b u s i n e s sb a s e do nc o m p o n e n t r e s e a r c ho nt h ei m p l e m e n t a t i o nt e c h n o l o g i e so fe l e c t r i c n i cb u s i n e s ss y s t e m a n ds o f t w a r e f r a m e w o r k ;p u t f o r w a r da ne x e c u t i o ns t r u c t u r ea n d c o m p o n e n t - m a p p e dl a y e r s o f s y s t e m 4 d e s i g na n di m p l e m e n t a t i o no f p r o t o t y p eo f e n t e r p r i s ee b u s i n e s ss y s t e m u s i n go b j e c t o r i e n t e da n a l y s i sa n dd e s i g nt e c h n o l o g y , f i r s t l y , t h er e q u i r e m e n t o f e n t e r p r i s ee b u s i n e s ss y s t e mi sm a k e d ,t h e ns y s t e ms t a t i cm o d e l i n g 、d y n a m i c m o d e l i n g 、c o m p o n e n td e s i g n i n g 、d a t a b a s ed e s i g n i n ga n ds y s t e md e p l o y m e n t d e s i g n i n gd o n e s y s t e mp e r f o r m a n c ee x t e n s i o na n du p g r a d e i sd i s c u s s e ds i m p l y a t l a s t , p r o t o t y p eo f e n t e r p r i s ee b u s i n e s ss y s t e mi si m p l e m e n t e d k e yw o r d s :e l e c t r o n i cb u s i n e s s ;c o m p o n e n t ;u m l :m o d e lc o n s t r u c t i o n 西南交通大学硕士研究生学位论文第1 页 第1 章绪论 2 1 世纪,人类将迈向一个以高科技为特征的知识资源的生产、占有、 配置和消费的信息经济时代。信息经济时代的到来给企业带来了前所未有的 机会和威胁,信息技术改变了企业的外部环境和内部结构的范式,没有任何 企业可以将自己和发展中的信息技术隔离开来。由于信息技术大大降低了对 信包的获取、解析及反应的限制,使企业的外部环境的变化更快,企业必须 着眼于对这种变化的迅速感知和反映。电子商务系统正是企业适应这种变化 的产物。 1 1 国内外电子商务发展状况与趋势 电子商务就是企业商务活动电子化,人们可以通过各种电子手段实现各 种各样的商务活动,是商务活动的现代化。电子商务具有强大的号召力、生 命力,是由于它是一个社会、技术的综合产物,包括了社会各方面机构、服 务和各种高新技术。电子商务与传统商务活动的差别主要体现在商务活动的 形式和手段,而这一手段和形式正是网络和电子商务系统给予的,因此企业 对电子商务的需求也体现在对电子商务系统的需求上w 。 进入2 0 世纪9 0 年代以来,全球的经济格局发生了很巨大的变化。国家 之间的交流和合作增多,经济的全球化、区域化和一体化造就了一大批的跨 国企业。商品、服务、生产要素和信息的跨国界流动的规模与形式不断增加, 通过国际分工,在世界市场的范围中提高资源配置的效率。对于以利润为主 要目的的企业而言,仅仅依靠传统的生产和销售方式在经济竞争中会明显处 于劣势,难以为企业带来更多消费者群体的增长和更多合作伙伴的增长,难 以和消费者建立广泛而密切的关系。 与此同时,i n t e m e t 的快速发展和网络技术的支撑为企业采用新型的交易 手段提供了软硬件平台和强有力的技术后盾。从最初的a p a r n e t 到现在的 i n t e m e t 只用了短短的三十几年,从4 台计算机互联合2 0 0 0 多名用户发展到 了现在的与i n t e r a c t 相连的不同的网络3 0 0 多万个,用户达数亿,而且数量 还在以1 5 的速度增长。i n t e m e t 的发展带来了各种新的技术和服务,9 0 年 西南交通大学硕士研究生学位论文第2 页 代以来快速发展的w e b 技术更是势不可挡。利用超文本传输协议h t t p ,接 入i n t e m e t 的计算机都可以浏览或发布网上的信息。c s 的系统开发模型逐渐 被新兴的b s 模型所代替,而在b s 模型中,客户端和服务器端的开发技术 层出不穷,除咀前的j a v aa p p l e t 、a c t i v e x 、c g i 、a s p 、j s p 、s e r v l e t 、i s a p i 等,在服务器端还出现了应用服务器技术、集群技术、组件技术“。结合企业 在全球化经济发展中的困境,电子商务这种新的电子交易模式在网络的支持 和w e b 技术的依托下应运而生,并且在短短的时间内得到长足的发展。 电子商务改变着整个商业活动的竞争格局,给企业带来了巨大的收益。 它可以降低企业的交易成本,因为它有着极为低廉的营销费用。如美国的 c i s c o 公司1 9 9 6 年开辟了网上征订业务,目前该公司3 2 的业务来自于网 上,达3 2 亿美元,节约了大量的广告费用和8 0 0 免费的电话咨询费外,还节 省了直接拜访客户的交通费用和发展新客户的费用。降低了企业的广告和宣 传费用,通过将企业的经营数据和高品质的服务在电子商务系统上发布,便 于潜在客户对公司有一个全面直观的了解,网上树立企业形象;使企业在没 有铺面的时候也能真实生动的展示自己的产品;企业的管理层可以根据网上 销售系统快速反馈的产品销售信息和客户关系系统反馈的顾客心理分析信 息,直接和客户进行交流,大大节约了时间,不再像传统模式中要经过经销 商或者子公司等诸多环节。根据反馈可以及时开发新的产品和制定企业的短 长期发展计划;网络的开放性和全球性使得电子商务没有了时空限制,可以 为企业提供更为广阔、稳定的用户群和更多的贸易机会m m m 。 中国电子商务始于1 9 9 7 年。中国商品订货系统( c g o s ) 、中国商品交 易中心( c c e c ) 、虚拟“广交会”等大型电子商务项目在1 9 9 7 年陆续推出, 拉开了中国电子商务的序幕。1 9 9 8 年“首都电子商务工程”的展开和1 9 9 9 年“8 8 4 8 网上超市”的出现,标志着中国电子商务开始进入快速发展时期, 中国电子商务由此正式启动。据统计,目前全国已有4 万家商业网站,其中 网上商店7 0 0 余家。电子商务项目大量推出,几乎每天都有各类电子商务咨 询网站、网上商店、网上商城、网上专卖店、网上拍卖等诞生w 。 迄今为止,企业间( bt ob ) 电子商务还没有大的进展。网络的普及使 得企业间电子商务成为未来企业评估竞争力及生产力的依据,从企业间的供 应链管理、直销、客房服务等,b t o c 电子商务只是其中一环。没有良好的企 业问电子商务体系,b t o c 电子商务发展也会受到制约,从而影响中国电子商 西南交通大学硕士研究生学位论文第3 页 务整体应用与此发展。 据美国特尔斐集团最新报告,今后几年内全球电子商务软件的销售将有 很大增长,市场销售额从5 0 亿美元增加到2 0 0 2 年的4 0 0 亿美元“1 。目前,在 中国电子商务应用与发展中占支配地位的软件与解决方案,基本来自i b m 等 国外企业。无论为了发展适合中国国情的电子商务软件与解决方案,还是抓 住巨大的市场机遇发展中国的民族软件产业,中国电子商务软件和解决方案 的本地化,产业化都是刻不容缓的。 1 2 组件软件技术在电子商务系统中的应用现状 企业电子商务应用系统和电子商务一样,发展时间不长。目前的电子商 务软件似乎都热衷与建设网站,开发w e b 页面、编制脚本。实际上,w e b 页 面仅仅是商务软件系统的“人机交互界面”m ,j a v a 等语言也只是编制分布 式商务软件的优秀语言。它们不能实现全部的分布式软件,无法最终集成所 有的分布式软件。 对于程序员而言,电子商务就是具有商务功能的分布式软件系统 1 】。分 布式软件的开发标准和体系结构,包括c o r b a 、c o m + 可以采用w e b 、j a v a 等技术,并实现分布式软件的集成。开发电子商务平台已大量使用组件技术, 这是因为组件技术提供了服务器上的自治、企业级和分布式功能,并帮助开 发者在不同颗粒度级别上定义和封装系统功能。通过采纳组件技术,已建立 旧系统的企业在与从一开始就围绕前沿组件体系结构设计的新公司竞争起来 更容易。而且软件组件比传统程序更易于为日后的需求进行维护、支持和修 改。在制造企业中,利用以服务器为中心方式的优势在于,可以定义商业过 程,将它作为一组软件组件编写一次,然后通过多种渠道传递m 。 组件技术是计算机软件技术发展的最新结果,也是多年来计算机科学家 所寻求的有效的软件构造方法。组件是面向对象技术的进一步发展,是以二 进制形式存在的软件模块,通过接口定义语言( i d l ) 描述其功能接口,并 提供了i d l 到特定实现语言的映射,使其实现独立于语言,不同语言开发的 组件可相互协调和通信,解决了软件开发中的复用和互操作问题。以 c o r b a 、c o m + 为代表的分布式组件具有位置透明性,不同功能的组件可分 布在不同的位置,组件之间可以跨线程、网络空间或机器结构的边界相互调 西南交通大学硕士研究生学位论文第4 页 用与合作以完成复杂的问题,它是支持分布式计算模式的重要技术,提供了 一种“软件总线”的服务,通过将不同语言实现的服务和应用按规范封装成 组件,“挂到”总线上,就能实现彼此之间的通信,无需重新改写和编译原有 系统的代码,有极强的可扩展性和重用性。 组件方法减少了系统的复杂度( 因为组件并不需要了解其它组件的内部 结构,只需了解组件所提供的服务) 。组件是“独立的、可分发的、可重用的 服务的集合”,“一种物理上的、可以相互替换的软件模块,这些模块封装 了内部的实现,同时提供了一系列的接口”。归纳起来,组件是“与语言无 关的、独立于具体实现的软件包,具有良好的封装性,通过标准的接口向外 界发布服务”。 ( 1 ) 接口是组件用来与外界进行交互的唯一途径。使用组件的客户只 能看到其接口,而组件内部的实现细节则被完全隐藏起来。接口包括整个组 件所能提供的服务清单、服务方式、服务依赖关系以及可能发生的错误等。 不管两个组件内部的实现机制如何,只要它们的接口一致,就可以互相替换。 ( 2 ) 服务是组件可以为其它模块提供可完成一定任务的功能。当系统 用组件的形式实现时,系统内部的过程就变成了组件的一系列服务。组件向 外界发布自己所能提供的服务说明,并通过标准接口予以发布。 服务和接口机制使得组件技术实现了真正的软件重用。组件技术的出现 和发展给电子商务带来了新的机遇。 1 3 课题来源和研究意义及主要内容 本论文研究的组件技术应用是8 6 3 课题“区域协同电子商务技术研究” 中的关键技术之一。该课题针对区域制造业企业群和产业链的发展需要,研 究电子商务技术在区域网络制造系统的应用。通过区域协同电子商务的应用 实现制造企业的协作,支持区域网络化制造的资源优化配置,促进区域资源 的优化利用和制造业企业群、产业链的形成,促进跨区域制造业协作能力和 区域竞争能力的提高。开发先进实用的区域协同电子商务集成平台和系统; 在成德绵区域,结合装备制造业和服装制造业的发展实施应用工程。 本文的中心工作是研究组件技术在建立企业电子商务应用系统中的应 用,通过探讨目前基于组件的软件设计的理论和实践,对企业电子商务应用 西南交通大学硕士研究生学位论文第5 页 系统的功能结构、组件构建方法进行讨论和研究,其主要内容包括: 首先,在第二章分析和比较了目前流行的两种组件技术及体系结构 ( c o r b 山,o m a 、c o m c o m + ) 。 第三章将探讨u m l 和组件技术在企业电子商务应用系统中的应用。 第四章的主要内容是采用基于组件的面向对象设计方法和过程对企业 电子商务应用系统进行需求分析、建模设计,并代码实现了一个原型系统。 最后,对本文所做的工作做了一个总结,并对进一步的工作做了展望。 本章小结 企业电子商务应用系统具有复杂性、动态性和异构性的特点,这些特点 导致了传统的系统分析设计方法已不再适用于企业电子商务应用系统,而目 前流行的组件技术,则非常适合企业电子商务应用系统建模和分析的需求。 企业电子商务应用系统中通常包括很多基本元素,这些元素对任何种电子 商务应用都是必需和适用的,将每一种元素作为个基本的组件,利用这些 组件就可以构建一个基本的企业电子商务应用系统。因此,基于组件的系统 分析和设计是构建分布式企业电子商务应用系统的高效途径。 本章叙述了电子商务和组件软件技术的概况以及本文主要研究内容。 西南交通大学硕士研究生学位论文第6 页 第2 章组件软件技术的标准化实现 当今流行的组件技术规范有c o m + 、c o r b a 、e j b 三种,由于组件应用 的主要差别在c o m + 和c o r b a e j b t 7 】【1 0 】之间。因此,本章从组件规范的发展 历史、框架体系及具体实现方式等几方面对c o m + 和c o r b a 进行探讨。发 展历史可以反映出组件规范在竞争中的进展态势,相互之问的关系和特点; 各个组件模型标准都具有一些基本的必须的特性,如安全性、事务性、分布 式应用可伸缩性、负载平衡性等,每个特性体现了不同组件标准实现的不同 机制;框架体系则概览了各种组件结构的技术构成。最后则对这三种标准进 行了比较:并论述了它们的区别与联系。 2 1 发展历程 c o m ( c o m p o n e n to b j e c tm o d e l ) 组件规范是最为流行的软件构架方案之 一,由于w i n d o w s 平台是最流行的操作系统,而且w i n d o w s2 0 0 0 系统本身就 采用了c o m 组件架构。微软的组件思想是从o l e ( o b j e c t l i n ka n de m b e d d e d , 对象连接与嵌入) 演化而来的,最初是为了实现复合文档,微软从1 9 9 0 年发布 了o l e l 0 ,采用d d e ( d y n a m i c d a t ae x c h a n g e ,动态数据交换) 的通信方式; 1 9 9 3 年发布的o l e 2 0 采用了c o m 架构的软件结构;1 9 9 6 年,a c t i c ex 问世, 这是个面向i n t e m e t 的可通用的c o m 控件,接着发布了在网络上实现了c o m 技术的分布式方案d c o m ( d i s t r i b u t e dc o m p o n e to b j e c tm o d e l ) ;1 9 9 9 年集成了 微软事务服务和消息队列服务后推出了c o m + 规范【s 1 。 o m g ( o b j e c tm a n a g e m e n tg r o u p ) 集团由若干家公司组成,志在推广可 应用在异构网络环境下的分布式平台c o r b a ( c o m m o no b j e c tr e q u e s t b r o k e r a r c h i t e c t u r e ,公共对象请求代理机构) 。o m g 集团在1 9 9 1 年推出了 c o r b a l o ,提出了基本对象模型以及i d l ( i n t e r f a c e d e s e r i p t i o n l a n g u a g e ,接 口描述语言1 语言等;1 9 9 6 年推出了c o r b a 2 0 主要引入了g i o p h o p ( g e n e r a l i n t e r o r bp r o t o c o l i n t e r a c ti n t e r o r bp r o t o c o l ,通用网际o r b 协议i n t e m e t 网 际o r b 协议) 协议,解决了互操作问题,并增加了安全模型等,后续版本又增 加了p o a ( p o r t a b l eo b j e c ta d a p t e r , 可移植对象适配器) ;c o r b a 3 0 标准规范 主要增加和增强了若干服务规范同。 西南交通大学硕士研究生学位论文第7 页 2 2 框架体系 c o m + 和c o r b a 都有各自的体系结构特点,都是多个元素的组合和集 成,因此,对组件框架的组成元素的探讨是研究组件技术的必要途径。 2 ,2 1c o m + 组件体系结构1 1 】 5 l i 川州i c o m + 组件体系结构如图2 1 t - l 。下面将对c o m + 组件模型的技术要点进 行分析。 图2 1c o m + 组件体系结构 c o m + 是c o m 和m t s ( m i c r o s o f t t r a n s a c t i o ns e r v i c e ,微软事务服务) 的 集合和增强,并且增加了许多新的系统服务,如负载均衡、队歹帽最务、事件 模型、内存数据库等使得c o m + 更适合分布式企业应用和开发,它与w i n d o w s 系统平台的集成起来为企业应用系统的开发提供了一套完整的解决方案。 ( 1 ) c o m 是微软公司开发的组件对象之间相互接口的二进制规范,它 西南交通大学硕士研究生学位论文第8 页 既是规范,也是实现,以c o m 库( o l e 3 2 d l l ) 的形式提供了访问了c o m 对象核心功能的标准接口以及组标准a p i 函数,这些a p i 用于实现创建和管 理c o m 对象的功能。 c o m 本质上是客户j l 务器模式,客户( 通常是应用程序) 请求创建c o m 对象并通过它的接口访问c o m 对象。c o m 服务器是c o m 组件对象的容器, 根据客户的请求创建并管理c o m 对象。c o m 应用主要在单机上运行。 c o m 的目的是把各种各样的函数分类,然后封装成一个个组件,这些组 件在w i n d o w s 系统中以d l l 或者e x e 的形式具体存在,并且通过注册表, w i n d o w 随时随地可以知道某个特定组件的代码是在哪个对应的d l l 或者 e x e 罩。从而可以唯一的确定组件,包括内含的接口,在客户需要该组件的 时候w i n d o w s 也就可以正确的装载它了。同样也是因为这个唯一性,客户在 任何时候都可以直截了当的,明确无误的询问w i n d o w s 需要的组件里的接口。 通过一个c o c r e a t e l n s t a n c e 函数,w i n d o w s 将返回接口指针。w i n d o w s 内部在 执行这个函数的时候,首先查询注册表,寻找所要的组件( 组件也就是接口 集,而所谓接口也就是一组函数所组成的集合的代名词) ,如果没有找到该组 件,查询自然失败,函数返回;如果找到了,内核将向w i n d o w s 返回该组件 的i u n k n o w n * 指针,w i n d o w s 随后利用i u n k n o w n :q u e r y i n t e r f a c e 函数查询指定 的接口是否被该组件所实现。i u n k n o w n 是所有c o m 组件都必须实现的接口, 其目的就是让w i n d o w s 知道如何查询组件。w i n d o w s 随后将该指针转给 c o c r e a t e l n s t a n c e 的调用,整件过程也就结束了。 ( 2 ) d c o m 是组件对象模型( c o m ) 的进一步扩展。c o m 定义了组件 和它们的客户之间互相作用的方式。它使得组件和客户端无需任何中介组件 就能相互联系。客户进程直接调用组件中的方法。d c o m 模型是c o m 模型的 扩展,采用d e c r p c ( d i s t r i b u t e dc o m p u t ee n v i r o n m e n t - r e m o t ep r o c e s sc a l l , 分布式计算环境远程进程调用) 通信协议,使c o m 组件技术的应用范围扩 展到了局域网。而c o m + 模型将c o m 扩展到企业广域网和i n t e r a c t 上。 ( 3 ) m t s 也是一种c o m 技术,它用于数据和对象保护,提供管理数据 和对象保护所需要的服务。 ( 4 ) c o m + 服务器是c o m 组件对象的容器,c o m + 服务器中的组件对 象向c o m 客户提供服务。c o m 客户独立于c o m + 服务器。 当客户请求某个c o m 对象的服务时,客户需要传送一个类的标识符 ( c l s i d ) ,请求w i n d o w s 去查找组件对象,找到以后把接口的指针传递给客 西南交通大学硕士研究生学位论文第9 页 户。w i n d o w s 从注册表中查找c 0 m + 服务器的位置并定位c o m 对象。 2 2 2c o r b a 组件体系结构m z 引”6 1 c o r b a ( c o m m o n o b j e c tr e q u e s tb r o k e ra r c h i t e c t u r e ) 是为了实现分布 式计算而引入的。 与过去的面向过程的r p c ( r e m o t ep r o c e d u r ec a l l ) 不同,c o r b a 是基于 面向对象技术的,它能解决远程对象之问的互操作问题。m i c r o s o f t 的d c o m ( d i s t r i b u t e dc o m p o n e n to b j e c tm o d e l ) 也是解决这一问题的,但它基于 w i n d o w s 操作系统,尽管d c o m 己有在其他操作系统如s u ns o l a r i s ,d i g i t a l u n i x i b mm v s 上的实现,但毫无疑问,只有在微软的操作系统上才会实现 得更好。而只有c o r b a 是真f 跨平台的,平台独立性正是c o i 也a 的初衷 之一。另一种做到平台无关性的技术是j a v a 蹦i ( r e m o t em e t h o d i n v o c a t i o n ) ,但它只能用j a 、,a 实现。c o r b a 与此不同,它通过一种叫i d l ( i n t e r f a c ed e f i n i t i o nl a n g u a g e ) 的接v i 定义语言,能做到语言无关,也就是 说,任何语言都能制作c o r b a 组件,而c o r b a 组件能在任何语言下使用。 c o r b a 的总体框架比较复杂,该体系包括四大要素,即应用程序对象、 公共工具、对象请求代理、对象服务。其对象参考模型结构如图2 - 2 t ,1 。 一一一一、 ,一一一一一一, r 7 客户程序服务对象实现 图2 - 2c o r b a 对象参考模型结构 c o r b a 上的服务用i d l 描述,i d l 将被映射为某种程序设计语言如c + + 或j a v a ,并且分成两分,在客户方叫i d ls t u b ( 桩) ,在服务器方叫i d l 西南交通大学硕士研究生学位论文第1 0 页 s k e l e t o n ( 骨架) 。两者可以采用不同的语言。服务器方在s k e l e t o n 的基础上 编写对象实现( o b j e c ti m p l e m e n t a t i o n ) ,而客户方要访问服务器对象上的方法, 则要通过客户桩。而双方又要通过而o r b ( o b j e c tr e q u e s tb r o k e r ,对象请求 代理) 总线通信。 与传统的c l i e n t s e r v e r 模式( 我们称为t w o - t i e rc l i e n t s e r v e r ) 不同, c o r b a 是一种m u l t i - t i e rc l i e n t s e r v e ra r c h i t e c t u r e ,更确切的说,是一种 t h r e e t i e rc l i e n t s e r v e r 模式。双重客户n 务器模式存在的问题是两者耦合太 紧,它们之间采用一种私有协议通信,服务器的改变将影响到客户方。多重 客户,服务器与此不同,两者之间的通信不能直接进行,而需要通过中间的一 种叫代理的方式进行。在c o r b a 中这种代理就是o r b 。通过它,客户和服 务器不再关心通信问题,它们只需关心功能上的实现。从这个意义上讲, c o r b a 是一种中间件( m i d d l e w a r e ) 技术。 ( 1 ) o r b ( o b j e c tr e q u e s t b r o k e r ) c o r b a 体系结构的核心就是o r b 。可以这样简单理解:o r b 就是使得 客户应用程序能调用远端对象方法的一种机制。o r b 模型如图2 3 。 c l i e n tm a c h i n e 甚e e r m a g i t i c 图2 3o r b 模型 具体来说就是:当客户程序要调用远程对象上的方法时,首先要得至0 这 个远程对象的引用,之后就可以像调用本地方法一样调用远程对象的方法。 当发出一个调用时,实际上o r b 会截取这个调用( 通过客户s t u b 完成) ,因 为客户和服务器可能在不同的网络、不同的操作系统上甚至用不同的语言实 现,o r b 还要负责将调用的名字、参数等编码成标准的方式( 称m a r s h a l i n g ) 通过网络传输到服务器方( 实际上在同一台机器上也如此) ,并通过参数解码 处理( u n m a r s h a l i n g ) 过程,然后传到正确的对象上( 这整个过程叫重定向, r e d i r e c t i n g ) ,服务器对象完成处理后,o r b 通过同样的 m a r s h a l i n g u n m a r s h a l i n g 方式将结果返回给客户。 因此,o r b 是一种功能,它具备以下能力: 西南交通大学硕士研究生学位论文第1 1 页 1 对象定位( 根据对象引用定位对象的实现) 2 对象定位后,确信s e r v e r 能接受请求 3 将客户请求通过m a r s h a l i n g u n m a r s h i n g 方式重定向到服务器对象上 4 如果需要,将结果以同样的方式返回。 ( 2 ) i d l ( i n t e r f a c ed e f i n i t i o nl a n g u a g e 、 i d l ,接口定义语言,是c o r b a 体系中的另一个重要概念。如果说0 r b 使c o r b a 做到平台无关,那么i d l ,则使c o r b a 做到语言无关。 正像其名字中显示的那样,i d l 仅仅定义接口,而不定义实现,类似于 c 中的头文件。实际上它不是真正的编程语言。要用它编写应用,需要将它 映射它相应的程序设计语言上去,如映射到c h 或j a v a 上去。映射后的代 码叫c l i e n ts t u bc o d e 和s e r v e rs k e l e t o nc o d e 。 i d l 的好处是使高层设计人员不必考虑实现细节而只需关心功能描述。 i d l 可以说是描述性语言。设计i d l 的过程也是设计对象模型的过程。它是 编写c o r b a 应用的第步,在整个软件设计过程中至关重要。 i d l 的语法很像c + + ,当然也像j a v a 。很难想像一个程序设计人员是不 懂c 或j a v a 的,所以,几乎所有的程序设计人员都能迅速理解i d l 。而这丁f 是i d l 设计者所希望的。 ( 3 ) s t u bc o d e 和s k e l e t o nc o d e s t u bc o d e 和s k e l e t o nc o d e 是由i d l c o m p l i e r 自动生成的,前者放在客 户方,后者放在服务器方。不同厂商的i d le o m p l i e r 生成的s t u b 和s k e l e t o n 会略有区别,但影响不大。 2 3 从接口实现角度的比较 c o m 、c o r b a 是分布式对象技术的不同实现,客户端调用分布式对象 的基本通信过程是相似的。但是它们的具体实现和通信过程又有着各自的特 点。从对组件框架的探讨得知组件接口的实现和调用过程是组件技术的关键, 下面将从接口实现以及调用来探讨这两种组件。对c o m 的探讨实例采用v b 语言,并引用了一个a c c e s s d l l 数据访问组件;对c o r b a 的实例采用j a v a 语言 实现,引用了i n t e r a c t 应用访问订单对象的实例。 西南交通大学硕士研究生学位论文第1 2 页 2 ,3 1c o m + 接口实现和调用 c o m 组件的实现比较简单是由于有好的开发平台的支持,对底层机制加 以包装和屏蔽,因此大多数开发者不需要了解底层的实现机制就可以使用 c o m 编程。c o m 实际上是由一组d l l 和e x e 来实现的,基本的c o ma p i 接 口打包在o l e 3 2 d l l 文件中i ,v b 对开发人员屏蔽了该a p h 对于c + + 可以 直接调用这个d l l 。在这里将用v b 来探讨c o m 组件接口和调用的实现。 ( 1 ) c o m + 接口 c o m 组件的接口对于通过c o m 基础结构访问的组件,必须有一个方法 使得客户端进程能够进行实例化并可以访问该类的接口和属性,这是通过 i d l 至t j 实现语言之问的映射实现的。 用v b 创建的组件的i d l 信息已经捆绑在e x e 或d l l 之中:但是如果创建 的是远程服务器组件时,i d l 接口信息就包含在t l b ( t a b l e ) 文件中。通过 工具o l ev i e w 可以看到,每一个在c o m 组件中定义的类都至少实现了一个 默认的接口,它是隐藏的,由该类支持的所有方法和属性组成,被命名为 一c l a s s n a m e 。 为了保证接口不会彼此冲突,在c o m 组件中实现的每个接口和类都会被 分配一个g u i d ( g 1 0 b a l u n i f i e di d e n t i f i e r , 全球唯一标识符) s 】,它是一个 1 2 8 位整数。组件的类库也有一个g u i d ,g u i d 的生成过程是由v bi d e 在后 台完成的,其中,用c o m 方式实现并封装的类分配的g u i d 称为c l s i d ( c l a s s i d e n t i f i e r , 类i d ) ,为接口分配的g u i d 称为l i d ( i n t e r f a c ei d e n t i f i e r , 接口i d ) ,这 两者都使用通用唯一标识符( u u i d ,u n i v e r s a lu n i 矗e di d e n t i f i e r ) 来引用。在 c o r b a ( 公共对象请求代理体系结构) 的唯一标识符也称为u u i d 。 建立组件时,g u i d 被编译入应用程序的二进制代码( d l l 或e ) 中, 编译客户端二进制映象时,它通过服务器的g u i d 引用的c o m 服务器组件将 服务器的g u i d 存入它的d l l 或e x e 中。 ( 2 ) 接口调用过程 c o m 作为组件之间的通信管道,真正起作用的是服务控制管理器s c m ( s e r v i c e c o n t r o l m a n a g e r ) ,这个服务是由r p c s s e x e 执行的,所有对s c m 的访问都是通过在o l e 3 2 d l l 中声明的a p i 进行的5 1 。 文中引用的组件d a s v c d l l 是个数据访问组件,它封装了a c c e s s 类,这个 类实现了d a r e t r i e v e 0 、d a c l o s e 0 等数据库访问方法。 西南交通大学硕士研究生学位论文第1 3 页 当引用一个组件并使用组件所提供的类方法时,必须创建类的实例,创 建方法有两种( 前期捆绑和后期捆绑) - 。其中,前期捆绑在程序的编译阶 段解决对象的引用问题,后期捆绑在运行时进行对象的引用。这样,在接口 和类方法调用就有着不同的实现过程。前期捆绑如以下v b 代码: 定义对a c e s s 类的全局引用 d i mt h e a c e e s sa sd a s v c a c c e s s s e tt h e a c c e s s5n e wd a s v c a c c e s s 调用a c c e s sc l a s s 的方法 i f t h e a c c e s s d a r e t f i e v e ( s q r y , s d a t a ,f a l s e ,s c o r m e c t ,1 e r r n o , s e r r d e s c r ) t h e n e n d l f 这段简单的代码定义了c o m 组件d a s v c d l l 中的个a c c e s s 类对象, 并调用y a c c e s s 类的方法d a r e t r i e v e ( s q r y , s d a t a ,f a l s e , s c o r m e c t ,i e r r n o , s e r r d e s c r ) 。但是,整个后台的过程是首先由v b 调用o l e 3 2 d l l 中的 c o c r e a t e l n s t a n c e 方法,将a c c e s s 类的c l s i d 和用于连接对象的接口d a r e t r i e v e 的l i d 传递给s c m 。s c m 从客户端注册表中找出相应的服务器组件,然后通 过q u e r y i n t e r f a c e 方法调入d a s v c 服务器组件并传入a c c e s s 类的c l s i d 和 d a r e t r i e v e 方法接口的i i d 。服务器再按照由c l s i d 确定的a c c e s s 类的映像创 建一个对象并向s c m 返回l i d 指定类型的接口引用。最后由s c m 向客户端转 发该接口引用。这就实现了一个c o m 组件的类方法的调用。如果先定义为对 象再实例化为一个具体的对象类型,即后期捆绑用以下v b 代码: 定义对a c e s s 类的全局引用 d i mt h e a c c e s sa so b j e c t s e t t

温馨提示

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

评论

0/150

提交评论