《【大学课件】组件技术.ppt》由会员分享,可在线阅读,更多相关《【大学课件】组件技术.ppt(62页珍藏版)》请在三一办公上搜索。
1、组件技术,http:/,内容,关于本课程软件技术的发展当前软件状况COM和CORBA简介本课程的内容和安排(optional)基础:C+Overview,http:/,关于本课程,历史:2001年上半年第一次开设课程请参考http:/,http:/,计算机科学的本质,计算机的定义冯-诺伊曼定义:define a computer as a device that accepts data,processes data,stores data,and produces output.指令流处理方式本质:动态 计算静态 存储,http:/,软件领域的发展,程序设计方法的发展软件需求的变化软件环境的
2、变化软件开发模式的变化,http:/,程序设计方法的发展,功能分解法 计算任务结构化程序设计 以数据为中心面向对象程序设计 以对象为中心组件程序设计 以组件为中心,综合使用,http:/,软件需求的变化,计算,实用,管理(MIS),分布式系统,http:/,软件环境的变化,单任务,多任务,文字界面,图形界面,单线程,多线程,平台相关,跨平台,单机(本地),网络(分布式),单一语言,多种语言,http:/,软件开发模式,机器码,高级语言和脚本代码,OS+Compiler+Editor,OS+Compilers+IDEs+Libraries+Wizards+Components+other inf
3、orstructures+经验,http:/,发展变化的结果,软件学科的形成不变因素:计算机的基本运作模式探求新的计算模型量子计算 软件学科怎么办?生物信息学(?),http:/,回顾软件学科10多年来的变化,软件的产生过程:原始代码-编译-Link-终代码、脚本 混合软件的分发过程:文档、说明书、自动安装工具、培训、升级软件工程:需求-分析-设计-code-test-使用对象技术和组件技术的不断普及,与大环境发展相结合,http:/,对象技术,用一种新的思路来看待问题10多年的发展证明了OO符合软件的规律对象技术的发展需要开发工具和开发语言的支持三大特性:封装性、继承性、多态性两种思想Obj
4、ect-BasedObject-Oriented,http:/,组件技术,组件技术适合于现代的软件环境软件更新快、规模大、强调协作等组件的概念、软件IC组件的可独立发布性要求“接口与实现分离”组件infrastructure,组件体系COM、CORBA(和Java)中间件(middleware)市场,http:/,国内的状况,在对象技术和组件技术方面,国内落后问题:好的技术没能及时引进来(怎么引进来?)缺乏好的教材、技术杂志、技术书籍(?)缺乏良好的教育环境和工业环境,http:/,基础,编译过程,程序产生的过程回归“冯-诺伊曼”模型C+之必要性:最能反映对象技术、组件技术的核心概念存在的问题
5、:缺乏好的书籍(?)国内的应用领域不够广泛(?),http:/,概念:类、对象,类是定义,它封装了状态和操作对象是实例,它反映了具体的事物,对象由类来定义一个对象可以与多个具有继承关系的类相联系,http:/,概念:组件,定义:可独立发布的二进制单元有的地方称作“package”,容易混淆:服务器(server)、对象,例如:COM组件、Java Applet,http:/,概念:reuse(重用、复用),软件设计的目标,不同形式的reuse,不同层次的reuse,例子:类库、中间件,http:/,概念:接口与实现分离,Interface and implementation对象技术和组件技术
6、都强调,接口是对象或者组件的通信协议实现是对象或者组件的内部细节,接口的发布客户只关心接口,http:/,概念:decouple,去耦尽可能地消除软件之间或者软件的不同部分之间的联系,是软件设计的重要手段,也是目标,不同层次上的decouple,http:/,概念:多态性(polymorphism),对象技术中的重要概念以一致的方式来看待不同的事物,在C+中,通过继承和虚成员函数来实现运行时刻绑定:runtime binding区分两个词:overload vs.override,在组件技术中,通过接口来体现,http:/,概念:module,模块不同层次上有不同的定义,在Windows和Li
7、nux中,指可独立装载的二进制代码单元,有些操作与模块相关,http:/,概念:模板(template),函数模板和类模板抽象层次更高泛型技术(generic programming),已纳入C+标准之中,例子:STL、ATL,http:/,概念:C/S和多层结构,这是指软件的结构C/S是基础多层结构具有较好的灵活性和可扩展性,多层结构与基于组件的系统相结合,变种:B/S,http:/,概念:其他,现代软件的发展形成了很多重要的概念掌握这些概念对于提高自己的软件理解水平非常重要防止混淆和滥用概念,http:/,软件形式,单机软件整体发布Client/Server软件简单的网络应用分布式软件,h
8、ttp:/,软件发展面临的问题,软件的复杂度增加代码开发管理软件升级和更新牵一而发动全身?分布式软件的发布和配置用户需要培训,程序员和设计人员更需要,http:/,软件发展面临的问题(续),Custom-made versus standard software如何平衡?依赖于全才开发人员软件层次划分软件的可扩展性用户可定制、脚本支持与标准接轨如Web B/S,http:/,软件发展趋势,组件软件、软件组件中间件市场已经形成软件基础设施的重要性经验和成果的重用软件的可重用性要求重用粒度不同API的多样化软件方案(solution),consulting市场,http:/,组件软件,部分升级补丁
9、缩短软件的更新周期增加了异构软件的可能标准接口、标准规范、标准协议动态组合,提高软件生产力符合现代软件的发展要求,http:/,软件组件,关键:接口设计接口不变性接口可扩展性对基础设施的依赖COM、CORBA、.内部独立设计、独立开发独立发布、独立测试,http:/,基础设施:组件体系,COM(Component Object Model)93年发布,脱胎于MS的OLE规范+实现CORBA(Common Object Request Broker Architecture)91年第1版,OMG(Object Management Group)规范+实现,http:/,COM:组件对象模型,建立
10、在二进制层次上的标准许多概念与C+的特征相似,如vtable程序与程序之间的通信建立在此基础上COM规范平台无关定义了大量的标准接口用于各种用途COM实现平台相关Windows实现了规范要求以及许多辅助功能,http:/,COM特性,语言无关规范和实现都是语言无关的进程透明 位置透明inproc server、out-of-proc server可重用性多线程特性可扩展性,http:/,COM:接口,COM接口IID:128位整数接口定义语言COM IDL对应于C+中由纯虚函数组成的类单继承,基接口:IUnknownCOM接口特性:接口不变性继承性多态性运行时刻的多态性,http:/,COM:
11、对象,COM对象CLSID实现多个接口,COM对象特性:身份确定封装可重用,http:/,COM:组件,COM对象的载体包含多个COM对象进程内组件DLLExport Entrys进程外组件IPC:RPC/LPC,http:/,COM:进程内组件,Inproc serverExport Entrys,http:/,COM:进程外组件,Out-of-proc server,http:/,COM:远程组件,remote server,http:/,COM:组件信息发布,注册表发布组件的信息、对象的信息、接口的信息等注册工具和配置工具Regsvr32.exe.reg自注册-RegServerDCOM
12、CNFG.EXEMTS Explorer、活动目录,http:/,COM:创建COM对象,对象的创建过程,http:/,COM:COM对象管理,客户使用规则,控制对象生命周期COM实现优化各种辅助手段组件类别 component categoryMTS和COM+,http:/,COM:COM体系,基本的功能扩展功能连接点结构化存储名字服务自动化其他COM+,http:/,COM:COM+,建立在COM的基础上,COM的自然延伸Services事件服务队列服务事务服务负载平衡其他,http:/,COM:应用,OLEActiveX control脚本功能扩展OLE DBADSIASP其他,http
13、:/,COM:分布式应用,COM/COM+为基于Windows的分布式应用提供了基础设施TransactionSecurityOLE DBWeb集成Active Directory管理功能,http:/,CORBA,OMG,800多家厂商联合制定的标准91年 1.0,主要是C语言映射95年 2.0,加入IIOP目前最新版本3.0CORBA规范制订了互操作规范,上层标准协议一系列映射到多种语言的规范各种服务相关的规范CORBA实现:ORB,http:/,CORBA体系结构,http:/,CORBA:跨平台、跨语言,典型的语言:C+语言、Java语言、Smalltalk多种平台关键:IOR(Int
14、eroperable Object reference)ORB实现,http:/,部分ORB实现,商业ORBOrbix,IONA公司Visibroker,Inprise公司,4.0版完全支持2.3规范Netscape communicator浏览器嵌入Visibroker自由ORBORBit,遵循CORBA 2.2规范,支持C语言,性能较高mico,GNU,OpenSourceTAO,美国华盛顿大学分布式对象计算研究小组omniORB,AT&T剑桥实验室国产ORB国防科大的嵌入式CORBA(eBus)东南大学的ORBUS,http:/,CORBA:客户,客户通过stub或者CORBA库与对象或
15、者ORB进行通信,http:/,CORBA:对象,对象与OA进行通信,http:/,CORBA:C+映射开发过程,编写IDLIDL-C+利用生成的stub类编写客户利用生成的impl类编写服务器对象以字符串形式传递OR,http:/,CORBA:核心,CORBA IDL支持多继承支持结构化数据类型字符串形式的ORPOACORBA对象的环境context策略设置,http:/,CORBA:核心,GIOP(General Inter-ORB Protocol)互操作协议框架IIOP(Internet Inter-ORB Protocol)IORCORBA对象的标识实现仓库、接口仓库未标准化,htt
16、p:/,CORBA:服务,命名服务层次命名绑定Trading Service功能更强、使用更灵活的对象查询服务事件服务事件发送方和接受方之间的decouple,http:/,课程内容(一),准备知识组件技术介绍C+基础(略),http:/,课程内容(二),COM/DCOM/COM+(缩减一部分)COM接口和IDL COM对象和COM实现 COM重用性和COM跨进程实现 自动化和脚本技术COM开发COM连接点、命名和绑定技术 结构化存储和统一数据传输 DCOM和ActiveX控制 COM+,http:/,课程内容(三),设计模式参考“设计模式”一书增加一些其他与模式相关的内容CORBA介绍 中间插1-2次新技术报告,http:/,考核办法,作业(50%)2-3次,考试(50%),http:/,课程参考书目,COM原理与应用COM本质论 COM技术内幕 Design Patterns 或者设计模式 Advanced CORBA Programming with C+,http:/,