软件构件与中间件
- 格式:ppt
- 大小:531.50 KB
- 文档页数:10
1. 软件工厂有两个要素:软件“元器件”技术和它的组装、链接、合成技术。
2. 构件是一个包含约定的被调用接口, 可以被独立部署,且通常依赖于组装运行环境的结构单元。
3. 构件的实现就是以构件的接口说明信息为基础,借助具体的开发平台,用具体的开发工具实现构件接口所描述的功能。
4. 从构件性质来看,构件可以分为抽象构件和具体构件。
5. 软件构件粒度的大小是影响软件成本和软件重用质量的重要因素,它是一个难以清晰定义的概念,它表征了构件的规模与复杂程度,一般认为,构件的粒度是用来描述构件所提供特征的粗细程度的量化,或者说是构件所提供特征的计算量的大小,但通常难以精确度量。
6. 软件构件模型是对软件构件本质特征的抽象描述,是对开发可重用软件构件和构件之间相互通信的一组标准的描述,它一般规定了创建和实现构件的指导原则、构件接口的结构、构件与软件架构以及构件与构件之间的交互机制。
7. 按照组装的时间划分,分为:基于源代码级的组装和基于运行级的组装。
8. SOAP是Simple Object Access Protocol 的缩写,是一种轻量级的、简单的、基于XML的协议,用于在网络之间交换结构化数据。
SOAP协议包括四个部分: SOAP封装(Envelop)、 SOAP编码规则(Encoding rules)、 SOAP RPC表示(RPC Representation)、 SOAP绑定。
9. WSDL是Web Service Description Language的缩写,它是一种使用XML编写的文档,是WEB服务的接口定义语言,由Ariba、Intel、IBM、MS等共同提出。
WSDL 可以描述WEB服务的三个基本属性:服务做些什么、如何访问服务、服务位于何处。
10. 构件库是一定形式的构件集合,其由构件、容器、构件管理程序三个部分构成。
11. 构件描述的具体内容应包括三个方面:构件的基本信息、构件的分类信息和构件的接口信息。
软件构件与中间件基础学习笔记⼀、什么是软件构件?软件构件是⾯向请求的,关注业务逻辑,对分布式应⽤的通信、互操作、可靠性、兼容性、完整性⽆感的。
中间件技术解决的就是软件构件问题。
⼆、什么是远程对象(Remote Object)?什么是远程对象调⽤(Remote Method Invocation)?远程主机,或者⾮本进程的对象。
与这些对象通信或者请求其执⾏⽅法。
三、什么是中间件的通讯透明性(Communication Transparency)?指借助中间件技术,应⽤程序不关注也⽆法得知⽹络通信的具体⽅法、协议等细节,只关注与应⽤相关的信息。
四、什么是中间件的定位透明性(Location Transparency)?应⽤程序不关注也⽆法得知真正提供服务的服务器端程序的位置。
如果在⽤户访问时服务的位置发⽣改变,不影响⽤户访问并且⽤户⽆法察觉服务的位置发⽣了改变。
五、中间件中的对象引⽤(Object Reference)与Java中的对象引⽤有什么不同?中间件中的对象引⽤⼀般使⽤⼀个字符串,例如UUID,来查找⼀个对象,这个字符串要在整个分布式应⽤中唯⼀。
⼀般的java引⽤则是在⼀个jvm进程中的,定位对象所使⽤的内存地址的⼀个32位或者64位指针。
六、什么是代理对象(Proxy Object)?与远程对象的差别是什么?代理对象⾃⾝并不实现所需要的业务逻辑,⽽是将请求转发给另⼀个对象,由该对象处理,并把处理结果返回给请求⽅。
代理对象充当中间⼈的⾓⾊。
代理对象可以在本地进程中。
七、什么是打包(Marshalling)?什么是解包(Unmarshalling)?打包是指将发出请求所需要的信息按照⼀定的格式⽅法整合在⼀起,以便于发出。
解包是指将收到的响应信息分解成易于使⽤的数据。
⼋、什么是⾯向对象中间件?什么是⾯向消息中间件?举例说明。
⾯向对象中间件使⽤⽅法调⽤、对象调⽤的形式发起请求,响应也是以对象的形式返回,例如代理对象。
学习中心_________姓名_____________ 学号西安电子科技大学网络与继续教育学院《软件构件与中间件技术》全真试题(开卷90分钟)题号一二总分题分31 69得分一.多项选择题(共12小题,31分。
按照要求的选项个数选择)1. 在3层结构的分布式系统中,()包含了系统的核心业务逻辑。
(选1,2分)(A)客户层(B)中间层(C)数据层(D)以上都不是2. 典型的集成中间件为开发人员提供的三种基本支撑为:(选3,3分)()(A)提供构件运行环境(B)提供互操作机制(C)提供公共服务(D)提供数据库管理3. 构件通过封装隐藏其实现细节,构件接口是构件对外公布的唯一信息,使用者只能通过接口了解并使用组件。
CORBA对象的接口是用()定义的,EJB构件的接口是用()定义的,Web Service的接口是用()定义的。
(各选1,3分)(A)WSDL (B)Java interface (C)自然语言(D)OMG IDL4. 在支持分布式对象访问的桩/框架(Stub/Skeleton)结构中,负责替客户端完成底层通信相关工作的是(),负责替服务端完成底层通信相关工作的是()。
(各选1,2分)(A)客户端桩(Stub)(B)构件的接口(C)服务端框架(Skeleton)(D)分布式对象自身5. 在下图所示的OMA参考模型中,哪些涵盖了我们开发一个基于CORBA的应用时可以直接使用、不需自己实现的功能:(选3,3分)()(A)对象服务(B)领域接口(C)公共设施(D)应用程序接口6. CORBA IDL文件中可以定义模块、类型、常量、异常、接口、值等6种规格说明,其中IDL文件的核心内容是:(选1,2分)()(A)类型(B)常量(C)接口(D)值7. CORBA规范可以实现的可互操作性包括:(选3,3分)()(B)不同平台(如不同操作系统)与语言之间的可互操作性(C)不同厂商ORB产品之间的可互操作性(D)不同体系结构中的组件的互操作性(部分支持)(E)不同CORBA规范版本之间的可互操作性8.下面关于EJB的会话构件(Session Bean)的描述正确的有:(选2,2分)()a)Session Bean存在于客户应用与应用服务器交互的时间段内,Session bean中的数据不保存在数据库中。
架构,构件,组件,框架,中间件之间区别 中间件是⼀种独⽴的系统软件或服务程序,分布式应⽤软件借助这种软件在不同的技术之间共享资源; Web Services就是可以通过web描述、发布、定位和调⽤的模块化应⽤; 组件就是对象; 模式,即pattern。
其实就是解决某⼀类问题的⽅法论; 框架,即framework。
其实就是某种应⽤的半成品,就是⼀组组件,供你选⽤完成你⾃⼰的系统; 构件(component)是可复⽤的软件组成成份,可被⽤来构造其他软件。
它可以是被封装的对象类、类树、⼀些功能模块、软件框架(framwork)、软件构架(或体系结构Architectural)、⽂档、分析件、设计模式(Pattern)等 中间件作为⼀⼤类系统软件,与操作系统,数据库管理系统并称"三套车",其重要性是不⾔⽽语的.那什么是中间件?我们来看看以下的⼏种定义:Middleware, is a layer of software between the network and the applications. This software provides services such as identification, authentication, authorization, directories, and security. In today's Internet, applications usually have to provide these services themselves, which leads to competing and incompatible standards. By promoting standardization and interoperability, middleware will make advanced network applications much easier to use.同样,IDC给出的⼀个定义:中间件是⼀种独⽴的系统软件或服务程序,分布式应⽤软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和⽹络通信。
软件构件与中间件第1、面向构件的方法什么是面向构件的方法?Comp onen t-based software engin eeri ng (CBSE) is an approach to software developme nt that relies on software reus—reus ing artifacts面向构件的方法的优点?Reuse Developme nt of system = assembly of comp onentFlexibilit y: Maintenance, replacement of components, extensibility by adding comp onen ts. May eve n happe n at run-time with proper in frastructure support !Maintenance and evaluati on面向构件的方法和面向过程、面向对象的方法有什么异同?En tities for Reuse and Compositi onAbstractio n En capsulati on构件模型?概念:A component model is a definition of standards for componentimpleme ntati on, docume ntatio n and deployme nt(具体在PPT第一张第33页开始)第四构件规约1构件有哪两方面的不兼容(incompatibility),如何解决不兼容(课件第四章第8页)两方面:(1)接口的不兼容(i nteface in compatibility)包括:参数不兼容,操作不兼容(两个构件中相同操作,有不同名字),操作的不完整性(2)语义不兼容(sema ntic in compatibility )如何解决:In terface in compatibility is addressed by writi ng adaptors (使用适配器)---课件上(假设明确化降低构件耦合度使用桥、适配器完善规约说明)—自己笔记2构件的规约层次(四章13页)Syn tax: in cludes specificati ons on the program min g lan guage leve 语法规约Sema ntic: fun cti onal con tracts 语义规约Non-function al: deals with quality of service. 非功能性规约3、构件是如何连接的(四章5页)4同的概念及为什么要使用合同(第四章22页)概念:A set of ben efits and obligatio ns that are mutually agreed upon by the clie nt and为什么要使用合同?A con tract betwee n a clie nt and a supplier protects both sidesIt protects the clie nt by specify ing how much should be done to get the benefit. The clie nt is en titled to receive a certa in result.It protects the supplier by specifying how little is acceptable. The suppliermust not be liable for failing to carry out tasks outside of the specified scope. 第五章构件的结合方法第六章反向控制(六章14页)第七章语言的透明性和位置的透明性桩和框架的设计思想设计题类似本章的例题yellow page 第八章CORBA注意本章的英文缩写CORBA:com mon object request broker architecture公共对象请求代理体系结构IDL: in terface descripti on Ian guage 接口描述语言ORB:Object Request Broker 对象请求代理OMG: Object Man ageme nt group 对象管理组织OMA: Object Ma nageme nt Architecture 对象管理体系结构BOA: Basic Object Adapter 基本对象适配器POA: Portable Object Adapter 可移植对象适配器IOR:improved oil recovery 可互操作对象引用早web serviceBPEL;bus in ess process execute Ian guage项目间的交互工作流及使用工作流的好处(^一章36页)一、名词缩写10分二、概念解释30分三、问答题40分四、设计题20分明确指出要用英文作答的题目用英文作答,其余的随意。
第C3章软件构件与中间件
软件重用是指在两个或两个以上的不同软件开发过程中重复使用相同或相近的软件元素的过程。
这种可重用的元素称为软构件,可重用的软构件越多,重用的颗粒度就越大。
常见的构件模型
OMG公司的CORBA
Sun公司的EJB
Mircosoft的DCOM
构件的接口是指构件向其重用者提供的基本信息,包括构建名称,功能描述,对外功能接口、所需的构件、参数属性等。
构建的内部结构包括:内部成员和成员之间的关系。
构件的分类
⏹关键字分类法:用关键字进行描述
⏹刻面分类法
⏹超文本组织法
产品构件模型定义了四个层次
EJB是由Sun公司制定的用于开发和部署多层结构、分布式、面向对象的java应用程序的跨平台的构建体系结构。
⏹会话bean:(Session bean)与客户端的一个短暂的会话。
当客户端操作执行完后,也就
就消失了。
⏹实体bean:
⏹消息驱动bean:它结合了session bean与java信息服务jms信息监听者的功能。
中间件是一个分布式系统环境中处于应用程序和操作系统之间的软件。
是独立于系统软件和服务程序的。
中间件的分类
第C4章软件体系结构
软件体系结构分为五种
⏹结构模型(最常用)
⏹框架模型
⏹动态模型(最常用)
⏹过程模型
⏹功能模型
Kruchten在1995年提出了4+1软件体系结构的视图模型⏹逻辑视图:最终用户,功能需求
⏹进程视图:系统集成人员,性能、吞吐量
⏹物理视图:系统工程人员,系统拓扑、安装、通信⏹开发视图:编程人员,软件
⏹场景视图。
构件、组件、中间件构件、组件应该都是指Component吧。
构件其实台湾那边的说法,在⼤陆就叫组件,其en为Component。
中间件指Middleware。
Component应该是软件中具有⼀定意义的相对独⽴的部分。
⽬前讨论构件,主要着眼于软件复⽤的意义,软件构件可以说是能够被多个软件系统所复⽤的具有独⽴功能的系统构成成分。
构件技术可以说是OO思想的沿袭和扩展。
Middleware既是⼀种基础构件,它的定义更多了,我总结了⼀下,中间件是基于分布式处理的软件,是独⽴的系统软件或服务程序,分布式应⽤程序借助这种软件在不同的技术之下共享各种资源。
中间件屏蔽了分布式应⽤中各种复杂的⽽⼜⾮常重要的问题,如各个应⽤程序间的通信,互操作,以及它们的效率,可靠性,容错性,安全性,完整性,⽽这些问题是所有开发分布式应⽤所必需考虑的,但和应⽤相关的业务逻辑有⽆直接关系,中间件使得软件开发者不必再这些问题上耗费太多的精⼒,⽽集中精⼒于业务逻辑本⾝。
⼀般将中间件分为:基于消息的中间件(Message Oriented Middleware)基于事务处理的中间件(Distributed Transcation Processing Monitor)⾯向过程的中间件(Remote Procedure Call)程序的是可以完成⼀定功能的指令集合,同时是可靠运⾏的,构件更重视这个功能的实现及实现的机理,但是对于⼀个程序,有时能否稳定运⾏,还有⼀个外部环境的问题,所以组件是有较严格的运⾏可靠性定义的,⽽构件⼀般没有,⼀个CAR组件应该表现出组件的特性来。
组件的定义还包括以下内容:组件具有临界状态,组件在临界状态内运⾏是稳定可靠的,组件有⼀定的环境适应能⼒,⽐如⼀个DCOM组件,如果是采⽤DirectX按照⼀定频率写屏的,⽽当前显⽰器没法⽀持这个频率,最后可能表现为组件⼯作不正常;⽐如⼿机中的通讯构件,如果底层协议栈出错,给出⼀个⾮约定的包,可能导致上层构件出错,在可靠性理论中,称这为故障孤⽴性,但是是不是所有构件都要做成组件呢,不⼀定,因为组件花在对环境的检查(构造、析构)上有很多开销,⽽构件⼀般不必要,组件怀疑它的运⾏环境,同时也维护这个环境,⽽构件则"⽆条件"信任环境。
1.什么是架构?架构、框架、模式是一种从大到小的关系,也是一种组合关系。
架构一般针对一个行业或一类应用,是技术和应用完美的结合。
框架因为比较小,很多表现为中间件,框架一般是从技术角度解决同类问题,例如J 道数据增删改查框架就解决了所有数据库系统中大量数据增删改查的功能开发,框架是从技术的横切面去解决实际应用问题。
模式则更小了,越小越灵活,可重用的范围更广。
一个框架可能使用了多个模式,而一个架构有可能应用了多个框架,这样一个大型系统的设计基本从主骨干到骨架基本能够被设计者考虑设计到,也可以想见,一个系统被细化成了很多工作量,例如一个部分细化到工厂模式,那么就可以要求程序员实现工厂模式的代码即可。
由此,控制了大型软件质量,也提高开发效率,同时使得项目变得易于管理和协同,由此可见,一个大型项目的架构设计非常重要。
2.什么是框架?框架即framework,是某种应用的半成品,一组组件,供你选用完成你自己的系统。
简单说就是使用别人搭好的舞台,你来做表演。
而且,框架一般是成熟的,不断升级的软件。
3.什么是模式?模式即pattern,就是解决某一类问题的方法论,解决某类问题的方法总结归纳到理论高度,那就是模式。
Alexander给出的经典定义是:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。
通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。
模式有不同的领域,建筑领域有建筑模式,软件设计领域也有设计模式。
当一个领域逐渐成熟的时候,自然会出现很多模式。
4.什么是构件?构件(component)是可复用的软件组成成份,可被用来构造其他软件。
它可以是被封装的对象类、类树、一些功能模块、软件框架(framwork)、软件构架(或体系结构Architectural)、文档、分析件、设计模式(Pattern)等。
构件分为构件类和构件实例,通过给出构件类的参数,生成实例,通过实例的组装和控制来构造相应的应用软件,这不仅大大提高了软件开发者的开发效率,也大大提高了软件的质量。
架构框架模式构件组件中间件之间区别1. 架构(Architecture)架构是指软件系统的整体结构和组织方式,包括系统的各个部分之间的关系、组件的职责和功能划分、以及交互方式等。
架构旨在满足系统的需求并支持系统的演化。
一个好的架构应具备可扩展性、可维护性、可重用性、可移植性等特征,并且需要综合考虑技术、业务和用户需求等因素。
2. 框架(Framework)3. 模式(Pattern)模式是一种经过验证的解决方案,用于解决特定类型问题或设计场景。
在软件设计中,模式提供了一些被广泛接受的最佳实践,用于解决常见的设计问题。
模式可以提供对于设计结构、行为和交互的指导,提高开发效率,增加代码的可读性和可维护性。
常见的模式有单例模式、观察者模式、工厂模式等。
构件是软件系统中的一个独立的、可替换的模块,它实现了特定的功能。
构件通常具有接口和实现,可以被其他模块或构件使用,并且可以通过接口进行交互。
构件的设计应该遵循高内聚、低耦合的原则,使得构件之间的依赖性尽量降低。
常见的构件有数据库访问组件、日志组件、UI组件等。
组件是一种可独立运行的软件单元,它可以打包、部署、配置和管理,并提供一些特定的功能或服务。
组件与构件有一定的相似之处,但组件更加独立和完整,通常可以运行在不同的环境中。
组件在架构中扮演着一个重要的角色,提供了系统的功能和服务。
常见的组件有Web服务、消息队列组件、认证授权组件等。
6. 中间件(Middleware)中间件是位于应用程序和操作系统之间的一种软件层,用于管理分布式系统中的通信和交互。
中间件提供了一些通用的功能和服务,如消息传递、远程调用、事务管理等,使得应用程序可以方便地进行分布式开发和部署。
中间件屏蔽了底层的复杂性,提供了一些高层次的抽象和接口,简化了开发人员的工作。
常见的中间件有消息队列中间件、Web服务中间件、分布式缓存中间件等。
综上所述,架构是软件系统的整体结构和组织方式,框架是一种开发环境,提供了一系列的工具和组件用于构建应用程序,模式是一种经过验证的解决方案,用于解决特定类型的设计问题,构件是软件系统中的独立模块,用于实现特定的功能,组件是一种可独立运行的软件单元,提供特定的功能或服务,中间件是位于应用程序和操作系统之间的一种软件层,用于管理分布式系统中的通信和交互。