首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

系统架构设计师:计算机系统基础知识--软件构件

1.构件又称为组件,是一个自包容、可复用的程序集。构件是一个程序集,或者说是一组程序的集合。这个集合可能会以各种方式体现出来,如源程序或二进制的代码。这个集合整体向44系统架构设计师教程(第2版)外提供统一的访问接口,构件外部只能通过接口来访问构件,而不能直接操作构件的内部。构件的两个最重要的特性是自包容与可重用。

2.构件是独立的、自包容的,因此架构的开发也是独立的,构件之间通过接口相互协作。

构件组装模型的一般开发过程如图所示。

3.构件组装模型的优点如下:构件的自包容性让系统的扩展变得更加容易;设计良好的构件更容易被重用,降低软件开发成本;构件的粒度较整个系统更小,因此安排开发任务更加灵活,可以将开发团队分成若干组,并行地独立开发构件。

4.构件组装模型也有明显的缺点:对构件的设计需要经验丰富的架构设计师,设计不良的构件难以实现构件的优点,降低构件组装模型的重用度;在考虑软件的重用度时,往往会对其他方面做出让步,如性能等;使用构件组装应用程序时,要求程序员能熟练地掌握构件,增加了研发人员的学习成本;第三方构件库的质量会最终影响到软件的质量,而第三方构件库的质量往往是开发团队难以控制的。

2.商用构件的标准规范

1)CORBA公共对象请求代理架构(Common Object Request Broker Architecture,CORBA)主要分为3个层次:对象请求代理、公共对象服务和公共设施。最底层的对象请求代理(Ob jectRequest Broker,ORB)规定了分布对象的定义(接口)和语言映射,实现对象间的通信和互操作,是分布对象系统中的“软总线”;在0RB之上定义了很多公共服务,可以提供诸如并发服务、名字服务、事务(交易)服务、安全服务等各种各样的服务;最上层的公共设施则定义了构件框架,提供可直接为业务对象使用的服务,规定业务对象有效协作所需的协定规则。

CORBACCM(CORBAComponent Mode1)构件模型是0MG组织制定的一个用于开发和配置分布式应用的服务器端构件模型规范,它主要包括如下3项内容。

(1)抽象构件模型:用以描述服务器端构件结构及构件间互操作的结构。

(2)构件容器结构:用以提供通用的构件运行和管理环境,并支持对安全、事务、持久状态等系统服务的集成。

(3)构件的配置和打包规范:CCM使用打包技术来管理构件的二进制、多语言版本的可执行代码和配置信息,并制定了构件包的具体内容和文档内容标准。

2)J2EE在J2EE中,SUN给出了完整的基于Java语言开发面向企业分布的应用规范。其中,在分布式互操作协议上,J2EE同时支持远程方法调用(Remote Method Invocation,RMI)和互联网内部对象请求代理协议(InternetInter-ORBProtocol,IIOP),而在服务器端分布式应用的构造形式,则包括了Java Servlet、JSP、EJB等多种形式,以支持不同的业务需求。而且Java应用程序具有跨平台的特性,使得J2EE技术在发布计算领域得到了快速发展。其中,EJB给出了系统的服务器端分布构件规范,这包括了构件、构件容器的接口规范以及构件打包、构件配置等的标准规范内容。EJB技术的推出,使得用Java基于构件方法开发服务器端分布式应用成为可能。从企业应用多层结构的角度,EJB是业务逻辑层的中间件技术。与JavaBeans不同,它提供了事务处理的能力,自从三层结构提出以后,中间层(也就是业务逻辑层)是处理事务的核心,从数据存储层分离,取代了存储层的大部分地位。从Internet技术应用的角度,EJB、Servlet和JSP一起成为新一代应用服务器的技术标准。EJB中的Bean可以分为会话Bean和实体Bean,前者维护会话,后者处理事务,通常由Servlet负责与客户端通信,访问EJB,并把结果通过JSP产生页面传回客户端。

3)DNA2000

Microsoft DNA2000是Microsoft在推出Windows2000系列操作系统平台的基础上,在扩展了分布计算模型以及改造Backoffice系列服务器端分布计算产品后发布的新的分布计算架构和规范。在服务器端,DNA2000提供了ASP、COM、Cluster等的应用支持。DNA2000融合了当今最先进的分布计算理论和思想,如事务处理、可伸缩性、异步消息队列和集群等内容。DNA可以开发基于Microsoft平台的服务器构件应用,其中,如数据库事务服务、异步通信服务和安全服务等,都由底层的分布对象系统提供。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OTzvA2XaXJuIF3-QBEj9eUeg0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券