(计算机应用技术专业论文)基于组件化的群组协作应用程序的研究与实现.pdf_第1页
(计算机应用技术专业论文)基于组件化的群组协作应用程序的研究与实现.pdf_第2页
(计算机应用技术专业论文)基于组件化的群组协作应用程序的研究与实现.pdf_第3页
(计算机应用技术专业论文)基于组件化的群组协作应用程序的研究与实现.pdf_第4页
(计算机应用技术专业论文)基于组件化的群组协作应用程序的研究与实现.pdf_第5页
已阅读5页,还剩54页未读 继续免费阅读

(计算机应用技术专业论文)基于组件化的群组协作应用程序的研究与实现.pdf.pdf 免费下载

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

文档简介

基于组件化的群组协作应用程序的研究与实现 摘要 所谓的群组协作应用程序就是为了支持共同任务中的群组,利用计算机系统 而提供的一个共享环境接口。使用j s d t 开发群组协同应用程序已经做了大量工 作。但随着群组协作工具形式的多样化和工具媒体载体的多元化,以j s d t 为代 表的这类群组协作开发包的不适应性和缺点逐渐展现出来。因此,组件化群组协 作系统就成为研究热点。 本文在分析j s d t 的基础上,针对它所对应的群组协作模型的优缺点进行改 进,提出适合于组件化的群组协作模型,并且使用组件化的语言来描述这个模型。 为了展现该模型具有组件化的普遍性,又在微软n e t 工作平台上实现了该模型 和相关框架,最后以一个实际例子来展现这个组件化的群组协作模型。 本文的主要工作在于: 1 ) 提出了一个较为合理的支持组件化的群组协作模型,它包含了会议管理 组件,会议激活组件,会议工具组件和会议协调组件,并且使用组件化 语言c o r b a 的c c m 对上述组件的需求进行详细的描述。这是本文具有新 意的地方。 2 ) 摆脱在j a v a 平台上的应用,在目前刚刚兴起且极具前途的微软开发平 台n e t 上实现该模型和相应框架。 3 ) 利用组件化群组协作模型的优势和n e t 平台的优点,成功实现面向用户 的运行时组件化。 4 ) 对群组协同中的关键问题致性管理,提出使用面向方面作为解决 该问题的大体方向。 关键词:组件化,群组协作模型,j s d t ,c o o m o d ,面向方面,n e t r e s e a r c ha n d i m p l e m e n t a t i o n 0 1 1c o m p o n e n t - b a s e d g r o u p w a r e c o l l a b o r a t i v e a p p l i c a t i o n a b s t r a c t w h 越w es a yg r o u p w a r ec o l l a b o r a t i v ea p p l i c a t i o n ,i sas h a r ee n v i r o n m e n t c o m p u t e ri n t e r f a c es u p p o r t i n gg r o u p w a r ec o l l a b o r a t i o n al o to f w o r kh a sb e e nd o n e u s i n gj s d tt od e v d o pg r o u p w a r ec o l l a b o r a t i v ea p p l i c a t i o n h o w e v e r , w i t ht h e i n c r e a s i n g d i v e r s i f i c a t i o no f g r o u p w a r e t o o la n dm e d i a c a r r i e r , g r o u p w a r e c o l l a b o r a t i v ea p p l i c a t i o nt o o l k i t s ,r e p r e s e n t e db yj s d t , h a v e g r a d u a l l ye x p o s e d t h e i r w e a k p o i n t s t h e r e f o r e , t h es t u d yo fc o m p o n e n t - b a s e dg r o u p w a r ec o l l a b o r a t i o nh a s a t t r a c t e dm o r ea n dm o r ea t t e n t i o n o nt h eb a s i so fad e t a i l e da n a l y s i so fj s d t , t h i sp a p e rp r e s e n t e dan e w c o m p o n e n t - b a s e dg r o u p w a r ec o l l a b o r a t i v em o d e l 如v e l o p c df r o m a l li m p r o v e m e n to f e x i s t i n gg r o u p w a r ec o l l a b o r a t i v em o d e l 。a n dt h i sn 群m o d e lw a sd e s c r i b e di n c o m p o n e n t - o r i e n t e dl a n g u a g e t od e m o n s t r a t i n gt h ec o m p o n e n t - b a s e dp r e v a l e n c eo f t h i sm o d e l ,t h em o d e la n dr e l a t e df r a m e w o r kw 辩a l s om a t e r i a l i z e do f tt h e p l a t f o r m o f m i c r o s o f t n e t , i na d d i t i o n ,a na p p l i c a t i o ne x a m p l ew a s g i v e ni nt h ee n d s p a r k so f t h i sp a p e rg o e s a sf o l l o w e d : 1 ) p r e s e n t e dar e a s o n a b l ec o m p o n e n t - b a s e dg r o u p w a r ec o l l a b o r a t i v em o d e l ,i n c l u d i n g m e e t i n gm a n a g e m e n tc o m p o n e n t , m e e t i n g a c t i v a t o r c o m p o n e n t , m e e t i n g t o o l c o m p o n e n ta n dm e e t i n gc o o r d i n a t o rc o m p o n e n t t h ed e m a n do ft h e s ec o m p o n e n t s w a sd e s c r i b e dw i t hc c m o f c o m p o n e n t o r i e n t e dl a n g u a g ec o r b a , 2 ) i ns 姆a do f u s i n g j a v a8 s p l a t f o r m ,t h i sm o d e l a n di t sf r a m e w o r kw a sw o r k e do u to n p r o m i s i n gm i c r o s o f t n e t 3 、t a k i n g t h e a d v a n t a g e o fc o m p o n e n t - b a s e d g r o u p w a r e c o l l a b o r a t i v em o d e l a n d n e t p l a t f o r m ,u s e r - o r i e n t e dr u n t i m ec o m p o n e n t s w e r e s u c c e s s f u l l yr e a l i z e d , 4 ) f o rt h ek e yp r o b l e mo fg r o u p w a r ec o l l a b o r a t i o n ,i e - c o n s i s t e n c ym a n a g e m e n l a s p e c t o r i e n t e dm e t h o dw a sp r o p o s e d t ob eas o l u t i o n k e y w o r d s :c o m p o n e n t - b a s e d ,g r o u p w a r e c o l l a b o r a t i v em o d e l ,j s d t , a s p e c t - o r i e n t e d , 。n 嚣譬 浙江工业大学硕士学位论文第一章绪论 第一章绪论 本章简单介绍了本论文的研究背景和意义、研究的目的,研究范围和限制以 及研究方法和步骤。 1 1 研究背景 1 1 1 j s d t 开发群组协作工具的现状 j s d t ( j a v as h a r e dd a t at o o l k i t ) t lj 是s u n ( s u nm i c r o s y s t e m s ,i n c ) 所 开发的一套工具,最初版本是在1 9 9 8 年2 月提出,目前已经发展到1 5 版。j s d t 利用j a v a 程序语言实现了多点数据的传输,用来支持一个高互动性、多人合作、 多媒体应用程序的开发。它提供了下面几点重要的功能:1 支持会话管理功能; 2 在不同型态的网络下,提供全双工多点通信;3 提供有效率的多重播送信息沟 通:4 提供共享位数组的功能,会话内的成员可以针对此共享位数组的数据做读 取或写入:5 提供一个基于令牌( t o k e n b a s e d ) 的分布式同步处理机制,利用 这个机制可以处理同步合作时对同对象存取的管理。利用j s d t 可以发展出多人 线上聊天、多人共享应用程序、网络游戏、远距教学等群组协作应用程序【2 j 。 早先利用j s d t 开发群组协作应用程序是一个不错的选择。所谓群组协作就是 指考虑了社会群体过程的以计算机为基础的系统【3 】。尽管业界对群组协作没有非 常统精确的定义,但是目前常用的群组协作模型有以下两种【4 】:以一系列两人 之间交互会话的协作活动所构成人类各种复杂的协作活动,从而实现群组协作的 会话模型:以参加协同工作的人们“聚集”在一起,围绕一个共同的任务进行讨 论,交换信息,相互协商,达成共识,作出决定,共同完成任务的会议模型。早 期j s d t 开发的群组协作应用程序大部分都是围绕着这两种模型。 尽管群组协作模型方面的变化不是很大,但是使用j s d t 开发群组协作的不适 应性逐渐体现出来,且伴随着组件化思想的深入运用,组件化群组协作的思想于 是被提出并占据了主导地位。问题的关键是j s d t 不是严格意义上的组件,因为没 有遵循一个组件标准,意味着缺乏使用第三方组件的扩展能力,同样不能够按照 组件标准来开发组件只能有选择的使用部分独立的功能模块。上述缺陷最直观 反映就是随着新的协作工具形式的涌现,使用j s d t 开发的软件不具备组成性,扩 展性,开放性,用户对协作工具的更改意味着重新构架籀体结构。它的不适应性 具体还体现在如下: 第一,从程序员来看,如果要增加新的群组协作工具,那么只能是重新构架 整体结构,因为j s d t 只是一个类库,而非一个符合某一组件规范的组件。程序员 不能够按照某一组件规范来编写组件,以插件的形式载入而不影响整体程序的运 浙江工业大学硕士学位论文 第一章绪论 行。 第二,从终端用户来看,不同群组的人,在不同环境中执行不同任务需要不 同类型的技术支持。目前用户只能使用j s d t 提供的群组协作工具,对于那些想使 用其他群组协作工具或者习惯使用其他群组协作工具的用户来说只能束手无策 和被迫习惯于所提供的软件。 第三,从媒体形式来看,j s d t 开发的协同工具的协作形式一般是以文字见长, 如果要使用声音,视频这些媒体形式作为群组协作形式,至少目前的j s d t 类库是 无法胜任的,需要扩展。因此,从某种意义上讲需要重新构架这个类库的结构。 第四,从协作工具来看,j s d t 能够开发例如聊天室,共同文件编辑,共享白 板这些基本协作工具,而在j s d t 中利用诸如n e t m e e t i n g 5 1 ,m e s s e n g e r “,基于 t a p l l 7 1 的电话,移动电话这些非j s d t 开发的协作工具作为协作工具是不可能的。 而如果我们能够在一个应用程序中使用这些各种各样的协作工具来交互又不需 要改动整体程序的构架,那么将是真正的组件化群组协作工具。 1 1 2 问题的提出 随着人们对组件化认识的深入,软件的重用性一直是关注的热点,而在群组 协作工具和应用程序的开发中也不例外。尽管组件化群组协作的思想提出很久, 但我们在遇到诸如j s d t 这种非组件化的类库时,怎样对他们进行改进以适应组 件化的需求,是一个突出的问题。我们突出的问题表现在以下几个方面: 1 1j s d t 不是一个组件化的类库: 2 ) 能否摆脱j s d t 所属的语言j a v a 特性; 3 ) 能否将j s d t 代表的群组协作模型进行改进,并应用在其他语言应用平 台,以验证它的通用性; 因此,我们有必要熟悉当前各种组件模型,吃透j s d t 类库和对应的群组协 作模型,改进该模型使得更具组件性,以实现组件化的群组协作工具和群组协作 应用程序。 1 2 研究内容和目的 组件化群组协作的研究是一个相当复杂的课题,本文力图在分析j s d t 这类 非组件性的结构和协作机制的基础上,对该协作机制进行改进,提出一种较为完 善的适合组件化群组协作的模型,并根据c c m 8 】【9 】【1 0 】【1 l 】【1 2 1 的规范,描述这个群 组协作模型,最后利用n e t 平台机制实现该群组模型,并以实例为代表。本文 的研究目的如下: 1 ) 剖析j s d t 相关内容,使对早期的群组协作开发包的内在特点有更加清 浙江 = 业大学硕士学位论文 第一章绪论 楚地认识: 2 ) 提出一种适合于组件化群组协作的模型,并用c c m 加以描述 3 ) 在n e t 平台上实现该模型; 1 3 研究限制 本论文限于人力与时间,和实验的目的,群组协作模型以n e t 平台来开发, 但没有探讨其它组件化开发和语言平台的方法及技术,如s u n 的e j b 组件等。 本论文的组件化群组协作模型的模块和接口,仅以范例程序来展示该模块和接口 的各项功能,没有进行协作工具效能的评估。 1 4 研究步骤 论文全文按如下组织: 第一章,绪论。介绍了本项目的研究背景,着重阐述了j s d t 开发群组协作 应用程序的现状。并介绍了研究的内容和目标,以及概括论文的组织结构。 第二章,介绍组件的相关概念。给出了群组协作的概念,详细介绍了j s d t 的结构和对应的群组协作模型,最后介绍目前常用的两个群组协作工具包,并罗 列了两个典型的j s d t 改进方案。 第三章,组件化群组协作模型c o o m o d 的分析和设计。在第二章的基础上, 分析了存在的问题,给出了一个组件化群组协作模型c o o m o d ,并用c c m 规范进行 描述。 第四章,组件化群组协作模型c o o m o d n e t 平台设计。主要描述了c o o m o d 在n e t 平台上开发实现要注意的内容。 第五章,利用c o o m o d n e t 开发组件化群组协作应用程序。主要是对第四章 中实现的框架和接口的一个小应用,并且和使用j s d t 开发的多人聊天工具进行 比较。 第六章,总结。对本文工作进行归纳总结并指出未完成的工作和以后进一步 研究的方向。 其中,第三,四,五三章内容,是本研究的最主要贡献。 浙江工业大学硕士学位论文 第二章组件化群组协作相关概念和研究现状 第二章组件化群组协作相关概念和研究现状 本章首先介绍了组件,组件框架以及群组协作和组件化群组协作的概念,然后 介绍两个群组协作开发包,最后介绍两类有代表性的j s d t 改进方案。 2 1 组件相关概念 我们知道组件框架描述的是如何定义组件和在不同组件之间所提供的通讯 机制。由于后面章节中提出的框架是建立在n e t 这个组件框架上的,所以在详 细阐述第三,四,五章前,需要明确一些相关概念,诸如什么是组件,什么是组 件框架,当前的主要组件框架是什么。对于所提及的主要组件框架我们只作简单 的介绍,并不做详细的描述。 2 1 1 组件的定义 组件就是按照某种约定特殊的接口和清晰的上下文关系。上下文关系是通过 声明必要的接口和合适的执行平台来说明的。一个组件可以独立的被发布同时受 支配于第三方。为了能够独立的发布,一个组件应该是一个二进制单元。为了区 别可发布单元和它的支持的实例,一个组件被定义为不能够有易变的持久状态。 从技术上说,一个组件是原子组件的集合,每个都是一个模块加上一系列资源。 2 1 2 组件框架的定义 组件框架则是定义了一个组件的基本框架,说明了接口的结构以及自身实例 和其他组件实例进行交互或者和外部世界交互的机制。组件框架提供了创建和实 现组件的指导方针,用以形成一个大的应用程序。应用程序创建者可以把来自不 同开发者或者供应商提供的组件进行组合以形成一个应用程序。 2 1 3 当前主要的组件框架 我们将会简略的讨论当前主要的组件框架。第一,s u n m i c r o s y s t e m s ( e n t e r p r is e ) j a v a b e a n s :第二,m i c r o s o f t ( d ) c o m 和c o m + :第三, o m gc o r b a 组件。对于上面的每个内容,我们将会分别介绍如下的内容: 组件合成机制( 比如,通过事件链接) 组件外部可观察行为的其他方面( 比如,接口,方法,属性) 和其他组件框架和框架的兼容性( 交互能力) 组件的移植性 可视化创建工具的有效性 4 浙江工业大学硕士学位论文 第二章组件化群组协作相关概念和研究现状 模型或者框架提供的额外服务 第一,s u nm i e r o s y s t e m s ( e n t e r p r i s e ) j a v a b e a n s j a v a b e a n 是可复用的软件组件,是用j a v a 代码所构建的,可以在可视化工 具中手工操作,这个过程也被称为组件组装【l3 1 。单个的j a v a b e a n 可以在它们所 支持的功能上有所变化,但是通常j a v a b e a n 有着统一的特征,它们是: 对自省( i n t r o s p e c t i o n ) 的支持:集成工具通过对i n t r o s p e c t i o n 的支持 可以检测到j a v a b e a n 并且能够找出它的属性,事件,和该b e a n 支持的 特定方法。 对事件( e v e n t s ) 的支持:通过遵循一定的命名模式,b e a n 能够在它的 接口声明。b e a n 实例是潜在的事件源头或者是一个或者多个事件类型的 监听者。事件机制是链接组件的一个重要方法。当然,组件作为特定的 j a v a 类,可以通过一般的方法符号被链接,也就是组件可以在他们的接 口中声明方法,而这个接口可以被其他组件所调用。 对属性( p r o p e r t i e s ) 的支持:通过遵循一定的命名规范,b e a n 可以声 明b e a n 实例有一个或者多个属性。每个属性都有类型和可以设定和获取 该类型的值。在组装期间,属性可以被自定义,或者在运行期间被编程。 属性的变化可以触发事件,同时属性可以被约束。如果没有禁止改变, 受限制的属性是可以被改变的。 对持久性( p e r s i s t e n c e ) 的支持:自定义和链接的b e a n 实例可以被保存, 这样当应用程序再次载入的时候就可以调用。j a v a b e a n s 没有远程调用 的基本能力。因为这个原因j a v ar m i 被提出,但是j a v a b e a n s 并没有设 计成和j a v ar m i 连合使用。上面的这些困难,s u n 是使用e n t e r p r i s e j a v a b e a n s 作为解决方案。 e n t e r p r i s ej a v a b e a n s 组件框架逻辑上扩展了j a v a b e a n s 组件框架来支持服 务器组件。e j b 组件也是可重用的,预打包的应用程序功能可以被设计成为在一 台服务器上运行,而同时被运行在其他j v m 上的客户端所访问。它们可以和其他 的( e n t e r p r i s e ) j a v a b e a n s 连合起来创建自定义的应用程序系统。e n t e r p r i s e j a v a b e a n s 可以在发布时被组装和自定义,主要是通过一个能够兼容e j b 的j a v a 应用程序服务器所提供的工具l l 4 j e j b 模型支持一定的内在服务,包括生命周期,状态管理,安全,事务性和 持久性。由于这部分不是主要内容,因此不作进一步的说明。 e n t e r p r i s ej a v a b e a n s 是和c o r b a 组件所兼容的,在某种程度上它们可以同 时使用相同的o b j e c tr e q u e s tb r o k e r ( o r b ) 或者事件共享一个c o r b a 包容器。 j a v a b e a n s 组件框架是和a c t i v e x 控件相兼容的: 浙江工业大学硕士学位论文第二章组件化群组协作相关概念和研究现状 通过s u n 的a c t i v e x 桥,j a v a b e a n 可以作为一个合适的a c t i v e x 控件使 用。 通过第三方的解决方法。比如g e n s y m 的b e a n x p o r t e r ”l ,a c t i v e x 控件 ( 包括微软o f f i c e 文件,自身可以作为a c t i v e x 控件展现) 可以作为正 常的j a v a b e a n 使用,也就是可以运行在微软的w i n d o w s 平台上。 当前,e n t e r p r i s ej a v a b e a n s 可以通过使用i n p r i s ej b u i l d e rb e a n s e x p r e s s 来可视化组装。我们期望当c o r b a 组件标准被o m g 接受的时候,能有更多对e j b ( 包括c o r b a 组件) 可视化组装的支持。 第二,m i c r o s o f t ( d ) c o m ,c o m + 和a c t i v e x c o m 是由微软开发的,它定义了一些主要的概念来提供对模型的构架支撑。 这些包括i t 6 : 组件之间函数调用的二进制标准,甚至是跨进程和网络边界。 在接口中函数类型和分类的规定。 一个组件提供的基本接口: 一种其他组件能够动态发现由组件实现的接口的方法。 引用计数来允许组件跟踪它们自己的生命周期,同时在合适的时 候删除自己。 一个唯一标识组件和它们接口的机制。 一个用于建立组件交互性的组件载入机制,并且可以额外的在跨进程和 跨网络的情况下帮助管理组件接口。 c o m 将进一步提供如下的机制: 组件之间的共享内存管理 错误和状态汇报 动态载入组件 基于c o m 的桌面组件被称为a c t i v e x 控件【1 7 1 很多现存的w i n d o w s 应用程序 ( 比如微软的o f f i c e ) 都可以被用作a c t i v e x 控件。 微软的分布式组件物体模型( d c o m ) 扩展了c o m ,用于支持在不同电脑上的 物体之间的通讯。通过远程组件初始化和远程方法调用所支持的分布式应用程 序,d c o m 技术扩展了c o m 。 c o m + 是( d ) c o m 和m i c r o s o f tt r a n s a c t i o ns e r v i c e ( m t s ) 的结合物,它增添 了几个新的特征。m t s 被创建用于提供服务端组件服务( 关键是事务性) ,同时 修正了几个d c o m 的缺点,比如安全问题的处理,组件管理和设定环境的缺乏等 等。c o m + 统一c o m ,d c o m 和m t s 为一个统一协调的组件技术。 c o m + 服务包括如下:c o m + 目录,载入平衡,内存数据库,数据库链接池,队 浙江工业大学硕士学位论文第二章组件化群组协作相关概念和研究现状 列组件事件服务,安全等几方面。由于不是主要的研究内容,我们不作详细介 绍。 第三,o m gc o r b a 组件 o m g 已经创建了一个组件框架,叫做c o r b a 。c o r b a 组件有如下的特征: f a c e t s ,它是为客户端提供的组件功能。一个组件可以有多个f a c e t s 。 按照一个客户可能使用组件的角色,每个f a c e t 都嵌入在一个组件的视 图中。一个f a c e t 代表了组件本身,而不是组件包含的单独事物。 r e c e p t a c l e s ,描述了可能的连通性,通过代理说明的能力和构成组件功 能的能力。r e c e p t a c l e s 是其他组件接口的插入点,同时提供了连接到 其他组件的能力。 a t t r i b u t e s ,这些是组件的确定类型值,目的是既能在设计时又能在运行 时设定使用。现在成功的复用策略大部分都要依赖于设定,比如可选行 为,特征,资源提示等等,因此通过属性或者特性设置是它的特色。这 个过程可以通过组装或者发布环境中的可视化属性表单机制来实现。 e v e n t s ,c o r b a 组件可以通过事件机制来通讯。发送者必须有一个事件 源,接收者必须有一个事件收集器。包含有组件的c o r b a 包容器不得不 提供一个事件服务来传递事件。 事件源,这个包括连接点,用于触发某一个特定类型的事件。一般有两 种可能的事件源类型: 一发布者( p u b l i s h e r ) :发布者产生某种特定类型事件,它被所有属于这 种事件类型的订阅者接收。 一发射器( e m i t t e r ) :发射器产生某种特定类型事件,而它是被连接到 这个发射器上的组件所接收。这个接收器不得不接收发射器产生的该类 型事件。 事件接收器,是被命名有特定类型事件所推动的连接点。和前面相关的 是,可以描述一个r e c e p t a c l e 作为某种特定的r e c e p t a c l e 。注意一个 事件发布者可以连接到多个事件接收器上,但是一个事件发射器只能连 接到一个事件接收器上。 c o r b a 组件可以使用它们的接口,r e c e p t a c l e s 和事件机制来和其他组件通 讯。c o r b a 组件在一个容器内被初始化,这样一个容器可以驻留一个或者多个组 件。c o r b a 组件容器模型是位于服务器上的应用程序的框架。这个容器是建立在 c o r b ap o r t a b l eo b j e c ta d a p t e r ( p o a ) 上,同时为c o r b a 服务提供接口。因为这 些容器使用一个标准的o r b p o a 来通讯,它们和其他组件或者按照c o r b ai d l 的物体是兼容的。 浙江工业大学碗:t 学位论文 第二章组件化群组协作相关概念和研究现状 c o r b a 容器可以解释并且和所有内含的组件通讯。通过这些方法,一个容器 可以容易的透明的为墨面的缎l 牛提供额终的服务。这然服务包括事务瞧,安全性, 事件,持续能等等。由于不怒主要内容,不作过多的洋细介绍。 2 1 4 组件框架静 t 较 上面所有的模型都可以随意发布,所有的框架都可以在一个分布式环境中运 辛亍良好。尤其楚c o r b a 组件和e n t e r p r i s ej a v a b e a n s 必生其有交互桎,丽a c t i v e x 之间的交互能力需要诸如b e a n x p o r t e r 这样的桥接。因此三个难要组件框架都被 基于缀释褥帮发工吴掰支持。 总而言之,e n t e r p r i s ej a v a b e a n s 和o m gc o r b a 组件从交氨性质来看是比较 饶吴豹。鸯予c o m + 缀佟静宠犬市场,我稻鞠僚e n t e r p r i s ej a v a b e a n s 帮畜c o m + 的o m gc o r b a 组件的交互往将会提供。 2 2 选择n e t 的理由“劬 选择哪个组件框架来作为后面提出模型的框架是本节的关键。 因为有3 个可选择的用来设计和实现基于组件的分布式应用程序的框架,所 瑷我们不得不选择一个缢粹框架。这些可选择的方案如前面提到的是:渊g c o m p o n e n tm o d e l ( c c m ) ,s u ne n t e r p r i s ej a v a b e a n s j b ) ,和m i c r o s o f t n e t 框 架。蒸于用声和较律歼发者这两令方源韵考惑,选铎n e t 稽架作为实现搂登的 基础。做这个决定的主要原因是: 慰手缀俘纯群组绥律来说,怒一个全凝懿平台,嚣蔫还矮奎蠢这方甏豹 运用和实践。 实瑗绦转握絮豹有效魏。 c o m 的交互性。这个交互性使得相对比较容易米包装现有的a c t i v e x c o m 爨终,魄如,n e t m e e t i n g ,i e ,o f f i c e 瘦震程澎,w i n d o w s m s nm e s s e n g e r 等等。 方便安装_ 程卸装软馋。这方嚣极大匏撬裹了尝试软 牛瓣戆力。 v i s u a ls t u d i o n e t 合成开发环境,帮助开发者以g u i 形式设计,帮助 他们霹以反复使用应用程序,舞且舂离级调试特征。 一个庞大的开发社区,而这个主要由来自业界的人组成。 对于移动环境或者个人数字助手( p d a s ) 来说比较方便移植,鸯剥于协网 工具的多样化。 没有诞书限制,可以被业界的用户或者开发者任意使用。 浙江 := 址大学硕士学位论文第二章组件化群组协作相关概念和研究现状 2 3 群组协作模型和组件化群组协作模型 2 。3 嚣缀漭佟穰建 什么叫群组协作模型? 酋先我们来看看群组协作的定义。群组协作指的是考 虑了季圭会嚣髂过程豹戮计算瓿态基臻的系统( c o m p u t e r b a s e ds y s t e mp l u st h e s o c i a lg r o u pp r o c e s s e s ) 。因此可以将群组协作模型定义为 给人们提供一个 访阉禁共享群凌的雾嚣黻支持缝键去竞残菜令慧嚣鹣耀标或 薹务豹诗簿援应蠲 结构绒框架。 2 3 2 组件化群继协作模越 一个良好的组件瓣组协作模型对予群组协作的开放性和豫定的升级性有很 大的帮助。真正的组件纯群缀协作梗篷必定怒遵循菜个组俘框架标准 ”。而在 目前的群组协作模型中有些模墨! 没有按照上谳所提到的组件樵架标准,或者他们 缺乏筏用第三方组件酌雏力,但是仍然可以辨识出部分独立静功能模块,可戳被 选择性的使用。严格意义上讲,它们不能被称为组件化群组协作模型。因此,为 了区分,我稍把其有上述特须豹群缝游俸模黧朝骰“松散鹃组件纯群组协幸筝模 型”。而除此之外的群组协作模型我们可以称之为“严格组件化群组协作模型”, 也藏怒真正意义上戆缀 事纯嚣缰资 笮模型。瑟蓠蟊我稍提羁豹於瓣辩属予“松 散组件化群组协作模型”。 2 3 3 目前常用的松散的缎件化群缀协作模型 逶逶浏夔囊阕大豢豹獒瓣,发瑷移在羞壤多类镒予菇戮这撵鹃“松鼗缝箨 化群组协作模型”。它们在某嫩地方都有自己的特色,也都是汗发群缀协作应用 程序的早期工兵包,毽是它识簸大静共性是 严格意义上的缓馋纯群缀携终工爨 包。为了对同一层次的内容有整体了解,现分别予以介绍: 繁一g r o u p k i t t e a m w a v e g r o u p k i t 是一个用于开发同步分布式会议应用程序的群缀协作工具包瑚】。 g r o u p k i t 在莱些关键特征上降低了实现复杂度。整个运行框架能够自动管理创 建,赢相连接和在构成会议会话的分布式进稷之间的通讯。工熊包的一系剜内容 允许开发人员能够控胄分布式进程的褥为,管理状态的改变并且共享捆关数据。 g r o u p k i t 使用的嘏架是由会话管联,会议疲用程序和一个巾心注掰者构成的 结构。当注册卷运行程一个中心服务器上时,所有的用户都有会议管理者和使用 酌会议应臻穰序的拷炎。丽注掰者在g r o u p k i t 环境中燕一个邋续运行着的进耧, 主要怒用来处理协同。当个用户开始一个会议管理避程的时候,它会在一个预 定义钕雹援寻注瓣者静进程;谣不焉孺户豹会议蓉理滋程按照涟瑟者巾的会议会 话和会议成员来交换信息。整个注册者的功能就是为会议管理进程提供一个中心 新江t 业人学硕十学位论文第二章组件化群组协作相关概念和研究现状 交汇点。在第一个交易完成后,不同会议应用程序之间的通讯就可以直接发生了, 而不再使用注册者作为中介。 已经使用g r o u p k i t 来编写过不同的群组协同应用程序,比如a l l i a n c e - - 一 个协同文本编辑器1 2 1 1 和g r o u p c r c - - 一一个用于信息系统设计的协同工具【2 2 。 目前,g r o u p k i t 的商业版本t e a m w a v e 已经有了大量协同工具:比如共享白 板,共享w e b 浏览器,消息板和共享数据库。 第二h a b a n e r o h a b a n e r a 框架是用来开发协同的j a v a 程序工具。整个框架没有提供必要的 方法时创建或者移植现有的应用程序或a p p l e t 到协同应用程序之中。h a b a n e r o 是由一个服务器组成,在这个服务器上驻留者多个会话。客户同样也能运行会议 应用程序作为这些会议的一部分。 中心服务器管理着会议并且提供了一些额外的服务:比如会话可以被复制, 保留会话痕迹,还有就是访问的限制。客户端的应用程序我们叫做h a b l e t s 。 h a b a n e r o 客户端提供一个h a b l e t 接口来标准化会话功能。诸如定义,创建和加 入一个会话。客户端还提供了会话信息,用户信息,通知机制,记录和回放能力, 安全功能,管理一系列活动用户和工具以及地址本的功能。 h a b a n e r o 提供一个协同的环境来支持会话管理进程,这个环境使得每个参与 者能够创建,加入,离开和浏览会话。而h a b a n e r o 环境支持: 多会话。参与者能够同时在一些不同会话中协同。 协同应用程序集的扩展。应用程序可以轻易的加入到h a b a n e r o 环境中。 关于会话的详细信息。比如,会话的名字,目前使用的共享应用程序的 名单和允许参与者的名单。它也支持会话中参与者的匿名。 预设置的会话。它能触发工具允许用户描述一个会话并且保存这些信息 使得以后再用。 邀请参与者加入到在线会话的通知机制。这个系统即支持同步通知又支 持异步通知。 用户的角色。在定义会话特征的时候,会话的发起人有着特殊的地位, 他可以决定哪些人可以被允许加入到会话中。 对其他人的感知。h a b a n e r o 可以显示谁在参与,参与者在哪里,怎样激 活他们以及谁最后使用了哪个工具。 目前,使用h a b a n e r o 开发的工具比比皆是,比如:共享w e b 浏览器, 共享白板,声音聊天,共享的v r m l l 0 浏览器和基于a t & tv n c 共享工具的应用 程序。 2 3 ,4 对群组协作工具包j s d t 的改进 0 浙江t 业大学硕士学位论文 第二章组件化群组协作相关概念和研究现状 j s d t 是蘩于j a v a 的用于群组协同感知呶用程序开发的多点数据传递服务 包。它提供了一系列a p i ,定位于应用程序开发者设计实时协阑应用穰序。恧结 果应用程序需疆和这个工其包紧紧的结合在一起,不鼹够分开单独使用。 综合各种资料文献,对于j s d t 的改进可以分为两大类: 第一,在j a v a 的语言机确范围内进行扩展。 通常使用j a v a b e a n s 框絮来支持实时同步协同应用程序。最具代表性的是 i v a nm a r s i c 和b o g d a nd o r o h o n c e a n u 的方案。袍 f j 独御性的提出了一个普通 协作线( ag e n e r i cc o l l a b o r a t i o nb u s ) 的概念。它作为一个可激活的虚拟“通 道”和客户端协阕戆交互。正楚这个c o l l a b o r a t i o nb u s 提供了一个蘩予组舞豹 即插即用的环境,从而让任何应用程序都可以具有协l 司性质。圈2 - 1 慰整个群缀 蛰嗣糕絮图。 圈2 - 1 :i v a n 和b o g d a n 的改进方察 而这时候我们使用j s d t 开发的群缀协同威用程序也就成为一个即插即用的 插俘。对予这个改进方案,尽管获菜耱程度上其备了一定的组件性( 缀装住) , 而且充分使用tj a v a 语言的特点,但是它代袭的群组协同模型的概念是不清1 1 9 的。瑟置窥菜种语言紧密结合静结果就是移植翔其穗诺言平台的番难。 第二,不拘泥于j a v a 的限制,使用和j a v a 有很好烂合性的c o r b a 规范来扩 震。 这类方案最典型的是j o a o ,t i a g o 和f e r n a n d o 提出基于c o r b a 事件服务的会 议控制疆务协3 。在这令方案孛,主要肉容是镬翔j a v a 平台释i t ut 。1 2 0 撬范来 创建一个会议糕架,而且要求为数据和控制信息的传输具备可靠的多点通讯。熬 令控制售塞是按照c o r b a 事锌羧务攘蘩警理实瑗懿。鞠辩扩震瓣内容铬现懿下: 原始i p 多播的欧射机制,可靠传输过滤的优化等等。下图是谈框架的规划图: 浙江工业丈学硕士学位论文 第二章组件化群组协作相关概念和研究现状 图2 2 :j o a o ,t i a g o 和f e r n a n d o 的改进方案 我们可以看到,j s d l t 处于通讯层和外部应用程序的连接位置。可能对于组件 性这个概念没有深入了解的人会认为这个方案谈不上对j s d t 的改进。但是从整 体方案的可扩展性角度来看是这个方案的最大优势,毕竟c o r b a 规范可以和任 何语言开发的应用程序通讯。所以从组件性之一的扩展性角度来看,我们还是认 为该方案是对j s d t 的成功改进。 浙江工业大学硕士学位论文第三章组件化群组协作模型c o o m o d 分析和设计 第三章组件化群组协作模型c o o m o d 分析和设计 首先为了方便,把自己修改扩展的组件化群组协作模型称为c o o m o d 。本章第 一部分描绘了j s d t 基本框架和对应的群组协作模型。在一般介绍之后,首先明 确了c o o m o d 组件化群组协作模型的需求,提出了修改j s d t 的凡条指导方针,然 后提出了c o o m o d 模型。在非常抽象的描述了我们模型中的不r q 功能模块后,更 多的细节将会在第四节描述。这些描述将会包括对组件接口的说明,和对这些接 口的操作和组件属性这些描述属于对组件的一个静态视角 3 1 j s d t 基本框架和对应的群组协作模型 3 1 j s d t 基本框架 我们可以仔细分析j s d t 的基本框架,它是以会话( s e s s i o n ) 为一个管理单 元,会话底下可以加入一个或数个通道( c h a n n e l ) ,通道内可以加入一个或数个 参与者( c i l e n t ) ,在同一个通道内的参与者可以进行信息的传送与接受。每一 个会话都必须给予一个端口号( p o t tn u m b e r ) 和会话名称,同一个端口号内可 以有许多会话进行,但是会话名称不可以相同。j s d t 里通道之间的信息同样无 法交换。如图3 一l 所示: 图3 1 :j s d t 的s e s s i o n ,c h a n n e l 和c l i e n t 之间的关系 3 1 2j s d t 代表的群组协作机制 通过对j s d t 基本框架的分析,我们可以描绘该基本框架体现的群组协作模 型,主要是由活动,会话和参与者组成。活动,会话和参与者的关系如图3 - 2 所示,他们是一个阶层式的构架图,最上层是活动,活动层底下可以有很多的会 话在进行,而每个会话中的参与者都可以彼此交换信息。会话里面可以有很多个 参与者。因此三者的关系是呈现阶层状。 这里需要说明的是会话这个概念。会话是指一群人在绘定的时间内进行沟通 或合作的情况,例如:一群人在同一个聊天室内聊天,一群人在用一个会议内开 会。会话管理的主要功能有;会话内参与者信息的维护,会话人数的控制,进入 会话的权限控制。 浙江工业大学硕士学位论文第篡章组件化群组协作模型c o o m o d 分析和设计 图3 - 2 :活动,会话和参与者的关系 3 2c o o m o d 模型的需求和目标 我妇已经知道j s d t 势誉是真正意义上熬缀饽纯群缀协铭模型。褥我 | l 怎撵 修改它的模型使其具有真正的组件性是个关镶,也就怒说修改的依据炬什么。这 是本节所要嬲决的目题。 3 2 1 目标:基予维俘设计,组体化和霹扩展性 1 组成性 如果个系统能够由单独功能模块组合起来,那么它具备的就是缀成性。因

温馨提示

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

评论

0/150

提交评论