版权归原作者所有,如有侵权,请联系我们

[科普中国]-组件处理

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

简介

组件处理是指对组件进行修改或升级。在计算机系统中,由于实际需求的变化,系统提供的服务也要随之变化,要对硬件组件或软件组件进行处理。组件处理一般多指软件组件处理。组件处理的目的使软件系统提供更好的服务。组件处理一般是对有关接口或组件模型进行修改或升级。

组件概述组件就是一些可重用的对象开发人员可以方便地将这些对象组合到更大的程序中而不用 考虑对象本身的实现细节。以下是一些组件常见其他定义:组件是一个独立的可传递的操作的集合;组件是软件开发中一 个可替换的软件单元,它封装了设计决策,并作为一个大单元的一部分和其它组件组合起 来;组件是由一些对象类组成的物理意义上的包;组件是具有特定功能,能够跨越进程的 边界实现网络、语 言、应用程序、开发工具和操作系统的“即插即用”的独立的对象;组件在通常意义上是指任何可被分离出来,具有标准化的和可重用性的公开接口的软件 ( 子 ) 系统。

特点真正的软件重用和高度的互操作性:组件是完成通用或特定功能的一些可互操作的和可重用的模块,应用开发者可以利用它们在不同应用领域的知识来自由组合生成合适的应用系统。

接口的可靠性:组件接口是不变的,一旦被发表,它们就不能被修改。也就是说,一旦组件使用者通过某接口获得某项服务,则总可从这个接口获得此项服务。因此,组件封装后,只能通过己定义的接口来提供合理的、一致的服务。这种接口定义的稳定性使客户应用开发者能构造出坚固的应用。

可扩充服务:每个组件都是自主的,有其独自的功能,只能通过接口与外界通信。通过消息传送互相提供服务,基本组件的互操作是交互服务的。当一个组件需要提供新的服务时,可通过增加新的接口来完成,不会影响原接口己存在的用户。用户也可重新选择新的接口来获得服务。

具有强有力的基础设施:为了使组件有机地胶合(glued)在一起,实现无缝连接,需要功能很强的基础设施。这些基础设施是获得重用性、可移植性和互操作性的有效工具。这样就可知道如何找到组件提供的服务,并能在应用程序编译时进行静态联编,用户必须在编译时就知道要访问的服务器接口,或在应用程序执行时进行动态联编。在动态机制中,客户可以不知道可用的服务器和接口信息,而是在运行时间内搜索可用服务器,找到服务器接口,构造请求并发送,最后收到应答。

具有构建和胶合组件的工具:在设计与其它应用软件的接口时,利用构建和胶合组件的工具,可以方便地增加和替换应用中的组件,充分发挥可重用的优势,实现客户应用程序的组装和升级1。

接口是指两个不同系统(或设备)的交接部分。在计算机系统中的接口一般可分为硬件接口和软件接口两类。

1.硬件接口。在计算机各部分(如中央处理机与通道、通道与外部设备控制器、中央处理机与主存储器等)之间、计算机与计算机之间、计算机与通信系统之间的连结设备。它包括许多信息传输线及其逻辑控制电路。例如,主机与外部设备相连结的输入输出标准接口,可使处理机的设计不受外部设备的种类和数量的限制,有利于提高系统配置的灵活性、可靠性和扩充性;另一方面也使控制器和外部设备的设计不受处理机型号的限制,有利于实现外部设备产品系列化和标准化。

2.软件接口。为系统与用户之间、子系统与子系统之间、两个程序块之间专门设计的程序.软件支援环境要求软件接口都具有统一性。例如,为了实现用户和各种软件工具的通信,要求有统一的调用方式。例如,在JAVA编程语言中,接口是一个抽象类型(Abstract Type),它被用来要求类(Class)必须实现指定的方法,使不同类的对象可以利用相同的界面进行沟通。接口通常以interface来宣告,它仅能包含方法签名(Method Signature)以及常数宣告(变量宣告包含了 static 及 final),一个接口不会包含方法的实现(仅有定义)。接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须宣告为抽象类(Abstract Class)。另外,在Java中,接口类型可用来宣告一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。其中一个使用接口的优势是,可以利用他们模拟多重继承,类在JAVA中不允许多重继承,所有在JAVA中的类必须而且仅能有一个父类,而java.lang.Object(JAVA类型系统中最顶层的类型)是唯一一个例外。JAVA的类可以被实现许多个接口,然而一个接口则无法实现其他的接口。

组件模型在组件规范化的过程串,许多公司做了很多的努力并取得了一定的成功。下面介绍一下常见的组件模型。

(1)CORBA :CORBA 是由 OMG( 对象管理集团 ) 开发的工业版本,是用来解决以下的问题:系统独立于操作系统,系统基于网络且功能分布开各机器之间, 组件开发独立于语言。

(2)COM( 组件对象模型 ) :COM 是由微软公司提出并实践的组件模型。 COM 是用于“ 便利系统能够通过独立开发的二进制组件,动态、 有效地合成系统的组件重用” [BOX 1998] 。 COM 组件是二进制层次上的组件复用,是基于接口的编程, 模块间的耦合度低,易于部署和软件的升级。

(3)EJB 组件: EJB 是用于开发安全、 可扩展、 事务型和多用户组件的一种分布式组件模型。 EJB 可以部署在分布式多层体系结构环境中的服务器端的软件组件,它允许把应用程序逻辑与系统级服务分开,使系统开发人员集中精力编写具体的业务处理问题,而不必关心系统的编程。每个 EJB 可由一个或多个 Java 对象组成,每个 EJB 是按照相同的规范开发的,Bean 之间可以相互调用,实现任务的分解和进行业务处理, 具有非常高的扩展性2。

(4) .Net 组件:.NET 就是借鉴 Java,采用 XML,并远远超出 Java 的新的体系。.NET 允许添加类似关键字的描述性声明来批注编程元素的元数据,可以实现被封装的对象类、 类树、 功能模块、 软件框架、 软件构架 ( 或体系结构 ) 、 文档、 分析件、 设计模式等。