




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、中间件领域建模案例研究要点浏览:特征模型有组织地描述了一个特定领域的软件所具有的特征,是一种便于软件复用的需求规约工具。本节将利用特征模型刻画软件中间件的主要特征,为中间件的功能划分奠定基础。不同的建模人员、从不同的角度得出的特征模型不尽相同,本文给出的特征模型反映了中间件用户(即基于中间件分布应用的开发和管理人员)在使用中间件时关心的、也是可见的功能或质量,并不排斥其它形式的特征模型。此外,该特征模型侧重于主流中间件的主要特征,不是中间件特征的全集。同时,该特征模型选择性地细化了一部分特征,而不是将所有特征都进行细化。具体而言,您可以了解到:n 中间件封装的共性机制解决了系统的哪些需求。n
2、不同中间件功能在需求层次的关系。 1 中间件特征模型概览图 Error! No text of specified style in document.1 软件中间件特征模型概览如图 Error! No text of specified style in document.1所示,现有的主流分布计算中间件具备协同(Coordination)、构件化(Componentization)、可靠性(Reliability)、安全性(Security)、持久性(Persistency)、透明性(Transparency)、伸缩性(Scalability)、生命周期(LifeCycle)等主要特征。其
3、中,协同是中间件提供的主要功能,其它特征则描述了中间件非功能属性。以CORBA为例,协同特征往往由GIOP/IIOP互操作协议、命名服务、接口定义语言和编译器提供,非功能特征往往由各种服务提供,如安全服务、事务服务、容错服务、持久服务、生命周期服务。随着中间件对基于构件的软件开发的支持,构件化成为中间件的主要特征之一。中间件对构件化特征的支持主要表现为三个方面:首先是提供部署特征,因为构件与对象的主要区别之一在于构件是一个可独立部署的单元Szyperski 97Bachman 00;其次,增强了生命周期管理特征,尤其是上层应用单元的装载、实例化、卸载等工作由中间件而不是上层应用完成;其三,增强
4、了透明性特征,使得应用程序代码无需考虑如何使用中间件提供的安全、事务、持久、容错等特征。例如,CORBA和RMI应用程序往往需要将整个实现打包在一起发布,应用实现中往往包含与生命周期管理和安全、事务、持久等特征相关的代码,而CCM和EJB应用可拆分成多个包单独发布,程序中也没有那些与中间件相关的代码。在实现上,中间件对构件化特征的支持往往通过容器实现,如CCM容器和EJB容器。容器为上层应用的构件提供了部署和运行空间,自动管理构件的生命周期,并协助上层应用合理使用互操作、安全、事务、持久等中间件提供的各种特征。2 协同特征中间件的最主要特征就是协调散布在多个主机上的构件以完成特定目标。目前的主
5、流中间件致力于两个构件之间基于接口的协同,而新型中间件,如Web Services,则开始关注多个构件之间、基于流程的协同。如图 Error! No text of specified style in document.1所示,中间件的协同特征主要包括互操作(Interoperability)、同步(Synchronization)与并发(Concurrency)三个子特征。其中,互操作使能分布环境下构件之间的交互,同步负责协调交互构件的时序关系,而并发则侧重于构件交互过程中的资源管理。互操作是中间件的基本特征,为了使能分布构件之间的交互,中间件必须提供合约(Contract)、协议(Pro
6、tocol)和绑定(Binding)三种互操作子特征,如图 22所示。图 Error! No text of specified style in document.2软件中间件特征模型互操作及其子特征合约是指构件对外提供服务的承诺以及这些服务正常使用的条件。其中,接口规约(Interface Specification)是服务功能的文法描述,定义了服务的名称、方法名、输入输出参数等,如CORBA IDL;非功能约束(Non-functional Constraint)则描述了服务接口的质量属性,如安全、事务等,如CORBA IDL中的Context;协奏(Orchestration)则规定了
7、接口在使用过程中一些隐含的次序关系。构件内部协奏(Intra-Component Orchestration)是指一个构件的接口方法之间存在一定的调用次序,违背这些次序可能导致调用失败,例如,要调用某构件的方法B,必须首先调用该构件的方法A,这是EJB构件调用的典型场景,即,调用正常的业务方法之前必需先调用Home接口中的实例创建方法SUN 01a。构件间协奏(Inter-Component Orchestration)是指使用系统某个特定功能时,需要多个构件按照一定的次序共同完成,如必须依次调用构件M的方法A、构件N的方法B、构件P的方法C才能实现系统的某个功能。值得一提的是,传统中间件,如
8、CORBA、RMI、COM,并不提供协奏特征,构件内部以及构件之间的协奏关系由上层应用构件负责。而目前的中间件热点之一Web Services既考虑显式定义构件内部协奏(如Web Services Choreography Language Austin 03),又重点解决构件间协奏(如Business Process Execution LanguageAndrews 03),这意味着协奏正式成为中间件的主要特征之一。协议(Protocol)是指交互双方必须共同遵循的一组规则,典型的互操作协议包括CORBA的GIOP/IIOP、RMI的JRMP以及DCOM的RPC。互操作协议主要定义交互过程
9、中使用的消息格式(Message Format)、编解码算法(Mashalling)以及网络传输协议(Networking)。绑定是指构件必须首先与中间件建立联系,然后通过中间件与参加交互的其它构件建立联系,最后才能开始交互。客户端构件与中间件的关联通过客户桩绑定(Stub Binding)实现,服务端构件与中间件的关联通过服务骨架绑定(Skeleton Binding)实现。构件之间的关联则是通过命名绑定(Naming Binding)实现的。命名绑定有包括命名的格式(Naming Format)、命名的发布(Naming Publish)以及命名的查询(Naming Discovery)三
10、个子特征。尽管中间件的初衷就是尽量使得分布应用的编写与本地应用类似,开发人员仍不得不面对分布应用的一些特殊情况。同步就是分布应用的主要特点之一,也是中间件用户在开发分布应用过程中不得不关注的中间件主要特征之一。如图 23所示,同步又可细分为点对点同步、点对点异步和分组:图 Error! No text of specified style in document.3 软件中间件特征模型同步及其子特征点对点同步(Peer-to-Peer Sync)协调分布环境中的两个构件,要求这两个构件必须同时可用。其中,简单同步(Simple Sync)是指客户构件发出请求后就阻塞等待直至服务构件完成处理并返
11、回应答后才继续执行;延迟同步(Deferred Sync)则是指客户构件发出请求后并不阻塞等待服务构件完成处理即可继续执行,在随后的某个时刻客户构件主动查询是否产生应答;单向同步(Oneway Sync)则是指服务构件不会返回任何结果。单向同步常常被误认为异步协调,但其实仍要求服务构件在客户构件发出请求时可用。点对点异步(Peer-to-Peer Async)也负责协调分布环境中的两个构件,但并不要求这两个构件同时可用。其中,回调异步(Callback Async)是指客户构件发送请求后继续执行,随后由服务构件主动通知客户构件处理应答;询问异步(Poll Async)则是指客户构件在请求发送后
12、,会立即收到服务构件的一个即时应答,对预期的处理结果进行说明,客户构件可以根据该即时应答决定是否阻塞等待返回结果,或者决定何时查询返回结果。分组(Grouping)协调分布环境中两个以上的构件,一般不要求所有构件同时可用。其中,发布/订阅模式的分组(Publish/Subscribe)要求参与同步的构件主动注册或注销,如典型的事件服务、消息服务或通告服务均提供该特征。而隐式分组(Implicit Grouping)则无需参与方主动注册或注销,这些管理工作由额外的机制负责,如典型的集群以及CORBA容错服务均支持该特征。在分布环境下,同一个构件可能要同时为多个客户服务,为此,需要并发特征以有效利
13、用有限的资源。并发主要考虑在服务器端对线程(Servant Thread)和网络连接(Access Point)两种资源的管理,如图 24所示。图 Error! No text of specified style in document.4软件中间件特征模型并发及其子特征对于一个服务构件(或者驻留多个构件的服务端点)而言,可为每个请求分配一个线程(PerRequest Threading),或者为每个客户分配一个线程(PerClient Threading,该客户的所有请求均由同一个线程串行处理),或者建立一个线程池(Pool Threading)为所有请求分配有限的线程。线程池并发包含关闭
14、策略(Shutdown Policy)和阻塞策略(Block Policy)两个子特征。线程池关闭意味着不再为请求分配线程,对于已经分配的线程,或者等待它们处理完毕(Shutdown After Processing),或者立即中断这些线程(Shutdown At Once)。当线程池中所有线程均处于执行状态,没有多余线程分配给新的请求时,线程池处于阻塞状态。此时可将线程池唯一的调度线程分配给请求(Run When Blocked),或者等待某个线程处理完毕后再分配给新的请求(Wait When Blocked),或者直接拒绝新的请求(Discard When Blocked),或者拒绝最老的
15、等待请求(Discard Oldest When Blocked),或者关闭整个线程池(Abort When Blocked)。一个服务构件往往具备一个访问点,允许客户在分布环境下访问该构件,访问点可进行四种网络连接分配策略,分别是为每个请求(PerRequest Connection)、每个客户(PerClient Connection)、每个客户端(PerEndpoint Connection)一个客户驻留在一个客户端,一个客户端可同时驻留多个客户)分配一个连接,或者建立一个连接池(Pool Connection),进行与线程池类似的管理。3 可靠性特征可靠性是任何实用的软件系统必须考虑的
16、特征,如图 25所示,中间件提供的可靠性特征包括三个方面:图 Error! No text of specified style in document.5 软件中间件特征模型可靠性及其子特征请求可靠性(Reliable Requesting)是指构件之间的互操作和同步两个特征能够持续正确运行的概率,可分为点到点请求的可靠性(Peer-to-Peer Reliable Requesting)和分组请求的可靠性(Grouped Reliable Requesting)。前者往往依赖四种子特征实现,包括最佳努力请求(best-effort Requesting,不需要任何可靠性机制)、最多一次请求
17、(At-most-once Requesting)、至少一次请求(At-least-once Requesting)、正好一次请求(Exactly-once Requesting)。而分组请求的可靠性可由K可靠(k-reliability,保证至少k个构件收到消息)、超时(time-outs,保证在指定时间后不传输消息)、全序(totally-ordered,保证某个组请求肯定在前一个组请求收到之后才被收到)等子特征实现。事务性特征(Transaction)适用于多个请求的可靠性,其ACID(Atomic, Consistency preserving, Isolated, Durable)原
18、则保证一系列的请求或者全部得到处理、或者任何请求都没有得到处理,即,每一次事务都是一致的。事务特征又可分为平滑事务(Flat Transaction)和嵌套事务(Nested Transaction)两个子特征,两者的主要区别在于后者允许在一个事务中包含其它事务。复制(Replication)是实现分布系统可靠性的主要机制之一,也是用户可见的特征。其中,主动复制(Active Replication)是指两个或多个副本同时运行,每个副本都会接收客户请求、执行操作、修改状态、并发送应答。当有副本失效时,其余副本仍继续正常工作。被动复制(Passive Replication)是指两个或多个副本同
19、时运行,但任意时刻有且仅有一个副本接收客户请求、执行操作、修改状态、并发送应答。4 其它特征伸缩性是指系统适应未来增长负载的能力。集中式系统中的系统负载只能在主机允许的范围内增长,而分布系统增长的负载可以分散到多个主机上。构造可伸缩分布系统的关键是在不修改系统体系或构件的设计与代码的前提下改变构件在多个主机的分布。负责构件分布和交互的中间件需要提供相应的支持。目前伸缩性较优的中间件大多基于分组协调特征来实现。安全性是开发分布系统,尤其是Internet环境中的软件系统,需要考虑的主要问题之一,也是中间件技术与产品面临的主要挑战之一。现有中间件在安全方面进展不理想,如CORBA庞大的安全规范实用程度很低,而Web Services的安全也在探索中。目前中间件大多提供简单的访问控制,实际应用的安全往往采用中间件以外的其它机制,如在物理网络层采用路由器认证或虚拟专网,在主机层采用防火墙或操作系统的安全机制,应用层往往利用数据库的安全机制。持久性则是中间件对上层应用屏蔽后台数据库管理系统而产生的特征。对于目前主流的分布对象中间件用户而言,持久信息不再是数据库中的存储的数据,而是持久对象具有的持久属性,如J2EE支持的实体EJB。生命周期是指中间件对上层应用构件生命周期的管理,从中间件用户角度而言,生命周期特征表现为构件实例的生命周期状态。不同的中间件支持的构件生命周期状
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年中国BB管行业发展研究报告
- 2025至2030年中国32路音频跳线盘市场分析及竞争策略研究报告
- 2025至2030年中国28升电子冰箱市场分析及竞争策略研究报告
- 四年级上册数学第四单元三位数乘两位数教案
- 2025至2030年PS发泡画框项目可行性研究报告
- 四年级上册教学计划数学
- 慈溪小学毕业试卷英语
- 中医药理论下老年养生指导手册
- 从文字到多媒体提升的表达力
- 人教部编版语文七年级上册《有趣的成语》(新课标单元整体教学设计+课时教学设计)
- 商业街定位借鉴案例-俄罗斯阿尔巴特街
- 王尽美事迹学习PPT王尽美生平介绍PPT课件(带内容)
- 《学记》的教育思想及其当代价值解析课件
- 律师的职业道德执业规范与执业风险防范
- 国家电网公司施工项目部标准化管理手册(2021年版)线路工程分册
- 装配式建筑深化设计(PPT81P)
- 2022年《中央企业合规管理办法》新制订《中央企业合规管理办法》全文内容课件
- 吊篮使用安全技术交底
- 草船借箭示范课件第2课时
- 利益冲突审查表
- 移动机器人机械臂的设计
评论
0/150
提交评论