当前位置:
文档之家› 第2章:基于构件的软件开发方法
第2章:基于构件的软件开发方法
三种分布式组件对象模型的比较(表1)
三种模型各有其优势: Java 由于平台无关性的优势显著,成为理想的 Internet 技术; 而Windows平台的广泛使用也使COM/ DCOM 具 有深厚的基础; OMG 组织在10 几年来一直在为自己的组件软件 建立标准,而且已被很多组织和公司采用。对于异 构环境下的企业应用开发, CORBA 和EJB 有着明 显的优势,并且CORBA 和EJB 所依赖Java 技术可 以很好的互补。CORBA 处理网络透明性, EJB 处 理实现透明性。因此, CORBA 和EJB 技术紧密结 合应是今后多层分布式系统发展的一大趋势。
商用成品构件
Commercial off-the-shelf 简称COTS 指由第三方开发的满足一定构件标准的, 可组装的软件构件
构件的要素
规格说明:建立在接口概念之上,作为服 务提供方与客户方之间的契约 一个或多个实现 受约束的构件标准 包装方法 部署方法
3C构件模型
建立应用系统的体系结构模型:可以使用构件生 产者提供的领域特定的基准体系结构经裁剪和/或 扩充而获得 寻找候选构件:根据应用系统的体系结构模型, 从构件库或其它可利用的构件源中寻找候选构件 评价和选择合适的构件:评价候选构件以判断是 否适合于待开发的软件 构件的修改(modify)和特化(specialize):在复用 时对构件进行特化以满足特定应用的需要
软件方法学
第2章:基于构件的软件开发方法
基于构件的软件开发目标
长期以来的软件开发状况
多数软件都是针对某个具体的应用系统从头进行开发的 导致:出现了大量的同类软件重复开发,造成大量人力、财力的 浪费,而且软件的质量也不高
对比:汽车工业的生产模式
在已有的部件基础上通过组装进行生产:有专门的部件生产工厂, 汽车设计者在设计中选择市场上已有的合适的部件 避免了大量的重复劳动,提高了产品质量和生产效率,促进分工 合作
COM+技术规范 COM+ 是微软公司在COM、DCOM (Distributed COM)和MTS(Microsoft Transaction Server)基础 上进一步优化了组件管理环境与事务服务[3],提 供了无缝连接系统。 它以系统服务的形式把原先一些分散的技术综合 起来,并提供简单的编程模型,以直接应用层的 编程接口为应用程序提供服务,使创建服务器应 用就像实现客户应用一样简单。COM+ 把COM 模型推向了更高层次,成为了企业级别分布式软 件开发领域的重要技术。
SOAP通讯协议: Simple Object Access Protocol(简单对象访问协议)的英文
缩写,目前已经得到IBM 、Ariba 、Commerce One 、SAP 、 康柏、惠普等公司的支持。它能够让不同应用程序之间通过 HTTP通讯协议,以 XML格式互相交换彼此的资料。作为新 生事物, SOAP 通过建立 HTTP 连接隧道来部署自己的协议: SOAP 要求把请求参数组织在XML 文档中,该文档然后被放 到 HTTP POST 请求体中发送到运行在 Web 主机基于 SOAP 的 Web 服务。同样,现在正在做很多扩展 SOAP 的 工作,使它能使用其它的传输协议,例如 HTTPS 和 SMTP。 它包括四个部分: 1 SOAP 封装(envelop),封装定义了一个描述消息中的内 容是什么,是谁发送的,谁应当接受并处理它以及如何处理 它们的框架; 2 SOAP 编码规则(encoding rules),用于表示应用程序需 要使用的数据类型的实例; 3 SOAP RPC 表示(RPC representation),表示远程过程 4 SOAP 绑定(binding),使用底层协议交换信息
/ DCOM 技术规范 COM ( Component Object Model ,组件对象模型) 是 Microsoft 软件组件标准,是构造二进制兼容软件组件的规 范。COM 的体系结构包括统一数据传输、持久存储和智 能命名、COM 核心等。其中: 1 COM 核心:包括服务控制管理、接口代理、接口基和 COM 库。COM 核心定义了COM 对象与使用者如何通过 二进制标准接口进行交换的规格说明。 2 持久存储::通过Istorage 和Istream 接口提供一个“文 件系统”。 3 智能命名:通过对象实现接口,使用户可以在以后重新 连接一个指定的对象实例,并且使对象实例仍保持原来的 状态,另外还提供保存它们名字和其它持久信息的机制。 COM 库提供对所有客户及组件都非常有用的组件管理服 务。 DCOM 是COM 的分布式扩展, Microsoft 把DCOM 作为开 发Internet 和组件的基础。当客户和组件位于不同机器时, DCOM 用TCP/ IP 协议等取代COM 中的本地进程间通信 LRPC ,从而对位于Internet 不同 机器上的组件对象之间的相互通讯提供了透明的支持。
COM+ 组件提供了ASP、ASP Servlet、ASPBean 等技术,实现页面动态内容的实现与显示,ASP Servlet 运行在Web 服务器端的Servlet 程序,支持 多线程、多用户访问,能完成所有CGI 功能。 以SOAP 为基础的Microsoft 的.NET 显现出减少实 现RPC 的困难,快速实现互操作性的潜力,使 COM+组件可以与CORBA 和Java 标准进行通信。 采用MFC(Microsoft foundation class library)和 ATL(activetemplate library)作为开发工具,用COM+ 技术把模块的类做成动态链接库(DLL)的形式来发布, 可以在物理上把模块类的包装与客户的包装脱离开 来。
COM+
微软开发的一个构件对象模型,提供了在运行于Windows操作 系统之上的单个应用中使用不同厂商生产的对象的规约
EJB:一种基于Java的构件标准
提供了让客户端使用远程的分布式对象的框架 EJB规约规定了EJB构件如何与EJB容器进行行交互
CORBA 技术规范 CORBA 是OMG组织在1991 年提出的公用对象请求代理 程序结构技术规范。CORBA 的底层结构是基于面向对象 模型的模块组成: 1 接口描述语言(OMG Interface Definition Language , OMG IDL ) 、 2 对象请求代理(Object Request Broker , ORB ) 3 IIOP 标准协议( Internet Inter - ORB Protocol ) 使用接口描述语言编写的对象接口,使得与语言无关的独 立性成为可能。IDL 使得所有CORBA 对象以一种方式被 描述,仅仅需要一个由语言( C/ C + + 、CORBA 或Java ) 到IDL 的“桥梁”。CORBA 对象的互通要以对象请求代 理为中介,这种互通信可以在多种流行通信协议之上实现。 在TCP/ IP 上,来自于不同开发商的ORB 用IIOP 标准协议 进行通讯。
目前可以支持DCOM 部件开发的编程语言很多,如 Java、Visual C++/ VisualBasic、Delphi、 PowerBuilder 等,具有较好的集成性和扩展性。 微软的许多其它软件如OLE、OLE DB、ADO 都 是基于COM/DCOM 技术。 COM/DCOM 并没有真正实现跨平台,目前基于 COM 的软件较多,但没有运行于异构平台上的基 于DCOM 的分布式软件。COM/DCOM 在微软平 台上运行情况较好,但对实时性、可靠性等的支 持较少。
EJB 技术规范 EJB ( Enterprise Java Beans ) 是J2EE 的核心技术 之一,它是建立基于Java 的服务器端组件的标准。 EJB 是以部件为基础框架,其中每个部件都是分布式 对象,可以扩展,也可以适配在不同应用中使用,大大方 便了企业应用开发。EJB 不局限于一种特定的操作 系统,也不局限于任何一种特别的机构、服务器解决 方案、中间件或者通信协议,是一种可重用的具有高 度可移植性的组件。EJB 组件模型包含了EJB 服务 器、容器、Home 接口、Remote 接口等。
我们的目标:将制造业中的组装式生产模 式引入到软件开发中
内容摘要
基于构件的软件开发概述 建造可复用构件 应用系统工程 构件的管理 小结
内容摘要
基于构件的软件开发概述 建造可复用构件 应用系统工程 构件的管理 小结
基于构件的软件开发
基于构件的软件开发
Component-Based
领域工程步骤-2
重建构件:在泛化和可变性分析的基础上, 重建构件,使它成为可复用构件 构件的测试:对重建的可复用的构件要严 格测试,以提高其可靠性 构件的包装:经测试的构件应根据构件库 的要求,对它进行包装,以便构件库对它 分类储存和检索 构件入库:包装后的构件即可存入构件库
应用系统工程的步骤-1
简称CBSD 是指使用可复用构件来开发应用软件
Software Development
基于构件的软件工程
Component-Based
Software Engineering
简称CBSE
构件(Component)的典型定义
Pressman书中的定义:构件是某系统中有价值 的、几乎独立的并可替换的一个部分,它在良 好定义的体系结构语境内满足某清晰的功能 Brown的定义:构件是一个独立发布的功能部 分,可以通过其接口访问它的服务 “计算机科学技术百科全书”的定义:软件构 件是软件系统中具有相对独立功能,可以明确 标识,接口由规约指定,与语境有明显依赖关 系,可独立部署,且多由第三方提供的可组装 软件实体;软件构件须承载有用的功能,并遵 循某种构件模型;可复用构件是指具有可复用 价值的构件