《毕业论文(设计)基于CORBA 规范的群件开发平台的研究.doc》由会员分享,可在线阅读,更多相关《毕业论文(设计)基于CORBA 规范的群件开发平台的研究.doc(9页珍藏版)》请在三一办公上搜索。
1、小型微型计算机系统MINI-MICRO SYSTEMS1999年第20卷第4期Vol.20No.4基于CORBA规范的群件开发平台的研究*孙艳春赵大哲刘积仁摘要本文针对当前群件面临的问题,提出了群件组件化的思想,以及基于CORBA规范建立群件开发平台.进而讲述了如何扩展CORBA规范去建立群件平台,最后详细描述了在“面向协同工作的工作流管理系统”的项目中,一个基于CORBA规范的群件开发平台的设计与实现.关 键 词CSCW群件CORBA软件组件分布式对象标准工作流管理系统分 类 号TP311THE RESEARCH ON CORBA-BASED GROUPWARE DEVELOPING PLA
2、TFORMSUNYanchunZHAODazheLIUJiren ( Software Center of Northeastern UniversityShenyang 110006)AbstractThis paper analyses the problems of current groupware development, then puts forward the thought of groupware component as well as a CORBA-based groupware developing platform. At the same time, the p
3、aper describes how to expend CORBA specification to create groupware platform, at last it describes the design and implementation of such platform under the project Cooperation-oriented Workflow Management System.Key wordsCSCWGroupwareCORBASoftware componentDistributed object standardWorkflow manage
4、ment system1引言由于当前的协作应用环境的复杂性及群体工作的复杂性,对于群件系统的开放性与集成性的需求越来越迫切. 而传统的群件应用开发仅仅是依赖客户/服务器方法,从零开始建立群件系统,没有提供对工作组的支持,而且欠缺开放性和集成性,这样就给群件开发人员增加了很多负担.为了改变这种现象,新一代的群件应用系统应以软件组件为基础,这就意味着群件系统包括独立开发的群件组件,不同的用户就可以按他们各自的需求而选取和重新组合相应的群件组件到他们的群件应用系统中.为了支持用户在分布式异构环境下协同工作,群件组件的创建应以分布式软件组件标准为基础.当今国际上有三大分布式软件组件对象标准,一个是由O
5、MG(Object Management Group)组织推出的CORBA(Common Object Request Broker Architecture),即公共对象请求代理结构.一个是Microsoft推出的DCOM(Distributed Component Object Model),即分布式组件对象模型.还有一个是Sun公司推出的用Java语言开发的分布对象模型RMI(Remote Method Invocation).在三种分布式软件组件标准中,CORBA规范在结构规范实现的灵活性、跨语言能力、跨平台实现及安全性等方面的综合对比中优于DCOM和 RMI,所以它成为实现真正的开放
6、式结构的应用程序的首选标准.在新一代的群件系统中,群件组件应以CORBA规范为标准.作为基于抽象的对象模型的分布式对象标准,CORBA规范具有分布式软件公共汽车的特点,用于分布式异构环境下的基于对象的软件组件间的通信与系统集成,是表达应用系统及部件之间有效通讯的连接技术,CORBA规范允许应用程序不必考虑硬件与软件系统的实现和位置就可以相互通信,因此基于CORBA规范建立群件开发平台极大地满足了CSCW(Computer Supported Cooperative Work) 系统中的分布透明性思想.2当前群件开发中存在的问题群件作为支持一组成员协同工作的计算机软件系统,它为人们提供了协作的环
7、境和工具,同时还提供了对共享环境连接的接口.群件的目的是在通讯、合作和协调等方面协助群体工作.虽然当前许多群件如lotus notes被广泛使用,但群件开发中还存在许多问题,其中有技术方面的问题,也有受人为因素影响而产生的问题.1)由于缺乏合适的通讯抽象,群件的开发者不得不把很大一部分精力放到底层的通讯细节,而不能集中于高层的群件应用问题.2) 由于大多数的群件产品缺乏标准的接口和抽象, 导致协作系统之间不能互操作. 由于群件的人机接口与单用户系统不一样,它是多用户接口,应能体现群体活动及多用户控制的特征.尤其在分布式多媒体网络环境下,要实现开放集成的多用户、多媒体信息和多窗口的应用程序接口技
8、术,以便于应用集成、应用管理及用户的灵活使用.3) 当前许多群件产品缺乏良好的协调机制.而协调机制是将时间上分离、空间上分布而又相互依赖的多个协作个体的活动有机地联系起来的枢纽,所以群件能否成功地支持协作活动,在很大程度上取决于有无良好的协调机制.协调控制的复杂性应受应用性质的影响,具体的协调控制要求包括路径选择、行动的时序安排、存取控制、一致性检验和并发控制、冲突解决等方面.4) 许多合作工作需要易于理解和灵活使用的技术支持,它的范围从支持同步合作到支持异步合作,而且,多种媒体应能被支持,从离散的媒体如文本和静态图象到连续媒体如音频和视频.但目前大多数群件的合作形式比较单一,而且欠缺多种形式
9、的媒体支持.5) 同单用户应用程序相比,群件应用的开发包括许多附加的技术问题,从分布式系统的支持如复制、一致性和并发机制到通信协议.6) 由于群件开发的广泛需求和复杂性,人们对开放集成的群件的需求越来越高.但到目前为止,用户经常只能支持很有限的合作工作,而且在大多数的群件应用中缺乏开放性和集成性.7) 群件的设计也受一些人为因素的影响,如群体中的个人的工作方式和风格、群体编制、群体工作设计及协同工作的群体动态等.而在群体工作过程中,许多人与人相互之间的交流方式、人与计算机的交互方式还不太成熟完善.3群件的组件化传统的群件设计因为缺乏复用和重组能力,已经满足不了现代信息技术快速发展的需求.就群件
10、开发人员而言,用传统的群件生产方式进行群件开发,开发周期长,效率低,可维护性、可靠性和重用性较差,因此,必须寻求一种新的群件开发模式.基于组件的群件开发模型是一种新型的群件生产方式,这种模型基于分布式对象技术,用群件组件来组装和构造群件应用系统.由于组件是完成通用或特定功能的可重用的软件模块,它支持对象意义上的封装性、多态性及继承性,而且遵循二进制代码标准,它可以在分布式异构环境下被调用并支持互操作.基于组件的系统既能提供独立的工具,又能提供集成和移动性.所以由独立开发的群件组件构成的群件系统提供了对当前群件开发中的问题的解决方案.在CSCW应用系统中,用户可以根据各自的需求选取相应的群件组件
11、,并把它们集成为一个恰当的群件应用环境,这需要在不同的群件组件间有良好定义的程序接口,使组件间可以方便地协同工作.每个群件组件都包含定位在不同连接的计算机系统上的交互工作组件,这需要很好定义的群件组件通信及互操作协议,而且要求接口和协议都是开放和标准的.根据群件功能的不同,我们可以把群件分为以下5类:3.1高效的通信群件为了支持位于不同地点的协同工作的群体成员方便、快速地交互,我们需要高效的通信群件如支持图形、图象和声音的高级Email系统,集成与工作站和个人PC机的实时桌面视频会议系统,大型视频屏幕系统等.3.2共享工作空间群件在协同工作时,人们需要良好的共享工作空间.CSCW领域的专家们正
12、在开发远程屏幕共享设施、配置个人屏幕共享和大型公共投影屏的先进会议室、提供制图、列表、综合电子文档及存储、打印等多种功能的智能面板、基于Internet的WEB浏览器等共享工作空间群件.3.3共享信息群件群体工作需要使用共享信息,工作过程中也会产生大量的共享信息,因此需要为协作的群体成员提供支持共享信息的输入、存储及检索的工具.目前已开发的共享信息群件包括:面向多媒体、多用户的超文本系统;共享光盘系统及各种类型的多用户数据库等.3.4群体活动协调群件协作的群体成员需要对工作目的、方法、程序及彼此的任务达成共识,以实现协调、高效的工作.群体活动协调群件为特定的群体活动提供支持,包括过程处理/工作
13、流系统、共同执笔工具、共同决策系统及支持协作的CASE工具等.3.5智能代理群件协同工作的参与者不一定都是人,当某种特殊场合下,可以用智能代理群件来代替某一工作组中的成员,而负责完成某些特定的任务或提供一些特定的服务,它们的行为在其他用户看来就象真正的用户一样.4使用CORBA建立群件开发平台群件的创建是一个复杂而艰巨的工作,这主要是因为群件通常需要集成多种模块,如用户接口管理模块、分布式交互模块及多用户数据库等.在早期的群件系统的开发中,这些模块的集成是由群件应用的编程人员来完成的,这样就严重影响了他们对群件应用系统的开发.为了实现组件化群件的全部潜力,我们需要基于高层群件软件结构的开放的平
14、台去支持群件系统的开发.高层群件软件结构不仅可以区分不同类型的群件组件,也负责它们之间的组合和交互.CORBA是当前最广泛使用的分布式对象计算标准之一,采用CORBA规范可以有效地扩展群件的广度和深度,而且提高了群件的伸缩性.它对群件开发平台的建立提供了以下便利条件:(1) CORBA为分布式应用提供了强有力的支持,通过CORBA规范中的ORB(对象请求代理)可以实现分布式对象间的通信和互操作,这样我们可以通过ORB包来实现许多群件系统如多媒体视频会议系统和共同编辑系统中的同步通信.另外,ORB实现了对象实现的位置透明性、实现方式的透明性,所以基于CORBA规范建立的群件组件可以真正实现CSC
15、W系统中的透明性思想.(2) CORBA规范中的接口定义语言(IDL)使得群件系统能很方便地集成用不同语言实现的软件模块,这样就跨越了群件系统中的语言实现障碍.(3) CORBA规范为在分布式异构环境下开发可重用的、可互操作及功能强健的软件组件提供了基本框架机制,其中ORB可以作为一个统一的集成中介把不同的应用和必要的信息包装为用CORBA接口定义语言(IDL)描述的并相互通信协作的对象集.这样就可以集成许多已有的群件系统如字处理系统、图形编辑系统等,一方面极大地方便了群件开发人员,另一方面也保证了已有软件的使用的连续性.(4) 在 CORBA 服务中的公共对象服务规范加强了面向多进程的事务处
16、理和并发控制机制.这有利于在分布式的CSCW应用系统中,群件组件同步地存取共享资源,从而大大加强了多用户群件系统的可靠性.(5) 另外,CORBA规范提供了一些内在的容错机制去确保在对象的生命周期中对象实现的可用性.例如,在很多的CORBA实现中,ORB一启动,就开始保存当前所有服务器对象和相应的客户方的状态信息以及用于恢复对象所需的信息.这些信息有助于在分布式的群件系统中进行可靠的容错和快速的任务恢复.虽然CORBA对群件组件提供了强有力的支持,但它也象其它的分布式对象计算平台一样,缺乏对群件问题的充分支持,如它缺乏对群件系统中的多点通信及多媒体处理等的支持.当今对基于CORBA的群件的研究
17、及对基于组通信的群件的研究表明把CORBA、组通信和群件结合在一起而建立群件组件的开发平台是未来分布式异构环境下CSCW系统结构平台的一大发展方向.5扩展CORBA规范去支持群件组件对于群件组件的开发,CORBA规范是一个很有发展的软件平台,但当前的CORBA规范和CORBA服务还未对群件组件的快速开发提供充足的支持.这是因为由CORBA服务提供的大多数服务如命名服务、生命周期服务、永久对象服务等都是低层的服务.这些服务虽然对于群件开发是很重要的,但是直接基于这些服务开发群件产品是一个复杂而费时的工作.因此,CORBA的基本服务应增加面向群件的服务,而且补充一套支持CSCW应用的开发工具.我们
18、应该为高效的通讯群件组件、共享工作空间群件组件、共享信息群件组件及组工作协调群件组件提供CORBA服务支持.而且,为了实现基于CORBA的群件开发平台,CORBA规范应该增加对对象组的支持,而且它应提供ORB对对象组的支持;另一方面,CORBA规范应加以扩充,提供根据不同的需求而动态重组群件组件的功能模块.对象组可以把共享工作空间物化为在用户站点间被复制的一组共享对象.每个站点拥有相关用户正在访问或处理的对象的复制对象.对于给定对象的复制对象集构成了一组对象组.对象的复制规则由组通信服务来具体实现.这样,共享对象就被映射为对象组,而对象上的操作就映射为相应的多点播送操作.用户通过动态地加入相应
19、的对象组而去访问对象,在对象组中的对象的当前状态的传输对于本地的复制对象来说是透明的.不同的共享对象有不同的并发复制需求,这就意味着一个同步协作的工作组的共享工作空间不是由一个对象组构成的,而是由一组对象组组成的,这就需要许多服务如命名/绑定服务、对象组的创建和管理服务及使用户活动被认知等的支持.6一个基于CORBA的群件开发平台的设计与实现在面向协同工作的工作流管理系统的设计和实现中,我们利用构造模型实现了事物处理过程从现实世界中的原形向计算机可处理的形式化定义的转换,构造模型为工作流程中的每一个独立事件定义了必要的输入和输出信息、相关事件的运行顺序及必要的事件处理机制.所建模型标识了三个重
20、要属性支持协作工作属性、支持协调的属性、处理异构和互操作的属性.作为一个群件应用系统,工作流管理系统包括不同的群件组件.我们开发了一个基于CORBA规范的群件开发平台去支持群件的建立、管理和重用等功能.它是利用代理机制、面向对象编程设计方法和CORBA规范等技术来实现的.基于此平台的工作流管理系统实现了接口的管理、共享数据库的管理、组件的协调、管理、可视化和版本管理等功能.这样整个工作流管理系统使得信息模型易于扩展、功能易于重组,从而系统真正实现了开放和跨平台.图1就是我们实现的基于CORBA的群件开发平台的系统结构框架.图1一个基于CORBA的群件开发平台的结构框架基于CORBA的群件开发平
21、台以分布式网络、Java和分布式封装技术 - CORBA为基础,我们使用CORBA ORB和CORBA服务为基本的中间件去开发群件平台.CORBA服务包括多种不同的服务如命名服务、永久对象服务、生命周期服务、属性服务、并发服务、安全服务、异常服务、事件服务、事务处理服务、认可服务等服务.基于中间件技术,我们实现了群件组件管理器,它负责远程和本地群件组件的查询、管理和调用机制.在此基础上,我们建立相应的通信、共享工作空间、共享信息、群体活动协调和智能代理等群件组件.由于群件应用系统经常是几种群件组件的有机集成,所以我们又在这一层次上设计了群件集成平台,它主要由三部分组成,其中群件组件重组代理的建
22、立基于重组规则和推理机制,它负责根据应用系统的信息模型选择和重组群件组件;群件组件数据库服务代理负责选择、插入、删除和查询相应的群件组件信息,它也负责群件组件的动态管理和监控.群件组件协调代理负责协调在分布式网络环境下的群件组件间的合作工作.它使得整个系统灵活而且易于管理.而基于群件集成平台,群件开发者就可以根据各自的需求开发相应的群件应用系统.7结束语在面向协同工作的工作流管理系统的研究中,我们仔细地研究了CSCW软件组件技术,然后提出了一个基于CORBA的群件开发平台,并且基于在此平台,创建了工作流管理系统.这是我们为了便利群件开发者而扩充CORBA规范及其服务所做的初步研究与实现,由于现
23、代合作工作可能包括遍布世界范围的许多实体,可能使用Internet作为主要的合作框架,可靠性和易扩展性变得越来越重要.为了适应这个需求,我们正在通过先进的分布式计算及网络技术逐步改进这个原形的实现,在以后的工作中将进一步完善和发展它的各项功能.* 本课题受国家“九五”科技攻关项目资助孙艳春,博士生,主要研究方向为软件组件技术,CSCW技术.赵大哲,博士,主要研究方向为软件开发环境.刘积仁,教授, 博士生导师,主要研究方向为CSCW技术,分布式多媒体、网络协议工程.作者单位:东北大学软件中心沈阳 110006参考文献1The Common object request broker archit
24、ecture and specification. Revision 2.0,July 19952Nat Brown, Charlie Kindel. Distributed component object model protocol-DCOM/1.0.Internet Draft, May 19963The Java White Paper: Introduction to Java, Sun Microsoft System Inc., 19954C.A. Ellis, S.J. Gibbs and G.L. Rein, Groupware - some issues and expe
25、rience. Communication of the ACM, Vol.34, n.1, January 19915S. Vinoski. CORBA: Integrating diverse applications within distributed heterogeneous environments. IEEE Communications Magazine. Vol. 14, February 19976CORBAservices: Common object service specification. November 19977Maffeis, S., Adding gr
26、oup communication and fault-tolerance to CORBA. In Proceedings of usenix conference on object-oriented technologies in Monterey, CA, USA, June 19958Jorge Simao, J. Legatheaux Martins, Henrique Domingos, and Nuno Preguica. Supporting groupware with peer object-groups. USENIX COOTS97, Portland/Oregon,
27、 June 19979Yanchun Sun, Dazhe Zhao, Jiren Liu. An open and integrated CSCW system architecture model based on open distributed network. Proceedings of Second International Workshop on CSCW in Design, Nov 2628,1997,Bangkok,Thailand1998-05-15收稿Editors note: Judson Jones is a meteorologist, journalist
28、and photographer. He has freelanced with CNN for four years, covering severe weather from tornadoes to typhoons. Follow him on Twitter: jnjonesjr (CNN) - I will always wonder what it was like to huddle around a shortwave radio and through the crackling static from space hear the faint beeps of the w
29、orlds first satellite - Sputnik. I also missed watching Neil Armstrong step foot on the moon and the first space shuttle take off for the stars. Those events were way before my time.As a kid, I was fascinated with what goes on in the sky, and when NASA pulled the plug on the shuttle program I was he
30、artbroken. Yet the privatized space race has renewed my childhood dreams to reach for the stars.As a meteorologist, Ive still seen many important weather and space events, but right now, if you were sitting next to me, youd hear my foot tapping rapidly under my desk. Im anxious for the next one: a s
31、pace capsule hanging from a crane in the New Mexico desert.Its like the set for a George Lucas movie floating to the edge of space.You and I will have the chance to watch a man take a leap into an unimaginable free fall from the edge of space - live.The (lack of) air up there Watch man jump from 96,
32、000 feet Tuesday, I sat at work glued to the live stream of the Red Bull Stratos Mission. I watched the balloons positioned at different altitudes in the sky to test the winds, knowing that if they would just line up in a vertical straight line we would be go for launch.I feel this mission was creat
33、ed for me because I am also a journalist and a photographer, but above all I live for taking a leap of faith - the feeling of pushing the envelope into uncharted territory.The guy who is going to do this, Felix Baumgartner, must have that same feeling, at a level I will never reach. However, it did
34、not stop me from feeling his pain when a gust of swirling wind kicked up and twisted the partially filled balloon that would take him to the upper end of our atmosphere. As soon as the 40-acre balloon, with skin no thicker than a dry cleaning bag, scraped the ground I knew it was over.How claustroph
35、obia almost grounded supersonic skydiverWith each twist, you could see the wrinkles of disappointment on the face of the current record holder and capcom (capsule communications), Col. Joe Kittinger. He hung his head low in mission control as he told Baumgartner the disappointing news: Mission abort
36、ed.The supersonic descent could happen as early as Sunday.The weather plays an important role in this mission. Starting at the ground, conditions have to be very calm - winds less than 2 mph, with no precipitation or humidity and limited cloud cover. The balloon, with capsule attached, will move thr
37、ough the lower level of the atmosphere (the troposphere) where our day-to-day weather lives. It will climb higher than the tip of Mount Everest (5.5 miles/8.85 kilometers), drifting even higher than the cruising altitude of commercial airliners (5.6 miles/9.17 kilometers) and into the stratosphere.
38、As he crosses the boundary layer (called the tropopause), he can expect a lot of turbulence.The balloon will slowly drift to the edge of space at 120,000 feet (22.7 miles/36.53 kilometers). Here, Fearless Felix will unclip. He will roll back the door.Then, I would assume, he will slowly step out ont
39、o something resembling an Olympic diving platform.Below, the Earth becomes the concrete bottom of a swimming pool that he wants to land on, but not too hard. Still, hell be traveling fast, so despite the distance, it will not be like diving into the deep end of a pool. It will be like he is diving i
40、nto the shallow end.Skydiver preps for the big jumpWhen he jumps, he is expected to reach the speed of sound - 690 mph (1,110 kph) - in less than 40 seconds. Like hitting the top of the water, he will begin to slow as he approaches the more dense air closer to Earth. But this will not be enough to s
41、top him completely.If he goes too fast or spins out of control, he has a stabilization parachute that can be deployed to slow him down. His team hopes its not needed. Instead, he plans to deploy his 270-square-foot (25-square-meter) main chute at an altitude of around 5,000 feet (1,524 meters).In or
42、der to deploy this chute successfully, he will have to slow to 172 mph (277 kph). He will have a reserve parachute that will open automatically if he loses consciousness at mach speeds.Even if everything goes as planned, it wont. Baumgartner still will free fall at a speed that would cause you and m
43、e to pass out, and no parachute is guaranteed to work higher than 25,000 feet (7,620 meters).It might not be the moon, but Kittinger free fell from 102,800 feet in 1960 - at the dawn of an infamous space race that captured the hearts of many. Baumgartner will attempt to break that record, a feat that boggles the mind. This is one of those monumental moments I will always remember, because there is no way Id miss this.