组件技术及其分析比较

31、波导组件:旋转接头与开关技术解析 本文详细解析了波导组件中的旋转接头与开关技术,包括其工作原理、设计要点和性能特点。重点分析了同轴和波导旋转接头的结构与模式控制方法,以及机械开关和气体放电开关的工作机制与应用场景。同时,通过性能对比和实际案例,探讨了不同组件的适用条件和技术发展趋势,为微波领域的相关应用提供了重要的技术参考。 阅读详情

软件开发技术经历多次的变革,从最初的机器语言的数字表达程序开始,经过汇编符号程序、结构化和面向对象的高级语言程序设计的进步,发展到现在组件技术。软件需求的变化从一般的计算开始,到实用的计算,到管理(MIS)最后到分布式系统。软件环境的变化从最初的但任务、文字界面和单线程,到多任务、图形界面和多线程,从最初的平台相关、单机和单一语言到跨平台、分布式应用和多种语言。软件开发模式从最初的操作系统、编译器和编辑器的集合发展到操作系统、编译器、集成开发环境、库结构、技巧、组件和其他的基础设施的集合。

1.组件及特征

组件是独立于特定的程序设计语言和应用系统、可重用和自包含的软件成分,这些软件成分可以很容易的被组合到更大的程序当中而不用考虑其本身的实现细节。在一个系统中,组件是一个可替换单元因此软件系统更易于开发且具有更大的灵活性

组件技术是在面向对象的开发技术基础上发展起来的,可以说是面向对象技术在系统设计级别上的延伸。与面向对象技术相比,组件技术继承了面向对象的封装性,而忽略了继承性和多态性。组件是对象有机结合,不需要关心组件中的对象和实现细节。组件有其固定的特征,即软件重用和互操作性、可扩展性、组件接口的稳定性和组件基础设施稳固性而且无论是静态还是动态的引用都可以稳定的提供组件的功能和接口;

2.组件模型

组件模型是组件类、组件接口和组件间相互作用说明的集合。组件化技术的核心就是将一个应用系统划分成多个组件,这些组件保持一定的功能独立性,可以使用不同的开发工具分别开发,可以分别编译,甚至分别调试和测试。当所有的组件开发完成后,把它们组合在一起就得到了完整的应用系统,组件间的协同工作是通过相互间的接口来完成的。当系统的外界软硬件环境发生变化或者用户需求有所更改时,并不需要对整个系统进行修改、编译,而只需对受影响的组件进行修改编译,然后重新组合得到新的升级软件。

建立服务应用框架和软件构件的核心技术是分布式对象技术,在开发大型分布式应用系统中表现出强大的生命力,逐渐形成了3种具有代表性的主流技术,即MicrosoftCOM/DCOM/COM+技术、OMGCOBRA技术和Sun公司的Java技术。

2.1 COM/DCOM/COM+组件模型

COM (Component Object Model )是一个组件软件体系结构,可用不同软件厂商的组件,组装一个应用或系统。COM同时指示各对象如何交互操作与通信。在Windows 操作平台上,COM以DLL 动态链接库DLL EXE 可执行程序的形式封装。通常,COM接口的定义和实现是分开进行的,COM 接口是COM技术的关键所在。使用COM组件的客户只能通过获取指向接口的指针来访问组件中的对象,这表明客户只知道组件可以完成什么样的工作,而不了解它内部的具体实现。从而实现了较安全的调用对象,并且与它所在的操作系统、硬件、程序设计语言无关。COM是组件对象之间在二进制级相互连接和通讯的一种协议,COM对象之间靠接口机制进行通信,

DCOM(Distributed Component Object Model ) COM 的网络技术改进,它把组件软件应用推上了Internet。 DCOM使用网络协议(TCP/IP)代替本地进程通信协议LRPC,从而对位于Internet上的组件对象提供透明的支持。DCOM中的服务器对象对客户完全是透明的,客户通过方法调用来访问服务器对象,要从虚函数表中获取方法的指针,然后调用。对于组件与客户对象是否在相同的线程内来决定是否需要COM介入。DCOM是COM在分布计算方面的自然延续,为分布在网络不同节点的两个COM组件提供了互操作的基础结构。DCOM增强COM的分布处理性能,支持多种通信协议,加强组件通信的安全

COM+ 倡导一种新的设计概念,COM组件提升到应用层,把底层细节留给操作系统,使COM+ 与操作系统的结合更加紧密。COM + 的底层结构仍然以COM 为基础,但在应用方式上则更多地继承了MTS( Microsoft Transaction Server ) 的处理机制,包括MTS 的对象环境、安全模型、配置管理等。COM+ COMDCOMMTS 三者有机地统一起来,同时也新增了一些服务,如负载平衡、内存数据库、事件服务模型、队列组件服务等,形成一个概念新、功能强的组件体系结构,使得COM + 形成真正适合于企业应用的组件技术。如下图所示:在COM基础上增加了侦听机制,拥有了运行时的扩展性。

2.2 CORBA组件模型

CORBA 是一种开放的行业标准,它由参加“对象管理组织 (OMG)”的 600 多家公司支持。OMG 并不实现自己的规范,而是依靠厂商的实现,CORBA 还提供了高度的交互操作性。这保证了在不同的 CORBA 产品基础之上构建的分布式对象可以相互通信。

CORBA的特点就是其中引入了代理的概念,利用代理可以实现客户端抽象服务请求的映射、服务器的发现和查找,这样用户在写客户端程序时就可以避免很多细节而只是完整地定义和说明客户端需要完成的任务和目标。同时CORBA还实现了软件总线的机制,使得任何应用程序或软件系统只要具有与接口规范相符合的接口定义就能方便的将组件集成到系统中,而这个接口规范独立于任何实现语言和环境。

OMG IDL编译器实现了到C++、SmallTalk、Ada和Java等语言的映射,对接口进行IDL编译生成的是客户端使用的Stub 文件和服务器端的服务器框架Skeleton文件。CORBA通过协议是IIOP定位不同系统上ORB间基于Internet的交互标准,规范了传输的语法和ORB之间的消息格式,从而建立了ORB之间的基于面向连接TCP/IP协议的互操作性,从‘而实现了Internet上ORB之间的交互。IIOP是GIOP协议的一个子集,是专门用于在TCP/IP下实现交互而做的协议。

Web Services是把应用程序透过SOAP接口,连到网络上。Web Services当然还有很多。可以在网络上,从任何的地方去使用组件。

2.3JavaBeans组件模型

JavaBeans技术也是针对JAVA语言在Internet上的应用而提出的一种技术,其目的就是“一次编写,在任何地方都可运行和重用”。JavaBeans是建立在JAVA平台上的,扩展了JAVA语言,可被放在容器中,提供具体的操作功能,它可以是可视化的,也可以是不可见的后台处理程序;既可以是中小型的控制程序,也可以是完整的应用程序。

JavaBeans 通过串行化实现定制组件的永久性存储,通过反串行化可以实现组件状态的恢复。一般来讲,JavaBeans由两个部分组成,即数据和处理这些数据的方法。JavaBeans中的公共方法是JavaBeans同外界通信的主要途径。JavaBeans引入了对象总线的概念,由本地扩展到Internet和企业内部网。它提供了三中对象总线:IIOP、RMI以及JDBC。其中JDBC用于数据库访问,IIOP用于与CORBA 组件通信,而RMI是用JAVA语言建立的分布式计算环境,其客户端的JAVA程序通过RMI内部通信机制调用应用服务器上的JAVA对象的有关方法。由于JAVA语言的可移植性使得RMI也具有很强的跨平台特性,但是RMI只能访问JAVA对象,与CORBA组件之间的通信还需要进一步研究。

3.几种组件技术的区别

COM技术是Microsoft的独家技术,经历了OLE 2/COM、ActiveX、DCOM和COM+等几个阶段。Microsoft的COM平台效率比较高,同时它有一系列相应的开发工具支持,应用开发相对简单。但是COM/DCOM适应的平台单一,而且编程C++紧密结合,对其他语言的支持产生了很多问题。其中DCOM的指针问题最为典型。

COBRA标准主要分为3个层次:对象请求代理、公共对象服务和公共设施。最底层是对象请求代理ORB,规定了分布对象的定义(接口)和语言映射,实现对象间的通讯和互操作,在其上定义了一些服务和一些基础设施的支持。CORBA的特点是大而全,互操作性和开放性非常好。然而其缺点是庞大而复杂,并且技术和标准的更新相对较慢。CORBA支持多平台,避免了平台不一直所带来的问题,CORBA使用IDL转换标准语言,目前确认的有5种。 

JavaBeans是依赖JAVA语言的组件,由于JAVA的平台无关性,使得JavaBeans可以容易的运行在不同的开发平台之间。是理想的Internet技术的载体,CORBA规范和和互操作标准也深入到Intranet和Internet中。对于异构的企业级应用,CORBA和JavaBeans有明显的优势,CORBA处理网络的透明性,而JavaBeans处理实现的透明性。JavaBeans和CORBA技术的结合将成为组件技术的新的发展方向。

 JavaBean 因其外部接口而与纯对象不同。JavaBean 设计成对单一进程而言是本地的,它们在运行时通常可视。这种可视组件可能是按钮、列表框、图形或图表。EJB 是设计成运行在服务器上,并由客户机调用的非可视远程对象。可通过多个非可视 JavaBean 构建 EJB。它们安装在 EJB 服务器上,并象调用其它 CORBA 远程对象那样获得进行调用的远程接口。

对现有资产或系统的利用上,Java 和 CORBA 语言使得可以将这些有用的资源继续保留。由于其编译后的字节码结构,Java 语言将创建和分发可移植的对象,而 CORBA将这些对象与计算环境的其余部分进行连接和集成。

当前流行的Web service技术就是利用SOAP以一种平台无关和位置无关的方式来调用组件。SOAP客户端向服务器发送请求信息,要求执行组件的功能,服务器处理发送的请求,执行我们需要的函数,然后把执行结果以响应信息发送到客户端。这些消息都是XML格式的,而且可以以多种协议在客户端和服务器之间进行传输。可以说Web service就是一种更高层次的组件技术,是把功能完全封装后利用WSDL描述接口,来提供服务的。

4.组件开发模式(CBSE)

基于组件的开发(Component Based Development)是在C/S模式向3层转化的时候发展起来的。这使得软件开发能像产品组装一样生产。它是以组合、继承、设计组件为基础,按照一定的集成规则,分期、递增式开发应用系统,缩短开发周期。

基于组件的开发思想使软件的开发按照大规模的工业化的方式进行,是一种一般性的软件体系结构,提高了软件的可重用性。在一个组件的开发模型中,首先要有组件框架,用于组件的运行环境,然后开发组件,按照规范实现组件的的接口和组件类。将组件配置到组件框架中,与其他组件协作提供服务。CBSE以组件为核心,从根本上改变了软件生产方式,提高了软件重用率,保护了已有的投资,使开发者将更多的注意力放到业务流程和业务规则上去。CBSE开发方式采用松耦合,模块化,重点在于接口,是一种进化式的并发式开发。

   组件的开发思想可以帮助开发人员封装一组接口作为一个特定服务从更广泛的意义上组件比类和对象更完善、功能更强一个组件可以直接封装一个来自分析和设计模型的问题可以更快地进行应用项目的开发在更高级别上实现重用与纯面向对象开发过程相比,组件开发的重点在于组件的功能识别和装配,而不是面向对象方法中的类的识别与开发。正式因为组件技术的规范性,所以标准组件接口模型能在后续的开发中被重用几率更高,因此,组件技术是未来软件开发中的重要技术。

5.结束语

    组件技术是对面向对象技术的一次进步,当前的软件开发技术正从面向对象技术转向基于组件的开发技术,基于组件的开发模式也是未来软件开发模式的发展方向,虽然当前组件模型仍存在一些问题,比如组件之间的通信问题和跨平台问题,但是,毫无疑问,组件技术的提出是对原有开发技术和方法的一次跨越,弥补了不足,提出了新的开发方式。

参考文献:

1.  Sun Microsystems Inc. Entrprise JavaBeans Speciation, Sun Microsystem Inc,1999.

2.  PAUL J , Perrone. J2EE构建企业系统专家级解决方案[M] . 张志伟,谭郁松,张明杰译. 北京:清华大学出版社,2001.

3.  Tbuan L Tbai, DCOM入门 ,中国电力出版社

4.  DON BOX, COM本质论,中国电力出版社

 

1、机器人手臂的基本组件 本文系统介绍了机器人手臂的基本组件与结构类型,涵盖美国、国际等组织对机器人的定义,并详细分类了串联机器人(如笛卡尔、圆柱、球形和拟人机器人)及其他特殊结构机器人(如平行四边形、摆式、蛇形和移动机器人)。文章还分析了机器人关键部件,包括执行器类型(电动、液压、气动)和驱动传动方式(齿轮、皮带、链条),并通过流程图和对比表格总结各类机器人的特点与适用场景。最后展望了机器人手臂在工业、物流、医疗等领域的应用前景及智能化、高效化的发展趋势。 阅读详情

相关推荐

3、医疗领域大数据分析与物联网技术的应用探索

本文探讨了大数据分析与物联网技术在医疗领域的应用,包括实时健康监测系统的设计与实现,以及骨骼微观结构分析在法医学和人类学研究中的作用。文章还介绍了自动化比较系统的开发,以提高微观结构测量的效率和准确性,并展望了相关技术在未来的发展前景。

palm99的专栏 133

组件(component)技术介绍

组件(component)技术是各种软件重用方法中最重要的一种方法,也是分布式计算和Web服务的基础。网络应用中的软件组件,又被称为中间件(middleware)。 组件技术的应用现在已经十分广泛,从Windows编程中使用的各种控件和公用对话框,到ActiveX控件和DirectX的应用;从微软公司的COM,到Sun公司的JavaBean。其中最流行的组件技术的应用是——客户端的VBX(微软/

Road2010的专栏 4815

11、COM与分布式处理技术解析

本文深入解析了COM对象的创建机制与内存管理,详细介绍了通过Visual C++和Visual Basic构建COM组件的实践过程。文章还探讨了分布式处理的核心技术,包括套接字、远程过程调用(RPC)和基于组件的开发,并对比了各类技术的优缺点与适用场景。结合COM+与跨平台应用,阐述了分布式系统的发展趋势与挑战应对,为开发高性能、可扩展的分布式应用程序提供了理论基础与实践指导。

grape的博客 34

组件化(一)

早期的单一分层模式 问题一:无论分包怎么做,随着项目增大,项目失去层次感,后面接手的人扑街 问 题二:包名约束太弱,稍有不注意,就会不同业务包直接互相调用,代码高耦合 问题三:多人开发在版 本管理中,容易出现代码覆盖冲突等问题 所有的代码都写在app模块中不同的包里面 1.什么是组件化,为什么需要组件组件化的意义:不相互依赖,可以相互交互,任意组合,高度解耦,自由拆卸,自由组装,重复利用, 分层独立化 此时:app不在是老大,子模块都是小弟 组件化后,所有的module都平起平坐,有

qq_30621333的博客 4126

vue组件化常用技术

组件传值和通信 父组件传给子组件 属性props // 子组件 props:{ msg : String } // 父组件 <child :msg="hello"></child> 引用refs // 父组件 <child ref="comp"></child> this.refs['comp'].msg = '...

hypin123的博客 362

组件化开发

1. 为什么要做组件化? 无论前端也好,后端也好,都是整个软件体系的一部分。软件产品也是产品,它的研发过程也必然是有其目的。绝大多数软件产品是追逐利润的,在产品目标确定的情况下,成本有两个途径来优化:减少部署成本,提高开发效率。 减少部署成本的方面,业界研究得非常多,比如近几年很流行的“去IOE”,就是很典型的,从一些费用较高的高性能产品迁移到开源的易替换的产品集群,又比如使用Linux +

qq_38844939的博客 1256

组件化、模块化、集中式、分布式、服务化、面向服务的架构、微服务架构

我们用网站打个比方:一个大型网站的web界面就是它整个系统入口点和边界,可能要面对全世界的访问者(所以经常会做国际化之类的工作),而系统内部传统的OO接口和程序则被隐藏在web界面之后,只被内部较小范围使用。集中式系统的最大的特点就是部署结构非常简单,底层一般采用从IBM、HP等厂商购买到的昂贵的大型主机。现在将Echo发布Java WebServices,并由底层框架自动生成WSDL来作为标准化的服务契约,这样就能与远程的各种语言和平台互操作了,较好的解决了上面提到的松耦合和可重用的问题。

拾一二的博客 3762

React性能优化:避免组件不必要渲染的实践指南

在React应用开发中,组件渲染优化是提升性能的关键技术之一。React的虚拟DOM机制虽然高效,但默认的渲染行为可能导致不必要的组件更新,特别是在处理复杂状态管理时。通过shouldComponentUpdate生命周期方法和PureComponent类,开发者可以精确控制组件的更新条件,避免无效渲染带来的性能损耗。React.memo则为函数组件提供了类似的优化能力,配合useCallback和useMemo可以进一步优化引用类型数据的处理。这些技术在电商列表、仪表盘等数据密集型场景中尤为重要,能显著提

weixin_33738578的博客 384

Hadoop 学习课程深度分析:从技术架构到职业落地​

Hadoop 学习的核心价值体现在三个维度:其一,技术架构的普适性,Hadoop 的分布式存储(HDFS)、分布式计算(MapReduce)思想,是后续学习 Spark、Flink 等主流大数据框架的基础,掌握 Hadoop 相当于搭建了大数据技术的 “地基”;选择优质的学习课程是高效入门的关键,学习者应根据自身基础、学习目标和时间成本,选择线上课程、线下培训或高校课程,重点关注课程的理论体系、实操环境、项目实战和答疑服务。Hadoop 技术的职业发展路径清晰,主要包括三个方向:​。

k002kk的博客 626

Cangjie-TPC/markdown4cj缓存机制:性能优化关键技术

Cangjie-TPC/markdown4cj缓存机制:性能优化关键技术 【免费下载链接】markdown4cj 一个markdown解析和展示的库 项目地址: https://gitcode.com/Cangjie-TPC/ma...

gitblog_00040的博客 1017

SAP ABAP 编辑器核心操作指南:从 SE38/SE80 到保存激活与传输请求

在软件开发领域,集成开发环境(IDE)是程序员的核心工具,它直接影响编码效率与工程管理。SAP ABAP 开发环境深度集成于 SAP GUI 中,其操作逻辑与工作流设计紧密围绕企业级应用的可追溯性与安全性构建。理解编辑器的核心操作,如 SE38 与 SE80 的差异、保存与激活的分离机制,是掌握 ABAP 开发范式的第一步。其中,**保存**仅将更改暂存于本地会话,而**激活**则负责将源代码编译为运行时对象并发布系统,这是代码生效的关键。这一过程又与**传输请求**机制深度绑定,确保了代码变更能有序地在

weixin_30599769的博客 577

组件技术详解:从概念到实践

组件技术是软件开发的‌“乐高化”革命‌,通过模块化、标准化和复用性,解决了复杂系统的可维护性和扩展性问题。无论是 COM 这样的传统二进制组件,还是微服务、WebAssembly 等新兴形态,其本质都在于‌解耦与协作‌。掌握组件技术,是构建现代可扩展软件系统的关键能力。

huaqianzkh的专栏 1162

组件技术

一、 组件技术:利用某种编程手段,将一些人们所关心的,但又不便于让用户直接去操作的细节进行封装。同时对各种业务逻辑进行规则化,用于处理用户的内部操作细节,这个封装体称为组件---实现某种功能 ,有输入输出接口的黑匣子。 二、为什么出现组件(使用组件的动因,它产生的动因)        1.软件设计思想的变化                   算法+数据结构 = 程序  体系结构的设计和规...

goforitaaa的博客 2433

【总复习】组件技术

组件技术 总复习 名词解释 简答题 主要代码段书写 重点整理

软件程序媛的博客 1073

技术组件优化分析:原理、方法与实战分享

虽然优化没有让TPS明显增加,但因为分析技术细节不一样,也完整记录了分析过程。一阶段分析不同点在于,对一个成熟固定组件,要想优化它,就要去了解它的架构,找到相关性能参数。因为实际性能项目中,面对这样的组件,往往没有时间去纠结内部的实现,需要非常快速地作出判断。如时间允许,慢慢折腾。理解一个技术组件的原理,并没有想像中的那么高不可攀、深不可测,只要耐心看下去,总会成长。二阶段分析,由某几个CPU高的现象分析到了具体的SQL问题。

JavaEdge全是干货的技术号 968

组件模型 Component Model

一般来说,组件的对象架构满足了“能运行(Just Works)”这一基本要求。架构在设计上已是调控好了大多数组件是怎样处理的,而且对最终开发者是透明的。 不过,若对组件对象扩展,或是有些需要制定的地方,就要利用一定的时间去实现。 深入理解组件对象的生存周期会是非常好的帮助。下面的内容就是对基于组件的每个类,一个周期内各个重要阶段作出解释: 初始化Initia

junhe0723的专栏 2489
javaid
博客等级 码龄24年 1粉丝 1原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值